To-Do Application
- [x] Fiddle with the commented code near the end of this HTML page to make two views of the same to-do list. These two views will stay in sync.
- [x] Make two separate todo lists (e.g. home and work) in the same page. These two lists will not be in sync.
- [x] Trim the user input so descriptions never start or end with whitespace.
- [x] Add validation so to-do description cannot be blank (i.e. no characters or only whitespace characters) or over 100 characters long. Show the user an error message so the problem can be corrected
- [x] Add a private "completed" field to the to-do model so a to-do can be marked complete without removing it from the list. Make the background a different colour for completed to-dos and show them below the uncompleted to-dos in the list. Make it possible so a completed to-do can be switched back to uncompleted. This requires some very interesting changes throughout the code.
- [x] Make the to-do list sortable. Use up and down arrows on the to-do items and/or drag-drop in the view.
- [x] Build server with an XML or JSON REST API to get a list of to-dos and to create and delete to-dos.
- [x] Use the REST server API and make the model asynchronous. Show throbbers in view as necessary.
- [x] Make this application cross-browser. Yes, that means even IE6.
- [x] Rewrite the application using progressive enhancements so a client without JavaScript or without sufficient JavaScript would still be able to use the to-do application. This requires server work. Test it in NS4 and IE4. These same techniques apply to application using canvas and other modern browser features.