diff --git a/jupyter_notebook/static/tree/js/notebooklist.js b/jupyter_notebook/static/tree/js/notebooklist.js index 76f239692..6a974345d 100644 --- a/jupyter_notebook/static/tree/js/notebooklist.js +++ b/jupyter_notebook/static/tree/js/notebooklist.js @@ -151,12 +151,29 @@ define([ NotebookList.prototype.handleFilesUpload = function(event, dropOrForm) { var that = this; var files; - if(dropOrForm =='drop'){ + if(dropOrForm === 'drop'){ files = event.originalEvent.dataTransfer.files; - } else + } else { files = event.originalEvent.target.files; } + + var reader_onload = function (event) { + var item = $(event.target).data('item'); + that.add_file_data(event.target.result, item); + that.add_upload_button(item); + }; + var reader_onerror = function (event) { + var item = $(event.target).data('item'); + var name = item.data('name'); + item.remove(); + dialog.modal({ + title : 'Failed to read file', + body : "Failed to read file '" + name + "'", + buttons : {'OK' : { 'class' : 'btn-primary' }} + }); + }; + for (var i = 0; i < files.length; i++) { var f = files[i]; var name_and_ext = utils.splitext(f.name); @@ -171,25 +188,12 @@ define([ } var item = that.new_item(0, true); item.addClass('new-file'); - that.add_name_input(f.name, item, file_ext == '.ipynb' ? 'notebook' : 'file'); + that.add_name_input(f.name, item, file_ext === '.ipynb' ? 'notebook' : 'file'); // Store the list item in the reader so we can use it later // to know which item it belongs to. $(reader).data('item', item); - reader.onload = function (event) { - var item = $(event.target).data('item'); - that.add_file_data(event.target.result, item); - that.add_upload_button(item); - }; - reader.onerror = function (event) { - var item = $(event.target).data('item'); - var name = item.data('name'); - item.remove(); - dialog.modal({ - title : 'Failed to read file', - body : "Failed to read file '" + name + "'", - buttons : {'OK' : { 'class' : 'btn-primary' }} - }); - }; + reader.onload = reader_onload; + reader.onerror = reader_onerror; } // Replace the file input form wth a clone of itself. This is required to // reset the form. Otherwise, if you upload a file, delete it and try to @@ -302,7 +306,7 @@ define([ var list_items = $('.list_item'); for (var i=0; i').text("Cancel")