diff --git a/client/galaxy/scripts/mvc/history/history-model.js b/client/galaxy/scripts/mvc/history/history-model.js index eb84d6f51e1..6572273ad30 100644 --- a/client/galaxy/scripts/mvc/history/history-model.js +++ b/client/galaxy/scripts/mvc/history/history-model.js @@ -387,12 +387,16 @@ var HistoryCollection = Backbone.Collection.extend( BASE_MVC.LoggableMixin ).ext //logger : console, urlRoot : ( window.galaxy_config? galaxy_config.root : '/' ) + 'api/histories', - //url : function(){ return this.urlRoot; }, + url : function(){ return this.urlRoot; }, initialize : function( models, options ){ options = options || {}; this.log( 'HistoryCollection.initialize', arguments ); + this.includeDeleted = options.includeDeleted || false; + this.offset = options.offset; + this.limit = options.limit; + this.order = options.order; //this.on( 'all', function(){ // console.info( 'event:', arguments ); @@ -401,6 +405,17 @@ var HistoryCollection = Backbone.Collection.extend( BASE_MVC.LoggableMixin ).ext this.setUpListeners(); }, + fetch : function( options ){ + options = options || {}; + if( !this.includeDeleted ){ + var data = options.data || {}; + data.q = 'deleted'; + data.qv = 'False'; + options.data = data; + } + Backbone.Collection.prototype.fetch.call( this, options ); + }, + setUpListeners : function setUpListeners(){ var collection = this; @@ -414,7 +429,9 @@ var HistoryCollection = Backbone.Collection.extend( BASE_MVC.LoggableMixin ).ext // listen for a history copy, adding it to the beginning of the collection this.on( 'copied', function( original, newData ){ - this.unshift( new History( newData, [] ) ); + var history = new History( newData, [] ); + this.unshift( history ); + this.trigger( 'new-current', history, this ); }); }, @@ -426,7 +443,7 @@ var HistoryCollection = Backbone.Collection.extend( BASE_MVC.LoggableMixin ).ext // new histories go in the front //TODO: (implicit ordering by update time...) collection.unshift( history ); - collection.trigger( 'new-current' ); + collection.trigger( 'new-current', history, this ); }); //TODO: move back to using history.save (via Deferred.then w/ set_as_current) }, diff --git a/client/galaxy/scripts/mvc/history/multi-panel.js b/client/galaxy/scripts/mvc/history/multi-panel.js index cb030684db2..50567309299 100644 --- a/client/galaxy/scripts/mvc/history/multi-panel.js +++ b/client/galaxy/scripts/mvc/history/multi-panel.js @@ -411,12 +411,12 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ // --- set up models, sub-views, and listeners /** the original unfiltered and unordered collection of histories */ this.collection = null; - this.setCollection( options.histories || [] ); - /** model id to column map */ this.columnMap = {}; - //TODO: why create here? - this.createColumns( options.columnOptions ); + /** model id to column map */ + this.columnOptions = options.columnOptions || {}; + + this.setCollection( options.histories ); this.setUpListeners(); }, @@ -471,14 +471,31 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ /** Set up a (new) history collection, sorting and adding listeners * @fires 'new-collection' when set with this view as the arg */ - setCollection : function setCollection( models ){ + setCollection : function setCollection( collection ){ + this.stopListening( this.collection ); + + this.collection = collection || new HISTORY_MODEL.HistoryCollection(); + this.setUpCollectionListeners(); + + this.sortCollection( this.order, { silent: true }); + this.createColumns(); + // multipanel.addModels( collection, { silent: true }); + this.trigger( 'new-collection', this ); + return this; + }, + + /** Set up a (new) history collection, sorting and adding listeners + * @fires 'new-collection' when set with this view as the arg + */ + addModels : function setCollection( models, collection, options ){ + // options = options || {}; var multipanel = this; - multipanel.stopListening( multipanel.collection ); - multipanel.collection = models; - multipanel.sortCollection( multipanel.order, { silent: true }); - multipanel.setUpCollectionListeners(); - multipanel.trigger( 'new-collection', multipanel ); - return multipanel; + models = _.isArray( models )? models : [ models ]; + models.forEach( function( model ){ + multipanel.addColumn( model, false ); + }); +// render? + return this; }, /** Set up listeners for the collection - handling: added histories, change of current, deletion, and sorting */ @@ -486,13 +503,13 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ var multipanel = this, collection = multipanel.collection; multipanel.listenTo( collection, { - // handle addition of histories, triggered by column copy and create new - 'add': multipanel.addAsCurrentColumn, + 'add': multipanel.addModels, // handle setting a history as current, triggered by history.setAsCurrent 'set-as-current': multipanel.setCurrentHistory, // handle deleting a history (depends on whether panels is including deleted or not) 'change:deleted change:purged': multipanel.handleDeletedHistory, - + // handle addition of histories, triggered by column copy and create new + 'new-current': multipanel.addAsCurrentColumn, 'sort' : function(){ multipanel.renderColumns( 0 ); } }); }, @@ -563,6 +580,7 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ this.collection.sort( options ); return this.collection; }, +//TODO: to setOrder /** create a new history and set it to current */ create : function( ev ){ @@ -571,11 +589,12 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ // ------------------------------------------------------------------------ columns /** create columns from collection */ - createColumns : function createColumns( columnOptions ){ - columnOptions = columnOptions || {}; + createColumns : function createColumns( models, columnOptions ){ + columnOptions = columnOptions || this.options.columnOptions; var multipanel = this; // clear column map - this.columnMap = {}; + // TODO: make cummulative + multipanel.columnMap = {}; multipanel.collection.each( function( model, i ){ var column = multipanel.createColumn( model, columnOptions ); multipanel.columnMap[ model.id ] = column; @@ -595,36 +614,10 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ return column; }, - /** return array of Columns filtered by filters and sorted to match the collection - * @param: filters Function[] array of filter fns - */ - sortedFilteredColumns : function( filters ){ - filters = filters || this.filters; - if( !filters || !filters.length ){ - return this.sortedColumns(); - } - var multipanel = this; - return multipanel.sortedColumns().filter( function( column, index ){ - var filtered = column.currentHistory || _.every( filters.map( function( filter ){ - return filter.call( column ); - })); - return filtered; - }); - }, - - /** return array of Columns sorted to match the collection */ - sortedColumns : function(){ - var multipanel = this; - var sorted = this.collection.map( function( history, index ){ - return multipanel.columnMap[ history.id ]; - }); - return sorted; - }, - /** add a new column for history and render all columns if render is true */ addColumn : function add( history, render ){ //this.debug( 'adding column for:', history ); - render = render !== undefined? render: true; + render = render !== undefined? render : true; var newColumn = this.createColumn( history ); this.columnMap[ history.id ] = newColumn; if( render ){ @@ -634,7 +627,8 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ }, /** add a new column for history and make it the current history/column */ - addAsCurrentColumn : function add( history ){ + addAsCurrentColumn : function add( history, collection, options ){ + // console.debug( 'addAsCurrentColumn:', history, collection, options ); //this.log( 'adding current column for:', history ); var multipanel = this, newColumn = this.addColumn( history, false ); @@ -674,7 +668,7 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ multipanel.listenTo( column, { //'all': function(){ console.info( 'column ' + column + ':', arguments ) }, 'in-view': multipanel.queueHdaFetch - }); + }); multipanel.listenTo( column.panel, { //'all': function(){ console.info( 'panel ' + column.panel + ':', arguments ) }, @@ -716,6 +710,32 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ return Object.keys( this.columnMap ).length; }, + /** return array of Columns filtered by filters and sorted to match the collection + * @param: filters Function[] array of filter fns + */ + sortedFilteredColumns : function( filters ){ + filters = filters || this.filters; + if( !filters || !filters.length ){ + return this.sortedColumns(); + } + var multipanel = this; + return multipanel.sortedColumns().filter( function( column, index ){ + var filtered = column.currentHistory || _.every( filters.map( function( filter ){ + return filter.call( column ); + })); + return filtered; + }); + }, + + /** return array of Columns sorted to match the collection */ + sortedColumns : function(){ + var multipanel = this; + var sorted = this.collection.map( function( history, index ){ + return multipanel.columnMap[ history.id ]; + }); + return sorted; + }, + // ------------------------------------------------------------------------ render /** Render this view, columns, and set up view plugins */ render : function render( speed ){ @@ -969,7 +989,9 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ // when scrolling - check for histories now in view: they will fire 'in-view' and queueHdaLoading if necc. //TODO:?? might be able to simplify and not use pub-sub var debouncedInView = _.debounce( function _debouncedInner(){ - multipanel.checkColumnsInView(); + var viewport = multipanel._viewport(); + multipanel.checkColumnsInView( viewport ); + multipanel.checkForEndOfScroll( viewport ); }, 100 ); this.$( '.middle' ).parent().scroll( debouncedInView ); }, @@ -994,15 +1016,20 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ /** Get the left and right pixel coords of the middle element */ _viewport : function(){ - var viewLeft = this.$( '.middle' ).parent().offset().left; - return { left: viewLeft, right: viewLeft + this.$( '.middle' ).parent().width() }; + var $outerMiddle = this.$( '.middle' ).parent(), + viewLeft = $outerMiddle.offset().left, + width = $outerMiddle.width(); + return { + left : viewLeft, + right : viewLeft + width + }; }, /** returns the columns currently in the viewport */ - columnsInView : function(){ + columnsInView : function( viewport ){ //TODO: uses offset which is render intensive //TODO: 2N - could use arg filter (sortedFilteredColumns( filter )) instead - var vp = this._viewport(); + var vp = viewport || this._viewport(); return this.sortedFilteredColumns().filter( function( column ){ return column.currentHistory || column.inView( vp.left, vp.right ); }); @@ -1017,6 +1044,17 @@ var MultiPanelColumns = Backbone.View.extend( baseMVC.LoggableMixin ).extend({ }); }, + /** */ + checkForEndOfScroll : function( viewport ){ + viewport = viewport || this._viewport(); + var END_PADDING = 16, + $middle = this.$( '.middle' ), + scrollRight = $middle.parent().scrollLeft() + viewport.right; + if( scrollRight >= ( $middle.width() - END_PADDING ) ){ + this.trigger( 'end-of-scroll' ); + } + }, + /** Show and enable the current columns drop target */ currentColumnDropTargetOn : function(){ var currentColumn = this.columnMap[ this.currentHistoryId ]; diff --git a/lib/galaxy/webapps/galaxy/api/histories.py b/lib/galaxy/webapps/galaxy/api/histories.py index 1eff7e7df6b..12fd0433280 100644 --- a/lib/galaxy/webapps/galaxy/api/histories.py +++ b/lib/galaxy/webapps/galaxy/api/histories.py @@ -8,7 +8,7 @@ import pkg_resources pkg_resources.require( "Paste" ) pkg_resources.require( "SQLAlchemy >= 0.4" ) -from sqlalchemy import true, false, desc, asc +from sqlalchemy import true, false from galaxy import exceptions from galaxy.web import _future_expose_api as expose_api @@ -166,6 +166,13 @@ class HistoriesController( BaseAPIController, ExportsHistoryMixin, ImportsHistor # otherwise, do the default filter of removing the deleted histories return [ self.app.model.History.deleted == false() ] + def _parse_order_by( self, order_by_string ): + ORDER_BY_SEP_CHAR = ',' + manager = self.history_manager + if ORDER_BY_SEP_CHAR in order_by_string: + return [ manager.parse_order_by( o ) for o in order_by_string.split( ORDER_BY_SEP_CHAR ) ] + return manager.parse_order_by( order_by_string ) + @expose_api_anonymous def show( self, trans, id, deleted='False', **kwd ): """ @@ -418,10 +425,3 @@ class HistoriesController( BaseAPIController, ExportsHistoryMixin, ImportsHistor raise exceptions.MessageException( "Export not available or not yet ready." ) return self.serve_ready_history_export( trans, jeha ) - - def _parse_order_by( self, order_by_string ): - ORDER_BY_SEP_CHAR = ',' - manager = self.history_manager - if ORDER_BY_SEP_CHAR in order_by_string: - return [ manager.parse_order_by( o ) for o in order_by_string.split( ORDER_BY_SEP_CHAR ) ] - return manager.parse_order_by( order_by_string ) diff --git a/lib/galaxy/webapps/galaxy/controllers/history.py b/lib/galaxy/webapps/galaxy/controllers/history.py index fa87eb0c6a0..514f8918f42 100644 --- a/lib/galaxy/webapps/galaxy/controllers/history.py +++ b/lib/galaxy/webapps/galaxy/controllers/history.py @@ -628,7 +628,7 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI show_deleted=show_deleted, show_hidden=show_hidden, use_panels=use_panels ) @web.expose - def view_multiple( self, trans, include_deleted_histories=False, order='update' ): + def view_multiple( self, trans, include_deleted_histories=False, limit=10, order='update' ): """ """ if not trans.user: @@ -641,7 +641,9 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI # TODO: allow specifying user_id for admin? include_deleted_histories = galaxy.util.string_as_bool( include_deleted_histories ) - order = order if order in ( 'update', 'name', 'size' ) else 'update' + limit = limit if limit != 'None' else None + order = order if order in ( 'update_time', 'name', 'size' ) else 'update_time' + order_by = self.history_manager.parse_order_by( order ) deleted_filter = None if not include_deleted_histories: @@ -651,14 +653,15 @@ class HistoryController( BaseUIController, SharableMixin, UsesAnnotations, UsesI current_history_id = trans.security.encode_id( current_history.id ) if current_history else None history_dictionaries = [] - for history in self.history_manager.by_user( trans.user, filters=deleted_filter ): + histories = self.history_manager.by_user( trans.user, filters=deleted_filter, limit=limit, order_by=order_by ) + for history in histories: history_dictionary = self.history_serializer.serialize_to_view( history, - view='detailed', user=trans.user, trans=trans ) + view='detailed', user=trans.user, trans=trans ) history_dictionaries.append( history_dictionary ) return trans.fill_template_mako( "history/view_multiple.mako", - current_history_id=current_history_id, histories=history_dictionaries, - include_deleted_histories=include_deleted_histories, order=order ) + current_history_id=current_history_id, histories=history_dictionaries, + include_deleted_histories=include_deleted_histories, order=order, limit=limit ) @web.expose def display_by_username_and_slug( self, trans, username, slug ): diff --git a/static/maps/mvc/history/history-model.js.map b/static/maps/mvc/history/history-model.js.map index 90d6e40cf7b..86ed46b1fd5 100644 --- a/static/maps/mvc/history/history-model.js.map +++ b/static/maps/mvc/history/history-model.js.map @@ -1 +1 @@ -{"version":3,"file":"history-model.js","sources":["../../../src/mvc/history/history-model.js"],"names":["define","HISTORY_CONTENTS","UTILS","BASE_MVC","History","Backbone","Model","extend","LoggableMixin","mixin","SearchableModelMixin","defaults","model_class","id","name","state","diskSize","deleted","urlRoot","galaxy_config","root","initialize","historyJSON","contentsJSON","options","this","logger","log","contents","HistoryContents","historyId","get","_setUpListeners","updateTimeoutId","on","model","xhr","msg","details","errorHandler","listenTo","trigger","apply","concat","jQuery","makeArray","arguments","newId","clearUpdateTimeout","nice_size","bytesToString","toJSON","_","prototype","call","key","ownedByCurrUser","Galaxy","currUser","isAnonymous","contentsCount","reduce","values","memo","num","searchAttributes","searchAliases","title","tag","checkForUpdates","onReadyCallback","running","length","setUpdateTimeout","isFunction","delay","UPDATE_DELAY","history","setTimeout","refresh","clearTimeout","detailIds","data","join","fetch","done","_delete","when","save","purge","purged","undelete","copy","current","undefined","Error","postData","history_id","post","then","response","newHistory","setAsCurrent","getJSON","toString","getHistoryData","getHistory","ajax","isEmpty","historyData","empty","getContents","detailIdsFn","hdcaDetailIds","dataset_details","dataset_collection_details","df","Deferred","historyFn","contentsFn","historyXHR","json","notify","status","fail","reject","contentsXHR","resolve","HistoryCollection","Collection","window","models","includeDeleted","setUpListeners","collection","debug","remove","original","newData","unshift","create","hdas","historyOptions"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"history-model.js","sources":["../../../src/mvc/history/history-model.js"],"names":["define","HISTORY_CONTENTS","UTILS","BASE_MVC","History","Backbone","Model","extend","LoggableMixin","mixin","SearchableModelMixin","defaults","model_class","id","name","state","diskSize","deleted","urlRoot","galaxy_config","root","initialize","historyJSON","contentsJSON","options","this","logger","log","contents","HistoryContents","historyId","get","_setUpListeners","updateTimeoutId","on","model","xhr","msg","details","errorHandler","listenTo","trigger","apply","concat","jQuery","makeArray","arguments","newId","clearUpdateTimeout","nice_size","bytesToString","toJSON","_","prototype","call","key","ownedByCurrUser","Galaxy","currUser","isAnonymous","contentsCount","reduce","values","memo","num","searchAttributes","searchAliases","title","tag","checkForUpdates","onReadyCallback","running","length","setUpdateTimeout","isFunction","delay","UPDATE_DELAY","history","setTimeout","refresh","clearTimeout","detailIds","data","join","fetch","done","_delete","when","save","purge","purged","undelete","copy","current","undefined","Error","postData","history_id","post","then","response","newHistory","setAsCurrent","getJSON","toString","getHistoryData","getHistory","ajax","isEmpty","historyData","empty","getContents","detailIdsFn","hdcaDetailIds","dataset_details","dataset_collection_details","df","Deferred","historyFn","contentsFn","historyXHR","json","notify","status","fail","reject","contentsXHR","resolve","HistoryCollection","Collection","window","url","models","includeDeleted","offset","limit","order","setUpListeners","q","qv","collection","debug","remove","original","newData","unshift","create","hdas","historyOptions"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/history/multi-panel.js.map b/static/maps/mvc/history/multi-panel.js.map index 2f26adecb76..50733ee753a 100644 --- a/static/maps/mvc/history/multi-panel.js.map +++ b/static/maps/mvc/history/multi-panel.js.map @@ -1 +1 @@ -{"version":3,"file":"multi-panel.js","sources":["../../../src/mvc/history/multi-panel.js"],"names":["define","HISTORY_MODEL","HPANEL_EDIT","baseMVC","ajaxQueue","historyCopyDialog","history","options","validateName","name","Galaxy","modal","$","size","$invalidTitle","attr","css","color","margin-top","addClass","text","_l","append","copyHistory","$copyIndicator","copy","fail","alert","always","hide","checkNameAndCopy","val","historyName","get","defaultCopyName","show","_","extend","title","body","join","buttons","Cancel","Copy","focus","select","on","ev","keyCode","HistoryPanelColumn","Backbone","View","LoggableMixin","tagName","className","id","this","model","initialize","purgeAllowed","isUndefined","panel","createPanel","setUpListeners","panelOptions","dragItems","HistoryPanelEdit","_renderEmptyMessage","__patch_renderEmptyMessage","$whereTo","hdaCount","chain","values","flatten","value","length","$emptyMsg","$emptyMessage","isEmpty","hdaViews","contents","empty","searchFor","noneFoundMsg","emptyMsg","column","once","trigger","setUpPanelListeners","listenTo","rendered","inView","viewLeft","viewRight","columnLeft","$el","offset","left","columnRight","width","$panel","render","speed","undefined","modelData","toJSON","html","template","renderPanel","setUpBehaviors","data","isCurrentHistory","currentHistory","controlsLeftTemplate","view","controlsRightTemplate","setElement","$list","before","_renderDropTargetHelp","events","click .switch-to.btn","setAsCurrent","click .delete-history","_delete","xhr","status","error","done","click .undelete-history","undelete","click .purge-history","confirm","purge","click .copy-history","variable","toString","MultiPanelColumns","log","currentHistoryId","Error","columnWidth","borderWidth","columnGap","headerHeight","footerHeight","controlsHeight","order","_initSortOrders","hdaQueue","NamedAjaxQueue","collection","setCollection","histories","columnMap","createColumns","columnOptions","_comparator","getter","a","b","asc","sortOrders","update","fn","h","Date","name-dsc","size-dsc","models","multipanel","stopListening","sortCollection","silent","setUpCollectionListeners","add","addAsCurrentColumn","set-as-current","setCurrentHistory","change:deleted change:purged","handleDeletedHistory","sort","renderColumns","oldCurrentColumn","height","newCurrentColumn","_recalcFirstColumnHeight","includeDeleted","removeColumn","sortOrder","comparator","is","popover","create","current","each","createColumn","config","allow_user_dataset_purge","setUpColumnListeners","sortedFilteredColumns","filters","sortedColumns","filter","filtered","every","map","call","sorted","addColumn","newColumn","queueHdaFetch","widthToRemove","fadeOut","remove","checkColumnsInView","in-view","view:draggable:dragstart","_dropData","JSON","parse","dataTransfer","getData","currentColumnDropTargetOn","view:draggable:dragend","currentColumnDropTargetOff","droptarget:drop","toCopy","json","isCopyable","queue","forEach","content","start","fetch","columnMapLength","Object","keys","fxSpeed","mainTemplate","sortedAndFiltered","$middle","appendTo","delegateEvents","renderColumn","xhrData","ids","storage","dataset_details","renderItems","running","queueHdaFetchDetails","haveDetails","details","renderInfo","msg","click .done.btn","click .create-new.btn","click #include-deleted","click .order .set-order","click #toggle-deleted","click #toggle-hidden","close","destination","root","galaxy_config","window","location","_clickToggleDeletedHistories","toggleDeletedHistories","currentTarget","_clickToggleDeletedDatasets","toggleDeletedDatasets","i","delay","toggleShowDeleted","_clickToggleHiddenDatasets","toggleHiddenDatasets","toggleShowHidden","_chooseOrder","orderKey","_moreOptionsPopover","searchInput","placeholder","onsearch","matchesAll","onclear","onfirstsearch","clear","searchItems","progress","curr","total","deferred","clearSearch","resize","debouncedInView","debounce","parent","scroll","container","placement","optionsPopoverTemplate","$firstColumn","first","middleHeight","controlHeight","find","_viewport","right","columnsInView","vp","currentColumn","dataDropped","dropTargetOn","prototype","dataDrop","dropTarget","columns"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"multi-panel.js","sources":["../../../src/mvc/history/multi-panel.js"],"names":["define","HISTORY_MODEL","HPANEL_EDIT","baseMVC","ajaxQueue","historyCopyDialog","history","options","validateName","name","Galaxy","modal","$","size","$invalidTitle","attr","css","color","margin-top","addClass","text","_l","append","copyHistory","$copyIndicator","copy","fail","alert","always","hide","checkNameAndCopy","val","historyName","get","defaultCopyName","show","_","extend","title","body","join","buttons","Cancel","Copy","focus","select","on","ev","keyCode","HistoryPanelColumn","Backbone","View","LoggableMixin","tagName","className","id","this","model","initialize","purgeAllowed","isUndefined","panel","createPanel","setUpListeners","panelOptions","dragItems","HistoryPanelEdit","_renderEmptyMessage","__patch_renderEmptyMessage","$whereTo","hdaCount","chain","values","flatten","value","length","$emptyMsg","$emptyMessage","isEmpty","hdaViews","contents","empty","searchFor","noneFoundMsg","emptyMsg","column","once","trigger","setUpPanelListeners","listenTo","rendered","inView","viewLeft","viewRight","columnLeft","$el","offset","left","columnRight","width","$panel","render","speed","undefined","modelData","toJSON","html","template","renderPanel","setUpBehaviors","data","isCurrentHistory","currentHistory","controlsLeftTemplate","view","controlsRightTemplate","setElement","$list","before","_renderDropTargetHelp","events","click .switch-to.btn","setAsCurrent","click .delete-history","_delete","xhr","status","error","done","click .undelete-history","undelete","click .purge-history","confirm","purge","click .copy-history","variable","toString","MultiPanelColumns","log","currentHistoryId","Error","columnWidth","borderWidth","columnGap","headerHeight","footerHeight","controlsHeight","order","_initSortOrders","hdaQueue","NamedAjaxQueue","collection","columnMap","columnOptions","setCollection","histories","_comparator","getter","a","b","asc","sortOrders","update","fn","h","Date","name-dsc","size-dsc","stopListening","HistoryCollection","setUpCollectionListeners","sortCollection","silent","createColumns","addModels","models","multipanel","isArray","forEach","addColumn","add","set-as-current","setCurrentHistory","change:deleted change:purged","handleDeletedHistory","new-current","addAsCurrentColumn","sort","renderColumns","oldCurrentColumn","height","newCurrentColumn","_recalcFirstColumnHeight","includeDeleted","removeColumn","sortOrder","comparator","is","popover","create","current","each","createColumn","config","allow_user_dataset_purge","setUpColumnListeners","newColumn","queueHdaFetch","widthToRemove","fadeOut","remove","checkColumnsInView","in-view","view:draggable:dragstart","_dropData","JSON","parse","dataTransfer","getData","currentColumnDropTargetOn","view:draggable:dragend","currentColumnDropTargetOff","droptarget:drop","toCopy","filter","json","isCopyable","queue","content","start","fetch","columnMapLength","Object","keys","sortedFilteredColumns","filters","sortedColumns","filtered","every","map","call","sorted","fxSpeed","mainTemplate","sortedAndFiltered","$middle","appendTo","delegateEvents","renderColumn","xhrData","ids","storage","dataset_details","renderItems","running","queueHdaFetchDetails","haveDetails","details","renderInfo","msg","click .done.btn","click .create-new.btn","click #include-deleted","click .order .set-order","click #toggle-deleted","click #toggle-hidden","close","destination","root","galaxy_config","window","location","_clickToggleDeletedHistories","toggleDeletedHistories","currentTarget","_clickToggleDeletedDatasets","toggleDeletedDatasets","i","delay","toggleShowDeleted","_clickToggleHiddenDatasets","toggleHiddenDatasets","toggleShowHidden","_chooseOrder","orderKey","_moreOptionsPopover","searchInput","placeholder","onsearch","matchesAll","onclear","onfirstsearch","clear","searchItems","progress","curr","total","deferred","clearSearch","resize","debouncedInView","debounce","viewport","_viewport","checkForEndOfScroll","parent","scroll","container","placement","optionsPopoverTemplate","$firstColumn","first","middleHeight","controlHeight","find","$outerMiddle","right","columnsInView","vp","END_PADDING","scrollRight","scrollLeft","currentColumn","dataDropped","dropTargetOn","prototype","dataDrop","dropTarget","columns"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/mvc/history/history-model.js b/static/scripts/mvc/history/history-model.js index b197bae9eb8..078361e06b8 100644 --- a/static/scripts/mvc/history/history-model.js +++ b/static/scripts/mvc/history/history-model.js @@ -1,2 +1,2 @@ -define(["mvc/history/history-contents","utils/utils","mvc/base-mvc","utils/localization"],function(a,b,c){var d=Backbone.Model.extend(c.LoggableMixin).extend(c.mixin(c.SearchableModelMixin,{defaults:{model_class:"History",id:null,name:"Unnamed History",state:"new",diskSize:0,deleted:!1},urlRoot:galaxy_config.root+"api/histories",initialize:function(b,c,d){d=d||{},this.logger=d.logger||null,this.log(this+".initialize:",b,c,d),this.log("creating history contents:",c),this.contents=new a.HistoryContents(c||[],{historyId:this.get("id")}),this._setUpListeners(),this.updateTimeoutId=null},_setUpListeners:function(){this.on("error",function(a,b,c,d,e){this.errorHandler(a,b,c,d,e)}),this.contents&&this.listenTo(this.contents,"error",function(){this.trigger.apply(this,["error:contents"].concat(jQuery.makeArray(arguments)))}),this.on("change:id",function(a,b){this.contents&&(this.contents.historyId=b)},this)},errorHandler:function(){this.clearUpdateTimeout()},nice_size:function(){return b.bytesToString(this.get("size"),!0,2)},toJSON:function(){return _.extend(Backbone.Model.prototype.toJSON.call(this),{nice_size:this.nice_size()})},get:function(a){return"nice_size"===a?this.nice_size():Backbone.Model.prototype.get.apply(this,arguments)},ownedByCurrUser:function(){return Galaxy&&Galaxy.currUser?Galaxy.currUser.isAnonymous()||Galaxy.currUser.id!==this.get("user_id")?!1:!0:!1},contentsCount:function(){return _.reduce(_.values(this.get("state_details")),function(a,b){return a+b},0)},searchAttributes:["name","annotation","tags"],searchAliases:{title:"name",tag:"tags"},checkForUpdates:function(a){return this.contents.running().length?this.setUpdateTimeout():(this.trigger("ready"),_.isFunction(a)&&a.call(this)),this},setUpdateTimeout:function(a){a=a||d.UPDATE_DELAY;var b=this;return this.clearUpdateTimeout(),this.updateTimeoutId=setTimeout(function(){b.refresh()},a),this.updateTimeoutId},clearUpdateTimeout:function(){this.updateTimeoutId&&(clearTimeout(this.updateTimeoutId),this.updateTimeoutId=null)},refresh:function(a,b){a=a||[],b=b||{};var c=this;b.data=b.data||{},a.length&&(b.data.details=a.join(","));var d=this.contents.fetch(b);return d.done(function(){c.checkForUpdates(function(){this.fetch()})}),d},_delete:function(a){return this.get("deleted")?jQuery.when():this.save({deleted:!0},a)},purge:function(a){return this.get("purged")?jQuery.when():this.save({deleted:!0,purged:!0},a)},undelete:function(a){return this.get("deleted")?this.save({deleted:!1},a):jQuery.when()},copy:function(a,b){if(a=void 0!==a?a:!0,!this.id)throw new Error("You must set the history ID before copying it.");var c={history_id:this.id};a&&(c.current=!0),b&&(c.name=b);var e=this,f=jQuery.post(this.urlRoot,c);return a?f.then(function(a){var b=new d(a);return b.setAsCurrent().done(function(){e.trigger("copied",e,a)})}):f.done(function(a){e.trigger("copied",e,a)})},setAsCurrent:function(){var a=this,b=jQuery.getJSON(galaxy_config.root+"history/set_as_current?id="+this.id);return b.done(function(){a.trigger("set-as-current",a)}),b},toString:function(){return"History("+this.get("id")+","+this.get("name")+")"}}));d.UPDATE_DELAY=4e3,d.getHistoryData=function(a,b){function c(){return"current"===a?jQuery.getJSON(galaxy_config.root+"history/current_history_json"):jQuery.ajax(galaxy_config.root+"api/histories/"+a)}function d(a){return a&&a.empty}function e(a){if(d(a))return[];_.isFunction(f)&&(f=f(a)),_.isFunction(g)&&(g=g(a));var b={};return f.length&&(b.dataset_details=f.join(",")),g.length&&(b.dataset_collection_details=g.join(",")),jQuery.ajax(galaxy_config.root+"api/histories/"+a.id+"/contents",{data:b})}b=b||{};var f=b.detailIdsFn||[],g=b.hdcaDetailIds||[],h=jQuery.Deferred(),i=null,j=b.historyFn||c,k=b.contentsFn||e,l=j(a);l.done(function(a){i=a,h.notify({status:"history data retrieved",historyJSON:i})}),l.fail(function(a){h.reject(a,"loading the history")});var m=l.then(k);return m.then(function(a){h.notify({status:"contents data retrieved",historyJSON:i,contentsJSON:a}),h.resolve(i,a)}),m.fail(function(a){h.reject(a,"loading the contents",{history:i})}),h};var e=Backbone.Collection.extend(c.LoggableMixin).extend({model:d,urlRoot:(window.galaxy_config?galaxy_config.root:"/")+"api/histories",initialize:function(a,b){b=b||{},this.log("HistoryCollection.initialize",arguments),this.includeDeleted=b.includeDeleted||!1,this.setUpListeners()},setUpListeners:function(){var a=this;this.on("change:deleted",function(b){this.debug("change:deleted",a.includeDeleted,b.get("deleted")),!a.includeDeleted&&b.get("deleted")&&a.remove(b)}),this.on("copied",function(a,b){this.unshift(new d(b,[]))})},create:function(a,b,c){var e=this,f=jQuery.getJSON(galaxy_config.root+"history/create_new_current");return f.done(function(a){var b=new d(a,[],c||{});e.unshift(b),e.trigger("new-current")})},toString:function(){return"HistoryCollection("+this.length+")"}});return{History:d,HistoryCollection:e}}); +define(["mvc/history/history-contents","utils/utils","mvc/base-mvc","utils/localization"],function(a,b,c){var d=Backbone.Model.extend(c.LoggableMixin).extend(c.mixin(c.SearchableModelMixin,{defaults:{model_class:"History",id:null,name:"Unnamed History",state:"new",diskSize:0,deleted:!1},urlRoot:galaxy_config.root+"api/histories",initialize:function(b,c,d){d=d||{},this.logger=d.logger||null,this.log(this+".initialize:",b,c,d),this.log("creating history contents:",c),this.contents=new a.HistoryContents(c||[],{historyId:this.get("id")}),this._setUpListeners(),this.updateTimeoutId=null},_setUpListeners:function(){this.on("error",function(a,b,c,d,e){this.errorHandler(a,b,c,d,e)}),this.contents&&this.listenTo(this.contents,"error",function(){this.trigger.apply(this,["error:contents"].concat(jQuery.makeArray(arguments)))}),this.on("change:id",function(a,b){this.contents&&(this.contents.historyId=b)},this)},errorHandler:function(){this.clearUpdateTimeout()},nice_size:function(){return b.bytesToString(this.get("size"),!0,2)},toJSON:function(){return _.extend(Backbone.Model.prototype.toJSON.call(this),{nice_size:this.nice_size()})},get:function(a){return"nice_size"===a?this.nice_size():Backbone.Model.prototype.get.apply(this,arguments)},ownedByCurrUser:function(){return Galaxy&&Galaxy.currUser?Galaxy.currUser.isAnonymous()||Galaxy.currUser.id!==this.get("user_id")?!1:!0:!1},contentsCount:function(){return _.reduce(_.values(this.get("state_details")),function(a,b){return a+b},0)},searchAttributes:["name","annotation","tags"],searchAliases:{title:"name",tag:"tags"},checkForUpdates:function(a){return this.contents.running().length?this.setUpdateTimeout():(this.trigger("ready"),_.isFunction(a)&&a.call(this)),this},setUpdateTimeout:function(a){a=a||d.UPDATE_DELAY;var b=this;return this.clearUpdateTimeout(),this.updateTimeoutId=setTimeout(function(){b.refresh()},a),this.updateTimeoutId},clearUpdateTimeout:function(){this.updateTimeoutId&&(clearTimeout(this.updateTimeoutId),this.updateTimeoutId=null)},refresh:function(a,b){a=a||[],b=b||{};var c=this;b.data=b.data||{},a.length&&(b.data.details=a.join(","));var d=this.contents.fetch(b);return d.done(function(){c.checkForUpdates(function(){this.fetch()})}),d},_delete:function(a){return this.get("deleted")?jQuery.when():this.save({deleted:!0},a)},purge:function(a){return this.get("purged")?jQuery.when():this.save({deleted:!0,purged:!0},a)},undelete:function(a){return this.get("deleted")?this.save({deleted:!1},a):jQuery.when()},copy:function(a,b){if(a=void 0!==a?a:!0,!this.id)throw new Error("You must set the history ID before copying it.");var c={history_id:this.id};a&&(c.current=!0),b&&(c.name=b);var e=this,f=jQuery.post(this.urlRoot,c);return a?f.then(function(a){var b=new d(a);return b.setAsCurrent().done(function(){e.trigger("copied",e,a)})}):f.done(function(a){e.trigger("copied",e,a)})},setAsCurrent:function(){var a=this,b=jQuery.getJSON(galaxy_config.root+"history/set_as_current?id="+this.id);return b.done(function(){a.trigger("set-as-current",a)}),b},toString:function(){return"History("+this.get("id")+","+this.get("name")+")"}}));d.UPDATE_DELAY=4e3,d.getHistoryData=function(a,b){function c(){return"current"===a?jQuery.getJSON(galaxy_config.root+"history/current_history_json"):jQuery.ajax(galaxy_config.root+"api/histories/"+a)}function d(a){return a&&a.empty}function e(a){if(d(a))return[];_.isFunction(f)&&(f=f(a)),_.isFunction(g)&&(g=g(a));var b={};return f.length&&(b.dataset_details=f.join(",")),g.length&&(b.dataset_collection_details=g.join(",")),jQuery.ajax(galaxy_config.root+"api/histories/"+a.id+"/contents",{data:b})}b=b||{};var f=b.detailIdsFn||[],g=b.hdcaDetailIds||[],h=jQuery.Deferred(),i=null,j=b.historyFn||c,k=b.contentsFn||e,l=j(a);l.done(function(a){i=a,h.notify({status:"history data retrieved",historyJSON:i})}),l.fail(function(a){h.reject(a,"loading the history")});var m=l.then(k);return m.then(function(a){h.notify({status:"contents data retrieved",historyJSON:i,contentsJSON:a}),h.resolve(i,a)}),m.fail(function(a){h.reject(a,"loading the contents",{history:i})}),h};var e=Backbone.Collection.extend(c.LoggableMixin).extend({model:d,urlRoot:(window.galaxy_config?galaxy_config.root:"/")+"api/histories",url:function(){return this.urlRoot},initialize:function(a,b){b=b||{},this.log("HistoryCollection.initialize",arguments),this.includeDeleted=b.includeDeleted||!1,this.offset=b.offset,this.limit=b.limit,this.order=b.order,this.setUpListeners()},fetch:function(a){if(a=a||{},!this.includeDeleted){var b=a.data||{};b.q="deleted",b.qv="False",a.data=b}Backbone.Collection.prototype.fetch.call(this,a)},setUpListeners:function(){var a=this;this.on("change:deleted",function(b){this.debug("change:deleted",a.includeDeleted,b.get("deleted")),!a.includeDeleted&&b.get("deleted")&&a.remove(b)}),this.on("copied",function(a,b){var c=new d(b,[]);this.unshift(c),this.trigger("new-current",c,this)})},create:function(a,b,c){var e=this,f=jQuery.getJSON(galaxy_config.root+"history/create_new_current");return f.done(function(a){var b=new d(a,[],c||{});e.unshift(b),e.trigger("new-current",b,this)})},toString:function(){return"HistoryCollection("+this.length+")"}});return{History:d,HistoryCollection:e}}); //# sourceMappingURL=../../../maps/mvc/history/history-model.js.map \ No newline at end of file diff --git a/static/scripts/mvc/history/multi-panel.js b/static/scripts/mvc/history/multi-panel.js index 0ef96a512c7..4b40eb7c5ec 100644 --- a/static/scripts/mvc/history/multi-panel.js +++ b/static/scripts/mvc/history/multi-panel.js @@ -1,2 +1,2 @@ -define(["mvc/history/history-model","mvc/history/history-panel-edit","mvc/base-mvc","utils/ajax-queue","ui/mode-button","ui/search-input"],function(a,b,c,d){function e(a,b){function c(a){if(!a){if(!Galaxy.modal.$("#invalid-title").size()){var b=$("

").attr("id","invalid-title").css({color:"red","margin-top":"8px"}).addClass("bg-danger").text(_l("Please enter a valid history title"));Galaxy.modal.$(".modal-body").append(b)}return!1}return a}function d(b){var c=$('

Copying history...

').css("margin-top","8px");Galaxy.modal.$(".modal-body").append(c),a.copy(!0,b).fail(function(){alert(_l("History could not be copied. Please contact a Galaxy administrator"))}).always(function(){Galaxy.modal.hide()})}function e(){var a=Galaxy.modal.$("#copy-modal-title").val();c(a)&&d(a)}if(b=b||{},!Galaxy||!Galaxy.modal)return a.copy();var f=a.get("name"),g="Copy of '"+f+"'";Galaxy.modal.show(_.extend({title:_l("Copying history")+' "'+f+'"',body:$(['
",''].join("")),buttons:{Cancel:function(){Galaxy.modal.hide()},Copy:e}},b)),$("#copy-modal-title").focus().select(),$("#copy-modal-title").on("keydown",function(a){13===a.keyCode&&e()})}var f=Backbone.View.extend(c.LoggableMixin).extend({tagName:"div",className:"history-column flex-column flex-row-container",id:function(){return this.model?"history-column-"+this.model.get("id"):""},initialize:function(a){a=a||{},this.purgeAllowed=_.isUndefined(a.purgeAllowed)?!1:a.purgeAllowed,this.panel=a.panel||this.createPanel(a),this.setUpListeners()},createPanel:function(a){a=_.extend({model:this.model,purgeAllowed:this.purgeAllowed,dragItems:!0},a);var c=new b.HistoryPanelEdit(a);return c._renderEmptyMessage=this.__patch_renderEmptyMessage,c},__patch_renderEmptyMessage:function(a){var b=this,c=_.chain(this.model.get("state_ids")).values().flatten().value().length,d=b.$emptyMessage(a);return _.isEmpty(b.hdaViews)?c&&!this.model.contents.length?d.empty().append($(' loading datasets...')).show():b.searchFor?d.text(b.noneFoundMsg).show():d.text(b.emptyMsg).show():d.hide(),d},setUpListeners:function(){var a=this;this.once("rendered",function(){a.trigger("rendered:initial",a)}),this.setUpPanelListeners()},setUpPanelListeners:function(){var a=this;this.listenTo(this.panel,{rendered:function(){a.trigger("rendered",a)}},this)},inView:function(a,b){var c=this.$el.offset().left,d=c+this.$el.width();return a>d?!1:c>b?!1:!0},$panel:function(){return this.$(".history-panel")},render:function(a){a=void 0!==a?a:"fast";var b=this.model?this.model.toJSON():{};return this.$el.html(this.template(b)),this.renderPanel(a),this.setUpBehaviors(),this},setUpBehaviors:function(){},template:function(a){return a=_.extend(a||{},{isCurrentHistory:this.currentHistory}),$(['
',this.controlsLeftTemplate({history:a,view:this}),this.controlsRightTemplate({history:a,view:this}),"
",'
','
',"
"].join(""))},renderPanel:function(a){return a=void 0!==a?a:"fast",this.panel.setElement(this.$panel()).render(a),this.currentHistory&&this.panel.$list().before(this.panel._renderDropTargetHelp()),this},events:{"click .switch-to.btn":function(){this.model.setAsCurrent()},"click .delete-history":function(){var a=this;this.model._delete().fail(function(a,b,c){alert(_l("Could not delete the history")+":\n"+c)}).done(function(){a.render()})},"click .undelete-history":function(){var a=this;this.model.undelete().fail(function(a,b,c){alert(_l("Could not undelete the history")+":\n"+c)}).done(function(){a.render()})},"click .purge-history":function(){if(confirm(_l("This will permanently remove the data. Are you sure?"))){var a=this;this.model.purge().fail(function(a,b,c){alert(_l("Could not purge the history")+":\n"+c)}).done(function(){a.render()})}},"click .copy-history":"copy"},copy:function(){e(this.model)},controlsLeftTemplate:_.template(['
',"<% if( data.history.isCurrentHistory ){ %>",'',_l("Current History"),"","<% } else { %>",'","<% } %>","
"].join(""),{variable:"data"}),controlsRightTemplate:_.template(['
',"<% if( !data.history.purged ){ %>",'
','",'","
","<% } %>","
"].join(""),{variable:"data"}),toString:function(){return"HistoryPanelColumn("+(this.panel?this.panel:"")+")"}}),g=Backbone.View.extend(c.LoggableMixin).extend({className:"multi-panel-history",initialize:function(a){if(a=a||{},this.log(this+".init",a),this.$el.addClass(this.className),!a.currentHistoryId)throw new Error(this+" requires a currentHistoryId in the options");this.currentHistoryId=a.currentHistoryId,this.options={columnWidth:312,borderWidth:1,columnGap:8,headerHeight:29,footerHeight:0,controlsHeight:20},this.order=a.order||"update",this._initSortOrders(),this.hdaQueue=new d.NamedAjaxQueue([],!1),this.collection=null,this.setCollection(a.histories||[]),this.columnMap={},this.createColumns(a.columnOptions),this.setUpListeners()},_initSortOrders:function(){function a(a,b){return function(c,d,e){return c.id===e?-1:d.id===e?1:(c=a(c),d=a(d),b.asc?c===d?0:c>d?1:-1:c===d?0:c>d?-1:1)}}return this.sortOrders={update:{text:_l("most recent first"),fn:a(function(a){return new Date(a.get("update_time"))},{asc:!1})},name:{text:_l("name, a to z"),fn:a(function(a){return a.get("name")},{asc:!0})},"name-dsc":{text:_l("name, z to a"),fn:a(function(a){return a.get("name")},{asc:!1})},size:{text:_l("size, large to small"),fn:a(function(a){return a.get("size")},{asc:!1})},"size-dsc":{text:_l("size, small to large"),fn:a(function(a){return a.get("size")},{asc:!0})}},this.sortOrders},setUpListeners:function(){},setCollection:function(a){var b=this;return b.stopListening(b.collection),b.collection=a,b.sortCollection(b.order,{silent:!0}),b.setUpCollectionListeners(),b.trigger("new-collection",b),b},setUpCollectionListeners:function(){var a=this,b=a.collection;a.listenTo(b,{add:a.addAsCurrentColumn,"set-as-current":a.setCurrentHistory,"change:deleted change:purged":a.handleDeletedHistory,sort:function(){a.renderColumns(0)}})},setCurrentHistory:function(a){var b=this.columnMap[this.currentHistoryId];b&&(b.currentHistory=!1,b.$el.height("")),this.currentHistoryId=a.id;var c=this.columnMap[this.currentHistoryId];return c.currentHistory=!0,this.sortCollection(),multipanel._recalcFirstColumnHeight(),c},handleDeletedHistory:function(a){if(a.get("deleted")||a.get("purged")){this.log("handleDeletedHistory",this.collection.includeDeleted,a);var b=this;if(column=b.columnMap[a.id],!column)return;column.model.id===this.currentHistoryId||b.collection.includeDeleted||b.removeColumn(column)}},sortCollection:function(a,b){a=_.isUndefined(a)?this.order:a,a in this.sortOrders||(a="update"),this.order=a;var c=this.currentHistoryId,d=this.sortOrders[a];return this.collection.comparator=function(a,b){return d.fn(a,b,c)},this.$(".current-order").text(d.text),this.$(".more-options").is(":visible")&&this.$(".open-more-options.btn").popover("show"),this.collection.sort(b),this.collection},create:function(){return this.collection.create({current:!0})},createColumns:function(a){a=a||{};var b=this;this.columnMap={},b.collection.each(function(c){var d=b.createColumn(c,a);b.columnMap[c.id]=d})},createColumn:function(a,b){b=_.extend({},b,{model:a,purgeAllowed:Galaxy.config.allow_user_dataset_purge});var c=new f(b);return a.id===this.currentHistoryId&&(c.currentHistory=!0),this.setUpColumnListeners(c),c},sortedFilteredColumns:function(a){if(a=a||this.filters,!a||!a.length)return this.sortedColumns();var b=this;return b.sortedColumns().filter(function(b){var c=b.currentHistory||_.every(a.map(function(a){return a.call(b)}));return c})},sortedColumns:function(){var a=this,b=this.collection.map(function(b){return a.columnMap[b.id]});return b},addColumn:function(a,b){b=void 0!==b?b:!0;var c=this.createColumn(a);return this.columnMap[a.id]=c,b&&this.renderColumns(),c},addAsCurrentColumn:function(a){var b=this,c=this.addColumn(a,!1);return this.setCurrentHistory(a),c.once("rendered",function(){b.queueHdaFetch(c)}),c},removeColumn:function(a,b){if(b=void 0!==b?b:!0,this.log("removeColumn",a),a){var c=this,d=this.options.columnWidth+this.options.columnGap;a.$el.fadeOut("fast",function(){b&&($(this).remove(),c.$(".middle").width(c.$(".middle").width()-d),c.checkColumnsInView(),c._recalcFirstColumnHeight()),c.stopListening(a.panel),c.stopListening(a),delete c.columnMap[a.model.id],a.remove()})}},setUpColumnListeners:function(a){var b=this;b.listenTo(a,{"in-view":b.queueHdaFetch}),b.listenTo(a.panel,{"view:draggable:dragstart":function(a){b._dropData=JSON.parse(a.dataTransfer.getData("text")),b.currentColumnDropTargetOn()},"view:draggable:dragend":function(){b._dropData=null,b.currentColumnDropTargetOff()},"droptarget:drop":function(a,c,e){var f=b._dropData.filter(function(a){return e.model.contents.isCopyable(a)});b._dropData=null;var g=new d.NamedAjaxQueue;f.forEach(function(a){g.add({name:"copy-"+a.id,fn:function(){return e.model.contents.copy(a)}})}),g.start(),g.done(function(){e.model.fetch()})}})},columnMapLength:function(){return Object.keys(this.columnMap).length},render:function(a){a=void 0!==a?a:this.fxSpeed;var b=this;return b.log(b+".render"),b.$el.html(b.mainTemplate(b)),b.renderColumns(a),b.setUpBehaviors(),b.trigger("rendered",b),b},renderColumns:function(a){a=void 0!==a?a:this.fxSpeed;var b=this,c=b.sortedFilteredColumns();b.$(".middle").width(c.length*(this.options.columnWidth+this.options.columnGap)+this.options.columnGap+16);var d=b.$(".middle");return d.empty(),c.forEach(function(c){c.$el.appendTo(d),c.delegateEvents(),b.renderColumn(c,a)}),this.searchFor&&c.length<=1||(b.checkColumnsInView(),this._recalcFirstColumnHeight()),c},renderColumn:function(a,b){return b=void 0!==b?b:this.fxSpeed,a.render(b)},queueHdaFetch:function(a){if(0===a.model.contents.length&&!a.model.get("empty")){var b={},c=_.values(a.panel.storage.get("expandedIds")).join();c&&(b.dataset_details=c),this.hdaQueue.add({name:a.model.id,fn:function(){var c=a.model.contents.fetch({data:b,silent:!0});return c.done(function(){a.panel.renderItems()})}}),this.hdaQueue.running||this.hdaQueue.start()}},queueHdaFetchDetails:function(a){(0===a.model.contents.length&&!a.model.get("empty")||!a.model.contents.haveDetails())&&(this.hdaQueue.add({name:a.model.id,fn:function(){var b=a.model.contents.fetch({data:{details:"all"},silent:!0});return b.done(function(){a.panel.renderItems()})}}),this.hdaQueue.running||this.hdaQueue.start())},renderInfo:function(a){return this.$(".header .header-info").text(a)},events:{"click .done.btn":"close","click .create-new.btn":"create","click #include-deleted":"_clickToggleDeletedHistories","click .order .set-order":"_chooseOrder","click #toggle-deleted":"_clickToggleDeletedDatasets","click #toggle-hidden":"_clickToggleHiddenDatasets"},close:function(){var a="/";Galaxy&&Galaxy.options&&Galaxy.options.root?a=Galaxy.options.root:galaxy_config&&galaxy_config.root&&(a=galaxy_config.root),window.location=a},_clickToggleDeletedHistories:function(a){return this.toggleDeletedHistories($(a.currentTarget).is(":checked"))},toggleDeletedHistories:function(a){window.location=a?Galaxy.options.root+"history/view_multiple?include_deleted_histories=True":Galaxy.options.root+"history/view_multiple"},_clickToggleDeletedDatasets:function(a){return this.toggleDeletedDatasets($(a.currentTarget).is(":checked"))},toggleDeletedDatasets:function(a){a=void 0!==a?a:!1;var b=this;b.sortedFilteredColumns().forEach(function(b,c){_.delay(function(){b.panel.toggleShowDeleted(a,!1)},200*c)})},_clickToggleHiddenDatasets:function(a){return this.toggleHiddenDatasets($(a.currentTarget).is(":checked"))},toggleHiddenDatasets:function(a){a=void 0!==a?a:!1;var b=this;b.sortedFilteredColumns().forEach(function(b,c){_.delay(function(){b.panel.toggleShowHidden(a,!1)},200*c)})},_chooseOrder:function(a){var b=$(a.currentTarget).data("order");this.sortCollection(b)},setUpBehaviors:function(){var a=this;a._moreOptionsPopover(),a.$("#search-histories").searchInput({name:"search-histories",placeholder:_l("search histories"),onsearch:function(b){a.searchFor=b,a.filters=[function(){return this.model.matchesAll(a.searchFor)}],a.renderColumns(0)},onclear:function(){a.searchFor=null,a.filters=[],a.renderColumns(0)}}),a.$("#search-datasets").searchInput({name:"search-datasets",placeholder:_l("search all datasets"),onfirstsearch:function(b){a.hdaQueue.clear(),a.$("#search-datasets").searchInput("toggle-loading"),a.searchFor=b,a.sortedFilteredColumns().forEach(function(c){c.panel.searchItems(b),a.queueHdaFetchDetails(c)}),a.hdaQueue.progress(function(b){a.renderInfo([_l("searching"),b.curr+1,_l("of"),b.total].join(" "))}),a.hdaQueue.deferred.done(function(){a.renderInfo(""),a.$("#search-datasets").searchInput("toggle-loading")})},onsearch:function(b){a.searchFor=b,a.sortedFilteredColumns().forEach(function(a){a.panel.searchItems(b)})},onclear:function(){a.searchFor=null,a.sortedFilteredColumns().forEach(function(a){a.panel.clearSearch()})}}),$(window).resize(function(){a._recalcFirstColumnHeight()});var b=_.debounce(function(){a.checkColumnsInView()},100);this.$(".middle").parent().scroll(b)},_moreOptionsPopover:function(){return this.$(".open-more-options.btn").popover({container:".header",placement:"bottom",html:!0,content:$(this.optionsPopoverTemplate(this))})},_recalcFirstColumnHeight:function(){var a=this.$(".history-column").first(),b=this.$(".middle").height(),c=a.find(".panel-controls").height();a.height(b).find(".inner").height(b-c)},_viewport:function(){var a=this.$(".middle").parent().offset().left;return{left:a,right:a+this.$(".middle").parent().width()}},columnsInView:function(){var a=this._viewport();return this.sortedFilteredColumns().filter(function(b){return b.currentHistory||b.inView(a.left,a.right)})},checkColumnsInView:function(){this.columnsInView().forEach(function(a){a.trigger("in-view",a)})},currentColumnDropTargetOn:function(){var a=this.columnMap[this.currentHistoryId];a&&(a.panel.dataDropped=function(){},a.panel.dropTargetOn())},currentColumnDropTargetOff:function(){var a=this.columnMap[this.currentHistoryId];a&&(a.panel.dataDropped=b.HistoryPanelEdit.prototype.dataDrop,a.panel.dropTarget=!1,a.panel.$(".history-drop-target").remove())},toString:function(){return"MultiPanelColumns("+(this.columns?this.columns.length:0)+")"},mainTemplate:_.template(['
','
','",'
','
','','',"","
",'
','
',"
","
",'
',' ","
","
",'
','
',"
",'"].join(""),{variable:"view"}),optionsPopoverTemplate:_.template(['
','
','",'","
",'
","
",'
",'
","
"].join(""),{variable:"view"})});return{MultiPanelColumns:g}}); +define(["mvc/history/history-model","mvc/history/history-panel-edit","mvc/base-mvc","utils/ajax-queue","ui/mode-button","ui/search-input"],function(a,b,c,d){function e(a,b){function c(a){if(!a){if(!Galaxy.modal.$("#invalid-title").size()){var b=$("

").attr("id","invalid-title").css({color:"red","margin-top":"8px"}).addClass("bg-danger").text(_l("Please enter a valid history title"));Galaxy.modal.$(".modal-body").append(b)}return!1}return a}function d(b){var c=$('

Copying history...

').css("margin-top","8px");Galaxy.modal.$(".modal-body").append(c),a.copy(!0,b).fail(function(){alert(_l("History could not be copied. Please contact a Galaxy administrator"))}).always(function(){Galaxy.modal.hide()})}function e(){var a=Galaxy.modal.$("#copy-modal-title").val();c(a)&&d(a)}if(b=b||{},!Galaxy||!Galaxy.modal)return a.copy();var f=a.get("name"),g="Copy of '"+f+"'";Galaxy.modal.show(_.extend({title:_l("Copying history")+' "'+f+'"',body:$(['
",''].join("")),buttons:{Cancel:function(){Galaxy.modal.hide()},Copy:e}},b)),$("#copy-modal-title").focus().select(),$("#copy-modal-title").on("keydown",function(a){13===a.keyCode&&e()})}var f=Backbone.View.extend(c.LoggableMixin).extend({tagName:"div",className:"history-column flex-column flex-row-container",id:function(){return this.model?"history-column-"+this.model.get("id"):""},initialize:function(a){a=a||{},this.purgeAllowed=_.isUndefined(a.purgeAllowed)?!1:a.purgeAllowed,this.panel=a.panel||this.createPanel(a),this.setUpListeners()},createPanel:function(a){a=_.extend({model:this.model,purgeAllowed:this.purgeAllowed,dragItems:!0},a);var c=new b.HistoryPanelEdit(a);return c._renderEmptyMessage=this.__patch_renderEmptyMessage,c},__patch_renderEmptyMessage:function(a){var b=this,c=_.chain(this.model.get("state_ids")).values().flatten().value().length,d=b.$emptyMessage(a);return _.isEmpty(b.hdaViews)?c&&!this.model.contents.length?d.empty().append($(' loading datasets...')).show():b.searchFor?d.text(b.noneFoundMsg).show():d.text(b.emptyMsg).show():d.hide(),d},setUpListeners:function(){var a=this;this.once("rendered",function(){a.trigger("rendered:initial",a)}),this.setUpPanelListeners()},setUpPanelListeners:function(){var a=this;this.listenTo(this.panel,{rendered:function(){a.trigger("rendered",a)}},this)},inView:function(a,b){var c=this.$el.offset().left,d=c+this.$el.width();return a>d?!1:c>b?!1:!0},$panel:function(){return this.$(".history-panel")},render:function(a){a=void 0!==a?a:"fast";var b=this.model?this.model.toJSON():{};return this.$el.html(this.template(b)),this.renderPanel(a),this.setUpBehaviors(),this},setUpBehaviors:function(){},template:function(a){return a=_.extend(a||{},{isCurrentHistory:this.currentHistory}),$(['
',this.controlsLeftTemplate({history:a,view:this}),this.controlsRightTemplate({history:a,view:this}),"
",'
','
',"
"].join(""))},renderPanel:function(a){return a=void 0!==a?a:"fast",this.panel.setElement(this.$panel()).render(a),this.currentHistory&&this.panel.$list().before(this.panel._renderDropTargetHelp()),this},events:{"click .switch-to.btn":function(){this.model.setAsCurrent()},"click .delete-history":function(){var a=this;this.model._delete().fail(function(a,b,c){alert(_l("Could not delete the history")+":\n"+c)}).done(function(){a.render()})},"click .undelete-history":function(){var a=this;this.model.undelete().fail(function(a,b,c){alert(_l("Could not undelete the history")+":\n"+c)}).done(function(){a.render()})},"click .purge-history":function(){if(confirm(_l("This will permanently remove the data. Are you sure?"))){var a=this;this.model.purge().fail(function(a,b,c){alert(_l("Could not purge the history")+":\n"+c)}).done(function(){a.render()})}},"click .copy-history":"copy"},copy:function(){e(this.model)},controlsLeftTemplate:_.template(['
',"<% if( data.history.isCurrentHistory ){ %>",'',_l("Current History"),"","<% } else { %>",'","<% } %>","
"].join(""),{variable:"data"}),controlsRightTemplate:_.template(['
',"<% if( !data.history.purged ){ %>",'
','",'","
","<% } %>","
"].join(""),{variable:"data"}),toString:function(){return"HistoryPanelColumn("+(this.panel?this.panel:"")+")"}}),g=Backbone.View.extend(c.LoggableMixin).extend({className:"multi-panel-history",initialize:function(a){if(a=a||{},this.log(this+".init",a),this.$el.addClass(this.className),!a.currentHistoryId)throw new Error(this+" requires a currentHistoryId in the options");this.currentHistoryId=a.currentHistoryId,this.options={columnWidth:312,borderWidth:1,columnGap:8,headerHeight:29,footerHeight:0,controlsHeight:20},this.order=a.order||"update",this._initSortOrders(),this.hdaQueue=new d.NamedAjaxQueue([],!1),this.collection=null,this.columnMap={},this.columnOptions=a.columnOptions||{},this.setCollection(a.histories),this.setUpListeners()},_initSortOrders:function(){function a(a,b){return function(c,d,e){return c.id===e?-1:d.id===e?1:(c=a(c),d=a(d),b.asc?c===d?0:c>d?1:-1:c===d?0:c>d?-1:1)}}return this.sortOrders={update:{text:_l("most recent first"),fn:a(function(a){return new Date(a.get("update_time"))},{asc:!1})},name:{text:_l("name, a to z"),fn:a(function(a){return a.get("name")},{asc:!0})},"name-dsc":{text:_l("name, z to a"),fn:a(function(a){return a.get("name")},{asc:!1})},size:{text:_l("size, large to small"),fn:a(function(a){return a.get("size")},{asc:!1})},"size-dsc":{text:_l("size, small to large"),fn:a(function(a){return a.get("size")},{asc:!0})}},this.sortOrders},setUpListeners:function(){},setCollection:function(b){return this.stopListening(this.collection),this.collection=b||new a.HistoryCollection,this.setUpCollectionListeners(),this.sortCollection(this.order,{silent:!0}),this.createColumns(),this.trigger("new-collection",this),this},addModels:function(a){var b=this;return a=_.isArray(a)?a:[a],a.forEach(function(a){b.addColumn(a,!1)}),this},setUpCollectionListeners:function(){var a=this,b=a.collection;a.listenTo(b,{add:a.addModels,"set-as-current":a.setCurrentHistory,"change:deleted change:purged":a.handleDeletedHistory,"new-current":a.addAsCurrentColumn,sort:function(){a.renderColumns(0)}})},setCurrentHistory:function(a){var b=this.columnMap[this.currentHistoryId];b&&(b.currentHistory=!1,b.$el.height("")),this.currentHistoryId=a.id;var c=this.columnMap[this.currentHistoryId];return c.currentHistory=!0,this.sortCollection(),multipanel._recalcFirstColumnHeight(),c},handleDeletedHistory:function(a){if(a.get("deleted")||a.get("purged")){this.log("handleDeletedHistory",this.collection.includeDeleted,a);var b=this;if(column=b.columnMap[a.id],!column)return;column.model.id===this.currentHistoryId||b.collection.includeDeleted||b.removeColumn(column)}},sortCollection:function(a,b){a=_.isUndefined(a)?this.order:a,a in this.sortOrders||(a="update"),this.order=a;var c=this.currentHistoryId,d=this.sortOrders[a];return this.collection.comparator=function(a,b){return d.fn(a,b,c)},this.$(".current-order").text(d.text),this.$(".more-options").is(":visible")&&this.$(".open-more-options.btn").popover("show"),this.collection.sort(b),this.collection},create:function(){return this.collection.create({current:!0})},createColumns:function(a,b){b=b||this.options.columnOptions;var c=this;c.columnMap={},c.collection.each(function(a){var d=c.createColumn(a,b);c.columnMap[a.id]=d})},createColumn:function(a,b){b=_.extend({},b,{model:a,purgeAllowed:Galaxy.config.allow_user_dataset_purge});var c=new f(b);return a.id===this.currentHistoryId&&(c.currentHistory=!0),this.setUpColumnListeners(c),c},addColumn:function(a,b){b=void 0!==b?b:!0;var c=this.createColumn(a);return this.columnMap[a.id]=c,b&&this.renderColumns(),c},addAsCurrentColumn:function(a){var b=this,c=this.addColumn(a,!1);return this.setCurrentHistory(a),c.once("rendered",function(){b.queueHdaFetch(c)}),c},removeColumn:function(a,b){if(b=void 0!==b?b:!0,this.log("removeColumn",a),a){var c=this,d=this.options.columnWidth+this.options.columnGap;a.$el.fadeOut("fast",function(){b&&($(this).remove(),c.$(".middle").width(c.$(".middle").width()-d),c.checkColumnsInView(),c._recalcFirstColumnHeight()),c.stopListening(a.panel),c.stopListening(a),delete c.columnMap[a.model.id],a.remove()})}},setUpColumnListeners:function(a){var b=this;b.listenTo(a,{"in-view":b.queueHdaFetch}),b.listenTo(a.panel,{"view:draggable:dragstart":function(a){b._dropData=JSON.parse(a.dataTransfer.getData("text")),b.currentColumnDropTargetOn()},"view:draggable:dragend":function(){b._dropData=null,b.currentColumnDropTargetOff()},"droptarget:drop":function(a,c,e){var f=b._dropData.filter(function(a){return e.model.contents.isCopyable(a)});b._dropData=null;var g=new d.NamedAjaxQueue;f.forEach(function(a){g.add({name:"copy-"+a.id,fn:function(){return e.model.contents.copy(a)}})}),g.start(),g.done(function(){e.model.fetch()})}})},columnMapLength:function(){return Object.keys(this.columnMap).length},sortedFilteredColumns:function(a){if(a=a||this.filters,!a||!a.length)return this.sortedColumns();var b=this;return b.sortedColumns().filter(function(b){var c=b.currentHistory||_.every(a.map(function(a){return a.call(b)}));return c})},sortedColumns:function(){var a=this,b=this.collection.map(function(b){return a.columnMap[b.id]});return b},render:function(a){a=void 0!==a?a:this.fxSpeed;var b=this;return b.log(b+".render"),b.$el.html(b.mainTemplate(b)),b.renderColumns(a),b.setUpBehaviors(),b.trigger("rendered",b),b},renderColumns:function(a){a=void 0!==a?a:this.fxSpeed;var b=this,c=b.sortedFilteredColumns();b.$(".middle").width(c.length*(this.options.columnWidth+this.options.columnGap)+this.options.columnGap+16);var d=b.$(".middle");return d.empty(),c.forEach(function(c){c.$el.appendTo(d),c.delegateEvents(),b.renderColumn(c,a)}),this.searchFor&&c.length<=1||(b.checkColumnsInView(),this._recalcFirstColumnHeight()),c},renderColumn:function(a,b){return b=void 0!==b?b:this.fxSpeed,a.render(b)},queueHdaFetch:function(a){if(0===a.model.contents.length&&!a.model.get("empty")){var b={},c=_.values(a.panel.storage.get("expandedIds")).join();c&&(b.dataset_details=c),this.hdaQueue.add({name:a.model.id,fn:function(){var c=a.model.contents.fetch({data:b,silent:!0});return c.done(function(){a.panel.renderItems()})}}),this.hdaQueue.running||this.hdaQueue.start()}},queueHdaFetchDetails:function(a){(0===a.model.contents.length&&!a.model.get("empty")||!a.model.contents.haveDetails())&&(this.hdaQueue.add({name:a.model.id,fn:function(){var b=a.model.contents.fetch({data:{details:"all"},silent:!0});return b.done(function(){a.panel.renderItems()})}}),this.hdaQueue.running||this.hdaQueue.start())},renderInfo:function(a){return this.$(".header .header-info").text(a)},events:{"click .done.btn":"close","click .create-new.btn":"create","click #include-deleted":"_clickToggleDeletedHistories","click .order .set-order":"_chooseOrder","click #toggle-deleted":"_clickToggleDeletedDatasets","click #toggle-hidden":"_clickToggleHiddenDatasets"},close:function(){var a="/";Galaxy&&Galaxy.options&&Galaxy.options.root?a=Galaxy.options.root:galaxy_config&&galaxy_config.root&&(a=galaxy_config.root),window.location=a},_clickToggleDeletedHistories:function(a){return this.toggleDeletedHistories($(a.currentTarget).is(":checked"))},toggleDeletedHistories:function(a){window.location=a?Galaxy.options.root+"history/view_multiple?include_deleted_histories=True":Galaxy.options.root+"history/view_multiple"},_clickToggleDeletedDatasets:function(a){return this.toggleDeletedDatasets($(a.currentTarget).is(":checked"))},toggleDeletedDatasets:function(a){a=void 0!==a?a:!1;var b=this;b.sortedFilteredColumns().forEach(function(b,c){_.delay(function(){b.panel.toggleShowDeleted(a,!1)},200*c)})},_clickToggleHiddenDatasets:function(a){return this.toggleHiddenDatasets($(a.currentTarget).is(":checked"))},toggleHiddenDatasets:function(a){a=void 0!==a?a:!1;var b=this;b.sortedFilteredColumns().forEach(function(b,c){_.delay(function(){b.panel.toggleShowHidden(a,!1)},200*c)})},_chooseOrder:function(a){var b=$(a.currentTarget).data("order");this.sortCollection(b)},setUpBehaviors:function(){var a=this;a._moreOptionsPopover(),a.$("#search-histories").searchInput({name:"search-histories",placeholder:_l("search histories"),onsearch:function(b){a.searchFor=b,a.filters=[function(){return this.model.matchesAll(a.searchFor)}],a.renderColumns(0)},onclear:function(){a.searchFor=null,a.filters=[],a.renderColumns(0)}}),a.$("#search-datasets").searchInput({name:"search-datasets",placeholder:_l("search all datasets"),onfirstsearch:function(b){a.hdaQueue.clear(),a.$("#search-datasets").searchInput("toggle-loading"),a.searchFor=b,a.sortedFilteredColumns().forEach(function(c){c.panel.searchItems(b),a.queueHdaFetchDetails(c)}),a.hdaQueue.progress(function(b){a.renderInfo([_l("searching"),b.curr+1,_l("of"),b.total].join(" "))}),a.hdaQueue.deferred.done(function(){a.renderInfo(""),a.$("#search-datasets").searchInput("toggle-loading")})},onsearch:function(b){a.searchFor=b,a.sortedFilteredColumns().forEach(function(a){a.panel.searchItems(b)})},onclear:function(){a.searchFor=null,a.sortedFilteredColumns().forEach(function(a){a.panel.clearSearch()})}}),$(window).resize(function(){a._recalcFirstColumnHeight()});var b=_.debounce(function(){var b=a._viewport();a.checkColumnsInView(b),a.checkForEndOfScroll(b)},100);this.$(".middle").parent().scroll(b)},_moreOptionsPopover:function(){return this.$(".open-more-options.btn").popover({container:".header",placement:"bottom",html:!0,content:$(this.optionsPopoverTemplate(this))})},_recalcFirstColumnHeight:function(){var a=this.$(".history-column").first(),b=this.$(".middle").height(),c=a.find(".panel-controls").height();a.height(b).find(".inner").height(b-c)},_viewport:function(){var a=this.$(".middle").parent(),b=a.offset().left,c=a.width();return{left:b,right:b+c}},columnsInView:function(a){var b=a||this._viewport();return this.sortedFilteredColumns().filter(function(a){return a.currentHistory||a.inView(b.left,b.right)})},checkColumnsInView:function(){this.columnsInView().forEach(function(a){a.trigger("in-view",a)})},checkForEndOfScroll:function(a){a=a||this._viewport();var b=16,c=this.$(".middle"),d=c.parent().scrollLeft()+a.right;d>=c.width()-b&&this.trigger("end-of-scroll")},currentColumnDropTargetOn:function(){var a=this.columnMap[this.currentHistoryId];a&&(a.panel.dataDropped=function(){},a.panel.dropTargetOn())},currentColumnDropTargetOff:function(){var a=this.columnMap[this.currentHistoryId];a&&(a.panel.dataDropped=b.HistoryPanelEdit.prototype.dataDrop,a.panel.dropTarget=!1,a.panel.$(".history-drop-target").remove())},toString:function(){return"MultiPanelColumns("+(this.columns?this.columns.length:0)+")"},mainTemplate:_.template(['
','
','",'
','
','','',"","
",'
','
',"
","
",'
',' ","
","
",'
','
',"
",'"].join(""),{variable:"view"}),optionsPopoverTemplate:_.template(['
','
','",'","
",'
","
",'
",'
","
"].join(""),{variable:"view"})});return{MultiPanelColumns:g}}); //# sourceMappingURL=../../../maps/mvc/history/multi-panel.js.map \ No newline at end of file diff --git a/templates/webapps/galaxy/history/view_multiple.mako b/templates/webapps/galaxy/history/view_multiple.mako index dea496255c1..10fd6081244 100644 --- a/templates/webapps/galaxy/history/view_multiple.mako +++ b/templates/webapps/galaxy/history/view_multiple.mako @@ -29,17 +29,13 @@ define( 'app', function(){ 'mvc/history/multi-panel' ], function( HISTORY_MODEL, MULTI_PANEL ){ $(function(){ - window.historyJSONArray = bootstrapped.historyJSONArray; + bootstrapped.histories.forEach( function( h ){ + console.debug( h.name, h.update_time, h.size ); + }) + histories = new HISTORY_MODEL.HistoryCollection( bootstrapped.histories, { + includeDeleted : bootstrapped.includingDeleted + }); - var historyModels = []; - historyJSONArray.forEach( function( historyJSON ){ - if( !historyJSON.purged ){ - historyModels.push( new HISTORY_MODEL.History( historyJSON ) ); - } - }); - histories = new HISTORY_MODEL.HistoryCollection( historyModels, { - includeDeleted : bootstrapped.includingDeleted - }); multipanel = new MULTI_PANEL.MultiPanelColumns({ el : $( '#center' ).get(0), histories : histories, @@ -50,6 +46,6 @@ define( 'app', function(){ }); }); -${ galaxy_client.load( app='app', historyJSONArray=histories, - includingDeleted=include_deleted_histories, order=order ) } +${ galaxy_client.load( app='app', histories=histories, + includingDeleted=include_deleted_histories, order=order, limit=limit ) }