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()
* Made sure the trash is not exposed by the read-only notebook view.
* Modified model.User.check_access() to consider read-write access to a
notebook to be sufficient for access to that notebook's trash.
* Modified controller.Users so new users are created with a notebook that
has a trash.
* Changed controller.Notebooks so deleted notes go to the trash (if any).
request simply didn't work. Apache doesn't forward that information. So
instead, I'm now using a hacky work-around that looks at the proxy IP to
determine whether it was an http or https request.
Still need to fix unit tests for this.
* 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.
* both tools/initdb.py and tools/updatedb.py set link ids appropriately, rather than just leaving them all as "new"
* both tools/initdb.py and tools/updatedb.py set certain links to use https if configured as such in config/Common.py
* tools/initdb.py no longer creates a default "witten" user
* Added target="_top" to links that should replace the top-level window, and updated client code to ignore links with targets.
* Removed form_base_url from Editor.js, as https URL is now tacked on by initdb.py/updatedb.py instead.
* is_startup_note() checks whether the object id of the given note is in the list of startup notes,
not whether the actual object is.
* This fixed a bug in which the same note could be saved to the list of startup notes multiple
times, thereby causing funny display problems when the same note was loaded twice.
* 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.