Merge pull request #2440 from guerler/fix_subworkflows_display

Properly list subworkflows in run workflow form
This commit is contained in:
John Chilton
2016-06-02 14:41:43 -04:00
10 changed files with 33 additions and 36 deletions
@@ -48,7 +48,7 @@ define([ 'utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view'
}, step );
self.steps[ i ] = step;
self.links[ i ] = [];
self.parms[ i ] = {}
self.parms[ i ] = {};
});
// build linear index of step input pairs
@@ -208,14 +208,7 @@ define([ 'utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view'
var current = null;
this.deferred.execute( function( promise ) {
current = promise;
if ( self._isDataStep( step ) ) {
_.each( step.inputs, function( input ) { input.flavor = 'module' } );
form = new Form( Utils.merge({
title : '<b>' + step.name + '</b>',
onchange : function() { _.each( self.links[ i ], function( link ) { self._refreshStep( link ) } ) }
}, step ) );
self._append( self.$steps, form.$el );
} else if ( step.step_type == 'tool' ) {
if ( step.step_type == 'tool' ) {
form = new ToolFormBase( step );
if ( step.post_job_actions && step.post_job_actions.length ) {
form.portlet.append( $( '<div/>' ).addClass( 'ui-form-element-disabled' )
@@ -227,6 +220,13 @@ define([ 'utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view'
);
}
self._append( self.$steps, form.$el );
} else {
_.each( step.inputs, function( input ) { input.flavor = 'module' } );
form = new Form( Utils.merge({
title : '<b>' + step.name + '</b>',
onchange : function() { _.each( self.links[ i ], function( link ) { self._refreshStep( link ) } ) }
}, step ) );
self._append( self.$steps, form.$el );
}
self.forms[ i ] = form;
self._refreshStep( step );
@@ -447,7 +447,7 @@ define([ 'utils/utils', 'utils/deferred', 'mvc/ui/ui-misc', 'mvc/form/form-view'
_templateSuccess: function( response ) {
if ( response && response.length > 0 ) {
var $message = $( '<div/>' ).addClass( 'donemessagelarge' )
.append( $( '<p/>' ).text( 'Successfully ran workflow \'' + this.model.get( 'name' ) + '\'. The following datasets have been added to the queue:' ) );
.append( $( '<p/>' ).text( 'Successfully ran workflow \'' + this.model.get( 'name' ) + '\' and datasets will appear as jobs are created - you may need to refresh your history panel to see these.' ) );
for ( var i in response ) {
var invocation = response[ i ];
var $invocation = $( '<div/>' ).addClass( 'workflow-invocation-complete' );
@@ -37,10 +37,10 @@ var View = Backbone.View.extend({
}).set( options );
this.setElement( $( '<div/>' ).addClass( 'ui-select-content' ) );
this.button_product = new Ui.RadioButton.View( {
value : 'true',
data : [ { icon: 'fa fa-chain', value: 'true',
value : 'false',
data : [ { icon: 'fa fa-chain', value: 'false',
tooltip: 'Linked inputs will be run in matched order with other datasets e.g. use this for matching forward and reverse reads.' },
{ icon: 'fa fa-chain-broken', value: 'false',
{ icon: 'fa fa-chain-broken', value: 'true',
tooltip: 'Unlinked dataset inputs will be run against *all* other inputs.' } ] } );
var $batch_div = $( '<div/>' ).addClass( 'ui-form-info' )
.append( $( '<i/>' ).addClass( 'fa fa-sitemap' ) )
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
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
+13 -16
View File
@@ -11,21 +11,7 @@
step_models = []
for i, step in enumerate( steps ):
step_model = None
if step.type in [ 'data_input', 'data_collection_input' ]:
type_filter = []
for oc in step.output_connections:
for ic in oc.input_step.module.get_data_inputs():
if 'extensions' in ic and ic[ 'name' ] == oc.input_name:
type_filter += ic[ 'extensions' ]
if not type_filter:
type_filter = [ 'data' ]
d = step.module.get_runtime_inputs( type_filter )
input = d[ 'input' ].to_dict( trans );
step_model = {
'name' : input[ 'label' ],
'inputs' : [ input ]
}
elif step.type == 'tool':
if step.type == 'tool':
incoming = {}
tool = trans.app.toolbox.get_tool( step.tool_id )
params_to_incoming( incoming, tool.inputs, step.state.inputs, trans.app )
@@ -37,7 +23,18 @@
'action_arguments' : pja.action_arguments
} for pja in step.post_job_actions ]
else:
continue
type_filter = []
for oc in step.output_connections:
for ic in oc.input_step.module.get_data_inputs():
if 'extensions' in ic and ic[ 'name' ] == oc.input_name:
type_filter += ic[ 'extensions' ]
if not type_filter:
type_filter = [ 'data' ]
inputs = step.module.get_runtime_inputs( filter_set=type_filter )
step_model = {
'name' : step.module.name,
'inputs' : [ input.to_dict( trans ) for input in inputs.itervalues() ]
}
step_model[ 'step_id' ] = step.id
step_model[ 'step_type' ] = step.type
step_model[ 'output_connections' ] = [ {