Sam Tyson
January 11, 2011

On occasion it is nice to be able to select and copy the contents of a column from a table element. Using jQuery, this is a simple task that takes advantage of the following jQuery features:


Event Handling – for the double-click of the column header Selectors – to determine which DOM elements to process Traversing – start from a TH that is double-clicked and find which column of the table it represents, then find all of the column TDs Iteration – process each of the TDs in a column Attributes – get the text for each TD, and change the TD’s Class


With a standard-format table, it is easy to add an event handler to the header TH element. Click here to view a simple example of a such a table. It has a header and a body, and

Sam Tyson
July 16, 2010

Welcome to part 3 of the series on converting an application from the Clarify Desktop environment to work in Dovetail Agent/Admin. The Employee Manager Utility (EMU) is being migrated into Dovetail Admin, and will provide the tools needed to manage workgroups and the employees that are assigned to them.

In the installment of the series, the functionality for the Add… button of the form is going to be implemented. This is going to be a different method that what is normally used in Dovetail Admin due to the fact that workgroups are actually just elements in the WORKGROUP user defined list. EMU adds a lot of information and configuration capability for a workgroup, but there needs to be a record in table_workgroup to hold the details.



Sam Tyson
July 15, 2010

This is the second installment of a series of posts on migrating applications/enhancements from the Clarify desktop application to Dovetail Agent features. The plan was for this post to cover converting Clarify Forms into Dovetail Agent/Admin pages. That is a great idea, but a very ambitious goal for a single post. I will be making a few posts along this line instead, trying to highlight the best practices and throw in a good amount of example code to help pave the way for such a conversion.


The example conversion of Employee Manager Utility (EMU) from a Clarify desktop integration to a new feature for Dovetail Agent and Dovetail Admin has a lot of possibilities for things to talk about. There are all kinds of controls used on the main form: a filtered grid, multiple tabs, checkboxes, text boxes, dropdowns,

Gary Sherman
June 18, 2010


I’ve been working on a project recently that involved mockups and prototyping for a mobile web application. I wanted to share some of the process and tools that I found useful.



I first started out with low fidelity sketches. Paper and markers. Easy to draw, markup, and hack up.




Checkpoint: Sit down with the developers to walkthrough the concept, get their ideas and feedback, and surface any potential technical issues.



I then went to my favorite mockup tool – Balsamiq. Balsamiq makes it easy to mockup applications. It has the feel of a mockup – lots of hand drawn looking elements, comic sans fonts, and yellow stickies.


Balsamiq allows you to “link” mockups together. So clicking on a hyperlink or on a button would

Kevin Miller
February 24, 2010

We had a Ajax-ified page break on us today and eventually figured out that the cause was related to an upgrade of jQuery and in particular a change in how jQuery 1.4 does serialization of array parameters for Ajax operations. From the jQuery 1.4 Release Notes.

jQuery 1.4 adds support for nested param serialization in jQuery.param, using the approach popularized by PHP, and supported by Ruby on Rails. For instance, {foo: ["bar", "baz"]} will be serialized as “foo[]=bar&foo[]=baz”.

In jQuery 1.3, {foo: ["bar", "baz"]} was serialized as “foo=bar&foo=baz”. However, there was no way to encode a single-element Array using this approach. If you need the old behavior, you can turn it back on by setting the traditional Ajax setting (globally via jQuery.ajaxSettings.traditional or on a case-by-case basis via the traditional flag).

Our page was using getJSON to get data

Gary Sherman
August 5, 2009

I love jQuery like this:

$(".question").click(function(){ $(this).next(".answer").toggle(); });

When you click on a question, show the next answer.

When you click on the question again, hide the answer.

And my markup stays clean:

<p class="question">Does this cost anything?</p>

<p class="answer">No, bodybuggTweet is absolutely free.</p>

That pleases me.

Gary Sherman
August 3, 2009

I was recently at a customer site, and while sitting down with one of their agents, noticed that this agent belonged to over 100 queues.

Because of this, the left column of the console within DovetailAgent, which shows all of the queues, had a scrollbar that seemed to scroll forever.

One of the features I like about Dovetail Mobile is that it only shows the queues that have stuff in them.

I immediately said: why don’t we do a similar thing within DovetailAgent?

And because we have more screen real estate to work with on a desktop (as opposed to the limited screen real estate on a mobile device), I thought about allowing the empty queues to be toggled on and off.

Easy enough to do.

Here’s what I ended up with. (I’m showing the end result

Gary Sherman
January 19, 2009

Smashing Magazine has a list of 45+ New jQuery Techniques For Good User Experience

There’s some cool ideas in there.

The sortable lists technique would be useful for Drop-Down list management in DovetailAdmin.

I also like the Scrollable HTML table plugin – which keeps the header row visible when scrolling through a long table.

Sam Tyson
January 14, 2009

jQuery just released its latest version, and celebrates its 3rd birthday as a JavaScript Library.

The big features of this release are:

Sizzle: A sizzlin’ hot CSS selector engine. Live Events: Event delegation with a jQuery twist. jQuery Event Overhaul: Completely rewired to simplify event handling. HTML Injection Rewrite: Lightning-fast HTML appending. Offset Rewrite: Super-quick position calculation. No More Browser Sniffing: Using feature detection to help jQuery last for many more years to come.


jQuery at Dovetail Software

Almost all of our current development projects are using jQuery, so upgrading to the new version to take advantage of the new features and performance will be an exciting improvement. The performance gains in the selector engine and HTML injection should help us improve our software. The benefits of using jQuery is already apparent, and we continue to use it more

Sam Tyson
January 12, 2009

This is always a good sign for a software company, and here at Dovetail Software this has just become an easier task.

It is important for us to get the news about a new product release to our customers. By automating some of the steps in this task, we can get the information to the customer faster, and also add some business value to the process.

Now when a new release is ready, we can use the new Product Announcement tool to prepare the message for our customers.


Opening this application from within our in-house version of Dovetail Agent, we can see a list of all of our products that are currently under contract with any of our customers.

International: +1 (512) 610-5400
Toll Free: 1 (800) 684-2055