Archived
1
0
Commit Graph

213 Commits

Author SHA1 Message Date
Dan Helfman
3d1919287b Began a local/desktop mode, and made the server exit upon startup if it's already running. 2008-08-15 15:00:16 -07:00
Dan Helfman
6e8e1a31c9 Improved escaping of titles based on value of plaintext parameter. Finished unit for import_csv(). 2008-08-11 13:21:12 -07:00
Dan Helfman
6b8bb9ce4f Tweaked CSV import to support HTML refs (e.g. >) in imported titles. 2008-08-11 03:47:17 -07:00
Dan Helfman
4d50c1b869 Began unit tests for Notebooks.import_csv() and added stub tests for those that are still to do. 2008-08-11 02:34:32 -07:00
Dan Helfman
178bf48c86 Completed Files.csv_head() unit tests and reduced maximum returned elements per row length. 2008-08-09 02:13:52 -07:00
Dan Helfman
64bf4c49ee No longer introducing double newlines in CSV header sniff sample.
Also fixed unit tests for Files.parse_csv() with data appropriate for correctly sniffing the header.
2008-08-09 01:04:06 -07:00
Dan Helfman
52f129e571 New notebook import feature for importing notes from a CSV file. (Beta.)
Uses existing file upload mechanism with slightly modified UI to upload the file.
Then there's new CSV parsing code to parse the CSV and import it as a new notebook.
Still need a few more unit tests before this feature can be considered complete.
2008-08-08 16:39:53 -07:00
Dan Helfman
cc317c03ad Enforcing maximum note length after stripping the note of any disallowed HTML tags instead of before.
Also fixed broken unit test for save_note() without login.
2008-08-05 17:42:56 -07:00
Dan Helfman
8271f82734 Unit tests for controller.Notebooks.revert_note(). 2008-07-11 17:06:01 -07:00
Dan Helfman
bbb17e4046 controller.Root.guide() now accepts an optional note_id parameter. 2008-07-03 16:29:42 -07:00
Dan Helfman
48f58d0c0e Fixed bug in which bolding of suggest-as-you-type search text was case sensitive. Now it's case insensitive. 2008-06-29 22:49:29 -07:00
Dan Helfman
0271c4b5d9 Implemented full unit tests for controller.Notebooks.search_titles(). 2008-06-29 15:50:27 -07:00
Dan Helfman
599971ba01 When linking to a note by title, the note resolution is now
case-insensitive instead of case-sensitive.
2008-06-25 20:04:06 -07:00
Dan Helfman
41a85bb41f You can now resize embedded images (small, medium, or large).
Fixed a bug that potentially caused link pulldowns to open in the wrong
location when the page was scrolled past the top.
2008-06-18 17:14:07 -07:00
Dan Helfman
9c5d734fad Updated unit tests for yearly subscription "12 M" -> "1 Y" transition. 2008-06-18 17:13:13 -07:00
Dan Helfman
eaf45f5599 Links to embedded images now show up within the note tree's list of links.
Links to files that have not yet been uploaded (or have been deleted) are
now excluded from the note tree's list of links.
2008-06-17 20:25:44 -07:00
Dan Helfman
f7626d985c Fixed a bug that caused image files to get deleted if there were multiple images embedded within a single note.
Prevented a link pulldown from auto-opening by hovering if another pulldown is already open.
2008-06-16 16:22:50 -07:00
Dan Helfman
522f8b9330 Implemented support for embedded images within wiki notes. Also added hover support to open link pulldowns. 2008-06-13 15:55:19 -07:00
Dan Helfman
9a3f795985 More unit tests for user admin signup/modify/cancel, along with a fix for a bug unearthed by the unit tests. 2008-06-09 14:29:31 -07:00
Dan Helfman
46dc2663ee Update/remove group admin membership upon signup/cancellation. Some unit tests, but more needed for complete coverage. 2008-06-07 18:18:49 -07:00
Dan Helfman
6fcec83167 Fixed annoying bug where some unit tests didn't use stub SMTP class and so actually send real email messages. 2008-06-07 17:06:43 -07:00
1ea667528e Wrote unit tests for controller.Users.signup_group_member(). 2008-06-06 16:14:44 -07:00
7ee838d46e controller.Users.remove_group() now resets the removed user's rate plan to 0. Also fixed broken controller.Users.signup().
Updated unit tests.
2008-06-06 15:13:11 -07:00
9c923172ab Fixing broken unit test. 2008-06-05 16:00:24 -07:00
a0ca8025d0 New controller.Users.calculate_group_storage(). 2008-06-05 14:16:49 -07:00
0e51e461fa New controller.Users.remove_group() method to remove a user's group membership. 2008-06-03 20:19:07 -07:00
3a9cd0a024 New controller.Groups.update_settings() and associated unit tests. 2008-06-03 16:11:27 -07:00
39ca4c619b Groups.load_users() now returns info on the group itself as well. 2008-06-02 16:03:48 -07:00
79e2c45533 New controller.Groups class and a new controller.Users.check_group() method.
Also a new model.Group.sql_load_users() method.
Lots of unit tests.
2008-05-29 16:36:14 -07:00
df3d170362 View groups that you're a member of, with an indicatation if you're an admin of that group.
- modify controller.Users.current() to return the user's groups
    - update test_current() unit tests to expect empty groups list in results
  - modify Main_page, Notebook_rss, Front_page, Tour_page, and Upgrade_page to accept a new groups parameter
    - Main_page should add it as a hidden HTML variable
  - update Wiki.js to read the hidden groups variable and display the groups in account settings
2008-05-28 16:05:38 -07:00
Dan Helfman
e971959755 Attempting to access the RSS feed for a non-existent notebook now
displays a somewhat informative message in the feed instead of just
silently raising an error.
2008-05-26 23:00:31 -07:00
Dan Helfman
ae5c911c1c New multiple-notebook search query was way too slow. Now fixed.
- make model.Notebook.sql_search_notes() search either with user_id or an anonymous user_id, not both
  - update controller.Notebooks.search(), so if the anonymous user has access to the given notebook,
    then run the search as the anonymous user instead of the given user id
  - update unit tests
  - don't search trash/deleted notebooks
2008-05-19 22:36:21 -07:00
Dan Helfman
02a3544590 Search result now return notes from multiple notebooks.
- change model.Notebook.sql_search_notes() to be a static method
   - take a first_notebook_id argument and a user_id argument
   - join user_notebook on notebook_id and matches on user_notebook.user_id instead of notebook_id
   - order by notebook_id = first_notebook desc, rank instead of just rank
   - include search result for notebooks readable by anonymous user, but only if such a notebook is given as first_notebook_id
 - update code that calls model.Notebook.sql_search_notes()
 - update model.Note.to_dict() to include notebook_id
 - modify Wiki.display_search_results()
   - separate search results for the current notebook and results for all other notebooks
   - indicate which notebook each result is from
   - if there are results in other notebooks but no results in the current notebook, indicate that clearly
   - when you click on a result note link in the current notebook, it should simply open a new note
   - when you click on a result note link in another notebook, it should open in a new window
 - test in IE
 - update unit tests for:
   - controller.Notebooks.search()
   - model.Notebook.sql_search_notes()
   - model.Note.to_dict()
2008-05-19 15:16:25 -07:00
Dan Helfman
8b705ec4c3 In send_invites(), no longer implicitly assuming rate plan 0 has
notebook_collaboration set to False.
2008-05-08 23:17:17 +00:00
Dan Helfman
a6baa45435 Made signup support yearly subscriptions. 2008-05-08 19:14:39 +00:00
Dan Helfman
269c28983d Support for yearly subscriptions. 2008-05-08 18:39:46 +00:00
Dan Helfman
18982dc129 Implemented basic user account settings. Now you can change your email
address.
2008-05-08 03:05:35 +00:00
Dan Helfman
70f52a7406 Fixed a bug where an invite sent for a notebook with an accented unicode
name would cause a UnicodeEncodeError upon sending the invite email. Now
such invites are encoded as quoted-printable UTF-8, while other invites
continue to be 7-bit ASCII.
2008-05-06 23:29:43 +00:00
Dan Helfman
1d17ea4eff Fixed a bug where attempting to load a notebook preview without access
would give a "list index out of range" error instead of an access error.
2008-05-05 23:10:26 +00:00
Dan Helfman
1095e509de Fixed yet another diff-breaking edge case. This one had to do with
inserting italicized text right before some existing italicized text.
2008-05-03 07:40:46 +00:00
Dan Helfman
570e0ade77 More diff fixes. This time for "<br/>" tags. 2008-05-03 06:10:09 +00:00
Dan Helfman
94fdd08cf4 * Fixed a bug that prevented diffs from working for notes with links.
* Made CSS for links within <del> or <ins> red or green, respectively.
2008-05-03 05:36:28 +00:00
Dan Helfman
97c373561d * Added replace_contents() to model.Note to set the contents without updating the revision or anything else.
* Added new optional previous_revision params to default(), contents() and load_note() in controller.Notebooks.
   These use Html_differ() to generate and return diffs.
 * Updated Wiki.js:
   * provide previous_revision when a revision is opened in a new window/tab
   * call load_note() when two revisions when a revision is clicked in Changes_pulldown
   * update compare_versions() to display a diff instead of opening the two revisions separately
   * update load_editor():
     * update all invocations of load_editor(), including in Editor.js, to accept a new previous_revision argument
     * modify load_editor() to use the previous_revision argument (when supplied) to load a diff
2008-05-03 04:29:23 +00:00
Dan Helfman
42ae3e0ba1 Completed Html_differ unit tests. 2008-05-02 23:59:03 +00:00
Dan Helfman
5f852a3d8e Bug fix: Used to get access error when you loaded the children links for a note that was in the trash. 2008-04-29 21:26:09 +00:00
Dan Helfman
b71568b35b Implemented unit tests for controller.Notebooks.load_recent_updates(). 2008-04-29 03:25:38 +00:00
Dan Helfman
1d0867d776 * Renamed existing controller.Notebooks.load_recent_notes method to just recent_notes().
* Implemented new controller.Notebooks.load_recent_updates() method.
 * Added new Wiki.js total_notes_count_updated signal
 * Added "more" and "less" links to "recent updates" table.
 * Updated Wiki.js Recent_notes to support new "more" and "less" links.
 * Commented out unfinished discussion forums unit test.
2008-04-29 00:54:08 +00:00
Dan Helfman
011baf2cb4 Adding unfinished Forums controller and associated tests. 2008-04-25 20:34:01 +00:00
Dan Helfman
ea87c273f9 Added unit tests for new RSS related controller methods.
Setting separator to empty for a few more Rss_item elements.
2008-04-23 02:54:59 +00:00
Dan Helfman
eb587fc44f Fixed bug where recent notes were ordered by creation time instead of revision time. 2008-04-18 20:39:23 +00:00
Dan Helfman
c488864273 * Now if you try to load a page where access is required, and you're not
logged in, you'll be redirected to a login page. After you login, you'll
   be redirected to the page you were originally trying to access.
2008-04-18 19:54:50 +00:00
Dan Helfman
d0a1cbf71d Complete unit tests for controller.Notebooks.load_note_links(). 2008-04-16 08:13:35 +00:00
Dan Helfman
8541c784be Modified tests for controller.Notebooks.default() to test for new "recent_notes" return value. 2008-04-16 07:33:07 +00:00
Dan Helfman
6fb7038229 * Implemented all unit tests for new thumbnail() and related methods.
* Changed default thumbnail size to ( 125, 125 ) instead of ( 75, 75 ).
2008-04-02 05:34:50 +00:00
Dan Helfman
03f015f99a * Propsetting a bunch of svn:ignores.
* Added a bunch of thumbnail-related methods to controller.Files.
 * Modified Files.download() method to redirect to image preview if
   requested.
 * Implemented image preview to popup full image in a separate window.
 * Added empty stubs for relevant unit tests. Still to-do.
 * Added new dependency on python-imaging package (PIL).
 * Updated file info popup to include clickable thumbnail.
2008-04-01 21:54:43 +00:00
Dan Helfman
276bb9b5bc Fixing unit test to account for new Html_cleaner tag stripping behavior. 2008-04-01 21:32:01 +00:00
Dan Helfman
3fc9a74591 Additional unit tests for purging file links that have a quote_filename parameter. 2008-03-27 03:48:13 +00:00
Dan Helfman
afe8c1227c Fixed a bug in which Files.purge_unused() deleted the file for a file link
that had a quote_filename parameter.
2008-03-27 02:50:16 +00:00
Dan Helfman
c452408106 Finished remake of signup page. You can now click "signup" for non-free accounts even if you're not logged in. 2008-03-24 22:33:00 +00:00
Dan Helfman
e9d2ea28d1 Began redesign of upgrade/pricing page. 2008-03-22 04:01:21 +00:00
Dan Helfman
2cae1faf2d Conditionally quoting download filenames based on detected browser. 2008-03-18 22:22:19 +00:00
Dan Helfman
39a9cba457 Fixed a bug that prevented the upload of filenames with special characters
in them. In other words, I made controller.Files work better with unicode.
2008-03-18 20:40:39 +00:00
Dan Helfman
49a4c3c72d Completed unit tests for notebook movement methods. 2008-03-17 22:37:37 +00:00
Dan Helfman
f3b0d563c1 Fixed database transaction leak by wrapping every exposed database-using
controller method with a new @end_transaction() decorator. This
decorator is responsible for rolling back unfinished transactions.
2008-03-17 21:17:00 +00:00
Dan Helfman
94a51889f9 Added ability to reorder notebooks on the right side of the page.
Need to complete unit tests for controller.Notebooks.move_up() and move_down().
2008-03-15 03:04:59 +00:00
Dan Helfman
68fe84b707 Adding missing unit tests for controller.Root.tour(). 2008-03-13 20:45:45 +00:00
Dan Helfman
2b0a9af3e3 Client code now only calls save_note() on the server when necessary, and
takes startup flag into account.

Fixed unit test for database cache.
2008-03-07 23:14:39 +00:00
Dan Helfman
21ccc97826 Now using memcached in various places to improve performance. If the Python
cmemcache module is not importable, then memcached simply won't be used.
2008-03-05 00:34:58 +00:00
Dan Helfman
3af5af18c5 Changed controller.Users.logout() to not be a JSON method so just hitting the
"/users/logout" URL will log you out and redirect you the front page.

Made front page prettier and better at explaining Luminotes (hopefully). The
front page is no longer a wiki, but is instead a mostly static page.
2008-03-01 00:26:06 +00:00
Dan Helfman
dcd40eaa45 Tweaked controller.Files.download() to better handle filenames with weird characters. 2008-02-24 01:01:50 +00:00
Dan Helfman
bb8442bb03 All unit tests passing again. 2008-02-23 23:57:05 +00:00
Dan Helfman
b7e1b26d3b Unit tests for controller.Files are done! 2008-02-23 23:16:39 +00:00
Dan Helfman
3ed4145ed3 Yet more controller.Files unit tests. 2008-02-23 22:59:36 +00:00
Dan Helfman
4150811d9e Many more controller.Files unit tests. 2008-02-23 22:17:02 +00:00
Dan Helfman
7b76d6371b Additional unit tests. 2008-02-23 08:59:39 +00:00
Dan Helfman
3f5d5d2a89 Implemented several unit tests for controller.Files. 2008-02-23 08:14:19 +00:00
Dan Helfman
731dc52623 More work on file uploading. Unit tests need to be fixed. 2008-02-18 20:08:07 +00:00
Dan Helfman
1398e89f96 Wrote initial unit tests for new Files controller. A few more still needed. 2008-02-06 01:34:12 +00:00
Dan Helfman
ffd2d15175 Now, if you delete a notebook and the only remaining notebook is read-only,
then a new read-write notebook is created for you automatically. This fixes a
bug where you could delete a notebook and have only a read-only notebook
remaining, thereby having no way to add a new notebook.
2008-01-24 22:02:02 +00:00
Dan Helfman
4fd44700e1 Now tracking conversions for subscriptions.
Notes in the trash can no longer be edited. They must be undeleted first.
2008-01-22 20:29:29 +00:00
Dan Helfman
76d5f48fa2 Wrote unit tests for controller.Users.paypal_notify() and thanks() methods.
Changed some wording on the thank you page.
2008-01-15 00:36:19 +00:00
Dan Helfman
8f00cceb94 Made upgrade page dynamically generated on the server instead of static html.
This allows things like only displaying subscription buttons if you're logged in.
2008-01-10 08:33:19 +00:00
Dan Helfman
7bdc228d09 A user can now revoke their own access. Protecting users from the own
stupidity proved too complex and fragile. So now they have the full power to
shoot themselves in the foot.

A user can no longer, however, redeem an invite that they send to themself.
2008-01-06 21:59:22 +00:00
Dan Helfman
2bcbc17172 Feature to preview notebook as viewer or collaborator, so you can see what it
will look like to people you share it with.

Hopefully fixed broken demo conversion detection.
2008-01-06 00:12:18 +00:00
Dan Helfman
980ad74e79 When redirected to a note in the main notebook as a result of accessing, for
instance, the "/upgrade" URL, your no longer appear to get logged out.
2008-01-05 00:42:50 +00:00
Dan Helfman
9fb0951c16 Unit test for one user saving a note that was created by a different user. 2008-01-04 22:58:20 +00:00
Dan Helfman
5520fe5892 * make a User_revision object containing a revision timestamp, user_id, username
* change controller.Notebooks.load_note_revisions() to select and return User_revision objects
 * change controller.Notebooks.save_note() to use User_revision objects for new_revision and previous_revision as well
 * update client to deal with new load_note_revisions() return values (make sure all uses of revisions_list are updated)
 * update client to deal with new new_revision/previous_revision
 * update changes pulldown to show username along with each timestamp
 * update model.Invite to load redeemed_username along with redeemed_user_id
 * display the redeemed username next to each email address in the "share this notebook" note
2008-01-04 04:45:43 +00:00
Dan Helfman
a354eadcbb When saving a model.Notebook or model.Note to the database, set the user_id field based on the current user. 2008-01-01 01:44:54 +00:00
Dan Helfman
d0d87731d2 * Preventing a user from revoking their own access.
* More unit tests for revoking access.
2007-12-30 01:20:38 +00:00
Dan Helfman
05876e2d7e Another unit test for sending invites. 2007-12-29 20:00:42 +00:00
Dan Helfman
bb1bbb26e1 Unit tests for controller.Users.redeem_invite(). 2007-12-28 06:36:57 +00:00
Dan Helfman
f00809955c * Users.signup(), Users.login(), and Root.default() now support optional invite_id parameter.
* Modified Wiki.js to include invite_id parameter when necessary.
 * Increased storage quota (and price) for premium rate plan.
 * Added a note displayed when redeeming an invite, with links to signup and login.
2007-12-27 22:16:47 +00:00
Dan Helfman
8372b03373 Began work on invite redeeming. 2007-12-18 00:05:13 +00:00
Dan Helfman
4a5aeaed98 Implemented server-side portion of revoke_invite(), so now the UI for revoking invites functions properly. 2007-12-14 01:53:12 +00:00
Dan Helfman
f9b4d41a15 model.Invite.sql_load_similar() should not require from_user_id to be the same.
This way, when there are multiple notebook owners, they can get each others' similar invites.
2007-12-13 23:17:24 +00:00
Dan Helfman
36c5ff5b08 Display of current invites now updates when you add new invites.
This means that controller.Users.send_invites() now returns a list of current invites.
Added a "new!" to the share link.
2007-12-13 20:26:32 +00:00
Dan Helfman
225167035d * model.Invite now has a to_dict() method, like other model classes do.
* Initial invites are now returned through Main_page() and displayed (but not
   yet updated) within the "share this notebook" note.
2007-12-12 00:52:34 +00:00
Dan Helfman
a4a6667642 Demo accounts cannot share their notebook anymore (but free accounts can). 2007-12-11 06:28:56 +00:00
Dan Helfman
52c111895a Non-paying users can now invite people to their notebook, but only as viewers.
Paying users can invite them as viewers, collaborators, or owners.
2007-12-11 02:58:31 +00:00
Dan Helfman
5554b1df17 * Started a static upgrade HTML file with rate plans.
* Fixed Invite.sql_update() to have SQL params in proper order.
 * Fixed bug where email addresses containing "-" were considered invalid.
 * Made UI for inviting other people to your notebook.
 * Tweaked the rate plans and added a new one.
2007-12-11 01:15:03 +00:00