diff --git a/client/galaxy/scripts/apps/analysis.js b/client/galaxy/scripts/apps/analysis.js index 708a6a45750..c1b07c172fb 100644 --- a/client/galaxy/scripts/apps/analysis.js +++ b/client/galaxy/scripts/apps/analysis.js @@ -206,7 +206,7 @@ window.app = function app( options, bootstrapped ){ /** load the center panel with a tool form described by the given params obj */ _loadToolForm : function( params ){ //TODO: load tool form code async - params.id = params.tool_id; + params.id = unescape( params.tool_id ); this.page.display( new ToolForm.View( params ) ); }, diff --git a/lib/galaxy/jobs/actions/post.py b/lib/galaxy/jobs/actions/post.py index 380803ccb29..38f5178bd78 100644 --- a/lib/galaxy/jobs/actions/post.py +++ b/lib/galaxy/jobs/actions/post.py @@ -334,7 +334,7 @@ class TagDatasetAction(DefaultJobAction): if tags: for dataset_assoc in job.output_datasets: if action.output_name == '' or dataset_assoc.name == action.output_name: - app.tag_handler.set_tags_from_list( job.user, dataset_assoc.dataset, tags) + app.tag_handler.add_tags_from_list( job.user, dataset_assoc.dataset, tags) sa_session.flush() @classmethod diff --git a/lib/galaxy/managers/tags.py b/lib/galaxy/managers/tags.py index e2cd580edd7..f59cee26fe8 100644 --- a/lib/galaxy/managers/tags.py +++ b/lib/galaxy/managers/tags.py @@ -38,10 +38,15 @@ class TagManager( object ): # Initialize with known classes - add to this in subclasses. self.item_tag_assoc_info = {} + def add_tags_from_list( self, user, item, new_tags_list ): + new_tags_set = set( new_tags_list ) + if item.tags: + new_tags_set.update( self.get_tags_str( item.tags ).split( ',' ) ) + return self.set_tags_from_list( user, item, new_tags_set ) + def set_tags_from_list( self, user, item, new_tags_list ): # precondition: item is already security checked against user # precondition: incoming tags is a list of sanitized/formatted strings - self.delete_item_tags( user, item ) new_tags_str = ','.join( new_tags_list ) self.apply_item_tags( user, item, unicodify( new_tags_str, 'utf-8' ) ) diff --git a/static/scripts/bundled/admin.bundled.js.map b/static/scripts/bundled/admin.bundled.js.map index 8c2de53df1f..404a13da122 100644 --- a/static/scripts/bundled/admin.bundled.js.map +++ b/static/scripts/bundled/admin.bundled.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///admin.bundled.js","webpack:///./galaxy/scripts/apps/admin.js","webpack:///./galaxy/scripts/apps/panels/admin-panel.js"],"names":["webpackJsonp","0","module","exports","__webpack_require__","_","jQuery","$","GalaxyApp","AdminPanel","Page","window","app","options","bootstrapped","Galaxy","debug","params","config","extend","active_view","page","View","Left","call","98","Backbone","_l","initialize","self","this","root","settings","message","status","model","Model","title","categories","Collection","items","url","enabled","is_tool_shed_installed","enable_beta_ts_api_install","installing_repository_ids","is_repo_installed","allow_user_impersonation","enable_quotas","setElement","_template","render","$el","empty","each","category","$section","_templateSection","attributes","$entries","find","get","item","undefined","append","addClass","attr","href","target","text","prop","join","toString"],"mappings":"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","file":"admin.bundled.js","sourcesContent":["webpackJsonp([4],{\n\n/***/ 0:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(_) {var jQuery = __webpack_require__(1),\n\t $ = jQuery,\n\t GalaxyApp = __webpack_require__(35).GalaxyApp,\n\t AdminPanel = __webpack_require__(98),\n\t Page = __webpack_require__(36);\n\t\n\twindow.app = function app(options, bootstrapped) {\n\t window.Galaxy = new GalaxyApp(options, bootstrapped);\n\t Galaxy.debug('admin app');\n\t Galaxy.params = Galaxy.config.params;\n\t $(function () {\n\t _.extend(options.config, { active_view: 'admin' });\n\t Galaxy.page = new Page.View(_.extend(options, {\n\t Left: AdminPanel\n\t }));\n\t });\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ },\n\n/***/ 98:\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {var _l = __webpack_require__(5);\n\t\n\tvar AdminPanel = Backbone.View.extend({\n\t initialize: function (page, options) {\n\t var self = this;\n\t this.page = page;\n\t this.root = options.root;\n\t this.config = options.config;\n\t this.settings = options.settings;\n\t this.message = options.message;\n\t this.status = options.status;\n\t this.model = new Backbone.Model({\n\t title: _l('Administration')\n\t });\n\t this.categories = new Backbone.Collection([{\n\t title: 'Server',\n\t items: [{\n\t title: 'Data types registry',\n\t url: 'admin/view_datatypes_registry'\n\t }, {\n\t title: 'Data tables registry',\n\t url: 'admin/view_tool_data_tables'\n\t }, {\n\t title: 'Display applications',\n\t url: 'admin/display_applications'\n\t }, {\n\t title: 'Manage jobs',\n\t url: 'admin/jobs'\n\t }]\n\t }, {\n\t title: 'Tools and Tool Shed',\n\t items: [{\n\t title: 'Search Tool Shed',\n\t url: 'admin_toolshed/browse_tool_sheds',\n\t enabled: self.settings.is_tool_shed_installed\n\t }, {\n\t title: 'Search Tool Shed (Beta)',\n\t url: 'admin_toolshed/browse_toolsheds',\n\t enabled: self.settings.is_tool_shed_installed && self.config.enable_beta_ts_api_install\n\t }, {\n\t title: 'Monitor installing repositories',\n\t url: 'admin_toolshed/monitor_repository_installation?installing_repository_ids=' + self.settings.installing_repository_ids,\n\t enabled: self.settings.installing_repository_ids\n\t }, {\n\t title: 'Manage installed tools',\n\t url: 'admin_toolshed/browse_repositories',\n\t enabled: self.settings.is_repo_installed\n\t }, {\n\t title: 'Reset metadata',\n\t url: 'admin_toolshed/reset_metadata_on_selected_installed_repositories',\n\t enabled: self.settings.is_repo_installed\n\t }, {\n\t title: 'Download local tool',\n\t url: 'admin/package_tool'\n\t }, {\n\t title: 'Tool lineage',\n\t url: 'admin/tool_versions'\n\t }, {\n\t title: 'Reload a tool\\'s configuration',\n\t url: 'admin/reload_tool'\n\t }, {\n\t title: 'Review tool migration stages',\n\t url: 'admin/review_tool_migration_stages'\n\t }, {\n\t title: 'View Tool Error Logs',\n\t url: 'admin/tool_errors'\n\t }, {\n\t title: 'Manage Display Whitelist',\n\t url: 'admin/sanitize_whitelist'\n\t }, {\n\t title: 'Manage Tool Dependencies',\n\t url: 'admin/manage_tool_dependencies'\n\t }]\n\t }, {\n\t title: 'User Management',\n\t items: [{\n\t title: 'Users',\n\t url: 'admin/users'\n\t }, {\n\t title: 'Groups',\n\t url: 'admin/groups'\n\t }, {\n\t title: 'Roles',\n\t url: 'admin/roles'\n\t }, {\n\t title: 'API keys',\n\t url: 'userskeys/all_users'\n\t }, {\n\t title: 'Impersonate a user',\n\t url: 'admin/impersonate',\n\t enabled: self.config.allow_user_impersonation\n\t }]\n\t }, {\n\t title: 'Data',\n\t items: [{\n\t title: 'Quotas',\n\t url: 'admin/quotas',\n\t enabled: self.config.enable_quotas\n\t }, {\n\t title: 'Data libraries',\n\t url: 'library_admin/browse_libraries'\n\t }, {\n\t title: 'Roles',\n\t url: 'admin/roles'\n\t }, {\n\t title: 'Local data',\n\t url: 'data_manager'\n\t }]\n\t }, {\n\t title: 'Form Definitions',\n\t items: [{\n\t title: 'Form definitions',\n\t url: 'forms/browse_form_definitions'\n\t }]\n\t }, {\n\t title: 'Sample Tracking',\n\t items: [{\n\t title: 'Sequencers and external services',\n\t url: 'external_service/browse_external_services'\n\t }, {\n\t title: 'Request types',\n\t url: 'request_type/browse_request_types'\n\t }, {\n\t title: 'Sequencing requests',\n\t url: 'requests_admin/browse_requests'\n\t }, {\n\t title: 'Find samples',\n\t url: 'requests_common/find_samples?cntrller=requests_admin'\n\t }]\n\t }]);\n\t this.setElement(this._template());\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t this.$el.empty();\n\t this.categories.each(function (category) {\n\t var $section = $(self._templateSection(category.attributes));\n\t var $entries = $section.find('.ui-side-section-body');\n\t _.each(category.get('items'), function (item) {\n\t if (item.enabled === undefined || item.enabled) {\n\t $entries.append($('
').addClass('ui-side-section-body-title').append($('').attr({\n\t href: self.root + item.url,\n\t target: 'galaxy_main' }).text(_l(item.title))));\n\t }\n\t });\n\t self.$el.append($section);\n\t });\n\t this.page.$('#galaxy_main').prop('src', this.root + 'admin/center?message=' + this.message + '&status=' + this.status);\n\t },\n\t\n\t _templateSection: function (options) {\n\t return ['
', '
' + _l(options.title) + '
', '
', '
'].join('');\n\t },\n\t\n\t _template: function () {\n\t return '
';\n\t },\n\t\n\t toString: function () {\n\t return 'adminPanel';\n\t }\n\t});\n\t\n\tmodule.exports = AdminPanel;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ }\n\n});\n\n\n// WEBPACK FOOTER //\n// admin.bundled.js","var jQuery = require( 'jquery' ),\n $ = jQuery,\n GalaxyApp = require( 'galaxy' ).GalaxyApp,\n AdminPanel = require( './panels/admin-panel' ),\n Page = require( 'layout/page' );\n\nwindow.app = function app( options, bootstrapped ){\n window.Galaxy = new GalaxyApp( options, bootstrapped );\n Galaxy.debug( 'admin app' );\n Galaxy.params = Galaxy.config.params;\n $(function(){\n _.extend( options.config, { active_view : 'admin' } );\n Galaxy.page = new Page.View( _.extend( options, {\n Left : AdminPanel\n } ) );\n });\n};\n\n\n// WEBPACK FOOTER //\n// ./galaxy/scripts/apps/admin.js","var _l = require( 'utils/localization' );\n\nvar AdminPanel = Backbone.View.extend({\n initialize: function( page, options ) {\n var self = this;\n this.page = page;\n this.root = options.root;\n this.config = options.config;\n this.settings = options.settings;\n this.message = options.message;\n this.status = options.status;\n this.model = new Backbone.Model({\n title : _l( 'Administration' )\n });\n this.categories = new Backbone.Collection([{\n title : 'Server',\n items : [ {\n title : 'Data types registry',\n url : 'admin/view_datatypes_registry'\n },{\n title : 'Data tables registry',\n url : 'admin/view_tool_data_tables'\n },{\n title : 'Display applications',\n url : 'admin/display_applications'\n },{\n title : 'Manage jobs',\n url : 'admin/jobs'\n } ]\n },{\n title : 'Tools and Tool Shed',\n items : [ {\n title : 'Search Tool Shed',\n url : 'admin_toolshed/browse_tool_sheds',\n enabled : self.settings.is_tool_shed_installed\n },{\n title : 'Search Tool Shed (Beta)',\n url : 'admin_toolshed/browse_toolsheds',\n enabled : self.settings.is_tool_shed_installed && self.config.enable_beta_ts_api_install\n },{\n title : 'Monitor installing repositories',\n url : 'admin_toolshed/monitor_repository_installation?installing_repository_ids=' + self.settings.installing_repository_ids,\n enabled : self.settings.installing_repository_ids\n },{\n title : 'Manage installed tools',\n url : 'admin_toolshed/browse_repositories',\n enabled : self.settings.is_repo_installed\n },{\n title : 'Reset metadata',\n url : 'admin_toolshed/reset_metadata_on_selected_installed_repositories',\n enabled : self.settings.is_repo_installed\n },{\n title : 'Download local tool',\n url : 'admin/package_tool'\n },{\n title : 'Tool lineage',\n url : 'admin/tool_versions'\n },{\n title : 'Reload a tool\\'s configuration',\n url : 'admin/reload_tool'\n },{\n title : 'Review tool migration stages',\n url : 'admin/review_tool_migration_stages'\n },{\n title : 'View Tool Error Logs',\n url : 'admin/tool_errors'\n },{\n title : 'Manage Display Whitelist',\n url : 'admin/sanitize_whitelist'\n },{\n title : 'Manage Tool Dependencies',\n url : 'admin/manage_tool_dependencies'\n } ]\n },{\n title : 'User Management',\n items : [ {\n title : 'Users',\n url : 'admin/users'\n },{\n title : 'Groups',\n url : 'admin/groups'\n },{\n title : 'Roles',\n url : 'admin/roles'\n },{\n title : 'API keys',\n url : 'userskeys/all_users'\n },{\n title : 'Impersonate a user',\n url : 'admin/impersonate',\n enabled : self.config.allow_user_impersonation\n } ]\n },{\n title : 'Data',\n items : [ {\n title : 'Quotas',\n url : 'admin/quotas',\n enabled : self.config.enable_quotas\n },{\n title : 'Data libraries',\n url : 'library_admin/browse_libraries'\n },{\n title : 'Roles',\n url : 'admin/roles'\n },{\n title : 'Local data',\n url : 'data_manager'\n } ]\n },{\n title : 'Form Definitions',\n items : [ {\n title : 'Form definitions',\n url : 'forms/browse_form_definitions'\n } ]\n },{\n title : 'Sample Tracking',\n items : [ {\n title : 'Sequencers and external services',\n url : 'external_service/browse_external_services'\n },{\n title : 'Request types',\n url : 'request_type/browse_request_types'\n },{\n title : 'Sequencing requests',\n url : 'requests_admin/browse_requests'\n },{\n title : 'Find samples',\n url : 'requests_common/find_samples?cntrller=requests_admin'\n } ]\n }]);\n this.setElement( this._template() );\n },\n\n render : function() {\n var self = this;\n this.$el.empty();\n this.categories.each( function( category ) {\n var $section = $( self._templateSection( category.attributes ) );\n var $entries = $section.find( '.ui-side-section-body' );\n _.each( category.get( 'items' ), function( item ) {\n if ( item.enabled === undefined || item.enabled ) {\n $entries.append( $( '
' ).addClass( 'ui-side-section-body-title' )\n .append( $( '' ).attr({\n href : self.root + item.url,\n target : 'galaxy_main' }).text( _l( item.title ) ) ) );\n }\n });\n self.$el.append( $section );\n });\n this.page.$( '#galaxy_main' ).prop( 'src', this.root + 'admin/center?message=' + this.message + '&status=' + this.status );\n },\n\n _templateSection : function( options ) {\n return [\n '
',\n '
' + _l( options.title ) + '
',\n '
',\n '
'\n ].join('');\n },\n\n _template : function() {\n return '
';\n },\n\n toString : function() { return 'adminPanel' }\n});\n\nmodule.exports = AdminPanel;\n\n\n// WEBPACK FOOTER //\n// ./galaxy/scripts/apps/panels/admin-panel.js"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///admin.bundled.js","webpack:///./galaxy/scripts/apps/admin.js","webpack:///./galaxy/scripts/apps/panels/admin-panel.js"],"names":["webpackJsonp","0","module","exports","__webpack_require__","_","jQuery","$","GalaxyApp","AdminPanel","Page","window","app","options","bootstrapped","Galaxy","debug","params","config","extend","active_view","page","View","Left","call","98","Backbone","_l","initialize","self","this","root","settings","message","status","model","Model","title","categories","Collection","items","url","enabled","is_tool_shed_installed","enable_beta_ts_api_install","installing_repository_ids","is_repo_installed","allow_user_impersonation","enable_quotas","setElement","_template","render","$el","empty","each","category","$section","_templateSection","attributes","$entries","find","get","item","undefined","append","addClass","attr","href","target","text","prop","join","toString"],"mappings":"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","file":"admin.bundled.js","sourcesContent":["webpackJsonp([4],{\n\n/***/ 0:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(_) {var jQuery = __webpack_require__(1),\n\t $ = jQuery,\n\t GalaxyApp = __webpack_require__(35).GalaxyApp,\n\t AdminPanel = __webpack_require__(98),\n\t Page = __webpack_require__(36);\n\t\n\twindow.app = function app(options, bootstrapped) {\n\t window.Galaxy = new GalaxyApp(options, bootstrapped);\n\t Galaxy.debug('admin app');\n\t Galaxy.params = Galaxy.config.params;\n\t $(function () {\n\t _.extend(options.config, { active_view: 'admin' });\n\t Galaxy.page = new Page.View(_.extend(options, {\n\t Left: AdminPanel\n\t }));\n\t });\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ }),\n\n/***/ 98:\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {var _l = __webpack_require__(5);\n\t\n\tvar AdminPanel = Backbone.View.extend({\n\t initialize: function (page, options) {\n\t var self = this;\n\t this.page = page;\n\t this.root = options.root;\n\t this.config = options.config;\n\t this.settings = options.settings;\n\t this.message = options.message;\n\t this.status = options.status;\n\t this.model = new Backbone.Model({\n\t title: _l('Administration')\n\t });\n\t this.categories = new Backbone.Collection([{\n\t title: 'Server',\n\t items: [{\n\t title: 'Data types registry',\n\t url: 'admin/view_datatypes_registry'\n\t }, {\n\t title: 'Data tables registry',\n\t url: 'admin/view_tool_data_tables'\n\t }, {\n\t title: 'Display applications',\n\t url: 'admin/display_applications'\n\t }, {\n\t title: 'Manage jobs',\n\t url: 'admin/jobs'\n\t }]\n\t }, {\n\t title: 'Tools and Tool Shed',\n\t items: [{\n\t title: 'Search Tool Shed',\n\t url: 'admin_toolshed/browse_tool_sheds',\n\t enabled: self.settings.is_tool_shed_installed\n\t }, {\n\t title: 'Search Tool Shed (Beta)',\n\t url: 'admin_toolshed/browse_toolsheds',\n\t enabled: self.settings.is_tool_shed_installed && self.config.enable_beta_ts_api_install\n\t }, {\n\t title: 'Monitor installing repositories',\n\t url: 'admin_toolshed/monitor_repository_installation?installing_repository_ids=' + self.settings.installing_repository_ids,\n\t enabled: self.settings.installing_repository_ids\n\t }, {\n\t title: 'Manage installed tools',\n\t url: 'admin_toolshed/browse_repositories',\n\t enabled: self.settings.is_repo_installed\n\t }, {\n\t title: 'Reset metadata',\n\t url: 'admin_toolshed/reset_metadata_on_selected_installed_repositories',\n\t enabled: self.settings.is_repo_installed\n\t }, {\n\t title: 'Download local tool',\n\t url: 'admin/package_tool'\n\t }, {\n\t title: 'Tool lineage',\n\t url: 'admin/tool_versions'\n\t }, {\n\t title: 'Reload a tool\\'s configuration',\n\t url: 'admin/reload_tool'\n\t }, {\n\t title: 'Review tool migration stages',\n\t url: 'admin/review_tool_migration_stages'\n\t }, {\n\t title: 'View Tool Error Logs',\n\t url: 'admin/tool_errors'\n\t }, {\n\t title: 'Manage Display Whitelist',\n\t url: 'admin/sanitize_whitelist'\n\t }, {\n\t title: 'Manage Tool Dependencies',\n\t url: 'admin/manage_tool_dependencies'\n\t }]\n\t }, {\n\t title: 'User Management',\n\t items: [{\n\t title: 'Users',\n\t url: 'admin/users'\n\t }, {\n\t title: 'Groups',\n\t url: 'admin/groups'\n\t }, {\n\t title: 'Roles',\n\t url: 'admin/roles'\n\t }, {\n\t title: 'API keys',\n\t url: 'userskeys/all_users'\n\t }, {\n\t title: 'Impersonate a user',\n\t url: 'admin/impersonate',\n\t enabled: self.config.allow_user_impersonation\n\t }]\n\t }, {\n\t title: 'Data',\n\t items: [{\n\t title: 'Quotas',\n\t url: 'admin/quotas',\n\t enabled: self.config.enable_quotas\n\t }, {\n\t title: 'Data libraries',\n\t url: 'library_admin/browse_libraries'\n\t }, {\n\t title: 'Roles',\n\t url: 'admin/roles'\n\t }, {\n\t title: 'Local data',\n\t url: 'data_manager'\n\t }]\n\t }, {\n\t title: 'Form Definitions',\n\t items: [{\n\t title: 'Form definitions',\n\t url: 'forms/browse_form_definitions'\n\t }]\n\t }, {\n\t title: 'Sample Tracking',\n\t items: [{\n\t title: 'Sequencers and external services',\n\t url: 'external_service/browse_external_services'\n\t }, {\n\t title: 'Request types',\n\t url: 'request_type/browse_request_types'\n\t }, {\n\t title: 'Sequencing requests',\n\t url: 'requests_admin/browse_requests'\n\t }, {\n\t title: 'Find samples',\n\t url: 'requests_common/find_samples?cntrller=requests_admin'\n\t }]\n\t }]);\n\t this.setElement(this._template());\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t this.$el.empty();\n\t this.categories.each(function (category) {\n\t var $section = $(self._templateSection(category.attributes));\n\t var $entries = $section.find('.ui-side-section-body');\n\t _.each(category.get('items'), function (item) {\n\t if (item.enabled === undefined || item.enabled) {\n\t $entries.append($('
').addClass('ui-side-section-body-title').append($('').attr({\n\t href: self.root + item.url,\n\t target: 'galaxy_main' }).text(_l(item.title))));\n\t }\n\t });\n\t self.$el.append($section);\n\t });\n\t this.page.$('#galaxy_main').prop('src', this.root + 'admin/center?message=' + this.message + '&status=' + this.status);\n\t },\n\t\n\t _templateSection: function (options) {\n\t return ['
', '
' + _l(options.title) + '
', '
', '
'].join('');\n\t },\n\t\n\t _template: function () {\n\t return '
';\n\t },\n\t\n\t toString: function () {\n\t return 'adminPanel';\n\t }\n\t});\n\t\n\tmodule.exports = AdminPanel;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// admin.bundled.js","var jQuery = require( 'jquery' ),\n $ = jQuery,\n GalaxyApp = require( 'galaxy' ).GalaxyApp,\n AdminPanel = require( './panels/admin-panel' ),\n Page = require( 'layout/page' );\n\nwindow.app = function app( options, bootstrapped ){\n window.Galaxy = new GalaxyApp( options, bootstrapped );\n Galaxy.debug( 'admin app' );\n Galaxy.params = Galaxy.config.params;\n $(function(){\n _.extend( options.config, { active_view : 'admin' } );\n Galaxy.page = new Page.View( _.extend( options, {\n Left : AdminPanel\n } ) );\n });\n};\n\n\n// WEBPACK FOOTER //\n// ./galaxy/scripts/apps/admin.js","var _l = require( 'utils/localization' );\n\nvar AdminPanel = Backbone.View.extend({\n initialize: function( page, options ) {\n var self = this;\n this.page = page;\n this.root = options.root;\n this.config = options.config;\n this.settings = options.settings;\n this.message = options.message;\n this.status = options.status;\n this.model = new Backbone.Model({\n title : _l( 'Administration' )\n });\n this.categories = new Backbone.Collection([{\n title : 'Server',\n items : [ {\n title : 'Data types registry',\n url : 'admin/view_datatypes_registry'\n },{\n title : 'Data tables registry',\n url : 'admin/view_tool_data_tables'\n },{\n title : 'Display applications',\n url : 'admin/display_applications'\n },{\n title : 'Manage jobs',\n url : 'admin/jobs'\n } ]\n },{\n title : 'Tools and Tool Shed',\n items : [ {\n title : 'Search Tool Shed',\n url : 'admin_toolshed/browse_tool_sheds',\n enabled : self.settings.is_tool_shed_installed\n },{\n title : 'Search Tool Shed (Beta)',\n url : 'admin_toolshed/browse_toolsheds',\n enabled : self.settings.is_tool_shed_installed && self.config.enable_beta_ts_api_install\n },{\n title : 'Monitor installing repositories',\n url : 'admin_toolshed/monitor_repository_installation?installing_repository_ids=' + self.settings.installing_repository_ids,\n enabled : self.settings.installing_repository_ids\n },{\n title : 'Manage installed tools',\n url : 'admin_toolshed/browse_repositories',\n enabled : self.settings.is_repo_installed\n },{\n title : 'Reset metadata',\n url : 'admin_toolshed/reset_metadata_on_selected_installed_repositories',\n enabled : self.settings.is_repo_installed\n },{\n title : 'Download local tool',\n url : 'admin/package_tool'\n },{\n title : 'Tool lineage',\n url : 'admin/tool_versions'\n },{\n title : 'Reload a tool\\'s configuration',\n url : 'admin/reload_tool'\n },{\n title : 'Review tool migration stages',\n url : 'admin/review_tool_migration_stages'\n },{\n title : 'View Tool Error Logs',\n url : 'admin/tool_errors'\n },{\n title : 'Manage Display Whitelist',\n url : 'admin/sanitize_whitelist'\n },{\n title : 'Manage Tool Dependencies',\n url : 'admin/manage_tool_dependencies'\n } ]\n },{\n title : 'User Management',\n items : [ {\n title : 'Users',\n url : 'admin/users'\n },{\n title : 'Groups',\n url : 'admin/groups'\n },{\n title : 'Roles',\n url : 'admin/roles'\n },{\n title : 'API keys',\n url : 'userskeys/all_users'\n },{\n title : 'Impersonate a user',\n url : 'admin/impersonate',\n enabled : self.config.allow_user_impersonation\n } ]\n },{\n title : 'Data',\n items : [ {\n title : 'Quotas',\n url : 'admin/quotas',\n enabled : self.config.enable_quotas\n },{\n title : 'Data libraries',\n url : 'library_admin/browse_libraries'\n },{\n title : 'Roles',\n url : 'admin/roles'\n },{\n title : 'Local data',\n url : 'data_manager'\n } ]\n },{\n title : 'Form Definitions',\n items : [ {\n title : 'Form definitions',\n url : 'forms/browse_form_definitions'\n } ]\n },{\n title : 'Sample Tracking',\n items : [ {\n title : 'Sequencers and external services',\n url : 'external_service/browse_external_services'\n },{\n title : 'Request types',\n url : 'request_type/browse_request_types'\n },{\n title : 'Sequencing requests',\n url : 'requests_admin/browse_requests'\n },{\n title : 'Find samples',\n url : 'requests_common/find_samples?cntrller=requests_admin'\n } ]\n }]);\n this.setElement( this._template() );\n },\n\n render : function() {\n var self = this;\n this.$el.empty();\n this.categories.each( function( category ) {\n var $section = $( self._templateSection( category.attributes ) );\n var $entries = $section.find( '.ui-side-section-body' );\n _.each( category.get( 'items' ), function( item ) {\n if ( item.enabled === undefined || item.enabled ) {\n $entries.append( $( '
' ).addClass( 'ui-side-section-body-title' )\n .append( $( '' ).attr({\n href : self.root + item.url,\n target : 'galaxy_main' }).text( _l( item.title ) ) ) );\n }\n });\n self.$el.append( $section );\n });\n this.page.$( '#galaxy_main' ).prop( 'src', this.root + 'admin/center?message=' + this.message + '&status=' + this.status );\n },\n\n _templateSection : function( options ) {\n return [\n '
',\n '
' + _l( options.title ) + '
',\n '
',\n '
'\n ].join('');\n },\n\n _template : function() {\n return '
';\n },\n\n toString : function() { return 'adminPanel' }\n});\n\nmodule.exports = AdminPanel;\n\n\n// WEBPACK FOOTER //\n// ./galaxy/scripts/apps/panels/admin-panel.js"],"sourceRoot":""} \ No newline at end of file diff --git a/static/scripts/bundled/analysis.bundled.js b/static/scripts/bundled/analysis.bundled.js index 155792a4c26..468e58c81d8 100644 --- a/static/scripts/bundled/analysis.bundled.js +++ b/static/scripts/bundled/analysis.bundled.js @@ -1,4 +1,4 @@ -webpackJsonp([3,1],[function(e,t,i){(function(e,t){var n=i(1),s=n,a=i(35).GalaxyApp,o=i(67),r=i(100),l=i(99),c=i(36),d=i(30),h=i(138),u=i(137),p=i(89),f=i(14),g=i(128),m=i(142),v=i(123),_=i(140),y=i(88),w=i(4),b=i(7);window.app=function(i,n){window.Galaxy=new a(i,n),Galaxy.debug("analysis app"),Galaxy.params=Galaxy.config.params;var x=e.View.extend({initialize:function(e){this.message=e.message||"Undefined Message",this.msg_status=e.type||"info",this.render()},render:function(){this.$el.html(t.escape(this.message)).addClass(this.msg_status+"message")}}),C=e.Router.extend({initialize:function(e,t){this.page=e,this.options=t},push:function(e,t){t=t||{},t.__identifer=Math.random().toString(36).substr(2),s.isEmptyObject(t)||(e+=e.indexOf("?")==-1?"?":"&",e+=s.param(t,!0)),this.navigate(e,{trigger:!0})},execute:function(e,t,i){Galaxy.debug("router execute:",e,t,i);var n=o.parse(t.pop());t.push(n),e&&(this.authenticate(t,i)?e.apply(this,t):this.loginRequired())},routes:{"(/)":"home","(/)root*":"home","(/)tours(/)(:tour_id)":"show_tours","(/)user(/)":"show_user","(/)user(/)(:form_id)":"show_user_form","(/)workflow(/)":"show_workflows","(/)workflow/run(/)":"show_run","(/)pages(/)(:action_id)":"show_pages","(/)visualizations/list_published(/)":"show_visualizations","(/)workflows/list_published(/)":"show_workflows_published","(/)histories(/)(:action_id)":"show_histories","(/)datasets(/)list(/)":"show_datasets","(/)workflow/configure_menu(/)":"show_configure_menu","(/)workflow/import_workflow":"show_import_workflow","(/)custom_builds":"show_custom_builds"},require_login:["show_user","show_user_form","show_workflows","show_configure_menu"],loginRequired:function(){this.page.display(new x({type:"error",message:"You must be logged in to make this request."}))},authenticate:function(e,t){return Galaxy.user&&Galaxy.user.id||this.require_login.indexOf(t)==-1},show_tours:function(e){e?p.giveTour(e):this.page.display(new p.ToursView)},show_user:function(){this.page.display(new h.View)},show_user_form:function(e){this.page.display(new h.Forms({form_id:e,user_id:Galaxy.params.id}))},show_visualizations:function(){this.page.display(new f({url_base:Galaxy.root+"visualization/list_published",dict_format:!0}))},show_workflows_published:function(){this.page.display(new f({url_base:Galaxy.root+"workflow/list_published",dict_format:!0}))},show_histories:function(e){this.page.display(new v.View({action_id:e}))},show_datasets:function(){this.page.display(new f({url_base:Galaxy.root+"dataset/list",dict_format:!0}))},show_pages:function(e){"list"==e?this.page.display(new g.View):this.page.display(new f({url_base:Galaxy.root+"page/list_published",dict_format:!0}))},show_workflows:function(){this.page.display(new m.View)},show_run:function(){this._loadWorkflow()},show_import_workflow:function(){this.page.display(new m.ImportWorkflowView)},show_configure_menu:function(){this.page.display(new _.View)},show_custom_builds:function(){var e=this,t=this.page.historyPanel.historyView;return t&&t.model&&t.model.id?void this.page.display(new u.View):void window.setTimeout(function(){e.show_custom_builds()},500)},home:function(e){e.tool_id||e.job_id?"upload1"===e.tool_id?(this.page.toolPanel.upload.show(),this._loadCenterIframe("welcome")):this._loadToolForm(e):e.workflow_id?this._loadWorkflow():e.m_c?this._loadCenterIframe(e.m_c+"/"+e.m_a):this._loadCenterIframe("welcome")},_loadToolForm:function(e){e.id=e.tool_id,this.page.display(new d.View(e))},_loadCenterIframe:function(e,t){t=t||Galaxy.root,e=t+e,this.page.$("#galaxy_main").prop("src",e)},_loadWorkflow:function(){var e=this;w.get({url:Galaxy.root+"api/workflows/"+w.getQueryString("id")+"/download",data:{style:"run"},success:function(t){e.page.display(new y.View(t))},error:function(t){var i="Error occurred while loading the resource.",n={message:i,status:"error",persistent:!0,cls:"errormessage"};e.page.display(new b.Message(n))}})}});s(function(){Galaxy.page=new c.View(t.extend(i,{Left:r,Right:l,Router:C})),e.history.start({root:Galaxy.root,pushState:!0})})}}).call(t,i(3),i(2))},,,,,,,function(e,t,i){var n,s;(function(a,o,r){n=[i(4),i(25),i(62),i(24),i(58),i(12),i(8)],s=function(e,t,i,n,s,l,c){var d=a.View.extend({tagName:"label",initialize:function(e){this.model=e&&e.model||new a.Model(e),this.tagName=e.tagName||this.tagName,this.setElement(o("<"+this.tagName+"/>")),this.listenTo(this.model,"change",this.render,this),this.render()},title:function(e){this.model.set("title",e)},value:function(){return this.model.get("title")},render:function(){return this.$el.removeClass().addClass("ui-label").addClass(this.model.get("cls")).html(this.model.get("title")),this}}),h=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model({message:null,status:"info",cls:"",persistent:!1,fade:!0}).set(e),this.listenTo(this.model,"change",this.render,this),this.render()},update:function(e){this.model.set(e)},render:function(){this.$el.removeClass().addClass("ui-message").addClass(this.model.get("cls"));var e=this.model.get("status");if(this.model.get("large")?this.$el.addClass(("success"==e&&"done"||"danger"==e&&"error"||e)+"messagelarge"):this.$el.addClass("alert").addClass("alert-"+e),this.model.get("message")){if(this.$el.html(this.messageForDisplay()),this.$el[this.model.get("fade")?"fadeIn":"show"](),this.timeout&&window.clearTimeout(this.timeout),!this.model.get("persistent")){var t=this;this.timeout=window.setTimeout(function(){t.model.set("message","")},3e3)}}else this.$el.fadeOut();return this},messageForDisplay:function(){return r.escape(this.model.get("message"))}}),u=h.extend({messageForDisplay:function(){return this.model.get("message")}}),p=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model({type:"text",placeholder:"",disabled:!1,readonly:!1,visible:!0,cls:"",area:!1,color:null,style:null}).set(e),this.tagName=this.model.get("area")?"textarea":"input",this.setElement(o("<"+this.tagName+"/>")),this.listenTo(this.model,"change",this.render,this),this.render()},events:{input:"_onchange"},value:function(e){return void 0!==e&&this.model.set("value","string"==typeof e?e:""),this.model.get("value")},render:function(){var e=this;this.$el.removeClass().addClass("ui-"+this.tagName).addClass(this.model.get("cls")).addClass(this.model.get("style")).attr("id",this.model.id).attr("type",this.model.get("type")).attr("placeholder",this.model.get("placeholder")).css("color",this.model.get("color")||"").css("border-color",this.model.get("color")||"");var t=this.model.get("datalist");return o.isArray(t)&&t.length>0&&this.$el.autocomplete({source:function(t,i){i(e.model.get("datalist"))},change:function(){e._onchange()}}),this.model.get("value")!==this.$el.val()&&this.$el.val(this.model.get("value")),r.each(["readonly","disabled"],function(t){e.model.get(t)?e.$el.attr(t,!0):e.$el.removeAttr(t)}),this.$el[this.model.get("visible")?"show":"hide"](),this},_onchange:function(){this.value(this.$el.val()),this.model.get("onchange")&&this.model.get("onchange")(this.model.get("value"))}}),f=a.View.extend({initialize:function(e){this.model=e&&e.model||new a.Model(e),this.setElement(o("
").append(this.$info=o("
")).append(this.$hidden=o("
"))),this.listenTo(this.model,"change",this.render,this),this.render()},value:function(e){return void 0!==e&&this.model.set("value",e),this.model.get("value")},render:function(){return this.$el.attr("id",this.model.id),this.$hidden.val(this.model.get("value")),this.model.get("info")?this.$info.show().text(this.model.get("info")):this.$info.hide(),this}}),g=a.View.extend({initialize:function(e){var t=this;this.model=e&&e.model||new a.Model(e),this.setElement(o("
").append(this.$info=o("
")).append(this.$file=o("").attr("type","file").addClass("ui-margin-bottom")).append(this.$text=o("',"
","
"].join("")}});return{CitationView:n,CitationListView:s}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3))},function(e,t,i){var n,s;(function(a,o,r){n=[i(54),i(43),i(6),i(5)],s=function(e,t,i,n){"use strict";var s=e.FoldoutListItemView,l=e.ListItemView,c=s.extend({className:s.prototype.className+" dataset-collection",id:function(){return["dataset_collection",this.model.get("id")].join("-")},initialize:function(e){this.linkTarget=e.linkTarget||"_blank",this.hasUser=e.hasUser,s.prototype.initialize.call(this,e)},_setUpListeners:function(){s.prototype._setUpListeners.call(this),this.listenTo(this.model,"change",function(e,t){a.has(e.changed,"deleted")?this.render():a.has(e.changed,"element_count")&&this.$("> .title-bar .subtitle").replaceWith(this._renderSubtitle())})},_renderSubtitle:function(){return o(this.templates.subtitle(this.model.toJSON(),this))},_getFoldoutPanelOptions:function(){var e=s.prototype._getFoldoutPanelOptions.call(this);return a.extend(e,{linkTarget:this.linkTarget,hasUser:this.hasUser})},$selector:function(){return this.$("> .selector")},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCListItemView("+e+")"}});c.prototype.templates=function(){var e=a.extend({},s.prototype.templates.warnings,{error:i.wrapTemplate(["<% if( model.error ){ %>",'
',n("There was an error getting the data for this collection"),": <%- model.error %>","
","<% } %>"]),purged:i.wrapTemplate(["<% if( model.purged ){ %>",'
',n("This collection has been deleted and removed from disk"),"
","<% } %>"]),deleted:i.wrapTemplate(["<% if( model.deleted && !model.purged ){ %>",'
',n("This collection has been deleted"),"
","<% } %>"])}),t=i.wrapTemplate(['
','
','<%- collection.element_identifier || collection.name %>',"
",'
',"
"],"collection"),o=i.wrapTemplate(['
','<% var countText = collection.element_count? ( collection.element_count + " " ) : ""; %>','<% if( collection.collection_type === "list" ){ %>',n("a list of <%- countText %>datasets"),'<% } else if( collection.collection_type === "paired" ){ %>',n("a pair of datasets"),'<% } else if( collection.collection_type === "list:paired" ){ %>',n("a list of <%- countText %>dataset pairs"),'<% } else if( collection.collection_type === "list:list" ){ %>',n("a list of <%- countText %>dataset lists"),"<% } %>","
"],"collection");return a.extend({},s.prototype.templates,{warnings:e,titleBar:t,subtitle:o})}();var d=l.extend({className:l.prototype.className+" dataset-collection-element",initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log("DCEListItemView.initialize:",e),l.prototype.initialize.call(this,e)},toString:function(){var e=this.model?this.model+"":"(no model)";return"DCEListItemView("+e+")"}});d.prototype.templates=function(){var e=i.wrapTemplate(['
','
','<%- element.element_identifier %>',"
",'
',"
"],"element");return a.extend({},l.prototype.templates,{titleBar:e})}();var h=t.DatasetListItemView.extend({className:t.DatasetListItemView.prototype.className+" dataset-collection-element",initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log("DatasetDCEListItemView.initialize:",e),t.DatasetListItemView.prototype.initialize.call(this,e)},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):r.when()},toString:function(){var e=this.model?this.model+"":"(no model)";return"DatasetDCEListItemView("+e+")"}});h.prototype.templates=function(){var e=i.wrapTemplate(['
','','
','<%- element.element_identifier %>',"
","
"],"element");return a.extend({},t.DatasetListItemView.prototype.templates,{titleBar:e})}();var u=c.extend({className:c.prototype.className+" dataset-collection-element",_swapNewRender:function(e){c.prototype._swapNewRender.call(this,e);var t=this.model.get("state")||"ok";return this.$el.addClass("state-"+t),this.$el},toString:function(){var e=this.model?this.model+"":"(no model)";return"NestedDCDCEListItemView("+e+")"}});return{DCListItemView:c,DCEListItemView:d,DatasetDCEListItemView:h,NestedDCDCEListItemView:u}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r){n=[i(81),i(6),i(5)],s=function(e,t,i){"use strict";var n={defaults:{model_class:"DatasetCollectionElement",element_identifier:null,element_index:null,element_type:null},_mergeObject:function(e){return a.extend(e,e.object,{element_id:e.id}),delete e.object,e},constructor:function(e,t){e=this._mergeObject(e),this.idAttribute="element_id",o.Model.apply(this,arguments)},parse:function(e,t){var i=e;return i=this._mergeObject(i)}},s=o.Model.extend(t.LoggableMixin).extend(n).extend({_logNamespace:"collections"}),l=o.Collection.extend(t.LoggableMixin).extend({_logNamespace:"collections",model:s,toString:function(){return["DatasetCollectionElementCollection(",this.length,")"].join("")}}),c=e.DatasetAssociation.extend(t.mixin(n,{url:function(){return this.has("history_id")?Galaxy.root+"api/histories/"+this.get("history_id")+"/contents/"+this.get("id"):(console.warn("no endpoint for non-hdas within a collection yet"),Galaxy.root+"api/datasets")},defaults:a.extend({},e.DatasetAssociation.prototype.defaults,n.defaults),_downloadQueryParameters:function(){return"?to_ext="+this.get("file_ext")+"&hdca_id="+this.get("parent_hdca_id")+"&element_identifier="+this.get("element_identifier")},constructor:function(e,t){this.debug("\t DatasetDCE.constructor:",e,t),n.constructor.call(this,e,t)},hasDetails:function(){return this.elements&&this.elements.length},toString:function(){var e=this.get("element_identifier");return["DatasetDCE(",e,")"].join("")}})),d=l.extend({model:c,toString:function(){return["DatasetDCECollection(",this.length,")"].join("")}}),h=o.Model.extend(t.LoggableMixin).extend(t.SearchableModelMixin).extend({_logNamespace:"collections",defaults:{collection_type:null,deleted:!1},collectionClass:l,initialize:function(e,t){this.debug(this+"(DatasetCollection).initialize:",e,t,this),this.elements=this._createElementsModel(),this.on("change:elements",function(){this.log("change:elements"),this.elements=this._createElementsModel()})},_createElementsModel:function(){this.debug(this+"._createElementsModel",this.collectionClass,this.get("elements"),this.elements);var e=this.get("elements")||[];this.unset("elements",{silent:!0});var t=this;return a.each(e,function(e,i){a.extend(e,{parent_hdca_id:t.get("id")})}),this.elements=new this.collectionClass(e),this.elements},toJSON:function(){var e=o.Model.prototype.toJSON.call(this);return this.elements&&(e.elements=this.elements.toJSON()),e},inReadyState:function(){var e=this.get("populated");return this.isDeletedOrPurged()||e},hasDetails:function(){return 0!==this.elements.length},getVisibleContents:function(e){return this.elements},parse:function(e,t){var i=o.Model.prototype.parse.call(this,e,t);return i.create_time&&(i.create_time=new Date(i.create_time)),i.update_time&&(i.update_time=new Date(i.update_time)),i},delete:function(e){return this.get("deleted")?r.when():this.save({deleted:!0},e)},undelete:function(e){return!this.get("deleted")||this.get("purged")?r.when():this.save({deleted:!1},e)},isDeletedOrPurged:function(){return this.get("deleted")||this.get("purged")},searchAttributes:["name","tags"],toString:function(){var e=[this.get("id"),this.get("name")||this.get("element_identifier")];return"DatasetCollection("+e.join(",")+")"}}),u=h.extend({collectionClass:d,toString:function(){return"List"+h.prototype.toString.call(this)}}),p=u.extend({toString:function(){return"Pair"+h.prototype.toString.call(this)}}),f=h.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedDCDCE(",e,")"].join("")}})),g=l.extend({model:f,toString:function(){return["NestedDCDCECollection(",this.length,")"].join("")}}),m=p.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedPairDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedPairDCDCE(",e,")"].join("")}})),v=g.extend({model:m,toString:function(){return["NestedPairDCDCECollection(",this.length,")"].join("")}}),_=h.extend({collectionClass:v,toString:function(){return["ListPairedDatasetCollection(",this.get("name"),")"].join("")}}),y=u.extend(t.mixin(n,{constructor:function(e,t){this.debug("\t NestedListDCDCE.constructor:",e,t),n.constructor.call(this,e,t)},toString:function(){var e=this.object?""+this.object:this.get("element_identifier");return["NestedListDCDCE(",e,")"].join("")}})),w=g.extend({model:y,toString:function(){return["NestedListDCDCECollection(",this.length,")"].join("")}}),b=h.extend({collectionClass:w,toString:function(){return["ListOfListsDatasetCollection(",this.get("name"),")"].join("")}});return{ListDatasetCollection:u,PairDatasetCollection:p,ListPairedDatasetCollection:_,ListOfListsDatasetCollection:b}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(2),i(3),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(50),i(11),i(6),i(78),i(8),i(96),i(5),i(93)],s=function(e,t,i,n,s,c,d){"use strict";function h(e,t){var i=e.toJSON(),n=m(i,{defaultHideSourceItems:t,creationFn:function(t,i,n){return t=t.map(function(e){return{id:e.id,name:e.name,src:"dataset"===e.history_content_type?"hda":"hdca"}}),e.createHDCA(t,"list",i,n)}});return n}var u="collections",p=a.View.extend(i.LoggableMixin).extend({_logNamespace:u,tagName:"li",className:"collection-element",initialize:function(e){this.element=e.element||{},this.selected=e.selected||!1},render:function(){return this.$el.attr("data-element-id",this.element.id).attr("draggable",!0).html(this.template({element:this.element})),this.selected&&this.$el.addClass("selected"),this},template:o.template(['
',"<%- element.name %>","",'"].join("")),select:function(e){this.$el.toggleClass("selected",e),this.trigger("select",{source:this,selected:this.$el.hasClass("selected")})},discard:function(){var e=this,t=this.$el.parent().width();this.$el.animate({"margin-right":t},"fast",function(){e.trigger("discard",{source:e}),e.destroy()})},destroy:function(){this.off(),this.$el.remove()},events:{click:"_click","click .name":"_clickName","click .discard":"_clickDiscard",dragstart:"_dragstart",dragend:"_dragend",dragover:"_sendToParent",drop:"_sendToParent"},_click:function(e){e.stopPropagation(),this.select(e)},_clickName:function(e){e.stopPropagation(),e.preventDefault();var t=([d("Enter a new name for the element"),":\n(",d("Note that changing the name here will not rename the dataset"),")"].join(""),prompt(d("Enter a new name for the element")+":",this.element.name));t&&(this.element.name=t,this.render())},_clickDiscard:function(e){e.stopPropagation(),this.discard()},_dragstart:function(e){e.originalEvent&&(e=e.originalEvent),e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",JSON.stringify(this.element)),this.$el.addClass("dragging"),this.$el.parent().trigger("collection-element.dragstart",[this])},_dragend:function(e){this.$el.removeClass("dragging"),this.$el.parent().trigger("collection-element.dragend",[this])},_sendToParent:function(e){this.$el.parent().trigger(e)},toString:function(){return"DatasetCollectionElementView()"}}),f=a.View.extend(i.LoggableMixin).extend(n.CollectionCreatorMixin).extend({_logNamespace:u,elementViewClass:p,collectionClass:e.HistoryListDatasetCollection,className:"list-collection-creator collection-creator flex-row-container",minElements:1,defaultAttributes:{creationFn:function(){throw new TypeError("no creation fn for creator")},oncreate:function(){},oncancel:function(){},autoscrollDist:24,highlightClr:"rgba( 64, 255, 255, 1.0 )"},footerSettings:{".hide-originals":"hideOriginals"},initialize:function(e){this.metric("ListCollectionCreator.initialize",e);var t=this;o.each(this.defaultAttributes,function(i,n){i=e[n]||i,t[n]=i}),t.initialElements=e.elements||[],this._setUpCommonSettings(e),this._instanceSetUp(),this._elementsSetUp(),this._setUpBehaviors()},_instanceSetUp:function(){this.selectedIds={},this.$dragging=null,this.blocking=!1},_elementsSetUp:function(){this.invalidElements=[],this.workingElements=[],this.elementViews=[],this.workingElements=this.initialElements.slice(0),this._ensureElementIds(),this._validateElements(),this._mangleDuplicateNames(),this._sortElements()},_ensureElementIds:function(){return this.workingElements.forEach(function(e){e.hasOwnProperty("id")||(e.id=o.uniqueId())}),this.workingElements},_validateElements:function(){var e=this;return e.invalidElements=[],this.workingElements=this.workingElements.filter(function(t){var i=e._isElementInvalid(t);return i&&e.invalidElements.push({element:t,text:i}),!i}),this.workingElements},_isElementInvalid:function(e){if("dataset"!==e.history_content_type)return d("is not a dataset");var i=e.state===t.OK||o.contains(t.NOT_READY_STATES,e.state);return i?e.deleted||e.purged?d("has been deleted or purged"):null:d("has errored, is paused, or is not accessible")},_mangleDuplicateNames:function(){var e=900,t=1,i={};this.workingElements.forEach(function(n){for(var s=n.name;i.hasOwnProperty(s);)if(s=n.name+" ("+t+")",t+=1,t>=e)throw new Error("Safety hit in while loop - thats impressive");n.name=s,i[n.name]=!0})},_sortElements:function(e){},render:function(e,t){return this.workingElements.length .clear-selected").show():this.$(".collection-elements-controls > .clear-selected").hide()},_renderList:function(e,t){var i=this,n=l("
"),s=i.$list();o.each(this.elementViews,function(e){e.destroy(),i.removeElementView(e)}),i.workingElements.forEach(function(e){var t=i._createElementView(e);n.append(t.$el)}),i._renderClearSelected(),s.empty().append(n.children()),o.invoke(i.elementViews,"render"),s.height()>s.css("max-height")?s.css("border-width","1px 0px 1px 0px"):s.css("border-width","0px")},_createElementView:function(e){var t=new this.elementViewClass({element:e,selected:o.has(this.selectedIds,e.id)});return this.elementViews.push(t),this._listenToElementView(t),t},_listenToElementView:function(e){var t=this;t.listenTo(e,{select:function(e){var i=e.source.element;e.selected?t.selectedIds[i.id]=!0:delete t.selectedIds[i.id],t.trigger("elements:select",e)},discard:function(e){t.trigger("elements:discard",e)}})},addElementView:function(e){},removeElementView:function(e){delete this.selectedIds[e.element.id],this._renderClearSelected(),this.elementViews=o.without(this.elementViews,e),this.stopListening(e)},_renderNoElementsLeft:function(){this._disableNameAndCreate(!0),this.$(".collection-elements").append(this.templates.noElementsLeft())},_elementToJSON:function(e){return e},createList:function(e){if(!this.workingElements.length){var t=d("No valid elements for final list")+". ";return t+=''+d("Cancel")+" ",t+=d("or"),t+=' '+d("start over")+".",void this._showAlert(t)}var i=this,n=this.workingElements.map(function(e){return i._elementToJSON(e)});return i.blocking=!0,i.creationFn(n,e,i.hideOriginals).always(function(){i.blocking=!1}).fail(function(e,t,n){i.trigger("error",{xhr:e,status:t,message:d("An error occurred while creating this collection")})}).done(function(e,t,n){i.trigger("collection:created",e,t,n),i.metric("collection:created",e),"function"==typeof i.oncreate&&i.oncreate.call(this,e,t,n)})},_setUpBehaviors:function(){return this.on("error",this._errorHandler),this.once("rendered",function(){this.trigger("rendered:initial",this)}),this.on("elements:select",function(e){this._renderClearSelected()}),this.on("elements:discard",function(e){var t=e.source.element;this.removeElementView(e.source),this.workingElements=o.without(this.workingElements,t),this.workingElements.length||this._renderNoElementsLeft()}),this},_errorHandler:function(e){this.error(e);var t=this;if(content=e.message||d("An error occurred"),e.xhr){var i=e.xhr,n=e.message;0===i.readyState&&0===i.status?content+=": "+d("Galaxy could not be reached and may be updating.")+d(" Try again in a few minutes."):i.responseJSON?content+=":
"+JSON.stringify(i.responseJSON)+"
":content+=": "+n}t._showAlert(content,"alert-danger")},events:{"click .more-help":"_clickMoreHelp","click .less-help":"_clickLessHelp","click .main-help":"_toggleHelp","click .header .alert button":"_hideAlert","click .reset":"reset","click .clear-selected":"clearSelectedElements","click .collection-elements":"clearSelectedElements","dragover .collection-elements":"_dragoverElements","drop .collection-elements":"_dropElements","collection-element.dragstart .collection-elements":"_elementDragstart","collection-element.dragend .collection-elements":"_elementDragend","change .collection-name":"_changeName","keydown .collection-name":"_nameCheckForEnter","change .hide-originals":"_changeHideOriginals","click .cancel-create":"_cancelCreate","click .create-collection":"_clickCreate"},reset:function(){this._instanceSetUp(),this._elementsSetUp(),this.render()},clearSelectedElements:function(e){this.$(".collection-elements .collection-element").removeClass("selected"),this.$(".collection-elements-controls > .clear-selected").hide()},_dragoverElements:function(e){e.preventDefault();var t=this.$list();this._checkForAutoscroll(t,e.originalEvent.clientY);var i=this._getNearestElement(e.originalEvent.clientY);this.$(".element-drop-placeholder").remove();var n=r('
');i.length?i.before(n):t.append(n)},_checkForAutoscroll:function(e,t){var i=2,n=e.offset(),s=e.scrollTop(),a=t-n.top,o=n.top+e.outerHeight()-t;a>=0&&a=0&&oe&&a-o','',d("More help"),"",'","
",'
','','',"
"].join("")),middle:o.template(['",'
',"
"].join("")),footer:o.template(['
','
','","
",'
','','
',d("Name"),":
","
","
",'
','
','",'
','",'","
","
",'
','","
","
"].join("")),helpContent:o.template(["

",d(["Collections of datasets are permanent, ordered lists of datasets that can be passed to tools and ","workflows in order to have analyses done on each member of the entire group. This interface allows ","you to create a collection and re-order the final collection."].join("")),"

","
    ","
  • ",d(["Rename elements in the list by clicking on ",'the existing name.'].join("")),"
  • ","
  • ",d(["Discard elements from the final created list by clicking on the ",'"Discard" button.'].join("")),"
  • ","
  • ",d(["Reorder the list by clicking and dragging elements. Select multiple elements by clicking on ",'them and you can then move those selected by dragging the ',"entire group. Deselect them by clicking them again or by clicking the ",'the "Clear selected" link.'].join("")),"
  • ","
  • ",d(['Click the "Start over" link to begin again as if you had just opened ',"the interface."].join("")),"
  • ","
  • ",d(['Click the "Cancel" button to exit the interface.'].join("")),"
  • ","

","

",d(['Once your collection is complete, enter a name and ','click "Create list".'].join("")),"

"].join("")),invalidElements:o.template([d("The following selections could not be included due to problems:"),"
    <% _.each( problems, function( problem ){ %>","
  • <%- problem.element.name %>: <%- problem.text %>
  • ","<% }); %>
"].join("")),noElementsLeft:o.template(['
  • ',d("No elements left! "),d("Would you like to "),'',d("start over"),"?","
  • "].join("")),invalidInitial:o.template(['
    ','
    ','',"<% if( _.size( problems ) ){ %>",d("The following selections could not be included due to problems"),":","
      <% _.each( problems, function( problem ){ %>","
    • <%- problem.element.name %>: <%- problem.text %>
    • ","<% }); %>
    ","<% } else if( _.size( elements ) < 1 ){ %>",d("No datasets were selected"),".","<% } %>","
    ",d("At least one element is needed for the collection"),". ",d("You may need to "),'',d("cancel")," ",d("and reselect new elements"),".","
    ","
    ","
    ",'"].join(""))}),toString:function(){return"ListCollectionCreator"}}),g=function(e,t,i){var n,a=l.Deferred(),r=Galaxy.modal||new s.View;return t=o.defaults(t||{},{elements:e,oncancel:function(){r.hide(),a.reject("cancelled")},oncreate:function(e,t){r.hide(),a.resolve(t)}}),n=new i(t),r.show({title:t.title||d("Create a collection"),body:n.$el,width:"80%",height:"100%",closing_events:!0}),n.render(),window._collectionCreator=n,a},m=function(e,t){return t=t||{},t.title=d("Create a collection from a list of datasets"),g(e,t,f)};return{DatasetCollectionElementView:p,ListCollectionCreator:f,collectionCreatorModal:g,listCollectionCreatorModal:m,createListCollection:h}}.apply(t,n),!(void 0!==s&&(e.exports=s))}).call(t,i(3),i(2),i(1),i(1))},function(e,t,i){var n,s;(function(a,o,r,l){n=[i(54),i(11),i(19),i(6),i(5)],s=function(e,t,i,n,s){"use strict";var c="dataset",d=e.ListItemView,h=d.extend({_logNamespace:c,className:d.prototype.className+" dataset",id:function(){return["dataset",this.model.get("id")].join("-")},initialize:function(e){e.logger&&(this.logger=this.model.logger=e.logger),this.log(this+".initialize:",e),d.prototype.initialize.call(this,e),this.linkTarget=e.linkTarget||"_blank"},_setUpListeners:function(){d.prototype._setUpListeners.call(this);var e=this;return e.listenTo(e.model,{change:function(t){e.model.changedAttributes().state&&e.model.inReadyState()&&e.expanded&&!e.model.hasDetails()?e.model.fetch({silent:!0}).done(function(){e.render()}):a.has(t.changed,"tags")&&1===a.keys(t.changed).length?e.$(".nametags").html(e._renderNametags()):e.render()}})},_fetchModelDetails:function(){var e=this;return e.model.inReadyState()&&!e.model.hasDetails()?e.model.fetch({silent:!0}):o.when()},remove:function(e,t){var i=this;e=e||this.fxSpeed,this.$el.fadeOut(e,function(){r.View.prototype.remove.call(i),t&&t.call(i)})},_swapNewRender:function(e){return d.prototype._swapNewRender.call(this,e),this.model.has("state")&&this.$el.addClass("state-"+this.model.get("state")), diff --git a/static/scripts/bundled/analysis.bundled.js.map b/static/scripts/bundled/analysis.bundled.js.map index 10e1099f7e5..7275483edc0 100644 --- a/static/scripts/bundled/analysis.bundled.js.map +++ b/static/scripts/bundled/analysis.bundled.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///analysis.bundled.js","webpack:///./galaxy/scripts/apps/analysis.js","webpack:///./galaxy/scripts/mvc/ui/ui-misc.js?fd98","webpack:///./galaxy/scripts/mvc/ui/ui-portlet.js?0568","webpack:///./galaxy/scripts/mvc/dataset/data.js?f841*","webpack:///./galaxy/scripts/mvc/dataset/states.js","webpack:///./galaxy/scripts/mvc/ui/ui-buttons.js?4ced","webpack:///./galaxy/scripts/mvc/form/form-view.js?db3b","webpack:///./galaxy/scripts/mvc/grid/grid-view.js?be4f","webpack:///./galaxy/scripts/mvc/ui/icon-button.js?40a6*","webpack:///./galaxy/scripts/mvc/ui/ui-popover.js","webpack:///./galaxy/scripts/mvc/ui/ui-select.js","webpack:///./galaxy/scripts/ui/editable-text.js?53d0","webpack:///./galaxy/scripts/ui/fa-icon-button.js","webpack:///./galaxy/scripts/viz/trackster/util.js?c726","webpack:///./galaxy/scripts/mvc/citation/citation-model.js?63a3","webpack:///./galaxy/scripts/mvc/ui/popup-menu.js?a948","webpack:///./galaxy/scripts/mvc/ui/ui-list.js?ecf1","webpack:///./galaxy/scripts/mvc/ui/ui-options.js?405a","webpack:///./galaxy/scripts/mvc/ui/ui-select-default.js?402d","webpack:///./galaxy/scripts/mvc/upload/upload-model.js","webpack:///./galaxy/scripts/mvc/form/form-data.js?6144","webpack:///./galaxy/scripts/mvc/tool/tool-form-base.js?81c1","webpack:///./galaxy/scripts/mvc/tool/tool-form.js?a6b7","webpack:///./galaxy/scripts/mvc/ui/ui-table.js?4ded","webpack:///./galaxy/scripts/utils/deferred.js?8fee","webpack:///./galaxy/scripts/libs/bibtex.js?8f2e","webpack:///./galaxy/scripts/mvc/citation/citation-view.js?b4c0","webpack:///./galaxy/scripts/mvc/collection/collection-li.js","webpack:///./galaxy/scripts/mvc/collection/collection-model.js","webpack:///./galaxy/scripts/mvc/collection/list-collection-creator.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-li.js","webpack:///./galaxy/scripts/mvc/form/form-input.js?af7f","webpack:///./galaxy/scripts/mvc/form/form-parameters.js?0ee1","webpack:///./galaxy/scripts/mvc/form/form-repeat.js?7c22","webpack:///./galaxy/scripts/mvc/form/form-section.js?2ccb","webpack:///./galaxy/scripts/mvc/grid/grid-model.js?e551","webpack:///./galaxy/scripts/mvc/grid/grid-template.js?73e1","webpack:///./galaxy/scripts/mvc/history/hdca-model.js","webpack:///./galaxy/scripts/mvc/history/history-contents.js","webpack:///./galaxy/scripts/mvc/history/history-model.js","webpack:///./galaxy/scripts/mvc/history/history-preferences.js","webpack:///./galaxy/scripts/mvc/list/list-item.js","webpack:///./galaxy/scripts/mvc/tag.js","webpack:///./galaxy/scripts/mvc/tool/tools.js?fad9","webpack:///./galaxy/scripts/mvc/ui/ui-color-picker.js?fa1d","webpack:///./galaxy/scripts/mvc/ui/ui-drilldown.js?de06","webpack:///./galaxy/scripts/mvc/ui/ui-select-content.js?e092","webpack:///./galaxy/scripts/mvc/ui/ui-select-ftp.js?cf41","webpack:///./galaxy/scripts/mvc/ui/ui-select-library.js?fd76","webpack:///./galaxy/scripts/mvc/ui/ui-slider.js?93a7","webpack:///./galaxy/scripts/mvc/ui/ui-tabs.js?173b","webpack:///./galaxy/scripts/mvc/upload/upload-ftp.js","webpack:///./galaxy/scripts/mvc/upload/upload-settings.js","webpack:///./galaxy/scripts/utils/uploadbox.js","webpack:///./galaxy/scripts/mvc/annotation.js","webpack:///./galaxy/scripts/mvc/base/controlled-fetch-collection.js","webpack:///./galaxy/scripts/mvc/collection/base-creator.js","webpack:///./galaxy/scripts/mvc/collection/collection-view.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-li-edit.js","webpack:///./galaxy/scripts/mvc/dataset/dataset-model.js","webpack:///./galaxy/scripts/mvc/history/copy-dialog.js","webpack:///./galaxy/scripts/mvc/history/hda-li.js","webpack:///./galaxy/scripts/mvc/history/hda-model.js","webpack:///./galaxy/scripts/mvc/history/hdca-li.js","webpack:///./galaxy/scripts/mvc/history/history-content-model.js","webpack:///./galaxy/scripts/mvc/list/list-view.js","webpack:///./galaxy/scripts/mvc/tool/tool-form-composite.js","webpack:///./galaxy/scripts/mvc/ui/error-modal.js","webpack:///./galaxy/scripts/ui/hoverhighlight.js","webpack:///./galaxy/scripts/ui/search-input.js","webpack:///./galaxy/scripts/utils/natural-sort.js","webpack:///./galaxy/scripts/apps/panels/history-panel.js","webpack:///./galaxy/scripts/apps/panels/tool-panel.js","webpack:///./galaxy/scripts/mvc/collection/collection-li-edit.js","webpack:///./galaxy/scripts/mvc/collection/collection-view-edit.js","webpack:///./galaxy/scripts/mvc/collection/list-of-pairs-collection-creator.js","webpack:///./galaxy/scripts/mvc/collection/pair-collection-creator.js","webpack:///./galaxy/scripts/mvc/history/hda-li-edit.js","webpack:///./galaxy/scripts/mvc/history/hdca-li-edit.js","webpack:///./galaxy/scripts/mvc/history/history-list.js","webpack:///./galaxy/scripts/mvc/history/history-view-edit-current.js","webpack:///./galaxy/scripts/mvc/history/history-view-edit.js","webpack:///./galaxy/scripts/mvc/history/history-view.js","webpack:///./galaxy/scripts/mvc/history/options-menu.js","webpack:///./galaxy/scripts/mvc/page/page-list.js","webpack:///./galaxy/scripts/mvc/upload/collection/collection-row.js","webpack:///./galaxy/scripts/mvc/upload/collection/collection-view.js","webpack:///./galaxy/scripts/mvc/upload/composite/composite-row.js","webpack:///./galaxy/scripts/mvc/upload/composite/composite-view.js","webpack:///./galaxy/scripts/mvc/upload/default/default-row.js","webpack:///./galaxy/scripts/mvc/upload/default/default-view.js","webpack:///./galaxy/scripts/mvc/upload/upload-button.js","webpack:///./galaxy/scripts/mvc/upload/upload-view.js","webpack:///./galaxy/scripts/mvc/user/user-custom-builds.js","webpack:///./galaxy/scripts/mvc/user/user-preferences.js","webpack:///./galaxy/scripts/mvc/workflow/workflow-configure-menu.js","webpack:///./galaxy/scripts/mvc/workflow/workflow-icons.js","webpack:///./galaxy/scripts/mvc/workflow/workflow.js","webpack:///./galaxy/scripts/ui/loading-indicator.js","webpack:///./galaxy/scripts/utils/ajax-queue.js","webpack:///./galaxy/scripts/utils/levenshtein.js"],"names":["webpackJsonp","module","exports","__webpack_require__","Backbone","_","jQuery","$","GalaxyApp","QUERY_STRING","ToolPanel","HistoryPanel","Page","ToolForm","UserPreferences","CustomBuilds","Tours","GridView","PageList","Workflows","HistoryList","WorkflowsConfigureMenu","ToolFormComposite","Utils","Ui","window","app","options","bootstrapped","Galaxy","debug","params","config","routingMessage","View","extend","initialize","this","message","msg_status","type","render","$el","html","escape","addClass","Router","page","push","url","data","__identifer","Math","random","toString","substr","isEmptyObject","indexOf","param","navigate","trigger","execute","callback","args","name","queryObj","parse","pop","authenticate","apply","loginRequired","routes","(/)","(/)root*","(/)tours(/)(:tour_id)","(/)user(/)","(/)user(/)(:form_id)","(/)workflow(/)","(/)workflow/run(/)","(/)pages(/)(:action_id)","(/)visualizations/list_published(/)","(/)workflows/list_published(/)","(/)histories(/)(:action_id)","(/)datasets(/)list(/)","(/)workflow/configure_menu(/)","(/)workflow/import_workflow","(/)custom_builds","require_login","display","user","id","show_tours","tour_id","giveTour","ToursView","show_user","show_user_form","form_id","Forms","user_id","show_visualizations","url_base","root","dict_format","show_workflows_published","show_histories","action_id","show_datasets","show_pages","show_workflows","show_run","_loadWorkflow","show_import_workflow","ImportWorkflowView","show_configure_menu","show_custom_builds","self","historyPanel","historyView","model","setTimeout","home","tool_id","job_id","toolPanel","upload","show","_loadCenterIframe","_loadToolForm","workflow_id","m_c","m_a","prop","get","getQueryString","style","success","response","error","error_msg","status","persistent","cls","Message","Left","Right","history","start","pushState","call","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","Select","Slider","Options","Drilldown","Buttons","Modal","Label","tagName","Model","setElement","listenTo","title","new_title","set","value","removeClass","fade","update","messageForDisplay","timeout","clearTimeout","fadeOut","UnescapedMessage","Input","placeholder","disabled","readonly","visible","area","color","events","input","new_val","undefined","attr","css","datalist","isArray","length","autocomplete","source","request","change","_onchange","val","each","attr_name","removeAttr","Hidden","append","$info","$hidden","text","hide","Upload","$file","$text","$wait","on","e","_readFile","file","target","files","reader","FileReader","onload","wait","result","readAsText","Button","ButtonDefault","ButtonIcon","ButtonCheck","ButtonMenu","ButtonLink","RadioButton","Checkbox","Radio","uid","icon","buttons","body","scrollable","nopadding","operations","collapsible","collapsible_button","collapsed","onchange_title","_template","$body","$title_text","$title_icon","$header","$content","$backdrop","$buttons","$operations","tooltip","onclick","attributes","off","collapse","expand","make_text_editable","on_finish","empty","item","header","fadeIn","enableButton","find","disableButton","hideOperation","showOperation","setOperation","height","setIcon","disable","enable","Frames","mod_icon_btn","DatasetMetadata","Dataset","defaults","hda_ldda","metadata","_set_metadata","keys","k","new_key","split","silent","get_metadata","attribute","urlRoot","TabularDataset","prototype","chunk_url","first_data_chunk","offset","at_eof","url_viz","get_next_chunk","next_chunk","Deferred","getJSON","chunk","rval","ck_data","resolve","DatasetCollection","Collection","TabularDatasetChunkedView","row_count","loading_chunk","TabularButtonTracksterView","expand_to_container","scroll_elt","attempt_to_fetch","func","scrolled_to_bottom","loading_indicator","when","then","_renderChunk","data_table","cellpadding","column_names","header_container","appendTo","header_row","join","j","first_chunk","scroll","_renderCell","cell_contents","index","colspan","$cell","column_types","_renderRow","line","cells","row","num_columns","slice","range","TopLevelTabularDatasetChunkedView","parents","p","scrollTop","EmbeddedTabularDatasetChunkedView","position","overflow","innerHeight","el","scrollHeight","col","chrom","end","dataset_id","genome_build","file_ext","search","str","array","match","parent","modal","frame","console","log","btn_viz","IconButtonView","IconButton","icon_class","mouseover tr","mouseleave","is_numeric","n","isNaN","parseFloat","isFinite","children","eq","btn_viz_pars","gene_region","left","top","click","add","createTabularDatasetChunkedView","dataset_config","parent_elt","embedded","view","STATES","UPLOAD","QUEUED","RUNNING","SETTING_METADATA","NEW","EMPTY","OK","PAUSED","FAILED_METADATA","NOT_VIEWABLE","DISCARDED","ERROR","READY_STATES","NOT_READY_STATES","floating","wait_text","wait_cls","percentage","$icon","$title","$progress","$progress_bar","placement","width","unwait","href","icons","onchange","total","$button","$menu","pull","onunload","tag","collection","$root","float","where","preventDefault","remove","submodel","suboptions","$link","divider","addMenu","merge","Portlet","FormSection","FormData","initial_errors","always_refresh","message_status","new_model","matchModel","node","input_id","input_list","isEqual","field","field_list","new_options","i","opt","label","emit","active","is_dynamic","highlight","input_element","element_list","portlet","$panel","filter","first","animate","errors","error_messages","matchResponse","Manager","_renderForm","create","current_check","checksum","refresh_on_change","new_check","reset","section","inputs","ajaxSettings","traditional","GridModel","Templates","PopupMenu","grid","grid_config","add_tag_to_grid_filter","tag_name","tag_value","advanced_search","is","slideToggle","add_filter_condition","items","url_data","filters","v","ajax","init_grid","use_panels","padding","handle_refresh","refresh_frames","inArray","currHistoryPanel","loadCurrentHistory","replace","footer","use_hide_message","init_grid_elements","init_grid_controls","init_refresh_on_change","submit_operation","select","keyup","set_sort_condition","submit","column_key","text_input_obj","text_input","remove_filter_condition","set_categorical_filter","check_all_items","checkboxes","check_count","update_checked","rating","set_page","items_length","button","popup","operation","_add_operation","settings","operation_config","allowed","allow_popup","addItem","url_args","confirmation_text","confirm","encode_id","findItemByHtml","add_filter","t","filter_element","container","go_page_one","remove_filter","col_key","cur_sort","new_sort","substring","sort_arrow","new_value","category_filter","cur_value","trim","filter_value","new_page","page_num","parseInt","cur_page","operation_button","operation_name","number_of_checked_ids","findWhere","item_ids","check","state","c","href_parts","href_parms_str","href_parms","toLowerCase","can_async_op","update_grid","go_to","async","get_url_data","$div","closest","load","location","method","alert","response_text","insert","json","parseJSON","complete","on_click","menu_options","is_menu_button","enabled","tooltip_config","bind","new_elem","template","toJSON","replaceWith","event","isFunction","buffer","IconButtonCollection","IconButtonMenuView","elt","make_popupmenu","create_icon_buttons_menu","global_config","map","button_config","optionsDefault","with_close","$close","has","_get_placement","newTitle","_get_width","$container","container_width","container_height","_get_height","container_position","multiple","minimumInputLength","initialData","select_data","_refresh","_setValue","before","_getValue","after","select2","del","_getIndex","splice","key","select_opt","containerCssClass","dropdownCssClass","escapeMarkup","formatResult","formatSelection","initSelection","selected","dropdownAutoWidth","findIndex","__WEBPACK_AMD_DEFINE_FACTORY__","factory","fn","config_dict","num_cols","num_rows","use_textarea","help_text","input_elt","button_elt","set_text","new_text","cur_text","rows","cols","keyCode","size","blur","stopPropagation","focus","faIconButton","tooltipConfig","classes","concat","faIcon","commatize","number","rgx","test","is_deferred","d","ServerStateDeferred","ajax_settings","interval","success_fn","go","deferred","_go","get_random_color","colors","new_color","nr","ng","nb","other_color","or","og","ob","n_brightness","o_brightness","diff","brightness","r","g","b","difference","r1","g1","b1","r2","g2","b2","max","min","ok","num_tries","round","abs","parseBibtex","baseMVC","_l","BibtexParser","logNamespace","Citation","LoggableMixin","_logNamespace","content","parsed","err","reduce","all","current","_fields","entry","entries","rawFields","Fields","lowerKey","entryType","EntryType","fields","BaseCitationCollection","partial","HistoryCitationCollection","history_id","ToolCitationCollection","menu","_renderAndShow","clickEvent","_getShownPosition","_setUpCloseBehavior","li","option","_templateOptions","checked","menuWidth","x","pageX","document","scrollLeft","pageY","closePopup","contents","one","removeItem","findIndexByHtml","button_element","initial_options","convertedOptions","optionVal","optionKey","newOption","convertLinksToOptions","$parent","selector","elem","linkHref","linkTarget","confirmText","fromExistingDom","$buttonElement","$menuElement","menuElementLinkSelector","make_popup_menus","menuSelector","buttonSelectorBuildFn","popupMenusCreated","fromDom","optional","v_id","v_name","lst","isEmpty","_templateRow","Base","error_text","_changeValue","_changeWait","_changeData","_changeVisible","$message","$options","all_button","_templateOption","_messageShow","values","BaseIcons","pair","data2","empty_text","searchable","selectall","pagesize","_changeDisabled","_renderSearchable","_renderClassic","$select","$dropdown","$resize","$resize_icon","currentY","currentHeight","minHeight","prepend","_match","term","String","toUpperCase","order","tags","matched_tags","closeOnSelect","query","q","results","found","more","memo","exists","sorter","keep","sort","setOnChange","a","extension","genome","url_paste","info","file_name","file_mode","file_size","file_type","file_path","file_data","space_to_tab","to_posix_lines","clear","sum","JSON","stringify","flat_id","input_value","flat_dict","result_dict","convert","identifier","head","section_label","block_indices","block_prefix","block_label","pos","test_param","selectedCase","matchCase","flat","ignore","collapsible_value","payload","p_id","dict","_iterate","visitInputs","new_id","separator","Array","child","hasClass","truevalue","falsevalue","cases","prefix","context","cache","FormBase","CitationModel","CitationView","_buildForm","process","_buildModel","_destroy","description","version","_operations","_footer","hide_message","build_url","build_data","error_message","err_msg","redirect","large","Close","reject","versions_button","narrow","sustain_version","versions","menu_button","biostar_url","open","prompt","origin","requirements","requirements_visible","_templateRequirements","sharable_url","webhooks","webhook","activate","function","Function","_templateHelp","citations","$citations","citation_list_view","CitationListView","fetch","$tmpl","help","nreq","requirements_message","req","requirements_link","ToolFormBase","Webhooks","form","listen_to_history","customize","execute_btn","job_remap","postchange","current_state","tool_version","job_def","validate","action","$f","enctype","_templateSuccess","jobs","WebhookView","toolId","refreshContents","input_found","err_data","_templateError","job_inputs","batch_n","batch_src","job_input_id","input_field","input_def","batch","src","njobs","njobs_text","outputs","output","hid","ondblclick","onconfirm","selectable","cls_tr","$thead","$tbody","$tmessage","_row","dblclick","addHeader","appendHeader","align","wrapper","_commit","delAll","_onclick","old_value","_ondblclick","last","has_deferred","promise","always","charAt","ready","arg0","accumulator","tempStorage","parser","getErrors","STATES_","ENTRY_OR_JUNK","OBJECT_TYPE","ENTRY_KEY","KV_KEY","EQUALS","KV_VALUE","DATA_","CALLBACK_","CHAR_","LINE_","CHAR_IN_LINE_","SKIPWS_","SKIPCOMMENT_","PARSETMP_","SKIPTILLEOL_","VALBRACES_","BRACETYPE_","BRACECOUNT_","STATE_","ERRORS_","ENTRY_TYPES_","inproceedings","proceedings","article","techreport","misc","mastersthesis","book","phdthesis","incollection","unpublished","inbook","manual","periodical","booklet","masterthesis","conference","online","MACROS_","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec","processCharacter_","error_","processEntry_","f","raw","CHARCONV_","re","rep","len","processed","skip","ObjectType","AnotherIteration","ot","Key","EntryKey","Value","\"","{","delim","doneParsingValue","macro","citationModel","className","formattedReference","ref","authorsAndYear","_asSentence","author","year","pages","address","volume","journal","booktitle","howpublished","note","institution","_formatBookInfo","doiUrl","doi","chapter","editor","publisher","series","issn","renderCitation","click .citations-to-bibtex","click .citations-to-formatted","citation","citationView","rawTextarea","citationsElement","showFormatted","showBibtex","partialWarningElement","LIST_ITEM","DATASET_LI","BASE_MVC","FoldoutListItemView","ListItemView","DCListItemView","hasUser","_setUpListeners","changed","_renderSubtitle","templates","subtitle","_getFoldoutPanelOptions","$selector","modelString","warnings","wrapTemplate","purged","deleted","titleBarTemplate","subtitleTemplate","titleBar","DCEListItemView","logger","DatasetDCEListItemView","DatasetListItemView","_fetchModelDetails","inReadyState","hasDetails","NestedDCDCEListItemView","_swapNewRender","$newRender","DATASET_MODEL","DatasetCollectionElementMixin","model_class","element_identifier","element_index","element_type","_mergeObject","object","element_id","constructor","idAttribute","arguments","DatasetCollectionElement","DCECollection","DatasetDCE","DatasetAssociation","mixin","warn","_downloadQueryParameters","elements","objStr","DatasetDCECollection","SearchableModelMixin","collection_type","collectionClass","_createElementsModel","unset","element","parent_hdca_id","populated","isDeletedOrPurged","getVisibleContents","create_time","Date","update_time","delete","save","undelete","searchAttributes","idAndName","ListDatasetCollection","PairDatasetCollection","NestedDCDCE","NestedDCDCECollection","NestedPairDCDCE","NestedPairDCDCECollection","ListPairedDatasetCollection","NestedListDCDCE","NestedListDCDCECollection","ListOfListsDatasetCollection","HDCA","baseCreator","UI_MODAL","naturalSort","createListCollection","defaultHideSourceItems","listCollectionCreatorModal","creationFn","hideSourceItems","history_content_type","createHDCA","DatasetCollectionElementView","toggle","toggleClass","discard","parentWidth","margin-right","destroy","click .name","click .discard","dragstart","dragend","dragover","drop","_click","ev","_clickName","_clickDiscard","_dragstart","originalEvent","dataTransfer","effectAllowed","setData","_dragend","_sendToParent","ListCollectionCreator","CollectionCreatorMixin","elementViewClass","HistoryListDatasetCollection","minElements","defaultAttributes","TypeError","oncreate","oncancel","autoscrollDist","highlightClr","footerSettings",".hide-originals","metric","creator","initialElements","_setUpCommonSettings","_instanceSetUp","_elementsSetUp","_setUpBehaviors","selectedIds","$dragging","blocking","invalidElements","workingElements","elementViews","_ensureElementIds","_validateElements","_mangleDuplicateNames","_sortElements","forEach","hasOwnProperty","uniqueId","problem","_isElementInvalid","validState","contains","SAFETY","counter","existingNames","currName","Error","list","speed","_renderInvalid","main","_renderHeader","_renderMiddle","_renderFooter","_addPluginComponents","invalidInitial","problems","helpContent","_invalidElementsAlert","$middle","middle","_renderList","hoverhighlight","_showAlert","_disableNameAndCreate","isUndefined","$list","_renderClearSelected","$tmp","removeElementView","elementView","_createElementView","invoke","_listenToElementView","addElementView","without","stopListening","_renderNoElementsLeft","noElementsLeft","_elementToJSON","createList","hideOriginals","fail","xhr","done","_errorHandler","once","readyState","responseJSON","click .more-help","click .less-help","click .main-help","click .header .alert button","click .reset","click .clear-selected","click .collection-elements","dragover .collection-elements","drop .collection-elements","collection-element.dragstart .collection-elements","collection-element.dragend .collection-elements","change .collection-name","keydown .collection-name","change .hide-originals","click .cancel-create","click .create-collection","clearSelectedElements","_dragoverElements","_checkForAutoscroll","clientY","$nearest","_getNearestElement","$placeholder","$element","y","AUTOSCROLL_SPEED","upperDist","lowerDist","outerHeight","WIGGLE","lis","toArray","$li","halfHeight","floor","_dropElements","dropEffect","insertBefore","insertAfter","_syncOrderToDom","newElements","_elementDragstart","_elementDragend","_creatorTemplates","collectionCreatorModal","CreatorClass","closing_events","_collectionCreator","_super","changedAttributes","expanded","_renderNametags","fxSpeed","_renderPrimaryActions","_renderDisplayButton","displayBtnData","urls","addDataset","_renderDetails","noAccess","$details","_renderSecondaryActions","_renderSummary","_renderDetailMessages","_renderDisplayApplications","summaryRenderFn","summaries","unknown","$warnings","detailMessages","templateFn","displayApplications","_renderDownloadButton","_renderShowParamsButton","show_params","hasData","download","_renderMetaFileDownloadButton","meta_file","meta_download","tpl","clone","click .display-btn","click .params-btn","click .download-btn","failed_metadata","detailsTemplate","noAccessTemplate","summaryTemplates","detailMessageTemplates","resubmitted","displayApplicationsTemplate","details","app_options","text_enable","text_disable","cls_enable","cls_disable","$field","$preview","$collapsible","$collapsible_text","$collapsible_icon","$error_text","$error","backdrop","help_argument","collapsible_state","SelectContent","SelectLibrary","SelectFtp","ColorPicker","types","password","data_column","genomebuild","data_collection","integer","boolean","drill_down","hidden","hidden_data","baseurl","library_data","ftpfile","fieldClass","_fieldSelect","_fieldText","_fieldData","extensions","flavor","is_workflow","SelectClass","_fieldDrilldown","str_value","_fieldSlider","precise","_fieldHidden","_fieldBoolean","_fieldColor","_fieldLibrary","_fieldFtp","_fieldUpload","button_new","onnew","button_delete","ondel","hideOptions","Repeat","InputElement","Parameters","parameters","_addConditional","_addRepeat","_addSection","_addRow","case_def","section_row","nonhidden","sub_section","_append","sub_section_id","block_index","repeat","n_cache","default","hide_label","text_value","collapsible_preview","argument","fixed","async_ops","categorical_filters","sort_key","show_item_checkboxes","num_pages","op","cur_val","condition","condition_index","pairs","get_url","tmpl","grid_header","grid_table","info_text","global_actions","show_popup","grid_filters","columns","column","extra","num_rows_rendered","encoded_id","current_item_id","nowrap","column_settings","column_config","link","attach_popup","label_id_prefix","use_paging","num_page_links","cur_page_num","page_link_range","min_page","min_offset","max_range","max_page","max_offset","page_index","allow_multiple","found_global","global_operation","legend","default_filter_dict","advanced_search_display","show_advanced_search_link","filterable","f_key","d_key","standard_search_display","grid_column_filter","column_label","is_text","temp_column","column_filter","seperator","cf_label","cf","cf_key","cf_arg","filter_key","sanitize","DC_MODEL","HISTORY_CONTENT","buildHDCASave","isNew","hcontentMixin","HistoryContentMixin","ListDC","PairDC","ListPairedDC","ListOfListsDC","HistoryPairDatasetCollection","HistoryListPairedDatasetCollection","HistoryListOfListsDatasetCollection","CONTROLLED_FETCH_COLLECTION","HDA_MODEL","HDCA_MODEL","HISTORY_PREFS","AJAX_QUEUE","PaginatedCollection","HistoryContents","attrs","HistoryDatasetAssociation","msg","validationError","limitPerPage","limitPerProgressiveFetch","historyId","models","setHistoryId","includeDeleted","includeHidden","newId","_setUpWebStorage","initialSettings","storage","HistoryPrefs","historyStorageKey","include-deleted","newVal","include-hidden","comparators","buildComparator","ascending","name-dsc","hid-asc","running","runningAndActive","getByHid","haveDetails","visibleAndUndeleted","setIncludeDeleted","setting","isBoolean","setIncludeHidden","prefs","expandedIds","_buildFetchData","_fetchParams","_buildFetchFilters","superFilters","getTotalItemCount","contentsShown","fetchUpdated","since","update_time-ge","toISOString","fetchDeleted","fetchHidden","fetchAllDetails","detailsFlag","fetchCollectionCounts","_filterAndUpdate","filterParams","updateWhat","updateArgs","fetched","modelArray","currJson","ajaxQueue","ajaxFn","AjaxQueue","reverse","isString","progressivelyFetchDetails","_recursivelyFetch","_options","detailKeys","limit","defer","notify","allFetched","limitPerCall","isCopyable","contentsJSON","copyableModelClasses","isObject","copy","contentType","LibraryDatasetDatasetAssociation","HistoryDatasetCollectionAssociation","elementIdentifiers","collectionType","hdca","hide_source_items","element_identifiers","haveSearchDetails","matches","matchesWhat","HISTORY_CONTENTS","UTILS","History","UPDATE_DELAY","contents_active","contents_states","contentsClass","searchAliases","historyJSON","_setUpCollectionListeners","updateTimeoutId","clearUpdateTimeout","change:id","makeArray","contentsActive","shown","nice_size","bytesToString","ownedByCurrUser","isAnonymous","numOfUnfinishedJobs","unfinishedJobIds","numOfUnfinishedShownContents","_fetchContentRelatedAttributes","contentRelatedAttrs","refresh","lastUpdateTime","fetchFn","currentPage","fetchPage","serverResponseDatetime","getResponseHeader","checkForUpdates","_delayThenUpdate","delay","nonReadyContentCount","historyData","fetchWithContents","contentsOptions","fetchContents","fetchCurrentPage","_delete","purge","allDatasets","postData","all_datasets","post","newHistory","setAsCurrent","_collectionSuper","InfinitelyScrollingCollection","HistoryCollection","limitOnFirstFetch","limitPerFetch","currentHistoryId","setUpListeners","change:deleted","copied","original","newData","setCurrent","set-as-current","oldCurrentId","fetchFirst","encoded_id-in","fetchMore","size-asc","currentHistory","unshift","hdas","historyOptions","xhrOptions","SessionStorageModel","show_deleted","show_hidden","addExpanded","removeExpanded","isExpanded","contentId","allExpanded","clearExpanded","storageKeyPrefix","clearAll","sessionStorage","ExpandableView","_buildNewRender","_queueNewRender","queue","next","$where","$newDetails","toggleExpanded","_expand","slideDown","slideUp","SelectableViewMixin","DraggableViewMixin","isSelectable","_renderWarnings","_renderTitleBar","showSelector","draggable","draggableOn","click .title-bar","keydown .title-bar","click .selector","_clickTitleBar","altKey","toggleSelect","_keyDownTitleBar","KEYCODE_SPACE","KEYCODE_RETURN","elTemplato","foldoutStyle","foldoutPanelClass","foldout","_createFoldoutPanel","_attachFoldout","FoldoutClass","_getFoldoutPanelClass","$whereTo","_expandByDrilldown","TagsEditor","HiddenUntilActivatedViewMixin","usePrompt","hiddenUntilActivated","$activator","$input","_getTagsUsed","_hashToName","startsWith","_nameToHash","tagsToCSV","tagsArray","added","_addNewTagToTagsUsed","newTag","tagsUsed","util","VisibilityMixin","is_visible","ToolParameter","num_samples","unescape","set_value","ToolParameterCollection","DataToolParameter","IntegerToolParameter","get_samples","d3","scale","linear","domain","ticks","FloatToolParameter","SelectToolParameter","subModelTypes","Tool","p_class","remove_inputs","tool","incompatible_inputs","only_samplable_inputs","valid_inputs","apply_search_results","set_input_value","set_input_values","inputs_dict","input_name","run","_run","rerun","target_dataset","regions","target_dataset_id","get_inputs_dict","input_dict","additional_params","run_deferred","ss_deferred","dataType","ToolCollection","ToolSectionLabel","ToolSection","elems","clear_search_results","cur_label","all_hidden","ToolSearch","search_hint_string","min_chars_for_search","clear_btn_url","clear_key","do_search","timer","ga","clear_search","tool_search","tools","layout","parse_elt","elt_dict","panel_elt","BaseView","update_visible","ToolLinkView","tool_link","formStyle","router","ToolSectionLabelView","ToolSectionView","update_open","panel_section","section_body","tool_view","label_view","click .toolSectionTitle > a","ToolSearchView","keyup :input","change :input","click #search-clear-btn","focus_and_select","query_changed","evData","which","ToolPanelView","handle_search_results","search_view","section_title_view","ToolFormView","tool_form","tool_panel_view","tool_form_view","show_tool","variable","standard","base","theme","$view","$value","_build","$boxes","_templateCheck","hex","rgb","_content","line_def","_templateContent","$line","$box","_templateBox","bottom","header_index","_setState","header_id","is_expanded","$subgroup","attach","iterate","level","has_options","new_header","$group","Batch","DISABLED","ENABLED","LINKED","Configurations","data_multiple","workflow_data","workflow_data_multiple","workflow_data_collection","module_data","module_data_collection","src_labels","hda","pagelimit","statustimer","button_product","$batch_div","$batch","linked","lastenter","_handleDrop","_changeCurrent","_changeType","id_list","_batch","$batchfield","batchmode","button_type","config_id","textify","button_data","button_width","margin-left","select_options","drop_data","getData","new_src","current_value","_handleDropStatus","map_over_type","List","ftpfile_list","Table","Libraries","LibraryDatasets","library_id","libraries","datasets","library_select","dataset_list","library_current","step","$slider","pressed","_isParameter","opts","has_slider","slider","ui","$nav","_add","_remove","_change","_reset","showTab","hideTab","tab_model","_template_tab","$href","class_add","class_remove","class_partial","onadd","onremove","ftp_files","_fill","_templateTable","$select_all","ftp_file","model_index","_find","_templateInfo","$it","filtered","path","ctime","ftp_upload_site","class_check","class_uncheck","$cover","$table","parameter","$checkbox","props","uploadpost","cnf","progress","maxfilesize","error_filesize","error_default","error_server","error_login","sizes","XMLHttpRequest","setRequestHeader","onreadystatechange","DONE","responseText","statusText","addEventListener","lengthComputable","loaded","send","uploadinput","ondragover","ondragleave","dialog","uploadbox","queue_running","current_index","queue_index","mode","duplicate","announce","queue_length","queue_stop","stop","configure","compatible","File","FileList","dragleave","m","AnnotationEditor","$annotation","newAnnotation","annotation","previous","ControlledFetchCollection","setOrder","changed-order","_buildFetchOptions","_fetchFiltersToAjaxData","pick","filterMap","qv","update_time-asc","create_time-asc","comparator","shouldPaginate","getLastPage","getPageCount","getPageLimitOffset","pageNum","constrainPageNum","fetchPrevPage","fetchNextPage","lastFetched","fetchedData","numFetched","fetchAll","fetchData","_validationWarning","what","VALIDATION_CLASS","_changeHideOriginals","_changeName","_getName","_nameCheckForEnter","_clickCreate","_clickMoreHelp","_clickLessHelp","_toggleHelp","alertClass","_hideAlert","_cancelCreate","instance","$footer","property","LIST_VIEW","DC_LI","ModelListPanel","CollectionView","DatasetDCEViewClass","NestedDCDCEViewClass","modelCollectionKey","panelStack","parentName","downloadUrl","panel","_filterCollection","_getItemViewClass","_getItemViewOptions","_setUpItemViewListeners","expanded:drilldown","drilldown","_expandDrilldownPanel","collapsed:drilldown","_collapseDrilldownPanel","click .navigation .back","close","controlsTemplate","controls","ListCollectionView","PairCollectionView","ListOfPairsCollectionView","ListOfListsCollectionView","TAGS","ANNOTATIONS","DatasetListItemEdit","purgeAllowed","tagsEditorShown","annotationEditorShown","actions","_renderEditButton","_renderDeleteButton","editBtnData","edit","deletedAlready","_renderTags","_renderAnnotation","_makeDbkeyEditLink","_renderToolHelpButton","datasetID","jobID","creating_job","parseToolBuild","helpString","parseHTML","parseToolID","_renderErrButton","_renderRerunButton","_renderVisualizationsButton","report_error","visualizations","$visualizations","_addScratchBookFn","addBack","$links","tagsEditor","onshowFirstTime","onshow","onhide","annotationEditor","editableDbkey","click .undelete-link","click .purge-link","click .edit-btn","click .delete-btn","click .rerun-btn","click .report-err-btn","click .visualization-btn","click .dbkey a","_clickUndeleteLink","_clickPurgeLink","visualizationsTemplate","searchableMixin","accessible","data_type","meta_files","misc_blurb","misc_info","_generateUrls","visualization","currModel","newState","dataset","responseObj","messageBuriedInUnfortunatelyFormattedError","format","database","blurb","nameAndId","DatasetAssociationCollection","ids","notReady","startingLength","responses","ajaxFns","chain","curr","shift","MODAL","ERROR_MODAL","CopyDialog","defaultName","submitLabel","errorMessage","progressive","activeLabel","allLabel","anonWarning","_showAjaxIndicator","indicator","margin-top","checkNameAndCopy","copyAllDatasets","ajaxErrorModal","rejectWith","autoClose","defaultCopyNameFn","nameFn","defaultCopyName","defaultCopyWhat","allowAll","originalClosingCallback","closing_callback","isAnon","copyWhat","cancelled","ImportDialog","historyCopyDialog","useImport","HDAListItemView","DATASET","DC_VIEW","HDCAListItemView","change:tags change:populated change:visible","isVisible","unhide","LoadingIndicator","ListPanel","viewClass","emptyMsg","noneFoundMsg","searchPlaceholder","searchFor","selecting","lastSelected","dragItems","views","_createDefaultCollection","$scrollContainer","loading","_showLoadingIndicator","loading-done","_hideLoadingIndicator","_setUpViewListeners","changes","renderAll","removed","renderItems","addItemView","removeItemView","view:selected","shiftKey","lastSelectedView","viewFromModelId","selectRange","showSelectors","view:de-selected","_renderControls","_renderTitle","_renderSearch","$controls","_renderMultiselectActionMenu","multiselectActions","$newMenu","$actions","$messages","$emptyMessage","freeViews","shownModels","itemModel","_createItemView","_attachItems","_renderEmptyMessage","_filterItem","every","matchesAll","ViewClass","_destroyItemView","_destroyItemViews","getSelectedModels","_renderItemView$el","expandAll","collapseAll","modelIndex","_attachView","useFx","_insertIntoListAt","$what","viewFromModel","viewsWhereModel","properties","isMatch","viewRange","viewA","viewB","indexA","indexB","searchInput","initialVal","onfirstsearch","_firstSearch","onsearch","searchItems","onclear","clearSearch","force","$search","THROTTLE_SELECTOR_FX_AT","hideSelectors","hideSelector","toggleSelectors","selectAll","deselectAll","deselect","getSelectedViews","scrollPosition","scrollTo","scrollToTop","scrollToItem","scrollToId","click .select-all","click .deselect-all","elTemplate","setModel","freeModel","oldModelId","_setUpModelListeners","Form","WorkflowIcons","$steps","_configure","resize","step_index","margin","_handleWorkflowParameter","exec","wp_name","wp_inputs","wp_count","links","forms","steps","parms","step_type","step_label","step_name","step_version","_isDataStep","sustain_repeats","sustain_conditionals","messages","hide_operations","needs_refresh","output_connections","output_connection","sub_step","input_step_index","connections_by_name","connection","step_linked","output_name","wp_input","wp_linked","post_job_actions","pja","action_arguments","arg","data_resolved","is_runtime_value","__class__","is_data_input","data_ref","default_value","_renderMessage","_renderParameters","_renderHistory","_renderStep","_execute","step_version_changes","wp_form","_refreshStep","history_form","short_str","is_simple_input","show_progress","source_step","wp_field","wp_value","_refreshHistory","_refresh_history","_enabled","_submit","history_form_data","new_history_name","replacement_params","parameters_normalized","validated","toolVersion","step_related_errors","_errorModal","Ok","DETAILS_MSG","errorModal","offlineErrorModal","badGatewayErrorModal","CONTACT_MSG","DEFAULT_AJAX_ERR_MSG","_ajaxDetails","raven","Raven","userAgent","navigator","onLine","omit","functions","lastAjax","scope","$this","targetSelector","mouseover","background","mouseout","parentNode","clearSearchInput","searchTerms","firstSearch","inputTemplate","KEYCODE_ESC","escWillClear","minSearchLen","$clearBtn","$loadingIndicator","toggleLoadingIndicator","$parentNode","inputVal","oninit","s","nC","fromCharCode","xN","yN","xD","getTime","yD","oFxNcL","oFyNcL","cLoc","numS","historyOptionsMenu","CurrentHistoryView","userIsAnonymous","allow_user_dataset_purge","listenToGalaxy","buttonRefresh","buttonOptions","buttonViewMulti","connectToQuotaMeter","quotaMeter","optionsMenu","anonymous","Tools","stored_workflow_menu_entries","toolbox","tool_panel","toolbox_in_panel","upload_button","nginx_upload_path","default_genome","default_extension","_templateAllWorkflow","menu_entry","_templateWorkflowLink","stored_workflow","encoded_stored_workflow_id","_templateTool","wf","DATASET_LI_EDIT","DCListItemEdit","DCEListItemEdit","DatasetDCEListItemEdit","NestedDCDCEListItemEdit","DC_EDIT","CollectionViewEdit","nameSelector","newName","previousName","ListCollectionViewEdit","PairCollectionViewEdit","NestedPairCollectionViewEdit","ListOfPairsCollectionViewEdit","ListOfListsCollectionViewEdit","levenshteinDistance","autoPairFnBuilder","getRegExps","_regexps","RegExp","createPair","listA","listB","aInBIndex","bInAIndex","_pair","preprocessMatch","regexps","matchTo","possible","bestMatch","score","paired","scoreThreshold","createListOfPairsCollection","pairedCollectionCreatorModal","PairView","currentTarget","opacity","PairedCollectionCreator","DEFAULT_FILTERS","automaticallyPair","strategy","matchPercentage","twoPassAutopairing","initialList","commonFilters","strategies","DEFAULT_STRATEGY","removeExtensions","unpairedPanelHidden","pairedPanelHidden","_dataSetUp","illumina","Rs","simple","lcs","levenshtein","unpaired","_sortInitialList","_ensureIds","autoPair","_sortDatasetList","_splitByFilters","_filter","regexFilters","stringFilter","_addToUnpaired","binSearchSortedIndex","low","hi","mid","compared","autopairSimple","autopairLevenshtein","distance","autopairLCS","_naiveStartingAndEndingLCS","s1","s2","fwdLCS","revLCS","fwd","rev","_createPair","_guessNameForPair","forward","fwdName","revName","lastDotIndex","lastIndexOf","_unpair","unpairAll","_pairToJSON","ajaxData","_ajaxErrHandler","_renderFilters","_renderUnpaired","_renderPaired","$fwd","$rev","$prd","_renderUnpairedDisplayStr","_renderUnpairedEmpty","_renderPairButton","_renderUnpairedDataset","_adjUnpairedOnScrollbar","_renderUnpairedNotShown","numFiltered","$msg","$unpairedColumns","$firstDataset","ucRight","outerWidth","dsRight","rightDiff","_renderPairedEmpty","pairView",".remove-extensions","_chooseFiltersPopover","filterChoice","val1","val2","$popoverContent","filterSet","popover","splitView","msgClass","hideUnpaired","click .forward-column .column-title","click .reverse-column .column-title","click .unpair-all-link","change .forward-unpaired-filter input","focus .forward-unpaired-filter input","click .autopair-link","click .choose-filters .filter-choice","click .clear-filters-link","change .reverse-unpaired-filter input","focus .reverse-unpaired-filter input","click .forward-column .dataset.unpaired","click .reverse-column .dataset.unpaired","click .paired-column .dataset.unpaired","click .unpaired-columns","mousedown .unpaired-columns .dataset","click .paired-column-title","mousedown .flexible-partition-drag","click .paired-columns .dataset.paired","click .paired-columns","click .paired-columns .pair-name","click .unpair-btn","dragover .paired-columns .column-datasets","drop .paired-columns .column-datasets","pair.dragstart .paired-columns .column-datasets","pair.dragend .paired-columns .column-datasets","change .remove-extensions","toggleExtensions","_clickShowOnlyUnpaired","hidePaired","_clickShowOnlyPaired","_clickUnpairAll","_clickAutopair","_clickFilterChoice","$selected","_hideChooseFilters","_clearFilters","_clickUnpairedDataset","toggleSelectUnpaired","$dataset","waitToPair","pairAllSelected","fwds","revs","clearSelectedUnpaired","_mousedownUnpaired","$startTarget","moveListener","_clickPairRow","rowIndex","_startPartitionDrag","endDrag","unbind","trackMouse","startingY","adjPartition","mousemove","adj","$unpaired","$paired","unpairedHi","pairedHi","movingUpwards","flex","selectPair","clearSelectedPaired","_clickPairName","$name","$pair","customizedName","_clickUnpair","pairIndex","_dragoverPairedColumns","_getNearestPairedDatasetLi","_dropPairedColumns","_syncPairsToDom","newPaired","_pairDragstart","_pairDragend","_printList","_printPair","LIST_CREATOR","createPairCollection","pairCollectionCreatorModal","PairedDatasetCollectionElementView","PairCollectionCreator","_createForwardElementView","_createReverseElementView","swap","click .swap","HDA_LI","HDAListItemEdit","click .unhide-link","HDCA_LI","DC_VIEW_EDIT","HDCAListItemEdit","HistoryModel","_showCopyDialog","reload","HISTORY_MODEL","HISTORY_VIEW_EDIT","HistoryViewPrefs","storageKey","HistoryViewEdit","HDCAViewClass","preferences","currentContentId","loadHistory","switchToHistory","createNewHistory","change:nice_size change:size","oldState","_debouncedScrollCaptureHandler","debounce","prependTo","_renderQuotaMessage","quotaMsg","_setCurrentContentById","setCurrentContent","delegateEvents","click .uploader-link","click .get-data-link","$toolMenu","galaxy","center-frame:load","pathToMatch","fullpath","hdaId","useToURLRegexMap","regex","use","center-panel:load","showQuotaMessage","hideQuotaMessage","isOverQuota","clearMessages","$target","not","unhideHidden","deleteHidden","quotaMsgTemplate","HISTORY_VIEW","HDA_LI_EDIT","HDCA_LI_EDIT","LIST_COLLECTION_CREATOR","PAIR_COLLECTION_CREATOR","LIST_OF_PAIRS_COLLECTION_CREATOR","HistoryView","HDAViewClass","droptarget:drop","dataDropped","dropTargetOff","view:attached view:removed","_renderCounts","search:loading-progress","_renderSearchProgress","search:searching","_renderSearchFindings","updateHistoryDiskSize","_handleItemDeletedChange","change:visible","_handleItemVisibleChange","change:purged","fetching-deleted","fetching-hidden","fetching-deleted-done fetching-hidden-done","counts","toggleHDATagEditors","toggleHDAAnnotationEditors","_collectionActions","buildCollection","selection","createFunc","_handleItemDeletion","_handleItemUndeletion","_handleItemHidden","_handleItemUnhidden","showOrHide","click .show-selectors-btn","click .toggle-deleted-link","toggleShowDeleted","click .toggle-hidden-link","toggleShowHidden","dropTargetOn","dropTarget","dropHandlers","dragenter","$dropTarget","_renderDropTarget","_renderDropTargetHelp","evName","_dropHandlers","dropTargetToggle","countsTemplate","USER","FETCH_COLLECTION_COUNTS_DELAY","errorHandler","views:ready view:attached view:removed","_renderSelectButton","view:attached","fetching-more","_toggleContentsLoadingIndicator","fetching-more-done","$indicator","$existing","$emptyMsg","_renderPagination","_renderSomeItems","$paginationControls","pagination","click > .controls .prev","click > .controls .next","change > .controls .pages","click .messages [class$=message]","_clickPrevPage","_clickNextPage","_changePageSelect","store","inputSelector","scrollToHid","ordinalIndicator","numStr","mainTemplate","paginationTemplate","buildMenu","menuOption","anon","galaxy_main","user_action","webhooks_menu","_templateShared","shared_by_others","display_url","username","slug","UploadModel","UploadSettings","Popover","status_classes","init","queued","$mode","$size","$info_text","$info_progress","$text_content","$symbol","$percentage","select_genome","select_extension","_removeRow","_refreshPercentage","_refreshStatus","_refreshInfo","_refreshFileSize","_showSettings","UploadRow","UploadFtp","upload_size","list_extensions","list_genomes","ui_button","currentFtp","btnLocal","btnFtp","_eventFtp","btnCreate","_eventCreate","btnStart","_eventStart","btnBuild","_eventBuild","btnStop","_eventStop","btnReset","_eventReset","btnClose","_eventAnnounce","toData","_eventProgress","_eventSuccess","_eventError","_eventComplete","ftp","ext","composite_files","updateExtension","select_collection","updateCollectionType","showExtensionInfo","updateGenome","_eventRemove","_updateScreen","upload_row","it","_uploadPercentage","hids","pluck","upload_completed","allHids","extension_popup","_templateDescription","defaults_only","enable_reset","enable_start","enable_build","enable_sources","show_table","description_url","$source","$settings","$status","$file_name","$file_desc","$file_size","_refreshReady","button_menu","_showFtp","_refreshFileName","_refreshMode","offsetHeight","file_desc","_showExtensionInfo","_refreshGenome","_refreshExtension","Tabs","UploadButton","UploadViewDefault","UploadViewComposite","UploadViewCollection","auto","datatypes","a_text","b_text","datatypes_disable_auto","genomes","current_user","tabs","default_view","composite_view","collection_view","title_separator","installed_builds","table","$installed","$form","$help","_renderTable","initial_type","_renderHelp","len_type","_templateFasta","_templateLen","information","submit_title","communication","permissions","api_key","submit_icon","toolbox_filters","openids","custom_builds","configure_menu","logout","Cancel","Sign out","$preferences","email","use_remote_user","_addLink","enable_communication_server","has_user_tool_filters","enable_openid","_templateFooter","$row","_templateLink","$a","nice_total_disk_usage","enable_quotas","quota","submit_tooltip","workflows","ids_in_menu","$el_config_worflow","_templateConfigWorkflowHeader","_templateActionButtons","_templateConfigureWorkflow","save_workflow_menu","make_checked","register_check_uncheck_all","_templateNoWorkflow","$el_check_all","$el_uncheck_all","check_uncheck_all","wf_checkbox","$el_save_workflow_menu","workflow_ids","tableHtml","trHtml","owner","number_of_steps","_templateInputCheckbox","data_input","data_collection_input","subworkflow","pause","build_messages","$el_message","min_query_length","$el_workflow","_templateHeader","_templateWorkflowTable","adjust_actiondropdown","confirm_delete","search_workflow","workflow","$el_wf_link","$el_shared_wf_link","$el_searchinput","$el_tabletr","min_querylen","regular_expression","_templateActions","published","_mainTemplate","myexperiment_target_url","cover","z-index","right","background-color","text-align","font-style","initialFunctions","numToProcess","NamedAjaxQueue","names","fnIndex","causeFail","obj","matrix"],"mappings":"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CxB,qBAAsB,MACtB,qBAAsB,MACtB,kBAAmB,MACnB,wBAAyB,MACzB,uBAAwB,MACxB,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,gBAAiB,MACjB,QAAS,MACT,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,cAAe,MACf,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,UAAW,MACX,QAAS,MACT,YAAa,MACb,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,cAAe,MACf,YAAa,MACb,cAAe,MACf,YAAa,MACb,cAAe,MACf,YAAa,MACb,YAAa,MACb,YAAa,MACb,QAAS,MACT,aAAc,MACd,eAAgB,MAChB,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,QAAS,MACT,QAAS,MACT,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,SAAU,MACV,SAAU,MACV,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,YAAa,MACb,gBAAiB,MACjB,gBAAiB,MACjB,UAAW,MACX,qBAAsB,MACtB,YAAa,MACb,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,iBAAkB,MAClB,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,gBAAiB,MACjB,YAAa,MACb,cAAe,MACf,aAAc,MACd,cAAe,MACf,aAAc,MACd,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,eAAgB,MAChB,cAAe,MACf,qBAAsB,MACtB,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,cAAe,MACf,aAAc,MACd,qBAAsB,MACtB,yBAA0B,MAC1B,WAAY,MACZ,WAAY,MACZ,mBAAoB,MACpB,WAAY,MACZ,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,cAAe,MACf,YAAa,MACb,eAAgB,MAChB,YAAa,MACb,aAAc,MACd,YAAa,MACb,YAAa,MACb,YAAa,MACb,gBAAiB,MACjB,YAAa,MACb,kBAAmB,MACnB,wBAAyB,MACzB,+BAAgC,MAChC,YAAa,MACb,WAAY,MACZ,YAAa,MACb,YAAa,MACb,cAAe,MACf,WAAY,MACZ,UAAW,MACX,YAAa,MACb,WAAY,MACZ,YAAa,MACb,aAAc,MACd,SAAU,MACV,SAAU,MACV,UAAW,MACX,YAAa,MACb,UAAW,MACX,cAAe,MACf,UAAW,MACX,UAAW,MACX,UAAW,MACX,YAAa,MACb,2BAA4B,MAC5B,2BAA4B,MAC5B,sBAAuB,MACvB,wBAAyB,MACzB,oBAAqB,MACrB,qBAAsB,MACtB,kCAAmC,MACnC,YAAa,MACb,WAAY,MACZ,YAAa,MACb,YAAa,MACb,cAAe,MACf,WAAY,MACZ,UAAW,MACX,gBAAiB,MACjB,WAAY,MACZ,YAAa,MACb,aAAc,MACd,SAAU,MACV,SAAU,MACV,SAAU,MACV,SAAU,MACV,UAAW,MACX,eAAgB,MAChB,YAAa,MACb,UAAW,MACX,cAAe,MACf,aAAc,MACd,UAAW,MACX,UAAW,MACX,YAAa,MACb,oBAAqB,MACrB,uBAAwB,MACxB,YAAa,MACb,wBAAyB,MACzB,sBAAuB,MACvB,8BAA+B,MAC/B,mBAAoB,MACpB,cAAe,MACf,UAAW,MACX,YAAa,MACb,aAAc,MACd,cAAe,MACf,cAAe,MACf,YAAa,MACb,YAAa,MACb,eAAgB,MAChB,aAAc,MACd,gBAAiB,MACjB,kBAAmB,MACnB,qBAAsB,MACtB,sBAAuB,MACvB,0BAA2B,MAC3B,qBAAsB,MACtB,sBAAuB,MACvB,qBAAsB,MACtB,qBAAsB,MACtB,qBAAsB,MACtB,sBAAuB,MACvB,sBAAuB,MACvB,uBAAwB,MACxB,0BAA2B,MAC3B,wBAAyB,MACzB,uBAAwB,MACxB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,qBAAsB,MACtB,oBAAqB,MACrB,oBAAqB,MACrB,wBAAyB,MACzB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,qBAAsB,MACtB,qBAAsB,MACtB,uBAAwB,MACxB,wBAAyB,MACzB,sBAAuB,MACvB,wBAAyB,MACzB,uBAAwB,MACxB,qBAAsB,MACtB,qBAAsB,MACtB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,qBAAsB,MACtB,oBAAqB,MACrB,oBAAqB,MACrB,wBAAyB,MACzB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,oBAAqB,MACrB,qBAAsB,MACtB,qBAAsB,MACtB,uBAAwB,MACxB,wBAAyB,MACzB,sBAAuB,MACvB,wBAAyB,MACzB,uBAAwB,MACxB,qBAAsB,MACtB,qBAAsB,MACtB,qBAAsB,MACtB,sBAAuB,MACvB,0BAA2B,MAC3B,qBAAsB,MACtB,sBAAuB,MACvB,qBAAsB,MACtB,qBAAsB,MACtB,qBAAsB,MACtB,sBAAuB,MACvB,sBAAuB,MACvB,uBAAwB,MACxB,0BAA2B,MAC3B,wBAAyB,MACzB,uBAAwB,MACxB,wBAAyB,MACzB,wBAAyB,MACzB,sBAAuB,MACvB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,0BAA2B,MAC3B,0BAA2B,MAC3B,uBAAwB,MACxB,0BAA2B,MAC3B,0BAA2B,MAC3B,sBAAuB,MACvB,sBAAuB,MACvB,sBAAuB,MACvB,sBAAuB,MACvB,uBAAwB,MACxB,sBAAuB,MACvB,qBAAsB,MACtB,qBAAsB,MACtB,2BAA4B,MAC5B,2BAA4B,MAC5B,6BAA8B,MAC9B,6BAA8B,MAC9B,qBAAsB,MACtB,qBAAsB,MACtB,wBAAyB,MACzB,wBAAyB,MACzB,4BAA6B,MAC7B,mCAAoC,MACpC,2BAA4B,MAC5B,4BAA6B,MAC7B,4BAA6B,MAC7B,wBAAyB,MACzB,wBAAyB,MACzB,sBAAuB,MACvB,sBAAuB,MACvB,wBAAyB,MACzB,wBAAyB,MACzB,sBAAuB,MACvB,sBAAuB,MACvB,wBAAyB,MACzB,wBAAyB,MACzB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,uBAAwB,MACxB,uBAAwB,MACxB,qBAAsB,MACtB,qBAAsB,MACtB,sBAAuB,MACvB,sBAAuB,MACvB,wBAAyB,MACzB,wBAAyB,MACzB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,uBAAwB,MACxB,oBAAqB,MACrB,oBAAqB,MACrB,wBAAyB,MACzB,wBAAyB,MACzB,uBAAwB,MACxB,uBAAwB,MACxB,wBAAyB,MACzB,wBAAyB,MACzB,yBAA0B,MAC1B,yBAA0B,MAC1B,yBAA0B,MAC1B,yBAA0B,MAC1B,uBAAwB,MACxB,uBAAwB,MACxB,wBAAyB,MACzB,wBAAyB,MACzB,2BAA4B,MAC5B,2BAA4B,MAC5B,2BAA4B,MAC5B,sBAAuB,MACvB,sBAAuB,MACvB,sBAAuB,MACvB,sBAAuB,MACvB,yBAA0B,MAC1B,yBAA0B,MAC1B,qBAAsB,MACtB,qBAAsB,MACtB,wBAAyB,MACzB,wBAAyB,MACzB,yBAA0B,MAC1B,yBAA0B,MAC1B,uBAAwB,MACxB,uBAAwB,MACxB,qBAAsB,MACtB,mBAAoB,MACpB,sBAAuB,MACvB,sBAAuB,MACvB,uBAAwB,MACxB,mBAAoB,MACpB,mBAAoB,MACpB,uBAAwB,MACxB,eAAgB,MAChB,iBAAkB,MAClB,iBAAkB,MAClB,wBAAyB,MACzB,WAAY,MACZ,gBAAiB,MACjB,uBAAwB,MACxB,wBAAyB,MACzB,iBAAkB,MAClB,oBAAqB,MACrB,iBAAkB,MAClB,YAAa,MACb,sBAAuB,MACvB,yBAA0B,MAC1B,gBAAiB,MACjB,oBAAqB,MACrB,qBAAsB,MACtB,eAAgB,MAChB,kBAAmB,MACnB,4BAA6B,MAC7B,yBAA0B,MAC1B,YAAa,MACb,aAAc,MACd,iBAAkB,MAClB,kBAAmB,MACnB,kBAAmB,MACnB,mBAAoB,MACpB,iBAAkB,MAClB,aAAc,MACd,kBAAmB,MACnB,mBAAoB,MACpB,kBAAmB,MACnB,kBAAmB,MACnB,iBAAkB,MAClB,0BAA2B,MAC3B,SAAU,MACV,iBAAkB,MAClB,iBAAkB,MAClB,kBAAmB,MACnB,mBAAoB,MACpB,iBAAkB,MAClB,cAAe,MACf,oBAAqB,MACrB,iBAAkB,MAClB,YAAa,MACb,UAAW,MACX,mBAAoB,MACpB,2BAA4B,MAC5B,SAAU,MACV,kBAAmB,MACnB,mBAAoB,MACpB,kBAAmB,MACnB,kBAAmB,MACnB,kBAAmB,MACnB,kBAAmB,MACnB,kBAAmB,MACnB,YAAa,MACb,WAAY,MACZ,YAAa,MACb,aAAc,MACd,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,wBAAyB,MACzB,gBAAiB,MACjB,cAAe,MACf,iBAAkB,MAClB,gBAAiB,MACjB,qBAAsB,MACtB,kBAAmB,MACnB,cAAe,MACf,cAAe,MACf,cAAe,MACf,cAAe,MACf,iBAAkB,MAClB,kBAAmB,MACnB,qBAAsB,MACtB,qBAAsB,MACtB,uBAAwB,MACxB,wBAAyB,MACzB,oBAAqB,MACrB,qBAAsB,MACtB,aAAc,MACd,oBAAqB,MACrB,qBAAsB,MACtB,oBAAqB,MACrB,qBAAsB,MACtB,0BAA2B,MAC3B,sBAAuB,MACvB,UAAW,MACX,UAAW,MACX,2BAA4B,MAC5B,qBAAsB,MACtB,sBAAuB,MACvB,sBAAuB,MACvB,uBAAwB,MACxB,oBAAqB,MACrB,sBAAuB,MACvB,qBAAsB,MACtB,oBAAqB,MACrB,qBAAsB,MACtB,uBAAwB,MACxB,uBAAwB,MACxB,sBAAuB,MACvB,sBAAuB,MACvB,qBAAsB,MACtB,sBAAuB,MACvB,qBAAsB,MACtB,iBAAkB,MAClB,uBAAwB,MACxB,qBAAsB,MACtB,wBAAyB,MACzB,wBAAyB,MACzB,iBAAkB,MAClB,sBAAuB,MACvB,kBAAmB,MACnB,gBAAiB,MACjB,cAAe,MACf,iBAAkB,MAClB,gBAAiB,MACjB,qBAAsB,MACtB,kBAAmB,MACnB,iBAAkB,MAClB,kBAAmB,MACnB,sBAAuB,MACvB,uBAAwB,MACxB,aAAc,MACd,iBAAkB,MAClB,cAAe,MACf,aAAc,MACd,cAAe,MACf,iBAAkB,MAClB,YAAa,MACb,SAAU,MACV,cAAe,MACf,SAAU,MACV,cAAe,MACf,WAAY,MACZ,aAAc,MACd,UAAW,MACX,SAAU,MACV,cAAe,MACf,eAAgB,MAChB,WAAY,MACZ,aAAc,MACd,WAAY,MACZ,aAAc,MACd,YAAa,MACb,iBAAkB,MAClB,YAAa,MACb,oBAAqB,MACrB,qBAAsB,MACtB,UAAW,MACX,WAAY,MACZ,eAAgB,MAChB,gBAAiB,MACjB,YAAa,MACb,UAAW,MACX,UAAW,MACX,UAAW,MACX,UAAW,MACX,kBAAmB,MACnB,0BAA2B,MAC3B,WAAY,MACZ,mBAAoB,MACpB,kBAAmB,MACnB,kBAAmB,MACnB,2BAA4B,MAC5B,2BAA4B,MAC5B,gBAAiB,MACjB,cAAe,MACf,YAAa,MACb,2BAA4B,MAC5B,6CAA8C,MAC9C,iBAAkB,MAClB,UAAW,MACX,cAAe,MACf,eAAgB,MAChB,SAAU,MACV,eAAgB,MAChB,2BAA4B,MAC5B,oBAAqB,YACrB,YAAa,MACb,iBAAkB,MAClB,WAAY,MACZ,qBAAsB,MACtB,gBAAiB,MACjB,aAAc,MACd,kBAAmB,MACnB,eAAgB,MAChB,gBAAiB,MACjB,gBAAiB,YACjB,eAAgB,MAChB,YAAa,MACb,aAAc,MACd,sBAAuB,YACvB,aAAc,MACd,mBAAoB,YACpB,YAAa,MACb,gBAAiB,YACjB,eAAgB,MAChB,oBAAqB,MACrB,mBAAoB,MACpB,aAAc,MACd,aAAc,MACd,gBAAiB,MACjB,2BAA4B,MAC5B,gBAAiB,MACjB,gBAAiB,MACjB,2BAA4B,MAC5B,WAAY,MACZ,YAAa,MACb,iBAAkB,MAClB,UAAW,MACX,UAAW,MACX,WAAY,MACZ,WAAY,MACZ,YAAa,MACb,gBAAiB,YACjB,YAAa,MACb,gBAAiB,YACjB,SAAU,MACV,kBAAmB,YACnB,SAAU,MACV,wBAAyB,YACzB,cAAe,MACf,8BAA+B,MAC/B,UAAW,MACX,UAAW,MACX,eAAgB,MAChB,eAAgB,MAChB,mBAAoB,MACpB,sBAAuB,MACvB,2BAA4B,MAC5B,2BAA4B,MAC5B,cAAe,MACf,cAAe,MACf,qBAAsB,MACtB,qBAAsB,MACtB,WAAY,MACZ,WAAY,MACZ,kBAAmB,MACnB,kBAAmB,MACnB,iBAAkB,MAClB,uBAAwB,YACxB,iBAAkB,MAClB,uBAAwB,YACxB,gBAAiB,MACjB,gBAAiB,MACjB,aAAc,MACd,aAAc,MACd,kBAAmB,MACnB,kBAAmB,MACnB,eAAgB,MAChB,eAAgB,MAChB,oBAAqB,MACrB,oBAAqB,MACrB,gBAAiB,MACjB,oBAAqB,YACrB,gBAAiB,MACjB,mBAAoB,YACpB,YAAa,MACb,eAAgB,MAChB,sBAAuB,YACvB,eAAgB,MAChB,wBAAyB,YACzB,iBAAkB,MAClB,iBAAkB,MAClB,YAAa,MACb,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,WAAY,MACZ,kBAAmB,MACnB,iBAAkB,MAClB,kBAAmB,MACnB,cAAe,MACf,eAAgB,MAChB,eAAgB,MAChB,aAAc,MACd,YAAa,MACb,YAAa,MACb,UAAW,MACX,WAAY,MACZ,gBAAiB,MACjB,kBAAmB,MACnB,YAAa,MACb,aAAc,MACd,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,aAAc,MACd,sBAAuB,MACvB,uBAAwB,MACxB,qBAAsB,MACtB,sBAAuB,MACvB,eAAgB,MAChB,YAAa,MACb,eAAgB,MAChB,uBAAwB,MACxB,eAAgB,MAChB,aAAc,MACd,oBAAqB,MACrB,2BAA4B,MAC5B,2BAA4B,MAC5B,aAAc,MACd,aAAc,MACd,cAAe,MACf,WAAY,MACZ,WAAY,MACZ,oBAAqB,MACrB,aAAc,MACd,aAAc,MACd,aAAc,MACd,qBAAsB,MACtB,sBAAuB,MACvB,gBAAiB,MACjB,eAAgB,MAChB,iBAAkB,MAClB,aAAc,MACd,aAAc,MACd,UAAW,MACX,UAAW,MACX,gBAAiB,MACjB,cAAe,MACf,aAAc,MACd,mBAAoB,MACpB,sBAAuB,MACvB,gBAAiB,MACjB,gBAAiB,MACjB,kBAAmB,MACnB,kBAAmB,MACnB,sBAAuB,MACvB,sBAAuB,MACvB,gBAAiB,MACjB,YAAa,MACb,YAAa,MACb,yBAA0B,MAC1B,eAAgB,MAChB,oBAAqB,MACrB,qBAAsB,MACtB,sBAAuB,MACvB,uBAAwB,MACxB,YAAa,MACb,YAAa,MACb,sBAAuB,MACvB,wBAAyB,MACzB,eAAgB,MAChB,sBAAuB,MACvB,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,eAAgB,MAChB,mBAAoB,MACpB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,2BAA4B,MAC5B,gBAAiB,MACjB,iBAAkB,MAClB,iBAAkB,MAClB,uBAAwB,MACxB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,eAAgB,MAChB,gBAAiB,MACjB,eAAgB,MAChB,aAAc,MACd,iBAAkB,MAClB,aAAc,MACd,kBAAmB,MACnB,gBAAiB,MACjB,gBAAiB,MACjB,2BAA4B,MAC5B,iBAAkB,MAClB,oBAAqB,MACrB,oBAAqB,MACrB,kBAAmB,MACnB,yBAA0B,MAC1B,oBAAqB,MACrB,iBAAkB,MAClB,sBAAuB,MACvB,wBAAyB,MACzB,mBAAoB,MACpB,wBAAyB,MACzB,mBAAoB,MACpB,iBAAkB,MAClB,cAAe,MACf,cAAe,MACf,iBAAkB,MAClB,eAAgB,MAChB,eAAgB,MAChB,eAAgB,MAChB,iBAAkB,MAClB,gBAAiB,MACjB,cAAe,MACf,cAAe,MACf,eAAgB,MAChB,cAAe,MACf,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,cAAe,MACf,YAAa,MACb,WAAY,MACZ,cAAe,MACf,aAAc,MACd,aAAc,MACd,cAAe,MACf,YAAa,MACb,YAAa,MACb,aAAc,MACd,aAAc,MACd,aAAc,MACd,UAAW,MACX,YAAa,MACb,YAAa,MACb,cAAe,MACf,kBAAmB,MACnB,kBAAmB,MACnB,eAAgB,MAChB,aAAc,MACd,iBAAkB,MAClB,cAAe,MACf,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,kBAAmB,MACnB,iBAAkB,MAClB,WAAY,MACZ,cAAe,MACf,YAAa,MACb,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,gBAAiB,MACjB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,iBAAkB,MAClB,i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","file":"analysis.bundled.js","sourcesContent":["webpackJsonp([3,1],[\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(Backbone, _) {var jQuery = __webpack_require__(1),\n\t $ = jQuery,\n\t GalaxyApp = __webpack_require__(35).GalaxyApp,\n\t QUERY_STRING = __webpack_require__(67),\n\t ToolPanel = __webpack_require__(100),\n\t HistoryPanel = __webpack_require__(99),\n\t Page = __webpack_require__(36),\n\t ToolForm = __webpack_require__(30),\n\t UserPreferences = __webpack_require__(138),\n\t CustomBuilds = __webpack_require__(137),\n\t Tours = __webpack_require__(89),\n\t GridView = __webpack_require__(14),\n\t PageList = __webpack_require__(128),\n\t Workflows = __webpack_require__(142),\n\t HistoryList = __webpack_require__(123),\n\t WorkflowsConfigureMenu = __webpack_require__(140),\n\t ToolFormComposite = __webpack_require__(88),\n\t Utils = __webpack_require__(4),\n\t Ui = __webpack_require__(7);\n\t\n\t/** define the 'Analyze Data'/analysis/main/home page for Galaxy\n\t * * has a masthead\n\t * * a left tool menu to allow the user to load tools in the center panel\n\t * * a right history menu that shows the user's current data\n\t * * a center panel\n\t * Both panels (generally) persist while the center panel shows any\n\t * UI needed for the current step of an analysis, like:\n\t * * tool forms to set tool parameters,\n\t * * tables showing the contents of datasets\n\t * * etc.\n\t */\n\twindow.app = function app(options, bootstrapped) {\n\t window.Galaxy = new GalaxyApp(options, bootstrapped);\n\t Galaxy.debug('analysis app');\n\t Galaxy.params = Galaxy.config.params;\n\t\n\t var routingMessage = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.message = options.message || \"Undefined Message\";\n\t this.msg_status = options.type || 'info';\n\t this.render();\n\t },\n\t render: function () {\n\t this.$el.html(_.escape(this.message)).addClass(this.msg_status + \"message\");\n\t }\n\t });\n\t\n\t /** Routes */\n\t var Router = Backbone.Router.extend({\n\t // TODO: not many client routes at this point - fill and remove from server.\n\t // since we're at root here, this may be the last to be routed entirely on the client.\n\t initialize: function (page, options) {\n\t this.page = page;\n\t this.options = options;\n\t },\n\t\n\t /** helper to push a new navigation state */\n\t push: function (url, data) {\n\t data = data || {};\n\t data.__identifer = Math.random().toString(36).substr(2);\n\t if (!$.isEmptyObject(data)) {\n\t url += url.indexOf('?') == -1 ? '?' : '&';\n\t url += $.param(data, true);\n\t }\n\t this.navigate(url, { 'trigger': true });\n\t },\n\t\n\t /** override to parse query string into obj and send to each route */\n\t execute: function (callback, args, name) {\n\t Galaxy.debug('router execute:', callback, args, name);\n\t var queryObj = QUERY_STRING.parse(args.pop());\n\t args.push(queryObj);\n\t if (callback) {\n\t if (this.authenticate(args, name)) {\n\t callback.apply(this, args);\n\t } else {\n\t this.loginRequired();\n\t }\n\t }\n\t },\n\t\n\t routes: {\n\t '(/)': 'home',\n\t '(/)root*': 'home',\n\t '(/)tours(/)(:tour_id)': 'show_tours',\n\t '(/)user(/)': 'show_user',\n\t '(/)user(/)(:form_id)': 'show_user_form',\n\t '(/)workflow(/)': 'show_workflows',\n\t '(/)workflow/run(/)': 'show_run',\n\t '(/)pages(/)(:action_id)': 'show_pages',\n\t '(/)visualizations/list_published(/)': 'show_visualizations',\n\t '(/)workflows/list_published(/)': 'show_workflows_published',\n\t '(/)histories(/)(:action_id)': 'show_histories',\n\t '(/)datasets(/)list(/)': 'show_datasets',\n\t '(/)workflow/configure_menu(/)': 'show_configure_menu',\n\t '(/)workflow/import_workflow': 'show_import_workflow',\n\t '(/)custom_builds': 'show_custom_builds'\n\t },\n\t\n\t require_login: ['show_user', 'show_user_form', 'show_workflows', 'show_configure_menu'],\n\t\n\t loginRequired: function () {\n\t this.page.display(new routingMessage({ type: 'error', message: \"You must be logged in to make this request.\" }));\n\t },\n\t\n\t authenticate: function (args, name) {\n\t return Galaxy.user && Galaxy.user.id || this.require_login.indexOf(name) == -1;\n\t },\n\t\n\t show_tours: function (tour_id) {\n\t if (tour_id) {\n\t Tours.giveTour(tour_id);\n\t } else {\n\t this.page.display(new Tours.ToursView());\n\t }\n\t },\n\t\n\t show_user: function () {\n\t this.page.display(new UserPreferences.View());\n\t },\n\t\n\t show_user_form: function (form_id) {\n\t this.page.display(new UserPreferences.Forms({ form_id: form_id, user_id: Galaxy.params.id }));\n\t },\n\t\n\t show_visualizations: function () {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'visualization/list_published', dict_format: true }));\n\t },\n\t\n\t show_workflows_published: function () {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'workflow/list_published', dict_format: true }));\n\t },\n\t\n\t show_histories: function (action_id) {\n\t this.page.display(new HistoryList.View({ action_id: action_id }));\n\t },\n\t\n\t show_datasets: function () {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'dataset/list', dict_format: true }));\n\t },\n\t\n\t show_pages: function (action_id) {\n\t if (action_id == 'list') {\n\t this.page.display(new PageList.View());\n\t } else {\n\t this.page.display(new GridView({ url_base: Galaxy.root + 'page/list_published', dict_format: true }));\n\t }\n\t },\n\t\n\t show_workflows: function () {\n\t this.page.display(new Workflows.View());\n\t },\n\t\n\t show_run: function () {\n\t this._loadWorkflow();\n\t },\n\t\n\t show_import_workflow: function () {\n\t this.page.display(new Workflows.ImportWorkflowView());\n\t },\n\t\n\t show_configure_menu: function () {\n\t this.page.display(new WorkflowsConfigureMenu.View());\n\t },\n\t\n\t show_custom_builds: function () {\n\t var self = this;\n\t var historyPanel = this.page.historyPanel.historyView;\n\t if (!historyPanel || !historyPanel.model || !historyPanel.model.id) {\n\t window.setTimeout(function () {\n\t self.show_custom_builds();\n\t }, 500);\n\t return;\n\t }\n\t this.page.display(new CustomBuilds.View());\n\t },\n\t\n\t /** */\n\t home: function (params) {\n\t // TODO: to router, remove Globals\n\t // load a tool by id (tool_id) or rerun a previous tool execution (job_id)\n\t if (params.tool_id || params.job_id) {\n\t if (params.tool_id === 'upload1') {\n\t this.page.toolPanel.upload.show();\n\t this._loadCenterIframe('welcome');\n\t } else {\n\t this._loadToolForm(params);\n\t }\n\t } else {\n\t // show the workflow run form\n\t if (params.workflow_id) {\n\t this._loadWorkflow();\n\t // load the center iframe with controller.action: galaxy.org/?m_c=history&m_a=list -> history/list\n\t } else if (params.m_c) {\n\t this._loadCenterIframe(params.m_c + '/' + params.m_a);\n\t // show the workflow run form\n\t } else {\n\t this._loadCenterIframe('welcome');\n\t }\n\t }\n\t },\n\t\n\t /** load the center panel with a tool form described by the given params obj */\n\t _loadToolForm: function (params) {\n\t //TODO: load tool form code async\n\t params.id = params.tool_id;\n\t this.page.display(new ToolForm.View(params));\n\t },\n\t\n\t /** load the center panel iframe using the given url */\n\t _loadCenterIframe: function (url, root) {\n\t root = root || Galaxy.root;\n\t url = root + url;\n\t this.page.$('#galaxy_main').prop('src', url);\n\t },\n\t\n\t /** load workflow by its url in run mode */\n\t _loadWorkflow: function () {\n\t var self = this;\n\t Utils.get({\n\t url: Galaxy.root + 'api/workflows/' + Utils.getQueryString('id') + '/download',\n\t data: { 'style': 'run' },\n\t success: function (response) {\n\t self.page.display(new ToolFormComposite.View(response));\n\t },\n\t error: function (response) {\n\t var error_msg = \"Error occurred while loading the resource.\",\n\t options = { 'message': error_msg, 'status': 'error', 'persistent': true, 'cls': 'errormessage' };\n\t self.page.display(new Ui.Message(options));\n\t }\n\t });\n\t }\n\t });\n\t\n\t // render and start the router\n\t $(function () {\n\t\n\t Galaxy.page = new Page.View(_.extend(options, {\n\t Left: ToolPanel,\n\t Right: HistoryPanel,\n\t Router: Router\n\t }));\n\t\n\t // start the router - which will call any of the routes above\n\t Backbone.history.start({\n\t root: Galaxy.root,\n\t pushState: true\n\t });\n\t });\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2)))\n\n/***/ },\n/* 1 */,\n/* 2 */,\n/* 3 */,\n/* 4 */,\n/* 5 */,\n/* 6 */,\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/**\n\t * This class contains backbone wrappers for basic ui elements such as Images, Labels, Buttons, Input fields etc.\n\t */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(25), __webpack_require__(62), __webpack_require__(24), __webpack_require__(58), __webpack_require__(12), __webpack_require__(8)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Select, Slider, Options, Drilldown, Buttons, Modal) {\n\t\n\t /** Label wrapper */\n\t var Label = Backbone.View.extend({\n\t tagName: 'label',\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model(options);\n\t this.tagName = options.tagName || this.tagName;\n\t this.setElement($('<' + this.tagName + '/>'));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t title: function (new_title) {\n\t this.model.set('title', new_title);\n\t },\n\t value: function () {\n\t return this.model.get('title');\n\t },\n\t render: function () {\n\t this.$el.removeClass().addClass('ui-label').addClass(this.model.get('cls')).html(this.model.get('title'));\n\t return this;\n\t }\n\t });\n\t\n\t /** Displays messages used e.g. in the tool form */\n\t var Message = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t message: null,\n\t status: 'info',\n\t cls: '',\n\t persistent: false,\n\t fade: true\n\t }).set(options);\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t update: function (options) {\n\t this.model.set(options);\n\t },\n\t render: function () {\n\t this.$el.removeClass().addClass('ui-message').addClass(this.model.get('cls'));\n\t var status = this.model.get('status');\n\t if (this.model.get('large')) {\n\t this.$el.addClass((status == 'success' && 'done' || status == 'danger' && 'error' || status) + 'messagelarge');\n\t } else {\n\t this.$el.addClass('alert').addClass('alert-' + status);\n\t }\n\t if (this.model.get('message')) {\n\t this.$el.html(this.messageForDisplay());\n\t this.$el[this.model.get('fade') ? 'fadeIn' : 'show']();\n\t this.timeout && window.clearTimeout(this.timeout);\n\t if (!this.model.get('persistent')) {\n\t var self = this;\n\t this.timeout = window.setTimeout(function () {\n\t self.model.set('message', '');\n\t }, 3000);\n\t }\n\t } else {\n\t this.$el.fadeOut();\n\t }\n\t return this;\n\t },\n\t messageForDisplay: function () {\n\t return _.escape(this.model.get('message'));\n\t }\n\t });\n\t\n\t var UnescapedMessage = Message.extend({\n\t messageForDisplay: function () {\n\t return this.model.get('message');\n\t }\n\t });\n\t\n\t /** Renders an input element used e.g. in the tool form */\n\t var Input = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model({\n\t type: 'text',\n\t placeholder: '',\n\t disabled: false,\n\t readonly: false,\n\t visible: true,\n\t cls: '',\n\t area: false,\n\t color: null,\n\t style: null\n\t }).set(options);\n\t this.tagName = this.model.get('area') ? 'textarea' : 'input';\n\t this.setElement($('<' + this.tagName + '/>'));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t events: {\n\t 'input': '_onchange'\n\t },\n\t value: function (new_val) {\n\t new_val !== undefined && this.model.set('value', typeof new_val === 'string' ? new_val : '');\n\t return this.model.get('value');\n\t },\n\t render: function () {\n\t var self = this;\n\t this.$el.removeClass().addClass('ui-' + this.tagName).addClass(this.model.get('cls')).addClass(this.model.get('style')).attr('id', this.model.id).attr('type', this.model.get('type')).attr('placeholder', this.model.get('placeholder')).css('color', this.model.get('color') || '').css('border-color', this.model.get('color') || '');\n\t var datalist = this.model.get('datalist');\n\t if ($.isArray(datalist) && datalist.length > 0) {\n\t this.$el.autocomplete({ source: function (request, response) {\n\t response(self.model.get('datalist'));\n\t },\n\t change: function () {\n\t self._onchange();\n\t } });\n\t }\n\t if (this.model.get('value') !== this.$el.val()) {\n\t this.$el.val(this.model.get('value'));\n\t }\n\t _.each(['readonly', 'disabled'], function (attr_name) {\n\t self.model.get(attr_name) ? self.$el.attr(attr_name, true) : self.$el.removeAttr(attr_name);\n\t });\n\t this.$el[this.model.get('visible') ? 'show' : 'hide']();\n\t return this;\n\t },\n\t _onchange: function () {\n\t this.value(this.$el.val());\n\t this.model.get('onchange') && this.model.get('onchange')(this.model.get('value'));\n\t }\n\t });\n\t\n\t /** Creates a hidden element input field used e.g. in the tool form */\n\t var Hidden = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.model = options && options.model || new Backbone.Model(options);\n\t this.setElement($('
    ').append(this.$info = $('
    ')).append(this.$hidden = $('
    ')));\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t value: function (new_val) {\n\t new_val !== undefined && this.model.set('value', new_val);\n\t return this.model.get('value');\n\t },\n\t render: function () {\n\t this.$el.attr('id', this.model.id);\n\t this.$hidden.val(this.model.get('value'));\n\t this.model.get('info') ? this.$info.show().text(this.model.get('info')) : this.$info.hide();\n\t return this;\n\t }\n\t });\n\t\n\t /** Creates a upload element input field */\n\t var Upload = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.model = options && options.model || new Backbone.Model(options);\n\t this.setElement($('
    ').append(this.$info = $('
    ')).append(this.$file = $('').attr('type', 'file').addClass('ui-margin-bottom')).append(this.$text = $('', '
    ', '
    '].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t CitationView: CitationView,\n\t CitationListView: CitationListView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))\n\n/***/ },\n/* 40 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, $, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(54), __webpack_require__(43), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (LIST_ITEM, DATASET_LI, BASE_MVC, _l) {\n\t\n\t 'use strict';\n\t //==============================================================================\n\t\n\t var FoldoutListItemView = LIST_ITEM.FoldoutListItemView,\n\t ListItemView = LIST_ITEM.ListItemView;\n\t /** @class Read only view for DatasetCollection.\n\t */\n\t var DCListItemView = FoldoutListItemView.extend(\n\t /** @lends DCListItemView.prototype */{\n\t\n\t className: FoldoutListItemView.prototype.className + \" dataset-collection\",\n\t id: function () {\n\t return ['dataset_collection', this.model.get('id')].join('-');\n\t },\n\t\n\t /** override to add linkTarget */\n\t initialize: function (attributes) {\n\t this.linkTarget = attributes.linkTarget || '_blank';\n\t this.hasUser = attributes.hasUser;\n\t FoldoutListItemView.prototype.initialize.call(this, attributes);\n\t },\n\t\n\t /** event listeners */\n\t _setUpListeners: function () {\n\t FoldoutListItemView.prototype._setUpListeners.call(this);\n\t this.listenTo(this.model, 'change', function (model, options) {\n\t // if the model has changed deletion status render it entirely\n\t if (_.has(model.changed, 'deleted')) {\n\t this.render();\n\t\n\t // if the model has been decorated after the fact with the element count,\n\t // render the subtitle where the count is displayed\n\t } else if (_.has(model.changed, 'element_count')) {\n\t this.$('> .title-bar .subtitle').replaceWith(this._renderSubtitle());\n\t }\n\t });\n\t },\n\t\n\t // ......................................................................... rendering\n\t /** render a subtitle to show the user what sort of collection this is */\n\t _renderSubtitle: function () {\n\t return $(this.templates.subtitle(this.model.toJSON(), this));\n\t },\n\t\n\t // ......................................................................... foldout\n\t /** override to add linktarget to sub-panel */\n\t _getFoldoutPanelOptions: function () {\n\t var options = FoldoutListItemView.prototype._getFoldoutPanelOptions.call(this);\n\t return _.extend(options, {\n\t linkTarget: this.linkTarget,\n\t hasUser: this.hasUser\n\t });\n\t },\n\t\n\t /** override to not catch sub-panel selectors */\n\t $selector: function () {\n\t return this.$('> .selector');\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DCListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DCListItemView.prototype.templates = function () {\n\t\n\t var warnings = _.extend({}, FoldoutListItemView.prototype.templates.warnings, {\n\t error: BASE_MVC.wrapTemplate([\n\t // error during index fetch - show error on dataset\n\t '<% if( model.error ){ %>', '
    ', _l('There was an error getting the data for this collection'), ': <%- model.error %>', '
    ', '<% } %>']),\n\t purged: BASE_MVC.wrapTemplate(['<% if( model.purged ){ %>', '
    ', _l('This collection has been deleted and removed from disk'), '
    ', '<% } %>']),\n\t deleted: BASE_MVC.wrapTemplate([\n\t // deleted not purged\n\t '<% if( model.deleted && !model.purged ){ %>', '
    ', _l('This collection has been deleted'), '
    ', '<% } %>'])\n\t });\n\t\n\t // use element identifier\n\t var titleBarTemplate = BASE_MVC.wrapTemplate(['
    ', '
    ', '<%- collection.element_identifier || collection.name %>', '
    ', '
    ', '
    '], 'collection');\n\t\n\t // use element identifier\n\t var subtitleTemplate = BASE_MVC.wrapTemplate(['
    ', '<% var countText = collection.element_count? ( collection.element_count + \" \" ) : \"\"; %>', '<% if( collection.collection_type === \"list\" ){ %>', _l('a list of <%- countText %>datasets'), '<% } else if( collection.collection_type === \"paired\" ){ %>', _l('a pair of datasets'), '<% } else if( collection.collection_type === \"list:paired\" ){ %>', _l('a list of <%- countText %>dataset pairs'), '<% } else if( collection.collection_type === \"list:list\" ){ %>', _l('a list of <%- countText %>dataset lists'), '<% } %>', '
    '], 'collection');\n\t\n\t return _.extend({}, FoldoutListItemView.prototype.templates, {\n\t warnings: warnings,\n\t titleBar: titleBarTemplate,\n\t subtitle: subtitleTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t /** @class Read only view for DatasetCollectionElement.\n\t */\n\t var DCEListItemView = ListItemView.extend(\n\t /** @lends DCEListItemView.prototype */{\n\t\n\t /** add the DCE class to the list item */\n\t className: ListItemView.prototype.className + \" dataset-collection-element\",\n\t\n\t /** set up */\n\t initialize: function (attributes) {\n\t if (attributes.logger) {\n\t this.logger = this.model.logger = attributes.logger;\n\t }\n\t this.log('DCEListItemView.initialize:', attributes);\n\t ListItemView.prototype.initialize.call(this, attributes);\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DCEListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DCEListItemView.prototype.templates = function () {\n\t\n\t // use the element identifier here - since that will persist and the user will need it\n\t var titleBarTemplate = BASE_MVC.wrapTemplate(['
    ', '
    ', '<%- element.element_identifier %>', '
    ', '
    ', '
    '], 'element');\n\t\n\t return _.extend({}, ListItemView.prototype.templates, {\n\t titleBar: titleBarTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t /** @class Read only view for a DatasetCollectionElement that is also an DatasetAssociation\n\t * (a dataset contained in a dataset collection).\n\t */\n\t var DatasetDCEListItemView = DATASET_LI.DatasetListItemView.extend(\n\t /** @lends DatasetDCEListItemView.prototype */{\n\t\n\t className: DATASET_LI.DatasetListItemView.prototype.className + \" dataset-collection-element\",\n\t\n\t /** set up */\n\t initialize: function (attributes) {\n\t if (attributes.logger) {\n\t this.logger = this.model.logger = attributes.logger;\n\t }\n\t this.log('DatasetDCEListItemView.initialize:', attributes);\n\t DATASET_LI.DatasetListItemView.prototype.initialize.call(this, attributes);\n\t },\n\t\n\t /** In this override, only get details if in the ready state.\n\t * Note: fetch with no 'change' event triggering to prevent automatic rendering.\n\t */\n\t _fetchModelDetails: function () {\n\t var view = this;\n\t if (view.model.inReadyState() && !view.model.hasDetails()) {\n\t return view.model.fetch({ silent: true });\n\t }\n\t return jQuery.when();\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DatasetDCEListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DatasetDCEListItemView.prototype.templates = function () {\n\t\n\t // use the element identifier here and not the dataset name\n\t //TODO:?? can we steal the DCE titlebar?\n\t var titleBarTemplate = BASE_MVC.wrapTemplate(['
    ', '', '
    ', '<%- element.element_identifier %>', '
    ', '
    '], 'element');\n\t\n\t return _.extend({}, DATASET_LI.DatasetListItemView.prototype.templates, {\n\t titleBar: titleBarTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t /** @class Read only view for a DatasetCollectionElement that is also a DatasetCollection\n\t * (a nested DC).\n\t */\n\t var NestedDCDCEListItemView = DCListItemView.extend(\n\t /** @lends NestedDCDCEListItemView.prototype */{\n\t\n\t className: DCListItemView.prototype.className + \" dataset-collection-element\",\n\t\n\t /** In this override, add the state as a class for use with state-based CSS */\n\t _swapNewRender: function ($newRender) {\n\t DCListItemView.prototype._swapNewRender.call(this, $newRender);\n\t var state = this.model.get('state') || 'ok';\n\t this.$el.addClass('state-' + state);\n\t return this.$el;\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'NestedDCDCEListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t DCListItemView: DCListItemView,\n\t DCEListItemView: DCEListItemView,\n\t DatasetDCEListItemView: DatasetDCEListItemView,\n\t NestedDCDCEListItemView: NestedDCDCEListItemView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(1), __webpack_require__(1)))\n\n/***/ },\n/* 41 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, Backbone, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(81), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (DATASET_MODEL, BASE_MVC, _l) {\n\t 'use strict';\n\t\n\t //==============================================================================\n\t /*\n\t Notes:\n\t \n\t Terminology:\n\t DatasetCollection/DC : a container of datasets or nested DatasetCollections\n\t Element/DatasetCollectionElement/DCE : an item contained in a DatasetCollection\n\t HistoryDatasetCollectionAssociation/HDCA: a DatasetCollection contained in a history\n\t \n\t \n\t This all seems too complex unfortunately:\n\t \n\t - Terminology collision between DatasetCollections (DCs) and Backbone Collections.\n\t - In the DatasetCollections API JSON, DC Elements use a 'Has A' stucture to *contain*\n\t either a dataset or a nested DC. This would make the hierarchy much taller. I've\n\t decided to merge the contained JSON with the DC element json - making the 'has a'\n\t relation into an 'is a' relation. This seems simpler to me and allowed a lot of\n\t DRY in both models and views, but may make tracking or tracing within these models\n\t more difficult (since DatasetCollectionElements are now *also* DatasetAssociations\n\t or DatasetCollections (nested)). This also violates the rule of thumb about\n\t favoring aggregation over inheritance.\n\t - Currently, there are three DatasetCollection subclasses: List, Pair, and ListPaired.\n\t These each should a) be usable on their own, b) be usable in the context of\n\t nesting within a collection model (at least in the case of ListPaired), and\n\t c) be usable within the context of other container models (like History or\n\t LibraryFolder, etc.). I've tried to separate/extract classes in order to\n\t handle those three situations, but it's proven difficult to do in a simple,\n\t readable manner.\n\t - Ideally, histories and libraries would inherit from the same server models as\n\t dataset collections do since they are (in essence) dataset collections themselves -\n\t making the whole nested structure simpler. This would be a large, error-prone\n\t refactoring and migration.\n\t \n\t Many of the classes and heirarchy are meant as extension points so, while the\n\t relations and flow may be difficult to understand initially, they'll allow us to\n\t handle the growth or flux dataset collection in the future (w/o actually implementing\n\t any YAGNI).\n\t \n\t */\n\t //_________________________________________________________________________________________________ ELEMENTS\n\t /** @class mixin for Dataset collection elements.\n\t * When collection elements are passed from the API, the underlying element is\n\t * in a sub-object 'object' (IOW, a DCE representing an HDA will have HDA json in element.object).\n\t * This mixin uses the constructor and parse methods to merge that JSON with the DCE attribtues\n\t * effectively changing a DCE from a container to a subclass (has a --> is a).\n\t */\n\t\n\t var DatasetCollectionElementMixin = {\n\t\n\t /** default attributes used by elements in a dataset collection */\n\t defaults: {\n\t model_class: 'DatasetCollectionElement',\n\t element_identifier: null,\n\t element_index: null,\n\t element_type: null\n\t },\n\t\n\t /** merge the attributes of the sub-object 'object' into this model */\n\t _mergeObject: function (attributes) {\n\t // if we don't preserve and correct ids here, the element id becomes the object id\n\t // and collision in backbone's _byId will occur and only\n\t _.extend(attributes, attributes.object, { element_id: attributes.id });\n\t delete attributes.object;\n\t return attributes;\n\t },\n\t\n\t /** override to merge this.object into this */\n\t constructor: function (attributes, options) {\n\t // console.debug( '\\t DatasetCollectionElement.constructor:', attributes, options );\n\t attributes = this._mergeObject(attributes);\n\t this.idAttribute = 'element_id';\n\t Backbone.Model.apply(this, arguments);\n\t },\n\t\n\t /** when the model is fetched, merge this.object into this */\n\t parse: function (response, options) {\n\t var attributes = response;\n\t attributes = this._mergeObject(attributes);\n\t return attributes;\n\t }\n\t };\n\t\n\t /** @class Concrete class of Generic DatasetCollectionElement */\n\t var DatasetCollectionElement = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(DatasetCollectionElementMixin).extend({ _logNamespace: 'collections' });\n\t\n\t //==============================================================================\n\t /** @class Base/Abstract Backbone collection for Generic DCEs. */\n\t var DCECollection = Backbone.Collection.extend(BASE_MVC.LoggableMixin).extend(\n\t /** @lends DCECollection.prototype */{\n\t _logNamespace: 'collections',\n\t\n\t model: DatasetCollectionElement,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['DatasetCollectionElementCollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for a dataset collection element that is a dataset (HDA).\n\t */\n\t var DatasetDCE = DATASET_MODEL.DatasetAssociation.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends DatasetDCE.prototype */{\n\t\n\t /** url fn */\n\t url: function () {\n\t // won't always be an hda\n\t if (!this.has('history_id')) {\n\t console.warn('no endpoint for non-hdas within a collection yet');\n\t // (a little silly since this api endpoint *also* points at hdas)\n\t return Galaxy.root + 'api/datasets';\n\t }\n\t return Galaxy.root + 'api/histories/' + this.get('history_id') + '/contents/' + this.get('id');\n\t },\n\t\n\t defaults: _.extend({}, DATASET_MODEL.DatasetAssociation.prototype.defaults, DatasetCollectionElementMixin.defaults),\n\t\n\t _downloadQueryParameters: function () {\n\t return '?to_ext=' + this.get('file_ext') + '&hdca_id=' + this.get('parent_hdca_id') + '&element_identifier=' + this.get('element_identifier');\n\t },\n\t\n\t // because all objects have constructors (as this hashmap would even if this next line wasn't present)\n\t // the constructor in hcontentMixin won't be attached by BASE_MVC.mixin to this model\n\t // - re-apply manually for now\n\t /** call the mixin constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t DatasetDCE.constructor:', attributes, options);\n\t //DATASET_MODEL.DatasetAssociation.prototype.constructor.call( this, attributes, options );\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** Does this model already contain detailed data (as opposed to just summary level data)? */\n\t hasDetails: function () {\n\t return this.elements && this.elements.length;\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.get('element_identifier');\n\t return ['DatasetDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class DCECollection of DatasetDCE's (a list of datasets, a pair of datasets).\n\t */\n\t var DatasetDCECollection = DCECollection.extend(\n\t /** @lends DatasetDCECollection.prototype */{\n\t model: DatasetDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['DatasetDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //_________________________________________________________________________________________________ COLLECTIONS\n\t /** @class Backbone model for Dataset Collections.\n\t * The DC API returns an array of JSON objects under the attribute elements.\n\t * This model:\n\t * - removes that array/attribute ('elements') from the model,\n\t * - creates a bbone collection (of the class defined in the 'collectionClass' attribute),\n\t * - passes that json onto the bbone collection\n\t * - caches the bbone collection in this.elements\n\t */\n\t var DatasetCollection = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(BASE_MVC.SearchableModelMixin).extend( /** @lends DatasetCollection.prototype */{\n\t _logNamespace: 'collections',\n\t\n\t /** default attributes for a model */\n\t defaults: {\n\t /* 'list', 'paired', or 'list:paired' */\n\t collection_type: null,\n\t //??\n\t deleted: false\n\t },\n\t\n\t /** Which class to use for elements */\n\t collectionClass: DCECollection,\n\t\n\t /** set up: create elements instance var and (on changes to elements) update them */\n\t initialize: function (model, options) {\n\t this.debug(this + '(DatasetCollection).initialize:', model, options, this);\n\t this.elements = this._createElementsModel();\n\t this.on('change:elements', function () {\n\t this.log('change:elements');\n\t //TODO: prob. better to update the collection instead of re-creating it\n\t this.elements = this._createElementsModel();\n\t });\n\t },\n\t\n\t /** move elements model attribute to full collection */\n\t _createElementsModel: function () {\n\t this.debug(this + '._createElementsModel', this.collectionClass, this.get('elements'), this.elements);\n\t //TODO: same patterns as DatasetCollectionElement _createObjectModel - refactor to BASE_MVC.hasSubModel?\n\t var elements = this.get('elements') || [];\n\t this.unset('elements', { silent: true });\n\t var self = this;\n\t _.each(elements, function (element, index) {\n\t _.extend(element, { \"parent_hdca_id\": self.get(\"id\") });\n\t });\n\t this.elements = new this.collectionClass(elements);\n\t //this.debug( 'collectionClass:', this.collectionClass + '', this.elements );\n\t return this.elements;\n\t },\n\t\n\t // ........................................................................ common queries\n\t /** pass the elements back within the model json when this is serialized */\n\t toJSON: function () {\n\t var json = Backbone.Model.prototype.toJSON.call(this);\n\t if (this.elements) {\n\t json.elements = this.elements.toJSON();\n\t }\n\t return json;\n\t },\n\t\n\t /** Is this collection in a 'ready' state no processing (for the collection) is left\n\t * to do on the server.\n\t */\n\t inReadyState: function () {\n\t var populated = this.get('populated');\n\t return this.isDeletedOrPurged() || populated;\n\t },\n\t\n\t //TODO:?? the following are the same interface as DatasetAssociation - can we combine?\n\t /** Does the DC contain any elements yet? Is a fetch() required? */\n\t hasDetails: function () {\n\t return this.elements.length !== 0;\n\t },\n\t\n\t /** Given the filters, what models in this.elements would be returned? */\n\t getVisibleContents: function (filters) {\n\t // filters unused for now\n\t return this.elements;\n\t },\n\t\n\t // ........................................................................ ajax\n\t /** override to use actual Dates objects for create/update times */\n\t parse: function (response, options) {\n\t var parsed = Backbone.Model.prototype.parse.call(this, response, options);\n\t if (parsed.create_time) {\n\t parsed.create_time = new Date(parsed.create_time);\n\t }\n\t if (parsed.update_time) {\n\t parsed.update_time = new Date(parsed.update_time);\n\t }\n\t return parsed;\n\t },\n\t\n\t /** save this dataset, _Mark_ing it as deleted (just a flag) */\n\t 'delete': function (options) {\n\t if (this.get('deleted')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: true }, options);\n\t },\n\t /** save this dataset, _Mark_ing it as undeleted */\n\t undelete: function (options) {\n\t if (!this.get('deleted') || this.get('purged')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: false }, options);\n\t },\n\t\n\t /** Is this collection deleted or purged? */\n\t isDeletedOrPurged: function () {\n\t return this.get('deleted') || this.get('purged');\n\t },\n\t\n\t // ........................................................................ searchable\n\t /** searchable attributes for collections */\n\t searchAttributes: ['name', 'tags'],\n\t\n\t // ........................................................................ misc\n\t /** String representation */\n\t toString: function () {\n\t var idAndName = [this.get('id'), this.get('name') || this.get('element_identifier')];\n\t return 'DatasetCollection(' + idAndName.join(',') + ')';\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** Model for a DatasetCollection containing datasets (non-nested).\n\t */\n\t var ListDatasetCollection = DatasetCollection.extend(\n\t /** @lends ListDatasetCollection.prototype */{\n\t\n\t /** override since we know the collection will only contain datasets */\n\t collectionClass: DatasetDCECollection,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'List' + DatasetCollection.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** Model for a DatasetCollection containing fwd/rev datasets (a list of 2).\n\t */\n\t var PairDatasetCollection = ListDatasetCollection.extend(\n\t /** @lends PairDatasetCollection.prototype */{\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'Pair' + DatasetCollection.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //_________________________________________________________________________________________________ NESTED COLLECTIONS\n\t // this is where things get weird, man. Weird.\n\t //TODO: it might be possible to compact all the following...I think.\n\t //==============================================================================\n\t /** @class Backbone model for a Generic DatasetCollectionElement that is also a DatasetCollection\n\t * (a nested collection). Currently only list:paired.\n\t */\n\t var NestedDCDCE = DatasetCollection.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends NestedDCDCE.prototype */{\n\t\n\t // because all objects have constructors (as this hashmap would even if this next line wasn't present)\n\t // the constructor in hcontentMixin won't be attached by BASE_MVC.mixin to this model\n\t // - re-apply manually it now\n\t /** call the mixin constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t NestedDCDCE.constructor:', attributes, options);\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.object ? '' + this.object : this.get('element_identifier');\n\t return ['NestedDCDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class Backbone collection containing Generic NestedDCDCE's (nested dataset collections).\n\t */\n\t var NestedDCDCECollection = DCECollection.extend(\n\t /** @lends NestedDCDCECollection.prototype */{\n\t\n\t /** This is a collection of nested collections */\n\t model: NestedDCDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['NestedDCDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for a paired dataset collection within a list:paired dataset collection.\n\t */\n\t var NestedPairDCDCE = PairDatasetCollection.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends NestedPairDCDCE.prototype */{\n\t //TODO:?? possibly rename to NestedDatasetCollection?\n\t\n\t // because all objects have constructors (as this hashmap would even if this next line wasn't present)\n\t // the constructor in hcontentMixin won't be attached by BASE_MVC.mixin to this model\n\t // - re-apply manually it now\n\t /** This is both a collection and a collection element - call the constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t NestedPairDCDCE.constructor:', attributes, options);\n\t //DatasetCollection.constructor.call( this, attributes, options );\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.object ? '' + this.object : this.get('element_identifier');\n\t return ['NestedPairDCDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class Backbone collection for a backbone collection containing paired dataset collections.\n\t */\n\t var NestedPairDCDCECollection = NestedDCDCECollection.extend(\n\t /** @lends PairDCDCECollection.prototype */{\n\t\n\t /** We know this collection is composed of only nested pair collections */\n\t model: NestedPairDCDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['NestedPairDCDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone Model for a DatasetCollection (list) that contains DatasetCollections (pairs).\n\t */\n\t var ListPairedDatasetCollection = DatasetCollection.extend(\n\t /** @lends ListPairedDatasetCollection.prototype */{\n\t\n\t /** list:paired is the only collection that itself contains collections */\n\t collectionClass: NestedPairDCDCECollection,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['ListPairedDatasetCollection(', this.get('name'), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for a list dataset collection within a list:list dataset collection. */\n\t var NestedListDCDCE = ListDatasetCollection.extend(BASE_MVC.mixin(DatasetCollectionElementMixin,\n\t /** @lends NestedListDCDCE.prototype */{\n\t\n\t /** This is both a collection and a collection element - call the constructor */\n\t constructor: function (attributes, options) {\n\t this.debug('\\t NestedListDCDCE.constructor:', attributes, options);\n\t DatasetCollectionElementMixin.constructor.call(this, attributes, options);\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t var objStr = this.object ? '' + this.object : this.get('element_identifier');\n\t return ['NestedListDCDCE(', objStr, ')'].join('');\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t /** @class Backbone collection containing list dataset collections. */\n\t var NestedListDCDCECollection = NestedDCDCECollection.extend({\n\t\n\t /** We know this collection is composed of only nested pair collections */\n\t model: NestedListDCDCE,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['NestedListDCDCECollection(', this.length, ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone Model for a DatasetCollection (list) that contains other lists. */\n\t var ListOfListsDatasetCollection = DatasetCollection.extend({\n\t\n\t /** list:paired is the only collection that itself contains collections */\n\t collectionClass: NestedListDCDCECollection,\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['ListOfListsDatasetCollection(', this.get('name'), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t ListDatasetCollection: ListDatasetCollection,\n\t PairDatasetCollection: PairDatasetCollection,\n\t ListPairedDatasetCollection: ListPairedDatasetCollection,\n\t ListOfListsDatasetCollection: ListOfListsDatasetCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 42 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $, jQuery) {\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(50), __webpack_require__(11), __webpack_require__(6), __webpack_require__(78), __webpack_require__(8), __webpack_require__(96), __webpack_require__(5), __webpack_require__(93)], __WEBPACK_AMD_DEFINE_RESULT__ = function (HDCA, STATES, BASE_MVC, baseCreator, UI_MODAL, naturalSort, _l) {\n\t\n\t 'use strict';\n\t\n\t var logNamespace = 'collections';\n\t\n\t /*==============================================================================\n\t TODO:\n\t use proper Element model and not just json\n\t straighten out createFn, collection.createHDCA\n\t possibly stop using modals for this\n\t It would be neat to do a drag and drop\n\t \n\t ==============================================================================*/\n\t /** A view for both DatasetDCEs and NestedDCDCEs\n\t * (things that implement collection-model:DatasetCollectionElementMixin)\n\t */\n\t var DatasetCollectionElementView = Backbone.View.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t //TODO: use proper class (DatasetDCE or NestedDCDCE (or the union of both))\n\t tagName: 'li',\n\t className: 'collection-element',\n\t\n\t initialize: function (attributes) {\n\t this.element = attributes.element || {};\n\t this.selected = attributes.selected || false;\n\t },\n\t\n\t render: function () {\n\t this.$el.attr('data-element-id', this.element.id).attr('draggable', true).html(this.template({ element: this.element }));\n\t if (this.selected) {\n\t this.$el.addClass('selected');\n\t }\n\t return this;\n\t },\n\t\n\t //TODO: lots of unused space in the element - possibly load details and display them horiz.\n\t template: _.template(['', '<%- element.name %>', '', ''].join('')),\n\t\n\t /** select this element and pub */\n\t select: function (toggle) {\n\t this.$el.toggleClass('selected', toggle);\n\t this.trigger('select', {\n\t source: this,\n\t selected: this.$el.hasClass('selected')\n\t });\n\t },\n\t\n\t /** animate the removal of this element and pub */\n\t discard: function () {\n\t var view = this,\n\t parentWidth = this.$el.parent().width();\n\t this.$el.animate({ 'margin-right': parentWidth }, 'fast', function () {\n\t view.trigger('discard', {\n\t source: view\n\t });\n\t view.destroy();\n\t });\n\t },\n\t\n\t /** remove the DOM and any listeners */\n\t destroy: function () {\n\t this.off();\n\t this.$el.remove();\n\t },\n\t\n\t events: {\n\t 'click': '_click',\n\t 'click .name': '_clickName',\n\t 'click .discard': '_clickDiscard',\n\t\n\t 'dragstart': '_dragstart',\n\t 'dragend': '_dragend',\n\t 'dragover': '_sendToParent',\n\t 'drop': '_sendToParent'\n\t },\n\t\n\t /** select when the li is clicked */\n\t _click: function (ev) {\n\t ev.stopPropagation();\n\t this.select(ev);\n\t },\n\t\n\t /** rename a pair when the name is clicked */\n\t _clickName: function (ev) {\n\t ev.stopPropagation();\n\t ev.preventDefault();\n\t var promptString = [_l('Enter a new name for the element'), ':\\n(', _l('Note that changing the name here will not rename the dataset'), ')'].join(''),\n\t response = prompt(_l('Enter a new name for the element') + ':', this.element.name);\n\t if (response) {\n\t this.element.name = response;\n\t this.render();\n\t }\n\t //TODO: cancelling with ESC leads to closure of the creator...\n\t },\n\t\n\t /** discard when the discard button is clicked */\n\t _clickDiscard: function (ev) {\n\t ev.stopPropagation();\n\t this.discard();\n\t },\n\t\n\t /** dragging pairs for re-ordering */\n\t _dragstart: function (ev) {\n\t if (ev.originalEvent) {\n\t ev = ev.originalEvent;\n\t }\n\t ev.dataTransfer.effectAllowed = 'move';\n\t ev.dataTransfer.setData('text/plain', JSON.stringify(this.element));\n\t\n\t this.$el.addClass('dragging');\n\t this.$el.parent().trigger('collection-element.dragstart', [this]);\n\t },\n\t\n\t /** dragging for re-ordering */\n\t _dragend: function (ev) {\n\t this.$el.removeClass('dragging');\n\t this.$el.parent().trigger('collection-element.dragend', [this]);\n\t },\n\t\n\t /** manually bubble up an event to the parent/container */\n\t _sendToParent: function (ev) {\n\t this.$el.parent().trigger(ev);\n\t },\n\t\n\t /** string rep */\n\t toString: function () {\n\t return 'DatasetCollectionElementView()';\n\t }\n\t });\n\t\n\t // ============================================================================\n\t /** An interface for building collections.\n\t */\n\t var ListCollectionCreator = Backbone.View.extend(BASE_MVC.LoggableMixin).extend(baseCreator.CollectionCreatorMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t /** the class used to display individual elements */\n\t elementViewClass: DatasetCollectionElementView,\n\t /** the class this creator will create and save */\n\t collectionClass: HDCA.HistoryListDatasetCollection,\n\t className: 'list-collection-creator collection-creator flex-row-container',\n\t\n\t /** minimum number of valid elements to start with in order to build a collection of this type */\n\t minElements: 1,\n\t\n\t defaultAttributes: {\n\t //TODO: remove - use new collectionClass().save()\n\t /** takes elements and creates the proper collection - returns a promise */\n\t creationFn: function () {\n\t throw new TypeError('no creation fn for creator');\n\t },\n\t /** fn to call when the collection is created (scoped to this) */\n\t oncreate: function () {},\n\t /** fn to call when the cancel button is clicked (scoped to this) - if falsy, no btn is displayed */\n\t oncancel: function () {},\n\t /** distance from list edge to begin autoscrolling list */\n\t autoscrollDist: 24,\n\t /** Color passed to hoverhighlight */\n\t highlightClr: 'rgba( 64, 255, 255, 1.0 )'\n\t },\n\t\n\t footerSettings: {\n\t '.hide-originals': 'hideOriginals'\n\t },\n\t\n\t /** set up initial options, instance vars, behaviors */\n\t initialize: function (attributes) {\n\t this.metric('ListCollectionCreator.initialize', attributes);\n\t var creator = this;\n\t _.each(this.defaultAttributes, function (value, key) {\n\t value = attributes[key] || value;\n\t creator[key] = value;\n\t });\n\t\n\t /** unordered, original list - cache to allow reversal */\n\t creator.initialElements = attributes.elements || [];\n\t\n\t this._setUpCommonSettings(attributes);\n\t this._instanceSetUp();\n\t this._elementsSetUp();\n\t this._setUpBehaviors();\n\t },\n\t\n\t /** set up instance vars */\n\t _instanceSetUp: function () {\n\t /** Ids of elements that have been selected by the user - to preserve over renders */\n\t this.selectedIds = {};\n\t /** DOM elements currently being dragged */\n\t this.$dragging = null;\n\t /** Used for blocking UI events during ajax/operations (don't post twice) */\n\t this.blocking = false;\n\t },\n\t\n\t // ------------------------------------------------------------------------ process raw list\n\t /** set up main data */\n\t _elementsSetUp: function () {\n\t //this.debug( '-- _dataSetUp' );\n\t /** a list of invalid elements and the reasons they aren't valid */\n\t this.invalidElements = [];\n\t //TODO: handle fundamental problem of syncing DOM, views, and list here\n\t /** data for list in progress */\n\t this.workingElements = [];\n\t /** views for workingElements */\n\t this.elementViews = [];\n\t\n\t // copy initial list, sort, add ids if needed\n\t this.workingElements = this.initialElements.slice(0);\n\t this._ensureElementIds();\n\t this._validateElements();\n\t this._mangleDuplicateNames();\n\t this._sortElements();\n\t },\n\t\n\t /** add ids to dataset objs in initial list if none */\n\t _ensureElementIds: function () {\n\t this.workingElements.forEach(function (element) {\n\t if (!element.hasOwnProperty('id')) {\n\t element.id = _.uniqueId();\n\t }\n\t });\n\t return this.workingElements;\n\t },\n\t\n\t /** separate working list into valid and invalid elements for this collection */\n\t _validateElements: function () {\n\t var creator = this,\n\t existingNames = {};\n\t creator.invalidElements = [];\n\t\n\t this.workingElements = this.workingElements.filter(function (element) {\n\t var problem = creator._isElementInvalid(element);\n\t if (problem) {\n\t creator.invalidElements.push({\n\t element: element,\n\t text: problem\n\t });\n\t }\n\t return !problem;\n\t });\n\t return this.workingElements;\n\t },\n\t\n\t /** describe what is wrong with a particular element if anything */\n\t _isElementInvalid: function (element) {\n\t if (element.history_content_type !== 'dataset') {\n\t return _l(\"is not a dataset\");\n\t }\n\t var validState = element.state === STATES.OK || _.contains(STATES.NOT_READY_STATES, element.state);\n\t if (!validState) {\n\t return _l(\"has errored, is paused, or is not accessible\");\n\t }\n\t if (element.deleted || element.purged) {\n\t return _l(\"has been deleted or purged\");\n\t }\n\t return null;\n\t },\n\t\n\t /** mangle duplicate names using a mac-like '(counter)' addition to any duplicates */\n\t _mangleDuplicateNames: function () {\n\t var SAFETY = 900,\n\t counter = 1,\n\t existingNames = {};\n\t this.workingElements.forEach(function (element) {\n\t var currName = element.name;\n\t while (existingNames.hasOwnProperty(currName)) {\n\t currName = element.name + ' (' + counter + ')';\n\t counter += 1;\n\t if (counter >= SAFETY) {\n\t throw new Error('Safety hit in while loop - thats impressive');\n\t }\n\t }\n\t element.name = currName;\n\t existingNames[element.name] = true;\n\t });\n\t },\n\t\n\t /** sort a list of elements */\n\t _sortElements: function (list) {\n\t // // currently only natural sort by name\n\t // this.workingElements.sort( function( a, b ){ return naturalSort( a.name, b.name ); });\n\t // return this.workingElements;\n\t },\n\t\n\t // ------------------------------------------------------------------------ rendering\n\t // templates : ListCollectionCreator.templates,\n\t /** render the entire interface */\n\t render: function (speed, callback) {\n\t //this.debug( '-- _render' );\n\t if (this.workingElements.length < this.minElements) {\n\t return this._renderInvalid(speed, callback);\n\t }\n\t\n\t this.$el.empty().html(this.templates.main());\n\t this._renderHeader(speed);\n\t this._renderMiddle(speed);\n\t this._renderFooter(speed);\n\t this._addPluginComponents();\n\t this.$('.collection-name').focus();\n\t this.trigger('rendered', this);\n\t return this;\n\t },\n\t\n\t /** render a simplified interface aimed at telling the user why they can't move forward */\n\t _renderInvalid: function (speed, callback) {\n\t //this.debug( '-- _render' );\n\t this.$el.empty().html(this.templates.invalidInitial({\n\t problems: this.invalidElements,\n\t elements: this.workingElements\n\t }));\n\t if (typeof this.oncancel === 'function') {\n\t this.$('.cancel-create.btn').show();\n\t }\n\t this.trigger('rendered', this);\n\t return this;\n\t },\n\t\n\t /** render the header section */\n\t _renderHeader: function (speed, callback) {\n\t var $header = this.$('.header').empty().html(this.templates.header()).find('.help-content').prepend($(this.templates.helpContent()));\n\t //TODO: should only show once despite calling _renderHeader again\n\t if (this.invalidElements.length) {\n\t this._invalidElementsAlert();\n\t }\n\t return $header;\n\t },\n\t\n\t /** render the middle including the elements */\n\t _renderMiddle: function (speed, callback) {\n\t var $middle = this.$('.middle').empty().html(this.templates.middle());\n\t this._renderList(speed);\n\t return $middle;\n\t },\n\t\n\t /** add any jQuery/bootstrap/custom plugins to elements rendered */\n\t _addPluginComponents: function () {\n\t this.$('.help-content i').hoverhighlight('.collection-creator', this.highlightClr);\n\t },\n\t\n\t /** build and show an alert describing any elements that could not be included due to problems */\n\t _invalidElementsAlert: function () {\n\t this._showAlert(this.templates.invalidElements({ problems: this.invalidElements }), 'alert-warning');\n\t },\n\t\n\t _disableNameAndCreate: function (disable) {\n\t disable = !_.isUndefined(disable) ? disable : true;\n\t if (disable) {\n\t this.$('.collection-name').prop('disabled', true);\n\t this.$('.create-collection').toggleClass('disabled', true);\n\t // } else {\n\t // this.$( '.collection-name' ).prop( 'disabled', false );\n\t // this.$( '.create-collection' ).removeClass( 'disable' );\n\t }\n\t },\n\t\n\t // ------------------------------------------------------------------------ rendering elements\n\t /** conv. to the main list display DOM */\n\t $list: function () {\n\t return this.$('.collection-elements');\n\t },\n\t\n\t /** show or hide the clear selected control based on the num of selected elements */\n\t _renderClearSelected: function () {\n\t if (_.size(this.selectedIds)) {\n\t this.$('.collection-elements-controls > .clear-selected').show();\n\t } else {\n\t this.$('.collection-elements-controls > .clear-selected').hide();\n\t }\n\t },\n\t\n\t /** render the elements in order (or a warning if no elements found) */\n\t _renderList: function (speed, callback) {\n\t //this.debug( '-- _renderList' );\n\t var creator = this,\n\t $tmp = jQuery('
    '),\n\t $list = creator.$list();\n\t\n\t _.each(this.elementViews, function (view) {\n\t view.destroy();\n\t creator.removeElementView(view);\n\t });\n\t\n\t // if( !this.workingElements.length ){\n\t // this._renderNoValidElements();\n\t // return;\n\t // }\n\t\n\t creator.workingElements.forEach(function (element) {\n\t var elementView = creator._createElementView(element);\n\t $tmp.append(elementView.$el);\n\t });\n\t\n\t creator._renderClearSelected();\n\t $list.empty().append($tmp.children());\n\t _.invoke(creator.elementViews, 'render');\n\t\n\t if ($list.height() > $list.css('max-height')) {\n\t $list.css('border-width', '1px 0px 1px 0px');\n\t } else {\n\t $list.css('border-width', '0px');\n\t }\n\t },\n\t\n\t /** create an element view, cache in elementViews, set up listeners, and return */\n\t _createElementView: function (element) {\n\t var elementView = new this.elementViewClass({\n\t //TODO: use non-generic class or not all\n\t // model : COLLECTION.DatasetDCE( element )\n\t element: element,\n\t selected: _.has(this.selectedIds, element.id)\n\t });\n\t this.elementViews.push(elementView);\n\t this._listenToElementView(elementView);\n\t return elementView;\n\t },\n\t\n\t /** listen to any element events */\n\t _listenToElementView: function (view) {\n\t var creator = this;\n\t creator.listenTo(view, {\n\t select: function (data) {\n\t var element = data.source.element;\n\t if (data.selected) {\n\t creator.selectedIds[element.id] = true;\n\t } else {\n\t delete creator.selectedIds[element.id];\n\t }\n\t creator.trigger('elements:select', data);\n\t },\n\t discard: function (data) {\n\t creator.trigger('elements:discard', data);\n\t }\n\t });\n\t },\n\t\n\t /** add a new element view based on the json in element */\n\t addElementView: function (element) {\n\t //TODO: workingElements is sorted, add element in appropo index\n\t // add element, sort elements, find element index\n\t // var view = this._createElementView( element );\n\t // return view;\n\t },\n\t\n\t /** stop listening to view and remove from caches */\n\t removeElementView: function (view) {\n\t delete this.selectedIds[view.element.id];\n\t this._renderClearSelected();\n\t\n\t this.elementViews = _.without(this.elementViews, view);\n\t this.stopListening(view);\n\t },\n\t\n\t /** render a message in the list that no elements remain to create a collection */\n\t _renderNoElementsLeft: function () {\n\t this._disableNameAndCreate(true);\n\t this.$('.collection-elements').append(this.templates.noElementsLeft());\n\t },\n\t\n\t // /** render a message in the list that no valid elements were found to create a collection */\n\t // _renderNoValidElements : function(){\n\t // this._disableNameAndCreate( true );\n\t // this.$( '.collection-elements' ).append( this.templates.noValidElements() );\n\t // },\n\t\n\t // ------------------------------------------------------------------------ API\n\t /** convert element into JSON compatible with the collections API */\n\t _elementToJSON: function (element) {\n\t // return element.toJSON();\n\t return element;\n\t },\n\t\n\t /** create the collection via the API\n\t * @returns {jQuery.xhr Object} the jquery ajax request\n\t */\n\t createList: function (name) {\n\t if (!this.workingElements.length) {\n\t var message = _l('No valid elements for final list') + '. ';\n\t message += '' + _l('Cancel') + ' ';\n\t message += _l('or');\n\t message += ' ' + _l('start over') + '.';\n\t this._showAlert(message);\n\t return;\n\t }\n\t\n\t var creator = this,\n\t elements = this.workingElements.map(function (element) {\n\t return creator._elementToJSON(element);\n\t });\n\t\n\t creator.blocking = true;\n\t return creator.creationFn(elements, name, creator.hideOriginals).always(function () {\n\t creator.blocking = false;\n\t }).fail(function (xhr, status, message) {\n\t creator.trigger('error', {\n\t xhr: xhr,\n\t status: status,\n\t message: _l('An error occurred while creating this collection')\n\t });\n\t }).done(function (response, message, xhr) {\n\t creator.trigger('collection:created', response, message, xhr);\n\t creator.metric('collection:created', response);\n\t if (typeof creator.oncreate === 'function') {\n\t creator.oncreate.call(this, response, message, xhr);\n\t }\n\t });\n\t },\n\t\n\t // ------------------------------------------------------------------------ events\n\t /** set up event handlers on self */\n\t _setUpBehaviors: function () {\n\t this.on('error', this._errorHandler);\n\t\n\t this.once('rendered', function () {\n\t this.trigger('rendered:initial', this);\n\t });\n\t\n\t this.on('elements:select', function (data) {\n\t this._renderClearSelected();\n\t });\n\t\n\t this.on('elements:discard', function (data) {\n\t var element = data.source.element;\n\t this.removeElementView(data.source);\n\t\n\t this.workingElements = _.without(this.workingElements, element);\n\t if (!this.workingElements.length) {\n\t this._renderNoElementsLeft();\n\t }\n\t });\n\t\n\t //this.on( 'all', function(){\n\t // this.info( arguments );\n\t //});\n\t return this;\n\t },\n\t\n\t /** handle errors with feedback and details to the user (if available) */\n\t _errorHandler: function (data) {\n\t this.error(data);\n\t\n\t var creator = this;\n\t content = data.message || _l('An error occurred');\n\t if (data.xhr) {\n\t var xhr = data.xhr,\n\t message = data.message;\n\t if (xhr.readyState === 0 && xhr.status === 0) {\n\t content += ': ' + _l('Galaxy could not be reached and may be updating.') + _l(' Try again in a few minutes.');\n\t } else if (xhr.responseJSON) {\n\t content += ':
    ' + JSON.stringify(xhr.responseJSON) + '
    ';\n\t } else {\n\t content += ': ' + message;\n\t }\n\t }\n\t creator._showAlert(content, 'alert-danger');\n\t },\n\t\n\t events: {\n\t // header\n\t 'click .more-help': '_clickMoreHelp',\n\t 'click .less-help': '_clickLessHelp',\n\t 'click .main-help': '_toggleHelp',\n\t 'click .header .alert button': '_hideAlert',\n\t\n\t 'click .reset': 'reset',\n\t 'click .clear-selected': 'clearSelectedElements',\n\t\n\t // elements - selection\n\t 'click .collection-elements': 'clearSelectedElements',\n\t\n\t // elements - drop target\n\t // 'dragenter .collection-elements': '_dragenterElements',\n\t // 'dragleave .collection-elements': '_dragleaveElements',\n\t 'dragover .collection-elements': '_dragoverElements',\n\t 'drop .collection-elements': '_dropElements',\n\t\n\t // these bubble up from the elements as custom events\n\t 'collection-element.dragstart .collection-elements': '_elementDragstart',\n\t 'collection-element.dragend .collection-elements': '_elementDragend',\n\t\n\t // footer\n\t 'change .collection-name': '_changeName',\n\t 'keydown .collection-name': '_nameCheckForEnter',\n\t 'change .hide-originals': '_changeHideOriginals',\n\t 'click .cancel-create': '_cancelCreate',\n\t 'click .create-collection': '_clickCreate' //,\n\t },\n\t\n\t // ........................................................................ elements\n\t /** reset all data to the initial state */\n\t reset: function () {\n\t this._instanceSetUp();\n\t this._elementsSetUp();\n\t this.render();\n\t },\n\t\n\t /** deselect all elements */\n\t clearSelectedElements: function (ev) {\n\t this.$('.collection-elements .collection-element').removeClass('selected');\n\t this.$('.collection-elements-controls > .clear-selected').hide();\n\t },\n\t\n\t //_dragenterElements : function( ev ){\n\t // //this.debug( '_dragenterElements:', ev );\n\t //},\n\t //TODO: if selected are dragged out of the list area - remove the placeholder - cuz it won't work anyway\n\t // _dragleaveElements : function( ev ){\n\t // //this.debug( '_dragleaveElements:', ev );\n\t // },\n\t\n\t /** track the mouse drag over the list adding a placeholder to show where the drop would occur */\n\t _dragoverElements: function (ev) {\n\t //this.debug( '_dragoverElements:', ev );\n\t ev.preventDefault();\n\t\n\t var $list = this.$list();\n\t this._checkForAutoscroll($list, ev.originalEvent.clientY);\n\t var $nearest = this._getNearestElement(ev.originalEvent.clientY);\n\t\n\t //TODO: no need to re-create - move instead\n\t this.$('.element-drop-placeholder').remove();\n\t var $placeholder = $('
    ');\n\t if (!$nearest.length) {\n\t $list.append($placeholder);\n\t } else {\n\t $nearest.before($placeholder);\n\t }\n\t },\n\t\n\t /** If the mouse is near enough to the list's top or bottom, scroll the list */\n\t _checkForAutoscroll: function ($element, y) {\n\t var AUTOSCROLL_SPEED = 2,\n\t offset = $element.offset(),\n\t scrollTop = $element.scrollTop(),\n\t upperDist = y - offset.top,\n\t lowerDist = offset.top + $element.outerHeight() - y;\n\t if (upperDist >= 0 && upperDist < this.autoscrollDist) {\n\t $element.scrollTop(scrollTop - AUTOSCROLL_SPEED);\n\t } else if (lowerDist >= 0 && lowerDist < this.autoscrollDist) {\n\t $element.scrollTop(scrollTop + AUTOSCROLL_SPEED);\n\t }\n\t },\n\t\n\t /** get the nearest element based on the mouse's Y coordinate.\n\t * If the y is at the end of the list, return an empty jQuery object.\n\t */\n\t _getNearestElement: function (y) {\n\t var WIGGLE = 4,\n\t lis = this.$('.collection-elements li.collection-element').toArray();\n\t for (var i = 0; i < lis.length; i++) {\n\t var $li = $(lis[i]),\n\t top = $li.offset().top,\n\t halfHeight = Math.floor($li.outerHeight() / 2) + WIGGLE;\n\t if (top + halfHeight > y && top - halfHeight < y) {\n\t return $li;\n\t }\n\t }\n\t return $();\n\t },\n\t\n\t /** drop (dragged/selected elements) onto the list, re-ordering the internal list */\n\t _dropElements: function (ev) {\n\t if (ev.originalEvent) {\n\t ev = ev.originalEvent;\n\t }\n\t // both required for firefox\n\t ev.preventDefault();\n\t ev.dataTransfer.dropEffect = 'move';\n\t\n\t // insert before the nearest element or after the last.\n\t var $nearest = this._getNearestElement(ev.clientY);\n\t if ($nearest.length) {\n\t this.$dragging.insertBefore($nearest);\n\t } else {\n\t // no nearest before - insert after last element\n\t this.$dragging.insertAfter(this.$('.collection-elements .collection-element').last());\n\t }\n\t // resync the creator's list based on the new DOM order\n\t this._syncOrderToDom();\n\t return false;\n\t },\n\t\n\t /** resync the creator's list of elements based on the DOM order */\n\t _syncOrderToDom: function () {\n\t var creator = this,\n\t newElements = [];\n\t //TODO: doesn't seem wise to use the dom to store these - can't we sync another way?\n\t this.$('.collection-elements .collection-element').each(function () {\n\t var id = $(this).attr('data-element-id'),\n\t element = _.findWhere(creator.workingElements, { id: id });\n\t if (element) {\n\t newElements.push(element);\n\t } else {\n\t console.error('missing element: ', id);\n\t }\n\t });\n\t this.workingElements = newElements;\n\t this._renderList();\n\t },\n\t\n\t /** drag communication with element sub-views: dragstart */\n\t _elementDragstart: function (ev, element) {\n\t // auto select the element causing the event and move all selected\n\t element.select(true);\n\t this.$dragging = this.$('.collection-elements .collection-element.selected');\n\t },\n\t\n\t /** drag communication with element sub-views: dragend - remove the placeholder */\n\t _elementDragend: function (ev, element) {\n\t $('.element-drop-placeholder').remove();\n\t this.$dragging = null;\n\t },\n\t\n\t // ------------------------------------------------------------------------ templates\n\t //TODO: move to require text plugin and load these as text\n\t //TODO: underscore currently unnecc. bc no vars are used\n\t //TODO: better way of localizing text-nodes in long strings\n\t /** underscore template fns attached to class */\n\t templates: _.extend({}, baseCreator.CollectionCreatorMixin._creatorTemplates, {\n\t\n\t /** the header (not including help text) */\n\t header: _.template(['', '
    ', '', '', '
    '].join('')),\n\t\n\t /** the middle: element list */\n\t middle: _.template(['', '
    ', '
    '].join('')),\n\t\n\t /** creation and cancel controls */\n\t footer: _.template(['
    ', '
    ', '', '
    ', '
    ', '', '
    ', _l('Name'), ':
    ', '
    ', '
    ', '
    ', '
    ', '', '
    ', '', '', '
    ', '
    ', '
    ', '', '
    ', '
    '].join('')),\n\t\n\t /** help content */\n\t helpContent: _.template(['

    ', _l(['Collections of datasets are permanent, ordered lists of datasets that can be passed to tools and ', 'workflows in order to have analyses done on each member of the entire group. This interface allows ', 'you to create a collection and re-order the final collection.'].join('')), '

    ', '
      ', '
    • ', _l(['Rename elements in the list by clicking on ', 'the existing name.'].join('')), '
    • ', '
    • ', _l(['Discard elements from the final created list by clicking on the ', '\"Discard\" button.'].join('')), '
    • ', '
    • ', _l(['Reorder the list by clicking and dragging elements. Select multiple elements by clicking on ', 'them and you can then move those selected by dragging the ', 'entire group. Deselect them by clicking them again or by clicking the ', 'the \"Clear selected\" link.'].join('')), '
    • ', '
    • ', _l(['Click the \"Start over\" link to begin again as if you had just opened ', 'the interface.'].join('')), '
    • ', '
    • ', _l(['Click the \"Cancel\" button to exit the interface.'].join('')), '
    • ', '

    ', '

    ', _l(['Once your collection is complete, enter a name and ', 'click \"Create list\".'].join('')), '

    '].join('')),\n\t\n\t /** shown in list when all elements are discarded */\n\t invalidElements: _.template([_l('The following selections could not be included due to problems:'), '
      <% _.each( problems, function( problem ){ %>', '
    • <%- problem.element.name %>: <%- problem.text %>
    • ', '<% }); %>
    '].join('')),\n\t\n\t /** shown in list when all elements are discarded */\n\t noElementsLeft: _.template(['
  • ', _l('No elements left! '), _l('Would you like to '), '', _l('start over'), '?', '
  • '].join('')),\n\t\n\t /** a simplified page communicating what went wrong and why the user needs to reselect something else */\n\t invalidInitial: _.template(['
    ', '
    ', '', '<% if( _.size( problems ) ){ %>', _l('The following selections could not be included due to problems'), ':', '
      <% _.each( problems, function( problem ){ %>', '
    • <%- problem.element.name %>: <%- problem.text %>
    • ', '<% }); %>
    ', '<% } else if( _.size( elements ) < 1 ){ %>', _l('No datasets were selected'), '.', '<% } %>', '
    ', _l('At least one element is needed for the collection'), '. ', _l('You may need to '), '', _l('cancel'), ' ', _l('and reselect new elements'), '.', '
    ', '
    ', '
    ', '
    ', '
    ', '
    ', '',\n\t // _l( 'Create a different kind of collection' ),\n\t '
    ', '
    ', '
    '].join(''))\n\t }),\n\t\n\t // ------------------------------------------------------------------------ misc\n\t /** string rep */\n\t toString: function () {\n\t return 'ListCollectionCreator';\n\t }\n\t });\n\t\n\t //=============================================================================\n\t /** Create a modal and load its body with the given CreatorClass creator type\n\t * @returns {Deferred} resolved when creator has built a collection.\n\t */\n\t var collectionCreatorModal = function _collectionCreatorModal(elements, options, CreatorClass) {\n\t\n\t var deferred = jQuery.Deferred(),\n\t modal = Galaxy.modal || new UI_MODAL.View(),\n\t creator;\n\t\n\t options = _.defaults(options || {}, {\n\t elements: elements,\n\t oncancel: function () {\n\t modal.hide();\n\t deferred.reject('cancelled');\n\t },\n\t oncreate: function (creator, response) {\n\t modal.hide();\n\t deferred.resolve(response);\n\t }\n\t });\n\t\n\t creator = new CreatorClass(options);\n\t modal.show({\n\t title: options.title || _l('Create a collection'),\n\t body: creator.$el,\n\t width: '80%',\n\t height: '100%',\n\t closing_events: true\n\t });\n\t creator.render();\n\t window._collectionCreator = creator;\n\t\n\t //TODO: remove modal header\n\t return deferred;\n\t };\n\t\n\t /** List collection flavor of collectionCreatorModal. */\n\t var listCollectionCreatorModal = function _listCollectionCreatorModal(elements, options) {\n\t options = options || {};\n\t options.title = _l('Create a collection from a list of datasets');\n\t return collectionCreatorModal(elements, options, ListCollectionCreator);\n\t };\n\t\n\t //==============================================================================\n\t /** Use a modal to create a list collection, then add it to the given history contents.\n\t * @returns {Deferred} resolved when the collection is added to the history.\n\t */\n\t function createListCollection(contents, defaultHideSourceItems) {\n\t var elements = contents.toJSON(),\n\t promise = listCollectionCreatorModal(elements, {\n\t defaultHideSourceItems: defaultHideSourceItems,\n\t creationFn: function (elements, name, hideSourceItems) {\n\t elements = elements.map(function (element) {\n\t return {\n\t id: element.id,\n\t name: element.name,\n\t //TODO: this allows for list:list even if the filter above does not - reconcile\n\t src: element.history_content_type === 'dataset' ? 'hda' : 'hdca'\n\t };\n\t });\n\t return contents.createHDCA(elements, 'list', name, hideSourceItems);\n\t }\n\t });\n\t return promise;\n\t }\n\t\n\t //==============================================================================\n\t return {\n\t DatasetCollectionElementView: DatasetCollectionElementView,\n\t ListCollectionCreator: ListCollectionCreator,\n\t\n\t collectionCreatorModal: collectionCreatorModal,\n\t listCollectionCreatorModal: listCollectionCreatorModal,\n\t createListCollection: createListCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1), __webpack_require__(1)))\n\n/***/ },\n/* 43 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, jQuery, Backbone, $) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(54), __webpack_require__(11), __webpack_require__(19), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (LIST_ITEM, STATES, faIconButton, BASE_MVC, _l) {\n\t 'use strict';\n\t\n\t var logNamespace = 'dataset';\n\t /*==============================================================================\n\t TODO:\n\t straighten out state rendering and templates used\n\t inaccessible/STATES.NOT_VIEWABLE is a special case\n\t simplify button rendering\n\t \n\t ==============================================================================*/\n\t var _super = LIST_ITEM.ListItemView;\n\t /** @class Read only list view for either LDDAs, HDAs, or HDADCEs.\n\t * Roughly, any DatasetInstance (and not a raw Dataset).\n\t */\n\t var DatasetListItemView = _super.extend(\n\t /** @lends DatasetListItemView.prototype */{\n\t _logNamespace: logNamespace,\n\t\n\t className: _super.prototype.className + \" dataset\",\n\t //TODO:?? doesn't exactly match an hda's type_id\n\t id: function () {\n\t return ['dataset', this.model.get('id')].join('-');\n\t },\n\t\n\t /** Set up: instance vars, options, and event handlers */\n\t initialize: function (attributes) {\n\t if (attributes.logger) {\n\t this.logger = this.model.logger = attributes.logger;\n\t }\n\t this.log(this + '.initialize:', attributes);\n\t _super.prototype.initialize.call(this, attributes);\n\t\n\t /** where should pages from links be displayed? (default to new tab/window) */\n\t this.linkTarget = attributes.linkTarget || '_blank';\n\t },\n\t\n\t /** event listeners */\n\t _setUpListeners: function () {\n\t _super.prototype._setUpListeners.call(this);\n\t var self = this;\n\t\n\t // re-rendering on any model changes\n\t return self.listenTo(self.model, {\n\t 'change': function (model) {\n\t // if the model moved into the ready state and is expanded without details, fetch those details now\n\t if (self.model.changedAttributes().state && self.model.inReadyState() && self.expanded && !self.model.hasDetails()) {\n\t // normally, will render automatically (due to fetch -> change),\n\t // but! setting_metadata sometimes doesn't cause any other changes besides state\n\t // so, not rendering causes it to seem frozen in setting_metadata state\n\t self.model.fetch({ silent: true }).done(function () {\n\t self.render();\n\t });\n\t } else {\n\t if (_.has(model.changed, 'tags') && _.keys(model.changed).length === 1) {\n\t // If only the tags have changed, rerender specifically\n\t // the titlebar region. Otherwise default to the full\n\t // render.\n\t self.$('.nametags').html(self._renderNametags());\n\t } else {\n\t self.render();\n\t }\n\t }\n\t }\n\t });\n\t },\n\t\n\t // ......................................................................... expandable\n\t /** In this override, only get details if in the ready state, get rerunnable if in other states.\n\t * Note: fetch with no 'change' event triggering to prevent automatic rendering.\n\t */\n\t _fetchModelDetails: function () {\n\t var view = this;\n\t if (view.model.inReadyState() && !view.model.hasDetails()) {\n\t return view.model.fetch({ silent: true });\n\t }\n\t return jQuery.when();\n\t },\n\t\n\t // ......................................................................... removal\n\t /** Remove this view's html from the DOM and remove all event listeners.\n\t * @param {Number or String} speed jq effect speed\n\t * @param {Function} callback an optional function called when removal is done (scoped to this view)\n\t */\n\t remove: function (speed, callback) {\n\t var view = this;\n\t speed = speed || this.fxSpeed;\n\t this.$el.fadeOut(speed, function () {\n\t Backbone.View.prototype.remove.call(view);\n\t if (callback) {\n\t callback.call(view);\n\t }\n\t });\n\t },\n\t\n\t // ......................................................................... rendering\n\t /* TODO:\n\t dataset states are the issue primarily making dataset rendering complex\n\t each state should have it's own way of displaying/set of details\n\t often with different actions that can be applied\n\t throw in deleted/purged/visible and things get complicated easily\n\t I've considered (a couple of times) - creating a view for each state\n\t - but recreating the view during an update...seems wrong\n\t */\n\t /** In this override, add the dataset state as a class for use with state-based CSS */\n\t _swapNewRender: function ($newRender) {\n\t _super.prototype._swapNewRender.call(this, $newRender);\n\t if (this.model.has('state')) {\n\t this.$el.addClass('state-' + this.model.get('state'));\n\t }\n\t return this.$el;\n\t },\n\t\n\t // ................................................................................ titlebar\n\t /** In this override, add the dataset display button. */\n\t _renderPrimaryActions: function () {\n\t // render just the display for read-only\n\t return [this._renderDisplayButton()];\n\t },\n\t\n\t /** Render icon-button to display dataset data */\n\t _renderDisplayButton: function () {\n\t // don't show display if not viewable or not accessible\n\t var state = this.model.get('state');\n\t if (state === STATES.NOT_VIEWABLE || state === STATES.DISCARDED || !this.model.get('accessible')) {\n\t return null;\n\t }\n\t\n\t var displayBtnData = {\n\t target: this.linkTarget,\n\t classes: 'display-btn'\n\t };\n\t\n\t // show a disabled display if the data's been purged\n\t if (this.model.get('purged')) {\n\t displayBtnData.disabled = true;\n\t displayBtnData.title = _l('Cannot display datasets removed from disk');\n\t\n\t // disable if still uploading\n\t } else if (state === STATES.UPLOAD) {\n\t displayBtnData.disabled = true;\n\t displayBtnData.title = _l('This dataset must finish uploading before it can be viewed');\n\t\n\t // disable if still new\n\t } else if (state === STATES.NEW) {\n\t displayBtnData.disabled = true;\n\t displayBtnData.title = _l('This dataset is not yet viewable');\n\t } else {\n\t displayBtnData.title = _l('View data');\n\t\n\t // default link for dataset\n\t displayBtnData.href = this.model.urls.display;\n\t\n\t // add frame manager option onclick event\n\t var self = this;\n\t displayBtnData.onclick = function (ev) {\n\t if (Galaxy.frame && Galaxy.frame.active) {\n\t // Add dataset to frames.\n\t Galaxy.frame.addDataset(self.model.get('id'));\n\t ev.preventDefault();\n\t }\n\t };\n\t }\n\t displayBtnData.faIcon = 'fa-eye';\n\t return faIconButton(displayBtnData);\n\t },\n\t\n\t // ......................................................................... rendering details\n\t /** Render the enclosing div of the hda body and, if expanded, the html in the body\n\t * @returns {jQuery} rendered DOM\n\t */\n\t _renderDetails: function () {\n\t //TODO: generalize to be allow different details for each state\n\t\n\t // no access - render nothing but a message\n\t if (this.model.get('state') === STATES.NOT_VIEWABLE) {\n\t return $(this.templates.noAccess(this.model.toJSON(), this));\n\t }\n\t\n\t var $details = _super.prototype._renderDetails.call(this);\n\t $details.find('.actions .left').empty().append(this._renderSecondaryActions());\n\t $details.find('.summary').html(this._renderSummary()).prepend(this._renderDetailMessages());\n\t $details.find('.display-applications').html(this._renderDisplayApplications());\n\t\n\t this._setUpBehaviors($details);\n\t return $details;\n\t },\n\t\n\t /** Defer to the appropo summary rendering fn based on state */\n\t _renderSummary: function () {\n\t var json = this.model.toJSON(),\n\t summaryRenderFn = this.templates.summaries[json.state];\n\t summaryRenderFn = summaryRenderFn || this.templates.summaries.unknown;\n\t return summaryRenderFn(json, this);\n\t },\n\t\n\t /** Render messages to be displayed only when the details are shown */\n\t _renderDetailMessages: function () {\n\t var view = this,\n\t $warnings = $('
    '),\n\t json = view.model.toJSON();\n\t //TODO:! unordered (map)\n\t _.each(view.templates.detailMessages, function (templateFn) {\n\t $warnings.append($(templateFn(json, view)));\n\t });\n\t return $warnings;\n\t },\n\t\n\t /** Render the external display application links */\n\t _renderDisplayApplications: function () {\n\t if (this.model.isDeletedOrPurged()) {\n\t return '';\n\t }\n\t // render both old and new display apps using the same template\n\t return [this.templates.displayApplications(this.model.get('display_apps'), this), this.templates.displayApplications(this.model.get('display_types'), this)].join('');\n\t },\n\t\n\t // ......................................................................... secondary/details actions\n\t /** A series of links/buttons for less commonly used actions: re-run, info, etc. */\n\t _renderSecondaryActions: function () {\n\t this.debug('_renderSecondaryActions');\n\t switch (this.model.get('state')) {\n\t case STATES.NOT_VIEWABLE:\n\t return [];\n\t case STATES.OK:\n\t case STATES.FAILED_METADATA:\n\t case STATES.ERROR:\n\t return [this._renderDownloadButton(), this._renderShowParamsButton()];\n\t }\n\t return [this._renderShowParamsButton()];\n\t },\n\t\n\t /** Render icon-button to show the input and output (stdout/err) for the job that created this.\n\t * @returns {jQuery} rendered DOM\n\t */\n\t _renderShowParamsButton: function () {\n\t // gen. safe to show in all cases\n\t return faIconButton({\n\t title: _l('View details'),\n\t classes: 'params-btn',\n\t href: this.model.urls.show_params,\n\t target: this.linkTarget,\n\t faIcon: 'fa-info-circle',\n\t onclick: function (ev) {\n\t if (Galaxy.frame && Galaxy.frame.active) {\n\t Galaxy.frame.add({ title: 'Dataset details', url: this.href });\n\t ev.preventDefault();\n\t ev.stopPropagation();\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** Render icon-button/popupmenu to download the data (and/or the associated meta files (bai, etc.)) for this.\n\t * @returns {jQuery} rendered DOM\n\t */\n\t _renderDownloadButton: function () {\n\t // don't show anything if the data's been purged\n\t if (this.model.get('purged') || !this.model.hasData()) {\n\t return null;\n\t }\n\t\n\t // return either: a popupmenu with links to download assoc. meta files (if there are meta files)\n\t // or a single download icon-button (if there are no meta files)\n\t if (!_.isEmpty(this.model.get('meta_files'))) {\n\t return this._renderMetaFileDownloadButton();\n\t }\n\t\n\t return $(['', '', ''].join(''));\n\t },\n\t\n\t /** Render the download button which opens a dropdown with links to download assoc. meta files (indeces, etc.) */\n\t _renderMetaFileDownloadButton: function () {\n\t var urls = this.model.urls;\n\t return $(['
    ', '', '', '', '', '
    '].join('\\n'));\n\t },\n\t\n\t _renderNametags: function () {\n\t var tpl = _.template(['<% _.each(_.sortBy(_.uniq(tags), function(x) { return x }), function(tag){ %>', '<% if (tag.indexOf(\"name:\") == 0){ %>', '<%- tag.slice(5) %>', '<% } %>', '<% }); %>'].join(''));\n\t return tpl({ tags: this.model.get('tags') });\n\t },\n\t\n\t // ......................................................................... misc\n\t events: _.extend(_.clone(_super.prototype.events), {\n\t 'click .display-btn': function (ev) {\n\t this.trigger('display', this, ev);\n\t },\n\t 'click .params-btn': function (ev) {\n\t this.trigger('params', this, ev);\n\t },\n\t 'click .download-btn': function (ev) {\n\t this.trigger('download', this, ev);\n\t }\n\t }),\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'DatasetListItemView(' + modelString + ')';\n\t }\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t DatasetListItemView.prototype.templates = function () {\n\t //TODO: move to require text! plugin\n\t\n\t var warnings = _.extend({}, _super.prototype.templates.warnings, {\n\t failed_metadata: BASE_MVC.wrapTemplate([\n\t // failed metadata is rendered as a warning on an otherwise ok dataset view\n\t '<% if( model.state === \"failed_metadata\" ){ %>', '
    ', _l('An error occurred setting the metadata for this dataset'), '
    ', '<% } %>']),\n\t error: BASE_MVC.wrapTemplate([\n\t // error during index fetch - show error on dataset\n\t '<% if( model.error ){ %>', '
    ', _l('There was an error getting the data for this dataset'), ': <%- model.error %>', '
    ', '<% } %>']),\n\t purged: BASE_MVC.wrapTemplate(['<% if( model.purged ){ %>', '
    ', _l('This dataset has been deleted and removed from disk'), '
    ', '<% } %>']),\n\t deleted: BASE_MVC.wrapTemplate([\n\t // deleted not purged\n\t '<% if( model.deleted && !model.purged ){ %>', '
    ', _l('This dataset has been deleted'), '
    ', '<% } %>'])\n\t\n\t //NOTE: hidden warning is only needed for HDAs\n\t });\n\t\n\t var detailsTemplate = BASE_MVC.wrapTemplate(['
    ', '
    ', '
    ', '
    ', '
    ', '
    ',\n\t\n\t // do not display tags, annotation, display apps, or peek when deleted\n\t '<% if( !dataset.deleted && !dataset.purged ){ %>', '
    ', '
    ', '
    ', '<% if( dataset.peek ){ %>', '
    <%= dataset.peek %>
    ', '<% } %>', '<% } %>', '
    '], 'dataset');\n\t\n\t var noAccessTemplate = BASE_MVC.wrapTemplate(['
    ', '
    ', _l('You do not have permission to view this dataset'), '
    ', '
    '], 'dataset');\n\t\n\t //TODO: still toooooooooooooo complex - rework\n\t var summaryTemplates = {};\n\t summaryTemplates[STATES.OK] = summaryTemplates[STATES.FAILED_METADATA] = BASE_MVC.wrapTemplate(['<% if( dataset.misc_blurb ){ %>', '
    ', '<%- dataset.misc_blurb %>', '
    ', '<% } %>', '<% if( dataset.file_ext ){ %>', '
    ', '', '<%- dataset.file_ext %>', '
    ', '<% } %>', '<% if( dataset.metadata_dbkey ){ %>', '
    ', '', '', '<%- dataset.metadata_dbkey %>', '', '
    ', '<% } %>', '<% if( dataset.misc_info ){ %>', '
    ', '<%- dataset.misc_info %>', '
    ', '<% } %>'], 'dataset');\n\t summaryTemplates[STATES.NEW] = BASE_MVC.wrapTemplate(['
    ', _l('This is a new dataset and not all of its data are available yet'), '
    '], 'dataset');\n\t summaryTemplates[STATES.NOT_VIEWABLE] = BASE_MVC.wrapTemplate(['
    ', _l('You do not have permission to view this dataset'), '
    '], 'dataset');\n\t summaryTemplates[STATES.DISCARDED] = BASE_MVC.wrapTemplate(['
    ', _l('The job creating this dataset was cancelled before completion'), '
    '], 'dataset');\n\t summaryTemplates[STATES.QUEUED] = BASE_MVC.wrapTemplate(['
    ', _l('This job is waiting to run'), '
    '], 'dataset');\n\t summaryTemplates[STATES.RUNNING] = BASE_MVC.wrapTemplate(['
    ', _l('This job is currently running'), '
    '], 'dataset');\n\t summaryTemplates[STATES.UPLOAD] = BASE_MVC.wrapTemplate(['
    ', _l('This dataset is currently uploading'), '
    '], 'dataset');\n\t summaryTemplates[STATES.SETTING_METADATA] = BASE_MVC.wrapTemplate(['
    ', _l('Metadata is being auto-detected'), '
    '], 'dataset');\n\t summaryTemplates[STATES.PAUSED] = BASE_MVC.wrapTemplate(['
    ', _l('This job is paused. Use the \"Resume Paused Jobs\" in the history menu to resume'), '
    '], 'dataset');\n\t summaryTemplates[STATES.ERROR] = BASE_MVC.wrapTemplate(['<% if( !dataset.purged ){ %>', '
    <%- dataset.misc_blurb %>
    ', '<% } %>', '', _l('An error occurred with this dataset'), ':', '
    <%- dataset.misc_info %>
    '], 'dataset');\n\t summaryTemplates[STATES.EMPTY] = BASE_MVC.wrapTemplate(['
    ', _l('No data'), ': <%- dataset.misc_blurb %>
    '], 'dataset');\n\t summaryTemplates.unknown = BASE_MVC.wrapTemplate(['
    Error: unknown dataset state: \"<%- dataset.state %>\"
    '], 'dataset');\n\t\n\t // messages to be displayed only within the details section ('below the fold')\n\t var detailMessageTemplates = {\n\t resubmitted: BASE_MVC.wrapTemplate([\n\t // deleted not purged\n\t '<% if( model.resubmitted ){ %>', '
    ', _l('The job creating this dataset has been resubmitted'), '
    ', '<% } %>'])\n\t };\n\t\n\t // this is applied to both old and new style display apps\n\t var displayApplicationsTemplate = BASE_MVC.wrapTemplate(['<% _.each( apps, function( app ){ %>', '
    ', '<%- app.label %> ', '', '<% _.each( app.links, function( link ){ %>', '\" href=\"<%- link.href %>\">', '<% print( _l( link.text ) ); %>', ' ', '<% }); %>', '', '
    ', '<% }); %>'], 'apps');\n\t\n\t return _.extend({}, _super.prototype.templates, {\n\t warnings: warnings,\n\t details: detailsTemplate,\n\t noAccess: noAccessTemplate,\n\t summaries: summaryTemplates,\n\t detailMessages: detailMessageTemplates,\n\t displayApplications: displayApplicationsTemplate\n\t });\n\t }();\n\t\n\t // ============================================================================\n\t return {\n\t DatasetListItemView: DatasetListItemView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(1), __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 44 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/**\n\t This class creates a form input element wrapper\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t return Backbone.View.extend({\n\t initialize: function (app, options) {\n\t this.app = app;\n\t this.app_options = app.model ? app.model.attributes : {};\n\t this.field = options && options.field || new Backbone.View();\n\t this.model = options && options.model || new Backbone.Model({\n\t text_enable: this.app_options.text_enable || 'Enable',\n\t text_disable: this.app_options.text_disable || 'Disable',\n\t cls_enable: this.app_options.cls_enable || 'fa fa-caret-square-o-down',\n\t cls_disable: this.app_options.cls_disable || 'fa fa-caret-square-o-up',\n\t always_refresh: this.app_options.always_refresh\n\t }).set(options);\n\t\n\t // set element and link components\n\t this.setElement(this._template());\n\t this.$field = this.$('.ui-form-field');\n\t this.$info = this.$('.ui-form-info');\n\t this.$preview = this.$('.ui-form-preview');\n\t this.$collapsible = this.$('.ui-form-collapsible');\n\t this.$collapsible_text = this.$('.ui-form-collapsible-text');\n\t this.$collapsible_icon = this.$('.ui-form-collapsible-icon');\n\t this.$title = this.$('.ui-form-title');\n\t this.$title_text = this.$('.ui-form-title-text');\n\t this.$error_text = this.$('.ui-form-error-text');\n\t this.$error = this.$('.ui-form-error');\n\t this.$backdrop = this.$('.ui-form-backdrop');\n\t\n\t // add field element\n\t this.$field.prepend(this.field.$el);\n\t\n\t // decide wether to expand or collapse fields\n\t var collapsible_value = this.model.get('collapsible_value');\n\t this.field.collapsed = collapsible_value !== undefined && JSON.stringify(this.model.get('value')) == JSON.stringify(collapsible_value);\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t\n\t // add click handler\n\t var self = this;\n\t this.$collapsible.on('click', function () {\n\t self.field.collapsed = !self.field.collapsed;\n\t app.trigger && app.trigger('change');\n\t self.render();\n\t });\n\t\n\t // hide error on value change\n\t if (this.field.model && !this.model.get('always_refresh')) {\n\t this.listenTo(this.field.model, 'change:value', function () {\n\t self.reset();\n\t });\n\t }\n\t },\n\t\n\t /** Set backdrop for input element */\n\t backdrop: function () {\n\t this.model.set('backdrop', true);\n\t },\n\t\n\t /** Set error text */\n\t error: function (text) {\n\t this.model.set('error_text', text);\n\t },\n\t\n\t /** Reset this view */\n\t reset: function () {\n\t !this.model.get('fixed') && this.model.set('error_text', null);\n\t },\n\t\n\t render: function () {\n\t // render help\n\t $('.tooltip').hide();\n\t var help_text = this.model.get('help', '');\n\t var help_argument = this.model.get('argument');\n\t if (help_argument && help_text.indexOf('(' + help_argument + ')') == -1) {\n\t help_text += ' (' + help_argument + ')';\n\t }\n\t this.$info.html(help_text);\n\t // render visibility\n\t this.$el[this.model.get('hidden') ? 'hide' : 'show']();\n\t // render preview view for collapsed fields\n\t this.$preview[this.field.collapsed && this.model.get('collapsible_preview') || this.model.get('disabled') ? 'show' : 'hide']().html(_.escape(this.model.get('text_value')));\n\t // render error messages\n\t var error_text = this.model.get('error_text');\n\t this.$error[error_text ? 'show' : 'hide']();\n\t this.$el[error_text ? 'addClass' : 'removeClass']('ui-error');\n\t this.$error_text.html(error_text);\n\t // render backdrop\n\t this.$backdrop[this.model.get('backdrop') ? 'show' : 'hide']();\n\t // render input field\n\t this.field.collapsed || this.model.get('disabled') ? this.$field.hide() : this.$field.show();\n\t // render input field color and style\n\t this.field.model && this.field.model.set({ 'color': this.model.get('color'), 'style': this.model.get('style') });\n\t // render collapsible options\n\t if (!this.model.get('disabled') && this.model.get('collapsible_value') !== undefined) {\n\t var collapsible_state = this.field.collapsed ? 'enable' : 'disable';\n\t this.$title_text.hide();\n\t this.$collapsible.show();\n\t this.$collapsible_text.text(this.model.get('label'));\n\t this.$collapsible_icon.removeClass().addClass('icon').addClass(this.model.get('cls_' + collapsible_state)).attr('data-original-title', this.model.get('text_' + collapsible_state)).tooltip({ placement: 'bottom' });\n\t } else {\n\t this.$title_text.show().text(this.model.get('label'));\n\t this.$collapsible.hide();\n\t }\n\t },\n\t\n\t _template: function () {\n\t return $('
    ').addClass('ui-form-element').append($('
    ').addClass('ui-form-error ui-error').append($('').addClass('fa fa-arrow-down')).append($('').addClass('ui-form-error-text'))).append($('
    ').addClass('ui-form-title').append($('
    ').addClass('ui-form-collapsible').append($('').addClass('ui-form-collapsible-icon')).append($('').addClass('ui-form-collapsible-text'))).append($('').addClass('ui-form-title-text'))).append($('
    ').addClass('ui-form-field').append($('').addClass('ui-form-info')).append($('
    ').addClass('ui-form-backdrop'))).append($('
    ').addClass('ui-form-preview'));\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 45 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {/**\n\t This class creates input elements. New input parameter types should be added to the types dictionary.\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(59), __webpack_require__(61), __webpack_require__(60), __webpack_require__(57)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, SelectContent, SelectLibrary, SelectFtp, ColorPicker) {\n\t\n\t // create form view\n\t return Backbone.Model.extend({\n\t /** Available parameter types */\n\t types: {\n\t 'text': '_fieldText',\n\t 'password': '_fieldText',\n\t 'select': '_fieldSelect',\n\t 'data_column': '_fieldSelect',\n\t 'genomebuild': '_fieldSelect',\n\t 'data': '_fieldData',\n\t 'data_collection': '_fieldData',\n\t 'integer': '_fieldSlider',\n\t 'float': '_fieldSlider',\n\t 'boolean': '_fieldBoolean',\n\t 'drill_down': '_fieldDrilldown',\n\t 'color': '_fieldColor',\n\t 'hidden': '_fieldHidden',\n\t 'hidden_data': '_fieldHidden',\n\t 'baseurl': '_fieldHidden',\n\t 'library_data': '_fieldLibrary',\n\t 'ftpfile': '_fieldFtp',\n\t 'upload': '_fieldUpload'\n\t },\n\t\n\t /** Returns an input field for a given field type */\n\t create: function (input_def) {\n\t var fieldClass = this.types[input_def.type];\n\t var field = typeof this[fieldClass] === 'function' ? this[fieldClass].call(this, input_def) : null;\n\t if (!field) {\n\t field = input_def.options ? this._fieldSelect(input_def) : this._fieldText(input_def);\n\t Galaxy.emit.debug('form-parameters::_addRow()', 'Auto matched field type (' + input_def.type + ').');\n\t }\n\t input_def.value === undefined && (input_def.value = null);\n\t field.value(input_def.value);\n\t return field;\n\t },\n\t\n\t /** Data input field */\n\t _fieldData: function (input_def) {\n\t return new SelectContent.View({\n\t id: 'field-' + input_def.id,\n\t extensions: input_def.extensions,\n\t optional: input_def.optional,\n\t multiple: input_def.multiple,\n\t type: input_def.type,\n\t flavor: input_def.flavor,\n\t data: input_def.options,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Select/Checkbox/Radio options field */\n\t _fieldSelect: function (input_def) {\n\t // show text field e.g. in workflow editor\n\t if (input_def.is_workflow) {\n\t return this._fieldText(input_def);\n\t }\n\t\n\t // customize properties\n\t if (input_def.type == 'data_column') {\n\t input_def.error_text = 'Missing columns in referenced dataset.';\n\t }\n\t\n\t // identify available options\n\t var data = input_def.data;\n\t if (!data) {\n\t data = [];\n\t _.each(input_def.options, function (option) {\n\t data.push({ label: option[0], value: option[1] });\n\t });\n\t }\n\t\n\t // identify display type\n\t var SelectClass = Ui.Select;\n\t switch (input_def.display) {\n\t case 'checkboxes':\n\t SelectClass = Ui.Checkbox;\n\t break;\n\t case 'radio':\n\t SelectClass = Ui.Radio;\n\t break;\n\t case 'radiobutton':\n\t SelectClass = Ui.RadioButton;\n\t break;\n\t }\n\t\n\t // create select field\n\t return new SelectClass.View({\n\t id: 'field-' + input_def.id,\n\t data: data,\n\t error_text: input_def.error_text || 'No options available',\n\t multiple: input_def.multiple,\n\t optional: input_def.optional,\n\t onchange: input_def.onchange,\n\t searchable: input_def.flavor !== 'workflow'\n\t });\n\t },\n\t\n\t /** Drill down options field */\n\t _fieldDrilldown: function (input_def) {\n\t // show text field e.g. in workflow editor\n\t if (input_def.is_workflow) {\n\t return this._fieldText(input_def);\n\t }\n\t\n\t // create drill down field\n\t return new Ui.Drilldown.View({\n\t id: 'field-' + input_def.id,\n\t data: input_def.options,\n\t display: input_def.display,\n\t optional: input_def.optional,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Text input field */\n\t _fieldText: function (input_def) {\n\t // field replaces e.g. a select field\n\t if (input_def.options && input_def.data) {\n\t input_def.area = input_def.multiple;\n\t if (Utils.isEmpty(input_def.value)) {\n\t input_def.value = null;\n\t } else {\n\t if ($.isArray(input_def.value)) {\n\t var str_value = '';\n\t for (var i in input_def.value) {\n\t str_value += String(input_def.value[i]);\n\t if (!input_def.multiple) {\n\t break;\n\t }\n\t str_value += '\\n';\n\t }\n\t input_def.value = str_value;\n\t }\n\t }\n\t }\n\t // create input element\n\t return new Ui.Input({\n\t id: 'field-' + input_def.id,\n\t type: input_def.type,\n\t area: input_def.area,\n\t readonly: input_def.readonly,\n\t placeholder: input_def.placeholder,\n\t datalist: input_def.datalist,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Slider field */\n\t _fieldSlider: function (input_def) {\n\t return new Ui.Slider.View({\n\t id: 'field-' + input_def.id,\n\t precise: input_def.type == 'float',\n\t is_workflow: input_def.is_workflow,\n\t min: input_def.min,\n\t max: input_def.max,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Hidden field */\n\t _fieldHidden: function (input_def) {\n\t return new Ui.Hidden({\n\t id: 'field-' + input_def.id,\n\t info: input_def.info\n\t });\n\t },\n\t\n\t /** Boolean field */\n\t _fieldBoolean: function (input_def) {\n\t return new Ui.RadioButton.View({\n\t id: 'field-' + input_def.id,\n\t data: [{ label: 'Yes', value: 'true' }, { label: 'No', value: 'false' }],\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Color picker field */\n\t _fieldColor: function (input_def) {\n\t return new ColorPicker({\n\t id: 'field-' + input_def.id,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Library dataset field */\n\t _fieldLibrary: function (input_def) {\n\t return new SelectLibrary.View({\n\t id: 'field-' + input_def.id,\n\t optional: input_def.optional,\n\t multiple: input_def.multiple,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** FTP file field */\n\t _fieldFtp: function (input_def) {\n\t return new SelectFtp.View({\n\t id: 'field-' + input_def.id,\n\t optional: input_def.optional,\n\t multiple: input_def.multiple,\n\t onchange: input_def.onchange\n\t });\n\t },\n\t\n\t /** Upload file field */\n\t _fieldUpload: function (input_def) {\n\t return new Ui.Upload({\n\t id: 'field-' + input_def.id,\n\t onchange: input_def.onchange\n\t });\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 46 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {/** This class creates a ui component which enables the dynamic creation of portlets */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(9), __webpack_require__(7)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Portlet, Ui) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t this.list = {};\n\t this.options = Utils.merge(options, {\n\t title: 'Repeat',\n\t empty_text: 'Not available.',\n\t max: null,\n\t min: null\n\t });\n\t this.button_new = new Ui.ButtonIcon({\n\t icon: 'fa-plus',\n\t title: 'Insert ' + this.options.title,\n\t tooltip: 'Add new ' + this.options.title + ' block',\n\t floating: 'clear',\n\t cls: 'ui-button-icon form-repeat-add',\n\t onclick: function () {\n\t options.onnew && options.onnew();\n\t }\n\t });\n\t this.setElement($('
    ').append(this.$list = $('
    ')).append($('
    ').append(this.button_new.$el)));\n\t },\n\t\n\t /** Number of repeat blocks */\n\t size: function () {\n\t return _.size(this.list);\n\t },\n\t\n\t /** Add new repeat block */\n\t add: function (options) {\n\t if (!options.id || this.list[options.id]) {\n\t Galaxy.emit.debug('form-repeat::add()', 'Duplicate or invalid repeat block id.');\n\t return;\n\t }\n\t var button_delete = new Ui.ButtonIcon({\n\t icon: 'fa-trash-o',\n\t tooltip: 'Delete this repeat block',\n\t cls: 'ui-button-icon-plain form-repeat-delete',\n\t onclick: function () {\n\t options.ondel && options.ondel();\n\t }\n\t });\n\t var portlet = new Portlet.View({\n\t id: options.id,\n\t title: 'placeholder',\n\t cls: options.cls || 'ui-portlet-repeat',\n\t operations: { button_delete: button_delete }\n\t });\n\t portlet.append(options.$el);\n\t portlet.$el.addClass('section-row').hide();\n\t this.list[options.id] = portlet;\n\t this.$list.append(portlet.$el.fadeIn('fast'));\n\t this.options.max > 0 && this.size() >= this.options.max && this.button_new.disable();\n\t this._refresh();\n\t },\n\t\n\t /** Delete repeat block */\n\t del: function (id) {\n\t if (!this.list[id]) {\n\t Galaxy.emit.debug('form-repeat::del()', 'Invalid repeat block id.');\n\t return;\n\t }\n\t this.$list.find('#' + id).remove();\n\t delete this.list[id];\n\t this.button_new.enable();\n\t this._refresh();\n\t },\n\t\n\t /** Remove all */\n\t delAll: function () {\n\t for (var id in this.list) {\n\t this.del(id);\n\t }\n\t },\n\t\n\t /** Hides add/del options */\n\t hideOptions: function () {\n\t this.button_new.$el.hide();\n\t _.each(this.list, function (portlet) {\n\t portlet.hideOperation('button_delete');\n\t });\n\t _.isEmpty(this.list) && this.$el.append($('
    ').addClass('ui-form-info').html(this.options.empty_text));\n\t },\n\t\n\t /** Refresh view */\n\t _refresh: function () {\n\t var index = 0;\n\t for (var id in this.list) {\n\t var portlet = this.list[id];\n\t portlet.title(++index + ': ' + this.options.title);\n\t portlet[this.size() > this.options.min ? 'showOperation' : 'hideOperation']('button_delete');\n\t }\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 47 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _, jQuery) {/**\n\t This class creates a form section and populates it with input elements. It also handles repeat blocks and conditionals by recursively creating new sub sections.\n\t*/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(9), __webpack_require__(46), __webpack_require__(44), __webpack_require__(45)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, Portlet, Repeat, InputElement, Parameters) {\n\t var View = Backbone.View.extend({\n\t initialize: function (app, options) {\n\t this.app = app;\n\t this.inputs = options.inputs;\n\t this.parameters = new Parameters();\n\t this.setElement($('
    '));\n\t this.render();\n\t },\n\t\n\t /** Render section view */\n\t render: function () {\n\t var self = this;\n\t this.$el.empty();\n\t _.each(this.inputs, function (input) {\n\t self.add(input);\n\t });\n\t },\n\t\n\t /** Add a new input element */\n\t add: function (input) {\n\t var input_def = jQuery.extend(true, {}, input);\n\t input_def.id = input.id = Utils.uid();\n\t this.app.input_list[input_def.id] = input_def;\n\t switch (input_def.type) {\n\t case 'conditional':\n\t this._addConditional(input_def);\n\t break;\n\t case 'repeat':\n\t this._addRepeat(input_def);\n\t break;\n\t case 'section':\n\t this._addSection(input_def);\n\t break;\n\t default:\n\t this._addRow(input_def);\n\t }\n\t },\n\t\n\t /** Add a conditional block */\n\t _addConditional: function (input_def) {\n\t var self = this;\n\t input_def.test_param.id = input_def.id;\n\t this.app.model.get('sustain_conditionals') && (input_def.test_param.disabled = true);\n\t var field = this._addRow(input_def.test_param);\n\t\n\t // set onchange event for test parameter\n\t field.model && field.model.set('onchange', function (value) {\n\t var selectedCase = self.app.data.matchCase(input_def, value);\n\t for (var i in input_def.cases) {\n\t var case_def = input_def.cases[i];\n\t var section_row = self.$('#' + input_def.id + '-section-' + i);\n\t var nonhidden = false;\n\t for (var j in case_def.inputs) {\n\t if (!case_def.inputs[j].hidden) {\n\t nonhidden = true;\n\t break;\n\t }\n\t }\n\t if (i == selectedCase && nonhidden) {\n\t section_row.fadeIn('fast');\n\t } else {\n\t section_row.hide();\n\t }\n\t }\n\t self.app.trigger('change');\n\t });\n\t\n\t // add conditional sub sections\n\t for (var i in input_def.cases) {\n\t var sub_section = new View(this.app, { inputs: input_def.cases[i].inputs });\n\t this._append(sub_section.$el.addClass('ui-form-section'), input_def.id + '-section-' + i);\n\t }\n\t\n\t // trigger refresh on conditional input field after all input elements have been created\n\t field.trigger('change');\n\t },\n\t\n\t /** Add a repeat block */\n\t _addRepeat: function (input_def) {\n\t var self = this;\n\t var block_index = 0;\n\t\n\t // create repeat block element\n\t var repeat = new Repeat.View({\n\t title: input_def.title || 'Repeat',\n\t min: input_def.min,\n\t max: input_def.max,\n\t onnew: function () {\n\t create(input_def.inputs);self.app.trigger('change');\n\t }\n\t });\n\t\n\t // helper function to create new repeat blocks\n\t function create(inputs) {\n\t var sub_section_id = input_def.id + '-section-' + block_index++;\n\t var sub_section = new View(self.app, { inputs: inputs });\n\t repeat.add({ id: sub_section_id,\n\t $el: sub_section.$el,\n\t ondel: function () {\n\t repeat.del(sub_section_id);self.app.trigger('change');\n\t } });\n\t }\n\t\n\t //\n\t // add parsed/minimum number of repeat blocks\n\t //\n\t var n_cache = _.size(input_def.cache);\n\t for (var i = 0; i < Math.max(Math.max(n_cache, input_def.min || 0), input_def.default || 0); i++) {\n\t create(i < n_cache ? input_def.cache[i] : input_def.inputs);\n\t }\n\t\n\t // hide options\n\t this.app.model.get('sustain_repeats') && repeat.hideOptions();\n\t\n\t // create input field wrapper\n\t var input_element = new InputElement(this.app, {\n\t label: input_def.title || input_def.name,\n\t help: input_def.help,\n\t field: repeat\n\t });\n\t this._append(input_element.$el, input_def.id);\n\t },\n\t\n\t /** Add a customized section */\n\t _addSection: function (input_def) {\n\t var portlet = new Portlet.View({\n\t title: input_def.title || input_def.name,\n\t cls: 'ui-portlet-section',\n\t collapsible: true,\n\t collapsible_button: true,\n\t collapsed: !input_def.expanded\n\t });\n\t portlet.append(new View(this.app, { inputs: input_def.inputs }).$el);\n\t portlet.append($('
    ').addClass('ui-form-info').html(input_def.help));\n\t this.app.on('expand', function (input_id) {\n\t portlet.$('#' + input_id).length > 0 && portlet.expand();\n\t });\n\t this._append(portlet.$el, input_def.id);\n\t },\n\t\n\t /** Add a single input field element */\n\t _addRow: function (input_def) {\n\t var self = this;\n\t var id = input_def.id;\n\t input_def.onchange = input_def.onchange || function () {\n\t self.app.trigger('change', id);\n\t };\n\t var field = this.parameters.create(input_def);\n\t this.app.field_list[id] = field;\n\t var input_element = new InputElement(this.app, {\n\t name: input_def.name,\n\t label: input_def.hide_label ? '' : input_def.label || input_def.name,\n\t value: input_def.value,\n\t text_value: input_def.text_value,\n\t collapsible_value: input_def.collapsible_value,\n\t collapsible_preview: input_def.collapsible_preview,\n\t help: input_def.help,\n\t argument: input_def.argument,\n\t disabled: input_def.disabled,\n\t color: input_def.color,\n\t style: input_def.style,\n\t backdrop: input_def.backdrop,\n\t hidden: input_def.hidden,\n\t fixed: input_def.fixed,\n\t field: field\n\t });\n\t this.app.element_list[id] = input_element;\n\t this._append(input_element.$el, input_def.id);\n\t return field;\n\t },\n\t\n\t /** Append a new element to the form i.e. input element, repeat block, conditionals etc. */\n\t _append: function ($el, id) {\n\t this.$el.append($el.addClass('section-row').attr('id', id));\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 48 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _, $) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\n\t // grid model\n\t return Backbone.Model.extend({\n\t defaults: {\n\t url_base: '',\n\t async: false,\n\t async_ops: [],\n\t categorical_filters: [],\n\t filters: {},\n\t sort_key: null,\n\t show_item_checkboxes: false,\n\t advanced_search: false,\n\t cur_page: 1,\n\t num_pages: 1,\n\t operation: undefined,\n\t item_ids: undefined\n\t },\n\t\n\t /**\n\t * Return true if operation can be done asynchronously.\n\t */\n\t can_async_op: function (op) {\n\t return _.indexOf(this.attributes.async_ops, op) !== -1;\n\t },\n\t\n\t /**\n\t * Add filtering criterion.\n\t */\n\t add_filter: function (key, value, append) {\n\t // Update URL arg with new condition. \n\t if (append) {\n\t // Update or append value.\n\t var cur_val = this.attributes.filters[key],\n\t new_val;\n\t if (cur_val === null || cur_val === undefined) {\n\t new_val = value;\n\t } else if (typeof cur_val == 'string') {\n\t if (cur_val == 'All') {\n\t new_val = value;\n\t } else {\n\t // Replace string with array.\n\t var values = [];\n\t values[0] = cur_val;\n\t values[1] = value;\n\t new_val = values;\n\t }\n\t } else {\n\t // Current value is an array.\n\t new_val = cur_val;\n\t new_val.push(value);\n\t }\n\t this.attributes.filters[key] = new_val;\n\t } else {\n\t // Replace value.\n\t this.attributes.filters[key] = value;\n\t }\n\t },\n\t\n\t /**\n\t * Remove filtering criterion.\n\t */\n\t remove_filter: function (key, condition) {\n\t var cur_val = this.attributes.filters[key];\n\t if (cur_val === null || cur_val === undefined) {\n\t return false;\n\t }\n\t\n\t if (typeof cur_val === 'string') {\n\t // overwrite/remove condition.\n\t this.attributes.filters[key] = '';\n\t } else {\n\t // filter contains an array of conditions.\n\t var condition_index = _.indexOf(cur_val, condition);\n\t if (condition_index !== -1) {\n\t cur_val[condition_index] = '';\n\t }\n\t }\n\t },\n\t\n\t /**\n\t * Returns URL data for obtaining a new grid.\n\t */\n\t get_url_data: function () {\n\t var url_data = {\n\t async: this.attributes.async,\n\t sort: this.attributes.sort_key,\n\t page: this.attributes.cur_page,\n\t show_item_checkboxes: this.attributes.show_item_checkboxes,\n\t advanced_search: this.attributes.advanced_search\n\t };\n\t\n\t // Add operation, item_ids only if they have values.\n\t if (this.attributes.operation) {\n\t url_data.operation = this.attributes.operation;\n\t }\n\t if (this.attributes.item_ids) {\n\t url_data.id = this.attributes.item_ids;\n\t }\n\t\n\t // Add filter arguments to data, placing \"f-\" in front of all arguments.\n\t var self = this;\n\t _.each(_.pairs(self.attributes.filters), function (k) {\n\t url_data['f-' + k[0]] = k[1];\n\t });\n\t return url_data;\n\t },\n\t\n\t // Return URL for obtaining a new grid\n\t get_url: function (args) {\n\t return this.get('url_base') + '?' + $.param(this.get_url_data()) + '&' + $.param(args);\n\t }\n\t\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 49 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(jQuery) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t\n\t // grid view templates\n\t return {\n\t // template\n\t grid: function (options) {\n\t var tmpl = '';\n\t if (options.embedded) {\n\t tmpl = this.grid_header(options) + this.grid_table(options);\n\t } else {\n\t tmpl = '
    ' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '' + '
    ' + this.grid_header(options) + '
    ' + this.grid_table(options);\n\t }\n\t\n\t // add info text\n\t if (options.info_text) {\n\t tmpl += '
    ' + options.info_text + '
    ';\n\t }\n\t\n\t // return\n\t return tmpl;\n\t },\n\t\n\t // template\n\t grid_table: function (options) {\n\t return '
    ' + '' + '' + '' + '' + '
    ' + '
    ';\n\t },\n\t\n\t // template\n\t grid_header: function (options) {\n\t var tmpl = '
    ';\n\t if (!options.embedded) {\n\t tmpl += '

    ' + options.title + '

    ';\n\t }\n\t if (options.global_actions) {\n\t tmpl += '
      ';\n\t var show_popup = options.global_actions.length >= 3;\n\t if (show_popup) {\n\t tmpl += '
    • Actions
    • ' + '
      ';\n\t }\n\t for (i in options.global_actions) {\n\t var action = options.global_actions[i];\n\t tmpl += '
    • ' + '' + action.label + '' + '
    • ';\n\t }\n\t if (show_popup) {\n\t tmpl += '
      ';\n\t }\n\t tmpl += '
    ';\n\t }\n\t if (options.insert) {\n\t tmpl += options.insert;\n\t }\n\t\n\t // add grid filters\n\t tmpl += this.grid_filters(options);\n\t tmpl += '
    ';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template\n\t header: function (options) {\n\t\n\t // start\n\t var tmpl = '';\n\t\n\t // add checkbox\n\t if (options.show_item_checkboxes) {\n\t tmpl += '';\n\t if (options.items.length > 0) {\n\t tmpl += '' + '';\n\t }\n\t tmpl += '';\n\t }\n\t\n\t // create header elements\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.visible) {\n\t tmpl += '';\n\t if (column.href) {\n\t tmpl += '' + column.label + '';\n\t } else {\n\t tmpl += column.label;\n\t }\n\t tmpl += '' + column.extra + '' + '';\n\t }\n\t }\n\t\n\t // finalize\n\t tmpl += '';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template\n\t body: function (options) {\n\t // initialize\n\t var tmpl = '';\n\t var num_rows_rendered = 0;\n\t var items_length = options.items.length;\n\t\n\t // empty grid?\n\t if (items_length == 0) {\n\t // No results.\n\t tmpl += 'No Items';\n\t num_rows_rendered = 1;\n\t }\n\t\n\t // create rows\n\t for (var i in options.items) {\n\t\n\t // encode ids\n\t var item = options.items[i];\n\t var encoded_id = item.encode_id;\n\t var popupmenu_id = 'grid-' + i + '-popup';\n\t\n\t // Tag current\n\t tmpl += '' + '';\n\t }\n\t\n\t // Data columns\n\t for (j in options.columns) {\n\t var column = options.columns[j];\n\t if (column.visible) {\n\t // Nowrap\n\t var nowrap = '';\n\t if (column.nowrap) {\n\t nowrap = 'style=\"white-space:nowrap;\"';\n\t }\n\t\n\t // get column settings\n\t var column_settings = item.column_config[column.label];\n\t\n\t // load attributes\n\t var link = column_settings.link;\n\t var value = column_settings.value;\n\t var target = column_settings.target;\n\t\n\t // unescape value\n\t if (jQuery.type(value) === 'string') {\n\t value = value.replace(/\\/\\//g, '/');\n\t }\n\t\n\t // Attach popup menu?\n\t var id = '';\n\t var cls = '';\n\t if (column.attach_popup) {\n\t id = 'grid-' + i + '-popup';\n\t cls = 'menubutton';\n\t if (link != '') {\n\t cls += ' split';\n\t }\n\t cls += ' popup';\n\t }\n\t\n\t // Check for row wrapping\n\t tmpl += '';\n\t\n\t // Link\n\t if (link) {\n\t if (options.operations.length != 0) {\n\t tmpl += '
    ';\n\t }\n\t tmpl += '' + value + '';\n\t if (options.operations.length != 0) {\n\t tmpl += '
    ';\n\t }\n\t } else {\n\t tmpl += '
    ';\n\t }\n\t tmpl += '';\n\t }\n\t }\n\t tmpl += '';\n\t num_rows_rendered++;\n\t }\n\t return tmpl;\n\t },\n\t\n\t // template\n\t footer: function (options) {\n\t\n\t // create template string\n\t var tmpl = '';\n\t\n\t // paging\n\t if (options.use_paging && options.num_pages > 1) {\n\t // get configuration\n\t var num_page_links = options.num_page_links;\n\t var cur_page_num = options.cur_page_num;\n\t var num_pages = options.num_pages;\n\t\n\t // First pass on min page.\n\t var page_link_range = num_page_links / 2;\n\t var min_page = cur_page_num - page_link_range;\n\t var min_offset = 0;\n\t if (min_page <= 0) {\n\t // Min page is too low.\n\t min_page = 1;\n\t min_offset = page_link_range - (cur_page_num - min_page);\n\t }\n\t\n\t // Set max page.\n\t var max_range = page_link_range + min_offset;\n\t var max_page = cur_page_num + max_range;\n\t if (max_page <= num_pages) {\n\t // Max page is fine.\n\t max_offset = 0;\n\t } else {\n\t // Max page is too high.\n\t max_page = num_pages;\n\t // +1 to account for the +1 in the loop below.\n\t max_offset = max_range - (max_page + 1 - cur_page_num);\n\t }\n\t\n\t // Second and final pass on min page to add any unused\n\t // offset from max to min.\n\t if (max_offset != 0) {\n\t min_page -= max_offset;\n\t if (min_page < 1) {\n\t min_page = 1;\n\t }\n\t }\n\t\n\t // template header\n\t tmpl += '';\n\t if (options.show_item_checkboxes) {\n\t tmpl += '';\n\t }\n\t tmpl += '' + '' + 'Page:';\n\t\n\t if (min_page > 1) {\n\t tmpl += '1 ...';\n\t }\n\t\n\t // create page urls\n\t for (var page_index = min_page; page_index < max_page + 1; page_index++) {\n\t\n\t if (page_index == options.cur_page_num) {\n\t tmpl += '' + page_index + '';\n\t } else {\n\t tmpl += '' + page_index + '';\n\t }\n\t }\n\t\n\t // show last page\n\t if (max_page < num_pages) {\n\t tmpl += '...' + '' + num_pages + '';\n\t }\n\t tmpl += '';\n\t\n\t // Show all link\n\t tmpl += ' | Show All' + '' + '';\n\t }\n\t\n\t // Grid operations for multiple items.\n\t if (options.show_item_checkboxes) {\n\t // start template\n\t tmpl += '' + '' + '' + '' + 'For selected items: ';\n\t\n\t // configure buttons for operations\n\t for (i in options.operations) {\n\t var operation = options.operations[i];\n\t if (operation.allow_multiple) {\n\t tmpl += ' ';\n\t }\n\t }\n\t\n\t // finalize template\n\t tmpl += '' + '';\n\t }\n\t\n\t // count global operations\n\t var found_global = false;\n\t for (i in options.operations) {\n\t if (options.operations[i].global_operation) {\n\t found_global = true;\n\t break;\n\t }\n\t }\n\t\n\t // add global operations\n\t if (found_global) {\n\t tmpl += '' + '';\n\t for (i in options.operations) {\n\t var operation = options.operations[i];\n\t if (operation.global_operation) {\n\t tmpl += '' + operation.label + '';\n\t }\n\t }\n\t tmpl += '' + '';\n\t }\n\t\n\t // add legend\n\t if (options.legend) {\n\t tmpl += '' + '' + options.legend + '' + '';\n\t }\n\t\n\t // return\n\t return tmpl;\n\t },\n\t\n\t // template\n\t message: function (options) {\n\t return '

    ' + '

    ' + options.message + '
    ' + '
    ' + '

    ';\n\t },\n\t\n\t // template\n\t grid_filters: function (options) {\n\t\n\t // get filters\n\t var default_filter_dict = options.default_filter_dict;\n\t var filters = options.filters;\n\t\n\t // show advanced search if flag set or if there are filters for advanced search fields\n\t var advanced_search_display = 'none';\n\t if (options.advanced_search) {\n\t advanced_search_display = 'block';\n\t }\n\t\n\t // identify columns with advanced filtering\n\t var show_advanced_search_link = false;\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.filterable == 'advanced') {\n\t var column_key = column.key;\n\t var f_key = filters[column_key];\n\t var d_key = default_filter_dict[column_key];\n\t if (f_key && d_key && f_key != d_key) {\n\t advanced_search_display = 'block';\n\t }\n\t show_advanced_search_link = true;\n\t }\n\t }\n\t\n\t // hide standard search if advanced is shown\n\t var standard_search_display = 'block';\n\t if (advanced_search_display == 'block') {\n\t standard_search_display = 'none';\n\t }\n\t\n\t //\n\t // standard search\n\t //\n\t var tmpl = '
    ' + '' + '' + '' + '' + '' + '' + '' + '
    ' + '';\n\t\n\t // add standard filters\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.filterable == 'standard') {\n\t tmpl += this.grid_column_filter(options, column);\n\t }\n\t }\n\t\n\t // finalize standard search\n\t tmpl += '
    ' + '
    ';\n\t\n\t // show advanced search link in standard display\n\t if (show_advanced_search_link) {\n\t tmpl += 'Advanced Search';\n\t }\n\t\n\t // finalize standard search display\n\t tmpl += '
    ' + '
    ';\n\t\n\t //\n\t // advanced search\n\t //\n\t tmpl += '
    ' + '' + '' + '' + '';\n\t\n\t // add advanced filters\n\t for (var i in options.columns) {\n\t var column = options.columns[i];\n\t if (column.filterable == 'advanced') {\n\t tmpl += this.grid_column_filter(options, column);\n\t }\n\t }\n\t\n\t // finalize advanced search template\n\t tmpl += '
    ' + 'Close Advanced Search' + '
    ' + '
    ';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template\n\t grid_column_filter: function (options, column) {\n\t\n\t // collect parameters\n\t var default_filter_dict = options.default_filter_dict;\n\t var filters = options.filters;\n\t var column_label = column.label;\n\t var column_key = column.key;\n\t if (column.filterable == 'advanced') {\n\t column_label = column_label.toLowerCase();\n\t }\n\t\n\t // start\n\t var tmpl = '';\n\t\n\t if (column.filterable == 'advanced') {\n\t tmpl += '' + column_label + ':';\n\t }\n\t tmpl += '';\n\t if (column.is_text) {\n\t tmpl += '
    ';\n\t // Carry forward filtering criteria with hidden inputs.\n\t for (i in options.columns) {\n\t var temp_column = options.columns[i];\n\t var filter_value = filters[temp_column.key];\n\t if (filter_value) {\n\t if (filter_value != 'All') {\n\t if (temp_column.is_text) {\n\t filter_value = JSON.stringify(filter_value);\n\t }\n\t tmpl += '';\n\t }\n\t }\n\t }\n\t // Print current filtering criteria and links to delete.\n\t tmpl += '';\n\t\n\t // add filters\n\t var column_filter = filters[column_key];\n\t if (column_filter) {\n\t // identify type\n\t var type = jQuery.type(column_filter);\n\t\n\t // single filter value\n\t if (type == 'string') {\n\t if (column_filter != 'All') {\n\t // append template\n\t tmpl += this.filter_element(column_key, column_filter);\n\t }\n\t }\n\t\n\t // multiple filter values\n\t if (type == 'array') {\n\t for (var i in column_filter) {\n\t // get filter\n\t var filter = column_filter[i];\n\t\n\t // copy filters and remove entry\n\t var params = column_filter;\n\t params = params.slice(i);\n\t\n\t // append template\n\t tmpl += this.filter_element(column_key, filter);\n\t }\n\t }\n\t }\n\t\n\t // close span\n\t tmpl += '';\n\t\n\t // Set value, size of search input field. Minimum size is 20 characters.\n\t var value = '';\n\t if (column.filterable == 'standard') {\n\t value = column.label.toLowerCase();\n\t var size = value.length;\n\t if (size < 20) {\n\t size = 20;\n\t }\n\t // +4 to account for space after placeholder\n\t size = size + 4;\n\t }\n\t\n\t // print input field for column\n\t tmpl += '' + '' + '' + '' + '
    ';\n\t } else {\n\t // filter criteria\n\t tmpl += '';\n\t\n\t // add category filters\n\t var seperator = false;\n\t for (cf_label in options.categorical_filters[column_key]) {\n\t // get category filter\n\t var cf = options.categorical_filters[column_key][cf_label];\n\t\n\t // each filter will have only a single argument, so get that single argument\n\t var cf_key = '';\n\t var cf_arg = '';\n\t for (key in cf) {\n\t cf_key = key;\n\t cf_arg = cf[key];\n\t }\n\t\n\t // add seperator\n\t if (seperator) {\n\t tmpl += ' | ';\n\t }\n\t seperator = true;\n\t\n\t // add category\n\t var filter = filters[column_key];\n\t if (filter && cf[column_key] && filter == cf_arg) {\n\t tmpl += '' + cf_label + '';\n\t } else {\n\t tmpl += '' + '' + cf_label + '' + '';\n\t }\n\t }\n\t tmpl += '';\n\t }\n\t tmpl += '' + '';\n\t\n\t // return template\n\t return tmpl;\n\t },\n\t\n\t // template for filter items\n\t filter_element: function (filter_key, filter_value) {\n\t filter_value = Utils.sanitize(filter_value);\n\t return '' + filter_value + '' + '' + '' + '';\n\t }\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\n\n/***/ },\n/* 50 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(41), __webpack_require__(86), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (DC_MODEL, HISTORY_CONTENT, _l) {\n\t\n\t 'use strict';\n\t\n\t /*==============================================================================\n\t \n\t Models for DatasetCollections contained within a history.\n\t \n\t TODO:\n\t these might be compactable to one class if some duplication with\n\t collection-model is used.\n\t \n\t ==============================================================================*/\n\t\n\t var hcontentMixin = HISTORY_CONTENT.HistoryContentMixin,\n\t ListDC = DC_MODEL.ListDatasetCollection,\n\t PairDC = DC_MODEL.PairDatasetCollection,\n\t ListPairedDC = DC_MODEL.ListPairedDatasetCollection,\n\t ListOfListsDC = DC_MODEL.ListOfListsDatasetCollection;\n\t\n\t //==============================================================================\n\t /** Override to post to contents route w/o id. */\n\t function buildHDCASave(_super) {\n\t return function _save(attributes, options) {\n\t if (this.isNew()) {\n\t options = options || {};\n\t options.url = this.urlRoot + this.get('history_id') + '/contents';\n\t attributes = attributes || {};\n\t attributes.type = 'dataset_collection';\n\t }\n\t return _super.call(this, attributes, options);\n\t };\n\t }\n\t\n\t //==============================================================================\n\t /** @class Backbone model for List Dataset Collection within a History.\n\t */\n\t var HistoryListDatasetCollection = ListDC.extend(hcontentMixin).extend(\n\t /** @lends HistoryListDatasetCollection.prototype */{\n\t\n\t defaults: _.extend(_.clone(ListDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'list',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(ListDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'History' + ListDC.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for Pair Dataset Collection within a History.\n\t * @constructs\n\t */\n\t var HistoryPairDatasetCollection = PairDC.extend(hcontentMixin).extend(\n\t /** @lends HistoryPairDatasetCollection.prototype */{\n\t\n\t defaults: _.extend(_.clone(PairDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'paired',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(PairDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'History' + PairDC.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for List of Pairs Dataset Collection within a History. */\n\t var HistoryListPairedDatasetCollection = ListPairedDC.extend(hcontentMixin).extend({\n\t\n\t defaults: _.extend(_.clone(ListPairedDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'list:paired',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(ListPairedDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return 'History' + ListPairedDC.prototype.toString.call(this);\n\t }\n\t });\n\t\n\t //==============================================================================\n\t /** @class Backbone model for List of Lists Dataset Collection within a History. */\n\t var HistoryListOfListsDatasetCollection = ListOfListsDC.extend(hcontentMixin).extend({\n\t\n\t defaults: _.extend(_.clone(ListOfListsDC.prototype.defaults), {\n\t history_content_type: 'dataset_collection',\n\t collection_type: 'list:list',\n\t model_class: 'HistoryDatasetCollectionAssociation'\n\t }),\n\t\n\t /** Override to post to contents route w/o id. */\n\t save: buildHDCASave(ListOfListsDC.prototype.save),\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['HistoryListOfListsDatasetCollection(', this.get('name'), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t HistoryListDatasetCollection: HistoryListDatasetCollection,\n\t HistoryPairDatasetCollection: HistoryPairDatasetCollection,\n\t HistoryListPairedDatasetCollection: HistoryListPairedDatasetCollection,\n\t HistoryListOfListsDatasetCollection: HistoryListOfListsDatasetCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ },\n/* 51 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_, jQuery, Backbone) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(77), __webpack_require__(84), __webpack_require__(50), __webpack_require__(53), __webpack_require__(6), __webpack_require__(147)], __WEBPACK_AMD_DEFINE_RESULT__ = function (CONTROLLED_FETCH_COLLECTION, HDA_MODEL, HDCA_MODEL, HISTORY_PREFS, BASE_MVC, AJAX_QUEUE) {\n\t 'use strict';\n\t\n\t //==============================================================================\n\t\n\t var _super = CONTROLLED_FETCH_COLLECTION.PaginatedCollection;\n\t /** @class Backbone collection for history content.\n\t * NOTE: history content seems like a dataset collection, but differs in that it is mixed:\n\t * each element can be either an HDA (dataset) or a DatasetCollection and co-exist on\n\t * the same level.\n\t * Dataset collections on the other hand are not mixed and (so far) can only contain either\n\t * HDAs or child dataset collections on one level.\n\t * This is why this does not inherit from any of the DatasetCollections (currently).\n\t */\n\t var HistoryContents = _super.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: 'history',\n\t\n\t // ........................................................................ composite collection\n\t /** since history content is a mix, override model fn into a factory, creating based on history_content_type */\n\t model: function (attrs, options) {\n\t if (attrs.history_content_type === \"dataset\") {\n\t return new HDA_MODEL.HistoryDatasetAssociation(attrs, options);\n\t } else if (attrs.history_content_type === \"dataset_collection\") {\n\t switch (attrs.collection_type) {\n\t case 'list':\n\t return new HDCA_MODEL.HistoryListDatasetCollection(attrs, options);\n\t case 'paired':\n\t return new HDCA_MODEL.HistoryPairDatasetCollection(attrs, options);\n\t case 'list:paired':\n\t return new HDCA_MODEL.HistoryListPairedDatasetCollection(attrs, options);\n\t case 'list:list':\n\t return new HDCA_MODEL.HistoryListOfListsDatasetCollection(attrs, options);\n\t }\n\t // This is a hack inside a hack:\n\t // Raise a plain object with validationError to fake a model.validationError\n\t // (since we don't have a model to use validate with)\n\t // (the outer hack being the mixed content/model function in this collection)\n\t var msg = 'Unknown collection_type: ' + attrs.collection_type;\n\t console.warn(msg, attrs);\n\t return { validationError: msg };\n\t }\n\t return { validationError: 'Unknown history_content_type: ' + attrs.history_content_type };\n\t },\n\t\n\t // ........................................................................ set up\n\t limitPerPage: 500,\n\t\n\t /** @type {Integer} how many contents per call to fetch when using progressivelyFetchDetails */\n\t limitPerProgressiveFetch: 500,\n\t\n\t /** @type {String} order used here and when fetching from server */\n\t order: 'hid',\n\t\n\t /** root api url */\n\t urlRoot: Galaxy.root + 'api/histories',\n\t\n\t /** complete api url */\n\t url: function () {\n\t return this.urlRoot + '/' + this.historyId + '/contents';\n\t },\n\t\n\t /** Set up */\n\t initialize: function (models, options) {\n\t options = options || {};\n\t _super.prototype.initialize.call(this, models, options);\n\t\n\t this.history = options.history || null;\n\t this.setHistoryId(options.historyId || null);\n\t /** @type {Boolean} does this collection contain and fetch deleted elements */\n\t this.includeDeleted = options.includeDeleted || this.includeDeleted;\n\t /** @type {Boolean} does this collection contain and fetch non-visible elements */\n\t this.includeHidden = options.includeHidden || this.includeHidden;\n\t\n\t // backbonejs uses collection.model.prototype.idAttribute to determine if a model is *already* in a collection\n\t // and either merged or replaced. In this case, our 'model' is a function so we need to add idAttribute\n\t // manually here - if we don't, contents will not merge but be replaced/swapped.\n\t this.model.prototype.idAttribute = 'type_id';\n\t },\n\t\n\t setHistoryId: function (newId) {\n\t this.historyId = newId;\n\t this._setUpWebStorage();\n\t },\n\t\n\t /** Set up client side storage. Currently PersistanStorage keyed under 'history:' */\n\t _setUpWebStorage: function (initialSettings) {\n\t // TODO: use initialSettings\n\t if (!this.historyId) {\n\t return;\n\t }\n\t this.storage = new HISTORY_PREFS.HistoryPrefs({\n\t id: HISTORY_PREFS.HistoryPrefs.historyStorageKey(this.historyId)\n\t });\n\t this.trigger('new-storage', this.storage, this);\n\t\n\t this.on({\n\t 'include-deleted': function (newVal) {\n\t this.storage.includeDeleted(newVal);\n\t },\n\t 'include-hidden': function (newVal) {\n\t this.storage.includeHidden(newVal);\n\t }\n\t });\n\t\n\t this.includeDeleted = this.storage.includeDeleted() || false;\n\t this.includeHidden = this.storage.includeHidden() || false;\n\t return this;\n\t },\n\t\n\t // ........................................................................ common queries\n\t /** @type {Object} map of collection available sorting orders containing comparator fns */\n\t comparators: _.extend(_.clone(_super.prototype.comparators), {\n\t 'name': BASE_MVC.buildComparator('name', { ascending: true }),\n\t 'name-dsc': BASE_MVC.buildComparator('name', { ascending: false }),\n\t 'hid': BASE_MVC.buildComparator('hid', { ascending: false }),\n\t 'hid-asc': BASE_MVC.buildComparator('hid', { ascending: true })\n\t }),\n\t\n\t /** Get every model in this collection not in a 'ready' state (running). */\n\t running: function () {\n\t return this.filter(function (c) {\n\t return !c.inReadyState();\n\t });\n\t },\n\t\n\t /** return contents that are not ready and not deleted/hidden */\n\t runningAndActive: function () {\n\t return this.filter(function (c) {\n\t return !c.inReadyState() && c.get('visible')\n\t // TODO: deletedOrPurged?\n\t && !c.get('deleted');\n\t });\n\t },\n\t\n\t /** Get the model with the given hid\n\t * @param {Int} hid the hid to search for\n\t * @returns {HistoryDatasetAssociation} the model with the given hid or undefined if not found\n\t */\n\t getByHid: function (hid) {\n\t // note: there *can* be more than one content with a given hid, this finds the first based on order\n\t return this.findWhere({ hid: hid });\n\t },\n\t\n\t /** return true if all contents have details */\n\t haveDetails: function () {\n\t return this.all(function (c) {\n\t return c.hasDetails();\n\t });\n\t },\n\t\n\t // ........................................................................ hidden / deleted\n\t /** return a new contents collection of only hidden items */\n\t hidden: function () {\n\t return this.filter(function (c) {\n\t return c.hidden();\n\t });\n\t },\n\t\n\t /** return a new contents collection of only hidden items */\n\t deleted: function () {\n\t return this.filter(function (c) {\n\t return c.get('deleted');\n\t });\n\t },\n\t\n\t /** return a new contents collection of only hidden items */\n\t visibleAndUndeleted: function () {\n\t return this.filter(function (c) {\n\t return c.get('visible') &&\n\t // TODO: deletedOrPurged?\n\t !c.get('deleted');\n\t });\n\t },\n\t\n\t /** create a setter in order to publish the change */\n\t setIncludeDeleted: function (setting, options) {\n\t if (_.isBoolean(setting) && setting !== this.includeDeleted) {\n\t this.includeDeleted = setting;\n\t if (_.result(options, 'silent')) {\n\t return;\n\t }\n\t this.trigger('include-deleted', setting, this);\n\t }\n\t },\n\t\n\t /** create a setter in order to publish the change */\n\t setIncludeHidden: function (setting, options) {\n\t if (_.isBoolean(setting) && setting !== this.includeHidden) {\n\t this.includeHidden = setting;\n\t options = options || {};\n\t if (_.result(options, 'silent')) {\n\t return;\n\t }\n\t this.trigger('include-hidden', setting, this);\n\t }\n\t },\n\t\n\t // ........................................................................ ajax\n\t // ............ controlled fetch collection\n\t /** override to get expanded ids from sessionStorage and pass to API as details */\n\t fetch: function (options) {\n\t options = options || {};\n\t if (this.historyId && !options.details) {\n\t var prefs = HISTORY_PREFS.HistoryPrefs.get(this.historyId).toJSON();\n\t if (!_.isEmpty(prefs.expandedIds)) {\n\t options.details = _.values(prefs.expandedIds).join(',');\n\t }\n\t }\n\t return _super.prototype.fetch.call(this, options);\n\t },\n\t\n\t // ............. ControlledFetch stuff\n\t /** override to include the API versioning flag */\n\t _buildFetchData: function (options) {\n\t return _.extend(_super.prototype._buildFetchData.call(this, options), {\n\t v: 'dev'\n\t });\n\t },\n\t\n\t /** Extend to include details and version */\n\t _fetchParams: _super.prototype._fetchParams.concat([\n\t // TODO: remove (the need for) both\n\t /** version */\n\t 'v',\n\t /** dataset ids to get full details of */\n\t 'details']),\n\t\n\t /** override to add deleted/hidden filters */\n\t _buildFetchFilters: function (options) {\n\t var superFilters = _super.prototype._buildFetchFilters.call(this, options) || {};\n\t var filters = {};\n\t if (!this.includeDeleted) {\n\t filters.deleted = false;\n\t filters.purged = false;\n\t }\n\t if (!this.includeHidden) {\n\t filters.visible = true;\n\t }\n\t return _.defaults(superFilters, filters);\n\t },\n\t\n\t // ............ paginated collection\n\t getTotalItemCount: function () {\n\t return this.history.contentsShown();\n\t },\n\t\n\t // ............ history contents specific ajax\n\t /** override to filter requested contents to those updated after the Date 'since' */\n\t fetchUpdated: function (since, options) {\n\t if (since) {\n\t options = options || { filters: {} };\n\t options.remove = false;\n\t options.filters = {\n\t 'update_time-ge': since.toISOString(),\n\t // workflows will produce hidden datasets (non-output datasets) that still\n\t // need to be updated in the collection or they'll update forever\n\t // we can remove the default visible filter by using an 'empty' value\n\t visible: ''\n\t };\n\t }\n\t return this.fetch(options);\n\t },\n\t\n\t /** fetch all the deleted==true contents of this collection */\n\t fetchDeleted: function (options) {\n\t options = options || {};\n\t var self = this;\n\t options.filters = _.extend(options.filters, {\n\t // all deleted, purged or not\n\t deleted: true,\n\t purged: undefined\n\t });\n\t options.remove = false;\n\t\n\t self.trigger('fetching-deleted', self);\n\t return self.fetch(options).always(function () {\n\t self.trigger('fetching-deleted-done', self);\n\t });\n\t },\n\t\n\t /** fetch all the visible==false contents of this collection */\n\t fetchHidden: function (options) {\n\t options = options || {};\n\t var self = this;\n\t options.filters = _.extend(options.filters, {\n\t visible: false\n\t });\n\t options.remove = false;\n\t\n\t self.trigger('fetching-hidden', self);\n\t return self.fetch(options).always(function () {\n\t self.trigger('fetching-hidden-done', self);\n\t });\n\t },\n\t\n\t /** fetch detailed model data for all contents in this collection */\n\t fetchAllDetails: function (options) {\n\t options = options || {};\n\t var detailsFlag = { details: 'all' };\n\t options.data = _.extend(options.data || {}, detailsFlag);\n\t return this.fetch(options);\n\t },\n\t\n\t /** specialty fetch method for retrieving the element_counts of all hdcas in the history */\n\t fetchCollectionCounts: function (options) {\n\t options = options || {};\n\t options.keys = ['type_id', 'element_count'].join(',');\n\t options.filters = _.extend(options.filters || {}, {\n\t history_content_type: 'dataset_collection'\n\t });\n\t options.remove = false;\n\t return this.fetch(options);\n\t },\n\t\n\t // ............. quasi-batch ops\n\t // TODO: to batch\n\t /** helper that fetches using filterParams then calls save on each fetched using updateWhat as the save params */\n\t _filterAndUpdate: function (filterParams, updateWhat) {\n\t var self = this;\n\t var idAttribute = self.model.prototype.idAttribute;\n\t var updateArgs = [updateWhat];\n\t\n\t return self.fetch({ filters: filterParams, remove: false }).then(function (fetched) {\n\t // convert filtered json array to model array\n\t fetched = fetched.reduce(function (modelArray, currJson, i) {\n\t var model = self.get(currJson[idAttribute]);\n\t return model ? modelArray.concat(model) : modelArray;\n\t }, []);\n\t return self.ajaxQueue('save', updateArgs, fetched);\n\t });\n\t },\n\t\n\t /** using a queue, perform ajaxFn on each of the models in this collection */\n\t ajaxQueue: function (ajaxFn, args, collection) {\n\t collection = collection || this.models;\n\t return new AJAX_QUEUE.AjaxQueue(collection.slice().reverse().map(function (content, i) {\n\t var fn = _.isString(ajaxFn) ? content[ajaxFn] : ajaxFn;\n\t return function () {\n\t return fn.apply(content, args);\n\t };\n\t })).deferred;\n\t },\n\t\n\t /** fetch contents' details in batches of limitPerCall - note: only get searchable details here */\n\t progressivelyFetchDetails: function (options) {\n\t options = options || {};\n\t var deferred = jQuery.Deferred();\n\t var self = this;\n\t var limit = options.limitPerCall || self.limitPerProgressiveFetch;\n\t // TODO: only fetch tags and annotations if specifically requested\n\t var searchAttributes = HDA_MODEL.HistoryDatasetAssociation.prototype.searchAttributes;\n\t var detailKeys = searchAttributes.join(',');\n\t\n\t function _recursivelyFetch(offset) {\n\t offset = offset || 0;\n\t var _options = _.extend(_.clone(options), {\n\t view: 'summary',\n\t keys: detailKeys,\n\t limit: limit,\n\t offset: offset,\n\t reset: offset === 0,\n\t remove: false\n\t });\n\t\n\t _.defer(function () {\n\t self.fetch.call(self, _options).fail(deferred.reject).done(function (response) {\n\t deferred.notify(response, limit, offset);\n\t if (response.length !== limit) {\n\t self.allFetched = true;\n\t deferred.resolve(response, limit, offset);\n\t } else {\n\t _recursivelyFetch(offset + limit);\n\t }\n\t });\n\t });\n\t }\n\t _recursivelyFetch();\n\t return deferred;\n\t },\n\t\n\t /** does some bit of JSON represent something that can be copied into this contents collection */\n\t isCopyable: function (contentsJSON) {\n\t var copyableModelClasses = ['HistoryDatasetAssociation', 'HistoryDatasetCollectionAssociation'];\n\t return _.isObject(contentsJSON) && contentsJSON.id && _.contains(copyableModelClasses, contentsJSON.model_class);\n\t },\n\t\n\t /** copy an existing, accessible hda into this collection */\n\t copy: function (json) {\n\t // TODO: somehow showhorn all this into 'save'\n\t var id, type, contentType;\n\t if (_.isString(json)) {\n\t id = json;\n\t contentType = 'hda';\n\t type = 'dataset';\n\t } else {\n\t id = json.id;\n\t contentType = {\n\t 'HistoryDatasetAssociation': 'hda',\n\t 'LibraryDatasetDatasetAssociation': 'ldda',\n\t 'HistoryDatasetCollectionAssociation': 'hdca'\n\t }[json.model_class] || 'hda';\n\t type = contentType === 'hdca' ? 'dataset_collection' : 'dataset';\n\t }\n\t var collection = this,\n\t xhr = jQuery.ajax(this.url(), {\n\t method: 'POST',\n\t contentType: 'application/json',\n\t data: JSON.stringify({\n\t content: id,\n\t source: contentType,\n\t type: type\n\t })\n\t }).done(function (response) {\n\t collection.add([response], { parse: true });\n\t }).fail(function (error, status, message) {\n\t collection.trigger('error', collection, xhr, {}, 'Error copying contents', { type: type, id: id, source: contentType });\n\t });\n\t return xhr;\n\t },\n\t\n\t /** create a new HDCA in this collection */\n\t createHDCA: function (elementIdentifiers, collectionType, name, hideSourceItems, options) {\n\t // normally collection.create returns the new model, but we need the promise from the ajax, so we fake create\n\t //precondition: elementIdentifiers is an array of plain js objects\n\t // in the proper form to create the collectionType\n\t var hdca = this.model({\n\t history_content_type: 'dataset_collection',\n\t collection_type: collectionType,\n\t history_id: this.historyId,\n\t name: name,\n\t hide_source_items: hideSourceItems || false,\n\t // should probably be able to just send in a bunch of json here and restruct per class\n\t // note: element_identifiers is now (incorrectly) an attribute\n\t element_identifiers: elementIdentifiers\n\t // do not create the model on the client until the ajax returns\n\t });\n\t return hdca.save(options);\n\t },\n\t\n\t // ........................................................................ searching\n\t /** return true if all contents have the searchable attributes */\n\t haveSearchDetails: function () {\n\t return this.allFetched && this.all(function (content) {\n\t // null (which is a valid returned annotation value)\n\t // will return false when using content.has( 'annotation' )\n\t //TODO: a bit hacky - formalize\n\t return _.has(content.attributes, 'annotation');\n\t });\n\t },\n\t\n\t /** return a new collection of contents whose attributes contain the substring matchesWhat */\n\t matches: function (matchesWhat) {\n\t return this.filter(function (content) {\n\t return content.matches(matchesWhat);\n\t });\n\t },\n\t\n\t // ........................................................................ misc\n\t /** In this override, copy the historyId to the clone */\n\t clone: function () {\n\t var clone = Backbone.Collection.prototype.clone.call(this);\n\t clone.historyId = this.historyId;\n\t return clone;\n\t },\n\t\n\t /** String representation. */\n\t toString: function () {\n\t return ['HistoryContents(', [this.historyId, this.length].join(), ')'].join('');\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t HistoryContents: HistoryContents\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2), __webpack_require__(1), __webpack_require__(3)))\n\n/***/ },\n/* 52 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, jQuery, _, $) {\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(51), __webpack_require__(53), __webpack_require__(77), __webpack_require__(4), __webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (HISTORY_CONTENTS, HISTORY_PREFS, CONTROLLED_FETCH_COLLECTION, UTILS, BASE_MVC, _l) {\n\t 'use strict';\n\t\n\t //==============================================================================\n\t /** @class Model for a Galaxy history resource - both a record of user\n\t * tool use and a collection of the datasets those tools produced.\n\t * @name History\n\t * @augments Backbone.Model\n\t */\n\t\n\t var History = Backbone.Model.extend(BASE_MVC.LoggableMixin).extend(BASE_MVC.mixin(BASE_MVC.SearchableModelMixin, /** @lends History.prototype */{\n\t _logNamespace: 'history',\n\t\n\t /** ms between fetches when checking running jobs/datasets for updates */\n\t UPDATE_DELAY: 4000,\n\t\n\t // values from api (may need more)\n\t defaults: {\n\t model_class: 'History',\n\t id: null,\n\t name: 'Unnamed History',\n\t state: 'new',\n\t\n\t deleted: false,\n\t contents_active: {},\n\t contents_states: {}\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/histories',\n\t\n\t contentsClass: HISTORY_CONTENTS.HistoryContents,\n\t\n\t /** What model fields to search with */\n\t searchAttributes: ['name', 'annotation', 'tags'],\n\t\n\t /** Adding title and singular tag */\n\t searchAliases: {\n\t title: 'name',\n\t tag: 'tags'\n\t },\n\t\n\t // ........................................................................ set up/tear down\n\t /** Set up the model\n\t * @param {Object} historyJSON model data for this History\n\t * @param {Object} options any extra settings including logger\n\t */\n\t initialize: function (historyJSON, options) {\n\t options = options || {};\n\t this.logger = options.logger || null;\n\t this.log(this + \".initialize:\", historyJSON, options);\n\t\n\t /** HistoryContents collection of the HDAs contained in this history. */\n\t this.contents = new this.contentsClass([], {\n\t history: this,\n\t historyId: this.get('id'),\n\t order: options.order\n\t });\n\t\n\t this._setUpListeners();\n\t this._setUpCollectionListeners();\n\t\n\t /** cached timeout id for the dataset updater */\n\t this.updateTimeoutId = null;\n\t },\n\t\n\t /** set up any event listeners for this history including those to the contained HDAs\n\t * events: error:contents if an error occurred with the contents collection\n\t */\n\t _setUpListeners: function () {\n\t // if the model's id changes ('current' or null -> an actual id), update the contents history_id\n\t return this.on({\n\t 'error': function (model, xhr, options, msg, details) {\n\t this.clearUpdateTimeout();\n\t },\n\t 'change:id': function (model, newId) {\n\t if (this.contents) {\n\t this.contents.historyId = newId;\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** event handlers for the contents submodels */\n\t _setUpCollectionListeners: function () {\n\t if (!this.contents) {\n\t return this;\n\t }\n\t // bubble up errors\n\t return this.listenTo(this.contents, {\n\t 'error': function () {\n\t this.trigger.apply(this, jQuery.makeArray(arguments));\n\t }\n\t });\n\t },\n\t\n\t // ........................................................................ derived attributes\n\t /** */\n\t contentsShown: function () {\n\t var contentsActive = this.get('contents_active');\n\t var shown = contentsActive.active || 0;\n\t shown += this.contents.includeDeleted ? contentsActive.deleted : 0;\n\t shown += this.contents.includeHidden ? contentsActive.hidden : 0;\n\t return shown;\n\t },\n\t\n\t /** convert size in bytes to a more human readable version */\n\t nice_size: function () {\n\t var size = this.get('size');\n\t return size ? UTILS.bytesToString(size, true, 2) : _l('(empty)');\n\t },\n\t\n\t /** override to add nice_size */\n\t toJSON: function () {\n\t return _.extend(Backbone.Model.prototype.toJSON.call(this), {\n\t nice_size: this.nice_size()\n\t });\n\t },\n\t\n\t /** override to allow getting nice_size */\n\t get: function (key) {\n\t if (key === 'nice_size') {\n\t return this.nice_size();\n\t }\n\t return Backbone.Model.prototype.get.apply(this, arguments);\n\t },\n\t\n\t // ........................................................................ common queries\n\t /** T/F is this history owned by the current user (Galaxy.user)\n\t * Note: that this will return false for an anon user even if the history is theirs.\n\t */\n\t ownedByCurrUser: function () {\n\t // no currUser\n\t if (!Galaxy || !Galaxy.user) {\n\t return false;\n\t }\n\t // user is anon or history isn't owned\n\t if (Galaxy.user.isAnonymous() || Galaxy.user.id !== this.get('user_id')) {\n\t return false;\n\t }\n\t return true;\n\t },\n\t\n\t /** Return the number of running jobs assoc with this history (note: unknown === 0) */\n\t numOfUnfinishedJobs: function () {\n\t var unfinishedJobIds = this.get('non_ready_jobs');\n\t return unfinishedJobIds ? unfinishedJobIds.length : 0;\n\t },\n\t\n\t /** Return the number of running hda/hdcas in this history (note: unknown === 0) */\n\t numOfUnfinishedShownContents: function () {\n\t return this.contents.runningAndActive().length || 0;\n\t },\n\t\n\t // ........................................................................ updates\n\t _fetchContentRelatedAttributes: function () {\n\t var contentRelatedAttrs = ['size', 'non_ready_jobs', 'contents_active', 'hid_counter'];\n\t return this.fetch({ data: $.param({ keys: contentRelatedAttrs.join(',') }) });\n\t },\n\t\n\t /** check for any changes since the last time we updated (or fetch all if ) */\n\t refresh: function (options) {\n\t // console.log( this + '.refresh' );\n\t options = options || {};\n\t var self = this;\n\t\n\t // note if there was no previous update time, all summary contents will be fetched\n\t var lastUpdateTime = self.lastUpdateTime;\n\t // if we don't flip this, then a fully-fetched list will not be re-checked via fetch\n\t this.contents.allFetched = false;\n\t var fetchFn = self.contents.currentPage !== 0 ? function () {\n\t return self.contents.fetchPage(self.contents.currentPage);\n\t } : function () {\n\t return self.contents.fetchUpdated(lastUpdateTime);\n\t };\n\t // note: if there was no previous update time, all summary contents will be fetched\n\t return fetchFn().done(function (response, status, xhr) {\n\t var serverResponseDatetime;\n\t try {\n\t serverResponseDatetime = new Date(xhr.getResponseHeader('Date'));\n\t } catch (err) {}\n\t self.lastUpdateTime = serverResponseDatetime || new Date();\n\t self.checkForUpdates(options);\n\t });\n\t },\n\t\n\t /** continuously fetch updated contents every UPDATE_DELAY ms if this history's datasets or jobs are unfinished */\n\t checkForUpdates: function (options) {\n\t // console.log( this + '.checkForUpdates' );\n\t options = options || {};\n\t var delay = this.UPDATE_DELAY;\n\t var self = this;\n\t if (!self.id) {\n\t return;\n\t }\n\t\n\t function _delayThenUpdate() {\n\t // prevent buildup of updater timeouts by clearing previous if any, then set new and cache id\n\t self.clearUpdateTimeout();\n\t self.updateTimeoutId = setTimeout(function () {\n\t self.refresh(options);\n\t }, delay);\n\t }\n\t\n\t // if there are still datasets in the non-ready state, recurse into this function with the new time\n\t var nonReadyContentCount = this.numOfUnfinishedShownContents();\n\t // console.log( 'nonReadyContentCount:', nonReadyContentCount );\n\t if (nonReadyContentCount > 0) {\n\t _delayThenUpdate();\n\t } else {\n\t // no datasets are running, but currently runnning jobs may still produce new datasets\n\t // see if the history has any running jobs and continue to update if so\n\t // (also update the size for the user in either case)\n\t self._fetchContentRelatedAttributes().done(function (historyData) {\n\t // console.log( 'non_ready_jobs:', historyData.non_ready_jobs );\n\t if (self.numOfUnfinishedJobs() > 0) {\n\t _delayThenUpdate();\n\t } else {\n\t // otherwise, let listeners know that all updates have stopped\n\t self.trigger('ready');\n\t }\n\t });\n\t }\n\t },\n\t\n\t /** clear the timeout and the cached timeout id */\n\t clearUpdateTimeout: function () {\n\t if (this.updateTimeoutId) {\n\t clearTimeout(this.updateTimeoutId);\n\t this.updateTimeoutId = null;\n\t }\n\t },\n\t\n\t // ........................................................................ ajax\n\t /** override to use actual Dates objects for create/update times */\n\t parse: function (response, options) {\n\t var parsed = Backbone.Model.prototype.parse.call(this, response, options);\n\t if (parsed.create_time) {\n\t parsed.create_time = new Date(parsed.create_time);\n\t }\n\t if (parsed.update_time) {\n\t parsed.update_time = new Date(parsed.update_time);\n\t }\n\t return parsed;\n\t },\n\t\n\t /** fetch this histories data (using options) then it's contents (using contentsOptions) */\n\t fetchWithContents: function (options, contentsOptions) {\n\t options = options || {};\n\t var self = this;\n\t\n\t // console.log( this + '.fetchWithContents' );\n\t // TODO: push down to a base class\n\t options.view = 'dev-detailed';\n\t\n\t // fetch history then use history data to fetch (paginated) contents\n\t return this.fetch(options).then(function getContents(history) {\n\t self.contents.history = self;\n\t self.contents.setHistoryId(history.id);\n\t return self.fetchContents(contentsOptions);\n\t });\n\t },\n\t\n\t /** fetch this histories contents, adjusting options based on the stored history preferences */\n\t fetchContents: function (options) {\n\t options = options || {};\n\t var self = this;\n\t\n\t // we're updating, reset the update time\n\t self.lastUpdateTime = new Date();\n\t return self.contents.fetchCurrentPage(options);\n\t },\n\t\n\t /** save this history, _Mark_ing it as deleted (just a flag) */\n\t _delete: function (options) {\n\t if (this.get('deleted')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: true }, options);\n\t },\n\t /** purge this history, _Mark_ing it as purged and removing all dataset data from the server */\n\t purge: function (options) {\n\t if (this.get('purged')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: true, purged: true }, options);\n\t },\n\t /** save this history, _Mark_ing it as undeleted */\n\t undelete: function (options) {\n\t if (!this.get('deleted')) {\n\t return jQuery.when();\n\t }\n\t return this.save({ deleted: false }, options);\n\t },\n\t\n\t /** Make a copy of this history on the server\n\t * @param {Boolean} current if true, set the copy as the new current history (default: true)\n\t * @param {String} name name of new history (default: none - server sets to: Copy of )\n\t * @fires copied passed this history and the response JSON from the copy\n\t * @returns {xhr}\n\t */\n\t copy: function (current, name, allDatasets) {\n\t current = current !== undefined ? current : true;\n\t if (!this.id) {\n\t throw new Error('You must set the history ID before copying it.');\n\t }\n\t\n\t var postData = { history_id: this.id };\n\t if (current) {\n\t postData.current = true;\n\t }\n\t if (name) {\n\t postData.name = name;\n\t }\n\t if (!allDatasets) {\n\t postData.all_datasets = false;\n\t }\n\t postData.view = 'dev-detailed';\n\t\n\t var history = this;\n\t var copy = jQuery.post(this.urlRoot, postData);\n\t // if current - queue to setAsCurrent before firing 'copied'\n\t if (current) {\n\t return copy.then(function (response) {\n\t var newHistory = new History(response);\n\t return newHistory.setAsCurrent().done(function () {\n\t history.trigger('copied', history, response);\n\t });\n\t });\n\t }\n\t return copy.done(function (response) {\n\t history.trigger('copied', history, response);\n\t });\n\t },\n\t\n\t setAsCurrent: function () {\n\t var history = this,\n\t xhr = jQuery.getJSON(Galaxy.root + 'history/set_as_current?id=' + this.id);\n\t\n\t xhr.done(function () {\n\t history.trigger('set-as-current', history);\n\t });\n\t return xhr;\n\t },\n\t\n\t // ........................................................................ misc\n\t toString: function () {\n\t return 'History(' + this.get('id') + ',' + this.get('name') + ')';\n\t }\n\t }));\n\t\n\t //==============================================================================\n\t var _collectionSuper = CONTROLLED_FETCH_COLLECTION.InfinitelyScrollingCollection;\n\t /** @class A collection of histories (per user)\n\t * that maintains the current history as the first in the collection.\n\t * New or copied histories become the current history.\n\t */\n\t var HistoryCollection = _collectionSuper.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: 'history',\n\t\n\t model: History,\n\t /** @type {String} initial order used by collection */\n\t order: 'update_time',\n\t /** @type {Number} limit used for the first fetch (or a reset) */\n\t limitOnFirstFetch: 10,\n\t /** @type {Number} limit used for each subsequent fetch */\n\t limitPerFetch: 10,\n\t\n\t initialize: function (models, options) {\n\t options = options || {};\n\t this.log('HistoryCollection.initialize', models, options);\n\t _collectionSuper.prototype.initialize.call(this, models, options);\n\t\n\t /** @type {boolean} should deleted histories be included */\n\t this.includeDeleted = options.includeDeleted || false;\n\t\n\t /** @type {String} encoded id of the history that's current */\n\t this.currentHistoryId = options.currentHistoryId;\n\t\n\t this.setUpListeners();\n\t // note: models are sent to reset *after* this fn ends; up to this point\n\t // the collection *is empty*\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/histories',\n\t url: function () {\n\t return this.urlRoot;\n\t },\n\t\n\t /** set up reflexive event handlers */\n\t setUpListeners: function setUpListeners() {\n\t return this.on({\n\t // when a history is deleted, remove it from the collection (if optionally set to do so)\n\t 'change:deleted': function (history) {\n\t // TODO: this becomes complicated when more filters are used\n\t this.debug('change:deleted', this.includeDeleted, history.get('deleted'));\n\t if (!this.includeDeleted && history.get('deleted')) {\n\t this.remove(history);\n\t }\n\t },\n\t // listen for a history copy, setting it to current\n\t 'copied': function (original, newData) {\n\t this.setCurrent(new History(newData, []));\n\t },\n\t // when a history is made current, track the id in the collection\n\t 'set-as-current': function (history) {\n\t var oldCurrentId = this.currentHistoryId;\n\t this.trigger('no-longer-current', oldCurrentId);\n\t this.currentHistoryId = history.id;\n\t }\n\t });\n\t },\n\t\n\t /** override to change view */\n\t _buildFetchData: function (options) {\n\t return _.extend(_collectionSuper.prototype._buildFetchData.call(this, options), {\n\t view: 'dev-detailed'\n\t });\n\t },\n\t\n\t /** override to filter out deleted and purged */\n\t _buildFetchFilters: function (options) {\n\t var superFilters = _collectionSuper.prototype._buildFetchFilters.call(this, options) || {};\n\t var filters = {};\n\t if (!this.includeDeleted) {\n\t filters.deleted = false;\n\t filters.purged = false;\n\t } else {\n\t // force API to return both deleted and non\n\t //TODO: when the API is updated, remove this\n\t filters.deleted = null;\n\t }\n\t return _.defaults(superFilters, filters);\n\t },\n\t\n\t /** override to fetch current as well (as it may be outside the first 10, etc.) */\n\t fetchFirst: function (options) {\n\t var self = this;\n\t // TODO: batch?\n\t var xhr = $.when();\n\t if (this.currentHistoryId) {\n\t xhr = _collectionSuper.prototype.fetchFirst.call(self, {\n\t silent: true,\n\t limit: 1,\n\t filters: {\n\t // without these a deleted current history will return [] here and block the other xhr\n\t 'purged': '',\n\t 'deleted': '',\n\t 'encoded_id-in': this.currentHistoryId\n\t }\n\t });\n\t }\n\t return xhr.then(function () {\n\t options = options || {};\n\t options.offset = 0;\n\t return self.fetchMore(options);\n\t });\n\t },\n\t\n\t /** @type {Object} map of collection available sorting orders containing comparator fns */\n\t comparators: _.extend(_.clone(_collectionSuper.prototype.comparators), {\n\t 'name': BASE_MVC.buildComparator('name', { ascending: true }),\n\t 'name-dsc': BASE_MVC.buildComparator('name', { ascending: false }),\n\t 'size': BASE_MVC.buildComparator('size', { ascending: false }),\n\t 'size-asc': BASE_MVC.buildComparator('size', { ascending: true })\n\t }),\n\t\n\t /** override to always have the current history first */\n\t sort: function (options) {\n\t options = options || {};\n\t var silent = options.silent;\n\t var currentHistory = this.remove(this.get(this.currentHistoryId));\n\t _collectionSuper.prototype.sort.call(this, _.defaults({ silent: true }, options));\n\t this.unshift(currentHistory, { silent: true });\n\t if (!silent) {\n\t this.trigger('sort', this, options);\n\t }\n\t return this;\n\t },\n\t\n\t /** create a new history and by default set it to be the current history */\n\t create: function create(data, hdas, historyOptions, xhrOptions) {\n\t //TODO: .create is actually a collection function that's overridden here\n\t var collection = this,\n\t xhr = jQuery.getJSON(Galaxy.root + 'history/create_new_current');\n\t return xhr.done(function (newData) {\n\t collection.setCurrent(new History(newData, [], historyOptions || {}));\n\t });\n\t },\n\t\n\t /** set the current history to the given history, placing it first in the collection.\n\t * Pass standard bbone options for use in unshift.\n\t * @triggers new-current passed history and this collection\n\t */\n\t setCurrent: function (history, options) {\n\t options = options || {};\n\t // new histories go in the front\n\t this.unshift(history, options);\n\t this.currentHistoryId = history.get('id');\n\t if (!options.silent) {\n\t this.trigger('new-current', history, this);\n\t }\n\t return this;\n\t },\n\t\n\t toString: function toString() {\n\t return 'HistoryCollection(' + this.length + ',current:' + this.currentHistoryId + ')';\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t History: History,\n\t HistoryCollection: HistoryCollection\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 53 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(_) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6)], __WEBPACK_AMD_DEFINE_RESULT__ = function (BASE_MVC) {\n\t\n\t 'use strict';\n\t\n\t var logNamespace = 'history';\n\t\n\t // ============================================================================\n\t /** session storage for individual history preferences */\n\t var HistoryPrefs = BASE_MVC.SessionStorageModel.extend(\n\t /** @lends HistoryPrefs.prototype */{\n\t //TODO:?? move to user prefs?\n\t defaults: {\n\t //TODO:?? expandedIds to array?\n\t expandedIds: {},\n\t show_deleted: false,\n\t show_hidden: false\n\t },\n\t\n\t /** add an hda id to the hash of expanded hdas */\n\t addExpanded: function (model) {\n\t //TODO: use type_id and not model\n\t var current = this.get('expandedIds');\n\t current[model.id] = model.get('id');\n\t this.save('expandedIds', current);\n\t },\n\t\n\t /** remove an hda id from the hash of expanded hdas */\n\t removeExpanded: function (model) {\n\t var current = this.get('expandedIds');\n\t delete current[model.id];\n\t this.save('expandedIds', current);\n\t },\n\t\n\t isExpanded: function (contentId) {\n\t return _.result(this.get('expandedIds'), contentId, false);\n\t },\n\t\n\t allExpanded: function () {\n\t return _.values(this.get('expandedIds'));\n\t },\n\t\n\t clearExpanded: function () {\n\t this.set('expandedIds', {});\n\t },\n\t\n\t includeDeleted: function (val) {\n\t // moving the invocation here so other components don't need to know the key\n\t // TODO: change this key later\n\t if (!_.isUndefined(val)) {\n\t this.set('show_deleted', val);\n\t }\n\t return this.get('show_deleted');\n\t },\n\t\n\t includeHidden: function (val) {\n\t // TODO: change this key later\n\t if (!_.isUndefined(val)) {\n\t this.set('show_hidden', val);\n\t }\n\t return this.get('show_hidden');\n\t },\n\t\n\t toString: function () {\n\t return 'HistoryPrefs(' + this.id + ')';\n\t }\n\t\n\t }, {\n\t // ........................................................................ class vars\n\t // class lvl for access w/o instantiation\n\t storageKeyPrefix: 'history:',\n\t\n\t /** key string to store each histories settings under */\n\t historyStorageKey: function historyStorageKey(historyId) {\n\t if (!historyId) {\n\t throw new Error('HistoryPrefs.historyStorageKey needs valid id: ' + historyId);\n\t }\n\t // single point of change\n\t return HistoryPrefs.storageKeyPrefix + historyId;\n\t },\n\t\n\t /** return the existing storage for the history with the given id (or create one if it doesn't exist) */\n\t get: function get(historyId) {\n\t return new HistoryPrefs({ id: HistoryPrefs.historyStorageKey(historyId) });\n\t },\n\t\n\t /** clear all history related items in sessionStorage */\n\t clearAll: function clearAll(historyId) {\n\t for (var key in sessionStorage) {\n\t if (key.indexOf(HistoryPrefs.storageKeyPrefix) === 0) {\n\t sessionStorage.removeItem(key);\n\t }\n\t }\n\t }\n\t });\n\t\n\t //==============================================================================\n\t return {\n\t HistoryPrefs: HistoryPrefs\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))\n\n/***/ },\n/* 54 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _, jQuery) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (BASE_MVC, _l) {\n\t\n\t 'use strict';\n\t\n\t var logNamespace = 'list';\n\t //==============================================================================\n\t /** A view which, when first rendered, shows only summary data/attributes, but\n\t * can be expanded to show further details (and optionally fetch those\n\t * details from the server).\n\t */\n\t var ExpandableView = Backbone.View.extend(BASE_MVC.LoggableMixin).extend({\n\t _logNamespace: logNamespace,\n\t\n\t //TODO: Although the reasoning behind them is different, this shares a lot with HiddenUntilActivated above: combine them\n\t //PRECONDITION: model must have method hasDetails\n\t //PRECONDITION: subclasses must have templates.el and templates.details\n\t\n\t initialize: function (attributes) {\n\t /** are the details of this view expanded/shown or not? */\n\t this.expanded = attributes.expanded || false;\n\t this.log('\\t expanded:', this.expanded);\n\t this.fxSpeed = attributes.fxSpeed !== undefined ? attributes.fxSpeed : this.fxSpeed;\n\t },\n\t\n\t // ........................................................................ render main\n\t /** jq fx speed */\n\t fxSpeed: 'fast',\n\t\n\t /** Render this content, set up ui.\n\t * @param {Number or String} speed the speed of the render\n\t */\n\t render: function (speed) {\n\t var $newRender = this._buildNewRender();\n\t this._setUpBehaviors($newRender);\n\t this._queueNewRender($newRender, speed);\n\t return this;\n\t },\n\t\n\t /** Build a temp div containing the new children for the view's $el.\n\t * If the view is already expanded, build the details as well.\n\t */\n\t _buildNewRender: function () {\n\t // create a new render using a skeleton template, render title buttons, render body, and set up events, etc.\n\t var $newRender = $(this.templates.el(this.model.toJSON(), this));\n\t if (this.expanded) {\n\t this.$details($newRender).replaceWith(this._renderDetails().show());\n\t }\n\t return $newRender;\n\t },\n\t\n\t /** Fade out the old el, swap in the new contents, then fade in.\n\t * @param {Number or String} speed jq speed to use for rendering effects\n\t * @fires rendered when rendered\n\t */\n\t _queueNewRender: function ($newRender, speed) {\n\t speed = speed === undefined ? this.fxSpeed : speed;\n\t var view = this;\n\t\n\t if (speed === 0) {\n\t view._swapNewRender($newRender);\n\t view.trigger('rendered', view);\n\t } else {\n\t $(view).queue('fx', [function (next) {\n\t view.$el.fadeOut(speed, next);\n\t }, function (next) {\n\t view._swapNewRender($newRender);\n\t next();\n\t }, function (next) {\n\t view.$el.fadeIn(speed, next);\n\t }, function (next) {\n\t view.trigger('rendered', view);\n\t next();\n\t }]);\n\t }\n\t },\n\t\n\t /** empty out the current el, move the $newRender's children in */\n\t _swapNewRender: function ($newRender) {\n\t return this.$el.empty().attr('class', _.isFunction(this.className) ? this.className() : this.className).append($newRender.children());\n\t },\n\t\n\t /** set up js behaviors, event handlers for elements within the given container\n\t * @param {jQuery} $container jq object that contains the elements to process (defaults to this.$el)\n\t */\n\t _setUpBehaviors: function ($where) {\n\t $where = $where || this.$el;\n\t // set up canned behavior on children (bootstrap, popupmenus, editable_text, etc.)\n\t //make_popup_menus( $where );\n\t $where.find('[title]').tooltip({ placement: 'bottom' });\n\t },\n\t\n\t // ......................................................................... details\n\t /** shortcut to details DOM (as jQ) */\n\t $details: function ($where) {\n\t $where = $where || this.$el;\n\t return $where.find('> .details');\n\t },\n\t\n\t /** build the DOM for the details and set up behaviors on it */\n\t _renderDetails: function () {\n\t var $newDetails = $(this.templates.details(this.model.toJSON(), this));\n\t this._setUpBehaviors($newDetails);\n\t return $newDetails;\n\t },\n\t\n\t // ......................................................................... expansion/details\n\t /** Show or hide the details\n\t * @param {Boolean} expand if true, expand; if false, collapse\n\t */\n\t toggleExpanded: function (expand) {\n\t expand = expand === undefined ? !this.expanded : expand;\n\t if (expand) {\n\t this.expand();\n\t } else {\n\t this.collapse();\n\t }\n\t return this;\n\t },\n\t\n\t /** Render and show the full, detailed body of this view including extra data and controls.\n\t * note: if the model does not have detailed data, fetch that data before showing the body\n\t * @fires expanded when a body has been expanded\n\t */\n\t expand: function () {\n\t var view = this;\n\t return view._fetchModelDetails().always(function () {\n\t view._expand();\n\t });\n\t },\n\t\n\t /** Check for model details and, if none, fetch them.\n\t * @returns {jQuery.promise} the model.fetch.xhr if details are being fetched, an empty promise if not\n\t */\n\t _fetchModelDetails: function () {\n\t if (!this.model.hasDetails()) {\n\t return this.model.fetch();\n\t }\n\t return jQuery.when();\n\t },\n\t\n\t /** Inner fn called when expand (public) has fetched the details */\n\t _expand: function () {\n\t var view = this,\n\t $newDetails = view._renderDetails();\n\t view.$details().replaceWith($newDetails);\n\t // needs to be set after the above or the slide will not show\n\t view.expanded = true;\n\t view.$details().slideDown(view.fxSpeed, function () {\n\t view.trigger('expanded', view);\n\t });\n\t },\n\t\n\t /** Hide the body/details of an HDA.\n\t * @fires collapsed when a body has been collapsed\n\t */\n\t collapse: function () {\n\t this.debug(this + '(ExpandableView).collapse');\n\t var view = this;\n\t view.expanded = false;\n\t this.$details().slideUp(view.fxSpeed, function () {\n\t view.trigger('collapsed', view);\n\t });\n\t }\n\t\n\t });\n\t\n\t //==============================================================================\n\t /** A view that is displayed in some larger list/grid/collection.\n\t * Inherits from Expandable, Selectable, Draggable.\n\t * The DOM contains warnings, a title bar, and a series of primary action controls.\n\t * Primary actions are meant to be easily accessible item functions (such as delete)\n\t * that are rendered in the title bar.\n\t *\n\t * Details are rendered when the user clicks the title bar or presses enter/space when\n\t * the title bar is in focus.\n\t *\n\t * Designed as a base class for history panel contents - but usable elsewhere (I hope).\n\t */\n\t var ListItemView = ExpandableView.extend(BASE_MVC.mixin(BASE_MVC.SelectableViewMixin, BASE_MVC.DraggableViewMixin, {\n\t\n\t tagName: 'div',\n\t className: 'list-item',\n\t\n\t /** Set up the base class and all mixins */\n\t initialize: function (attributes) {\n\t ExpandableView.prototype.initialize.call(this, attributes);\n\t BASE_MVC.SelectableViewMixin.initialize.call(this, attributes);\n\t BASE_MVC.DraggableViewMixin.initialize.call(this, attributes);\n\t this._setUpListeners();\n\t },\n\t\n\t /** event listeners */\n\t _setUpListeners: function () {\n\t // hide the primary actions in the title bar when selectable and narrow\n\t this.on('selectable', function (isSelectable) {\n\t if (isSelectable) {\n\t this.$('.primary-actions').hide();\n\t } else {\n\t this.$('.primary-actions').show();\n\t }\n\t }, this);\n\t return this;\n\t },\n\t\n\t // ........................................................................ rendering\n\t /** In this override, call methods to build warnings, titlebar and primary actions */\n\t _buildNewRender: function () {\n\t var $newRender = ExpandableView.prototype._buildNewRender.call(this);\n\t $newRender.children('.warnings').replaceWith(this._renderWarnings());\n\t $newRender.children('.title-bar').replaceWith(this._renderTitleBar());\n\t $newRender.children('.primary-actions').append(this._renderPrimaryActions());\n\t $newRender.find('> .title-bar .subtitle').replaceWith(this._renderSubtitle());\n\t return $newRender;\n\t },\n\t\n\t /** In this override, render the selector controls and set up dragging before the swap */\n\t _swapNewRender: function ($newRender) {\n\t ExpandableView.prototype._swapNewRender.call(this, $newRender);\n\t if (this.selectable) {\n\t this.showSelector(0);\n\t }\n\t if (this.draggable) {\n\t this.draggableOn();\n\t }\n\t return this.$el;\n\t },\n\t\n\t /** Render any warnings the item may need to show (e.g. \"I'm deleted\") */\n\t _renderWarnings: function () {\n\t var view = this,\n\t $warnings = $('
    '),\n\t json = view.model.toJSON();\n\t //TODO:! unordered (map)\n\t _.each(view.templates.warnings, function (templateFn) {\n\t $warnings.append($(templateFn(json, view)));\n\t });\n\t return $warnings;\n\t },\n\t\n\t /** Render the title bar (the main/exposed SUMMARY dom element) */\n\t _renderTitleBar: function () {\n\t return $(this.templates.titleBar(this.model.toJSON(), this));\n\t },\n\t\n\t /** Return an array of jQ objects containing common/easily-accessible item controls */\n\t _renderPrimaryActions: function () {\n\t // override this\n\t return [];\n\t },\n\t\n\t /** Render the title bar (the main/exposed SUMMARY dom element) */\n\t _renderSubtitle: function () {\n\t return $(this.templates.subtitle(this.model.toJSON(), this));\n\t },\n\t\n\t // ......................................................................... events\n\t /** event map */\n\t events: {\n\t // expand the body when the title is clicked or when in focus and space or enter is pressed\n\t 'click .title-bar': '_clickTitleBar',\n\t 'keydown .title-bar': '_keyDownTitleBar',\n\t 'click .selector': 'toggleSelect'\n\t },\n\t\n\t /** expand when the title bar is clicked */\n\t _clickTitleBar: function (event) {\n\t event.stopPropagation();\n\t if (event.altKey) {\n\t this.toggleSelect(event);\n\t if (!this.selectable) {\n\t this.showSelector();\n\t }\n\t } else {\n\t this.toggleExpanded();\n\t }\n\t },\n\t\n\t /** expand when the title bar is in focus and enter or space is pressed */\n\t _keyDownTitleBar: function (event) {\n\t // bail (with propagation) if keydown and not space or enter\n\t var KEYCODE_SPACE = 32,\n\t KEYCODE_RETURN = 13;\n\t if (event && event.type === 'keydown' && (event.keyCode === KEYCODE_SPACE || event.keyCode === KEYCODE_RETURN)) {\n\t this.toggleExpanded();\n\t event.stopPropagation();\n\t return false;\n\t }\n\t return true;\n\t },\n\t\n\t // ......................................................................... misc\n\t /** String representation */\n\t toString: function () {\n\t var modelString = this.model ? this.model + '' : '(no model)';\n\t return 'ListItemView(' + modelString + ')';\n\t }\n\t }));\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t ListItemView.prototype.templates = function () {\n\t\n\t var elTemplato = BASE_MVC.wrapTemplate(['
    ',\n\t // errors, messages, etc.\n\t '
    ',\n\t\n\t // multi-select checkbox\n\t '
    ', '', '
    ',\n\t // space for title bar buttons - gen. floated to the right\n\t '
    ', '
    ',\n\t\n\t // expandable area for more details\n\t '
    ', '
    ']);\n\t\n\t var warnings = {};\n\t\n\t var titleBarTemplate = BASE_MVC.wrapTemplate([\n\t // adding a tabindex here allows focusing the title bar and the use of keydown to expand the dataset display\n\t '
    ',\n\t //TODO: prob. belongs in dataset-list-item\n\t '', '
    ', '<%- element.name %>', '
    ', '
    ', '
    '], 'element');\n\t\n\t var subtitleTemplate = BASE_MVC.wrapTemplate([\n\t // override this\n\t '
    ']);\n\t\n\t var detailsTemplate = BASE_MVC.wrapTemplate([\n\t // override this\n\t '
    ']);\n\t\n\t return {\n\t el: elTemplato,\n\t warnings: warnings,\n\t titleBar: titleBarTemplate,\n\t subtitle: subtitleTemplate,\n\t details: detailsTemplate\n\t };\n\t }();\n\t\n\t //==============================================================================\n\t /** A view that is displayed in some larger list/grid/collection.\n\t * *AND* can display some sub-list of it's own when expanded (e.g. dataset collections).\n\t * This list will 'foldout' when the item is expanded depending on this.foldoutStyle:\n\t * If 'foldout': will expand vertically to show the nested list\n\t * If 'drilldown': will overlay the parent list\n\t *\n\t * Inherits from ListItemView.\n\t *\n\t * _renderDetails does the work of creating this.details: a sub-view that shows the nested list\n\t */\n\t var FoldoutListItemView = ListItemView.extend({\n\t\n\t /** If 'foldout': show the sub-panel inside the expanded item\n\t * If 'drilldown': only fire events and handle by pub-sub\n\t * (allow the panel containing this item to attach it, hide itself, etc.)\n\t */\n\t foldoutStyle: 'foldout',\n\t /** Panel view class to instantiate for the sub-panel */\n\t foldoutPanelClass: null,\n\t\n\t /** override to:\n\t * add attributes foldoutStyle and foldoutPanelClass for config poly\n\t * disrespect attributes.expanded if drilldown\n\t */\n\t initialize: function (attributes) {\n\t if (this.foldoutStyle === 'drilldown') {\n\t this.expanded = false;\n\t }\n\t this.foldoutStyle = attributes.foldoutStyle || this.foldoutStyle;\n\t this.foldoutPanelClass = attributes.foldoutPanelClass || this.foldoutPanelClass;\n\t\n\t ListItemView.prototype.initialize.call(this, attributes);\n\t this.foldout = this._createFoldoutPanel();\n\t },\n\t\n\t /** in this override, attach the foldout panel when rendering details */\n\t _renderDetails: function () {\n\t if (this.foldoutStyle === 'drilldown') {\n\t return $();\n\t }\n\t var $newDetails = ListItemView.prototype._renderDetails.call(this);\n\t return this._attachFoldout(this.foldout, $newDetails);\n\t },\n\t\n\t /** In this override, handle collection expansion. */\n\t _createFoldoutPanel: function () {\n\t var model = this.model;\n\t var FoldoutClass = this._getFoldoutPanelClass(model),\n\t options = this._getFoldoutPanelOptions(model),\n\t foldout = new FoldoutClass(_.extend(options, {\n\t model: model\n\t }));\n\t return foldout;\n\t },\n\t\n\t /** Stub to return proper foldout panel class */\n\t _getFoldoutPanelClass: function () {\n\t // override\n\t return this.foldoutPanelClass;\n\t },\n\t\n\t /** Stub to return proper foldout panel options */\n\t _getFoldoutPanelOptions: function () {\n\t return {\n\t // propagate foldout style down\n\t foldoutStyle: this.foldoutStyle,\n\t fxSpeed: this.fxSpeed\n\t };\n\t },\n\t\n\t /** Render the foldout panel inside the view, hiding controls */\n\t _attachFoldout: function (foldout, $whereTo) {\n\t $whereTo = $whereTo || this.$('> .details');\n\t this.foldout = foldout.render(0);\n\t foldout.$('> .controls').hide();\n\t return $whereTo.append(foldout.$el);\n\t },\n\t\n\t /** In this override, branch on foldoutStyle to show expanded */\n\t expand: function () {\n\t var view = this;\n\t return view._fetchModelDetails().always(function () {\n\t if (view.foldoutStyle === 'foldout') {\n\t view._expand();\n\t } else if (view.foldoutStyle === 'drilldown') {\n\t view._expandByDrilldown();\n\t }\n\t });\n\t },\n\t\n\t /** For drilldown, set up close handler and fire expanded:drilldown\n\t * containing views can listen to this and handle other things\n\t * (like hiding themselves) by listening for expanded/collapsed:drilldown\n\t */\n\t _expandByDrilldown: function () {\n\t var view = this;\n\t // attachment and rendering done by listener\n\t view.listenTo(view.foldout, 'close', function () {\n\t view.trigger('collapsed:drilldown', view, view.foldout);\n\t });\n\t view.trigger('expanded:drilldown', view, view.foldout);\n\t }\n\t\n\t });\n\t\n\t // ............................................................................ TEMPLATES\n\t /** underscore templates */\n\t FoldoutListItemView.prototype.templates = function () {\n\t\n\t var detailsTemplate = BASE_MVC.wrapTemplate(['
    ',\n\t // override with more info (that goes above the panel)\n\t '
    '], 'collection');\n\t\n\t return _.extend({}, ListItemView.prototype.templates, {\n\t details: detailsTemplate\n\t });\n\t }();\n\t\n\t //==============================================================================\n\t return {\n\t ExpandableView: ExpandableView,\n\t ListItemView: ListItemView,\n\t FoldoutListItemView: FoldoutListItemView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2), __webpack_require__(1)))\n\n/***/ },\n/* 55 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, _) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(6), __webpack_require__(5)], __WEBPACK_AMD_DEFINE_RESULT__ = function (baseMVC, _l) {\n\t // =============================================================================\n\t /** A view on any model that has a 'tags' attribute (a list of tag strings)\n\t * Incorporates the select2 jQuery plugin for tags display/editing:\n\t * http://ivaynberg.github.io/select2/\n\t */\n\t var TagsEditor = Backbone.View.extend(baseMVC.LoggableMixin).extend(baseMVC.HiddenUntilActivatedViewMixin).extend({\n\t\n\t tagName: 'div',\n\t className: 'tags-display',\n\t\n\t /** Set up listeners, parse options */\n\t initialize: function (options) {\n\t //console.debug( this, options );\n\t // only listen to the model only for changes to tags - re-render\n\t if (options.usePrompt === false) {\n\t this.label = '';\n\t } else {\n\t this.label = '';\n\t }\n\t this.hiddenUntilActivated(options.$activator, options);\n\t },\n\t\n\t /** Build the DOM elements, call select to on the created input, and set up behaviors */\n\t render: function () {\n\t var self = this;\n\t this.$el.html(this._template());\n\t\n\t this.$input().select2({\n\t placeholder: 'Add tags',\n\t width: '100%',\n\t tags: function () {\n\t // initialize possible tags in the dropdown based on all the tags the user has used so far\n\t return self._getTagsUsed();\n\t }\n\t });\n\t\n\t this._setUpBehaviors();\n\t return this;\n\t },\n\t\n\t _hashToName: function (tag) {\n\t if (tag.startsWith('#')) {\n\t return 'name:' + tag.slice(1);\n\t }\n\t return tag;\n\t },\n\t\n\t _nameToHash: function (tag) {\n\t if (tag.startsWith('name:')) {\n\t tag = '#' + tag.slice(5);\n\t }\n\t return tag;\n\t },\n\t\n\t /** @returns {String} the html text used to build the view's DOM */\n\t _template: function () {\n\t return [this.label,\n\t // set up initial tags by adding as CSV to input vals (necc. to init select2)\n\t ''].join('');\n\t },\n\t\n\t /** @returns {String} the sorted, comma-separated tags from the model */\n\t tagsToCSV: function () {\n\t var self = this;\n\t var tagsArray = this.model.get('tags');\n\t if (!_.isArray(tagsArray) || _.isEmpty(tagsArray)) {\n\t return '';\n\t }\n\t return tagsArray.map(function (tag) {\n\t return _.escape(self._nameToHash(tag));\n\t }).sort().join(',');\n\t },\n\t\n\t /** @returns {jQuery} the input for this view */\n\t $input: function () {\n\t return this.$el.find('input.tags-input');\n\t },\n\t\n\t /** @returns {String[]} all tags used by the current user */\n\t _getTagsUsed: function () {\n\t //TODO: global\n\t var self = this;\n\t return _.map(Galaxy.user.get('tags_used'), self._nameToHash);\n\t },\n\t\n\t /** set up any event listeners on the view's DOM (mostly handled by select2) */\n\t _setUpBehaviors: function () {\n\t var self = this;\n\t this.$input().on('change', function (event) {\n\t // Modify any 'hashtag' 'nametags'\n\t event.val = _.map(event.val, self._hashToName);\n\t // save the model's tags in either remove or added event\n\t self.model.save({ tags: event.val });\n\t // if it's new, add the tag to the users tags\n\t if (event.added) {\n\t //??: solve weird behavior in FF on test.galaxyproject.org where\n\t // event.added.text is string object: 'String{ 0=\"o\", 1=\"n\", 2=\"e\" }'\n\t self._addNewTagToTagsUsed(event.added.text + '');\n\t }\n\t });\n\t },\n\t\n\t /** add a new tag (if not already there) to the list of all tags used by the user\n\t * @param {String} newTag the tag to add to the list of used\n\t */\n\t _addNewTagToTagsUsed: function (newTag) {\n\t //TODO: global\n\t var tagsUsed = Galaxy.user.get('tags_used');\n\t if (!_.contains(tagsUsed, newTag)) {\n\t tagsUsed.push(newTag);\n\t tagsUsed.sort();\n\t Galaxy.user.set('tags_used', tagsUsed);\n\t }\n\t },\n\t\n\t /** shut down event listeners and remove this view's DOM */\n\t remove: function () {\n\t this.$input.off();\n\t this.stopListening(this.model);\n\t Backbone.View.prototype.remove.call(this);\n\t },\n\t\n\t /** string rep */\n\t toString: function () {\n\t return ['TagsEditor(', this.model + '', ')'].join('');\n\t }\n\t });\n\t\n\t // =============================================================================\n\t return {\n\t TagsEditor: TagsEditor\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(2)))\n\n/***/ },\n/* 56 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/**\n\t * Model, view, and controller objects for Galaxy tools and tool panel.\n\t */\n\t\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2), __webpack_require__(20), __webpack_require__(10), __webpack_require__(30)], __WEBPACK_AMD_DEFINE_RESULT__ = function (_, util, data, ToolForm) {\n\t 'use strict';\n\t\n\t /**\n\t * Mixin for tracking model visibility.\n\t */\n\t\n\t var VisibilityMixin = {\n\t hidden: false,\n\t\n\t show: function () {\n\t this.set(\"hidden\", false);\n\t },\n\t\n\t hide: function () {\n\t this.set(\"hidden\", true);\n\t },\n\t\n\t toggle: function () {\n\t this.set(\"hidden\", !this.get(\"hidden\"));\n\t },\n\t\n\t is_visible: function () {\n\t return !this.attributes.hidden;\n\t }\n\t\n\t };\n\t\n\t /**\n\t * A tool parameter.\n\t */\n\t var ToolParameter = Backbone.Model.extend({\n\t defaults: {\n\t name: null,\n\t label: null,\n\t type: null,\n\t value: null,\n\t html: null,\n\t num_samples: 5\n\t },\n\t\n\t initialize: function (options) {\n\t this.attributes.html = unescape(this.attributes.html);\n\t },\n\t\n\t copy: function () {\n\t return new ToolParameter(this.toJSON());\n\t },\n\t\n\t set_value: function (value) {\n\t this.set('value', value || '');\n\t }\n\t });\n\t\n\t var ToolParameterCollection = Backbone.Collection.extend({\n\t model: ToolParameter\n\t });\n\t\n\t /**\n\t * A data tool parameter.\n\t */\n\t var DataToolParameter = ToolParameter.extend({});\n\t\n\t /**\n\t * An integer tool parameter.\n\t */\n\t var IntegerToolParameter = ToolParameter.extend({\n\t set_value: function (value) {\n\t this.set('value', parseInt(value, 10));\n\t },\n\t\n\t /**\n\t * Returns samples from a tool input.\n\t */\n\t get_samples: function () {\n\t return d3.scale.linear().domain([this.get('min'), this.get('max')]).ticks(this.get('num_samples'));\n\t }\n\t });\n\t\n\t var FloatToolParameter = IntegerToolParameter.extend({\n\t set_value: function (value) {\n\t this.set('value', parseFloat(value));\n\t }\n\t });\n\t\n\t /**\n\t * A select tool parameter.\n\t */\n\t var SelectToolParameter = ToolParameter.extend({\n\t /**\n\t * Returns tool options.\n\t */\n\t get_samples: function () {\n\t return _.map(this.get('options'), function (option) {\n\t return option[0];\n\t });\n\t }\n\t });\n\t\n\t // Set up dictionary of parameter types.\n\t ToolParameter.subModelTypes = {\n\t 'integer': IntegerToolParameter,\n\t 'float': FloatToolParameter,\n\t 'data': DataToolParameter,\n\t 'select': SelectToolParameter\n\t };\n\t\n\t /**\n\t * A Galaxy tool.\n\t */\n\t var Tool = Backbone.Model.extend({\n\t // Default attributes.\n\t defaults: {\n\t id: null,\n\t name: null,\n\t description: null,\n\t target: null,\n\t inputs: [],\n\t outputs: []\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/tools',\n\t\n\t initialize: function (options) {\n\t\n\t // Set parameters.\n\t this.set('inputs', new ToolParameterCollection(_.map(options.inputs, function (p) {\n\t var p_class = ToolParameter.subModelTypes[p.type] || ToolParameter;\n\t return new p_class(p);\n\t })));\n\t },\n\t\n\t /**\n\t *\n\t */\n\t toJSON: function () {\n\t var rval = Backbone.Model.prototype.toJSON.call(this);\n\t\n\t // Convert inputs to JSON manually.\n\t rval.inputs = this.get('inputs').map(function (i) {\n\t return i.toJSON();\n\t });\n\t return rval;\n\t },\n\t\n\t /**\n\t * Removes inputs of a particular type; this is useful because not all inputs can be handled by\n\t * client and server yet.\n\t */\n\t remove_inputs: function (types) {\n\t var tool = this,\n\t incompatible_inputs = tool.get('inputs').filter(function (input) {\n\t return types.indexOf(input.get('type')) !== -1;\n\t });\n\t tool.get('inputs').remove(incompatible_inputs);\n\t },\n\t\n\t /**\n\t * Returns object copy, optionally including only inputs that can be sampled.\n\t */\n\t copy: function (only_samplable_inputs) {\n\t var copy = new Tool(this.toJSON());\n\t\n\t // Return only samplable inputs if flag is set.\n\t if (only_samplable_inputs) {\n\t var valid_inputs = new Backbone.Collection();\n\t copy.get('inputs').each(function (input) {\n\t if (input.get_samples()) {\n\t valid_inputs.push(input);\n\t }\n\t });\n\t copy.set('inputs', valid_inputs);\n\t }\n\t\n\t return copy;\n\t },\n\t\n\t apply_search_results: function (results) {\n\t _.indexOf(results, this.attributes.id) !== -1 ? this.show() : this.hide();\n\t return this.is_visible();\n\t },\n\t\n\t /**\n\t * Set a tool input's value.\n\t */\n\t set_input_value: function (name, value) {\n\t this.get('inputs').find(function (input) {\n\t return input.get('name') === name;\n\t }).set('value', value);\n\t },\n\t\n\t /**\n\t * Set many input values at once.\n\t */\n\t set_input_values: function (inputs_dict) {\n\t var self = this;\n\t _.each(_.keys(inputs_dict), function (input_name) {\n\t self.set_input_value(input_name, inputs_dict[input_name]);\n\t });\n\t },\n\t\n\t /**\n\t * Run tool; returns a Deferred that resolves to the tool's output(s).\n\t */\n\t run: function () {\n\t return this._run();\n\t },\n\t\n\t /**\n\t * Rerun tool using regions and a target dataset.\n\t */\n\t rerun: function (target_dataset, regions) {\n\t return this._run({\n\t action: 'rerun',\n\t target_dataset_id: target_dataset.id,\n\t regions: regions\n\t });\n\t },\n\t\n\t /**\n\t * Returns input dict for tool's inputs.\n\t */\n\t get_inputs_dict: function () {\n\t var input_dict = {};\n\t this.get('inputs').each(function (input) {\n\t input_dict[input.get('name')] = input.get('value');\n\t });\n\t return input_dict;\n\t },\n\t\n\t /**\n\t * Run tool; returns a Deferred that resolves to the tool's output(s).\n\t * NOTE: this method is a helper method and should not be called directly.\n\t */\n\t _run: function (additional_params) {\n\t // Create payload.\n\t var payload = _.extend({\n\t tool_id: this.id,\n\t inputs: this.get_inputs_dict()\n\t }, additional_params);\n\t\n\t // Because job may require indexing datasets, use server-side\n\t // deferred to ensure that job is run. Also use deferred that\n\t // resolves to outputs from tool.\n\t var run_deferred = $.Deferred(),\n\t ss_deferred = new util.ServerStateDeferred({\n\t ajax_settings: {\n\t url: this.urlRoot,\n\t data: JSON.stringify(payload),\n\t dataType: \"json\",\n\t contentType: 'application/json',\n\t type: \"POST\"\n\t },\n\t interval: 2000,\n\t success_fn: function (response) {\n\t return response !== \"pending\";\n\t }\n\t });\n\t\n\t // Run job and resolve run_deferred to tool outputs.\n\t $.when(ss_deferred.go()).then(function (result) {\n\t run_deferred.resolve(new data.DatasetCollection(result));\n\t });\n\t return run_deferred;\n\t }\n\t });\n\t _.extend(Tool.prototype, VisibilityMixin);\n\t\n\t /**\n\t * Tool view.\n\t */\n\t var ToolView = Backbone.View.extend({});\n\t\n\t /**\n\t * Wrap collection of tools for fast access/manipulation.\n\t */\n\t var ToolCollection = Backbone.Collection.extend({\n\t model: Tool\n\t });\n\t\n\t /**\n\t * Label or section header in tool panel.\n\t */\n\t var ToolSectionLabel = Backbone.Model.extend(VisibilityMixin);\n\t\n\t /**\n\t * Section of tool panel with elements (labels and tools).\n\t */\n\t var ToolSection = Backbone.Model.extend({\n\t defaults: {\n\t elems: [],\n\t open: false\n\t },\n\t\n\t clear_search_results: function () {\n\t _.each(this.attributes.elems, function (elt) {\n\t elt.show();\n\t });\n\t\n\t this.show();\n\t this.set(\"open\", false);\n\t },\n\t\n\t apply_search_results: function (results) {\n\t var all_hidden = true,\n\t cur_label;\n\t _.each(this.attributes.elems, function (elt) {\n\t if (elt instanceof ToolSectionLabel) {\n\t cur_label = elt;\n\t cur_label.hide();\n\t } else if (elt instanceof Tool) {\n\t if (elt.apply_search_results(results)) {\n\t all_hidden = false;\n\t if (cur_label) {\n\t cur_label.show();\n\t }\n\t }\n\t }\n\t });\n\t\n\t if (all_hidden) {\n\t this.hide();\n\t } else {\n\t this.show();\n\t this.set(\"open\", true);\n\t }\n\t }\n\t });\n\t _.extend(ToolSection.prototype, VisibilityMixin);\n\t\n\t /**\n\t * Tool search that updates results when query is changed. Result value of null\n\t * indicates that query was not run; if not null, results are from search using\n\t * query.\n\t */\n\t var ToolSearch = Backbone.Model.extend({\n\t defaults: {\n\t search_hint_string: \"search tools\",\n\t min_chars_for_search: 3,\n\t clear_btn_url: \"\",\n\t visible: true,\n\t query: \"\",\n\t results: null,\n\t // ESC (27) will clear the input field and tool search filters\n\t clear_key: 27\n\t },\n\t\n\t urlRoot: Galaxy.root + 'api/tools',\n\t\n\t initialize: function () {\n\t this.on(\"change:query\", this.do_search);\n\t },\n\t\n\t /**\n\t * Do the search and update the results.\n\t */\n\t do_search: function () {\n\t var query = this.attributes.query;\n\t\n\t // If query is too short, do not search.\n\t if (query.length < this.attributes.min_chars_for_search) {\n\t this.set(\"results\", null);\n\t return;\n\t }\n\t\n\t // Do search via AJAX.\n\t var q = query;\n\t // Stop previous ajax-request\n\t if (this.timer) {\n\t clearTimeout(this.timer);\n\t }\n\t // Start a new ajax-request in X ms\n\t $(\"#search-clear-btn\").hide();\n\t $(\"#search-spinner\").show();\n\t var self = this;\n\t this.timer = setTimeout(function () {\n\t // log the search to analytics if present\n\t if (typeof ga !== 'undefined') {\n\t ga('send', 'pageview', Galaxy.root + '?q=' + q);\n\t }\n\t $.get(self.urlRoot, { q: q }, function (data) {\n\t self.set(\"results\", data);\n\t $(\"#search-spinner\").hide();\n\t $(\"#search-clear-btn\").show();\n\t }, \"json\");\n\t }, 400);\n\t },\n\t\n\t clear_search: function () {\n\t this.set(\"query\", \"\");\n\t this.set(\"results\", null);\n\t }\n\t\n\t });\n\t _.extend(ToolSearch.prototype, VisibilityMixin);\n\t\n\t /**\n\t * Tool Panel.\n\t */\n\t var ToolPanel = Backbone.Model.extend({\n\t\n\t initialize: function (options) {\n\t this.attributes.tool_search = options.tool_search;\n\t this.attributes.tool_search.on(\"change:results\", this.apply_search_results, this);\n\t this.attributes.tools = options.tools;\n\t this.attributes.layout = new Backbone.Collection(this.parse(options.layout));\n\t },\n\t\n\t /**\n\t * Parse tool panel dictionary and return collection of tool panel elements.\n\t */\n\t parse: function (response) {\n\t // Recursive function to parse tool panel elements.\n\t var self = this,\n\t\n\t // Helper to recursively parse tool panel.\n\t parse_elt = function (elt_dict) {\n\t var type = elt_dict.model_class;\n\t // There are many types of tools; for now, anything that ends in 'Tool'\n\t // is treated as a generic tool.\n\t if (type.indexOf('Tool') === type.length - 4) {\n\t return self.attributes.tools.get(elt_dict.id);\n\t } else if (type === 'ToolSection') {\n\t // Parse elements.\n\t var elems = _.map(elt_dict.elems, parse_elt);\n\t elt_dict.elems = elems;\n\t return new ToolSection(elt_dict);\n\t } else if (type === 'ToolSectionLabel') {\n\t return new ToolSectionLabel(elt_dict);\n\t }\n\t };\n\t\n\t return _.map(response, parse_elt);\n\t },\n\t\n\t clear_search_results: function () {\n\t this.get('layout').each(function (panel_elt) {\n\t if (panel_elt instanceof ToolSection) {\n\t panel_elt.clear_search_results();\n\t } else {\n\t // Label or tool, so just show.\n\t panel_elt.show();\n\t }\n\t });\n\t },\n\t\n\t apply_search_results: function () {\n\t var results = this.get('tool_search').get('results');\n\t if (results === null) {\n\t this.clear_search_results();\n\t return;\n\t }\n\t\n\t var cur_label = null;\n\t this.get('layout').each(function (panel_elt) {\n\t if (panel_elt instanceof ToolSectionLabel) {\n\t cur_label = panel_elt;\n\t cur_label.hide();\n\t } else if (panel_elt instanceof Tool) {\n\t if (panel_elt.apply_search_results(results)) {\n\t if (cur_label) {\n\t cur_label.show();\n\t }\n\t }\n\t } else {\n\t // Starting new section, so clear current label.\n\t cur_label = null;\n\t panel_elt.apply_search_results(results);\n\t }\n\t });\n\t }\n\t });\n\t\n\t /**\n\t * View classes for Galaxy tools and tool panel.\n\t *\n\t * Views use the templates defined below for rendering. Views update as needed\n\t * based on (a) model/collection events and (b) user interactions; in this sense,\n\t * they are controllers are well and the HTML is the real view in the MVC architecture.\n\t */\n\t\n\t /**\n\t * Base view that handles visibility based on model's hidden attribute.\n\t */\n\t var BaseView = Backbone.View.extend({\n\t initialize: function () {\n\t this.model.on(\"change:hidden\", this.update_visible, this);\n\t this.update_visible();\n\t },\n\t update_visible: function () {\n\t this.model.attributes.hidden ? this.$el.hide() : this.$el.show();\n\t }\n\t });\n\t\n\t /**\n\t * Link to a tool.\n\t */\n\t var ToolLinkView = BaseView.extend({\n\t tagName: 'div',\n\t\n\t render: function () {\n\t // create element\n\t var $link = $('
    ');\n\t $link.append(templates.tool_link(this.model.toJSON()));\n\t\n\t var formStyle = this.model.get('form_style', null);\n\t // open upload dialog for upload tool\n\t if (this.model.id === 'upload1') {\n\t $link.find('a').on('click', function (e) {\n\t e.preventDefault();\n\t Galaxy.upload.show();\n\t });\n\t } else if (formStyle === 'regular') {\n\t // regular tools\n\t var self = this;\n\t $link.find('a').on('click', function (e) {\n\t e.preventDefault();\n\t Galaxy.router.push('/', { tool_id: self.model.id, version: self.model.get('version') });\n\t });\n\t }\n\t\n\t // add element\n\t this.$el.append($link);\n\t return this;\n\t }\n\t });\n\t\n\t /**\n\t * Panel label/section header.\n\t */\n\t var ToolSectionLabelView = BaseView.extend({\n\t tagName: 'div',\n\t className: 'toolPanelLabel',\n\t\n\t render: function () {\n\t this.$el.append($(\"\").text(this.model.attributes.text));\n\t return this;\n\t }\n\t });\n\t\n\t /**\n\t * Panel section.\n\t */\n\t var ToolSectionView = BaseView.extend({\n\t tagName: 'div',\n\t className: 'toolSectionWrapper',\n\t\n\t initialize: function () {\n\t BaseView.prototype.initialize.call(this);\n\t this.model.on(\"change:open\", this.update_open, this);\n\t },\n\t\n\t render: function () {\n\t // Build using template.\n\t this.$el.append(templates.panel_section(this.model.toJSON()));\n\t\n\t // Add tools to section.\n\t var section_body = this.$el.find(\".toolSectionBody\");\n\t _.each(this.model.attributes.elems, function (elt) {\n\t if (elt instanceof Tool) {\n\t var tool_view = new ToolLinkView({ model: elt, className: \"toolTitle\" });\n\t tool_view.render();\n\t section_body.append(tool_view.$el);\n\t } else if (elt instanceof ToolSectionLabel) {\n\t var label_view = new ToolSectionLabelView({ model: elt });\n\t label_view.render();\n\t section_body.append(label_view.$el);\n\t } else {\n\t // TODO: handle nested section bodies?\n\t }\n\t });\n\t return this;\n\t },\n\t\n\t events: {\n\t 'click .toolSectionTitle > a': 'toggle'\n\t },\n\t\n\t /**\n\t * Toggle visibility of tool section.\n\t */\n\t toggle: function () {\n\t this.model.set(\"open\", !this.model.attributes.open);\n\t },\n\t\n\t /**\n\t * Update whether section is open or close.\n\t */\n\t update_open: function () {\n\t this.model.attributes.open ? this.$el.children(\".toolSectionBody\").slideDown(\"fast\") : this.$el.children(\".toolSectionBody\").slideUp(\"fast\");\n\t }\n\t });\n\t\n\t var ToolSearchView = Backbone.View.extend({\n\t tagName: 'div',\n\t id: 'tool-search',\n\t className: 'bar',\n\t\n\t events: {\n\t 'click': 'focus_and_select',\n\t 'keyup :input': 'query_changed',\n\t 'change :input': 'query_changed',\n\t 'click #search-clear-btn': 'clear'\n\t },\n\t\n\t render: function () {\n\t this.$el.append(templates.tool_search(this.model.toJSON()));\n\t if (!this.model.is_visible()) {\n\t this.$el.hide();\n\t }\n\t\n\t // Adjust top for issue 2907 depending on whether the messagebox is visible.\n\t if ($(\"#messagebox\").is(\":visible\")) {\n\t this.$el.css(\"top\", \"95px\");\n\t }\n\t\n\t this.$el.find('[title]').tooltip();\n\t return this;\n\t },\n\t\n\t focus_and_select: function () {\n\t this.$el.find(\":input\").focus().select();\n\t },\n\t\n\t clear: function () {\n\t this.model.clear_search();\n\t this.$el.find(\":input\").val('');\n\t this.focus_and_select();\n\t return false;\n\t },\n\t\n\t query_changed: function (evData) {\n\t // check for the 'clear key' (ESC) first\n\t if (this.model.attributes.clear_key && this.model.attributes.clear_key === evData.which) {\n\t this.clear();\n\t return false;\n\t }\n\t this.model.set(\"query\", this.$el.find(\":input\").val());\n\t }\n\t });\n\t\n\t /**\n\t * Tool panel view. Events triggered include:\n\t * tool_link_click(click event, tool_model)\n\t */\n\t var ToolPanelView = Backbone.View.extend({\n\t tagName: 'div',\n\t className: 'toolMenu',\n\t\n\t /**\n\t * Set up view.\n\t */\n\t initialize: function () {\n\t this.model.get('tool_search').on(\"change:results\", this.handle_search_results, this);\n\t },\n\t\n\t render: function () {\n\t var self = this;\n\t\n\t // Render search.\n\t var search_view = new ToolSearchView({ model: this.model.get('tool_search') });\n\t search_view.render();\n\t self.$el.append(search_view.$el);\n\t\n\t // Render panel.\n\t this.model.get('layout').each(function (panel_elt) {\n\t if (panel_elt instanceof ToolSection) {\n\t var section_title_view = new ToolSectionView({ model: panel_elt });\n\t section_title_view.render();\n\t self.$el.append(section_title_view.$el);\n\t } else if (panel_elt instanceof Tool) {\n\t var tool_view = new ToolLinkView({ model: panel_elt, className: \"toolTitleNoSection\" });\n\t tool_view.render();\n\t self.$el.append(tool_view.$el);\n\t } else if (panel_elt instanceof ToolSectionLabel) {\n\t var label_view = new ToolSectionLabelView({ model: panel_elt });\n\t label_view.render();\n\t self.$el.append(label_view.$el);\n\t }\n\t });\n\t\n\t // Setup tool link click eventing.\n\t self.$el.find(\"a.tool-link\").click(function (e) {\n\t // Tool id is always the first class.\n\t var tool_id = $(this).attr('class').split(/\\s+/)[0],\n\t tool = self.model.get('tools').get(tool_id);\n\t\n\t self.trigger(\"tool_link_click\", e, tool);\n\t });\n\t\n\t return this;\n\t },\n\t\n\t handle_search_results: function () {\n\t var results = this.model.get('tool_search').get('results');\n\t if (results && results.length === 0) {\n\t $(\"#search-no-results\").show();\n\t } else {\n\t $(\"#search-no-results\").hide();\n\t }\n\t }\n\t });\n\t\n\t /**\n\t * View for working with a tool: setting parameters and inputs and executing the tool.\n\t */\n\t var ToolFormView = Backbone.View.extend({\n\t className: 'toolForm',\n\t\n\t render: function () {\n\t this.$el.children().remove();\n\t this.$el.append(templates.tool_form(this.model.toJSON()));\n\t }\n\t });\n\t\n\t /**\n\t * Integrated tool menu + tool execution.\n\t */\n\t var IntegratedToolMenuAndView = Backbone.View.extend({\n\t className: 'toolMenuAndView',\n\t\n\t initialize: function () {\n\t this.tool_panel_view = new ToolPanelView({ collection: this.collection });\n\t this.tool_form_view = new ToolFormView();\n\t },\n\t\n\t render: function () {\n\t // Render and append tool panel.\n\t this.tool_panel_view.render();\n\t this.tool_panel_view.$el.css(\"float\", \"left\");\n\t this.$el.append(this.tool_panel_view.$el);\n\t\n\t // Append tool form view.\n\t this.tool_form_view.$el.hide();\n\t this.$el.append(this.tool_form_view.$el);\n\t\n\t // On tool link click, show tool.\n\t var self = this;\n\t this.tool_panel_view.on(\"tool_link_click\", function (e, tool) {\n\t // Prevents click from activating link:\n\t e.preventDefault();\n\t // Show tool that was clicked on:\n\t self.show_tool(tool);\n\t });\n\t },\n\t\n\t /**\n\t * Fetch and display tool.\n\t */\n\t show_tool: function (tool) {\n\t var self = this;\n\t tool.fetch().done(function () {\n\t self.tool_form_view.model = tool;\n\t self.tool_form_view.render();\n\t self.tool_form_view.$el.show();\n\t $('#left').width(\"650px\");\n\t });\n\t }\n\t });\n\t\n\t // TODO: move into relevant views\n\t var templates = {\n\t // the search bar at the top of the tool panel\n\t tool_search: _.template(['\" autocomplete=\"off\" type=\"text\" />', ' ',\n\t //TODO: replace with icon\n\t ''].join('')),\n\t\n\t // the category level container in the tool panel (e.g. 'Get Data', 'Text Manipulation')\n\t panel_section: _.template(['
    \">', '<%- name %>', '
    ', '
    \" class=\"toolSectionBody\" style=\"display: none;\">', '
    ', '
    '].join('')),\n\t\n\t // a single tool's link in the tool panel; will load the tool form in the center panel\n\t tool_link: _.template(['', '<% _.each( labels, function( label ){ %>', '\">', '<%- label %>', '', '<% }); %>', '', ' tool-link\" href=\"<%= link %>\" target=\"<%- target %>\" minsizehint=\"<%- min_width %>\">', '<%- name %>', '', ' <%- description %>'].join('')),\n\t\n\t // the tool form for entering tool parameters, viewing help and executing the tool\n\t // loaded when a tool link is clicked in the tool panel\n\t tool_form: _.template(['
    <%- tool.name %> (version <%- tool.version %>)
    ', '
    ', '<% _.each( tool.inputs, function( input ){ %>', '
    ', '', '
    ', '<%= input.html %>', '
    ', '
    ', '<%- input.help %>', '
    ', '
    ', '
    ', '<% }); %>', '
    ', '
    ', '', '
    ', '
    ', '
    <% tool.help %>
    ', '
    '].join(''), { variable: 'tool' })\n\t };\n\t\n\t // Exports\n\t return {\n\t ToolParameter: ToolParameter,\n\t IntegerToolParameter: IntegerToolParameter,\n\t SelectToolParameter: SelectToolParameter,\n\t Tool: Tool,\n\t ToolCollection: ToolCollection,\n\t ToolSearch: ToolSearch,\n\t ToolPanel: ToolPanel,\n\t ToolPanelView: ToolPanelView,\n\t ToolFormView: ToolFormView\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 57 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/** Renders the color picker used e.g. in the tool form **/\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t return Backbone.View.extend({\n\t colors: {\n\t standard: ['c00000', 'ff0000', 'ffc000', 'ffff00', '92d050', '00b050', '00b0f0', '0070c0', '002060', '7030a0'],\n\t base: ['ffffff', '000000', 'eeece1', '1f497d', '4f81bd', 'c0504d', '9bbb59', '8064a2', '4bacc6', 'f79646'],\n\t theme: [['f2f2f2', '7f7f7f', 'ddd9c3', 'c6d9f0', 'dbe5f1', 'f2dcdb', 'ebf1dd', 'e5e0ec', 'dbeef3', 'fdeada'], ['d8d8d8', '595959', 'c4bd97', '8db3e2', 'b8cce4', 'e5b9b7', 'd7e3bc', 'ccc1d9', 'b7dde8', 'fbd5b5'], ['bfbfbf', '3f3f3f', '938953', '548dd4', '95b3d7', 'd99694', 'c3d69b', 'b2a2c7', '92cddc', 'fac08f'], ['a5a5a5', '262626', '494429', '17365d', '366092', '953734', '76923c', '5f497a', '31859b', 'e36c09'], ['7f7f7e', '0c0c0c', '1d1b10', '0f243e', '244061', '632423', '4f6128', '3f3151', '205867', '974806']]\n\t },\n\t\n\t initialize: function (options) {\n\t this.options = Utils.merge(options, {});\n\t this.setElement(this._template());\n\t this.$panel = this.$('.ui-color-picker-panel');\n\t this.$view = this.$('.ui-color-picker-view');\n\t this.$value = this.$('.ui-color-picker-value');\n\t this.$header = this.$('.ui-color-picker-header');\n\t this._build();\n\t this.visible = false;\n\t this.value(this.options.value);\n\t this.$boxes = this.$('.ui-color-picker-box');\n\t var self = this;\n\t this.$boxes.on('click', function () {\n\t self.value($(this).css('background-color'));\n\t self.$header.trigger('click');\n\t });\n\t this.$header.on('click', function () {\n\t self.visible = !self.visible;\n\t if (self.visible) {\n\t self.$view.fadeIn('fast');\n\t } else {\n\t self.$view.fadeOut('fast');\n\t }\n\t });\n\t },\n\t\n\t /** Get/set value */\n\t value: function (new_val) {\n\t if (new_val !== undefined && new_val !== null) {\n\t this.$value.css('background-color', new_val);\n\t this.$('.ui-color-picker-box').empty();\n\t this.$(this._getValue()).html(this._templateCheck());\n\t this.options.onchange && this.options.onchange(new_val);\n\t }\n\t return this._getValue();\n\t },\n\t\n\t /** Get value from dom */\n\t _getValue: function () {\n\t var rgb = this.$value.css('background-color');\n\t rgb = rgb.match(/^rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)$/);\n\t if (rgb) {\n\t function hex(x) {\n\t return ('0' + parseInt(x).toString(16)).slice(-2);\n\t }\n\t return '#' + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);\n\t } else {\n\t return null;\n\t }\n\t },\n\t\n\t /** Build color panel */\n\t _build: function () {\n\t this._content({ colors: this.colors.base });\n\t for (var i in this.colors.theme) {\n\t var line_def = {};\n\t if (i == 0) {\n\t line_def['bottom'] = true;\n\t } else if (i != this.colors.theme.length - 1) {\n\t line_def['top'] = true;\n\t line_def['bottom'] = true;\n\t } else {\n\t line_def['top'] = true;\n\t }\n\t line_def['colors'] = this.colors.theme[i];\n\t this._content(line_def);\n\t }\n\t this._content({ colors: this.colors.standard });\n\t },\n\t\n\t /** Create content */\n\t _content: function (options) {\n\t var colors = options.colors;\n\t var $content = $(this._templateContent());\n\t var $line = $content.find('.line');\n\t this.$panel.append($content);\n\t for (var i in colors) {\n\t var $box = $(this._templateBox(colors[i]));\n\t if (options.top) {\n\t $box.css('border-top', 'none');\n\t $box.css('border-top-left-radius', '0px');\n\t $box.css('border-top-right-radius', '0px');\n\t }\n\t if (options.bottom) {\n\t $box.css('border-bottom', 'none');\n\t $box.css('border-bottom-left-radius', '0px');\n\t $box.css('border-bottom-right-radius', '0px');\n\t }\n\t $line.append($box);\n\t }\n\t return $content;\n\t },\n\t\n\t /** Check icon */\n\t _templateCheck: function () {\n\t return '
    ';\n\t },\n\t\n\t /** Content template */\n\t _templateContent: function () {\n\t return '
    ' + '
    ' + '
    ';\n\t },\n\t\n\t /** Box template */\n\t _templateBox: function (color) {\n\t return '
    ';\n\t },\n\t\n\t /** Main template */\n\t _template: function () {\n\t return '
    ' + '
    ' + '
    ' + '
    Select a color
    ' + '
    ' + '
    ' + '
    ' + '
    ';\n\t '
    ';\n\t }\n\t });\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 58 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function($, _) {/** This class creates/wraps a drill down element. */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(24)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Options) {\n\t\n\t var View = Options.BaseIcons.extend({\n\t initialize: function (options) {\n\t options.type = options.display || 'checkbox';\n\t options.multiple = options.type == 'checkbox';\n\t Options.BaseIcons.prototype.initialize.call(this, options);\n\t },\n\t\n\t /** Set states for selected values */\n\t _setValue: function (new_value) {\n\t Options.BaseIcons.prototype._setValue.call(this, new_value);\n\t if (new_value !== undefined && new_value !== null && this.header_index) {\n\t var self = this;\n\t var values = $.isArray(new_value) ? new_value : [new_value];\n\t _.each(values, function (v) {\n\t var list = self.header_index[v];\n\t _.each(list, function (element) {\n\t self._setState(element, true);\n\t });\n\t });\n\t }\n\t },\n\t\n\t /** Expand/collapse a sub group */\n\t _setState: function (header_id, is_expanded) {\n\t var $button = this.$('.button-' + header_id);\n\t var $subgroup = this.$('.subgroup-' + header_id);\n\t $button.data('is_expanded', is_expanded);\n\t if (is_expanded) {\n\t $subgroup.show();\n\t $button.removeClass('fa-plus-square').addClass('fa-minus-square');\n\t } else {\n\t $subgroup.hide();\n\t $button.removeClass('fa-minus-square').addClass('fa-plus-square');\n\t }\n\t },\n\t\n\t /** Template to create options tree */\n\t _templateOptions: function () {\n\t var self = this;\n\t this.header_index = {};\n\t\n\t // attach event handler\n\t function attach($el, header_id) {\n\t var $button = $el.find('.button-' + header_id);\n\t $button.on('click', function () {\n\t self._setState(header_id, !$button.data('is_expanded'));\n\t });\n\t }\n\t\n\t // recursive function which iterates through options\n\t function iterate($tmpl, options, header) {\n\t header = header || [];\n\t for (i in options) {\n\t var level = options[i];\n\t var has_options = level.options && level.options.length > 0;\n\t var new_header = header.slice(0);\n\t self.header_index[level.value] = new_header.slice(0);\n\t var $group = $('
    ');\n\t if (has_options) {\n\t var header_id = Utils.uid();\n\t var $button = $('').addClass('button-' + header_id).addClass('ui-drilldown-button fa fa-plus-square');\n\t var $subgroup = $('
    ').addClass('subgroup-' + header_id).addClass('ui-drilldown-subgroup');\n\t $group.append($('
    ').append($button).append(self._templateOption({ label: level.name, value: level.value })));\n\t new_header.push(header_id);\n\t iterate($subgroup, level.options, new_header);\n\t $group.append($subgroup);\n\t attach($group, header_id);\n\t } else {\n\t $group.append(self._templateOption({ label: level.name, value: level.value }));\n\t }\n\t $tmpl.append($group);\n\t }\n\t }\n\t\n\t // iterate through options and create dom\n\t var $tmpl = $('
    ');\n\t iterate($tmpl, this.model.get('data'));\n\t return $tmpl;\n\t },\n\t\n\t /** Template for drill down view */\n\t _template: function () {\n\t return $('
    ').addClass('ui-options-list drilldown-container').attr('id', this.model.id);\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 59 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $, _) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(25)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, Select) {\n\t\n\t /** Batch mode variations */\n\t var Batch = { DISABLED: 'disabled', ENABLED: 'enabled', LINKED: 'linked' };\n\t\n\t /** List of available content selectors options */\n\t var Configurations = {\n\t data: [{ src: 'hda', icon: 'fa-file-o', tooltip: 'Single dataset', multiple: false, batch: Batch.DISABLED }, { src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', multiple: true, batch: Batch.LINKED }, { src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', multiple: false, batch: Batch.LINKED }],\n\t data_multiple: [{ src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', multiple: true, batch: Batch.DISABLED }, { src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collections', multiple: true, batch: Batch.DISABLED }],\n\t data_collection: [{ src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', multiple: false, batch: Batch.DISABLED }],\n\t workflow_data: [{ src: 'hda', icon: 'fa-file-o', tooltip: 'Single dataset', multiple: false, batch: Batch.DISABLED }],\n\t workflow_data_multiple: [{ src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', multiple: true, batch: Batch.DISABLED }],\n\t workflow_data_collection: [{ src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', multiple: false, batch: Batch.DISABLED }],\n\t module_data: [{ src: 'hda', icon: 'fa-file-o', tooltip: 'Single dataset', multiple: false, batch: Batch.DISABLED }, { src: 'hda', icon: 'fa-files-o', tooltip: 'Multiple datasets', multiple: true, batch: Batch.ENABLED }],\n\t module_data_collection: [{ src: 'hdca', icon: 'fa-folder-o', tooltip: 'Dataset collection', multiple: false, batch: Batch.DISABLED }, { src: 'hdca', icon: 'fa-folder', tooltip: 'Multiple collections', multiple: true, batch: Batch.ENABLED }]\n\t };\n\t\n\t /** View for hda and hdca content selector ui elements */\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.model = options && options.model || new Backbone.Model({\n\t src_labels: { 'hda': 'dataset', 'hdca': 'dataset collection' },\n\t pagelimit: 100,\n\t statustimer: 1000\n\t }).set(options);\n\t this.setElement($('
    ').addClass('ui-select-content'));\n\t this.button_product = new Ui.RadioButton.View({\n\t value: 'false',\n\t data: [{ icon: 'fa fa-chain', value: 'false',\n\t tooltip: 'Linked inputs will be run in matched order with other datasets e.g. use this for matching forward and reverse reads.' }, { icon: 'fa fa-chain-broken', value: 'true',\n\t tooltip: 'Unlinked dataset inputs will be run against *all* other inputs.' }] });\n\t var $batch_div = $('
    ').addClass('ui-form-info').append($('').addClass('fa fa-sitemap')).append($('').html('This is a batch mode input field. Separate jobs will be triggered for each dataset selection.'));\n\t this.$batch = {\n\t linked: $batch_div.clone(),\n\t enabled: $batch_div.clone().append($('
    ').append($('
    ').addClass('ui-form-title').html('Batch options:')).append(this.button_product.$el)).append($('
    ').css('clear', 'both'))\n\t };\n\t\n\t // add drag-drop event handlers\n\t this.$el.on('dragenter', function (e) {\n\t this.lastenter = e.target;self.$el.addClass('ui-dragover');\n\t }).on('dragover', function (e) {\n\t e.preventDefault();\n\t }).on('dragleave', function (e) {\n\t this.lastenter === e.target && self.$el.removeClass('ui-dragover');\n\t }).on('drop', function (e) {\n\t self._handleDrop(e);\n\t });\n\t\n\t // track current history elements\n\t this.history = {};\n\t\n\t // add listeners\n\t this.listenTo(this.model, 'change:data', this._changeData, this);\n\t this.listenTo(this.model, 'change:wait', this._changeWait, this);\n\t this.listenTo(this.model, 'change:current', this._changeCurrent, this);\n\t this.listenTo(this.model, 'change:value', this._changeValue, this);\n\t this.listenTo(this.model, 'change:type change:optional change:multiple change:extensions', this._changeType, this);\n\t this.render();\n\t\n\t // add change event\n\t this.on('change', function () {\n\t options.onchange && options.onchange(self.value());\n\t });\n\t },\n\t\n\t render: function () {\n\t this._changeType();\n\t this._changeValue();\n\t this._changeWait();\n\t },\n\t\n\t /** Indicate that select fields are being updated */\n\t wait: function () {\n\t this.model.set('wait', true);\n\t },\n\t\n\t /** Indicate that the options update has been completed */\n\t unwait: function () {\n\t this.model.set('wait', false);\n\t },\n\t\n\t /** Update data representing selectable options */\n\t update: function (options) {\n\t this.model.set('data', options);\n\t },\n\t\n\t /** Return the currently selected dataset values */\n\t value: function (new_value) {\n\t new_value !== undefined && this.model.set('value', new_value);\n\t var current = this.model.get('current');\n\t if (this.config[current]) {\n\t var id_list = this.fields[current].value();\n\t if (id_list !== null) {\n\t id_list = $.isArray(id_list) ? id_list : [id_list];\n\t if (id_list.length > 0) {\n\t var result = this._batch({ values: [] });\n\t for (var i in id_list) {\n\t var details = this.history[id_list[i] + '_' + this.config[current].src];\n\t if (details) {\n\t result.values.push(details);\n\t } else {\n\t Galaxy.emit.debug('ui-select-content::value()', 'Requested details not found for \\'' + id_list[i] + '\\'.');\n\t return null;\n\t }\n\t }\n\t result.values.sort(function (a, b) {\n\t return a.hid - b.hid;\n\t });\n\t return result;\n\t }\n\t }\n\t } else {\n\t Galaxy.emit.debug('ui-select-content::value()', 'Invalid value/source \\'' + new_value + '\\'.');\n\t }\n\t return null;\n\t },\n\t\n\t /** Change of current select field */\n\t _changeCurrent: function () {\n\t var self = this;\n\t _.each(this.fields, function (field, i) {\n\t if (self.model.get('current') == i) {\n\t field.$el.show();\n\t _.each(self.$batch, function ($batchfield, batchmode) {\n\t $batchfield[self.config[i].batch == batchmode ? 'show' : 'hide']();\n\t });\n\t self.button_type.value(i);\n\t } else {\n\t field.$el.hide();\n\t }\n\t });\n\t },\n\t\n\t /** Change of type */\n\t _changeType: function () {\n\t var self = this;\n\t\n\t // identify selector type identifier i.e. [ flavor ]_[ type ]_[ multiple ]\n\t var config_id = (this.model.get('flavor') ? this.model.get('flavor') + '_' : '') + String(this.model.get('type')) + (this.model.get('multiple') ? '_multiple' : '');\n\t if (Configurations[config_id]) {\n\t this.config = Configurations[config_id];\n\t } else {\n\t this.config = Configurations['data'];\n\t Galaxy.emit.debug('ui-select-content::_changeType()', 'Invalid configuration/type id \\'' + config_id + '\\'.');\n\t }\n\t\n\t // prepare extension component of error message\n\t var data = self.model.get('data');\n\t var extensions = Utils.textify(this.model.get('extensions'));\n\t var src_labels = this.model.get('src_labels');\n\t\n\t // build views\n\t this.fields = [];\n\t this.button_data = [];\n\t _.each(this.config, function (c, i) {\n\t self.button_data.push({\n\t value: i,\n\t icon: c.icon,\n\t tooltip: c.tooltip\n\t });\n\t self.fields.push(new Select.View({\n\t optional: self.model.get('optional'),\n\t multiple: c.multiple,\n\t searchable: !c.multiple || data && data[c.src] && data[c.src].length > self.model.get('pagelimit'),\n\t selectall: false,\n\t error_text: 'No ' + (extensions ? extensions + ' ' : '') + (src_labels[c.src] || 'content') + ' available.',\n\t onchange: function () {\n\t self.trigger('change');\n\t }\n\t }));\n\t });\n\t this.button_type = new Ui.RadioButton.View({\n\t value: this.model.get('current'),\n\t data: this.button_data,\n\t onchange: function (value) {\n\t self.model.set('current', value);\n\t self.trigger('change');\n\t }\n\t });\n\t\n\t // append views\n\t this.$el.empty();\n\t var button_width = 0;\n\t if (this.fields.length > 1) {\n\t this.$el.append(this.button_type.$el);\n\t button_width = Math.max(0, this.fields.length * 36) + 'px';\n\t }\n\t _.each(this.fields, function (field) {\n\t self.$el.append(field.$el.css({ 'margin-left': button_width }));\n\t });\n\t _.each(this.$batch, function ($batchfield, batchmode) {\n\t self.$el.append($batchfield.css({ 'margin-left': button_width }));\n\t });\n\t this.model.set('current', 0);\n\t this._changeCurrent();\n\t this._changeData();\n\t },\n\t\n\t /** Change of wait flag */\n\t _changeWait: function () {\n\t var self = this;\n\t _.each(this.fields, function (field) {\n\t field[self.model.get('wait') ? 'wait' : 'unwait']();\n\t });\n\t },\n\t\n\t /** Change of available options */\n\t _changeData: function () {\n\t var options = this.model.get('data');\n\t var self = this;\n\t var select_options = {};\n\t _.each(options, function (items, src) {\n\t select_options[src] = [];\n\t _.each(items, function (item) {\n\t select_options[src].push({\n\t hid: item.hid,\n\t keep: item.keep,\n\t label: item.hid + ': ' + item.name,\n\t value: item.id,\n\t tags: item.tags\n\t });\n\t self.history[item.id + '_' + src] = item;\n\t });\n\t });\n\t _.each(this.config, function (c, i) {\n\t select_options[c.src] && self.fields[i].add(select_options[c.src], function (a, b) {\n\t return b.hid - a.hid;\n\t });\n\t });\n\t },\n\t\n\t /** Change of incoming value */\n\t _changeValue: function () {\n\t var new_value = this.model.get('value');\n\t if (new_value && new_value.values && new_value.values.length > 0) {\n\t // create list with content ids\n\t var list = [];\n\t _.each(new_value.values, function (value) {\n\t list.push(value.id);\n\t });\n\t // sniff first suitable field type from config list\n\t var src = new_value.values[0].src;\n\t var multiple = new_value.values.length > 1;\n\t for (var i = 0; i < this.config.length; i++) {\n\t var field = this.fields[i];\n\t var c = this.config[i];\n\t if (c.src == src && [multiple, true].indexOf(c.multiple) !== -1) {\n\t this.model.set('current', i);\n\t field.value(list);\n\t break;\n\t }\n\t }\n\t } else {\n\t _.each(this.fields, function (field) {\n\t field.value(null);\n\t });\n\t }\n\t },\n\t\n\t /** Handles drop events e.g. from history panel */\n\t _handleDrop: function (ev) {\n\t try {\n\t var data = this.model.get('data');\n\t var current = this.model.get('current');\n\t var config = this.config[current];\n\t var field = this.fields[current];\n\t var drop_data = JSON.parse(ev.originalEvent.dataTransfer.getData('text'))[0];\n\t var new_id = drop_data.id;\n\t var new_src = drop_data.history_content_type == 'dataset' ? 'hda' : 'hdca';\n\t var new_value = { id: new_id, src: new_src };\n\t if (data && _.findWhere(data[new_src], new_value)) {\n\t if (config.src == new_src) {\n\t var current_value = field.value();\n\t if (current_value && config.multiple) {\n\t if (current_value.indexOf(new_id) == -1) {\n\t current_value.push(new_id);\n\t }\n\t } else {\n\t current_value = new_id;\n\t }\n\t field.value(current_value);\n\t } else {\n\t this.model.set('value', { values: [new_value] });\n\t this.model.trigger('change:value');\n\t }\n\t this.trigger('change');\n\t this._handleDropStatus('success');\n\t } else {\n\t this._handleDropStatus('danger');\n\t }\n\t } catch (e) {\n\t this._handleDropStatus('danger');\n\t }\n\t },\n\t\n\t /** Highlight drag result */\n\t _handleDropStatus: function (status) {\n\t var self = this;\n\t this.$el.removeClass('ui-dragover').addClass('ui-dragover-' + status);\n\t setTimeout(function () {\n\t self.$el.removeClass('ui-dragover-' + status);\n\t }, this.model.get('statustimer'));\n\t },\n\t\n\t /** Assists in identifying the batch mode */\n\t _batch: function (result) {\n\t result['batch'] = false;\n\t var current = this.model.get('current');\n\t var config = this.config[current];\n\t if (config.src == 'hdca' && !config.multiple) {\n\t var hdca = this.history[this.fields[current].value() + '_hdca'];\n\t if (hdca && hdca.map_over_type) {\n\t result['batch'] = true;\n\t }\n\t }\n\t if (config.batch == Batch.LINKED || config.batch == Batch.ENABLED) {\n\t result['batch'] = true;\n\t if (config.batch == Batch.ENABLED && this.button_product.value() === 'true') {\n\t result['product'] = true;\n\t }\n\t }\n\t return result;\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1), __webpack_require__(2)))\n\n/***/ },\n/* 60 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(23)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, List) {\n\t\n\t /**\n\t * FTP file selector\n\t */\n\t var View = Backbone.View.extend({\n\t // initialize\n\t initialize: function (options) {\n\t // link this\n\t var self = this;\n\t\n\t // create ui-list view to keep track of selected ftp files\n\t this.ftpfile_list = new List.View({\n\t name: 'file',\n\t optional: options.optional,\n\t multiple: options.multiple,\n\t onchange: function () {\n\t options.onchange && options.onchange(self.value());\n\t }\n\t });\n\t\n\t // create elements\n\t this.setElement(this.ftpfile_list.$el);\n\t\n\t // initial fetch of ftps\n\t Utils.get({\n\t url: Galaxy.root + 'api/remote_files',\n\t success: function (response) {\n\t var data = [];\n\t for (var i in response) {\n\t data.push({\n\t value: response[i]['path'],\n\t label: response[i]['path']\n\t });\n\t }\n\t self.ftpfile_list.update(data);\n\t }\n\t });\n\t },\n\t\n\t /** Return/Set currently selected ftp datasets */\n\t value: function (val) {\n\t return this.ftpfile_list.value(val);\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))\n\n/***/ },\n/* 61 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone) {// dependencies\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4), __webpack_require__(7), __webpack_require__(32), __webpack_require__(23)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils, Ui, Table, List) {\n\t\n\t // collection of libraries\n\t var Libraries = Backbone.Collection.extend({\n\t url: Galaxy.root + 'api/libraries?deleted=false'\n\t });\n\t\n\t // collection of dataset\n\t var LibraryDatasets = Backbone.Collection.extend({\n\t initialize: function () {\n\t var self = this;\n\t this.config = new Backbone.Model({ library_id: null });\n\t this.config.on('change', function () {\n\t self.fetch({ reset: true });\n\t });\n\t },\n\t url: function () {\n\t return Galaxy.root + 'api/libraries/' + this.config.get('library_id') + '/contents';\n\t }\n\t });\n\t\n\t // hda/hdca content selector ui element\n\t var View = Backbone.View.extend({\n\t // initialize\n\t initialize: function (options) {\n\t // link this\n\t var self = this;\n\t\n\t // collections\n\t this.libraries = new Libraries();\n\t this.datasets = new LibraryDatasets();\n\t\n\t // link app and options\n\t this.options = options;\n\t\n\t // select field for the library\n\t // TODO: Remove this once the library API supports searching for library datasets\n\t this.library_select = new Ui.Select.View({\n\t onchange: function (value) {\n\t self.datasets.config.set('library_id', value);\n\t }\n\t });\n\t\n\t // create ui-list view to keep track of selected data libraries\n\t this.dataset_list = new List.View({\n\t name: 'dataset',\n\t optional: options.optional,\n\t multiple: options.multiple,\n\t onchange: function () {\n\t self.trigger('change');\n\t }\n\t });\n\t\n\t // add reset handler for fetched libraries\n\t this.libraries.on('reset', function () {\n\t var data = [];\n\t self.libraries.each(function (model) {\n\t data.push({\n\t value: model.id,\n\t label: model.get('name')\n\t });\n\t });\n\t self.library_select.update(data);\n\t });\n\t\n\t // add reset handler for fetched library datasets\n\t this.datasets.on('reset', function () {\n\t var data = [];\n\t var library_current = self.library_select.text();\n\t if (library_current !== null) {\n\t self.datasets.each(function (model) {\n\t if (model.get('type') === 'file') {\n\t data.push({\n\t value: model.id,\n\t label: model.get('name')\n\t });\n\t }\n\t });\n\t }\n\t self.dataset_list.update(data);\n\t });\n\t\n\t // add change event. fires on trigger\n\t this.on('change', function () {\n\t options.onchange && options.onchange(self.value());\n\t });\n\t\n\t // create elements\n\t this.setElement(this._template());\n\t this.$('.library-select').append(this.library_select.$el);\n\t this.$el.append(this.dataset_list.$el);\n\t\n\t // initial fetch of libraries\n\t this.libraries.fetch({\n\t reset: true,\n\t success: function () {\n\t self.library_select.trigger('change');\n\t if (self.options.value !== undefined) {\n\t self.value(self.options.value);\n\t }\n\t }\n\t });\n\t },\n\t\n\t /** Return/Set currently selected library datasets */\n\t value: function (val) {\n\t return this.dataset_list.value(val);\n\t },\n\t\n\t /** Template */\n\t _template: function () {\n\t return '
    ' + '
    ' + 'Select Library' + '' + '
    ' + '
    ';\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3)))\n\n/***/ },\n/* 62 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.model = options && options.model || new Backbone.Model({\n\t id: Utils.uid(),\n\t min: null,\n\t max: null,\n\t step: null,\n\t precise: false,\n\t split: 10000,\n\t value: null,\n\t onchange: function () {}\n\t }).set(options);\n\t\n\t // create new element\n\t this.setElement(this._template());\n\t this.$el.attr('id', this.model.id);\n\t this.$text = this.$('.ui-form-slider-text');\n\t this.$slider = this.$('.ui-form-slider-element');\n\t\n\t // add text field event\n\t var pressed = [];\n\t this.$text.on('change', function () {\n\t self.value($(this).val());\n\t }).on('keyup', function (e) {\n\t pressed[e.which] = false;\n\t }).on('keydown', function (e) {\n\t var v = e.which;\n\t pressed[v] = true;\n\t if (self.model.get('is_workflow') && pressed[16] && v == 52) {\n\t self.value('$');\n\t event.preventDefault();\n\t } else if (!(v == 8 || v == 9 || v == 13 || v == 37 || v == 39 || v >= 48 && v <= 57 && !pressed[16] || v >= 96 && v <= 105 || (v == 190 || v == 110) && $(this).val().indexOf('.') == -1 && self.model.get('precise') || (v == 189 || v == 109) && $(this).val().indexOf('-') == -1 || self._isParameter($(this).val()) || pressed[91] || pressed[17])) {\n\t event.preventDefault();\n\t }\n\t });\n\t\n\t // build slider, cannot be rebuild in render\n\t var opts = this.model.attributes;\n\t this.has_slider = opts.max !== null && opts.min !== null && opts.max > opts.min;\n\t var step = opts.step;\n\t if (!step) {\n\t if (opts.precise && this.has_slider) {\n\t step = (opts.max - opts.min) / opts.split;\n\t } else {\n\t step = 1.0;\n\t }\n\t }\n\t if (this.has_slider) {\n\t this.$text.addClass('ui-form-slider-left');\n\t this.$slider.slider({ min: opts.min, max: opts.max, step: step }).on('slide', function (event, ui) {\n\t self.value(ui.value);\n\t });\n\t } else {\n\t this.$slider.hide();\n\t }\n\t\n\t // add listeners\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.render();\n\t },\n\t\n\t render: function () {\n\t var value = this.model.get('value');\n\t this.has_slider && this.$slider.slider('value', value);\n\t value !== this.$text.val() && this.$text.val(value);\n\t },\n\t\n\t /** Set and return the current value */\n\t value: function (new_val) {\n\t var options = this.model.attributes;\n\t if (new_val !== undefined) {\n\t if (new_val !== null && new_val !== '' && !this._isParameter(new_val)) {\n\t isNaN(new_val) && (new_val = 0);\n\t !options.precise && (new_val = Math.round(new_val));\n\t options.max !== null && (new_val = Math.min(new_val, options.max));\n\t options.min !== null && (new_val = Math.max(new_val, options.min));\n\t }\n\t this.model.set('value', new_val);\n\t this.model.trigger('change');\n\t options.onchange(new_val);\n\t }\n\t return this.model.get('value');\n\t },\n\t\n\t /** Return true if the field contains a workflow parameter i.e. $('name') */\n\t _isParameter: function (value) {\n\t return this.model.get('is_workflow') && String(value).substring(0, 1) === '$';\n\t },\n\t\n\t /** Slider template */\n\t _template: function () {\n\t return '
    ' + '' + '
    ' + '
    ';\n\t }\n\t });\n\t\n\t return {\n\t View: View\n\t };\n\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(3), __webpack_require__(1)))\n\n/***/ },\n/* 63 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(Backbone, $) {/**\n\t * Renders tabs e.g. used in the charts editor, behaves similar to repeat and section rendering\n\t */\n\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(4)], __WEBPACK_AMD_DEFINE_RESULT__ = function (Utils) {\n\t var View = Backbone.View.extend({\n\t initialize: function (options) {\n\t var self = this;\n\t this.collection = new Backbone.Collection();\n\t this.model = options && options.model || new Backbone.Model({\n\t onchange: null,\n\t visible: true\n\t }).set(options);\n\t this.setElement($(this._template()));\n\t this.$nav = this.$('.tab-navigation');\n\t this.$content = this.$('.tab-content');\n\t this.$el.on('click', function () {\n\t $('.tooltip').hide();\n\t });\n\t this.render();\n\t this.listenTo(this.model, 'change', this.render, this);\n\t this.listenTo(this.collection, 'add', this._add, this);\n\t this.listenTo(this.collection, 'remove', this._remove, this);\n\t this.listenTo(this.collection, 'change', this._change, this);\n\t this.listenTo(this.collection, 'reset', this._reset, this);\n\t this.listenTo(this.collection, 'add remove reset', this.render, this);\n\t },\n\t\n\t render: function () {\n\t var id = this.model.get('current');\n\t id = this.$('#' + id).length > 0 ? id : this.first();\n\t if (id) {\n\t this.$nav.children().removeClass('active');\n\t this.$content.children().removeClass('active');\n\t this.$('#tab-' + id).addClass('active');\n\t this.$('#' + id).addClass('active');\n\t }\n\t this.$el[this.model.get('visible') ? 'fadeIn' : 'fadeOut']('fast');\n\t this.$nav[this.size() > 1 ? 'show' : 'hide']();\n\t },\n\t\n\t /** Returns tab id for currently shown tab */\n\t current: function () {\n\t return this.model.get('current');\n\t },\n\t\n\t /** Show tab view and highlight a tab by id */\n\t show: function (id) {\n\t if (id) {\n\t this.model.set({ 'current': id, 'visible': true });\n\t this.model.get('onchange') && this.model.get('onchange')(id);\n\t }\n\t },\n\t\n\t /** Hide tab view */\n\t hide: function () {\n\t this.model.set('visible', false);\n\t },\n\t\n\t /** Returns first tab */\n\t first: function () {\n\t var model = this.collection.first();\n\t return model && model.id;\n\t },\n\t\n\t /** Returns current number of tabs */\n\t size: function () {\n\t return this.collection.length;\n\t },\n\t\n\t /** Adds a new tab */\n\t add: function (options) {\n\t this.collection.add(options);\n\t },\n\t\n\t /** Delete tab */\n\t del: function (id) {\n\t this.collection.remove(id);\n\t },\n\t\n\t /** Delete all tabs */\n\t delAll: function () {\n\t this.collection.reset();\n\t },\n\t\n\t /** Show tab */\n\t showTab: function (id) {\n\t this.collection.get(id).set('hidden', false);\n\t },\n\t\n\t /** Hide tab */\n\t hideTab: function (id) {\n\t this.collection.get(id).set('hidden', true);\n\t },\n\t\n\t /** Adds a new tab */\n\t _add: function (tab_model) {\n\t var self = this;\n\t var options = tab_model.attributes;\n\t this.$content.append($('
    ').attr('id', options.id).addClass('tab-pane').append(options.$el));\n\t this.$nav.append($(this._template_tab(options)).show().tooltip({ title: options.tooltip, placement: 'bottom', container: self.$el }).on('click', function (e) {\n\t e.preventDefault();\n\t self.show(options.id);\n\t }));\n\t if (this.size() == 1) {\n\t this.show(options.id);\n\t }\n\t },\n\t\n\t /** Delete tab */\n\t _remove: function (tab_model) {\n\t this.$('#tab-' + tab_model.id).remove();\n\t this.$('#' + tab_model.id).remove();\n\t },\n\t\n\t /** Reset collection */\n\t _reset: function () {\n\t this.$nav.empty();\n\t this.$content.empty();\n\t },\n\t\n\t /** Change tab */\n\t _change: function (tab_model) {\n\t this.$('#tab-' + tab_model.id)[tab_model.get('hidden') ? 'hide' : 'show']();\n\t },\n\t\n\t /** Main template */\n\t _template: function () {\n\t return $('
    ').addClass('ui-tabs tabbable tabs-left').append($('