Renaming fixed

Zachary Sailer 13 years ago committed by MinRK
parent f3af343f4f
commit 1f04b48725

@ -81,19 +81,6 @@ class NamedNotebookHandler(IPythonHandler):
self.finish(jsonapi.dumps({"name": notebook_name}))
class NotebookCopyHandler(IPythonHandler):
@web.authenticated
def get(self, notebook_path=None):
nbm = self.notebook_manager
name, path = nbm.named_notebook_path(notebook_path)
notebook_name = self.notebook_manager.copy_notebook(name, path)
if path==None:
self.redirect(url_path_join(self.base_project_url, "notebooks", notebook_name))
else:
self.redirect(url_path_join(self.base_project_url, "notebooks", path, notebook_name))
#-----------------------------------------------------------------------------
# URL to handler mappings
#-----------------------------------------------------------------------------
@ -102,7 +89,6 @@ class NotebookCopyHandler(IPythonHandler):
_notebook_path_regex = r"(?P<notebook_path>.+)"
default_handlers = [
(r"/notebooks/%s/copy" % _notebook_path_regex, NotebookCopyHandler),
(r"/notebooks/%s" % _notebook_path_regex, NamedNotebookHandler),
(r"/notebooks/", NotebookHandler)
]

@ -96,20 +96,25 @@ class FileNotebookManager(NotebookManager):
def change_notebook(self, data, notebook_name, notebook_path=None):
"""Changes notebook"""
changes = data.keys()
response = 200
for change in changes:
full_path = self.get_path(notebook_name, notebook_path)
if change == "notebook_name":
os.rename(full_path,
self.get_path(data['notebook_name'], notebook_path))
notebook_name = data['notebook_name']
if change == "notebook_path":
new_path = self.get_path(data['notebook_name'], data['notebook_path'])
if change == "name":
new_path = self.get_path(data['name'], notebook_path)
if os.path.isfile(new_path) == False:
os.rename(full_path,
self.get_path(data['name'], notebook_path))
notebook_name = data['name']
else:
response = 409
if change == "path":
new_path = self.get_path(data['name'], data['path'])
stutil.move(full_path, new_path)
notebook_path = data['notebook_path']
notebook_path = data['path']
if change == "content":
self.save_notebook(data, notebook_name, notebook_path)
model = self.notebook_model(notebook_name, notebook_path)
return model
return model, response
def notebook_exists(self, notebook_path):
"""Does a notebook exist?"""

@ -90,7 +90,8 @@ class NotebookHandler(IPythonHandler):
nbm = self.notebook_manager
notebook_name, notebook_path = nbm.named_notebook_path(notebook_path)
data = jsonapi.loads(self.request.body)
model = nbm.change_notebook(data, notebook_name, notebook_path)
model, response = nbm.change_notebook(data, notebook_name, notebook_path)
self.set_status(response)
self.finish(jsonapi.dumps(model))
@web.authenticated

@ -1789,7 +1789,8 @@ var IPython = (function (IPython) {
data : JSON.stringify(name),
dataType: "json",
headers : {'Content-Type': 'application/json'},
success : $.proxy(that.rename_success, this)
success : $.proxy(that.rename_success, this),
error : $.proxy(that.rename_error, this)
};
$([IPython.events]).trigger('notebook_rename.Notebook');
var url = this.baseProjectUrl() + 'api/notebooks/' + this.notebookPath()+ this.notebook_name;
@ -1803,7 +1804,37 @@ var IPython = (function (IPython) {
this.session.notebook_rename(notebook_path);
$([IPython.events]).trigger('notebook_renamed.Notebook');
}
Notebook.prototype.rename_error = function (json, status, xhr) {
var that = this;
var dialog = $('<div/>').append(
$("<p/>").addClass("rename-message")
.html('This notebook name already exists.')
)
IPython.dialog.modal({
title: "Notebook Rename Error!",
body: dialog,
buttons : {
"Cancel": {},
"OK": {
class: "btn-primary",
click: function () {
IPython.save_widget.rename_notebook();
}}
},
open : function (event, ui) {
var that = $(this);
// Upon ENTER, click the OK button.
that.find('input[type="text"]').keydown(function (event, ui) {
if (event.which === utils.keycodes.ENTER) {
that.find('.btn-primary').first().click();
}
});
that.find('input[type="text"]').focus();
}
});
}
/**
* Request a notebook's data from the server.
*

@ -129,7 +129,7 @@ var IPython = (function (IPython) {
var nbname = IPython.notebook.notebook_name;
var path = IPython.notebook.notebookPath();
var state = {"path": path+nbname}
window.history.pushState(state, "", "/notebook/" + path+nbname);
window.history.replaceState(state, "", "/notebooks/" + path+nbname);
}

@ -75,16 +75,6 @@ class ProjectRedirectHandler(IPythonHandler):
url = self.base_project_url + 'tree'
self.redirect(url)
class NewFolderHandler(IPythonHandler):
@web.authenticated
def get(self, notebook_path):
nbm = self.notebook_manager
name, path = nbm.named_notebook_path(notebook_path)
nbm.add_new_folder(path)
url = self.base_project_url + 'tree/' + notebook_path
self.redirect(url)
#-----------------------------------------------------------------------------
# URL to handler mappings
@ -94,7 +84,6 @@ class NewFolderHandler(IPythonHandler):
_notebook_path_regex = r"(?P<notebook_path>.+)"
default_handlers = [
(r"/tree/%s/-new" %_notebook_path_regex, NewFolderHandler),
(r"/tree/%s/" % _notebook_path_regex, TreePathRedirectHandler),
(r"/tree/%s" % _notebook_path_regex, ProjectPathDashboardHandler),
(r"/tree", ProjectDashboardHandler),

Loading…
Cancel
Save