that the link clicked to launch the editor can be updated with the new editor's assigned id.
Also, the link pulldown init code now also examines already open notes when displaying a link title
and contents before asking the server for that information.
* Implemented a new controller.Notebooks.lookup_note_id() method to get only a note's id given its title.
* Added some new link resolution code to Editor and Wiki, to fill in a link's id according to its destination note.
* Factored out some of the link finding code into a common Editor.find_link_at_cursor() method.
* Factored out query parsing into a common parse_query() function, which operates on a link node.
* Added new Link_pulldown class-thingy to represent the little pulldown you see when the cursor's on a link.
* Refactored Pulldown's positioning code to support offset positioning (needed for elements within an iframe).
* model.Note has a deleted_from member to indicate the notebook id it was deleted from (if any)
* controller.Notebooks sets the deleted_from member and makes all deleted notes startup notes in the trash
* new controller.Notebooks.undelete_note() method
* split up the idea of UI messages into errors and informational messages, with separate CSS
* updated Editor and Wiki UI code to deal with new deleted_from variable
* added "undelete" button when viewing a deleted note, and "delete" changes to "delete forever"
* added a "trash" link to the notebook links
* reorganized responsibilities for displaying notebook/user links among Wiki.populate() and Wiki.display_user()
* when deleting messages in a notebook with a trash, displaying "The note has been moved to the trash"...
with a working undo button!
* tweaked focusing logic in display_search_results(), which has been renamed to display_loaded_notes()
* changed controller.Users and controller.Root constructor arguments to support this.
* Updated INSTALL document accordingly.
* Client now will prepend this new http_url variable to the logout link.
* Revisions can be opened either in the current page or in a new window/tab.
* Added ability for a read-write notebook to contain read-only notes. This supports showing read-only revisions.
* Fixed updatedb.py to properly load the anonymous user.
* Updated initdb.py and updatedb.py to deadl with new-style /notebooks/notebookid?note_id=noteid wiki links.
* Made Persistent copy the revisions_list on each revision update so different revisions don't share lists.
* Prevented Note from updating its revision twice upon construction. Now it's only updated once.
* Work-around for nasty urlparse() caching bug related to unicode strings that cherrypy barfs on.
* Added optional revision flag to various controller.Notebooks methods to allow opening of a notebook with a particular note revision displayed.
* Refactored some of validator decorator to use clearer variable names internally.
* Validator decorator now supports treating arguments with default values as optional.
* controller.Notebooks.default() takes an optional note_id argument.
* controller.Notebooks.contents() takes an optional note_id argument.
* Wiki.js now makes use of these new controller APIs.
* Editor.js now takes a notebook_id argument to its constructor so it can properly make links.
* Made controller.Notebooks.save_note() return the newly minted revision timestamp upon a successful save.
* Whenever we get back a revision timestamp from save_note(), we store in in the client's list of revisions for that note.
* Now raising Access_error in controller.Notebooks in various places where the notebook requested is unknown.
* Tweaked pulldown CSS a bit. Now will sport a handy-dandy scrollbar if the pulldown gets too tall, at least in real browsers.
* Fixed bug where clicking "show on startup" checkbox directly didn't visually toggle the checkbox.
* Search results are now appended to the open notes, instead of replacing them.
* Already-open notes that also happen to be in the search results are closed so that they're not shown twice.