Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

notebook download implies save #895

Closed
wants to merge 1 commit into from

3 participants

Min RK Fernando Perez Brian E. Granger
Min RK
Owner

closes #852

Note that this should get some review, as I'm not certain it's the right way to go. This change makes download trigger a save, and the save-success callback triggers the actual download. However, at least on Chrome, the fact that opening the download url is no longer triggered directly by the click action means it can get caught by pop-up blockers.

Fernando Perez
Owner

Yup, in fact ffox also blocks it. So I think we need to find out something else, I don't like to require people to disable their popup blockers... But I have to say, I don't know what a better solution would be.

Min RK
Owner

In that case, I don't think we can force a save on download. We have to just add a note to the tooltip, that Download/print get the most recently saved version.

If we can detect that the document has been edited since last save, then we can do this with a dialog 'Would you like to save changes before downloading?' But I don't think we have a global flag that gets set on any edit.

Fernando Perez
Owner

Do you just want to change the tooltip and close this one? I would like to set a dirty flag on cell edit, but that's a separate job. It would be nice if the UI could reflect that dirty state also (emacs marks the status area with '**', other editors do similar things). But that's a separate request... I'm OK with closing this one and just editing the tooltip.

Brian E. Granger
Owner

We do have a dirty flag that detect when a cell is run, moved, deleted. We could look at this flag. But you are right that this flag doesn't currently detect if a cell has been edited but not run. But I agree with Fernando that we can't require pop-up blockers to be disabled. I have run into this issue in numerous places in the notebook already.

Min RK
Owner

I'll close this, and just add a note to the tooltip. Probably not consider that closing the original Issue, though.

Min RK minrk closed this pull request from a commit
Min RK minrk Add tooltip to Download/Print indicating need to save first
A real fix would be to trigger a save on each of thes actions, which would address #852

closes gh-895
bbc4d01
Min RK minrk closed this in bbc4d01
Brian E. Granger ellisonbg referenced this pull request from a commit
Commit has since been removed from the repository and is no longer available.
matthew von rocketstein mattvonrocketstein referenced this pull request from a commit in mattvonrocketstein/ipython
Min RK minrk Add tooltip to Download/Print indicating need to save first
A real fix would be to trigger a save on each of thes actions, which would address #852

closes gh-895
7e95cdc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Oct 18, 2011
  1. Min RK

    notebook download implies save

    minrk authored
    closes #852
This page is out of date. Refresh to see the latest.
Showing with 13 additions and 3 deletions.
  1. +13 −3 IPython/frontend/html/notebook/static/js/panelsection.js
16 IPython/frontend/html/notebook/static/js/panelsection.js
View
@@ -106,9 +106,19 @@ var IPython = (function (IPython) {
});
this.content.find('#download_notebook').click(function () {
var format = that.content.find('#download_format').val();
- var notebook_id = IPython.save_widget.get_notebook_id();
- var url = '/notebooks/' + notebook_id + '?format=' + format;
- window.open(url,'_newtab');
+ // save on download
+ IPython.save_widget.save_notebook();
+ // hook into notebook_saved method to download on success:
+ var old_notebook_saved = IPython.save_widget.notebook_saved;
+ IPython.save_widget.notebook_saved = function() {
+ // restore and call original function:
+ IPython.save_widget.notebook_saved = old_notebook_saved;
+ IPython.save_widget.notebook_saved();
+ // now trigger download
+ var notebook_id = IPython.save_widget.get_notebook_id();
+ var url = '/notebooks/' + notebook_id + '?format=' + format;
+ window.open(url,'_newtab');
+ }
});
};
Something went wrong with that request. Please try again.