witten
/
luminotes
Archived
1
0
Fork 0
Commit Graph

178 Commits

Author SHA1 Message Date
Dan Helfman 4d736d4821 Lots of work on user storage quotas:
* 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.
2007-09-20 20:36:19 +00:00
Dan Helfman d4d41c9d48 Now replacing/refreshing "all notes" when it's already open and you click the "all notes" link again. 2007-09-11 19:19:03 +00:00
Dan Helfman 49a692f378 Intentionally *not* showing a link pulldown when you start a link and begin
typing. Only showing the pulldown when you end the link (or when you navigate
away and then come back).
2007-09-11 00:10:44 +00:00
Dan Helfman 060b0b6845 Overhauled display of search results. Now displaying a "magic" search results
note containing a list of search results along with previews of the display
notes.
2007-09-10 20:04:46 +00:00
Dan Helfman 78d5845140 Fixing broken "all notes" link. Sigh. 2007-09-07 23:58:03 +00:00
Dan Helfman 773ea3bf2b If a link had title "all notes" but a different link id for the destination,
and you clicked on the link without opening the link pulldown first, then the
link would open up "all notes" instead of the correct link destination.
2007-09-07 23:46:01 +00:00
Dan Helfman ecf44bdf6e Made code dealing with "all notes" in link pulldown work better (or at all). 2007-09-07 23:03:12 +00:00
Dan Helfman ae347d0e3b Wrote stub invoker for testing purposes and made use of it in Test_wiki.html. 2007-09-06 21:36:39 +00:00
Dan Helfman e747e9c2ff Reverting r333 and making alternate fix for duplicate notes when repeatedly
clicking links, because r333 broke link pulldown title grabbing. Must..
write.. unit.. tests!
2007-09-06 08:27:41 +00:00
Dan Helfman ae342ac5d6 Preventing opening of dup notes from note links. 2007-09-05 23:49:25 +00:00
Dan Helfman f7b97fb41d Don't create duplicate "all notes" when opened from a note link. 2007-09-05 23:44:34 +00:00
Dan Helfman 5aaf0d6276 Reverting to earlier behavior: Options pulldown doesn't close if you click a checkbox. 2007-09-05 23:11:19 +00:00
Dan Helfman 439fd49880 Prevent one note from "shadowing" another note with the same name. Previously,
if you clicked a link with a note id and a note with the link's title was
already open, it just highlighted that note, regardless of the id. Now, that
will only happen if the link has no id.
2007-09-05 19:54:04 +00:00
Dan Helfman 8a2c872e0a Fixing IE extra comma bug. 2007-09-05 19:06:33 +00:00
Dan Helfman b6204179c9 No hide button while in the trash. 2007-09-05 18:57:50 +00:00
Dan Helfman ad7c6aca7f Removing unused insert_after_iframe_id parameter. 2007-09-05 18:53:42 +00:00
Dan Helfman f21610eaf7 * In the trash, now showing "the trash is empty" when you delete/hide/undelete enough notes to make it empty.
* Wiki.create_editor() returns the editors it just created.
 * Wiki.open_editors initialized with startup notes.
2007-09-05 18:49:28 +00:00
Dan Helfman 7bf6d8685f Changing "This notebook is empty." from error to message. 2007-09-05 07:37:04 +00:00
Dan Helfman ce4c49d87e There's now a link to the trash in the "This note has been moved to the trash." message. 2007-09-05 07:34:59 +00:00
Dan Helfman 259002efe0 Clicking the background now closes any open pulldowns. 2007-09-05 02:30:15 +00:00
Dan Helfman 197d65877f * Changed client "recent notes" link to "all notes".
* When you try to load a note called "all notes", load a magic (dynamically-generated) note that
   lists all notes in reverse revision time order.
 * Changed controller.Notebooks.recent_notes() to all_notes().
 * Prevent "all notes" link from showing up when you're in the trash.
 * Prevent link pulldown from showing up for links within read-only notes.
 * Wrote a crappy deletenote tool.
2007-09-04 21:37:48 +00:00
Dan Helfman c3e4f69525 Fixing bug that prevent viewing older revisions of notes in the trash. 2007-09-02 03:51:31 +00:00
Dan Helfman 0b920ca8a5 Changing unused "recent notes" href to different unused URL. (It's unused because a Javascript onclick handler overrides it.) 2007-09-01 21:24:55 +00:00
Dan Helfman 2608350762 Remove "FIXME" for something that turned out not to be a bug. 2007-09-01 21:21:59 +00:00
Dan Helfman 70b3e415f1 * Added new controller.Notebooks.delete_all_notes() method.
* Put UI link in trash to delete all notes.
2007-09-01 21:06:37 +00:00
Dan Helfman bcade394e9 Moved login link to the top of the page; now present dependent on whether you're already logged in. 2007-08-30 23:57:56 +00:00
Dan Helfman 0f401829e7 Some limitations on trash notebooks:
* Can no longer create new notes in the trash.
 * If you click on a link within a note in the trash, you just get a message telling you to undelete it.
2007-08-30 20:39:41 +00:00
Dan Helfman 2732e262f0 IE now properly shows link pulldown when you end a link. Also, in all
browsers, now silently refusing to close a pulldown upon request when it's
been open less than a quarter second.
2007-08-30 20:17:10 +00:00
Dan Helfman a1fb86f306 Reverting [304] because it prevents you from seeing the main Luminotes wiki when you're logged in. 2007-08-30 19:08:37 +00:00
Dan Helfman f53ea0dcbd When you start a link, the link pulldown doesn't show up right away anymore
because many people found this confusing. Instead, now the link pulldown shows
up when you end the link.
2007-08-29 23:54:14 +00:00
Dan Helfman 4e932255a4 UI code no longer responsible for surpressing display of "Luminotes" notebook link. That's now done on the server. 2007-08-29 18:36:41 +00:00
Dan Helfman eebbabb664 Not showing "Luminotes" notebook in list of notebooks, as it's kind of confusing. 2007-08-29 01:18:06 +00:00
Dan Helfman d90f21b17a New optional parent_id argument to controller.Notebooks.default() to support "return to notebook" in the trash. 2007-08-29 00:50:46 +00:00
Dan Helfman c1b99b3a71 No longer opening a new black note when clicking on the background, and that
can get really annoying if you miss a button.
2007-08-28 23:51:53 +00:00
Dan Helfman cebc6458cb When viewing the trash, header/border/etc have their own trash color. 2007-08-28 20:57:08 +00:00
Dan Helfman 41372a2df8 At Kevin's suggestion, added a partial border around the notebook, added a
notebook title to the top of the page, and highlighted the notebook title on
the right as well.
2007-08-28 20:36:33 +00:00
Dan Helfman fd175aa85d No longer sending quite as much data in response to /users/current requests.
Now the client has to explicitly request the inclusion of startup notes.

Also no longer including startup notes or revision lists with every single
serialized Notebook.
2007-08-27 22:37:22 +00:00
Dan Helfman bbc3f11914 Changing unordered list key combo from ctrl-u to ctrl-period since it collided with underline's key. 2007-08-27 21:09:39 +00:00
Dan Helfman e2d85b79a5 Added underline button to toolbar. Useful for things like book titles. 2007-08-27 21:01:42 +00:00
Dan Helfman 86a2daf09d Removed unused from_iframe_id argument from several functions. 2007-08-24 20:50:07 +00:00
Dan Helfman 20313728d2 Several changes to handle the case where a note is changed out from under you, due to being saved
from a different window:
 * Made controller.notebooks responsible for preventing unmodified notes from being saved, instead
   of model.Notebook handling this task.
 * Created a revision validator for passing revisions as arguments to exposed methods.
 * controller.Notebooks.save_note() now requires a previous_revision parameter, used to determine
   whether the note has been modified in the particular window it's being saved from.
 * save_note() returns a new previous_revision value, so the client can determine whether a save
   has occurred from another window.
 * controller.Notebooks.undelete_note() fixed to quietly bail if the note to undelete isn't
   actually deleted, which can happen if it was undeleted in another window.
 * Editor() now responsible for making revisions list if it doesn't exist
 * No longer giving an "undo" message when the user deletes an empty note.
 * On the client side, detecting whether the previous_revision as reported by save_note() looks
   correct, and if not, alerting the user about the conflict. Also displaying a "compare versions"
   button that opens both the current version and the previous version.
2007-08-23 23:56:42 +00:00
Dan Helfman 2dcd3e1483 Fixed broken revisions list under "changes" button.
I really need client-side Javascript unit tests to catch exactly these sorts of regressions.
2007-08-23 07:00:18 +00:00
Dan Helfman 094323ee58 Fixed broken deletion undo. 2007-08-23 06:45:42 +00:00
Dan Helfman f9b355277c When there's an error, remove all empty editors. This prevents a bug where
empty editor frames stay displayed but never load if there's a network
connectivity problem.
2007-08-21 21:25:59 +00:00
Dan Helfman 082697fe5a More title tags for various links. 2007-08-20 20:10:19 +00:00
Dan Helfman 22767f1cc9 Added some explanitory title tags to various pulldown options. 2007-08-20 20:02:42 +00:00
Dan Helfman e0e144a200 Fix for broken inheritance, which incidentally cause a link's pulldown not to
show up more than once because the pulldown's derived shutdown() method wasn't
being invoked the first time.
2007-08-20 19:51:02 +00:00
Dan Helfman f4428c65ba Selecting all text in link pulldown's title field only on focus not, not every click. 2007-08-20 18:43:45 +00:00
Dan Helfman 7973d87a7d * Turned "search:" label into a search button that, when clicked, displays a
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.
2007-08-17 22:26:02 +00:00
Dan Helfman 5a4ec1911b Display "there are no notes here" when showing an empty trash. 2007-08-16 23:27:29 +00:00
Dan Helfman faaa4b6fdd Got external links working!
* Altered Html_cleaner to allow link targets.
 * Modified Wiki.load_editor(), Wiki.resolve_link(), and Link_pulldown() to
   support external links with "_new" targets.
 * Modified Editor.mouse_clicked() to explicitly open a new window for external links clicked in
   read-write editors, because the browser won't open clicked link by itself unless they're in
   read-only iframes.
 * Removed a duplicate Editor.contents() function.
 * Increased Link_pulldown title field size to 30 characters.
2007-08-16 22:27:58 +00:00
Dan Helfman a6182dffeb Autoselect title field text in link pulldowns when clicked. 2007-08-16 20:17:14 +00:00
Dan Helfman 8f8f0a2262 In Link_pulldown's constructor, if the note has no destination note id set,
try loading the note from the server by title.
2007-08-16 20:11:01 +00:00
Dan Helfman a849935b1d Bugfix that prevented undo from working. 2007-08-16 19:55:11 +00:00
Dan Helfman 3424e6ad12 Some refactoring of the new link resolving and launching code, because, well,
it was just plain broken:

 * Setting link hrefs is no longer done in quite so many places to prevent
   conflicts. Still could be more centralized though.
 * Editor is no longer responsible for tracking note titles. It now issues
   signals for title changes, and Wiki takes care of tracking titles for all
   open editors.
 * A few places in Editor weren't making use of the new link_title()
   convenience function. Now they are.
 * They way Wiki was associating link pulldowns with their links was
   completely broken, because Javascript Arrays can't use DOM objects as keys.
   At least not if you want them to work. Now just setting a "pulldown" member
   on each link node directly.
 * Moved some of the "if you click a link and the target editor is already
   open, just highlight it" logic out of Editor and into Wiki. (Both
   load_note() and resolve_link(), unfortunately.)
 * Made Link_pulldown.title_field_changed just rely on resolve_link() instead
   of doing all the link resolving itself.
2007-08-16 01:29:18 +00:00
Dan Helfman 8e819b7c01 Work-around for bug in IE where positions of iframe contents are not only
relative to the iframe itself, but also relative to how far the user has
scrolled.
2007-08-15 20:35:02 +00:00
Dan Helfman 52fd0d154a * Implemented a link_title() convenience function to get the link title from a link, either from
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).
2007-08-15 00:18:30 +00:00
Dan Helfman 429dc44370 Fixed a bug where Link_pulldown.display_preview() didn't correctly support either a DOM node or a string for its contents argument.
Also no strip()ing the scraped contents text so removing the note title works better.
2007-08-14 20:56:13 +00:00
Dan Helfman cae5d2272d When loading and parsing a note for display in an editor, there's now an optional link argument so
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.
2007-08-14 20:34:31 +00:00
Dan Helfman 69caeaf655 Code mostly related to manipulating wiki links, plus a new link pulldown:
* 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).
2007-08-14 04:13:49 +00:00
Dan Helfman ec9cd1066c No longer moving any iframes when displaying search results that are already
open, as that causes the iframe contents to revert to as they were when the
iframe was loaded.
2007-08-11 21:49:33 +00:00
Dan Helfman ea64cc97a2 If you undelete a note via undo, now it's indicated in the options pulldown that it's a startup note. 2007-08-10 19:19:47 +00:00
Dan Helfman 3de7d59d64 No longer hiding any editors when you click a link in a note in the middle of the page. 2007-08-10 19:07:00 +00:00
Dan Helfman f2eac9cb1f Implemented a basic trash, including undo upon note deletion and undeletion from the trash:
* 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()
2007-08-07 01:48:43 +00:00
Dan Helfman 0ac518e395 * controller.Users.current() now returns an http_url if one is configured in config/Common.py
* 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.
2007-08-02 18:52:20 +00:00
Dan Helfman f23fcdde21 * Can now click on revision timestamps to open up the contents of previous note revisions with a small timestamp at the top.
* 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.
2007-07-31 22:53:57 +00:00
Dan Helfman 2c20d60f9e * Rewrote all wiki note links to be of the form: /notebooks/notebookid?note_id=noteid
* 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.
2007-07-28 04:22:44 +00:00
Dan Helfman 069532b58c Reverting to previous revision. Didn't mean to checkin these changes yet, as they're not complete. 2007-07-27 00:33:32 +00:00
Dan Helfman 35459270be Now ignoring link clicks that are with the right or middle mouse buttons. 2007-07-27 00:32:42 +00:00
Dan Helfman ccc1cc2f2d Fix for bug introduced by revisions list that preventing opening of new editors by clicking links. 2007-07-26 23:02:24 +00:00
Dan Helfman f05d3db661 * Added a "changes" tab with a list of revision timestamps for each note. Note yet clickable.
* 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.
2007-07-26 01:18:41 +00:00
Dan Helfman 120c29954c More changes to search results displaying:
* Now, already open editors that happen to be in the search results are forcibly moved to be with the result of the search results.
2007-07-23 23:42:53 +00:00
Dan Helfman 94f75f23a7 Search results display changes:
* 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.
2007-07-23 23:19:15 +00:00
Dan Helfman 8e6b152483 Factored out options pulldown into a separate "sub-class" of Pulldown. 2007-07-20 22:41:20 +00:00
Dan Helfman 5dca7e972e Changing note link key to ctrl-L and unordered list to ctrl-U. 2007-07-18 20:28:42 +00:00
Dan Helfman 0976fdf8c6 Renaming all entries to notes to fit better with the name "Luminotes". 2007-07-17 01:21:31 +00:00
Dan Helfman 64bf5e34a1 Renamed placeholder title "Limited Medium" to "Luminotes". 2007-07-16 21:03:39 +00:00
Dan Helfman 02cfca5322 Renaming repository to new name: luminotes 2007-07-16 20:22:38 +00:00