Show More
@@ -35,7 +35,13 b' class NotebookHandler(IPythonHandler):' | |||
|
35 | 35 | |
|
36 | 36 | @web.authenticated |
|
37 | 37 | def post(self): |
|
38 |
n |
|
|
38 | nbm = self.notebook_manager | |
|
39 | data=self.request.body | |
|
40 | if data == "": | |
|
41 | notebook_name = nbm.new_notebook() | |
|
42 | else: | |
|
43 | data = jsonapi.loads(data) | |
|
44 | notebook_name = nbm.copy_notebook(data['name']) | |
|
39 | 45 | self.finish(jsonapi.dumps({"name": notebook_name})) |
|
40 | 46 | |
|
41 | 47 | |
@@ -65,7 +71,13 b' class NamedNotebookHandler(IPythonHandler):' | |||
|
65 | 71 | |
|
66 | 72 | @web.authenticated |
|
67 | 73 | def post(self, notebook_path): |
|
68 |
n |
|
|
74 | nbm = self.notebook_manager | |
|
75 | data = self.request.body | |
|
76 | if data == "": | |
|
77 | notebook_name = nbm.new_notebook(notebook_path) | |
|
78 | else: | |
|
79 | data = jsonapi.loads(data) | |
|
80 | notebook_name = nbm.copy_notebook(data['name'], notebook_path) | |
|
69 | 81 | self.finish(jsonapi.dumps({"name": notebook_name})) |
|
70 | 82 | |
|
71 | 83 |
@@ -142,7 +142,7 b' class FileNotebookManager(NotebookManager):' | |||
|
142 | 142 | raise web.HTTPError(400, msg, reason=msg) |
|
143 | 143 | return last_modified, nb |
|
144 | 144 | |
|
145 | def read_notebook_object(self, notebook_name, notebook_path): | |
|
145 | def read_notebook_object(self, notebook_name, notebook_path=None): | |
|
146 | 146 | """Get the Notebook representation of a notebook by notebook_name.""" |
|
147 | 147 | path = self.get_path(notebook_name, notebook_path) |
|
148 | 148 | if not os.path.isfile(path): |
@@ -157,7 +157,7 b' class NotebookManager(LoggingConfigurable):' | |||
|
157 | 157 | name = nb.metadata.get('name', 'notebook') |
|
158 | 158 | return last_mod, representation, name |
|
159 | 159 | |
|
160 | def read_notebook_object(self, notebook_name, notebook_path): | |
|
160 | def read_notebook_object(self, notebook_name, notebook_path=None): | |
|
161 | 161 | """Get the object representation of a notebook by notebook_id.""" |
|
162 | 162 | raise NotImplementedError('must be implemented in a subclass') |
|
163 | 163 | |
@@ -229,7 +229,7 b' class NotebookManager(LoggingConfigurable):' | |||
|
229 | 229 | notebook_name = self.write_notebook_object(nb, notebook_path=notebook_path) |
|
230 | 230 | return notebook_name |
|
231 | 231 | |
|
232 | def copy_notebook(self, name, path): | |
|
232 | def copy_notebook(self, name, path=None): | |
|
233 | 233 | """Copy an existing notebook and return its notebook_id.""" |
|
234 | 234 | last_mod, nb = self.read_notebook_object(name, path) |
|
235 | 235 | name = nb.metadata.name + '-Copy' |
@@ -84,9 +84,7 b' var IPython = (function (IPython) {' | |||
|
84 | 84 | window.open(that.baseProjectUrl() + 'tree/' + that.notebookPath()); |
|
85 | 85 | }); |
|
86 | 86 | this.element.find('#copy_notebook').click(function () { |
|
87 |
|
|
|
88 | var url = that.baseProjectUrl() + 'notebooks/' + that.notebookPath() + notebook_name + '/copy'; | |
|
89 | window.open(url,'_blank'); | |
|
87 | IPython.notebook.copy_notebook(); | |
|
90 | 88 | return false; |
|
91 | 89 | }); |
|
92 | 90 | this.element.find('#download_ipynb').click(function () { |
@@ -80,6 +80,7 b' var IPython = (function (IPython) {' | |||
|
80 | 80 | |
|
81 | 81 | Notebook.prototype.notebookName = function() { |
|
82 | 82 | var name = $('body').data('notebookName'); |
|
83 | name = decodeURIComponent(name); | |
|
83 | 84 | return name; |
|
84 | 85 | }; |
|
85 | 86 | |
@@ -1759,6 +1760,23 b' var IPython = (function (IPython) {' | |||
|
1759 | 1760 | $.ajax(url,settings); |
|
1760 | 1761 | }; |
|
1761 | 1762 | |
|
1763 | Notebook.prototype.copy_notebook = function(){ | |
|
1764 | var path = this.notebookPath(); | |
|
1765 | var name = {'name': this.notebook_name} | |
|
1766 | var settings = { | |
|
1767 | processData : false, | |
|
1768 | cache : false, | |
|
1769 | type : "POST", | |
|
1770 | data: JSON.stringify(name), | |
|
1771 | dataType : "json", | |
|
1772 | success:$.proxy(function (data, status, xhr){ | |
|
1773 | notebook_name = data.name; | |
|
1774 | window.open(this._baseProjectUrl +'notebooks/' + this.notebookPath()+ notebook_name); | |
|
1775 | }, this) | |
|
1776 | }; | |
|
1777 | var url = this._baseProjectUrl + 'notebooks/' + path; | |
|
1778 | $.ajax(url,settings); | |
|
1779 | }; | |
|
1762 | 1780 | |
|
1763 | 1781 | Notebook.prototype.notebook_rename = function (nbname) { |
|
1764 | 1782 | var that = this; |
@@ -338,7 +338,21 b' var IPython = (function (IPython) {' | |||
|
338 | 338 | }; |
|
339 | 339 | |
|
340 | 340 | |
|
341 | ||
|
341 | NotebookList.prototype.new_notebook = function(){ | |
|
342 | var path = this.notebookPath(); | |
|
343 | var settings = { | |
|
344 | processData : false, | |
|
345 | cache : false, | |
|
346 | type : "POST", | |
|
347 | dataType : "json", | |
|
348 | success:$.proxy(function (data, status, xhr){ | |
|
349 | notebook_name = data.name; | |
|
350 | window.open(this.baseProjectUrl() +'notebooks/' + this.notebookPath()+ notebook_name); | |
|
351 | }, this) | |
|
352 | }; | |
|
353 | var url = this.baseProjectUrl() + 'notebooks/' + path; | |
|
354 | $.ajax(url,settings); | |
|
355 | }; | |
|
342 | 356 | |
|
343 | 357 | IPython.NotebookList = NotebookList; |
|
344 | 358 |
General Comments 0
You need to be logged in to leave comments.
Login now