',\n \"This folder is either empty or you do not have proper access permissions to see the contents. If you expected something to show up\",\n ' please consult the library security wikipage',\n ' or visit the Galaxy support site.',\n \"
\"\n ].join(\"\")\n );\n }\n });\n\n return {\n FolderListView: FolderListView\n };\n }\n);\n"]}
\ No newline at end of file
+{"version":3,"sources":["mvc/library/library-folderlist-view.js"],"names":["define","FolderListView","el","progress","folderContainer","mod_utils","current_sort_order","mod_library_model","current_sort_key","mod_library_dataset_view","Backbone","View","extend","progressStep","collection","defaults","page_count","show_page","click .dataset_row","click .folder_row","click .sort-folder-name","click .sort-folder-file_ext","click .sort-folder-description","click .sort-folder-state","include_deleted","initialize","options","this","fetchFolder","_","rowViews","Folder","renderOne","listenTo","rePaint","fetch","that","error","mod_toastr","response","responseJSON","onclick","FolderContainer","id","attributes","urlRoot","Galaxy","url","success","folder_container","template","render","model","err_msg","path","length","library_router","back","parent_library_id","upper_folder_id","libraries","templateFolder","$","paginate","metadata","full_path","total_items_count","ceil","items_to_render","order","items_shown","folderToolbarView","reset","dataset_id","row","renderAll","checkEmptiness","models","tooltip","css","postRender","fetched_metadata","Math","preferences","get","page_start","each","slice","contains_file_or_folder","set","find","removeAllRows","addAll","folderListView","add","sortColumnClicked","event","renderSortIcon","sortFolder","findWhere","configureElements","checked","reverse","$row","closest","selected","selectClickedRow","checkbox","mod_library_folderrow_view","FolderRowView","target","rowView","$el","after","removeOne","makeWhiteRow","makeDarkRow","filter","source","data","remove","removeClass","addClass","show","hide","preventDefault","currentTarget","className","replace","selectAll","localName","join"],"mappings":"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","file":"../../../scripts/mvc/library/library-folderlist-view.js","sourcesContent":["define(\n [\n \"layout/masthead\",\n \"utils/utils\",\n \"libs/toastr\",\n \"mvc/library/library-model\",\n \"mvc/library/library-folderrow-view\",\n \"mvc/library/library-dataset-view\"\n ],\n function(\n mod_masthead,\n mod_utils,\n mod_toastr,\n mod_library_model,\n mod_library_folderrow_view,\n mod_library_dataset_view\n ) {\n var FolderListView = Backbone.View.extend({\n el: \"#folder_items_element\",\n // progress percentage\n progress: 0,\n // progress rate per one item\n progressStep: 1,\n\n folderContainer: null,\n\n current_sort_order: \"asc\",\n\n current_sort_key: \"name\",\n\n events: {\n \"click #select-all-checkboxes\": \"selectAll\",\n \"click .dataset_row\": \"selectClickedRow\",\n \"click .folder_row\": \"selectClickedRow\",\n \"click .sort-folder-name\": \"sortColumnClicked\",\n \"click .sort-folder-file_ext\": \"sortColumnClicked\",\n \"click .sort-folder-description\": \"sortColumnClicked\",\n \"click .sort-folder-state\": \"sortColumnClicked\"\n },\n\n collection: null,\n\n defaults: {\n include_deleted: false,\n page_count: null,\n show_page: null\n },\n\n /**\n * Initialize and fetch the folder from the server.\n * @param {object} options an object with options\n */\n initialize: function(options) {\n this.options = _.defaults(\n this.options || {},\n this.defaults,\n options\n );\n this.modal = null;\n // map of folder item ids to item views = cache\n this.rowViews = {};\n\n // create a collection of folder items for this view\n this.collection = new mod_library_model.Folder();\n\n // start to listen if someone modifies the collection\n this.listenTo(this.collection, \"add\", this.renderOne);\n this.listenTo(this.collection, \"remove\", this.removeOne);\n this.listenTo(this.collection, \"sort\", this.rePaint);\n this.listenTo(this.collection, \"reset\", this.rePaint);\n\n this.fetchFolder();\n },\n\n fetchFolder: function(options) {\n var options = options || {};\n this.options.include_deleted = options.include_deleted;\n var that = this;\n\n this.folderContainer = new mod_library_model.FolderContainer({\n id: this.options.id\n });\n this.folderContainer.url =\n this.folderContainer.attributes.urlRoot +\n this.options.id +\n \"/contents\";\n\n if (this.options.include_deleted) {\n this.folderContainer.url =\n this.folderContainer.url + \"?include_deleted=true\";\n }\n this.folderContainer.fetch({\n success: function(folder_container) {\n that.folder_container = folder_container;\n that.render();\n },\n error: function(model, response) {\n if (typeof response.responseJSON !== \"undefined\") {\n mod_toastr.error(\n response.responseJSON.err_msg +\n \" Click this to go back.\",\n \"\",\n {\n onclick: function() {\n Galaxy.libraries.library_router.back();\n }\n }\n );\n } else {\n mod_toastr.error(\n \"An error occurred. Click this to go back.\",\n \"\",\n {\n onclick: function() {\n Galaxy.libraries.library_router.back();\n }\n }\n );\n }\n }\n });\n },\n\n render: function(options) {\n this.options = _.extend(this.options, options);\n var template = this.templateFolder();\n $(\".tooltip\").hide();\n\n // find the upper id in the full path\n var path = this.folderContainer.attributes.metadata.full_path;\n var upper_folder_id;\n if (path.length === 1) {\n // the library is above us\n upper_folder_id = 0;\n } else {\n upper_folder_id = path[path.length - 2][0];\n }\n\n this.$el.html(\n template({\n path: this.folderContainer.attributes.metadata\n .full_path,\n parent_library_id: this.folderContainer.attributes\n .metadata.parent_library_id,\n id: this.options.id,\n upper_folder_id: upper_folder_id,\n order: this.current_sort_order\n })\n );\n\n // when dataset_id is present render its details too\n if (this.options.dataset_id) {\n var row = _.findWhere(that.rowViews, {\n id: this.options.dataset_id\n });\n if (row) {\n row.showDatasetDetails();\n } else {\n mod_toastr.error(\n \"Requested dataset not found. Showing folder instead.\"\n );\n }\n } else {\n if (\n this.options.show_page === null ||\n this.options.show_page < 1\n ) {\n this.options.show_page = 1;\n }\n this.paginate();\n }\n $(\"#center [data-toggle]\").tooltip();\n $(\"#center\").css(\"overflow\", \"auto\");\n },\n\n paginate: function(options) {\n this.options = _.extend(this.options, options);\n\n if (\n this.options.show_page === null ||\n this.options.show_page < 1\n ) {\n this.options.show_page = 1;\n }\n this.options.total_items_count = this.folder_container.get(\n \"folder\"\n ).models.length;\n this.options.page_count = Math.ceil(\n this.options.total_items_count /\n Galaxy.libraries.preferences.get(\"folder_page_size\")\n );\n var page_start =\n Galaxy.libraries.preferences.get(\"folder_page_size\") *\n (this.options.show_page - 1);\n var items_to_render = null;\n items_to_render = this.folder_container\n .get(\"folder\")\n .models.slice(\n page_start,\n page_start +\n Galaxy.libraries.preferences.get(\"folder_page_size\")\n );\n this.options.items_shown = items_to_render.length;\n // User requests page with no items\n if (\n Galaxy.libraries.preferences.get(\"folder_page_size\") *\n this.options.show_page >\n this.options.total_items_count +\n Galaxy.libraries.preferences.get(\"folder_page_size\")\n ) {\n items_to_render = [];\n }\n Galaxy.libraries.folderToolbarView.renderPaginator(\n this.options\n );\n this.collection.reset(items_to_render);\n },\n\n rePaint: function(options) {\n this.options = _.extend(this.options, options);\n this.removeAllRows();\n this.renderAll();\n this.checkEmptiness();\n },\n\n /**\n * Adds all given models to the collection.\n * @param {array of Item or FolderAsModel} array of models that should\n * be added to the view's collection.\n */\n addAll: function(models) {\n _.each(models, function(model) {\n Galaxy.libraries.folderListView.collection.add(model, {\n current_sort_order: false\n });\n });\n $(\"#center [data-toggle]\").tooltip();\n this.checkEmptiness();\n this.postRender();\n },\n\n /**\n * Call this after all models are added to the collection\n * to ensure that the folder toolbar will show proper options\n * and that event will be bound on all subviews.\n */\n postRender: function() {\n var fetched_metadata = this.folderContainer.attributes.metadata;\n fetched_metadata.contains_file_or_folder =\n typeof this.collection.findWhere({ type: \"file\" }) !==\n \"undefined\" ||\n typeof this.collection.findWhere({ type: \"folder\" }) !==\n \"undefined\";\n Galaxy.libraries.folderToolbarView.configureElements(\n fetched_metadata\n );\n },\n\n /**\n * Iterates this view's collection and calls the render\n * function for each. Also binds the hover behavior.\n */\n renderAll: function() {\n var that = this;\n _.each(this.collection.models.reverse(), function(model) {\n that.renderOne(model);\n });\n this.postRender();\n },\n\n /**\n * Creates a view for the given model and adds it to the folder view.\n * @param {Item or FolderAsModel} model of the view that will be rendered\n */\n renderOne: function(model) {\n this.options.contains_file_or_folder = true;\n //if (model.get('type') !== 'folder'){\n // model.set('readable_size', this.size_to_string(model.get('file_size')));\n //}\n model.set(\"folder_id\", this.id);\n var rowView = new mod_library_folderrow_view.FolderRowView({\n model: model\n });\n\n // save new rowView to cache\n this.rowViews[model.get(\"id\")] = rowView;\n\n this.$el.find(\"#first_folder_item\").after(rowView.el);\n },\n\n /**\n * Remove the view of the given model from the DOM.\n * @param {Item or FolderAsModel} model of the view that will be removed\n */\n removeOne: function(model) {\n this.$el\n .find(\"tr\")\n .filter(function() {\n return (\n $(this).data(\"id\") &&\n $(this).data(\"id\") === model.id\n );\n })\n .remove();\n },\n\n /**\n * Remove all dataset and folder row elements from the DOM.\n */\n removeAllRows: function() {\n $(\".library-row\").remove();\n },\n\n /** Checks whether the list is empty and adds/removes the message */\n checkEmptiness: function() {\n if (\n this.$el.find(\".dataset_row\").length === 0 &&\n this.$el.find(\".folder_row\").length === 0\n ) {\n this.$el.find(\".empty-folder-message\").show();\n } else {\n this.$el.find(\".empty-folder-message\").hide();\n }\n },\n\n sortColumnClicked: function(event) {\n event.preventDefault();\n this.current_sort_order =\n this.current_sort_order === \"asc\" ? \"desc\" : \"asc\";\n this.current_sort_key = event.currentTarget.className.replace(\n \"sort-folder-\",\n \"\"\n );\n this.collection.sortFolder(\n this.current_sort_key,\n this.current_sort_order\n );\n this.renderSortIcon();\n },\n\n /**\n * User clicked the checkbox in the table heading\n * @param {context} event\n */\n selectAll: function(event) {\n var selected = event.target.checked;\n that = this;\n // Iterate each checkbox\n $(\":checkbox\", \"#folder_list_body\").each(function() {\n this.checked = selected;\n var $row = $(this).closest(\"tr\");\n // Change color of selected/unselected\n if (selected) {\n that.makeDarkRow($row);\n } else {\n that.makeWhiteRow($row);\n }\n });\n },\n\n /**\n * Check checkbox if user clicks on the whole row or\n * on the checkbox itself\n */\n selectClickedRow: function(event) {\n var checkbox = \"\";\n var $row;\n var source;\n $row = $(event.target).closest(\"tr\");\n if (event.target.localName === \"input\") {\n checkbox = event.target;\n source = \"input\";\n } else if (event.target.localName === \"td\") {\n checkbox = $row.find(\":checkbox\")[0];\n source = \"td\";\n }\n if (checkbox.checked) {\n if (source === \"td\") {\n checkbox.checked = \"\";\n this.makeWhiteRow($row);\n } else if (source === \"input\") {\n this.makeDarkRow($row);\n }\n } else {\n if (source === \"td\") {\n checkbox.checked = \"selected\";\n this.makeDarkRow($row);\n } else if (source === \"input\") {\n this.makeWhiteRow($row);\n }\n }\n },\n\n makeDarkRow: function($row) {\n $row.removeClass(\"light\").addClass(\"dark\");\n $row\n .find(\"a\")\n .removeClass(\"light\")\n .addClass(\"dark\");\n $row\n .find(\".fa-file-o\")\n .removeClass(\"fa-file-o\")\n .addClass(\"fa-file\");\n $row\n .find(\".fa-folder-o\")\n .removeClass(\"fa-folder-o\")\n .addClass(\"fa-folder\");\n },\n\n makeWhiteRow: function($row) {\n $row.removeClass(\"dark\").addClass(\"light\");\n $row\n .find(\"a\")\n .removeClass(\"dark\")\n .addClass(\"light\");\n $row\n .find(\".fa-file\")\n .removeClass(\"fa-file\")\n .addClass(\"fa-file-o\");\n $row\n .find(\".fa-folder\")\n .removeClass(\"fa-folder\")\n .addClass(\"fa-folder-o\");\n },\n\n renderSortIcon: function() {\n if (this.current_sort_order === \"asc\") {\n $('[class*=\"sort-icon\"]')\n .removeClass(\"fa-sort-alpha-desc\")\n .removeClass(\"fa-sort-alpha-asc\");\n $(\".sort-icon\" + \"-\" + this.current_sort_key).addClass(\n \"fa-sort-alpha-asc\"\n );\n } else {\n $(\".sort-icon\" + \"-\" + this.current_sort_key).addClass(\n \"fa-sort-alpha-desc\"\n );\n }\n },\n\n templateFolder: function() {\n return _.template(\n [\n // BREADCRUMBS\n '',\n '
',\n \"This folder is either empty or you do not have proper access permissions to see the contents. If you expected something to show up\",\n ' please consult the library security wikipage',\n ' or visit the Galaxy support site.',\n \"
\"\n ].join(\"\")\n );\n }\n });\n\n return {\n FolderListView: FolderListView\n };\n }\n);\n"]}
\ No newline at end of file
diff --git a/static/maps/mvc/library/library-folderrow-view.js.map b/static/maps/mvc/library/library-folderrow-view.js.map
index 5339009ddda..294dbe21813 100644
--- a/static/maps/mvc/library/library-folderrow-view.js.map
+++ b/static/maps/mvc/library/library-folderrow-view.js.map
@@ -1 +1 @@
-{"version":3,"sources":["mvc/library/library-folderrow-view.js"],"names":["define","FolderRowView","events","mod_toastr","mod_library_model","mod_library_dataset_view","Backbone","View","extend","click .undelete_dataset_btn","click .undelete_folder_btn","click .edit_folder_btn","defaults","type","save_folder_btn","cancel_folder_btn","permission_folder_btn","edit_folder_btn","edit_mode","_","initialize","options","this","render","folder_item","model","template","prepareButtons","vis_config","get","templateRowFolder","templateRowDeletedFile","templateRowFile","Galaxy","error","setElement","button_config","emit","folder","visibility_config","datasetView","dataset_id","event","closest","dataset","folderListView","url","destroy","libraries","success","onclick","LibraryDatasetView","id","$","hide","target","data","collection","urlRoot","undeleteFolder","response","remove","add","updated_folder","responseJSON","folder_id","that","window","location","root","repaint","err_msg","is_changed","new_description","find","row_view","FolderAsModel","sortByNameAsc","info","startModifications","old_element","cancelModifications","saveModifications","$el","new_name","val","length","templateRowDeletedFolder","warning","set","save","patch","replaceWith","tooltip","join"],"mappings":"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A,OACA,gDACA,QACA,mFACA,yBACA,OACA,gFACA,QACA,OACA,yCACA,QACA,YACA,8BACA,oIACA,yJACA,UACA,kBACA,OACA,mDACA,QACA,YACA,OACA,wBACA,4NACA,sCACA,YACA,mOACA,qCACA,YACA,+BACA,0PACA,oCACA,YACA,0DACA,gQACA,qCACA,YACA,OACA,UACA,QACA,SACFoE,KAAK,MAIf9D,gBAAiB,WACb,OAAOb,EAAEO,UAED,8EACA,OACA,+CACA,QACA,oCACA,6CACA,QACA,OACA,mHACA,kCACA,MACA,QACA,8CACA,yDACA,0DACA,4DACA,OACA,oDACA,6CACA,UACA,QACA,OACA,mDACA,gIACA,UACA,8CACA,yHACA,UACA,6GACA,+HACA,UACA,8CACA,uGACA,uKACA,qCACA,YACA,OACA,UACA,QACA,SACFoE,KAAK,MAIf/D,uBAAwB,WACpB,OAAOZ,EAAEO,UAED,mFACA,OACA,+CACA,QACA,YACA,2BACA,kCACA,QACA,OACA,qCACA,QACA,OACA,gDACA,QACA,OACA,iDACA,QACA,OACA,mDACA,QACA,OACA,oDACA,6CACA,UACA,QACA,OACA,wHACA,qMACA,wCACA,YACA,QACA,SACFoE,KAAK,MAIfP,yBAA0B,WACtB,OAAOpE,EAAEO,UAED,wFACA,OACA,gDACA,QACA,YACA,2BACA,kCACA,QACA,OACA,yCACA,QACA,OACA,SACA,QACA,YACA,OACA,mDACA,QACA,YACA,OACA,wHACA,oMACA,wCACA,YACA,QACA,SACFoE,KAAK","file":"../../../scripts/mvc/library/library-folderrow-view.js","sourcesContent":["define(\n [\n \"libs/toastr\",\n \"mvc/library/library-model\",\n \"mvc/library/library-dataset-view\"\n ],\n function(mod_toastr, mod_library_model, mod_library_dataset_view) {\n var FolderRowView = Backbone.View.extend({\n events: {\n \"click .undelete_dataset_btn\": \"undeleteDataset\",\n \"click .undelete_folder_btn\": \"undeleteFolder\",\n \"click .edit_folder_btn\": \"startModifications\",\n \"click .cancel_folder_btn\": \"cancelModifications\",\n \"click .save_folder_btn\": \"saveModifications\"\n },\n\n defaults: {\n type: null,\n visibility_config: {\n edit_folder_btn: false,\n save_folder_btn: false,\n cancel_folder_btn: false,\n permission_folder_btn: false\n },\n edit_mode: false\n },\n\n initialize: function(options) {\n this.options = _.defaults(options || {}, this.defaults);\n this.render(this.options);\n },\n\n render: function(options) {\n this.options = _.extend(this.options, options);\n var folder_item = this.options.model;\n var template = null;\n\n if (\n folder_item.get(\"type\") === \"folder\" ||\n folder_item.get(\"model_class\") === \"LibraryFolder\"\n ) {\n this.options.type = \"folder\";\n this.prepareButtons(folder_item);\n if (folder_item.get(\"deleted\")) {\n template = this.templateRowDeletedFolder();\n } else {\n template = this.templateRowFolder();\n }\n } else if (\n folder_item.get(\"type\") === \"file\" ||\n folder_item.get(\"model_class\") ===\n \"LibraryDatasetDatasetAssociation\" ||\n folder_item.get(\"model_class\") === \"LibraryDataset\"\n ) {\n this.options.type = \"file\";\n if (folder_item.get(\"deleted\")) {\n template = this.templateRowDeletedFile();\n } else {\n template = this.templateRowFile();\n }\n } else {\n Galaxy.emit.error(\"Unknown library item type found.\");\n Galaxy.emit.error(\n folder_item.get(\"type\") ||\n folder_item.get(\"model_class\")\n );\n }\n this.setElement(\n template({\n content_item: folder_item,\n edit_mode: this.options.edit_mode,\n button_config: this.options.visibility_config\n })\n );\n this.$el.show();\n return this;\n },\n\n /**\n * Modify the visibility of buttons for\n * the filling of the row template of a given folder.\n */\n prepareButtons: function(folder) {\n var vis_config = this.options.visibility_config;\n if (this.options.edit_mode === false) {\n vis_config.save_folder_btn = false;\n vis_config.cancel_folder_btn = false;\n if (folder.get(\"deleted\") === true) {\n vis_config.edit_folder_btn = false;\n vis_config.permission_folder_btn = false;\n } else if (folder.get(\"deleted\") === false) {\n vis_config.save_folder_btn = false;\n vis_config.cancel_folder_btn = false;\n if (folder.get(\"can_modify\") === true) {\n vis_config.edit_folder_btn = true;\n }\n if (folder.get(\"can_manage\") === true) {\n vis_config.permission_folder_btn = true;\n }\n }\n } else if (this.options.edit_mode === true) {\n vis_config.edit_folder_btn = false;\n vis_config.permission_folder_btn = false;\n vis_config.save_folder_btn = true;\n vis_config.cancel_folder_btn = true;\n }\n this.options.visibility_config = vis_config;\n },\n\n /* Show the page with dataset details. */\n showDatasetDetails: function() {\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView(\n { id: this.id }\n );\n },\n\n /* Undelete the dataset on server and render the row again. */\n undeleteDataset: function(event) {\n $(\".tooltip\").hide();\n var that = this;\n var dataset_id = $(event.target)\n .closest(\"tr\")\n .data(\"id\");\n var dataset = Galaxy.libraries.folderListView.collection.get(\n dataset_id\n );\n dataset.url = dataset.urlRoot + dataset.id + \"?undelete=true\";\n dataset.destroy({\n success: function(model, response) {\n Galaxy.libraries.folderListView.collection.remove(\n dataset_id\n );\n var updated_dataset = new mod_library_model.Item(\n response\n );\n Galaxy.libraries.folderListView.collection.add(\n updated_dataset\n );\n Galaxy.libraries.folderListView.collection.sortByNameAsc();\n mod_toastr.success(\n \"Dataset undeleted. Click this to see it.\",\n \"\",\n {\n onclick: function() {\n var folder_id = that.model.get(\"folder_id\");\n window.location =\n Galaxy.root +\n \"library/list#folders/\" +\n folder_id +\n \"/datasets/\" +\n that.id;\n }\n }\n );\n },\n error: function(model, response) {\n if (typeof response.responseJSON !== \"undefined\") {\n mod_toastr.error(\n \"Dataset was not undeleted. \" +\n response.responseJSON.err_msg\n );\n } else {\n mod_toastr.error(\n \"An error occured! Dataset was not undeleted. Please try again.\"\n );\n }\n }\n });\n },\n\n /* Undelete the folder on server and render the row again. */\n undeleteFolder: function(event) {\n $(\".tooltip\").hide();\n var that = this;\n var folder_id = $(event.target)\n .closest(\"tr\")\n .data(\"id\");\n var folder = Galaxy.libraries.folderListView.collection.get(\n folder_id\n );\n folder.url = folder.urlRoot + folder.id + \"?undelete=true\";\n folder.destroy({\n success: function(model, response) {\n Galaxy.libraries.folderListView.collection.remove(\n folder_id\n );\n var updated_folder = new mod_library_model.FolderAsModel(\n response\n );\n Galaxy.libraries.folderListView.collection.add(\n updated_folder\n );\n Galaxy.libraries.folderListView.collection.sortByNameAsc();\n mod_toastr.success(\"Folder undeleted.\");\n },\n error: function(model, response) {\n if (typeof response.responseJSON !== \"undefined\") {\n mod_toastr.error(\n \"Folder was not undeleted. \" +\n response.responseJSON.err_msg\n );\n } else {\n mod_toastr.error(\n \"An error occured! Folder was not undeleted. Please try again.\"\n );\n }\n }\n });\n },\n\n /* User clicked the 'edit' button on row so render the row as editable. */\n startModifications: function() {\n this.options.edit_mode = true;\n this.repaint();\n },\n\n /* User clicked the 'cancel' button so render normal row */\n cancelModifications: function() {\n this.options.edit_mode = false;\n this.repaint();\n },\n\n saveModifications: function() {\n var folder = Galaxy.libraries.folderListView.collection.get(\n this.$el.data(\"id\")\n );\n var is_changed = false;\n var new_name = this.$el.find(\".input_folder_name\").val();\n if (\n typeof new_name !== \"undefined\" &&\n new_name !== folder.get(\"name\")\n ) {\n if (new_name.length > 2) {\n folder.set(\"name\", new_name);\n is_changed = true;\n } else {\n mod_toastr.warning(\n \"Folder name has to be at least 3 characters long.\"\n );\n return;\n }\n }\n var new_description = this.$el\n .find(\".input_folder_description\")\n .val();\n if (\n typeof new_description !== \"undefined\" &&\n new_description !== folder.get(\"description\")\n ) {\n folder.set(\"description\", new_description);\n is_changed = true;\n }\n if (is_changed) {\n var row_view = this;\n folder.save(null, {\n patch: true,\n success: function(folder) {\n row_view.options.edit_mode = false;\n row_view.repaint(folder);\n mod_toastr.success(\"Changes to folder saved.\");\n },\n error: function(model, response) {\n if (typeof response.responseJSON !== \"undefined\") {\n mod_toastr.error(response.responseJSON.err_msg);\n } else {\n mod_toastr.error(\n \"An error occured while attempting to update the folder.\"\n );\n }\n }\n });\n } else {\n this.options.edit_mode = false;\n this.repaint(folder);\n mod_toastr.info(\"Nothing has changed.\");\n }\n },\n\n repaint: function() {\n /* need to hide manually because of the element removal in setElement\n invoked in render() */\n $(\".tooltip\").hide();\n /* we need to store the old element to be able to replace it with\n new one */\n var old_element = this.$el;\n /* if user canceled the folder param is undefined,\n if user saved and succeeded the updated folder is rendered */\n this.render();\n old_element.replaceWith(this.$el);\n /* now we attach new tooltips to the newly created row element */\n this.$el.find(\"[data-toggle]\").tooltip();\n },\n\n templateRowFolder: function() {\n return _.template(\n [\n '
\",\n \"There are no libraries matching your search. Try different keyword.\",\n \"
\",\n \"<% } else{ %>\",\n \"
\",\n \"There are no libraries visible to you here. If you expected some to show up please consult the\",\n ' library security wikipage',\n ' or visit the Galaxy support site.',\n \"
\",\n \"There are no libraries matching your search. Try different keyword.\",\n \"
\",\n \"<% } else{ %>\",\n \"
\",\n \"There are no libraries visible to you here. If you expected some to show up please consult the\",\n ' library security wikipage',\n ' or visit the Galaxy support site.',\n \"
',"This folder is either empty or you do not have proper access permissions to see the contents. If you expected something to show up",' please consult the library security wikipage',' or visit the Galaxy support site.',"
"].join(""))}})}});
+"use strict";define(["layout/masthead","utils/utils","libs/toastr","mvc/library/library-model","mvc/library/library-folderrow-view","mvc/library/library-dataset-view"],function(e,t,i,o,s,r){return{FolderListView:Backbone.View.extend({el:"#folder_items_element",progress:0,progressStep:1,folderContainer:null,current_sort_order:"asc",current_sort_key:"name",events:{"click #select-all-checkboxes":"selectAll","click .dataset_row":"selectClickedRow","click .folder_row":"selectClickedRow","click .sort-folder-name":"sortColumnClicked","click .sort-folder-file_ext":"sortColumnClicked","click .sort-folder-description":"sortColumnClicked","click .sort-folder-state":"sortColumnClicked"},collection:null,defaults:{include_deleted:!1,page_count:null,show_page:null},initialize:function(e){this.options=_.defaults(this.options||{},this.defaults,e),this.modal=null,this.rowViews={},this.collection=new o.Folder,this.listenTo(this.collection,"add",this.renderOne),this.listenTo(this.collection,"remove",this.removeOne),this.listenTo(this.collection,"sort",this.rePaint),this.listenTo(this.collection,"reset",this.rePaint),this.fetchFolder()},fetchFolder:function(e){var e=e||{};this.options.include_deleted=e.include_deleted;var t=this;this.folderContainer=new o.FolderContainer({id:this.options.id}),this.folderContainer.url=this.folderContainer.attributes.urlRoot+this.options.id+"/contents",this.options.include_deleted&&(this.folderContainer.url=this.folderContainer.url+"?include_deleted=true"),this.folderContainer.fetch({success:function(e){t.folder_container=e,t.render()},error:function(e,t){void 0!==t.responseJSON?i.error(t.responseJSON.err_msg+" Click this to go back.","",{onclick:function(){Galaxy.libraries.library_router.back()}}):i.error("An error occurred. Click this to go back.","",{onclick:function(){Galaxy.libraries.library_router.back()}})}})},render:function(e){this.options=_.extend(this.options,e);var t=this.templateFolder();$(".tooltip").hide();var o,s=this.folderContainer.attributes.metadata.full_path;if(o=1===s.length?0:s[s.length-2][0],this.$el.html(t({path:this.folderContainer.attributes.metadata.full_path,parent_library_id:this.folderContainer.attributes.metadata.parent_library_id,id:this.options.id,upper_folder_id:o,order:this.current_sort_order})),this.options.dataset_id){var r=_.findWhere(that.rowViews,{id:this.options.dataset_id});r?r.showDatasetDetails():i.error("Requested dataset not found. Showing folder instead.")}else(null===this.options.show_page||this.options.show_page<1)&&(this.options.show_page=1),this.paginate();$("#center [data-toggle]").tooltip(),$("#center").css("overflow","auto")},paginate:function(e){this.options=_.extend(this.options,e),(null===this.options.show_page||this.options.show_page<1)&&(this.options.show_page=1),this.options.total_items_count=this.folder_container.get("folder").models.length,this.options.page_count=Math.ceil(this.options.total_items_count/Galaxy.libraries.preferences.get("folder_page_size"));var t=Galaxy.libraries.preferences.get("folder_page_size")*(this.options.show_page-1),i=null;i=this.folder_container.get("folder").models.slice(t,t+Galaxy.libraries.preferences.get("folder_page_size")),this.options.items_shown=i.length,Galaxy.libraries.preferences.get("folder_page_size")*this.options.show_page>this.options.total_items_count+Galaxy.libraries.preferences.get("folder_page_size")&&(i=[]),Galaxy.libraries.folderToolbarView.renderPaginator(this.options),this.collection.reset(i)},rePaint:function(e){this.options=_.extend(this.options,e),this.removeAllRows(),this.renderAll(),this.checkEmptiness()},addAll:function(e){_.each(e,function(e){Galaxy.libraries.folderListView.collection.add(e,{current_sort_order:!1})}),$("#center [data-toggle]").tooltip(),this.checkEmptiness(),this.postRender()},postRender:function(){var e=this.folderContainer.attributes.metadata;e.contains_file_or_folder=void 0!==this.collection.findWhere({type:"file"})||void 0!==this.collection.findWhere({type:"folder"}),Galaxy.libraries.folderToolbarView.configureElements(e)},renderAll:function(){var e=this;_.each(this.collection.models.reverse(),function(t){e.renderOne(t)}),this.postRender()},renderOne:function(e){this.options.contains_file_or_folder=!0,e.set("folder_id",this.id);var t=new s.FolderRowView({model:e});this.rowViews[e.get("id")]=t,this.$el.find("#first_folder_item").after(t.el)},removeOne:function(e){this.$el.find("tr").filter(function(){return $(this).data("id")&&$(this).data("id")===e.id}).remove()},removeAllRows:function(){$(".library-row").remove()},checkEmptiness:function(){0===this.$el.find(".dataset_row").length&&0===this.$el.find(".folder_row").length?this.$el.find(".empty-folder-message").show():this.$el.find(".empty-folder-message").hide()},sortColumnClicked:function(e){e.preventDefault(),this.current_sort_order="asc"===this.current_sort_order?"desc":"asc",this.current_sort_key=e.currentTarget.className.replace("sort-folder-",""),this.collection.sortFolder(this.current_sort_key,this.current_sort_order),this.renderSortIcon()},selectAll:function(e){var t=e.target.checked;that=this,$(":checkbox","#folder_list_body").each(function(){this.checked=t;var e=$(this).closest("tr");t?that.makeDarkRow(e):that.makeWhiteRow(e)})},selectClickedRow:function(e){var t,i,o="";t=$(e.target).closest("tr"),"input"===e.target.localName?(o=e.target,i="input"):"td"===e.target.localName&&(o=t.find(":checkbox")[0],i="td"),o.checked?"td"===i?(o.checked="",this.makeWhiteRow(t)):"input"===i&&this.makeDarkRow(t):"td"===i?(o.checked="selected",this.makeDarkRow(t)):"input"===i&&this.makeWhiteRow(t)},makeDarkRow:function(e){e.removeClass("light").addClass("dark"),e.find("a").removeClass("light").addClass("dark"),e.find(".fa-file-o").removeClass("fa-file-o").addClass("fa-file"),e.find(".fa-folder-o").removeClass("fa-folder-o").addClass("fa-folder")},makeWhiteRow:function(e){e.removeClass("dark").addClass("light"),e.find("a").removeClass("dark").addClass("light"),e.find(".fa-file").removeClass("fa-file").addClass("fa-file-o"),e.find(".fa-folder").removeClass("fa-folder").addClass("fa-folder-o")},renderSortIcon:function(){"asc"===this.current_sort_order?($('[class*="sort-icon"]').removeClass("fa-sort-alpha-desc").removeClass("fa-sort-alpha-asc"),$(".sort-icon-"+this.current_sort_key).addClass("fa-sort-alpha-asc")):$(".sort-icon-"+this.current_sort_key).addClass("fa-sort-alpha-desc")},templateFolder:function(){return _.template(['','
',"This folder is either empty or you do not have proper access permissions to see the contents. If you expected something to show up",' please consult the library security wikipage',' or visit the Galaxy support site.',"
"].join(""))}})}});
//# sourceMappingURL=../../../maps/mvc/library/library-folderlist-view.js.map
diff --git a/static/scripts/mvc/library/library-folderrow-view.js b/static/scripts/mvc/library/library-folderrow-view.js
index bb466b796e8..2d2e2311c9b 100644
--- a/static/scripts/mvc/library/library-folderrow-view.js
+++ b/static/scripts/mvc/library/library-folderrow-view.js
@@ -1,2 +1,2 @@
-"use strict";define(["libs/toastr","mvc/library/library-model","mvc/library/library-dataset-view"],function(t,e,i){return{FolderRowView:Backbone.View.extend({events:{"click .undelete_dataset_btn":"undeleteDataset","click .undelete_folder_btn":"undeleteFolder","click .edit_folder_btn":"startModifications","click .cancel_folder_btn":"cancelModifications","click .save_folder_btn":"saveModifications"},defaults:{type:null,visibility_config:{edit_folder_btn:!1,save_folder_btn:!1,cancel_folder_btn:!1,permission_folder_btn:!1},edit_mode:!1},initialize:function(t){this.options=_.defaults(t||{},this.defaults),this.render(this.options)},render:function(t){this.options=_.extend(this.options,t);var e=this.options.model,i=null;return"folder"===e.get("type")||"LibraryFolder"===e.get("model_class")?(this.options.type="folder",this.prepareButtons(e),i=e.get("deleted")?this.templateRowDeletedFolder():this.templateRowFolder()):"file"===e.get("type")||"LibraryDatasetDatasetAssociation"===e.get("model_class")||"LibraryDataset"===e.get("model_class")?(this.options.type="file",i=e.get("deleted")?this.templateRowDeletedFile():this.templateRowFile()):(Galaxy.emit.error("Unknown library item type found."),Galaxy.emit.error(e.get("type")||e.get("model_class"))),this.setElement(i({content_item:e,edit_mode:this.options.edit_mode,button_config:this.options.visibility_config})),this.$el.show(),this},prepareButtons:function(t){var e=this.options.visibility_config;!1===this.options.edit_mode?(e.save_folder_btn=!1,e.cancel_folder_btn=!1,!0===t.get("deleted")?(e.edit_folder_btn=!1,e.permission_folder_btn=!1):!1===t.get("deleted")&&(e.save_folder_btn=!1,e.cancel_folder_btn=!1,!0===t.get("can_modify")&&(e.edit_folder_btn=!0),!0===t.get("can_manage")&&(e.permission_folder_btn=!0))):!0===this.options.edit_mode&&(e.edit_folder_btn=!1,e.permission_folder_btn=!1,e.save_folder_btn=!0,e.cancel_folder_btn=!0),this.options.visibility_config=e},showDatasetDetails:function(){Galaxy.libraries.datasetView=new i.LibraryDatasetView({id:this.id})},undeleteDataset:function(i){$(".tooltip").hide();var o=this,a=$(i.target).closest("tr").data("id"),n=Galaxy.libraries.folderListView.collection.get(a);n.url=n.urlRoot+n.id+"?undelete=true",n.destroy({success:function(i,n){Galaxy.libraries.folderListView.collection.remove(a);var l=new e.Item(n);Galaxy.libraries.folderListView.collection.add(l),Galaxy.libraries.folderListView.collection.sortByNameAsc(),t.success("Dataset undeleted. Click this to see it.","",{onclick:function(){var t=o.model.get("folder_id");window.location=Galaxy.root+"library/list#folders/"+t+"/datasets/"+o.id}})},error:function(e,i){void 0!==i.responseJSON?t.error("Dataset was not undeleted. "+i.responseJSON.err_msg):t.error("An error occured! Dataset was not undeleted. Please try again.")}})},undeleteFolder:function(i){$(".tooltip").hide();var o=$(i.target).closest("tr").data("id"),a=Galaxy.libraries.folderListView.collection.get(o);a.url=a.urlRoot+a.id+"?undelete=true",a.destroy({success:function(i,a){Galaxy.libraries.folderListView.collection.remove(o);var n=new e.FolderAsModel(a);Galaxy.libraries.folderListView.collection.add(n),Galaxy.libraries.folderListView.collection.sortByNameAsc(),t.success("Folder undeleted.")},error:function(e,i){void 0!==i.responseJSON?t.error("Folder was not undeleted. "+i.responseJSON.err_msg):t.error("An error occured! Folder was not undeleted. Please try again.")}})},startModifications:function(){this.options.edit_mode=!0,this.repaint()},cancelModifications:function(){this.options.edit_mode=!1,this.repaint()},saveModifications:function(){var e=Galaxy.libraries.folderListView.collection.get(this.$el.data("id")),i=!1,o=this.$el.find(".input_folder_name").val();if(void 0!==o&&o!==e.get("name")){if(!(o.length>2))return void t.warning("Folder name has to be at least 3 characters long.");e.set("name",o),i=!0}var a=this.$el.find(".input_folder_description").val();if(void 0!==a&&a!==e.get("description")&&(e.set("description",a),i=!0),i){var n=this;e.save(null,{patch:!0,success:function(e){n.options.edit_mode=!1,n.repaint(e),t.success("Changes to folder saved.")},error:function(e,i){void 0!==i.responseJSON?t.error(i.responseJSON.err_msg):t.error("An error occured while attempting to update the folder.")}})}else this.options.edit_mode=!1,this.repaint(e),t.info("Nothing has changed.")},repaint:function(){$(".tooltip").hide();var t=this.$el;this.render(),t.replaceWith(this.$el),this.$el.find("[data-toggle]").tooltip()},templateRowFolder:function(){return _.template(['
"].join(""))}})}});
+"use strict";define(["libs/toastr","mvc/library/library-model","mvc/library/library-dataset-view"],function(t,e,i){return{FolderRowView:Backbone.View.extend({events:{"click .undelete_dataset_btn":"undeleteDataset","click .undelete_folder_btn":"undeleteFolder","click .edit_folder_btn":"startModifications","click .cancel_folder_btn":"cancelModifications","click .save_folder_btn":"saveModifications"},defaults:{type:null,visibility_config:{edit_folder_btn:!1,save_folder_btn:!1,cancel_folder_btn:!1,permission_folder_btn:!1},edit_mode:!1},initialize:function(t){this.options=_.defaults(t||{},this.defaults),this.render(this.options)},render:function(t){this.options=_.extend(this.options,t);var e=this.options.model,i=null;return"folder"===e.get("type")||"LibraryFolder"===e.get("model_class")?(this.options.type="folder",this.prepareButtons(e),i=e.get("deleted")?this.templateRowDeletedFolder():this.templateRowFolder()):"file"===e.get("type")||"LibraryDatasetDatasetAssociation"===e.get("model_class")||"LibraryDataset"===e.get("model_class")?(this.options.type="file",i=e.get("deleted")?this.templateRowDeletedFile():this.templateRowFile()):(Galaxy.emit.error("Unknown library item type found."),Galaxy.emit.error(e.get("type")||e.get("model_class"))),this.setElement(i({content_item:e,edit_mode:this.options.edit_mode,button_config:this.options.visibility_config})),this.$el.show(),this},prepareButtons:function(t){var e=this.options.visibility_config;!1===this.options.edit_mode?(e.save_folder_btn=!1,e.cancel_folder_btn=!1,!0===t.get("deleted")?(e.edit_folder_btn=!1,e.permission_folder_btn=!1):!1===t.get("deleted")&&(e.save_folder_btn=!1,e.cancel_folder_btn=!1,!0===t.get("can_modify")&&(e.edit_folder_btn=!0),!0===t.get("can_manage")&&(e.permission_folder_btn=!0))):!0===this.options.edit_mode&&(e.edit_folder_btn=!1,e.permission_folder_btn=!1,e.save_folder_btn=!0,e.cancel_folder_btn=!0),this.options.visibility_config=e},showDatasetDetails:function(){Galaxy.libraries.datasetView=new i.LibraryDatasetView({id:this.id})},undeleteDataset:function(i){$(".tooltip").hide();var o=this,a=$(i.target).closest("tr").data("id"),n=Galaxy.libraries.folderListView.collection.get(a);n.url=n.urlRoot+n.id+"?undelete=true",n.destroy({success:function(i,n){Galaxy.libraries.folderListView.collection.remove(a);var l=new e.Item(n);Galaxy.libraries.folderListView.collection.add(l),Galaxy.libraries.folderListView.collection.sortFolder("name","asc"),t.success("Dataset undeleted. Click this to see it.","",{onclick:function(){var t=o.model.get("folder_id");window.location=Galaxy.root+"library/list#folders/"+t+"/datasets/"+o.id}})},error:function(e,i){void 0!==i.responseJSON?t.error("Dataset was not undeleted. "+i.responseJSON.err_msg):t.error("An error occured! Dataset was not undeleted. Please try again.")}})},undeleteFolder:function(i){$(".tooltip").hide();var o=$(i.target).closest("tr").data("id"),a=Galaxy.libraries.folderListView.collection.get(o);a.url=a.urlRoot+a.id+"?undelete=true",a.destroy({success:function(i,a){Galaxy.libraries.folderListView.collection.remove(o);var n=new e.FolderAsModel(a);Galaxy.libraries.folderListView.collection.add(n),Galaxy.libraries.folderListView.collection.sortFolder("name","asc"),t.success("Folder undeleted.")},error:function(e,i){void 0!==i.responseJSON?t.error("Folder was not undeleted. "+i.responseJSON.err_msg):t.error("An error occured! Folder was not undeleted. Please try again.")}})},startModifications:function(){this.options.edit_mode=!0,this.repaint()},cancelModifications:function(){this.options.edit_mode=!1,this.repaint()},saveModifications:function(){var e=Galaxy.libraries.folderListView.collection.get(this.$el.data("id")),i=!1,o=this.$el.find(".input_folder_name").val();if(void 0!==o&&o!==e.get("name")){if(!(o.length>2))return void t.warning("Folder name has to be at least 3 characters long.");e.set("name",o),i=!0}var a=this.$el.find(".input_folder_description").val();if(void 0!==a&&a!==e.get("description")&&(e.set("description",a),i=!0),i){var n=this;e.save(null,{patch:!0,success:function(e){n.options.edit_mode=!1,n.repaint(e),t.success("Changes to folder saved.")},error:function(e,i){void 0!==i.responseJSON?t.error(i.responseJSON.err_msg):t.error("An error occured while attempting to update the folder.")}})}else this.options.edit_mode=!1,this.repaint(e),t.info("Nothing has changed.")},repaint:function(){$(".tooltip").hide();var t=this.$el;this.render(),t.replaceWith(this.$el),this.$el.find("[data-toggle]").tooltip()},templateRowFolder:function(){return _.template(['