This is an Enhanced version of my basic to-do app, which stores to-do items via IndexedDB, and then also aims to provide notifications when to-do item deadlines are up, via the Notification, Alarm and Vibration APIs.
At the moment I have taken it as far as I have got the time to take it. The Indexed DB and Notification API functionality all works on Firefox desktop, Firefox Android, and Firefox OS.
The Vibration API stuff works on Firefox OS and Firefox for Android.
The Indexed DB functionality works in IE10.
The app sort of works on Chrome/Opera 15+ too, but there is a weird bug whereby when you submit a to-do task, it is stored in the database fine, but then it won't display that item in the items display list until you either refresh the page or submit another item. I've not been able to get to the bottom of this yet.
The alarm stuff is tricky. the alarms seem to work ok on Firefox OS, but not on Firefox desktop or Android because mozAlarms doesn't seem to be support yet there, plus to work the Alarm API needs to be registered in the permission section of the manifest file. This is a bit trick and annoying because if it isn't, it is given a value of null so the code fails. To get round this I had to do some feature detection.
This is all going to be written up on https://developer.mozilla.org/en-US/Apps/Developing/Control_the_display
To do:
- Fix aforementioned Chrome bug
- Improve icon, as it currently sucks
- Improve form entry sanitisation, for example the task title really needs to be escaped so it is less easy to break the code with entries including apostrophes, etc.
- Include some way to highlight tasks that are overdue in the task list
- ...?