Executive Assistant -- User Configurable To-Do List/Task List
by VincentSDSH
(email vincent at silver daggers dot net)

Executive Assistant is a configurable Task (To-Do) List that lets you manage your game-time efficiently.

At first blush, Executive Assistant may seem to be a show-room for the Choice Paradox but for what it does its learning-curve is fairly shallow. Getting started has 3 steps: 1) set your server's weekly reset day and daily reset time, 2) add a few tasks, and 3) NOW GO PLAY! and see that you do those tasks.

Executive Assistant works from the principle of "don't worry about it till you needed it (or find that it annoys you), then make it easy to find and use (or at least make the Help helpful)." You don't need to know about account-wide tasks, purgable tasks, command line entry, the finer points of embedded Invisible Groups, or the other features unless you find a need for them. Don't be afraid to peruse the options and let your mind wander but don't get bogged down it: the learning curve is only as steep as you want it to be, and more than a few things have the defaults they do give you a taste of using them before you decided -how- (or if) you want to use them. 

As a side note, all of the features in version 1 are ones I use (and about half of them from testing and wishing I could do something I couldn't at the time) with the exception of two (alphabetized character names and complete/uncomplete task counts -- I never use 'em *shrug*), so if you're wondering if Executive Assistant 'has features just for the sake of having features' the answer is: Yes...two. 

I'd never come across a 'to-do list'-ish addon that addressed the problems I needed addressing in a way I was happy with. To get an idea...

 -- To see all the chars at once, so I could see that I missed a swatch of stuff on a char w/o logging that character in
 -- To see characters categorized by Task (e.g. event-related, special dailies, etc: expand that Task, see characters checked/unchecked so I can *easily* see who log in next for that Task)
 -- Choice of a Task Window OR LDB ('cause not every character has the same needs or b/c sometimes it's nice to have a persistent list and sometimes it's annoying, etc)
 -- Zoom In / Zoom Out (quickly focus on part of a list vs the full list, while keeping the same collapse/expands)
 -- Being able to easily integrate special task groups (e.g., yearly events, darkmoon, etc) that don't have to be around all the time.
 -- LDB / Minimap Icon clicks had to be on-the-fly user-alterable (what I find I want convenient changes what what I'm doing and there's /no way/ I'm going to be able to decide what the 'best' layout is for every user)
 -- Being lazy, I refuse to enter "do X task" for 20 chars when I can do it once
 -- Being lazy, I refuse to then turn off said task 19 times b/c I just want 1 char to see it
 -- Account-Wide tasks (e.g., Blingtron), they are few but *sigh* in for a penny, in for the national debt
 -- Blizzard's special 'weekly but not on these days' crazy...gotta take crazy into account 'cause being lazy and not too bright, I could see myself trying to do it on a day it wasn't available just b/c it was reset...
 -- Command line task entry was a must (I'm old enough to love the command line)
 -- I want task management organized and subordinated (less scrolling to find things) but not open 3-4 levels of twisties to check it off
 -- And when I am putting the tasks into groups, I wanted to get a sense of what I am doing, especially with something as complex as managing groups of tasks, let alone doing it for multiple characters.
 
...well, that's where I started, anyway. Along the way I decided that sub-groups just had to be able to have their own groups and, me being me, you can have as many as the stack can handle (There's even an efficient prune/regrow for dynamacy in the options tables, a feature that has a long story attached to it but suffice to say I spent hours on it and it saves you .003 to .01 milliseconds -- that is not a damned type-o, I used the blizzard debug profiler, so use those extra milliseconds of play-time well!). 

I added a reset-type that could be on-demand purged of completed tasks: it rapidly became my hands-down favorite feature, especially rapid-fire entering these from the command line (e.g., shopping lists; remember-to-do-while-in-town; go-to-that-place-for-this-quest notes; remembering what quest I left off in the middle; what pets/toys/items in an area I'm still looking for; and...well, it's a long list) You can even make tasks for a particular character right from the command line.

...I'm pretty sure I skipped a few features and the usage-tricks would make this a wall-of-text so I'll leave those to the in-game Help and your own curiosity. 
 


TWO IMPORTANT TECHNICAL NOTES (but only for the addon-savvy or prospective addon authors)
	Executive Assistant uses libQTip for the LDB/Minimap Button tooltip display and it has two issues of which you should be aware.
	
	* The libQTip that comes with Executive Assistant *has been modified* so a lib-less version is not possible, and this version should NOT be redistributed. The library was modified	to work around a problem (http://www.wowace.com/addons/libqtip-1-0/tickets/35-colspans-widen-the-wrong-column). The version that comes with this addon does not fix this problem properly (though that may come at a later time) so much as it shunts the problem into the tooltip in a way that achieves the result that Executive Assistant needs (and would be achieved if column max-width parameters were enforced) In short: my goal in this project was to write Executive Assistant and not rewrite a library.

	* Also related to libQTip, there is a resizing bottleneck (as related by Torhal) such that, in my testing, individual cell modification could be up to 22x as long as the initial creation of a cell on the tooltip. We're talking about fractions of milliseconds but they add up. If you have 150 lines open, you will notice a tiny delay while at 240 lines it can be over 2 seconds. I ONLY TELL YOU THAT so you'll know what's going on. In practice, you'll rarely (if ever) come close to the 150 lines where you *might* notice a performance hit while doing multiple things on the tooltip but somebody, somewhere will intentionally or inadvertently run into this.



Version Notes:
	v.9.9 
		NEW FEATURE: Reorganization of Groups and Tasks. Initially this wasn't a feature on the table however when the core group/task architecture was refactored to the relational agglomeration, it became possible. The motility -itself- is simple however it took some experimentation to fine-tune the UX and determine if there was -any- reasonable workaround to the bruit-force update method that seems to be required. The method selected was a "reorg mode" which hides the normal controls and gives the user as close to drag-drop as I can get (pick up / put down)

		BUG FIX: Group Name Color now working again (nb: this was a regression).

		LOCALICATION: Cleaned up some errant strings related to new user controls

		EXCESSIVE ORGANIZATION UNEXCESSIVIZED: category pages should carry controls properly (applies to Help and Information categories as well as Group Names under Task Maintenance.)
		
	v.9.8
		FIXED: File Cabinet updated to add in current character data if restored configuration does not contain the current character
		** RELEASE CANDIDATE **
