diff --git a/static/maps/galaxy.library.js.map b/static/maps/galaxy.library.js.map deleted file mode 100644 index 89b84de2c6e..00000000000 --- a/static/maps/galaxy.library.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["galaxy.library.js"],"names":["LibraryRouter","Backbone","Router","extend","initialize","this","routesHit","history","on","bind","trackPageview","routes","","page/:show_page","library/:library_id/permissions","folders/:folder_id/permissions","folders/:folder_id/datasets/:dataset_id","folders/:folder_id/datasets/:dataset_id/permissions","folders/:folder_id/download/:format","folders/:folder_id/import/:source","back","window","navigate","trigger","replace","url","getFragment","test","ga","Galaxy","root","LibraryPrefs","_baseMvc2","default","SessionStorageModel","defaults","without_restricted","sort_order","sort_by","folder_page_size","GalaxyLibrary","View","libraryToolbarView","libraryListView","library_router","libraryView","with_deleted","ga_code","i","s","o","g","r","a","m","q","push","arguments","l","Date","getElementsByTagName","insertBefore","document","folderToolbarView","config","folderListView","preferences","id","createElement","_libraryLibrarytoolbarView2","LibraryToolbarView","parentNode","_libraryLibrarylistView2","LibraryListView","show_page","libraries","render","$el","unbind","_libraryFoldertoolbarView2","FolderToolbarView","_libraryFolderlistView2","FolderListView","folder_id","format","$","find","length","_toastr2","download","dataset_id","datasetView","_libraryDatasetView2","LibraryDatasetView","show_version","show_permissions","ldda_id","library_id","_libraryLibraryView2","LibraryView","folderView","_libraryFolderView2","FolderView","source","showImportModal","start","pushState"],"mappings":"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","file":"../scripts/galaxy.library.js","sourcesContent":["// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n// === MAIN GALAXY LIBRARY MODULE ====\n// MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM\n\nimport mod_utils from \"utils/utils\";\nimport mod_toastr from \"libs/toastr\";\nimport mod_baseMVC from \"mvc/base-mvc\";\nimport mod_library_model from \"mvc/library/library-model\";\nimport mod_folderlist_view from \"mvc/library/library-folderlist-view\";\nimport mod_librarylist_view from \"mvc/library/library-librarylist-view\";\nimport mod_librarytoolbar_view from \"mvc/library/library-librarytoolbar-view\";\nimport mod_foldertoolbar_view from \"mvc/library/library-foldertoolbar-view\";\nimport mod_library_dataset_view from \"mvc/library/library-dataset-view\";\nimport mod_library_library_view from \"mvc/library/library-library-view\";\nimport mod_library_folder_view from \"mvc/library/library-folder-view\";\n// ============================================================================\n/**\n * The Data Libraries router. Takes care about triggering routes\n * and sends users to proper pieces of the application.\n */\nvar LibraryRouter = Backbone.Router.extend({\n initialize: function() {\n this.routesHit = 0;\n // keep count of number of routes handled by the application\n Backbone.history.on(\n \"route\",\n function() {\n this.routesHit++;\n },\n this\n );\n\n this.bind(\"route\", this.trackPageview);\n },\n\n routes: {\n \"\": \"libraries\",\n \"page/:show_page\": \"libraries_page\",\n \"library/:library_id/permissions\": \"library_permissions\",\n \"folders/:folder_id/permissions\": \"folder_permissions\",\n \"folders/:id\": \"folder_content\",\n \"folders/:id/page/:show_page\": \"folder_page\",\n \"folders/:folder_id/datasets/:dataset_id\": \"dataset_detail\",\n \"folders/:folder_id/datasets/:dataset_id/permissions\": \"dataset_permissions\",\n \"folders/:folder_id/datasets/:dataset_id/versions/:ldda_id\": \"dataset_version\",\n \"folders/:folder_id/download/:format\": \"download\",\n \"folders/:folder_id/import/:source\": \"import_datasets\"\n },\n\n /**\n * If more than one route has been hit the user did not land on current\n * page directly so we can go back safely. Otherwise go to the home page.\n * Use replaceState if available so the navigation doesn't create an\n * extra history entry\n */\n back: function() {\n if (this.routesHit > 1) {\n window.history.back();\n } else {\n this.navigate(\"#\", { trigger: true, replace: true });\n }\n },\n\n /**\n * Track every route change as a page view in Google Analytics.\n */\n trackPageview: function() {\n var url = Backbone.history.getFragment();\n //prepend slash\n if (!/^\\//.test(url) && url != \"\") {\n url = `/${url}`;\n }\n if (typeof ga !== \"undefined\") {\n ga(\"send\", \"pageview\", `${Galaxy.root}library/list${url}`);\n }\n }\n});\n\n// ============================================================================\n/** session storage for library preferences */\nvar LibraryPrefs = mod_baseMVC.SessionStorageModel.extend({\n defaults: {\n with_deleted: false,\n without_restricted: false,\n sort_order: \"asc\",\n sort_by: \"name\",\n library_page_size: 20,\n folder_page_size: 15\n }\n});\n\n// ============================================================================\n/**\n * Main view of the Galaxy Data Libraries. Stores pointers to other subviews\n * and defines what router should do on the route triggers.\n */\nvar GalaxyLibrary = Backbone.View.extend({\n libraryToolbarView: null,\n libraryListView: null,\n library_router: null,\n libraryView: null,\n folderToolbarView: null,\n folderListView: null,\n datasetView: null,\n\n initialize: function() {\n // This should go upstream in the js app once available\n if (window.Galaxy.config.ga_code) {\n ((i, s, o, g, r, a, m) => {\n i[\"GoogleAnalyticsObject\"] = r;\n (i[r] =\n i[r] ||\n function() {\n (i[r].q = i[r].q || []).push(arguments);\n }),\n (i[r].l = 1 * new Date());\n (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);\n a.async = 1;\n a.src = g;\n m.parentNode.insertBefore(a, m);\n })(window, document, \"script\", \"//www.google-analytics.com/analytics.js\", \"ga\");\n ga(\"create\", window.Galaxy.config.ga_code, \"auto\");\n ga(\"send\", \"pageview\");\n }\n\n Galaxy.libraries = this;\n\n this.preferences = new LibraryPrefs({ id: \"global-lib-prefs\" });\n\n this.library_router = new LibraryRouter();\n\n this.library_router.on(\"route:libraries\", () => {\n if (Galaxy.libraries.libraryToolbarView) {\n Galaxy.libraries.libraryToolbarView.$el.unbind(\"click\");\n }\n Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();\n Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView();\n });\n\n this.library_router.on(\"route:libraries_page\", show_page => {\n if (Galaxy.libraries.libraryToolbarView === null) {\n Galaxy.libraries.libraryToolbarView = new mod_librarytoolbar_view.LibraryToolbarView();\n Galaxy.libraries.libraryListView = new mod_librarylist_view.LibraryListView({ show_page: show_page });\n } else {\n Galaxy.libraries.libraryListView.render({\n show_page: show_page\n });\n }\n });\n\n this.library_router.on(\"route:folder_content\", id => {\n if (Galaxy.libraries.folderToolbarView) {\n Galaxy.libraries.folderToolbarView.$el.unbind(\"click\");\n }\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView({ id: id });\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView({ id: id });\n });\n\n this.library_router.on(\"route:folder_page\", (id, show_page) => {\n if (Galaxy.libraries.folderToolbarView === null) {\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView({ id: id });\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView({\n id: id,\n show_page: show_page\n });\n } else {\n Galaxy.libraries.folderListView.render({\n id: id,\n show_page: parseInt(show_page)\n });\n }\n });\n\n this.library_router.on(\"route:download\", (folder_id, format) => {\n if ($(\"#folder_list_body\").find(\":checked\").length === 0) {\n mod_toastr.info(\"You must select at least one dataset to download\");\n Galaxy.libraries.library_router.navigate(`folders/${folder_id}`, { trigger: true, replace: true });\n } else {\n Galaxy.libraries.folderToolbarView.download(folder_id, format);\n Galaxy.libraries.library_router.navigate(`folders/${folder_id}`, { trigger: false, replace: true });\n }\n });\n\n this.library_router.on(\"route:dataset_detail\", (folder_id, dataset_id) => {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({\n id: dataset_id,\n show_version: false,\n show_permissions: false\n });\n });\n\n this.library_router.on(\"route:dataset_version\", (folder_id, dataset_id, ldda_id) => {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({\n id: dataset_id,\n ldda_id: ldda_id,\n show_version: true\n });\n });\n\n this.library_router.on(\"route:dataset_permissions\", (folder_id, dataset_id) => {\n if (Galaxy.libraries.datasetView) {\n Galaxy.libraries.datasetView.$el.unbind(\"click\");\n }\n Galaxy.libraries.datasetView = new mod_library_dataset_view.LibraryDatasetView({\n id: dataset_id,\n show_permissions: true\n });\n });\n\n this.library_router.on(\"route:library_permissions\", library_id => {\n if (Galaxy.libraries.libraryView) {\n Galaxy.libraries.libraryView.$el.unbind(\"click\");\n }\n Galaxy.libraries.libraryView = new mod_library_library_view.LibraryView({\n id: library_id,\n show_permissions: true\n });\n });\n\n this.library_router.on(\"route:folder_permissions\", folder_id => {\n if (Galaxy.libraries.folderView) {\n Galaxy.libraries.folderView.$el.unbind(\"click\");\n }\n Galaxy.libraries.folderView = new mod_library_folder_view.FolderView({\n id: folder_id,\n show_permissions: true\n });\n });\n\n this.library_router.on(\"route:import_datasets\", (folder_id, source) => {\n if (Galaxy.libraries.folderToolbarView && Galaxy.libraries.folderListView) {\n Galaxy.libraries.folderToolbarView.showImportModal({\n source: source\n });\n } else {\n Galaxy.libraries.folderToolbarView = new mod_foldertoolbar_view.FolderToolbarView({ id: folder_id });\n Galaxy.libraries.folderListView = new mod_folderlist_view.FolderListView({ id: folder_id });\n Galaxy.libraries.folderToolbarView.showImportModal({\n source: source\n });\n }\n });\n\n Backbone.history.start({ pushState: false });\n }\n});\n\nexport default {\n GalaxyApp: GalaxyLibrary\n};\n"]} \ No newline at end of file diff --git a/static/maps/layout/panel.js.map b/static/maps/layout/panel.js.map deleted file mode 100644 index 1bd3b37850f..00000000000 --- a/static/maps/layout/panel.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["layout/panel.js"],"names":["_","Backbone","MIN_PANEL_WIDTH","MAX_PANEL_WIDTH","SidePanel","View","extend","initialize","options","this","view","saved_size","hiddenByTool","$center","$el","siblings","$toggleButton","$","render","self","panel","components","model","attributes","html","_templatePanel","id","each","buttons","button","append","addClass","cls","escape","title","_templateBody","_templateFooter","join","_templateHeader","data","events","mousedown .unified-panel-footer > .drag","click .unified-panel-footer > .panel-collapse","_mousedownDragHandler","ev","move","e","delta","pageX","prevX","oldWidth","width","draggingLeft","newWidth","Math","min","max","resize","_jquery2","default","on","one","hide","css","newSize","show","hidden","animation","whichSide","animate","removeClass","toggle","handle_minwidth_hint","hint","force_panel","op","LeftPanel","RightPanel","CenterPanel","setElement","template","$frame","$panel","_iframeChangeHandler","iframe","contentWindow","location","host","empty","Galaxy","fullpath","pathname","search","hash","onbeforeunload","attr","scrollTop","toString"],"mappings":"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","file":"../../scripts/layout/panel.js","sourcesContent":["import $ from \"jquery\";\nimport * as _ from \"libs/underscore\";\nimport * as Backbone from \"libs/backbone\";\n\nvar MIN_PANEL_WIDTH = 160;\nvar MAX_PANEL_WIDTH = 800;\n\n/** View for left/right panels used by Page view */\nvar SidePanel = Backbone.View.extend({\n initialize: function(options) {\n this.view = options.view;\n this.hidden = false;\n this.saved_size = null;\n this.hiddenByTool = false;\n },\n\n $center: function() {\n return this.$el.siblings(\"#center\");\n },\n\n $toggleButton: function() {\n return this.$(\".unified-panel-footer > .panel-collapse\");\n },\n\n render: function() {\n var self = this;\n var panel = this.view;\n var components = this.view.model.attributes || {};\n this.$el.html(this._templatePanel(this.id));\n _.each(components.buttons, button => {\n self.$(\".panel-header-buttons\").append(button.$el);\n });\n this.$el.addClass(components.cls);\n this.$(\".panel-header-text\").html(_.escape(components.title));\n this.$(\".unified-panel-body\").append(panel.$el);\n panel.render();\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templatePanel: function() {\n return [this._templateHeader(), this._templateBody(), this._templateFooter()].join(\"\");\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templateHeader: function(data) {\n return [\n '
',\n '
',\n '
',\n '
',\n \"
\",\n \"
\"\n ].join(\"\");\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templateBody: function(data) {\n return '
';\n },\n\n /** panel dom template. id is 'right' or 'left' */\n _templateFooter: function(data) {\n return [\n '
',\n '
',\n '
',\n \"
\"\n ].join(\"\");\n },\n\n events: {\n \"mousedown .unified-panel-footer > .drag\": \"_mousedownDragHandler\",\n \"click .unified-panel-footer > .panel-collapse\": \"toggle\"\n },\n\n _mousedownDragHandler: function(ev) {\n var self = this;\n var draggingLeft = this.id === \"left\";\n var prevX = ev.pageX;\n\n function move(e) {\n var delta = e.pageX - prevX;\n prevX = e.pageX;\n var oldWidth = self.$el.width();\n var newWidth = draggingLeft ? oldWidth + delta : oldWidth - delta;\n // Limit range\n newWidth = Math.min(MAX_PANEL_WIDTH, Math.max(MIN_PANEL_WIDTH, newWidth));\n self.resize(newWidth);\n }\n\n // this is a page wide overlay that assists in capturing the move and release of the mouse\n // if not provided, progress and end wouldn't fire if the mouse moved out of the drag button area\n $(\"#dd-helper\")\n .show()\n .on(\"mousemove\", move)\n .one(\"mouseup\", function(e) {\n $(this)\n .hide()\n .off(\"mousemove\", move);\n });\n },\n\n // TODO: the following three could be simplified I think\n // if panel is 'right' (this.id), move center right newSize number of pixels\n resize: function(newSize) {\n this.$el.css(\"width\", newSize);\n this.$center().css(this.id, newSize);\n return this;\n },\n\n show: function() {\n if (!this.hidden) {\n return;\n }\n var self = this;\n var animation = {};\n var whichSide = this.id;\n animation[whichSide] = 0;\n self.$el\n .css(whichSide, -this.saved_size)\n .show()\n .animate(animation, \"fast\", () => {\n self.resize(self.saved_size);\n });\n self.hidden = false;\n self.$toggleButton().removeClass(\"hidden\");\n return this;\n },\n\n hide: function() {\n if (this.hidden) {\n return;\n }\n var animation = {};\n var whichSide = this.id;\n this.saved_size = this.$el.width();\n animation[whichSide] = -this.saved_size;\n this.$el.animate(animation, \"fast\");\n this.$center().css(whichSide, 0);\n this.hidden = true;\n this.$toggleButton().addClass(\"hidden\");\n return this;\n },\n\n toggle: function(ev) {\n this.hidden ? this.show() : this.hide();\n this.hiddenByTool = false;\n return this;\n },\n\n // ..............................................................\n //TODO: only used in message.mako?\n /** */\n handle_minwidth_hint: function(hint) {\n var space = this.$center().width() - (this.hidden ? this.saved_size : 0);\n if (space < hint) {\n if (!this.hidden) {\n this.toggle();\n this.hiddenByTool = true;\n }\n } else {\n if (this.hiddenByTool) {\n this.toggle();\n this.hiddenByTool = false;\n }\n }\n return self;\n },\n\n /** */\n force_panel: function(op) {\n if (op == \"show\") {\n return this.show();\n }\n if (op == \"hide\") {\n return this.hide();\n }\n return self;\n },\n\n toString: function() {\n return `SidePanel(${this.id})`;\n }\n});\n\n// ----------------------------------------------------------------------------\n// TODO: side should be defined by page - not here\nvar LeftPanel = SidePanel.extend({\n id: \"left\"\n});\n\nvar RightPanel = SidePanel.extend({\n id: \"right\"\n});\n\n/** Center panel with the ability to switch between iframe and view */\nvar CenterPanel = Backbone.View.extend({\n initialize: function(options) {\n this.setElement($(this.template()));\n this.$frame = this.$(\".center-frame\");\n this.$panel = this.$(\".center-panel\");\n this.$frame.on(\"load\", _.bind(this._iframeChangeHandler, this));\n },\n\n /** Display iframe if its target url changes, hide center panel */\n _iframeChangeHandler: function(ev) {\n var iframe = ev.currentTarget;\n var location = iframe.contentWindow && iframe.contentWindow.location;\n if (location && location.host) {\n $(iframe).show();\n this.$panel.empty().hide();\n Galaxy.trigger(\"center-frame:load\", {\n fullpath: location.pathname + location.search + location.hash,\n pathname: location.pathname,\n search: location.search,\n hash: location.hash\n });\n }\n },\n\n /** Display a view in the center panel, hide iframe */\n display: function(view) {\n var contentWindow = this.$frame[0].contentWindow || {};\n var message = contentWindow.onbeforeunload && contentWindow.onbeforeunload();\n if (!message || confirm(message)) {\n contentWindow.onbeforeunload = undefined;\n this.$frame.attr(\"src\", \"about:blank\").hide();\n this.$panel\n .empty()\n .scrollTop(0)\n .append(view.$el || view)\n .show();\n Galaxy.trigger(\"center-panel:load\", view);\n }\n },\n\n template: function() {\n return (\n '
' +\n '