diff --git a/IPython/html/base/handlers.py b/IPython/html/base/handlers.py index 2565753d8..ca1044a16 100644 --- a/IPython/html/base/handlers.py +++ b/IPython/html/base/handlers.py @@ -268,6 +268,10 @@ class AuthenticatedFileHandler(IPythonHandler, web.StaticFileHandler): @web.authenticated def get(self, path): + if os.path.splitext(path)[1] == '.ipynb': + name = os.path.basename(path) + self.set_header('Content-Type', 'application/json') + self.set_header('Content-Disposition','attachment; filename="%s"' % name) return web.StaticFileHandler.get(self, path) @@ -399,11 +403,6 @@ class FileFindHandler(web.StaticFileHandler): self.set_status(304) return - if os.path.splitext(path)[1] == '.ipynb': - name = os.path.basename(path) - self.set_header('Content-Type', 'application/json') - self.set_header('Content-Disposition','attachment; filename="%s"' % name) - with open(abspath, "rb") as file: data = file.read() hasher = hashlib.sha1() diff --git a/IPython/html/services/notebooks/handlers.py b/IPython/html/services/notebooks/handlers.py index 4e2c8335b..14f530f46 100644 --- a/IPython/html/services/notebooks/handlers.py +++ b/IPython/html/services/notebooks/handlers.py @@ -64,19 +64,7 @@ class NotebookHandler(IPythonHandler): # get and return notebook representation model = nbm.get_notebook_model(name, path) self.set_header(u'Last-Modified', model[u'last_modified']) - - if self.get_argument('download', default='False') == 'True': - format = self.get_argument('format', default='json') - if format != u'json': - self.set_header('Content-Type', 'application/json') - raise web.HTTPError(400, "Unrecognized format: %s" % format) - - self.set_header('Content-Disposition', - 'attachment; filename="%s"' % name - ) - self.finish(json.dumps(model['content'], default=date_default)) - else: - self.finish(json.dumps(model, default=date_default)) + self.finish(json.dumps(model, default=date_default)) @web.authenticated @json_errors diff --git a/IPython/html/static/notebook/js/menubar.js b/IPython/html/static/notebook/js/menubar.js index 240ecf66e..171555ccb 100644 --- a/IPython/html/static/notebook/js/menubar.js +++ b/IPython/html/static/notebook/js/menubar.js @@ -95,9 +95,9 @@ var IPython = (function (IPython) { var url = utils.url_path_join( that.baseProjectUrl(), - 'api/notebooks', + 'files', that.notebookPath(), - notebook_name + '.ipynb?format=json&download=True' + notebook_name + '.ipynb' ); window.location.assign(url); });