immediately after the editor you're working on instead of at the bottom of the
page. Also, if you undo a note's deletion, it'll show up right back where it
was amonst the notes.
browser-specific CSS hack and looked crappy. Those elements that are still
rounded are now implemented with nice smooth images instead.
Also changed downloaded HTML generation to specify sans-serif for the font.
the client. Previously, the main page would load as mostly blank, then the
client would immediately issue two async json calls to load the user and
notebook data, including startup notes. Now, the main page loads with the note
data actually as part of the page. If JavaScript is off, then you see all the
notes displayed, including startup notes and any designated note. If
JavaScript is on, then those "static" notes are instantly hidden and their
contents are loaded into iframes for editing/display.
The real upshot is that Luminotes in read-only mode is now more useful when
JavaScript is off, and actually displays notes and their contents. This is
very useful for search engine indexing.
Updated all Python unit tests. Still have to get to JavaScript unit tests,
what few their are.
1. It's confusing. People think you click it to perform the search, then are surprised when it doesn't do that.
2. Now that the search results are displayed more clearly, there's really no need for a titles-only search option.
* Each model.User now has a current storage bytes and a rate plan.
* model.User.to_dict() updated accordingly.
* Minor Scheduler.add() change to bail of the given thread is None.
* controller.Users.current() returns current user's rate plan details.
* controller.Users.update_storage() now takes an optional callback.
* Various methods in controller.Notebooks responsible for calling controller.Users.update_storage().
* Added rate plan details to config/Common.py.
* Added quota utilization colors to style.css.
* Implemented quota utilization calculation and display in Wiki.js.
Still to-do: Return updated storage bytes where appropriate in controller.Notebook and update the
client accordingly.
* Blank iframe contents now come from static HTML rather than dynamic CherryPy.
* Reindented @strongly_expire decorator.
* Removed one stage of Editor's multi-stage construction.
pulldown with "titles only" and "everything" radio buttons, defaulting to
"titles only".
* Wiki javascript code for submitting a search now sends a new titles_only
parameter according to what the user has selected in the search pulldown.
* controller.Notebooks.search() now takes a new titles_only boolean argument,
which does exactly what you would expect.
it's query string "title=" arg or from the actual contained title.
* Made use of this new function in various places where title-grabbing was being done manually.
* Made Editor.mouse_clicked() highlight and bail if there's already an open editor with a matching
title. (Previously, it only did this matching by id.)
* Wiki.load_editor() now looks to an open Link_pulldown's title field for the note's title, if
available.
* Link_pulldown formats "title=" query string args with MochiKit's queryString() to escape spaces
and such.
* Updated NOTE_LINK_PATTERN in wiki download view (untested currently).