witten
/
luminotes
Archived
1
0
Fork 0
Commit Graph

383 Commits

Author SHA1 Message Date
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 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 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 8fd463e22d More docstrings. 2007-08-09 19:44:26 +00:00
Dan Helfman a866c617ec More API documentation on the controllers. 2007-08-09 19:06:01 +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 4e28620348 * Added a trash Notebook to model.Notebook.
* 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).
2007-08-03 21:12:17 +00:00
Dan Helfman 4356336f6b Updated unit tests for redirect upon non-http / request when logged in.
Also updated INSTALL with info about Apache configuration.
2007-08-03 19:43:16 +00:00
Dan Helfman ccb81d18ee Checking the start of the requested URL to determine whether it was an https
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.
2007-08-03 19:29:20 +00:00
Dan Helfman 9e0b611790 When the user is logged in and hitting the root page ("/") without https, do a redirect to https. 2007-08-02 23:25:57 +00:00
Dan Helfman 4a3571a4e8 Changing logout redirect to honor whatever the http_url setting happens to be. 2007-08-02 18:57:53 +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 8ba824ef4f Removing debugging print. 2007-08-01 20:23:12 +00:00
Dan Helfman ccfcd3ccfe * Added convenience method to model.Notebook called is_startup_note(), and made use of it.
* 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.
2007-08-01 02:23:54 +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 b7b88f25a3 Accidentally left out of last commit. 2007-07-28 04:23:17 +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 f81707ea2f For none_okay validator flag, allow empty strings as well. 2007-07-28 04:11:14 +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 e356b3349e Another work-around for None notes. 2007-07-24 21:12:12 +00:00
Dan Helfman 35e06bccef Fixing unit test that was broken by earlier switching to secondary id keys including class names. 2007-07-24 00:03:50 +00:00
Dan Helfman 0129c2a2c3 Schema change to secondary ids are stored with their class, not just their bare id. 2007-07-20 20:05:02 +00:00
Dan Helfman 78fef663b2 Now, if an exception is raised within a function decorated with
@update_client, it get propagated to the client in the form of a
not-very-helpful generic error message.
2007-07-19 23:13:19 +00:00
Dan Helfman c34811f378 Replaced Scheduler's internal use of threading.Event with threading.Semaphore
to prevent race condition that caused timeouts.
2007-07-19 22:18:07 +00:00
Dan Helfman 203a8f9e70 Another filter to skip None notes. 2007-07-19 20:15:07 +00:00
Dan Helfman 2b307b6690 Html_cleaner no longer converts ":" to ":". 2007-07-19 19:23:59 +00:00
Dan Helfman 1ecad1a00c Fix so None doesn't ever get added to result list, which screws up the parser. 2007-07-19 19:06:22 +00:00
Dan Helfman 24a7205d3a Html_nuker now converts some character/entity refs to their ascii equivalents,
which allows searching for things that contain non-alphanumeric characters
encoded as char/entity refs.
2007-07-19 19:03:40 +00:00
Dan Helfman 6bb233f8da When Html_nuker was initialized with allow_refs, the code was incorrectly
allowing character/entity references, so ":" was becoming just "58".
2007-07-19 18:24:08 +00:00
Dan Helfman abd9948588 When downloading the wiki as HTML, skip None notes. 2007-07-18 20:17:58 +00:00
Dan Helfman 3ba0527d4c Added a reload() method to Database, designed for loading and immediately
saving a key/value to the database. This is useful for schema evolution.
2007-07-18 19:43:12 +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 02cfca5322 Renaming repository to new name: luminotes 2007-07-16 20:22:38 +00:00