Instead of opening up a form on the main page, clicking the 'Add new action' link (or hitting Alt/Ctrl N) opens up an overlay window, with a semi-transparent window underneath. You can add as many actions as you like by filling in the forms and hitting submit, then when you're done, click the close box or the shaded overlay area to dismiss the window.
It works very well on Safari, but for some reason, on my copy of Firefox, the cursor is invisible.
My plan is to also allow deferred actions to be added using this form, and eventually set up editing of existing actions to use the same format.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@250 a4c988fc-2ded-0310-b66e-134b36920a42
Changed the content-type of the iCal feeds to text/calendar which should fix problems with Mozilla Calendar. The feeds still work with iCal. Fixes#273.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@242 a4c988fc-2ded-0310-b66e-134b36920a42
It has these features:
* The todos table and model has been altered (run rake migrate to update) to create two sub-classes of the todo model: Immediate and Deferred. Fairly obviously, Immediate actions are those shown immediately, and Deferred are those shown when certain conditions are fulfilled. At the moment, this is when the 'show_from' date arrives.
* Deferred actions are created on a separate page: /todo/tickler. You can view the show_from date here and delete or edit the actions. Deferred actions don't show on the home page (their handling on project and context pages is still to be fixed).
* A periodically called method (every 10 minutes) checks whether any of the deferred actions is due to be show, and if so, a warning message is shown on the home page to tell you how many deferred actions are to be shown. You need to refresh the page to see them (again, this is to be fixed).
* When deferred actions become due, their type is changed from "Deferred" to "Immediate". The handling of their staleness is still to be fixed.
There's a way to go before it's really smooth, but it's a start.
At least partially fixes#270 and #78, but will be improved with time too.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@232 a4c988fc-2ded-0310-b66e-134b36920a42
The feeds page now lists iCal links alongside each RSS and TXT feed link. Copying your chosen link and pasting it in to the text box that appears in iCal when you choose Calendar > Subscribe.. Name your calendar as you wish, but make sure that you get it to refresh periodically and that the 'Remove Todo items' checkbox is UNCHECKED (obviously ;-) ). Then your Tracks next actions should appear as todo items in iCal, with proper due dates assigned, and notes in the notes field. The todos should update periodically in iCal as you add, delete or complete items in Tracks, but the subscription is read-only from iCal's end. However, it does allow you read access on the move if you sync iCal with your Palm or mobile phone.
I don't have Sunbird or any other iCal compatible calendar, but it should work with any of those too, as it follows the [http://www.ietf.org/rfc/rfc2445.txt iCalendar] standard format.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@221 a4c988fc-2ded-0310-b66e-134b36920a42
I made a small change to the signup method, because the previous method had broken at some point, and was no longer preventing non-admin users from signing others up. I suspect that this had to do with the cross-database differences in the way that booleans are handled, so I changed the method to use ActiveRecord to find the logged in user (thus automatically translating appropriately between 1/0 and 't'/'f').
The tests concerning users and login also broke with the changes in this patch, so I fixed those, and added some of the new Integration tests.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@215 a4c988fc-2ded-0310-b66e-134b36920a42
The 'done' page was generating errors (a regression in the trunk since the tagging of 1.04). I think that the main problem was the code to find the done items, but while I was at it I simplified the completed() and completed_archive() methods by using the Rails Time::Calculation methods x.day.ago and x.week.ago.
Works OK for me now.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@213 a4c988fc-2ded-0310-b66e-134b36920a42
So now I've got rid of the svn:externals property on vendor which was supposed to be bringing in the tagged Rails release, and I'm using rake freeze_edge instead to freeze to the 1.1 release.
Seems to be working OK for me now. Note that if you're using this, Ruby 1.8.4 is recommended, and you'll need to delete your old lighttpd.conf in config (if you have one) and let Rails generate a new one for you when you start lighttpd with script/server.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@212 a4c988fc-2ded-0310-b66e-134b36920a42
Tidied some of the CSS for the user and login pages.
Tidied the flash display so that it dynamically shows either the notice, warning or message flash as appropriate.
Note that the login tests are broken for now.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@190 a4c988fc-2ded-0310-b66e-134b36920a42
I'm intending this to be the last big change before releasing 1.04. Can people with access to the trunk through subversion check out this changeset and report any bugs?
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@182 a4c988fc-2ded-0310-b66e-134b36920a42
* Set up notification of the session timing out. If you haven't checked the 'Keep logged in' checkbox at login, a method is run periodically (every 5 minutes) to check whether there is more than 10 minutes remaining on your session. When there's less than 10 minutes left, a red warning box appears dynamically at the top of the page appears to tell you that your session has timed out, and asking you to login again (with a link to the login page). This basically prevents the situation when you return to the browser window after more than an hour has elapsed, and try to add a new item without knowing that your session has timed out.
* Changed the find methods that previously used 'done = 0' or 'done = 1' to test for truth or falsity instead. This means that it's compatible with both MySQL (which uses tinyint 0 or 1 values) and SQLite/SQLite3 and PostgreSQL (which use boolean 't' or 'f' values). By using true or false, ActiveRecord translates the values to the correct format depending on which database adapter is being used.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@178 a4c988fc-2ded-0310-b66e-134b36920a42
* RSS now has correct link for the context (fixes#144)
* Pass a local variable to the _completed.rhtml partial so that the empty box gets the appropriate '...in this project' or '...in this context' description.
* Added a checkbox 'Stay logged in' to the login page. When checked it prevents the session timing out after one hour of inactivity. You will stay logged in (with that browser) until you manually logout. That's useful for people who are using Tracks on a private machine to which only they have access. Addresses #20.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@177 a4c988fc-2ded-0310-b66e-134b36920a42
I also added the following:
* Expanded Luke's patch so that toggling also works on Context and Project pages.
* The 'empty' messages for the uncompleted and completed actions divs now appear and disappear automatically on the context and project pages as you toggle, untoggle, add and delete actions
* At some point, hiding of contexts on the front page broke. It seems that recent updates to Rails changed the way that it interprets tinyint fields: these can now only be tested with true or false, not 0 and 1, and that was why it broke. Also the code for selecting only unhidden contexts on the front page used .hidden? for some reason and not .hide. Fixed now.
A remaining issue is that on the home page, if you add an action to (or uncheck an action to) a context that is not currently shown (because it is hidden, or it has been empty), the record will be changed, but nothing will appear to happen until you refresh. I'd like to test for this situation and put a message up assuring the user that things worked and that they need to refresh.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@175 a4c988fc-2ded-0310-b66e-134b36920a42
* Added Luke Melia's patch to warn the user when the session has timed out when the user has added or checked off a next action without refreshing the page first. If they check off an item, they are redirected to the login page, then when they return, they are informed that the action has been checked off. If they add an item, they are informed after returning from the login page that the next action hasn't been added. Fixes#163.
* Made some stylistic changes to login and signup pages to make them tidier, and to fit with the main theme better
* Fixed bug with deleting items: the sheet which appeared was an alert (with only an 'OK' box, rather than a confirmation (with both an 'OK' and 'Cancel' box). Fixes#189.
* Added a new feed icon to comply with the new de-facto standard: from [http://www.feedicons.com/ Feed Icons].
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@172 a4c988fc-2ded-0310-b66e-134b36920a42
* Installed the RJS plugin http://www.codyfauser.com/articles/2005/12/05/rjs-templates-plugin-subversion-repository
* Used the RJS templates to update multiple page elements on addition and deletion of actions: the new action gets added, the count 'badge' is updated correctly, and a status area provides helpful information.
* If your data entry triggers validation errors e.g. no description for the next action), the errors are displayed in the status area (not very prettily as yet...)
* The message about the context/project having no uncompleted actions automagically appears/disappears without refreshing the page.
The editing and toggling of actions hasn't been updated yet.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@171 a4c988fc-2ded-0310-b66e-134b36920a42
It works fine except in the following circumstances, which I can't seem to figure out:
* If you edit an action on a project page, it will render with '[P]' link until you refresh
* If you mark an action completed on a project page, it will also render with a '[P]' link until you refresh.
However, adding a new action on a project page renders properly immediately.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@167 a4c988fc-2ded-0310-b66e-134b36920a42
As a result, I'm going to redo the empty message changes I made in [164], and will see if I can find a more sensible way to implement them. The empty messages still appear (now also in the notes area if that's empty), but you need a refresh after Ajax changes to view or remove them.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@165 a4c988fc-2ded-0310-b66e-134b36920a42
I've added Scriptaculous calls to the Ajax for adding a new action, or completing a previously not done action removes the appropriate message (as these activities must logically make @not_done and @done non-empty. Similar thing added for project notes.
The next step will be to handle those cases where the last action is completed or deleted, or an unchecked done item refills the not_done actions, which is trickier to pick up. Then I'll repeat for context and todo views.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@164 a4c988fc-2ded-0310-b66e-134b36920a42
For simplicity and flexibility, the button is visible all the time, so that you can complete a project at any time.
Fixes#76.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@163 a4c988fc-2ded-0310-b66e-134b36920a42
* Fixed unchecking of next actions on context and project pages, so that they now update visually, as well as changing the database.
* For some reason, the completion field was not being saved, which was messing up the completed page. That's fixed now.
* Deletion and editing of items was broken on context/show and project/show. That's fixed now, but if you uncheck a completed item, then attempt to delete or edit an item without a refresh it will fail. I'm not sure what I can do about this.
* Next actions on project and context pages now show the appropriate link to contexts and projects respectively, even when first created by Ajax.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@162 a4c988fc-2ded-0310-b66e-134b36920a42
Fixed#142 - the 500 error was being generated on dragging projects and contexts to reorder because the order method was looking for an order view and layout. I've added a :render => nothing statement to order now,and that seems to fix the error.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@158 a4c988fc-2ded-0310-b66e-134b36920a42
Also changed references to Form.focus_first which were defined in the removed file prototype-ex.js to Form.focusFirstElement, which is defined in prototype.js. Fixes#133.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@149 a4c988fc-2ded-0310-b66e-134b36920a42
1. The contexts and projects lists are now drag and droppable. In other words, if you visit [tracks_url]/projects or [tracks_url]/contexts, you can grab the 'DRAG' handle with the mouse and drag and drop the projects or contexts into your preferred order. At the same time, this re-orders the 'position' column appropriately, so that changes in order will be reflected on other pages. '''NB''': At the moment, deleting projects and contexts is a bit buggy. The item doesn't disappear, but if you refresh the page it will update appropriately. Also, if you add a new item, you can't drag it until you refresh. I'll try to fix these things. Fixes#115.
2. Fixed typo of 'tomorrow' due date label. Fixes#131
3. I updated the syntax for some of the visual effects to use the new {{{visual_effect(:fade, 'element')}}} syntax. Also removed the javascript files effects2 and prototype-ex, which aren't used now.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@148 a4c988fc-2ded-0310-b66e-134b36920a42
Also fixes#109: lolindrath's patch (plus a bit of extra tinkering) means that newly created and newly edited actions get the [C] link if they are on the projects page and the [P] link otherwise.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@147 a4c988fc-2ded-0310-b66e-134b36920a42
{{{
ruby -i.bak -pe 'gsub!("#!/usr/bin/env ruby", "#!c:/ruby/bin/ruby")' public/dispatch.* script/*
}}}
I also failed to add the new user-related files and the new migrate task last time I committed, so those are added now.
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@141 a4c988fc-2ded-0310-b66e-134b36920a42
The problem was that project (and context) names were made into URLs via the 'urlize' method which substituted spaces for underscores and downcased the string. This was then converted back to the real project name by the Rails method 'humanize', which substituted spaces for underscores and Capitalized the string (i.e. only the first word was given an initial capital). This meant that visiting /project/show/project_name would fail if the real project name was either 'Project Name' or 'project name'.
I altered 'urlize' to maintain the capitalization that was entered, and created a new method 'deurlize' that just reversed this change (i.e. swapped underscores for spaces, but left capitalization as is).
git-svn-id: http://www.rousette.org.uk/svn/tracks-repos/trunk@101 a4c988fc-2ded-0310-b66e-134b36920a42