witten
/
luminotes
Archived
1
0
Fork 0
Commit Graph

361 Commits

Author SHA1 Message Date
Dan Helfman 8271f82734 Unit tests for controller.Notebooks.revert_note(). 2008-07-11 17:06:01 -07:00
Dan Helfman 3153492086 Basic note reverting now works. 2008-07-11 14:41:48 -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 fe139cc749 First pass for suggest-as-you-type for linking. 2008-06-27 16:11:09 -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 41821e727e Changing 12 month subscription validation to instead expect 1 year, to reflect similar changes in configuration. 2008-06-18 13:08:57 -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 9bbed27d73 Fixed a bug in which an image thumbnail could not be loaded unless
you had a valid session.
2008-06-16 23:22:12 -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 8b52ffabfa Updated tools/set_plan.py to automatically update a user's group
membership.
2008-06-09 20:14:42 -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
Dan Helfman 1ea667528e Wrote unit tests for controller.Users.signup_group_member(). 2008-06-06 16:14:44 -07:00
Dan Helfman 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
Dan Helfman a8a6070da0 Implemented controller.users.signup_group_member().
Modified UI code to call this method correctly and display results.
Split generic user signup functionality out into a separate private method.
2008-06-06 14:46:29 -07:00
Dan Helfman 9c923172ab Fixing broken unit test. 2008-06-05 16:00:24 -07:00
Dan Helfman 0faa06ea10 Called controller.Users.calculate_group_storage() from various places. Fixed model.User.sql_calculate_group_storage(). 2008-06-05 15:59:01 -07:00
Dan Helfman a0ca8025d0 New controller.Users.calculate_group_storage(). 2008-06-05 14:16:49 -07:00
Dan Helfman 0e51e461fa New controller.Users.remove_group() method to remove a user's group membership. 2008-06-03 20:19:07 -07:00
Dan Helfman 3a9cd0a024 New controller.Groups.update_settings() and associated unit tests. 2008-06-03 16:11:27 -07:00
Dan Helfman 39ca4c619b Groups.load_users() now returns info on the group itself as well. 2008-06-02 16:03:48 -07:00
Dan Helfman 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
Dan Helfman 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 953f572b20 Bug fix: Clear the memcache, search for notes in an main notebook (as the
anonymous user), open a search result from a notebook. Then, login and try to
edit that notebook as a user with read-write privileges. it will show up as
read-only, presumably because it's being read from the cache.
2008-05-19 23:43:33 -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 20995d3b2e Added support for database hostname and ssl mode in configuration file. 2008-05-16 14:12:01 -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 0323f6bc91 Passing new yearly parameter to main page. 2008-05-08 19:29:11 +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 bb77cefeaa Possibly fixed a bug where IE 7 would fail to download as HTML via HTTPS
due to cache issues. The fix entailed using a new @weakly_expire decorator
on controller.Notebooks.download_html().
2008-05-06 21:41:00 +00:00
Dan Helfman 8bed4a7f4d Fixed a bug where the Valid_id() validator would raise a TypeError when
given a None value. Now raising a ValueError instead.
2008-05-05 23:32:45 +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 ba89c8116b Updated to handle the following case:
* If a phrase becomes italicized, it should show the non-italic version in red and immediately after, the italic
   version in green.

This required doing a pass on the HTML to merge certain elements together before doing the actual diff.
2008-05-02 21:03:46 +00:00
Dan Helfman 9b2a9db4e9 Implemented new HTML diffing class to produce an HTMLized diff of two HTML
strings. Not perfect yet. For instance, if string a contains "foo bar baz" and
string b contains "foo <i>bar</i> baz", the resulting output does not show
"bar" in strikeout and "<i>bar</i>" in green, as one might expect.
2008-05-02 18:58:36 +00:00
Dan Helfman e052e3b357 Fixed bug in Html_cleaner which produced broken tags like "<br/>" instead of "<br />" 2008-05-02 18:56: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 09f771b508 Commenting out discussion forums for now since they're unfinished. 2008-04-25 20:36:01 +00:00
Dan Helfman 011baf2cb4 Adding unfinished Forums controller and associated tests. 2008-04-25 20:34:01 +00:00
Dan Helfman 9c617687bd Fixing comment. 2008-04-25 19:46:42 +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 b316b2f4a3 * Increasing after_login max string size from 100 to 1000 to accomodate larger URLs.
* controller.Notebooks now takes (and stores) an https_url constructor parameter.
 * New controller.Notebooks.updates() method to produce an updates RSS feed for a particular notebook.
 * New controller.Notebooks.get_update_link() method to make a brief page with just a link for an updated note, referred to by the feed.
 * Implemented views for the new RSS feed.
 * Fixed bug in Rss_item's guid that caused newlines to be inserted before and after long URLs.
 * Still need to unit test new controller code.
2008-04-22 23:24:30 +00:00
Dan Helfman d3dce6f775 Sigh. 2008-04-22 20:26:09 +00:00
Dan Helfman 0f30c89ff3 Fixing "local variable 'image_buffer' referenced before assignment" error. 2008-04-22 19:35:33 +00:00
Dan Helfman b3d5187c6c Fixed bug where calling image.save() with an interlaced PNG file would
raise an IOError. Now just displaying the default thumbnail if that
happens.
2008-04-22 18:34:34 +00:00
Dan Helfman 1ca9af536c Added RSS subscription links for all notebooks. 2008-04-18 20:49:22 +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 456c1b5fb8 Don't display recent notes on the main Luminotes notebook. 2008-04-16 01:39:24 +00:00
Dan Helfman 431bf6ace7 Completed recent notes list:
* displaying list of links
  * adding links
  * removing links
  * updating links
  * controller.Notebooks.contents() changes to return recent notes
2008-04-16 00:28:18 +00:00
Dan Helfman db03f39c06 When all the children of a display note are removed, remove the expander from
that note's entries in the note tree. When a note with no children is updated
so that it has at least one child, add an expander to that note's entries in
the note tree.
2008-04-14 23:54:04 +00:00
Dan Helfman 0d4bb81943 Clicking an external link or a file link in the note tree now opens with target=_new. 2008-04-12 02:32:11 +00:00
Dan Helfman eaaf1b3de5 Lots more work on the note tree control. Still not done, and some of the new icons suck. 2008-04-12 00:51:32 +00:00
Dan Helfman 272dd3e157 Converted dump_emails.sh to dump_emails.py so that it can run on a separate server from the database. 2008-04-07 04:47: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 388b49c345 Now stripping HTML comments. 2008-03-31 04:29:18 +00:00
Dan Helfman b403e5419c Made Html_cleaner support many more HTML tags and attributes, so users can
cut and paste from other programs into Luminotes.
2008-03-31 00:31:13 +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 0754a0b4bb Apparently get_transaction_status() was introduced in psycopg 2.0.6. :( 2008-03-17 23:10:14 +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 a4387ea371 New rollback() method. Not yet used anywhere. 2008-03-17 19:47:56 +00:00
Dan Helfman 90a31c4e81 Makes blog work again. 2008-03-17 08:32:21 +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 2d55455120 Fixed a bug where, after you highlighted a link and clicked the link button
to unlink it, the link info box popped up.
Actually checking in cache changes that were supposed to be in previous
release.
2008-03-10 23:15:33 +00:00
Dan Helfman 1f57e4ba8a Whoops. 2008-03-07 23:20:32 +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 7a0368b5d9 Fixed cache behavior so we don't touch the cache within Database.save() if
there's no commit flag. Then, when Database.commit() is called, any pending
saves are put into the cache.
2008-03-07 23:00:07 +00:00
Dan Helfman 6dcad328b0 Exposing take_a_tour alias. 2008-03-07 21:16:19 +00:00
Dan Helfman 8fb1d9a80e Temporary hack so that cache sets are performed whenever save() is called,
regardless of commit flag. Without this, the file upload progress bar breaks
because it gets a stale File object out of the cache.

Eventually, it would be better if cache sets were only done condittionally
based on commit flag, and also whenever Database.commit() is called.
2008-03-06 23:21:15 +00:00
Dan Helfman 50367579c0 Beginning revamp of tour page and screenshots. 2008-03-06 07:21:35 +00:00
Dan Helfman e5b0dd0418 Generalized product page so it could be used for more than just the front page. 2008-03-05 20:55:09 +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 42de8979dc For demo accounts, no longer doing automatic redirect to first notebook thing when you hit "/" without a referrer. 2008-02-27 21:32:39 +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 9743859b41 Now correctly allowing large file uploads. 2008-02-24 00:31:07 +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 e7c96cadf5 Using "link.innerHTML =" instead of replaceChildNodes() to set a file link's
title when uploading a file, as this plays more nicely with IE. With
replaceChildNodes(), IE swallows the text cursor and won't give it back.

Also explicitly passing link parameter to Upload_pulldown() constructor, as
editor.find_link_at_cursor() wasn't always working in IE.
2008-02-22 23:03:10 +00:00
Dan Helfman 36b11805c6 Now purging files from the database/filesystem when notes they're linked from
are deleted from the trash. Also displaying a message when deleting a file
manually via the "delete" button.
2008-02-22 21:08:29 +00:00
Dan Helfman db1bc247ad Changing file link pattern slightly so that a file link with no title is not counted. 2008-02-22 20:04:23 +00:00
Dan Helfman 65ce915755 When saving a note, auto-delete any files that used to be linked from it but no longer are. Still need unit tests. 2008-02-22 19:47:28 +00:00
Dan Helfman 7b8f6bd6e5 Improved error reporting in the controller.Files.upload() method. Now
correctly displays an error to the user when uploading without a filename or
with an invalid file.
2008-02-21 19:39:03 +00:00
Dan Helfman 6a5481f7d6 Fixed updating and display of storage usage when an uploaded file is deleted. 2008-02-21 03:41:37 +00:00
Dan Helfman eb18b6020d File renaming works. Unit tests still pending.
File deleting implemented. Testing and unit tests still pending.
Now releasing session lock at top of download() to prevent session deadlocks.
2008-02-20 23:25:13 +00:00
Dan Helfman fd0e91ea39 Implemented quota enforcement when uploading a file. This occurs in two places:
1. In progress(), around the time when the file starts uploading. This causes
an upload that's too large to bail before the whole file uploads, but the
quota calculation is only an estimate and relies on the client actually
calling progress().

2. In upload(), when the file finishes uploading. This quota calculation is
exact, but only happens after the entire upload completes.
2008-02-20 20:21:54 +00:00
Dan Helfman 3d5baa1e24 * Quota storage calculation now takes uploaded files into account.
* controller.Files.upload() now updates user quota storage.
 * When a file is uploaded, the new storage bytes count is returned to the client and displayed.
2008-02-20 00:57:10 +00:00
Dan Helfman f6c5071099 Moved HTML streaming progress bar code into view/ where it belongs. 2008-02-19 21:27:14 +00:00
Dan Helfman 8443f7e5cb Once an upload has started, you can no longer close the Upload_pulldown by
clicking somewhere else. You have to click "cancel". This is to prevent
accidental upload cancellations.
2008-02-19 20:48:43 +00:00
Dan Helfman a34ffe2dc6 controller.Files.upload() now removes file data from disk upon an aborted upload.
Wiki.js Upload_pulldown() now has an update_position() method that's used when the pulldown is already open.
2008-02-19 20:40:19 +00:00
Dan Helfman ebf123d052 Now you can close an upload / file link pulldown and end a file link. 2008-02-19 20:25:35 +00:00
Dan Helfman b80ad248f9 Fixed to make progress bar and download link work properly in IE 6 and 7. 2008-02-18 23:44:17 +00:00
Dan Helfman b543121767 Now Content-Type header is saved upon upload and sent upon download. 2008-02-18 20:19:36 +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 90c83ad1e5 New File_link_pulldown, not yet complete. 2008-02-05 19:45:11 +00:00
Dan Helfman 04f86f05a6 Rewrote controller.Files.upload_file() not to use a CherryPy-2.1-style file upload filter.
Now releasing session lock before streaming the file to prevent session deadlock in the event of a cancelled upload.
2008-02-04 20:06:02 +00:00
Dan Helfman 362a125b1b Working "cancel" button during upload. 2008-02-01 22:44:01 +00:00
Dan Helfman e56503903b Factored out file upload methods from Notebooks to new Files controller.
Changed file link insertion code to reuse existing link creation code.
2008-02-01 19:17:10 +00:00
Dan Helfman 0cf2b5bda7 Initial work on UI and controller for file uploading:
* new toolbar button for attaching a file
 * button opens new Upload_pulldown() for uploading a file
 * began controller.Notebooks.upload_file() to process the upload
2008-01-31 21:52:32 +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 c82832e23a Upgrade page should not be cached. 2008-01-15 09:43:21 +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 095df38e96 Added docstring to paypal_notify().
Now ignoring refunds.
Lowered retry timeout.
2008-01-12 04:38:56 +00:00
Dan Helfman f6538ad3a5 First pass at "thank you" page (and related processing/error pages) is complete. 2008-01-11 22:55:04 +00:00
Dan Helfman ae6a501117 Basic paypal integration working. Still need to do thank-you page and more testing. 2008-01-11 01:55:50 +00:00
Dan Helfman 7d2e2e4de2 Added a paypal unsubscribe button. Also added a paypal banner image. 2008-01-10 23:15:37 +00:00
Dan Helfman d0362a3ad1 Upgrade page now tells you what rate plan you're at. 2008-01-10 21:11:45 +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 17b7dfc74e If the user is logged in and hits the front page of the site with an HTTP
request that has no referrer, then redirect to the user's first notebook.
2008-01-08 09:45:05 +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