Merge branch 'dev' of https://github.com/bgruening/galaxy into phylocanvas

This commit is contained in:
anuprulez
2017-03-30 21:35:15 +02:00
37 changed files with 849 additions and 100 deletions
@@ -93,8 +93,8 @@ var CollectionCreatorMixin = {
}
},
_setUpCommonSettings : function( ) {
this.hideOriginals = false;
_setUpCommonSettings : function( attributes ) {
this.hideOriginals = attributes.defaultHideSourceItems || false;
},
/** render the footer, completion controls, and cancel controls */
@@ -195,7 +195,7 @@ var ListCollectionCreator = Backbone.View.extend( BASE_MVC.LoggableMixin ).exten
/** unordered, original list - cache to allow reversal */
creator.initialElements = attributes.elements || [];
this._setUpCommonSettings();
this._setUpCommonSettings( attributes );
this._instanceSetUp();
this._elementsSetUp();
this._setUpBehaviors();
@@ -948,9 +948,10 @@ var listCollectionCreatorModal = function _listCollectionCreatorModal( elements,
/** Use a modal to create a list collection, then add it to the given history contents.
* @returns {Deferred} resolved when the collection is added to the history.
*/
function createListCollection( contents ){
function createListCollection( contents, defaultHideSourceItems ){
var elements = contents.toJSON(),
promise = listCollectionCreatorModal( elements, {
defaultHideSourceItems: defaultHideSourceItems,
creationFn : function( elements, name, hideSourceItems ){
elements = elements.map( function( element ){
return {
@@ -259,7 +259,7 @@ var PairedCollectionCreator = Backbone.View.extend( baseMVC.LoggableMixin ).exte
/** Used for blocking UI events during ajax/operations (don't post twice) */
this.blocking = false;
this._setUpCommonSettings();
this._setUpCommonSettings( attributes );
this._setUpBehaviors();
this._dataSetUp();
},
@@ -1642,11 +1642,12 @@ var pairedCollectionCreatorModal = function _pairedCollectionCreatorModal( datas
//=============================================================================
function createListOfPairsCollection( collection ){
function createListOfPairsCollection( collection, defaultHideSourceItems ){
var elements = collection.toJSON();
//TODO: validate elements
return pairedCollectionCreatorModal( elements, {
historyId : collection.historyId
historyId : collection.historyId,
defaultHideSourceItems: defaultHideSourceItems
});
}
@@ -230,9 +230,10 @@ var pairCollectionCreatorModal = function _pairCollectionCreatorModal( elements,
/** Use a modal to create a pair collection, then add it to the given history contents.
* @returns {Deferred} resolved when the collection is added to the history.
*/
function createPairCollection( contents ){
function createPairCollection( contents, defaultHideSourceItems ){
var elements = contents.toJSON(),
promise = pairCollectionCreatorModal( elements, {
defaultHideSourceItems: defaultHideSourceItems,
creationFn : function( elements, name, hideSourceItems ){
elements = [
{ name: "forward", src: "hda", id: elements[0].id },
@@ -295,9 +295,10 @@ var HistoryViewEdit = _super.extend(
];
},
buildCollection : function( collectionType, selection ) {
buildCollection : function( collectionType, selection, hideSourceItems ) {
var panel = this;
var selection = selection || panel.getSelectedModels();
var hideSourceItems = hideSourceItems || false;
var createFunc;
if( collectionType == "list" ) {
createFunc = LIST_COLLECTION_CREATOR.createListCollection;
@@ -308,7 +309,7 @@ var HistoryViewEdit = _super.extend(
} else {
console.warn( "Unknown collectionType encountered " + collectionType );
}
createFunc( selection ).done( function() { panel.model.refresh() } );
createFunc( selection, hideSourceItems ).done( function() { panel.model.refresh() } );
},
// ------------------------------------------------------------------------ sub-views
@@ -0,0 +1,163 @@
/** Renders the collection uploader rows */
define( [ 'utils/utils', 'mvc/upload/upload-model', 'mvc/upload/upload-settings', 'mvc/ui/ui-popover', 'mvc/ui/ui-select' ],
function( Utils, UploadModel, UploadSettings, Popover, Select ) {
return Backbone.View.extend({
/** Dictionary of upload states and associated icons */
status_classes : {
init : 'upload-icon-button fa fa-trash-o',
queued : 'upload-icon fa fa-spinner fa-spin',
running : 'upload-icon fa fa-spinner fa-spin',
success : 'upload-icon-button fa fa-check',
error : 'upload-icon-button fa fa-exclamation-triangle'
},
initialize: function( app, options ) {
var self = this;
this.app = app;
this.model = options.model;
this.setElement( this._template( options.model ) );
this.$mode = this.$( '.upload-mode' );
this.$title = this.$( '.upload-title-extended' );
this.$text = this.$( '.upload-text' );
this.$size = this.$( '.upload-size' );
this.$info_text = this.$( '.upload-info-text' );
this.$info_progress = this.$( '.upload-info-progress' );
this.$text_content = this.$( '.upload-text-content' );
this.$symbol = this.$( '.upload-symbol' );
this.$progress_bar = this.$( '.upload-progress-bar' );
this.$percentage = this.$( '.upload-percentage' );
// append popup to settings icon
this.settings = new Popover.View({
title : 'Upload configuration',
container : this.$( '.upload-settings' ),
placement : 'bottom'
});
// identify default genome and extension values
var default_genome = this.app.select_genome.value();
var default_extension = this.app.select_extension.value();
// handle click event
this.$symbol.on('click', function() { self._removeRow(); });
// handle text editing event
this.$text_content.on( 'change input', function( e ) {
self.model.set( { 'url_paste': $( e.target ).val(),
'file_size': $( e.target ).val().length } );
});
// model events
this.listenTo( this.model, 'change:percentage', function() { self._refreshPercentage() } );
this.listenTo( this.model, 'change:status', function() { self._refreshStatus() } );
this.listenTo( this.model, 'change:info', function() { self._refreshInfo() } );
this.listenTo( this.model, 'change:file_size', function() { self._refreshFileSize() } );
this.listenTo( this.model, 'remove', function() { self.remove() } );
this.app.collection.on('reset', function() { self.remove() } );
},
render: function() {
var options = this.model.attributes;
this.$title.html( _.escape( options.file_name ) );
this.$size.html( Utils.bytesToString ( options.file_size ) );
this.$mode.removeClass().addClass( 'upload-mode' ).addClass( 'text-primary' );
if ( options.file_mode == 'new' ) {
this.$text.css( { 'width' : this.$el.width() - 16 + 'px', 'top' : this.$el.height() - 8 + 'px' } ).show();
this.$el.height( this.$el.height() - 8 + this.$text.height() + 16 );
this.$mode.addClass( 'fa fa-edit' );
} else if ( options.file_mode == 'local' ) {
this.$mode.addClass( 'fa fa-laptop' );
} else if ( options.file_mode == 'ftp' ) {
this.$mode.addClass( 'fa fa-folder-open-o' );
}
},
/** Refresh info text */
_refreshInfo: function() {
var info = this.model.get( 'info' );
if ( info ) {
this.$info_text.html( '<strong>Failed: </strong>' + info ).show();
} else {
this.$info_text.hide();
}
},
/** Refresh percentage status */
_refreshPercentage : function() {
var percentage = parseInt( this.model.get( 'percentage' ) );
this.$progress_bar.css( { width : percentage + '%' } );
this.$percentage.html( percentage != 100 ? percentage + '%' : 'Adding to history...' );
},
/** Refresh status */
_refreshStatus : function() {
var status = this.model.get( 'status' );
this.$symbol.removeClass().addClass( 'upload-symbol' ).addClass( this.status_classes[ status ] );
this.model.set( 'enabled', status == 'init' );
var enabled = this.model.get( 'enabled' );
this.$text_content.attr( 'disabled', !enabled );
if ( status == 'success' ) {
this.$el.addClass( 'success' );
this.$percentage.html( '100%' );
}
if ( status == 'error' ) {
this.$el.addClass( 'danger' );
this.$info_progress.hide();
}
},
/** Refresh file size */
_refreshFileSize: function() {
this.$size.html( Utils.bytesToString ( this.model.get( 'file_size' ) ) );
},
/** Remove row */
_removeRow: function() {
if ( [ 'init', 'success', 'error' ].indexOf( this.model.get( 'status' ) ) !== -1 ) {
this.app.collection.remove( this.model );
}
},
/** Attach file info popup */
_showSettings : function() {
if ( !this.settings.visible ) {
this.settings.empty();
this.settings.append( ( new UploadSettings( this ) ).$el );
this.settings.show();
} else {
this.settings.hide();
}
},
/** View template */
_template: function( options ) {
return '<tr id="upload-row-' + options.id + '" class="upload-row">' +
'<td>' +
'<div class="upload-text-column">' +
'<div class="upload-mode"/>' +
'<div class="upload-title-extended"/>' +
'<div class="upload-text">' +
'<div class="upload-text-info">You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.</div>' +
'<textarea class="upload-text-content form-control"/>' +
'</div>' +
'</div>' +
'</td>' +
'<td>' +
'<div class="upload-size"/>' +
'</td>' +
'<td>' +
'<div class="upload-info">' +
'<div class="upload-info-text"/>' +
'<div class="upload-info-progress progress">' +
'<div class="upload-progress-bar progress-bar progress-bar-success"/>' +
'<div class="upload-percentage">0%</div>' +
'</div>' +
'</div>' +
'</td>' +
'<td>' +
'<div class="upload-symbol ' + this.status_classes.init + '"/>' +
'</td>' +
'</tr>';
}
});
});
@@ -0,0 +1,395 @@
/** Renders contents of the collection uploader */
define([ 'utils/utils', 'mvc/upload/upload-model', 'mvc/upload/collection/collection-row', 'mvc/upload/upload-ftp', 'mvc/ui/ui-popover', 'mvc/ui/ui-select', 'mvc/ui/ui-misc', 'mvc/collection/list-collection-creator', 'utils/uploadbox' ],
function( Utils, UploadModel, UploadRow, UploadFtp, Popover, Select, Ui, LIST_COLLECTION_CREATOR ) {
return Backbone.View.extend({
// current upload size in bytes
upload_size: 0,
// contains upload row models
collection : new UploadModel.Collection(),
// keeps track of the current uploader state
counter : {
announce : 0,
success : 0,
error : 0,
running : 0,
reset : function() { this.announce = this.success = this.error = this.running = 0 }
},
initialize : function( app ) {
var self = this;
this.app = app;
this.options = app.options;
this.list_extensions = app.list_extensions;
this.list_genomes = app.list_genomes;
this.ui_button = app.ui_button;
this.ftp_upload_site = app.currentFtp();
this.setElement( this._template() );
// append buttons to dom
this.btnLocal = new Ui.Button( { id: 'btn-local', title: 'Choose local files', onclick: function() { self.uploadbox.select() }, icon: 'fa fa-laptop' } );
this.btnFtp = new Ui.Button( { id: 'btn-ftp', title: 'Choose FTP files', onclick: function() { self._eventFtp() }, icon: 'fa fa-folder-open-o' } );
this.btnCreate = new Ui.Button( { id: 'btn-new', title: 'Paste/Fetch data', onclick: function() { self._eventCreate() }, icon: 'fa fa-edit' } );
this.btnStart = new Ui.Button( { id: 'btn-start', title: 'Start', onclick: function() { self._eventStart() } } );
this.btnBuild = new Ui.Button( { id: 'btn-build', title: 'Build', onclick: function() { self._eventBuild() } } );
this.btnStop = new Ui.Button( { id: 'btn-stop', title: 'Pause', onclick: function() { self._eventStop() } } );
this.btnReset = new Ui.Button( { id: 'btn-reset', title: 'Reset', onclick: function() { self._eventReset() } } );
this.btnClose = new Ui.Button( { id: 'btn-close', title: 'Close', onclick: function() { self.app.modal.hide() } } );
_.each( [ this.btnLocal, this.btnFtp, this.btnCreate, this.btnStop, this.btnReset, this.btnStart, this.btnBuild, this.btnClose ], function( button ) {
self.$( '.upload-buttons' ).prepend( button.$el );
});
// file upload
this.uploadbox = this.$( '.upload-box' ).uploadbox({
url : this.app.options.nginx_upload_path,
announce : function( index, file ) { self._eventAnnounce( index, file ) },
initialize : function( index ) { return self.app.toData( [ self.collection.get( index ) ], self.history_id ) },
progress : function( index, percentage ) { self._eventProgress( index, percentage ) },
success : function( index, message ) { self._eventSuccess( index, message ) },
error : function( index, message ) { self._eventError( index, message ) },
complete : function() { self._eventComplete() },
ondragover : function() { self.$( '.upload-box' ).addClass( 'highlight' ) },
ondragleave : function() { self.$( '.upload-box' ).removeClass( 'highlight' ) }
});
console.log(this.list_extensions);
// add ftp file viewer
this.ftp = new Popover.View( { title: 'FTP files', container: this.btnFtp.$el } );
// select extension
this.select_extension = new Select.View({
css : 'upload-footer-selection-compressed',
container : this.$( '.upload-footer-extension' ),
data : _.filter( this.list_extensions, function( ext ) { return !ext.composite_files } ),
value : this.options.default_extension,
onchange : function( extension ) { self.updateExtension( extension ) }
});
this.collectionType = "list";
this.select_collection = new Select.View({
css : 'upload-footer-selection-compressed',
container : this.$( '.upload-footer-collection-type' ),
data : [{"id": "list", "text": "List"}, {"id": "paired", "text": "Paired"}, {"id": "list:paired", "text": "List of Pairs"}],
value : "list",
onchange : function( collectionType ) { self.updateCollectionType( collectionType ) }
})
// handle extension info popover
this.$( '.upload-footer-extension-info' ).on( 'click', function( e ) {
self.showExtensionInfo({
$el : $( e.target ),
title : self.select_extension.text(),
extension : self.select_extension.value(),
placement : 'top'
});
}).on( 'mousedown', function( e ) { e.preventDefault() } );
// genome extension
this.select_genome = new Select.View({
css : 'upload-footer-selection',
container : this.$( '.upload-footer-genome' ),
data : this.list_genomes,
value : this.options.default_genome,
onchange : function( genome ) { self.updateGenome(genome) }
});
// events
this.collection.on( 'remove', function( model ) { self._eventRemove( model ) } );
this._updateScreen();
},
/** A new file has been dropped/selected through the uploadbox plugin */
_eventAnnounce: function( index, file ) {
this.counter.announce++;
var new_model = new UploadModel.Model({
id : index,
file_name : file.name,
file_size : file.size,
file_mode : file.mode || 'local',
file_path : file.path,
file_data : file,
extension : this.select_extension.value(),
genome : this.select_genome.value()
});
this.collection.add( new_model );
var upload_row = new UploadRow( this, { model: new_model } );
this.$( '.upload-table > tbody:first' ).append( upload_row.$el );
this._updateScreen();
upload_row.render();
},
/** Progress */
_eventProgress: function( index, percentage ) {
var it = this.collection.get( index );
it.set( 'percentage', percentage );
this.ui_button.model.set( 'percentage', this._uploadPercentage( percentage, it.get( 'file_size' ) ) );
},
/** Success */
_eventSuccess: function( index, message ) {
// var hdaId = message["outputs"][0]["id"];
var hid = message["outputs"][0]["hid"];
console.log(message["outputs"][0]);
var it = this.collection.get( index );
it.set( { 'percentage': 100, 'status': 'success', 'hid': hid } );
this.ui_button.model.set( 'percentage', this._uploadPercentage( 100, it.get( 'file_size' ) ) );
this.upload_completed += it.get( 'file_size' ) * 100;
this.counter.announce--;
this.counter.success++;
this._updateScreen();
Galaxy.currHistoryPanel.refreshContents();
},
/** Error */
_eventError: function( index, message ) {
var it = this.collection.get( index );
it.set( { 'percentage': 100, 'status': 'error', 'info': message } );
this.ui_button.model.set( { 'percentage': this._uploadPercentage( 100, it.get( 'file_size' ) ), 'status': 'danger' } );
this.upload_completed += it.get( 'file_size' ) * 100;
this.counter.announce--;
this.counter.error++;
this._updateScreen();
},
/** Queue is done */
_eventComplete: function() {
this.collection.each( function( model ) { model.get( 'status' ) == 'queued' && model.set( 'status', 'init' ) } );
this.counter.running = 0;
this._updateScreen();
},
_eventBuild: function() {
var models = this.collection.map( function( upload ) { return Galaxy.currHistoryPanel.collection.getByHid( upload.get( 'hid' ) ) } );
var selection = new Galaxy.currHistoryPanel.collection.constructor( models );
// I'm building the selection wrong because I need to set this historyId directly.
selection.historyId = Galaxy.currHistoryPanel.collection.historyId;
Galaxy.currHistoryPanel.buildCollection( this.collectionType, selection, true );
this.counter.running = 0;
this._updateScreen();
this._eventReset();
this.app.modal.hide();
},
/** Remove model from upload list */
_eventRemove: function( model ) {
var status = model.get( 'status' );
if ( status == 'success' ) {
this.counter.success--;
} else if ( status == 'error' ) {
this.counter.error--;
} else {
this.counter.announce--;
}
this.uploadbox.remove( model.id );
this._updateScreen();
},
//
// events triggered by this view
//
/** [public] display extension info popup */
showExtensionInfo: function( options ) {
var self = this;
var $el = options.$el;
var extension = options.extension;
var title = options.title;
var description = _.findWhere( self.list_extensions, { 'id': extension } );
this.extension_popup && this.extension_popup.remove();
this.extension_popup = new Popover.View({ placement: options.placement || 'bottom', container: $el } );
this.extension_popup.title( title );
this.extension_popup.empty();
this.extension_popup.append( this._templateDescription( description ) );
this.extension_popup.show();
},
/** Show/hide ftp popup */
_eventFtp: function() {
if ( !this.ftp.visible ) {
this.ftp.empty();
var self = this;
this.ftp.append( ( new UploadFtp({
collection : this.collection,
ftp_upload_site : this.ftp_upload_site,
onadd : function( ftp_file ) {
self.uploadbox.add([{
mode: 'ftp',
name: ftp_file.path,
size: ftp_file.size,
path: ftp_file.path
}]);
},
onremove: function( model_index ) {
self.collection.remove( model_index );
}
} ) ).$el );
this.ftp.show();
} else {
this.ftp.hide();
}
},
/** Create a new file */
_eventCreate: function (){
this.uploadbox.add( [ { name: 'New File', size: 0, mode: 'new' } ] );
},
/** Start upload process */
_eventStart: function() {
if ( this.counter.announce == 0 || this.counter.running > 0 ) {
return;
}
var self = this;
this.upload_size = 0;
this.upload_completed = 0;
this.collection.each( function( model ) {
if( model.get( 'status' ) == 'init' ) {
model.set( 'status', 'queued' );
self.upload_size += model.get( 'file_size' );
}
});
this.ui_button.model.set( { 'percentage': 0, 'status': 'success' } );
this.counter.running = this.counter.announce;
this.history_id = this.app.currentHistory();
this.uploadbox.start();
this._updateScreen();
},
/** Pause upload process */
_eventStop: function() {
if ( this.counter.running > 0 ) {
this.ui_button.model.set( 'status', 'info' );
$( '.upload-top-info' ).html( 'Queue will pause after completing the current file...' );
this.uploadbox.stop();
}
},
/** Remove all */
_eventReset: function() {
if ( this.counter.running == 0 ){
this.collection.reset();
this.counter.reset();
this.uploadbox.reset();
this.select_extension.value( this.options.default_extension );
this.select_genome.value( this.options.default_genome );
this.ui_button.model.set( 'percentage', 0 );
this._updateScreen();
}
},
/** Update extension for all models */
updateExtension: function( extension, defaults_only ) {
var self = this;
this.collection.each( function( model ) {
if ( model.get( 'status' ) == 'init' && ( model.get( 'extension' ) == self.options.default_extension || !defaults_only ) ) {
model.set( 'extension', extension );
}
});
},
/** Update collection type */
updateCollectionType: function( collectionType ) {
var self = this;
this.collectionType = collectionType;
},
/** Update genome for all models */
updateGenome: function( genome, defaults_only ) {
var self = this;
this.collection.each( function( model ) {
if ( model.get( 'status' ) == 'init' && ( model.get( 'genome' ) == self.options.default_genome || !defaults_only ) ) {
model.set( 'genome', genome );
}
});
},
/** Set screen */
_updateScreen: function () {
var message = '';
if( this.counter.announce == 0 ) {
if (this.uploadbox.compatible()) {
message = '&nbsp;';
} else {
message = 'Browser does not support Drag & Drop. Try Firefox 4+, Chrome 7+, IE 10+, Opera 12+ or Safari 6+.';
}
} else {
if ( this.counter.running == 0 ) {
message = 'You added ' + this.counter.announce + ' file(s) to the queue. Add more files or click \'Start\' to proceed.';
} else {
message = 'Please wait...' + this.counter.announce + ' out of ' + this.counter.running + ' remaining.';
}
}
this.$( '.upload-top-info' ).html( message );
var enable_reset = this.counter.running == 0 && this.counter.announce + this.counter.success + this.counter.error > 0;
var enable_start = this.counter.running == 0 && this.counter.announce > 0;
var enable_build = this.counter.running == 0 && this.counter.announce == 0 && this.counter.success > 0 && this.counter.error == 0
var enable_sources = this.counter.running == 0;
var show_table = this.counter.announce + this.counter.success + this.counter.error > 0;
this.btnReset[ enable_reset ? 'enable' : 'disable' ]();
this.btnStart[ enable_start ? 'enable' : 'disable' ]();
this.btnStart.$el[ enable_start ? 'addClass' : 'removeClass' ]( 'btn-primary' );
this.btnBuild[ enable_build ? 'enable' : 'disable' ]();
this.btnBuild.$el[ enable_build ? 'addClass' : 'removeClass' ]( 'btn-primary' );
this.btnStop[ this.counter.running > 0 ? 'enable' : 'disable' ]();
this.btnLocal[ enable_sources ? 'enable' : 'disable' ]();
this.btnFtp[ enable_sources ? 'enable' : 'disable' ]();
this.btnCreate[ enable_sources ? 'enable' : 'disable' ]();
this.btnFtp.$el[ this.ftp_upload_site ? 'show' : 'hide' ]();
this.$( '.upload-table' )[ show_table ? 'show' : 'hide' ]();
this.$( '.upload-helper' )[ show_table ? 'hide' : 'show' ]();
},
/** Calculate percentage of all queued uploads */
_uploadPercentage: function( percentage, size ) {
return ( this.upload_completed + ( percentage * size ) ) / this.upload_size;
},
/** Template for extensions description */
_templateDescription: function( options ) {
if ( options.description ) {
var tmpl = options.description;
if ( options.description_url ) {
tmpl += '&nbsp;(<a href="' + options.description_url + '" target="_blank">read more</a>)';
}
return tmpl;
} else {
return 'There is no description available for this file extension.';
}
},
/** Template */
_template: function() {
return '<div class="upload-view-default">' +
'<div class="upload-top">' +
'<h6 class="upload-top-info"/>' +
'</div>' +
'<div class="upload-box">' +
'<div class="upload-helper"><i class="fa fa-files-o"/>Drop files here</div>' +
'<table class="upload-table ui-table-striped" style="display: none;">' +
'<thead>' +
'<tr>' +
'<th>Name</th>' +
'<th>Size</th>' +
'<th>Status</th>' +
'<th/>' +
'</tr>' +
'</thead>' +
'<tbody/>' +
'</table>' +
'</div>' +
'<div class="upload-footer">' +
'<span class="upload-footer-title-compressed">Collection Type:</span>' +
'<span class="upload-footer-collection-type"/>' +
'<span class="upload-footer-title-compressed">File Type:</span>' +
'<span class="upload-footer-extension"/>' +
'<span class="upload-footer-extension-info upload-icon-button fa fa-search"/> ' +
'<span class="upload-footer-title-compressed">Genome (set all):</span>' +
'<span class="upload-footer-genome"/>' +
'</div>' +
'<div class="upload-buttons"/>' +
'</div>';
}
});
});
@@ -1,6 +1,6 @@
/** Upload app contains the upload progress button and upload modal, compiles model data for API request **/
define([ 'utils/utils', 'mvc/ui/ui-modal', 'mvc/ui/ui-tabs', 'mvc/upload/upload-button', 'mvc/upload/default/default-view', 'mvc/upload/composite/composite-view'],
function( Utils, Modal, Tabs, UploadButton, UploadViewDefault, UploadViewComposite ) {
define([ 'utils/utils', 'mvc/ui/ui-modal', 'mvc/ui/ui-tabs', 'mvc/upload/upload-button', 'mvc/upload/default/default-view', 'mvc/upload/composite/composite-view', 'mvc/upload/collection/collection-view'],
function( Utils, Modal, Tabs, UploadButton, UploadViewDefault, UploadViewComposite, UploadViewCollection ) {
return Backbone.View.extend({
options : {
nginx_upload_path : '',
@@ -109,6 +109,12 @@ function( Utils, Modal, Tabs, UploadButton, UploadViewDefault, UploadViewComposi
title : 'Composite',
$el : this.composite_view.$el
});
this.collection_view = new UploadViewCollection( this );
this.tabs.add({
id : 'collection',
title : 'Collection',
$el : this.collection_view.$el
})
this.modal = new Modal.View({
title : 'Download from web or upload from disk',
body : this.tabs.$el,
+18
View File
@@ -86,6 +86,13 @@
font-size : @font-size-small;
float: left;
}
/* Add back in lenght of extension, genome, and settings. */
.upload-title-extended {
width: 380px;
word-wrap: break-word;
font-size : @font-size-small;
float: left;
}
.upload-size {
width: 60px;
white-space: nowrap;
@@ -258,12 +265,23 @@
padding-left: 60px;
padding-right: 20px;
}
.upload-footer-title-compressed {
font-weight: bold;
padding-left: 20px;
padding-right: 10px;
}
.upload-footer-selection{
width:200px;
min-width:200px;
font-size:11px;
padding-right: 10px;
}
.upload-footer-selection-compressed{
width:120px;
min-width:120px;
font-size:11px;
padding-right: 10px;
}
.select2-choice {
.select2-arrow b {
background-position: 0 -3px;
+11 -11
View File
@@ -1773,23 +1773,23 @@ class DataToolParameter( BaseDataToolParameter ):
'keep' : keep } )
# add datasets
visible_hda = other_values.get( self.name )
has_matched = False
hda_list = util.listify( other_values.get( self.name ) )
for hda in history.active_datasets_and_roles:
match = dataset_matcher.hda_match( hda, check_security=False )
if match:
m = match.hda
has_matched = has_matched or visible_hda == m or visible_hda == hda
hda_list = [ h for h in hda_list if h != m and h != hda ]
m_name = '%s (as %s)' % ( match.original_hda.name, match.target_ext ) if match.implicit_conversion else m.name
append( d[ 'options' ][ 'hda' ], m, m_name, 'hda' )
if not has_matched and hasattr( visible_hda, 'hid' ):
if visible_hda.deleted:
hda_state = 'deleted'
elif not visible_hda.visible:
hda_state = 'hidden'
else:
hda_state = 'unavailable'
append( d[ 'options' ][ 'hda' ], visible_hda, '(%s) %s' % ( hda_state, visible_hda.name ), 'hda', True )
for hda in hda_list:
if hasattr( hda, 'hid' ):
if hda.deleted:
hda_state = 'deleted'
elif not hda.visible:
hda_state = 'hidden'
else:
hda_state = 'unavailable'
append( d[ 'options' ][ 'hda' ], hda, '(%s) %s' % ( hda_state, hda.name ), 'hda', True )
# add dataset collections
dataset_collection_matcher = DatasetCollectionMatcher( dataset_matcher )
@@ -1 +1 @@
{"version":3,"file":"base-creator.js","sources":["../../../src/mvc/collection/base-creator.js"],"names":["define","CollectionCreatorMixin","_validationWarning","what","clear","VALIDATION_CLASS","this","$","add","focus","select","removeClass","addClass","_changeHideOriginals","hideOriginals","prop","_changeName","_getName","_nameCheckForEnter","ev","keyCode","blocking","_clickCreate","_","escape","val","_clickMoreHelp","stopPropagation","hide","_clickLessHelp","show","_toggleHelp","toggleClass","toggle","_showAlert","message","alertClass","attr","find","html","_hideAlert","_cancelCreate","oncancel","call","name","createList","_setUpCommonSettings","_renderFooter","instance","$footer","empty","templates","footer","each","footerSettings","property","selector","_creatorTemplates","main","template","join"],"mappings":"AAAAA,UACG,WAKH,GAAIC,IAGAC,mBAAqB,SAAUC,EAAMC,GACjC,GAAIC,GAAmB,oBACV,UAATF,IACAA,EAAOG,KAAKC,EAAG,oBAAqBC,IAAKF,KAAKC,EAAG,4BACjDD,KAAKC,EAAG,oBAAqBE,QAAQC,UAErCN,GACAD,EAAOA,GAAQG,KAAKC,EAAG,IAAMF,GAC7BF,EAAKQ,YAAaN,IAElBF,EAAKS,SAAUP,IAIvBQ,qBAAsB,WAClBP,KAAKQ,cAAgBR,KAAKC,EAAG,mBAAoBQ,KAAK,YAK1DC,YAAc,WACVV,KAAKJ,mBAAoB,SAAUI,KAAKW,aAI5CC,mBAAqB,SAAUC,GACR,KAAfA,EAAGC,SAAmBd,KAAKe,UAC3Bf,KAAKgB,gBAKbL,SAAW,WACP,MAAOM,GAAEC,OAAQlB,KAAKC,EAAG,oBAAqBkB,QAKlDC,eAAiB,SAAUP,GACvBA,EAAGQ,kBACHrB,KAAKC,EAAG,cAAeK,SAAU,YACjCN,KAAKC,EAAG,cAAeqB,QAG3BC,eAAiB,SAAUV,GACvBA,EAAGQ,kBACHrB,KAAKC,EAAG,cAAeI,YAAa,YACpCL,KAAKC,EAAG,cAAeuB,QAG3BC,YAAc,SAAUZ,GACpBA,EAAGQ,kBACHrB,KAAKC,EAAG,cAAeyB,YAAa,YACpC1B,KAAKC,EAAG,cAAe0B,UAI3BC,WAAa,SAAUC,EAASC,GAC5BA,EAAaA,GAAc,eAC3B9B,KAAKC,EAAG,cAAeqB,OACvBtB,KAAKC,EAAG,kBACH8B,KAAM,QAAS,2BAA4BzB,SAAUwB,GAAaN,OAClEQ,KAAM,kBAAmBC,KAAMJ,IAGxCK,WAAa,WACTlC,KAAKC,EAAG,cAAeuB,OACvBxB,KAAKC,EAAG,kBAAmBqB,QAG/Ba,cAAe,WACkB,kBAAlBnC,MAAKoC,UACZpC,KAAKoC,SAASC,KAAMrC,OAK5BgB,aAAe,WACX,GAAIsB,GAAOtC,KAAKW,UACX2B,GAEOtC,KAAKe,UACbf,KAAKuC,WAAYD,GAFjBtC,KAAKJ,mBAAoB,SAMjC4C,qBAAuB,WACnBxC,KAAKQ,eAAgB,GAIzBiC,cAAgB,WACZ,GAAIC,GAAW1C,KACX2C,EAAU3C,KAAKC,EAAG,WAAY2C,QAAQX,KAAMjC,KAAK6C,UAAUC,SAO/D,OANA7B,GAAE8B,KAAM/C,KAAKgD,eAAgB,SAAUC,EAAUC,GAC7ClD,KAAKC,EAAGiD,GAAWzC,KAAM,UAAWiC,EAAUO,MAErB,kBAAlBjD,MAAKoC,UACZpC,KAAKC,EAAG,sBAAuBuB,OAE5BmB,GAGXQ,mBACIC,KAAOnC,EAAEoC,UACL,8CACA,yDACA,+CACFC,KAAK,MAMX,QACI3D,uBAAwBA"}
{"version":3,"file":"base-creator.js","sources":["../../../src/mvc/collection/base-creator.js"],"names":["define","CollectionCreatorMixin","_validationWarning","what","clear","VALIDATION_CLASS","this","$","add","focus","select","removeClass","addClass","_changeHideOriginals","hideOriginals","prop","_changeName","_getName","_nameCheckForEnter","ev","keyCode","blocking","_clickCreate","_","escape","val","_clickMoreHelp","stopPropagation","hide","_clickLessHelp","show","_toggleHelp","toggleClass","toggle","_showAlert","message","alertClass","attr","find","html","_hideAlert","_cancelCreate","oncancel","call","name","createList","_setUpCommonSettings","attributes","defaultHideSourceItems","_renderFooter","instance","$footer","empty","templates","footer","each","footerSettings","property","selector","_creatorTemplates","main","template","join"],"mappings":"AAAAA,UACG,WAKH,GAAIC,IAGAC,mBAAqB,SAAUC,EAAMC,GACjC,GAAIC,GAAmB,oBACV,UAATF,IACAA,EAAOG,KAAKC,EAAG,oBAAqBC,IAAKF,KAAKC,EAAG,4BACjDD,KAAKC,EAAG,oBAAqBE,QAAQC,UAErCN,GACAD,EAAOA,GAAQG,KAAKC,EAAG,IAAMF,GAC7BF,EAAKQ,YAAaN,IAElBF,EAAKS,SAAUP,IAIvBQ,qBAAsB,WAClBP,KAAKQ,cAAgBR,KAAKC,EAAG,mBAAoBQ,KAAK,YAK1DC,YAAc,WACVV,KAAKJ,mBAAoB,SAAUI,KAAKW,aAI5CC,mBAAqB,SAAUC,GACR,KAAfA,EAAGC,SAAmBd,KAAKe,UAC3Bf,KAAKgB,gBAKbL,SAAW,WACP,MAAOM,GAAEC,OAAQlB,KAAKC,EAAG,oBAAqBkB,QAKlDC,eAAiB,SAAUP,GACvBA,EAAGQ,kBACHrB,KAAKC,EAAG,cAAeK,SAAU,YACjCN,KAAKC,EAAG,cAAeqB,QAG3BC,eAAiB,SAAUV,GACvBA,EAAGQ,kBACHrB,KAAKC,EAAG,cAAeI,YAAa,YACpCL,KAAKC,EAAG,cAAeuB,QAG3BC,YAAc,SAAUZ,GACpBA,EAAGQ,kBACHrB,KAAKC,EAAG,cAAeyB,YAAa,YACpC1B,KAAKC,EAAG,cAAe0B,UAI3BC,WAAa,SAAUC,EAASC,GAC5BA,EAAaA,GAAc,eAC3B9B,KAAKC,EAAG,cAAeqB,OACvBtB,KAAKC,EAAG,kBACH8B,KAAM,QAAS,2BAA4BzB,SAAUwB,GAAaN,OAClEQ,KAAM,kBAAmBC,KAAMJ,IAGxCK,WAAa,WACTlC,KAAKC,EAAG,cAAeuB,OACvBxB,KAAKC,EAAG,kBAAmBqB,QAG/Ba,cAAe,WACkB,kBAAlBnC,MAAKoC,UACZpC,KAAKoC,SAASC,KAAMrC,OAK5BgB,aAAe,WACX,GAAIsB,GAAOtC,KAAKW,UACX2B,GAEOtC,KAAKe,UACbf,KAAKuC,WAAYD,GAFjBtC,KAAKJ,mBAAoB,SAMjC4C,qBAAuB,SAAUC,GAC7BzC,KAAKQ,cAAgBiC,EAAWC,yBAA0B,GAI9DC,cAAgB,WACZ,GAAIC,GAAW5C,KACX6C,EAAU7C,KAAKC,EAAG,WAAY6C,QAAQb,KAAMjC,KAAK+C,UAAUC,SAO/D,OANA/B,GAAEgC,KAAMjD,KAAKkD,eAAgB,SAAUC,EAAUC,GAC7CpD,KAAKC,EAAGmD,GAAW3C,KAAM,UAAWmC,EAAUO,MAErB,kBAAlBnD,MAAKoC,UACZpC,KAAKC,EAAG,sBAAuBuB,OAE5BqB,GAGXQ,mBACIC,KAAOrC,EAAEsC,UACL,8CACA,yDACA,+CACFC,KAAK,MAMX,QACI7D,uBAAwBA"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
{"version":3,"file":"pair-collection-creator.js","sources":["../../../src/mvc/collection/pair-collection-creator.js"],"names":["define","LIST_CREATOR","HDCA","BASE_MVC","_l","createPairCollection","contents","elements","toJSON","promise","pairCollectionCreatorModal","creationFn","name","hideSourceItems","src","id","createHDCA","logNamespace","PairedDatasetCollectionElementView","Backbone","View","extend","LoggableMixin","_logNamespace","tagName","className","initialize","attributes","this","element","identifier","render","$el","attr","html","template","_","join","destroy","off","remove","toString","_super","ListCollectionCreator","PairCollectionCreator","elementViewClass","collectionClass","HistoryPairDatasetCollection","_mangleDuplicateNames","speed","callback","workingElements","length","prototype","call","_renderInvalid","_renderList","creator","$tmp","jQuery","$list","each","elementViews","view","removeElementView","append","_createForwardElementView","_createReverseElementView","empty","children","invoke","_createElementView","options","elementView","push","swap","events","clone","click .swap","templates","middle","helpContent","invalidInitial","title","collectionCreatorModal"],"mappings":"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"}
{"version":3,"file":"pair-collection-creator.js","sources":["../../../src/mvc/collection/pair-collection-creator.js"],"names":["define","LIST_CREATOR","HDCA","BASE_MVC","_l","createPairCollection","contents","defaultHideSourceItems","elements","toJSON","promise","pairCollectionCreatorModal","creationFn","name","hideSourceItems","src","id","createHDCA","logNamespace","PairedDatasetCollectionElementView","Backbone","View","extend","LoggableMixin","_logNamespace","tagName","className","initialize","attributes","this","element","identifier","render","$el","attr","html","template","_","join","destroy","off","remove","toString","_super","ListCollectionCreator","PairCollectionCreator","elementViewClass","collectionClass","HistoryPairDatasetCollection","_mangleDuplicateNames","speed","callback","workingElements","length","prototype","call","_renderInvalid","_renderList","creator","$tmp","jQuery","$list","each","elementViews","view","removeElementView","append","_createForwardElementView","_createReverseElementView","empty","children","invoke","_createElementView","options","elementView","push","swap","events","clone","click .swap","templates","middle","helpContent","invalidInitial","title","collectionCreatorModal"],"mappings":"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"}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
{"version":3,"file":"collection-row.js","sources":["../../../../src/mvc/upload/collection/collection-row.js"],"names":["define","Utils","UploadModel","UploadSettings","Popover","Backbone","View","extend","status_classes","init","queued","running","success","error","initialize","app","options","self","this","model","setElement","_template","$mode","$","$title","$text","$size","$info_text","$info_progress","$text_content","$symbol","$progress_bar","$percentage","settings","title","container","placement","select_genome","value","select_extension","on","_removeRow","e","set","url_paste","target","val","file_size","length","listenTo","_refreshPercentage","_refreshStatus","_refreshInfo","_refreshFileSize","remove","collection","render","attributes","html","_","escape","file_name","bytesToString","removeClass","addClass","file_mode","css","width","$el","top","height","show","info","get","hide","percentage","parseInt","status","enabled","attr","indexOf","_showSettings","visible","empty","append","id"],"mappings":"AACAA,QAAU,cAAe,0BAA2B,6BAA8B,oBAAqB,oBACvG,SAAUC,EAAOC,EAAaC,EAAgBC,GAC1C,MAAOC,UAASC,KAAKC,QAEjBC,gBACIC,KAAU,mCACVC,OAAU,oCACVC,QAAU,oCACVC,QAAU,iCACVC,MAAU,iDAGdC,WAAY,SAAUC,EAAKC,GACvB,GAAIC,GAAOC,IACXA,MAAKH,IAAMA,EACXG,KAAKC,MAAQH,EAAQG,MACrBD,KAAKE,WAAYF,KAAKG,UAAWL,EAAQG,QACzCD,KAAKI,MAAiBJ,KAAKK,EAAG,gBAC9BL,KAAKM,OAAiBN,KAAKK,EAAG,0BAC9BL,KAAKO,MAAiBP,KAAKK,EAAG,gBAC9BL,KAAKQ,MAAiBR,KAAKK,EAAG,gBAC9BL,KAAKS,WAAiBT,KAAKK,EAAG,qBAC9BL,KAAKU,eAAiBV,KAAKK,EAAG,yBAC9BL,KAAKW,cAAiBX,KAAKK,EAAG,wBAC9BL,KAAKY,QAAiBZ,KAAKK,EAAG,kBAC9BL,KAAKa,cAAiBb,KAAKK,EAAG,wBAC9BL,KAAKc,YAAiBd,KAAKK,EAAG,sBAG9BL,KAAKe,SAAW,GAAI7B,GAAQE,MACxB4B,MAAc,uBACdC,UAAcjB,KAAKK,EAAG,oBACtBa,UAAc,UAIQlB,MAAKH,IAAIsB,cAAcC,QACvBpB,KAAKH,IAAIwB,iBAAiBD,OAGpDpB,MAAKY,QAAQU,GAAG,QAAS,WAAavB,EAAKwB,eAG3CvB,KAAKW,cAAcW,GAAI,eAAgB,SAAUE,GAC7CzB,EAAKE,MAAMwB,KAAOC,UAAarB,EAAGmB,EAAEG,QAASC,MAC3BC,UAAaxB,EAAGmB,EAAEG,QAASC,MAAME,WAIvD9B,KAAK+B,SAAU/B,KAAKC,MAAO,oBAAsB,WAAaF,EAAKiC,uBACnEhC,KAAK+B,SAAU/B,KAAKC,MAAO,gBAAsB,WAAaF,EAAKkC,mBACnEjC,KAAK+B,SAAU/B,KAAKC,MAAO,cAAsB,WAAaF,EAAKmC,iBACnElC,KAAK+B,SAAU/B,KAAKC,MAAO,mBAAsB,WAAaF,EAAKoC,qBACnEnC,KAAK+B,SAAU/B,KAAKC,MAAO,SAAsB,WAAaF,EAAKqC,WACnEpC,KAAKH,IAAIwC,WAAWf,GAAG,QAAS,WAAavB,EAAKqC,YAGtDE,OAAQ,WACJ,GAAIxC,GAAUE,KAAKC,MAAMsC,UACzBvC,MAAKM,OAAOkC,KAAMC,EAAEC,OAAQ5C,EAAQ6C,YACpC3C,KAAKQ,MAAMgC,KAAMzD,EAAM6D,cAAgB9C,EAAQ+B,YAC/C7B,KAAKI,MAAMyC,cAAcC,SAAU,eAAgBA,SAAU,gBACnC,OAArBhD,EAAQiD,WACT/C,KAAKO,MAAMyC,KAAOC,MAAUjD,KAAKkD,IAAID,QAAU,GAAK,KAAME,IAASnD,KAAKkD,IAAIE,SAAW,EAAI,OAASC,OACpGrD,KAAKkD,IAAIE,OAAQpD,KAAKkD,IAAIE,SAAW,EAAIpD,KAAKO,MAAM6C,SAAW,IAC/DpD,KAAKI,MAAM0C,SAAU,eACQ,SAArBhD,EAAQiD,UAChB/C,KAAKI,MAAM0C,SAAU,gBACQ,OAArBhD,EAAQiD,WAChB/C,KAAKI,MAAM0C,SAAU,wBAK7BZ,aAAc,WACV,GAAIoB,GAAOtD,KAAKC,MAAMsD,IAAK,OACtBD,GACDtD,KAAKS,WAAW+B,KAAM,4BAA8Bc,GAAOD,OAE3DrD,KAAKS,WAAW+C,QAKxBxB,mBAAqB,WACjB,GAAIyB,GAAaC,SAAU1D,KAAKC,MAAMsD,IAAK,cAC3CvD,MAAKa,cAAcmC,KAAOC,MAAQQ,EAAa,MAC/CzD,KAAKc,YAAY0B,KAAoB,KAAdiB,EAAoBA,EAAa,IAAM,yBAIlExB,eAAiB,WACb,GAAI0B,GAAS3D,KAAKC,MAAMsD,IAAK,SAC7BvD,MAAKY,QAAQiC,cAAcC,SAAU,iBAAkBA,SAAU9C,KAAKV,eAAgBqE,IACtF3D,KAAKC,MAAMwB,IAAK,UAAqB,QAAVkC,EAC3B,IAAIC,GAAU5D,KAAKC,MAAMsD,IAAK,UAC9BvD,MAAKW,cAAckD,KAAM,YAAaD,GACvB,WAAVD,IACD3D,KAAKkD,IAAIJ,SAAU,WACnB9C,KAAKc,YAAY0B,KAAM,SAEZ,SAAVmB,IACD3D,KAAKkD,IAAIJ,SAAU,UACnB9C,KAAKU,eAAe8C,SAK5BrB,iBAAkB,WACdnC,KAAKQ,MAAMgC,KAAMzD,EAAM6D,cAAgB5C,KAAKC,MAAMsD,IAAK,gBAI3DhC,WAAY,WACsE,MAAvE,OAAQ,UAAW,SAAUuC,QAAS9D,KAAKC,MAAMsD,IAAK,YACzDvD,KAAKH,IAAIwC,WAAWD,OAAQpC,KAAKC,QAKzC8D,cAAgB,WACN/D,KAAKe,SAASiD,QAKhBhE,KAAKe,SAASyC,QAJdxD,KAAKe,SAASkD,QACdjE,KAAKe,SAASmD,OAAQ,GAAMjF,GAAgBe,MAASkD,KACrDlD,KAAKe,SAASsC,SAOtBlD,UAAW,SAAUL,GACjB,MAAQ,sBAAwBA,EAAQqE,GAAK,6qBAwBEnE,KAAKV,eAAeC,KAAO"}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"upload-view.js","sources":["../../../src/mvc/upload/upload-view.js"],"names":["define","Utils","Modal","Tabs","UploadButton","UploadViewDefault","UploadViewComposite","Backbone","View","extend","options","nginx_upload_path","ftp_upload_site","default_genome","default_extension","height","width","auto","id","text","description","list_extensions","list_genomes","initialize","self","this","merge","ui_button","onclick","e","preventDefault","show","onunload","percentage","model","get","setElement","$el","url","Galaxy","root","success","datatypes","key","push","extension","description_url","composite_files","sort","a","b","a_text","toLowerCase","b_text","datatypes_disable_auto","unshift","genomes","currHistoryPanel","current_user","user","modal","tabs","default_view","add","title","composite_view","body","closing_events","title_separator","window","setTimeout","currentHistory","currentFtp","toData","items","history_id","data","payload","tool_id","inputs","files","error_message","length","index","it","set","prefix","name","file","JSON","stringify"],"mappings":"AACAA,QAAS,cAAe,kBAAmB,iBAAkB,2BAA4B,kCAAmC,uCAC5H,SAAUC,EAAOC,EAAOC,EAAMC,EAAcC,EAAmBC,GAC3D,MAAOC,UAASC,KAAKC,QACjBC,SACIC,kBAAsB,GACtBC,gBAAsB,MACtBC,eAAsB,IACtBC,kBAAsB,OACtBC,OAAsB,IACtBC,MAAsB,IACtBC,MACIC,GAAc,OACdC,KAAc,cACdC,YAAc,wZAKtBC,mBAGAC,gBAEAC,WAAY,SAAUb,GAClB,GAAIc,GAAOC,IACXA,MAAKf,QAAUT,EAAMyB,MAAOhB,EAASe,KAAKf,SAG1Ce,KAAKE,UAAY,GAAIvB,GAAaI,MAC9BoB,QAAc,SAASC,GACnBA,EAAEC,iBACFN,EAAKO,QAETC,SAAc,WACV,GAAIC,GAAaT,EAAKG,UAAUO,MAAMC,IAAI,aAAc,EACxD,OAAIF,GAAa,GAAkB,IAAbA,EACX,8BADX,UAORR,KAAKW,WAAYX,KAAKE,UAAUU,IAGhC,IAAIb,GAAOC,IACXxB,GAAMkC,KACFG,IAAUC,OAAOC,KAAO,qCACxBC,QAAU,SAAUC,GAChB,IAAMC,MAAOD,GACTlB,EAAKH,gBAAgBuB,MACjB1B,GAAkBwB,EAAWC,KAAME,UACnC1B,KAAkBuB,EAAWC,KAAME,UACnCzB,YAAkBsB,EAAWC,KAAMvB,YACnC0B,gBAAkBJ,EAAWC,KAAMG,gBACnCC,gBAAkBL,EAAWC,KAAMI,iBAG3CvB,GAAKH,gBAAgB2B,KAAM,SAAUC,EAAGC,GACpC,GAAIC,GAASF,EAAE9B,MAAQ8B,EAAE9B,KAAKiC,cAC1BC,EAASH,EAAE/B,MAAQ+B,EAAE/B,KAAKiC,aAC9B,OAAOD,GAASE,EAAS,EAAaA,EAATF,EAAkB,GAAK,IAElD3B,EAAKd,QAAQ4C,wBACf9B,EAAKH,gBAAgBkC,QAAS/B,EAAKd,QAAQO,SAMvDhB,EAAMkC,KACFG,IAAUC,OAAOC,KAAO,cACxBC,QAAU,SAAUe,GAChB,IAAMb,MAAOa,GACThC,EAAKF,aAAasB,MACd1B,GAAUsC,EAASb,KAAO,GAC1BxB,KAAUqC,EAASb,KAAO,IAGlCnB,GAAKF,aAAa0B,KAAM,SAAUC,EAAGC,GACjC,MAAKD,GAAE/B,IAAMM,EAAKd,QAAQG,eAA0B,GAC/CqC,EAAEhC,IAAMM,EAAKd,QAAQG,eAA0B,EAC7CoC,EAAE9B,KAAO+B,EAAE/B,KAAO,EAAI8B,EAAE9B,KAAO+B,EAAE/B,KAAO,GAAK,QAOpEY,KAAM,WACF,GAAIP,GAAOC,IACX,OAAMc,QAAOkB,kBAAqBlB,OAAOkB,iBAAiBvB,OAI1DT,KAAKiC,aAAenB,OAAOoB,KAAKzC,GAC1BO,KAAKmC,QACPnC,KAAKoC,KAAO,GAAI1D,GAAKK,KACrBiB,KAAKqC,aAAe,GAAIzD,GAAmBoB,MAC3CA,KAAKoC,KAAKE,KACN7C,GAAU,UACV8C,MAAU,UACV3B,IAAUZ,KAAKqC,aAAazB,MAEhCZ,KAAKwC,eAAiB,GAAI3D,GAAqBmB,MAC/CA,KAAKoC,KAAKE,KACN7C,GAAU,YACV8C,MAAU,YACV3B,IAAUZ,KAAKwC,eAAe5B,MAElCZ,KAAKmC,MAAQ,GAAI1D,GAAMM,MACnBwD,MAAkB,wCAClBE,KAAkBzC,KAAKoC,KAAKxB,IAC5BtB,OAAkBU,KAAKf,QAAQK,OAC/BC,MAAkBS,KAAKf,QAAQM,MAC/BmD,gBAAkB,EAClBC,iBAAkB,SAG1B3C,MAAKmC,MAAM7B,YA3BPsC,QAAOC,WAAW,WAAa9C,EAAKO,QAAU,MA+BtDwC,eAAgB,WACZ,MAAO9C,MAAKiC,cAAgBnB,OAAOkB,iBAAiBvB,MAAMC,IAAK,OAInEqC,WAAY,WACR,MAAO/C,MAAKiC,cAAgBjC,KAAKf,QAAQE,iBAO7C6D,OAAQ,SAAUC,EAAOC,GAErB,GAAIC,IACAC,SACIC,QAAkB,UAClBH,WAAkBA,GAAclD,KAAK8C,iBACrCQ,WAEJC,SACAC,cAAe,KAGnB,IAAKP,GAASA,EAAMQ,OAAS,EAAI,CAC7B,GAAIH,KACJA,GAAgB,MAAIL,EAAM,GAAGvC,IAAK,SAAU,MAC5C4C,EAAoB,UAAIL,EAAM,GAAGvC,IAAK,YAAa,KACnD,KAAM,GAAIgD,KAAST,GAAQ,CACvB,GAAIU,GAAKV,EAAOS,EAEhB,IADAC,EAAGC,IAAK,SAAU,aACbD,EAAGjD,IAAK,aAAgB,GAetB,CACHyC,EAAKK,cAAgB,6BACrBG,EAAGC,IAAK,SAAU,SAClBD,EAAGC,IAAK,OAAQT,EAAKK,cACrB,OAlBA,GAAIK,GAAS,SAAWH,EAAQ,GAIhC,QAHAJ,EAAQO,EAAS,QAAW,iBAC5BP,EAAQO,EAAS,gBAAmBF,EAAGjD,IAAK,iBAAoB,OAAS,KACzE4C,EAAQO,EAAS,kBAAqBF,EAAGjD,IAAK,mBAAsB,OAAS,KACpEiD,EAAGjD,IAAK,cACb,IAAK,MACD4C,EAAQO,EAAS,aAAgBF,EAAGjD,IAAK,YACzC,MACJ,KAAK,MACD4C,EAAQO,EAAS,aAAgBF,EAAGjD,IAAK,YACzC,MACJ,KAAK,QACDyC,EAAKI,MAAMpC,MAAQ2C,KAAMD,EAAS,YAAaE,KAAMJ,EAAGjD,IAAK,gBAS7EyC,EAAKC,QAAQE,OAASU,KAAKC,UAAWX,GAE1C,MAAOH"}
{"version":3,"file":"upload-view.js","sources":["../../../src/mvc/upload/upload-view.js"],"names":["define","Utils","Modal","Tabs","UploadButton","UploadViewDefault","UploadViewComposite","UploadViewCollection","Backbone","View","extend","options","nginx_upload_path","ftp_upload_site","default_genome","default_extension","height","width","auto","id","text","description","list_extensions","list_genomes","initialize","self","this","merge","ui_button","onclick","e","preventDefault","show","onunload","percentage","model","get","setElement","$el","url","Galaxy","root","success","datatypes","key","push","extension","description_url","composite_files","sort","a","b","a_text","toLowerCase","b_text","datatypes_disable_auto","unshift","genomes","currHistoryPanel","current_user","user","modal","tabs","default_view","add","title","composite_view","collection_view","body","closing_events","title_separator","window","setTimeout","currentHistory","currentFtp","toData","items","history_id","data","payload","tool_id","inputs","files","error_message","length","index","it","set","prefix","name","file","JSON","stringify"],"mappings":"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"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
webpackJsonp([4],[function(e,r,n){(function(e){var r=n(1),a=r,i=n(56).GalaxyApp,o=n(10),t=n(5),l=n(58);window.app=function(n,c){window.Galaxy=new i(n,c),Galaxy.debug("login app");var d=encodeURI(n.redirect);if(!n.show_welcome_with_login){var w=r.param({use_panels:"True",redirect:d});return void(window.location.href=Galaxy.root+"user/login?"+w)}var p=new l.PageLayoutView(e.extend(n,{el:"body",center:new o.CenterPanel({el:"#center"}),right:new o.RightPanel({title:t("Login required"),el:"#right"})}));a(function(){var e=r.param({redirect:d}),a=Galaxy.root+"user/login?"+e;p.render(),p.center.$("#galaxy_main").prop("src",n.welcome_url),p.right.$(".unified-panel-body").css("overflow","hidden").html('<iframe src="'+a+'" frameborder="0" style="width: 100%; height: 100%;"/>')})}}).call(r,n(2))}]);
webpackJsonp([4],[function(e,r,n){(function(e){var r=n(1),a=r,i=n(60).GalaxyApp,o=n(10),t=n(5),l=n(62);window.app=function(n,c){window.Galaxy=new i(n,c),Galaxy.debug("login app");var d=encodeURI(n.redirect);if(!n.show_welcome_with_login){var w=r.param({use_panels:"True",redirect:d});return void(window.location.href=Galaxy.root+"user/login?"+w)}var p=new l.PageLayoutView(e.extend(n,{el:"body",center:new o.CenterPanel({el:"#center"}),right:new o.RightPanel({title:t("Login required"),el:"#right"})}));a(function(){var e=r.param({redirect:d}),a=Galaxy.root+"user/login?"+e;p.render(),p.center.$("#galaxy_main").prop("src",n.welcome_url),p.right.$(".unified-panel-body").css("overflow","hidden").html('<iframe src="'+a+'" frameborder="0" style="width: 100%; height: 100%;"/>')})}}).call(r,n(2))}]);
//# sourceMappingURL=login.bundled.js.map
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
define([],function(){var a={_validationWarning:function(a,b){var c="validation-warning";"name"===a&&(a=this.$(".collection-name").add(this.$(".collection-name-prompt")),this.$(".collection-name").focus().select()),b?(a=a||this.$("."+c),a.removeClass(c)):a.addClass(c)},_changeHideOriginals:function(){this.hideOriginals=this.$(".hide-originals").prop("checked")},_changeName:function(){this._validationWarning("name",!!this._getName())},_nameCheckForEnter:function(a){13!==a.keyCode||this.blocking||this._clickCreate()},_getName:function(){return _.escape(this.$(".collection-name").val())},_clickMoreHelp:function(a){a.stopPropagation(),this.$(".main-help").addClass("expanded"),this.$(".more-help").hide()},_clickLessHelp:function(a){a.stopPropagation(),this.$(".main-help").removeClass("expanded"),this.$(".more-help").show()},_toggleHelp:function(a){a.stopPropagation(),this.$(".main-help").toggleClass("expanded"),this.$(".more-help").toggle()},_showAlert:function(a,b){b=b||"alert-danger",this.$(".main-help").hide(),this.$(".header .alert").attr("class","alert alert-dismissable").addClass(b).show().find(".alert-message").html(a)},_hideAlert:function(){this.$(".main-help").show(),this.$(".header .alert").hide()},_cancelCreate:function(){"function"==typeof this.oncancel&&this.oncancel.call(this)},_clickCreate:function(){var a=this._getName();a?this.blocking||this.createList(a):this._validationWarning("name")},_setUpCommonSettings:function(){this.hideOriginals=!1},_renderFooter:function(){var a=this,b=this.$(".footer").empty().html(this.templates.footer());return _.each(this.footerSettings,function(b,c){this.$(c).prop("checked",a[b])}),"function"==typeof this.oncancel&&this.$(".cancel-create.btn").show(),b},_creatorTemplates:{main:_.template(['<div class="header flex-row no-flex"></div>','<div class="middle flex-row flex-row-container"></div>','<div class="footer flex-row no-flex"></div>'].join(""))}};return{CollectionCreatorMixin:a}});
define([],function(){var a={_validationWarning:function(a,b){var c="validation-warning";"name"===a&&(a=this.$(".collection-name").add(this.$(".collection-name-prompt")),this.$(".collection-name").focus().select()),b?(a=a||this.$("."+c),a.removeClass(c)):a.addClass(c)},_changeHideOriginals:function(){this.hideOriginals=this.$(".hide-originals").prop("checked")},_changeName:function(){this._validationWarning("name",!!this._getName())},_nameCheckForEnter:function(a){13!==a.keyCode||this.blocking||this._clickCreate()},_getName:function(){return _.escape(this.$(".collection-name").val())},_clickMoreHelp:function(a){a.stopPropagation(),this.$(".main-help").addClass("expanded"),this.$(".more-help").hide()},_clickLessHelp:function(a){a.stopPropagation(),this.$(".main-help").removeClass("expanded"),this.$(".more-help").show()},_toggleHelp:function(a){a.stopPropagation(),this.$(".main-help").toggleClass("expanded"),this.$(".more-help").toggle()},_showAlert:function(a,b){b=b||"alert-danger",this.$(".main-help").hide(),this.$(".header .alert").attr("class","alert alert-dismissable").addClass(b).show().find(".alert-message").html(a)},_hideAlert:function(){this.$(".main-help").show(),this.$(".header .alert").hide()},_cancelCreate:function(){"function"==typeof this.oncancel&&this.oncancel.call(this)},_clickCreate:function(){var a=this._getName();a?this.blocking||this.createList(a):this._validationWarning("name")},_setUpCommonSettings:function(a){this.hideOriginals=a.defaultHideSourceItems||!1},_renderFooter:function(){var a=this,b=this.$(".footer").empty().html(this.templates.footer());return _.each(this.footerSettings,function(b,c){this.$(c).prop("checked",a[b])}),"function"==typeof this.oncancel&&this.$(".cancel-create.btn").show(),b},_creatorTemplates:{main:_.template(['<div class="header flex-row no-flex"></div>','<div class="middle flex-row flex-row-container"></div>','<div class="footer flex-row no-flex"></div>'].join(""))}};return{CollectionCreatorMixin:a}});
//# sourceMappingURL=../../../maps/mvc/collection/base-creator.js.map
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
define(["mvc/collection/list-collection-creator","mvc/history/hdca-model","mvc/base-mvc","utils/localization"],function(a,b,c,d){"use strict";function e(a){var b=a.toJSON(),c=j(b,{creationFn:function(b,c,d){return b=[{name:"forward",src:"hda",id:b[0].id},{name:"reverse",src:"hda",id:b[1].id}],a.createHDCA(b,"paired",c,d)}});return c}var f="collections",g=Backbone.View.extend(c.LoggableMixin).extend({_logNamespace:f,tagName:"li",className:"collection-element",initialize:function(a){this.element=a.element||{},this.identifier=a.identifier},render:function(){return this.$el.attr("data-element-id",this.element.id).html(this.template({identifier:this.identifier,element:this.element})),this},template:_.template(['<span class="identifier"><%- identifier %></span>','<span class="name"><%- element.name %></span>'].join("")),destroy:function(){this.off(),this.$el.remove()},toString:function(){return"DatasetCollectionElementView()"}}),h=a.ListCollectionCreator,i=h.extend({elementViewClass:g,collectionClass:b.HistoryPairDatasetCollection,className:"pair-collection-creator collection-creator flex-row-container",_mangleDuplicateNames:function(){},render:function(a,b){return 2===this.workingElements.length?h.prototype.render.call(this,a,b):this._renderInvalid(a,b)},_renderList:function(){var a=this,b=jQuery("<div/>"),c=a.$list();_.each(this.elementViews,function(b){b.destroy(),a.removeElementView(b)}),b.append(a._createForwardElementView().$el),b.append(a._createReverseElementView().$el),c.empty().append(b.children()),_.invoke(a.elementViews,"render")},_createForwardElementView:function(){return this._createElementView(this.workingElements[0],{identifier:"forward"})},_createReverseElementView:function(){return this._createElementView(this.workingElements[1],{identifier:"reverse"})},_createElementView:function(a,b){var c=new this.elementViewClass(_.extend(b,{element:a}));return this.elementViews.push(c),c},swap:function(){this.workingElements=[this.workingElements[1],this.workingElements[0]],this._renderList()},events:_.extend(_.clone(h.prototype.events),{"click .swap":"swap"}),templates:_.extend(_.clone(h.prototype.templates),{middle:_.template(['<div class="collection-elements-controls">','<a class="swap" href="javascript:void(0);" title="',d("Swap forward and reverse datasets"),'">',d("Swap"),"</a>","</div>",'<div class="collection-elements scroll-container flex-row">',"</div>"].join("")),helpContent:_.template(["<p>",d(["Pair collections are permanent collections containing two datasets: one forward and one reverse. ","Often these are forward and reverse reads. The pair collections can be passed to tools and ","workflows in order to have analyses done on both datasets. This interface allows ","you to create a pair, name it, and swap which is forward and which reverse."].join("")),"</p>","<ul>","<li>",d(['Click the <i data-target=".swap">"Swap"</i> link to make your forward dataset the reverse ',"and the reverse dataset forward."].join("")),"</li>","<li>",d(['Click the <i data-target=".cancel-create">"Cancel"</i> button to exit the interface.'].join("")),"</li>","</ul><br />","<p>",d(['Once your collection is complete, enter a <i data-target=".collection-name">name</i> and ','click <i data-target=".create-collection">"Create list"</i>.'].join("")),"</p>"].join("")),invalidInitial:_.template(['<div class="header flex-row no-flex">','<div class="alert alert-warning" style="display: block">','<span class="alert-message">',"<% if( _.size( problems ) ){ %>",d("The following selections could not be included due to problems"),"<ul><% _.each( problems, function( problem ){ %>","<li><b><%- problem.element.name %></b>: <%- problem.text %></li>","<% }); %></ul>","<% } else if( _.size( elements ) === 0 ){ %>",d("No datasets were selected"),".","<% } else if( _.size( elements ) === 1 ){ %>",d("Only one dataset was selected"),": <%- elements[0].name %>","<% } else if( _.size( elements ) > 2 ){ %>",d("Too many datasets were selected"),': <%- _.pluck( elements, "name" ).join( ", ") %>',"<% } %>","<br />",d("Two (and only two) elements are needed for the pair"),". ",d("You may need to "),'<a class="cancel-create" href="javascript:void(0)">',d("cancel"),"</a> ",d("and reselect new elements"),".","</span>","</div>","</div>",'<div class="footer flex-row no-flex">','<div class="actions clear vertically-spaced">','<div class="other-options pull-left">','<button class="cancel-create btn" tabindex="-1">',d("Cancel"),"</button>","</div>","</div>","</div>"].join(""))}),toString:function(){return"PairCollectionCreator"}}),j=function(b,c){return c=c||{},c.title=d("Create a collection from a pair of datasets"),a.collectionCreatorModal(b,c,i)};return{PairCollectionCreator:i,pairCollectionCreatorModal:j,createPairCollection:e}});
define(["mvc/collection/list-collection-creator","mvc/history/hdca-model","mvc/base-mvc","utils/localization"],function(a,b,c,d){"use strict";function e(a,b){var c=a.toJSON(),d=j(c,{defaultHideSourceItems:b,creationFn:function(b,c,d){return b=[{name:"forward",src:"hda",id:b[0].id},{name:"reverse",src:"hda",id:b[1].id}],a.createHDCA(b,"paired",c,d)}});return d}var f="collections",g=Backbone.View.extend(c.LoggableMixin).extend({_logNamespace:f,tagName:"li",className:"collection-element",initialize:function(a){this.element=a.element||{},this.identifier=a.identifier},render:function(){return this.$el.attr("data-element-id",this.element.id).html(this.template({identifier:this.identifier,element:this.element})),this},template:_.template(['<span class="identifier"><%- identifier %></span>','<span class="name"><%- element.name %></span>'].join("")),destroy:function(){this.off(),this.$el.remove()},toString:function(){return"DatasetCollectionElementView()"}}),h=a.ListCollectionCreator,i=h.extend({elementViewClass:g,collectionClass:b.HistoryPairDatasetCollection,className:"pair-collection-creator collection-creator flex-row-container",_mangleDuplicateNames:function(){},render:function(a,b){return 2===this.workingElements.length?h.prototype.render.call(this,a,b):this._renderInvalid(a,b)},_renderList:function(){var a=this,b=jQuery("<div/>"),c=a.$list();_.each(this.elementViews,function(b){b.destroy(),a.removeElementView(b)}),b.append(a._createForwardElementView().$el),b.append(a._createReverseElementView().$el),c.empty().append(b.children()),_.invoke(a.elementViews,"render")},_createForwardElementView:function(){return this._createElementView(this.workingElements[0],{identifier:"forward"})},_createReverseElementView:function(){return this._createElementView(this.workingElements[1],{identifier:"reverse"})},_createElementView:function(a,b){var c=new this.elementViewClass(_.extend(b,{element:a}));return this.elementViews.push(c),c},swap:function(){this.workingElements=[this.workingElements[1],this.workingElements[0]],this._renderList()},events:_.extend(_.clone(h.prototype.events),{"click .swap":"swap"}),templates:_.extend(_.clone(h.prototype.templates),{middle:_.template(['<div class="collection-elements-controls">','<a class="swap" href="javascript:void(0);" title="',d("Swap forward and reverse datasets"),'">',d("Swap"),"</a>","</div>",'<div class="collection-elements scroll-container flex-row">',"</div>"].join("")),helpContent:_.template(["<p>",d(["Pair collections are permanent collections containing two datasets: one forward and one reverse. ","Often these are forward and reverse reads. The pair collections can be passed to tools and ","workflows in order to have analyses done on both datasets. This interface allows ","you to create a pair, name it, and swap which is forward and which reverse."].join("")),"</p>","<ul>","<li>",d(['Click the <i data-target=".swap">"Swap"</i> link to make your forward dataset the reverse ',"and the reverse dataset forward."].join("")),"</li>","<li>",d(['Click the <i data-target=".cancel-create">"Cancel"</i> button to exit the interface.'].join("")),"</li>","</ul><br />","<p>",d(['Once your collection is complete, enter a <i data-target=".collection-name">name</i> and ','click <i data-target=".create-collection">"Create list"</i>.'].join("")),"</p>"].join("")),invalidInitial:_.template(['<div class="header flex-row no-flex">','<div class="alert alert-warning" style="display: block">','<span class="alert-message">',"<% if( _.size( problems ) ){ %>",d("The following selections could not be included due to problems"),"<ul><% _.each( problems, function( problem ){ %>","<li><b><%- problem.element.name %></b>: <%- problem.text %></li>","<% }); %></ul>","<% } else if( _.size( elements ) === 0 ){ %>",d("No datasets were selected"),".","<% } else if( _.size( elements ) === 1 ){ %>",d("Only one dataset was selected"),": <%- elements[0].name %>","<% } else if( _.size( elements ) > 2 ){ %>",d("Too many datasets were selected"),': <%- _.pluck( elements, "name" ).join( ", ") %>',"<% } %>","<br />",d("Two (and only two) elements are needed for the pair"),". ",d("You may need to "),'<a class="cancel-create" href="javascript:void(0)">',d("cancel"),"</a> ",d("and reselect new elements"),".","</span>","</div>","</div>",'<div class="footer flex-row no-flex">','<div class="actions clear vertically-spaced">','<div class="other-options pull-left">','<button class="cancel-create btn" tabindex="-1">',d("Cancel"),"</button>","</div>","</div>","</div>"].join(""))}),toString:function(){return"PairCollectionCreator"}}),j=function(b,c){return c=c||{},c.title=d("Create a collection from a pair of datasets"),a.collectionCreatorModal(b,c,i)};return{PairCollectionCreator:i,pairCollectionCreatorModal:j,createPairCollection:e}});
//# sourceMappingURL=../../../maps/mvc/collection/pair-collection-creator.js.map
File diff suppressed because one or more lines are too long
@@ -0,0 +1,2 @@
define(["utils/utils","mvc/upload/upload-model","mvc/upload/upload-settings","mvc/ui/ui-popover","mvc/ui/ui-select"],function(a,b,c,d){return Backbone.View.extend({status_classes:{init:"upload-icon-button fa fa-trash-o",queued:"upload-icon fa fa-spinner fa-spin",running:"upload-icon fa fa-spinner fa-spin",success:"upload-icon-button fa fa-check",error:"upload-icon-button fa fa-exclamation-triangle"},initialize:function(a,b){var c=this;this.app=a,this.model=b.model,this.setElement(this._template(b.model)),this.$mode=this.$(".upload-mode"),this.$title=this.$(".upload-title-extended"),this.$text=this.$(".upload-text"),this.$size=this.$(".upload-size"),this.$info_text=this.$(".upload-info-text"),this.$info_progress=this.$(".upload-info-progress"),this.$text_content=this.$(".upload-text-content"),this.$symbol=this.$(".upload-symbol"),this.$progress_bar=this.$(".upload-progress-bar"),this.$percentage=this.$(".upload-percentage"),this.settings=new d.View({title:"Upload configuration",container:this.$(".upload-settings"),placement:"bottom"});this.app.select_genome.value(),this.app.select_extension.value();this.$symbol.on("click",function(){c._removeRow()}),this.$text_content.on("change input",function(a){c.model.set({url_paste:$(a.target).val(),file_size:$(a.target).val().length})}),this.listenTo(this.model,"change:percentage",function(){c._refreshPercentage()}),this.listenTo(this.model,"change:status",function(){c._refreshStatus()}),this.listenTo(this.model,"change:info",function(){c._refreshInfo()}),this.listenTo(this.model,"change:file_size",function(){c._refreshFileSize()}),this.listenTo(this.model,"remove",function(){c.remove()}),this.app.collection.on("reset",function(){c.remove()})},render:function(){var b=this.model.attributes;this.$title.html(_.escape(b.file_name)),this.$size.html(a.bytesToString(b.file_size)),this.$mode.removeClass().addClass("upload-mode").addClass("text-primary"),"new"==b.file_mode?(this.$text.css({width:this.$el.width()-16+"px",top:this.$el.height()-8+"px"}).show(),this.$el.height(this.$el.height()-8+this.$text.height()+16),this.$mode.addClass("fa fa-edit")):"local"==b.file_mode?this.$mode.addClass("fa fa-laptop"):"ftp"==b.file_mode&&this.$mode.addClass("fa fa-folder-open-o")},_refreshInfo:function(){var a=this.model.get("info");a?this.$info_text.html("<strong>Failed: </strong>"+a).show():this.$info_text.hide()},_refreshPercentage:function(){var a=parseInt(this.model.get("percentage"));this.$progress_bar.css({width:a+"%"}),this.$percentage.html(100!=a?a+"%":"Adding to history...")},_refreshStatus:function(){var a=this.model.get("status");this.$symbol.removeClass().addClass("upload-symbol").addClass(this.status_classes[a]),this.model.set("enabled","init"==a);var b=this.model.get("enabled");this.$text_content.attr("disabled",!b),"success"==a&&(this.$el.addClass("success"),this.$percentage.html("100%")),"error"==a&&(this.$el.addClass("danger"),this.$info_progress.hide())},_refreshFileSize:function(){this.$size.html(a.bytesToString(this.model.get("file_size")))},_removeRow:function(){-1!==["init","success","error"].indexOf(this.model.get("status"))&&this.app.collection.remove(this.model)},_showSettings:function(){this.settings.visible?this.settings.hide():(this.settings.empty(),this.settings.append(new c(this).$el),this.settings.show())},_template:function(a){return'<tr id="upload-row-'+a.id+'" class="upload-row"><td><div class="upload-text-column"><div class="upload-mode"/><div class="upload-title-extended"/><div class="upload-text"><div class="upload-text-info">You can tell Galaxy to download data from web by entering URL in this box (one per line). You can also directly paste the contents of a file.</div><textarea class="upload-text-content form-control"/></div></div></td><td><div class="upload-size"/></td><td><div class="upload-info"><div class="upload-info-text"/><div class="upload-info-progress progress"><div class="upload-progress-bar progress-bar progress-bar-success"/><div class="upload-percentage">0%</div></div></div></td><td><div class="upload-symbol '+this.status_classes.init+'"/></td></tr>'}})});
//# sourceMappingURL=../../../../maps/mvc/upload/collection/collection-row.js.map
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define(["utils/utils","mvc/ui/ui-modal","mvc/ui/ui-tabs","mvc/upload/upload-button","mvc/upload/default/default-view","mvc/upload/composite/composite-view"],function(a,b,c,d,e,f){return Backbone.View.extend({options:{nginx_upload_path:"",ftp_upload_site:"n/a",default_genome:"?",default_extension:"auto",height:500,width:900,auto:{id:"auto",text:"Auto-detect",description:"This system will try to detect the file type automatically. If your file is not detected properly as one of the known formats, it most likely means that it has some format problems (e.g., different number of columns on different rows). You can still coerce the system to set your data to the format you think it should be. You can also upload compressed files, which will automatically be decompressed."}},list_extensions:[],list_genomes:[],initialize:function(b){var c=this;this.options=a.merge(b,this.options),this.ui_button=new d.View({onclick:function(a){a.preventDefault(),c.show()},onunload:function(){var a=c.ui_button.model.get("percentage",0);return a>0&&100>a?"Several uploads are queued.":void 0}}),this.setElement(this.ui_button.$el);var c=this;a.get({url:Galaxy.root+"api/datatypes?extension_only=False",success:function(a){for(key in a)c.list_extensions.push({id:a[key].extension,text:a[key].extension,description:a[key].description,description_url:a[key].description_url,composite_files:a[key].composite_files});c.list_extensions.sort(function(a,b){var c=a.text&&a.text.toLowerCase(),d=b.text&&b.text.toLowerCase();return c>d?1:d>c?-1:0}),c.options.datatypes_disable_auto||c.list_extensions.unshift(c.options.auto)}}),a.get({url:Galaxy.root+"api/genomes",success:function(a){for(key in a)c.list_genomes.push({id:a[key][1],text:a[key][0]});c.list_genomes.sort(function(a,b){return a.id==c.options.default_genome?-1:b.id==c.options.default_genome?1:a.text>b.text?1:a.text<b.text?-1:0})}})},show:function(){var a=this;return Galaxy.currHistoryPanel&&Galaxy.currHistoryPanel.model?(this.current_user=Galaxy.user.id,this.modal||(this.tabs=new c.View,this.default_view=new e(this),this.tabs.add({id:"regular",title:"Regular",$el:this.default_view.$el}),this.composite_view=new f(this),this.tabs.add({id:"composite",title:"Composite",$el:this.composite_view.$el}),this.modal=new b.View({title:"Download from web or upload from disk",body:this.tabs.$el,height:this.options.height,width:this.options.width,closing_events:!0,title_separator:!1})),void this.modal.show()):void window.setTimeout(function(){a.show()},500)},currentHistory:function(){return this.current_user&&Galaxy.currHistoryPanel.model.get("id")},currentFtp:function(){return this.current_user&&this.options.ftp_upload_site},toData:function(a,b){var c={payload:{tool_id:"upload1",history_id:b||this.currentHistory(),inputs:{}},files:[],error_message:null};if(a&&a.length>0){var d={};d.dbkey=a[0].get("genome",null),d.file_type=a[0].get("extension",null);for(var e in a){var f=a[e];if(f.set("status","running"),!(f.get("file_size")>0)){c.error_message="Upload content incomplete.",f.set("status","error"),f.set("info",c.error_message);break}var g="files_"+e+"|";switch(d[g+"type"]="upload_dataset",d[g+"space_to_tab"]=f.get("space_to_tab")&&"Yes"||null,d[g+"to_posix_lines"]=f.get("to_posix_lines")&&"Yes"||null,f.get("file_mode")){case"new":d[g+"url_paste"]=f.get("url_paste");break;case"ftp":d[g+"ftp_files"]=f.get("file_path");break;case"local":c.files.push({name:g+"file_data",file:f.get("file_data")})}}c.payload.inputs=JSON.stringify(d)}return c}})});
define(["utils/utils","mvc/ui/ui-modal","mvc/ui/ui-tabs","mvc/upload/upload-button","mvc/upload/default/default-view","mvc/upload/composite/composite-view","mvc/upload/collection/collection-view"],function(a,b,c,d,e,f,g){return Backbone.View.extend({options:{nginx_upload_path:"",ftp_upload_site:"n/a",default_genome:"?",default_extension:"auto",height:500,width:900,auto:{id:"auto",text:"Auto-detect",description:"This system will try to detect the file type automatically. If your file is not detected properly as one of the known formats, it most likely means that it has some format problems (e.g., different number of columns on different rows). You can still coerce the system to set your data to the format you think it should be. You can also upload compressed files, which will automatically be decompressed."}},list_extensions:[],list_genomes:[],initialize:function(b){var c=this;this.options=a.merge(b,this.options),this.ui_button=new d.View({onclick:function(a){a.preventDefault(),c.show()},onunload:function(){var a=c.ui_button.model.get("percentage",0);return a>0&&100>a?"Several uploads are queued.":void 0}}),this.setElement(this.ui_button.$el);var c=this;a.get({url:Galaxy.root+"api/datatypes?extension_only=False",success:function(a){for(key in a)c.list_extensions.push({id:a[key].extension,text:a[key].extension,description:a[key].description,description_url:a[key].description_url,composite_files:a[key].composite_files});c.list_extensions.sort(function(a,b){var c=a.text&&a.text.toLowerCase(),d=b.text&&b.text.toLowerCase();return c>d?1:d>c?-1:0}),c.options.datatypes_disable_auto||c.list_extensions.unshift(c.options.auto)}}),a.get({url:Galaxy.root+"api/genomes",success:function(a){for(key in a)c.list_genomes.push({id:a[key][1],text:a[key][0]});c.list_genomes.sort(function(a,b){return a.id==c.options.default_genome?-1:b.id==c.options.default_genome?1:a.text>b.text?1:a.text<b.text?-1:0})}})},show:function(){var a=this;return Galaxy.currHistoryPanel&&Galaxy.currHistoryPanel.model?(this.current_user=Galaxy.user.id,this.modal||(this.tabs=new c.View,this.default_view=new e(this),this.tabs.add({id:"regular",title:"Regular",$el:this.default_view.$el}),this.composite_view=new f(this),this.tabs.add({id:"composite",title:"Composite",$el:this.composite_view.$el}),this.collection_view=new g(this),this.tabs.add({id:"collection",title:"Collection",$el:this.collection_view.$el}),this.modal=new b.View({title:"Download from web or upload from disk",body:this.tabs.$el,height:this.options.height,width:this.options.width,closing_events:!0,title_separator:!1})),void this.modal.show()):void window.setTimeout(function(){a.show()},500)},currentHistory:function(){return this.current_user&&Galaxy.currHistoryPanel.model.get("id")},currentFtp:function(){return this.current_user&&this.options.ftp_upload_site},toData:function(a,b){var c={payload:{tool_id:"upload1",history_id:b||this.currentHistory(),inputs:{}},files:[],error_message:null};if(a&&a.length>0){var d={};d.dbkey=a[0].get("genome",null),d.file_type=a[0].get("extension",null);for(var e in a){var f=a[e];if(f.set("status","running"),!(f.get("file_size")>0)){c.error_message="Upload content incomplete.",f.set("status","error"),f.set("info",c.error_message);break}var g="files_"+e+"|";switch(d[g+"type"]="upload_dataset",d[g+"space_to_tab"]=f.get("space_to_tab")&&"Yes"||null,d[g+"to_posix_lines"]=f.get("to_posix_lines")&&"Yes"||null,f.get("file_mode")){case"new":d[g+"url_paste"]=f.get("url_paste");break;case"ftp":d[g+"ftp_files"]=f.get("file_path");break;case"local":c.files.push({name:g+"file_data",file:f.get("file_data")})}}c.payload.inputs=JSON.stringify(d)}return c}})});
//# sourceMappingURL=../../../maps/mvc/upload/upload-view.js.map
File diff suppressed because one or more lines are too long
+133 -20
View File
@@ -233,11 +233,22 @@ class NavigatesGalaxy(HasDriver):
confirm=confirm
))
self.click_xpath(self.navigation_data["selectors"]["registrationPage"]["submit_xpath"])
# Give the browser a bit of time to submit the request.
time.sleep(.25)
if assert_valid:
self.home()
self.click_masthead_user()
user_email_element = self.wait_for_xpath_visible(self.navigation_data["selectors"]["masthead"]["userMenu"]["userEmail_xpath"])
# Make sure the user menu was dropped down
user_menu = self.wait_for_selector_visible("ul.nav#user .dropdown-menu")
try:
user_email_element = self.wait_for_xpath_visible(self.navigation_data["selectors"]["masthead"]["userMenu"]["userEmail_xpath"])
except self.TimeoutException as e:
menu_items = user_menu.find_elements_by_css_selector("li a")
menu_text = [mi.text for mi in menu_items]
message = "Failed to find logged in message in menu items %s" % ", ".join(menu_text)
raise self.prepend_timeout_message(e, message)
text = user_email_element.text
assert email in text
assert self.get_logged_in_user()["email"] == email
@@ -252,23 +263,12 @@ class NavigatesGalaxy(HasDriver):
def perform_upload(self, test_path, ext=None, genome=None, ext_all=None, genome_all=None):
self.home()
self.upload_start_click()
upload_button = self.wait_for_selector_clickable(".upload-button")
upload_button.click()
self.upload_set_footer_extension(ext_all)
self.upload_set_footer_genome(genome_all)
if ext_all is not None:
self.wait_for_selector_visible('.upload-footer-extension')
self.select2_set_value(".upload-footer-extension", ext_all)
if genome_all is not None:
self.wait_for_selector_visible('.upload-footer-genome')
self.select2_set_value(".upload-footer-genome", genome_all)
local_upload_button = self.wait_for_selector_clickable("button#btn-local")
local_upload_button.click()
file_upload = self.wait_for_selector('input[type="file"]')
file_upload.send_keys(test_path)
self.upload_queue_local_file(test_path)
if ext is not None:
self.wait_for_selector_visible('.upload-extension')
@@ -278,12 +278,105 @@ class NavigatesGalaxy(HasDriver):
self.wait_for_selector_visible('.upload-genome')
self.select2_set_value(".upload-genome", genome)
start_button = self.wait_for_selector_clickable("button#btn-start")
start_button.click()
self.upload_start()
close_button = self.wait_for_selector_clickable("button#btn-close")
close_button.click()
def upload_list(self, test_paths, name="test", ext=None, genome=None, hide_source_items=True):
self._collection_upload_start(test_paths, ext, genome, "List")
if not hide_source_items:
self.collection_builder_hide_originals()
self.collection_builder_set_name(name)
self.collection_builder_create()
def upload_pair(self, test_paths, name="test", ext=None, genome=None, hide_source_items=True):
self._collection_upload_start(test_paths, ext, genome, "Pair")
if not hide_source_items:
self.collection_builder_hide_originals()
self.collection_builder_set_name(name)
self.collection_builder_create()
def upload_paired_list(self, test_paths, name="test", ext=None, genome=None, hide_source_items=True):
self._collection_upload_start(test_paths, ext, genome, "List of Pairs")
if not hide_source_items:
self.collection_builder_hide_originals()
self.collection_builder_clear_filters()
# TODO: generalize and loop these clicks so we don't need the assert
assert len(test_paths) == 2
self.collection_builder_click_paired_item("forward", 0)
self.collection_builder_click_paired_item("reverse", 1)
self.collection_builder_set_name(name)
self.collection_builder_create()
def _collection_upload_start(self, test_paths, ext, genome, collection_type):
# Perform upload of files and open the collection builder for specified
# type.
self.home()
self.upload_start_click()
self.upload_tab_click("collection")
self.upload_set_footer_extension(ext, tab_id="collection")
self.upload_set_footer_genome(genome, tab_id="collection")
self.upload_set_collection_type(collection_type)
for test_path in test_paths:
self.upload_queue_local_file(test_path, tab_id="collection")
self.upload_start(tab_id="collection")
self.upload_build()
@retry_during_transitions
def upload_tab_click(self, tab):
tab_tag_id = "#tab-title-link-%s" % tab
tab_element = self.wait_for_selector_clickable(tab_tag_id)
tab_element.click()
@retry_during_transitions
def upload_start_click(self):
upload_button = self.wait_for_selector_clickable(".upload-button")
upload_button.click()
@retry_during_transitions
def upload_set_footer_extension(self, ext, tab_id="regular"):
if ext is not None:
selector = 'div#%s .upload-footer-extension' % tab_id
self.wait_for_selector_visible(selector)
self.select2_set_value(selector, ext)
@retry_during_transitions
def upload_set_footer_genome(self, genome, tab_id="regular"):
if genome is not None:
selector = 'div#%s .upload-footer-genome' % tab_id
self.wait_for_selector_visible(selector)
self.select2_set_value(selector, genome)
@retry_during_transitions
def upload_set_collection_type(self, collection_type):
self.wait_for_selector_visible(".upload-footer-collection-type")
self.select2_set_value(".upload-footer-collection-type", collection_type)
@retry_during_transitions
def upload_start(self, tab_id="regular"):
start_button = self.wait_for_selector_clickable("div#%s button#btn-start" % tab_id)
start_button.click()
@retry_during_transitions
def upload_build(self):
start_button = self.wait_for_selector_clickable("div#collection button#btn-build")
start_button.click()
def upload_queue_local_file(self, test_path, tab_id="regular"):
local_upload_button = self.wait_for_selector_clickable("div#%s button#btn-local" % tab_id)
local_upload_button.click()
file_upload = self.wait_for_selector('div#%s input[type="file"]' % tab_id)
file_upload.send_keys(test_path)
def workflow_index_open(self):
self.home()
self.click_masthead_workflow()
@@ -347,6 +440,14 @@ class NavigatesGalaxy(HasDriver):
def click_button_new_workflow(self):
self.click_selector(self.navigation_data["selectors"]["workflows"]["new_button"])
def wait_for_sizzle_selector_clickable(self, selector):
element = self._wait_on(
sizzle.sizzle_selector_clickable(selector),
"sizzle/jQuery selector [%s] to become clickable" % selector,
)
return element
@retry_during_transitions
def click_history_options(self):
history_options_button_selector = self.test_data["historyOptions"]["selectors"]["button"]
history_options_element = self.wait_for_selector(history_options_button_selector)
@@ -364,8 +465,9 @@ class NavigatesGalaxy(HasDriver):
# Click labelled option
menu_selector = self.history_options_menu_selector()
menu_element = self.wait_for_selector(menu_selector)
menu_selection_element = menu_element.find_element_by_xpath('//ul[@id="history-options-button-menu"]/li/a[text()[contains(.,"%s")]]' % option_label)
self.wait_for_selector_visible(menu_selector)
menu_item_sizzle_selector = '#history-options-button-menu > li > a:contains("%s")' % option_label
menu_selection_element = self.wait_for_sizzle_selector_clickable(menu_item_sizzle_selector)
menu_selection_element.click()
def history_options_menu_selector(self):
@@ -470,6 +572,17 @@ class NavigatesGalaxy(HasDriver):
create_element = self.wait_for_selector_clickable("button.create-collection")
create_element.click()
@retry_during_transitions
def collection_builder_clear_filters(self):
clear_filter_link = self.wait_for_selector_visible("a.clear-filters-link")
clear_filter_link.click()
def collection_builder_click_paired_item(self, forward_or_reverse, item):
assert forward_or_reverse in ["forward", "reverse"]
forward_column = self.wait_for_selector_visible(".%s-column .column-datasets" % forward_or_reverse)
first_datset_forward = forward_column.find_elements_by_css_selector("li")[item]
first_datset_forward.click()
def logout_if_needed(self):
if self.is_logged_in():
self.home()
@@ -61,17 +61,9 @@ class CollectionBuildersTestCase(SeleniumTestCase):
self.history_panel_muli_operation_select_hid(2)
self.history_panel_multi_operation_action_click("Build List of Dataset Pairs")
clear_filter_link = self.wait_for_selector_visible("a.clear-filters-link")
clear_filter_link.click()
forward_column = self.wait_for_selector_visible(".forward-column .column-datasets")
first_datset_forward = forward_column.find_elements_by_css_selector("li")[0]
first_datset_forward.click()
reverse_column = self.wait_for_selector_visible(".reverse-column .column-datasets")
second_dataset_reverse = reverse_column.find_elements_by_css_selector("li")[1]
second_dataset_reverse.click()
self.collection_builder_clear_filters()
self.collection_builder_click_paired_item("forward", 0)
self.collection_builder_click_paired_item("reverse", 1)
self.collection_builder_set_name("my awesome paired list")
self.collection_builder_create()
+48
View File
@@ -56,3 +56,51 @@ class UploadsTestCase(SeleniumTestCase, UsesHistoryItemAssertions):
self.history_panel_click_item_title(hid=1, wait=True)
self.assert_item_dbkey_displayed_as(1, "hg18")
@selenium_test
def test_upload_list(self):
self.upload_list([self.get_filename("1.tabular")], name="Test List")
self.history_panel_wait_for_hid_ok(2)
# Make sure modals disappeared - both List creator (TODO: upload).
self.wait_for_selector_absent_or_hidden(".collection-creator")
self.assert_item_name(2, "Test List")
# Make sure source item is hidden when the collection is created.
self.history_panel_wait_for_hid_hidden(1)
@selenium_test
def test_upload_pair(self):
self.upload_list([self.get_filename("1.tabular"), self.get_filename("2.tabular")], name="Test Pair")
self.history_panel_wait_for_hid_ok(3)
# Make sure modals disappeared - both collection creator (TODO: upload).
self.wait_for_selector_absent_or_hidden(".collection-creator")
self.assert_item_name(3, "Test Pair")
# Make sure source items are hidden when the collection is created.
self.history_panel_wait_for_hid_hidden(1)
self.history_panel_wait_for_hid_hidden(2)
@selenium_test
def test_upload_pair_specify_extension(self):
self.upload_list([self.get_filename("1.tabular"), self.get_filename("2.tabular")], name="Test Pair", ext="txt", hide_source_items=False)
self.history_panel_wait_for_hid_ok(3)
self.history_panel_wait_for_hid_ok(1)
history_contents = self.current_history_contents()
hda = history_contents[0]
assert hda["name"] == '1.tabular'
assert hda["extension"] == "txt", hda
@selenium_test
def test_upload_paired_list(self):
self.upload_paired_list([self.get_filename("1.tabular"), self.get_filename("2.tabular")], name="Test Paired List")
self.history_panel_wait_for_hid_ok(3)
# Make sure modals disappeared - both collection creator (TODO: upload).
self.wait_for_selector_absent_or_hidden(".collection-creator")
self.assert_item_name(3, "Test Paired List")
# Make sure source items are hidden when the collection is created.
self.history_panel_wait_for_hid_hidden(1)
self.history_panel_wait_for_hid_hidden(2)
@@ -164,15 +164,18 @@ class TestRepositoryDependencies( ShedTwillTestCase ):
self.display_installed_repository_manage_page( installed_convert_repository,
strings_displayed=strings_displayed )
def test_0045_uninstall_and_verify_tool_panel_sections( self ):
'''uninstall both and verify tool panel sections'''
installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
common.test_user_1_name )
installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
common.test_user_1_name )
self.uninstall_repository( installed_convert_repository )
self.uninstall_repository( installed_column_repository )
self.test_db_util.ga_refresh( installed_convert_repository )
self.test_db_util.ga_refresh( installed_column_repository )
self.check_galaxy_repository_tool_panel_section( installed_column_repository, 'new_column_maker' )
self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'new_convert_chars' )
# The following check fails somewhere around 5% of the time maybe on Jenkins.
# https://jenkins.galaxyproject.org/job/docker-toolshed/5578/
# https://jenkins.galaxyproject.org/job/docker-toolshed/5198/
# def test_0045_uninstall_and_verify_tool_panel_sections( self ):
# '''uninstall both and verify tool panel sections'''
# installed_convert_repository = self.test_db_util.get_installed_repository_by_name_owner( convert_repository_name,
# common.test_user_1_name )
# installed_column_repository = self.test_db_util.get_installed_repository_by_name_owner( column_repository_name,
# common.test_user_1_name )
# self.uninstall_repository( installed_convert_repository )
# self.uninstall_repository( installed_column_repository )
# self.test_db_util.ga_refresh( installed_convert_repository )
# self.test_db_util.ga_refresh( installed_column_repository )
# self.check_galaxy_repository_tool_panel_section( installed_column_repository, 'new_column_maker' )
# self.check_galaxy_repository_tool_panel_section( installed_convert_repository, 'new_convert_chars' )