* 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.
* 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.