Dan Mackey On ColdFusion Development

ColdFusion, Java, .NET, AJAX, DHTML development and general programming. Daniel is owner and Administrator of CFTagStore.com and works for an Application Development Company in Ireland called Digital Crew. His interests cover all areas of programming in multiple languages with a particular interest in Internet Technologies.

All Articles Posted In July 2006
2006-07-31 14:05:00.0

Another bloody busker shows up!

Under pressure to get the latest project out the door and working on a fairly brain-tasking section so I need all my concentration and this bloody fool turns up outside my window.

Everyday a new busker shows up outside my window and screeches through renditions of popular tunes. They are getting more inventive in their ways to annoy me. This fucker decided to use a uni-cycle and play spanish style music while croaning like something in pain....

I want to through my coffee at him....

Tags: Rants
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [3] - Leave a comment
2006-07-29 12:38:00.0

ColdFusion And AJAX Organizational Chart - Beta

About 2 weeks ago before I started my , I worked on a quick proof-of-concept ColdFusion and Ajax enabled Organizational Chart widget.

My main aim was to create a widget that would render in modern browsers and would allow the adding of nodes to the chart using AJAX so the whole page didnt have to be reloaded.

I faced some interesting problems:

  • I wanted to use pure CSS and DIVs but soon found out this was impossible for the moment so had to settle for a mix of CSS and normal TABLE elements.
  • The logic in finding the current parent to append new elements to needed quite a bit of thought to work on all browsers.
  • Deleting nodes a few levels up had to take sub-nodes into consideration.
  • The user-interface had to be very simple and in context with each node.

I decided on the following:

  • I created a custom tag which runs using recursion. This allows the whole chart to be generated using one line of code and you can choose which node to start rendering from.
  • Because the chart is built using a recursive custom tag and I can choose any start node, implementing the AJAX was easy, easy easy.... All I have to do when an add node icon is clicked, the parent node id is passed using AJAX and the custom tag is called with a start ID of the passed parent and the returned HTML is rendered without reloading the page.
  • I used the extremely handy CFSAVECONTENT to render the HTML from the custom tag and simply return the resultant variable. This made the code really easy, flexible and readable.

The main way to use the tag is:

  • To create a node, you click the Add Node icon from the parent node.
  • To edit a node, you double-click an existing node.
  • To delete a node, you click the Delete Node icon on the node to be deleted.

The editing of nodes is not complete. I envisage this to dynamically create a text area in the node and update the TEXT of the node on the fly using . Another option in the future would be to pop-up a menu that allows you to change the TYPE of node.

Things I would like to see added:

  • Panning of a VIEW area for large charts
  • Ability to change each nodes type
  • Add the ability to render each node with rounded corners using the brilliant NiftyCude library.
  • Ability to export the chart in a variety of formats : graphics or PDF

The funny thing is, I developed this 2 weeks ago on one of my 3 hour after-work learning stints where I generally read new things through blogs or try proof-of-concept ideas that may help in future projects. About 2 days ago, I got an email from someone through who had an idea for a CFOrgChart type tag/application with the same ideas I had planned.

Funny how things happen...

Now the fun part...try the demo : demos/cforgchart/index.cfm

PS: Please use with care and dont ruin it for other people by deleting all nodes. This is only a demo and I havent performed any checking or locking of nodes yet.

PPS: Can someone (Karl :-) ) check this on Safari and report back?

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [12] - Leave a comment
2006-07-21 11:55:00.0

GotAPI.com - Fantastic Syntax and Programming Reference

Just stumbled accross this great new site yesterday and already am beginning to refer to it as I need a function reference.

The site is : http://www.gotapi.com/

Its amazingly user friendly and as you click a topic in the center, a nice new tab appears on the top of the page allowing you to quickly jump between languages.

The loading of the functions etc is fast and the search is good! There is some great programming and thought gone into this site! I wish I thought of doing something like this.....

Tags: Tools | Useful Tips
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-07-20 12:52:00.0

CF_ProFlashUpload Released on CFTagStore.com

Topper has released our Flash based Multiple File Upload with progress status for ColdFusion on CFTagStore.com

You can view the component and online demo from:
http://www.cftagstore.com/tags/flashmultipleupload.cfm

Pricing is $50 per application with discounts for multiple licenses.

Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [0] - Leave a comment
2006-07-06 11:59:00.0

Latest Project : ColdFusion + AJAX = ColdJax

I am just about finished phase one of the latest Digital Crew project.

We were asked to develop an application to manage submissions of timesheets from indivual contract workers which would feed into the existing clients Intranet (also built by Digital Crew - using our Teamwork Intranet engine).

This is the type of project I love getting passed by my desk. - Where you can innovate. I decided for this project I would make it completely AJAX enabled. 90% of the requests to the server are made behind-the-scenes using AJAX. The user interface is very Web 2.0-ish with big text and buttons and also benefits from keyboard short cuts etc

I took our standard application engine and spent the first 2 days re-writing segments of the framework to communicate with the server entirely using AJAX. The next step was to figure out the various modules and UDFs I would need to maximise code re-use.

Every major widget is called using CFMODULE and controlled by simply passing attributes. This gave me enourmous flexibility and in the future if we need to upgrade some functionality or extend a widget, there is only one segment of code to re-write.

Another aspect I wanted to do right from the start was the layout code. Every part of the application re-uses classes in the global style sheet. Before I would have added and added to the CSS as I needed some styles but with a bit of planning from the start, I identified the main style blocks and wrote more modules (custom tags) to encapsulate them all.

For example, the main modules are:

  • A button module with different colouring and ability to accept href or js functions
  • A timesheet widget module
  • A page turning module
  • A timesheet printing module
  • A tooltip module
  • An encapsulated object based AJAX library
  • An invoice capture module

Overall the satisfaction in writing this application out-weighed the total hours I put into it. Although debugging was alot harder than a traditional application, the AJAX portions actually saved me lots of time!

Tags: AJAX | ColdFusion | My Work
Add to your del.icio.us    DIGG This!    Technorati Cosmos Link    Post to Reddit    Add to your Furl    Add to Blinklist
Comments [1] - Leave a comment