diff --git a/_layouts/iocamljs.html b/_layouts/iocamljs.html
index 7a1163d..94c4e06 100644
--- a/_layouts/iocamljs.html
+++ b/_layouts/iocamljs.html
@@ -113,6 +113,8 @@
File
Edit
diff --git a/static/notebook/js/main.js b/static/notebook/js/main.js
index 4f3b72b..03adfae 100644
--- a/static/notebook/js/main.js
+++ b/static/notebook/js/main.js
@@ -91,7 +91,10 @@ function (marked) {
$([IPython.events]).on('notebook_loaded.Notebook', first_load);
$([IPython.events]).trigger('app_initialized.NotebookApp');
- IPython.notebook.load_notebook($('body').data('notebookId'));
+ var notebook_id = $('body').data('notebookId');
+ IPython.notebook.notebook_id = notebook_id
+ var url = IPython.notebook.baseProjectUrl() + 'notebooks/' + notebook_id
+ IPython.notebook.load_notebook(url);
if (marked) {
marked.setOptions({
diff --git a/static/notebook/js/menubar.js b/static/notebook/js/menubar.js
index 4c32551..7d9aa14 100644
--- a/static/notebook/js/menubar.js
+++ b/static/notebook/js/menubar.js
@@ -68,8 +68,34 @@ var IPython = (function (IPython) {
this.element.find('#new_notebook').click(function () {
window.open(that.baseProjectUrl()+'new');
});
- this.element.find('#open_notebook').click(function () {
- window.open(that.baseProjectUrl());
+ this.element.find('#open_notebook_url').click(function () {
+ var notebook_id = IPython.notebook.get_notebook_id();
+ var url = that.baseProjectUrl() + 'notebooks/' +
+ notebook_id
+ url = prompt('Enter URL:', url);
+ IPython.notebook.load_notebook(url)
+ });
+ this.element.find('#open_notebook_file').click(function () {
+ var uploadForm = document.createElement('form');
+ var fileInput = uploadForm.appendChild(document.createElement('input'));
+ function readFile(e){
+ var file = e.target.files[0];
+ if (!file) {
+ return;
+ }
+ var reader = new FileReader();
+ reader.onload = function(e) {
+ var contents = e.target.result;
+ data = JSON.parse(contents);
+ IPython.notebook.load_notebook_success(data, 42, 42);
+ };
+ reader.readAsText(file);
+ }
+ fileInput.type = 'file';
+ fileInput.name = 'notebook_file';
+ fileInput.multiple = false;
+ fileInput.addEventListener('change', readFile, false);
+ fileInput.click();
});
this.element.find('#rename_notebook').click(function () {
IPython.save_widget.rename_notebook();
diff --git a/static/notebook/js/notebook.js b/static/notebook/js/notebook.js
index 945ff56..d2870ec 100644
--- a/static/notebook/js/notebook.js
+++ b/static/notebook/js/notebook.js
@@ -1711,9 +1711,8 @@ var IPython = (function (IPython) {
* @method load_notebook
* @param {String} notebook_id A notebook to load
*/
- Notebook.prototype.load_notebook = function (notebook_id) {
+ Notebook.prototype.load_notebook = function (url) {
var that = this;
- this.notebook_id = notebook_id;
// We do the call with settings so we can set cache to false.
var settings = {
processData : false,
@@ -1724,7 +1723,6 @@ var IPython = (function (IPython) {
error : $.proxy(this.load_notebook_error,this),
};
$([IPython.events]).trigger('notebook_loading.Notebook');
- var url = this.baseProjectUrl() + 'notebooks/' + this.notebook_id;
$.ajax(url, settings);
};