witten
/
luminotes
Archived
1
0
Fork 0
Commit Graph

148 Commits

Author SHA1 Message Date
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
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 05279d2c8e Only owners of a notebook should get a list of its invites. 2007-12-12 06:15:15 +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
Dan Helfman a615f65d29 Made send_invites() update any similar invites that have already been sent. 2007-12-06 22:05:00 +00:00