fix set_last_checkpoint when no checkpoint
Fix submodule location in setup.py
fix a few URLs from previous PR
some of the URLs in the submodules PR were not updated
remove js components from the repo
remove command from fabfile components live in a submodule
Add autosaving to the notebook, while retaining manual checkpoint creation. Autosave will perodically save the notebook, with a default interval of two minutes. This interval is configurable, and the system will automatically back off the frequency if it detects that the save operation takes too long. This can be the case if working remotely over a slow link, so this will automatically conserve bandwidth. The manual save operation remains available and bound to the same keys, but now it causes the creation of a separate checkpoint, which is stored in a hidden directory called `.ipynb_checkpoints`. This provides users a poor-man's version control with a single revert point and the ability to safely experiment with potentially destructive changes to a notebook without concern that the autosave operation may clobber their file on disk. See [IPEP 15](https://github.com/ipython/ipython/wiki/IPEP-15%3A-Autosaving-the-IPython-Notebook) for details of the proposal.
minor styling update to the restore dialog as well
also cleanup a few log messages
autosave is also there, but once the dirty flag is an event, this should stop having the date, and just become 'autosaved / unsaved changes'
use IPythonHandler, avoid self.application
autosave interval is tuned based on the duration of saves. Autosave will never happen more frequently than every 30 seconds, and if saves take more than 3 seconds, autosave will fire every 10x the duration of the save (i.e. if save takes 6 seconds, it will be every 60 seconds, etc.)
instead of "please don't leave!"
- cmd-S does a plain save - ^M-s does checkpoint - add save checkpoint to File menu - save button in bar does checkpoint
two keys: checkpoint_id and last_modified
separates requests that change specified checkpoint IDs from those that do not.