diff --git a/Faster-user-interface-and-better-tablet-experience.md b/Faster-user-interface-and-better-tablet-experience.md new file mode 100644 index 0000000..e768590 --- /dev/null +++ b/Faster-user-interface-and-better-tablet-experience.md @@ -0,0 +1,46 @@ +# Rationale + +The current (~R2.1) load times of the Tracks home page are quite long (4+ seconds with 80 - 120 actions), even after Reinier's pre-rendering and storing of action notes in the database. In addition the small buttons / handles for the drop down menu, edit menu and dragging of actions are hard to hit on tablets. + +So the question is how can we improve the design and performance of the home page? + +## Proposal 1 +**Design points** + +1. Eliminate hard to hit targets (edit icon, drag icon, dropdown menu icon), keeping only the 'completed' checkbox and the star +2. Make the description of the todo (i.e., the large text) do something useful +3. Eliminate the drop down menu, which takes up 40% of the server rendering time + +**Implementation** + +1. Clicking the description opens the existing edit form +2. The functions that were in the drop down menu reside in the edit form now +3. The buttons in the edit form are on top, so if one just wants to defer an action the mouse / finger does not have to move all the way to the bottom of the form +4. Dragging the description allows to drag the action into new contexts or make it a dependent action (as before with the drag icon) + +[[images/Fast UI Mockup.png]] + +**Code** +Patch is attached to [Ticket #1279](http://www.assembla.com/spaces/tracks-tickets/tickets/1279/) +It applies cleanly against the 2.1 release branch as of 4/19/12. To try it in your environment do: + + cd /var/www/tracks + patch -p1 --dry-run <~/faster_ui_patch_v2 | less # Confirm that it will apply + git status + git branch fast_ui # Try it in a branch + patch -p1 <~/faster_ui_patch_v2 | less # Apply the patch + rm public/stylesheets/tracks-cached.css # Don't forget this + service httpd restart # Or whatever you do if you're not using passenger + +**Issues** + +1. Dragging todos does not work on tablets yet +2. If inside a context the last action does not have a project or a note or a dependency then it will extend outside the container + +## Relevant Tickets + +[#1279](http://www.assembla.com/spaces/tracks-tickets/tickets/1279/) + +[#1249](http://www.assembla.com/spaces/tracks-tickets/tickets/1249/) + +[#542](http://www.assembla.com/spaces/tracks-tickets/tickets/542/)