mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
ToolForm: Update version selection, use underscores for internal parameters
This commit is contained in:
@@ -15,12 +15,10 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
this.optionsDefault = {
|
||||
// uses dynamic fields instead of text fields
|
||||
is_dynamic : true,
|
||||
// shows form in compact view mode
|
||||
compact : false,
|
||||
// shows form in narrow view mode
|
||||
narrow : false,
|
||||
// shows errors on start
|
||||
initial_errors : false,
|
||||
// use default value for disabled fields
|
||||
use_defaults : false
|
||||
initial_errors : false
|
||||
};
|
||||
|
||||
// configure options
|
||||
@@ -58,9 +56,66 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
$(this.container).append(this.$el);
|
||||
|
||||
// build this form
|
||||
this._buildForm();
|
||||
this.build(this.options);
|
||||
},
|
||||
|
||||
/** Main tool form build function. This function is called once a new model is available.
|
||||
*/
|
||||
build: function(options) {
|
||||
// link this
|
||||
var self = this;
|
||||
|
||||
// reset events
|
||||
this.off('refresh');
|
||||
this.off('reset');
|
||||
|
||||
// reset field list, which contains the input field elements
|
||||
this.field_list = {};
|
||||
|
||||
// reset sequential input definition list, which contains the input definitions as provided from the api
|
||||
this.input_list = {};
|
||||
|
||||
// reset input element list, which contains the dom elements of each input element (includes also the input field)
|
||||
this.element_list = {};
|
||||
|
||||
// creates a tree/json data structure from the input form
|
||||
this.tree = new ToolTree(this);
|
||||
|
||||
// request history content and build form
|
||||
this.content = new ToolContent(this);
|
||||
|
||||
// update model data
|
||||
self.options.inputs = options && options.inputs;
|
||||
|
||||
// create ui elements
|
||||
this._renderForm(options);
|
||||
|
||||
// rebuild the underlying data structure
|
||||
this.tree.finalize();
|
||||
|
||||
// show errors on startup
|
||||
if (options.initial_errors) {
|
||||
this._errors(options);
|
||||
}
|
||||
|
||||
// add refresh listener
|
||||
this.on('refresh', function() {
|
||||
// by using/resetting the deferred ajax queue the number of redundant calls is reduced
|
||||
self.deferred.reset();
|
||||
self.deferred.execute(function(){self._updateModel()});
|
||||
});
|
||||
|
||||
// add reset listener
|
||||
this.on('reset', function() {
|
||||
for (var i in this.element_list) {
|
||||
this.element_list[i].reset();
|
||||
}
|
||||
});
|
||||
|
||||
// refresh
|
||||
this.trigger('refresh');
|
||||
},
|
||||
|
||||
/** Shows the final message (usually upon successful job submission)
|
||||
*/
|
||||
reciept: function($el) {
|
||||
@@ -105,63 +160,6 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/** Main tool form build function. This function is called once a new model is available.
|
||||
*/
|
||||
_buildForm: function() {
|
||||
// link this
|
||||
var self = this;
|
||||
|
||||
// reset events
|
||||
this.off('refresh');
|
||||
this.off('reset');
|
||||
|
||||
// reset field list, which contains the input field elements
|
||||
this.field_list = {};
|
||||
|
||||
// reset sequential input definition list, which contains the input definitions as provided from the api
|
||||
this.input_list = {};
|
||||
|
||||
// reset input element list, which contains the dom elements of each input element (includes also the input field)
|
||||
this.element_list = {};
|
||||
|
||||
// creates a tree/json data structure from the input form
|
||||
this.tree = new ToolTree(this);
|
||||
|
||||
// request history content and build form
|
||||
this.content = new ToolContent(this);
|
||||
|
||||
// link model options
|
||||
var options = this.options;
|
||||
|
||||
// create ui elements
|
||||
this._renderForm(options);
|
||||
|
||||
// rebuild the underlying data structure
|
||||
this.tree.finalize();
|
||||
|
||||
// show errors on startup
|
||||
if (options.initial_errors) {
|
||||
this._errors(options);
|
||||
}
|
||||
|
||||
// add refresh listener
|
||||
this.on('refresh', function() {
|
||||
// by using/resetting the deferred ajax queue the number of redundant calls is reduced
|
||||
self.deferred.reset();
|
||||
self.deferred.execute(function(){self._updateModel()});
|
||||
});
|
||||
|
||||
// add reset listener
|
||||
this.on('reset', function() {
|
||||
for (var i in this.element_list) {
|
||||
this.element_list[i].reset();
|
||||
}
|
||||
});
|
||||
|
||||
// refresh
|
||||
this.trigger('refresh');
|
||||
},
|
||||
|
||||
/** Renders the UI elements required for the form
|
||||
*/
|
||||
@@ -175,7 +173,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
// button for version selection
|
||||
var requirements_button = new Ui.ButtonIcon({
|
||||
icon : 'fa-info-circle',
|
||||
title : (!options.compact && 'Requirements') || null,
|
||||
title : (!options.narrow && 'Requirements') || null,
|
||||
tooltip : 'Display tool requirements',
|
||||
onclick : function() {
|
||||
if (!this.visible) {
|
||||
@@ -200,7 +198,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
// button for version selection
|
||||
var versions_button = new Ui.ButtonMenu({
|
||||
icon : 'fa-cubes',
|
||||
title : (!options.compact && 'Versions') || null,
|
||||
title : (!options.narrow && 'Versions') || null,
|
||||
tooltip : 'Select another tool version'
|
||||
});
|
||||
if (options.versions && options.versions.length > 1) {
|
||||
@@ -213,8 +211,8 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
icon : 'fa-cube',
|
||||
onclick : function() {
|
||||
// here we update the tool version (some tools encode the version also in the id)
|
||||
options.id = options.id.replace(options.version, this.version);
|
||||
options.version = this.version;
|
||||
self.options.id = self.options.id.replace(self.options.version, this.version);
|
||||
self.options.version = this.version;
|
||||
|
||||
// rebuild the model and form
|
||||
self.deferred.reset();
|
||||
@@ -230,7 +228,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
// button menu
|
||||
var menu_button = new Ui.ButtonMenu({
|
||||
icon : 'fa-caret-down',
|
||||
title : (!options.compact && 'Options') || null,
|
||||
title : (!options.narrow && 'Options') || null,
|
||||
tooltip : 'View available options'
|
||||
});
|
||||
|
||||
@@ -306,7 +304,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
});
|
||||
|
||||
// remove padding
|
||||
if (options.compact) {
|
||||
if (options.narrow) {
|
||||
this.portlet.$content.css('padding', '0px');
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,13 @@ define(['utils/utils', 'mvc/tools/tools-form-base'],
|
||||
this.options = options;
|
||||
|
||||
// set labels
|
||||
this.options.text_enable = 'In Advance';
|
||||
this.options.text_disable = 'At Runtime';
|
||||
this.options.use_defaults = true;
|
||||
this.options.text_enable = 'In Advance';
|
||||
this.options.text_disable = 'At Runtime';
|
||||
|
||||
// configure workflow style
|
||||
this.options.is_dynamic = false;
|
||||
this.options.narrow = true;
|
||||
this.options.initial_errors = true;
|
||||
|
||||
// declare fields as optional
|
||||
Utils.deepeach(options.inputs, function(item) {
|
||||
|
||||
@@ -24,7 +24,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
ToolFormBase.prototype.initialize.call(this, options);
|
||||
},
|
||||
|
||||
|
||||
/** Builds a new model through api call and recreates the entire form
|
||||
*/
|
||||
_buildModel: function() {
|
||||
@@ -47,31 +47,28 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// register process
|
||||
var process_id = this.deferred.register();
|
||||
|
||||
|
||||
// get initial model
|
||||
Utils.request({
|
||||
type : 'GET',
|
||||
url : model_url,
|
||||
success : function(response) {
|
||||
// link model data update options
|
||||
self.options = response;
|
||||
|
||||
// build form
|
||||
self._buildForm();
|
||||
|
||||
// build new tool form
|
||||
self.build(response);
|
||||
|
||||
// notification
|
||||
self.message.update({
|
||||
status : 'success',
|
||||
message : 'Now you are using \'' + self.options.name + '\' version ' + self.options.version + '.',
|
||||
persistent : false
|
||||
});
|
||||
|
||||
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log success
|
||||
console.debug('tools-form::initialize() - Initial tool model ready.');
|
||||
console.debug(response);
|
||||
@@ -79,11 +76,11 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
error : function(response) {
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log error
|
||||
console.debug('tools-form::initialize() - Initial tool model request failed.');
|
||||
console.debug(response);
|
||||
|
||||
|
||||
// show error
|
||||
var error_message = response.error || 'Uncaught error.';
|
||||
self.modal.show({
|
||||
@@ -98,7 +95,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
/** Request a new model for an already created tool form and updates the form inputs
|
||||
*/
|
||||
_updateModel: function() {
|
||||
@@ -112,11 +109,11 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// log tool state
|
||||
console.debug('tools-form::_refreshForm() - Refreshing states.');
|
||||
console.debug(current_state);
|
||||
|
||||
|
||||
// activates/disables spinner for dynamic fields to indicate that they are currently being updated
|
||||
function wait(active) {
|
||||
for (var i in self.input_list) {
|
||||
@@ -131,10 +128,10 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// set wait mode
|
||||
wait(true);
|
||||
|
||||
|
||||
// register process
|
||||
var process_id = this.deferred.register();
|
||||
|
||||
@@ -179,13 +176,13 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// unset wait mode
|
||||
wait(false);
|
||||
|
||||
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log success
|
||||
console.debug('tools-form::_refreshForm() - States refreshed.');
|
||||
console.debug(new_model);
|
||||
@@ -193,7 +190,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
error : function(response) {
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log error
|
||||
console.debug('tools-form::_refreshForm() - Refresh request failed.');
|
||||
console.debug(response);
|
||||
|
||||
@@ -2254,8 +2254,8 @@ class Tool( object, Dictifiable ):
|
||||
"""
|
||||
Recursively creates a tool dictionary containing repeats, dynamic options and updated states.
|
||||
"""
|
||||
job_id = kwd.get('job_id', None)
|
||||
dataset_id = kwd.get('dataset_id', None)
|
||||
job_id = kwd.get('__job_id__', None)
|
||||
dataset_id = kwd.get('__dataset_id__', None)
|
||||
is_dynamic = string_as_bool(kwd.get('__is_dynamic__', True))
|
||||
|
||||
# load job details if provided
|
||||
|
||||
@@ -15,12 +15,10 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
this.optionsDefault = {
|
||||
// uses dynamic fields instead of text fields
|
||||
is_dynamic : true,
|
||||
// shows form in compact view mode
|
||||
compact : false,
|
||||
// shows form in narrow view mode
|
||||
narrow : false,
|
||||
// shows errors on start
|
||||
initial_errors : false,
|
||||
// use default value for disabled fields
|
||||
use_defaults : false
|
||||
initial_errors : false
|
||||
};
|
||||
|
||||
// configure options
|
||||
@@ -58,9 +56,66 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
$(this.container).append(this.$el);
|
||||
|
||||
// build this form
|
||||
this._buildForm();
|
||||
this.build(this.options);
|
||||
},
|
||||
|
||||
/** Main tool form build function. This function is called once a new model is available.
|
||||
*/
|
||||
build: function(options) {
|
||||
// link this
|
||||
var self = this;
|
||||
|
||||
// reset events
|
||||
this.off('refresh');
|
||||
this.off('reset');
|
||||
|
||||
// reset field list, which contains the input field elements
|
||||
this.field_list = {};
|
||||
|
||||
// reset sequential input definition list, which contains the input definitions as provided from the api
|
||||
this.input_list = {};
|
||||
|
||||
// reset input element list, which contains the dom elements of each input element (includes also the input field)
|
||||
this.element_list = {};
|
||||
|
||||
// creates a tree/json data structure from the input form
|
||||
this.tree = new ToolTree(this);
|
||||
|
||||
// request history content and build form
|
||||
this.content = new ToolContent(this);
|
||||
|
||||
// update model data
|
||||
self.options.inputs = options && options.inputs;
|
||||
|
||||
// create ui elements
|
||||
this._renderForm(options);
|
||||
|
||||
// rebuild the underlying data structure
|
||||
this.tree.finalize();
|
||||
|
||||
// show errors on startup
|
||||
if (options.initial_errors) {
|
||||
this._errors(options);
|
||||
}
|
||||
|
||||
// add refresh listener
|
||||
this.on('refresh', function() {
|
||||
// by using/resetting the deferred ajax queue the number of redundant calls is reduced
|
||||
self.deferred.reset();
|
||||
self.deferred.execute(function(){self._updateModel()});
|
||||
});
|
||||
|
||||
// add reset listener
|
||||
this.on('reset', function() {
|
||||
for (var i in this.element_list) {
|
||||
this.element_list[i].reset();
|
||||
}
|
||||
});
|
||||
|
||||
// refresh
|
||||
this.trigger('refresh');
|
||||
},
|
||||
|
||||
/** Shows the final message (usually upon successful job submission)
|
||||
*/
|
||||
reciept: function($el) {
|
||||
@@ -105,63 +160,6 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
/** Main tool form build function. This function is called once a new model is available.
|
||||
*/
|
||||
_buildForm: function() {
|
||||
// link this
|
||||
var self = this;
|
||||
|
||||
// reset events
|
||||
this.off('refresh');
|
||||
this.off('reset');
|
||||
|
||||
// reset field list, which contains the input field elements
|
||||
this.field_list = {};
|
||||
|
||||
// reset sequential input definition list, which contains the input definitions as provided from the api
|
||||
this.input_list = {};
|
||||
|
||||
// reset input element list, which contains the dom elements of each input element (includes also the input field)
|
||||
this.element_list = {};
|
||||
|
||||
// creates a tree/json data structure from the input form
|
||||
this.tree = new ToolTree(this);
|
||||
|
||||
// request history content and build form
|
||||
this.content = new ToolContent(this);
|
||||
|
||||
// link model options
|
||||
var options = this.options;
|
||||
|
||||
// create ui elements
|
||||
this._renderForm(options);
|
||||
|
||||
// rebuild the underlying data structure
|
||||
this.tree.finalize();
|
||||
|
||||
// show errors on startup
|
||||
if (options.initial_errors) {
|
||||
this._errors(options);
|
||||
}
|
||||
|
||||
// add refresh listener
|
||||
this.on('refresh', function() {
|
||||
// by using/resetting the deferred ajax queue the number of redundant calls is reduced
|
||||
self.deferred.reset();
|
||||
self.deferred.execute(function(){self._updateModel()});
|
||||
});
|
||||
|
||||
// add reset listener
|
||||
this.on('reset', function() {
|
||||
for (var i in this.element_list) {
|
||||
this.element_list[i].reset();
|
||||
}
|
||||
});
|
||||
|
||||
// refresh
|
||||
this.trigger('refresh');
|
||||
},
|
||||
|
||||
/** Renders the UI elements required for the form
|
||||
*/
|
||||
@@ -175,7 +173,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
// button for version selection
|
||||
var requirements_button = new Ui.ButtonIcon({
|
||||
icon : 'fa-info-circle',
|
||||
title : (!options.compact && 'Requirements') || null,
|
||||
title : (!options.narrow && 'Requirements') || null,
|
||||
tooltip : 'Display tool requirements',
|
||||
onclick : function() {
|
||||
if (!this.visible) {
|
||||
@@ -200,7 +198,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
// button for version selection
|
||||
var versions_button = new Ui.ButtonMenu({
|
||||
icon : 'fa-cubes',
|
||||
title : (!options.compact && 'Versions') || null,
|
||||
title : (!options.narrow && 'Versions') || null,
|
||||
tooltip : 'Select another tool version'
|
||||
});
|
||||
if (options.versions && options.versions.length > 1) {
|
||||
@@ -213,8 +211,8 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
icon : 'fa-cube',
|
||||
onclick : function() {
|
||||
// here we update the tool version (some tools encode the version also in the id)
|
||||
options.id = options.id.replace(options.version, this.version);
|
||||
options.version = this.version;
|
||||
self.options.id = self.options.id.replace(self.options.version, this.version);
|
||||
self.options.version = this.version;
|
||||
|
||||
// rebuild the model and form
|
||||
self.deferred.reset();
|
||||
@@ -230,7 +228,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
// button menu
|
||||
var menu_button = new Ui.ButtonMenu({
|
||||
icon : 'fa-caret-down',
|
||||
title : (!options.compact && 'Options') || null,
|
||||
title : (!options.narrow && 'Options') || null,
|
||||
tooltip : 'View available options'
|
||||
});
|
||||
|
||||
@@ -306,7 +304,7 @@ define(['utils/utils', 'utils/deferred', 'mvc/ui/ui-portlet', 'mvc/ui/ui-misc',
|
||||
});
|
||||
|
||||
// remove padding
|
||||
if (options.compact) {
|
||||
if (options.narrow) {
|
||||
this.portlet.$content.css('padding', '0px');
|
||||
}
|
||||
|
||||
|
||||
@@ -21,9 +21,13 @@ define(['utils/utils', 'mvc/tools/tools-form-base'],
|
||||
this.options = options;
|
||||
|
||||
// set labels
|
||||
this.options.text_enable = 'In Advance';
|
||||
this.options.text_disable = 'At Runtime';
|
||||
this.options.use_defaults = true;
|
||||
this.options.text_enable = 'In Advance';
|
||||
this.options.text_disable = 'At Runtime';
|
||||
|
||||
// configure workflow style
|
||||
this.options.is_dynamic = false;
|
||||
this.options.narrow = true;
|
||||
this.options.initial_errors = true;
|
||||
|
||||
// declare fields as optional
|
||||
Utils.deepeach(options.inputs, function(item) {
|
||||
|
||||
@@ -24,7 +24,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
ToolFormBase.prototype.initialize.call(this, options);
|
||||
},
|
||||
|
||||
|
||||
/** Builds a new model through api call and recreates the entire form
|
||||
*/
|
||||
_buildModel: function() {
|
||||
@@ -47,31 +47,28 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// register process
|
||||
var process_id = this.deferred.register();
|
||||
|
||||
|
||||
// get initial model
|
||||
Utils.request({
|
||||
type : 'GET',
|
||||
url : model_url,
|
||||
success : function(response) {
|
||||
// link model data update options
|
||||
self.options = response;
|
||||
|
||||
// build form
|
||||
self._buildForm();
|
||||
|
||||
// build new tool form
|
||||
self.build(response);
|
||||
|
||||
// notification
|
||||
self.message.update({
|
||||
status : 'success',
|
||||
message : 'Now you are using \'' + self.options.name + '\' version ' + self.options.version + '.',
|
||||
persistent : false
|
||||
});
|
||||
|
||||
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log success
|
||||
console.debug('tools-form::initialize() - Initial tool model ready.');
|
||||
console.debug(response);
|
||||
@@ -79,11 +76,11 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
error : function(response) {
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log error
|
||||
console.debug('tools-form::initialize() - Initial tool model request failed.');
|
||||
console.debug(response);
|
||||
|
||||
|
||||
// show error
|
||||
var error_message = response.error || 'Uncaught error.';
|
||||
self.modal.show({
|
||||
@@ -98,7 +95,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
|
||||
/** Request a new model for an already created tool form and updates the form inputs
|
||||
*/
|
||||
_updateModel: function() {
|
||||
@@ -112,11 +109,11 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// log tool state
|
||||
console.debug('tools-form::_refreshForm() - Refreshing states.');
|
||||
console.debug(current_state);
|
||||
|
||||
|
||||
// activates/disables spinner for dynamic fields to indicate that they are currently being updated
|
||||
function wait(active) {
|
||||
for (var i in self.input_list) {
|
||||
@@ -131,10 +128,10 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// set wait mode
|
||||
wait(true);
|
||||
|
||||
|
||||
// register process
|
||||
var process_id = this.deferred.register();
|
||||
|
||||
@@ -179,13 +176,13 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
// unset wait mode
|
||||
wait(false);
|
||||
|
||||
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log success
|
||||
console.debug('tools-form::_refreshForm() - States refreshed.');
|
||||
console.debug(new_model);
|
||||
@@ -193,7 +190,7 @@ define(['utils/utils', 'mvc/ui/ui-misc', 'mvc/tools/tools-form-base', 'mvc/tools
|
||||
error : function(response) {
|
||||
// process completed
|
||||
self.deferred.done(process_id);
|
||||
|
||||
|
||||
// log error
|
||||
console.debug('tools-form::_refreshForm() - Refresh request failed.');
|
||||
console.debug(response);
|
||||
|
||||
@@ -1 +1 @@
|
||||
define(["utils/utils","utils/deferred","mvc/ui/ui-portlet","mvc/ui/ui-misc","mvc/citation/citation-model","mvc/citation/citation-view","mvc/tools","mvc/tools/tools-template","mvc/tools/tools-content","mvc/tools/tools-section","mvc/tools/tools-tree"],function(g,h,f,k,i,a,d,c,e,j,b){return Backbone.View.extend({initialize:function(l){this.optionsDefault={is_dynamic:true,compact:false,initial_errors:false,use_defaults:false};this.options=g.merge(l,this.optionsDefault);console.debug(this.options);var m=parent.Galaxy;if(m&&m.modal){this.modal=m.modal}else{this.modal=new k.Modal.View()}if(m&&m.currUser){this.is_admin=m.currUser.get("is_admin")}else{this.is_admin=false}this.container=this.options.container||"body";this.deferred=new h();this.setElement("<div/>");$(this.container).append(this.$el);this._buildForm()},reciept:function(l){$(this.container).empty();$(this.container).append(l)},highlight:function(m,n,l){var o=this.element_list[m];if(o){o.error(n||"Please verify this parameter.");if(!l){$(this.container).animate({scrollTop:o.$el.offset().top-20},500)}}},_errors:function(n){this.trigger("reset");if(n&&n.errors){var o=this.tree.matchResponse(n.errors);for(var m in this.element_list){var l=this.element_list[m];if(o[m]){this.highlight(m,o[m],true)}}}},_buildForm:function(){var l=this;this.off("refresh");this.off("reset");this.field_list={};this.input_list={};this.element_list={};this.tree=new b(this);this.content=new e(this);var m=this.options;this._renderForm(m);this.tree.finalize();if(m.initial_errors){this._errors(m)}this.on("refresh",function(){l.deferred.reset();l.deferred.execute(function(){l._updateModel()})});this.on("reset",function(){for(var n in this.element_list){this.element_list[n].reset()}});this.trigger("refresh")},_renderForm:function(u){var t=this;this.message=new k.Message();var q=new k.ButtonIcon({icon:"fa-info-circle",title:(!u.compact&&"Requirements")||null,tooltip:"Display tool requirements",onclick:function(){if(!this.visible){this.visible=true;t.message.update({persistent:true,message:c.requirements(u),status:"info"})}else{this.visible=false;t.message.update({message:""})}}});if(!u.requirements||u.requirements.length==0){q.$el.hide()}var m=new k.ButtonMenu({icon:"fa-cubes",title:(!u.compact&&"Versions")||null,tooltip:"Select another tool version"});if(u.versions&&u.versions.length>1){for(var o in u.versions){var r=u.versions[o];if(r!=u.version){m.addMenu({title:"Switch to "+r,version:r,icon:"fa-cube",onclick:function(){u.id=u.id.replace(u.version,this.version);u.version=this.version;t.deferred.reset();t.deferred.execute(function(){t._buildModel()})}})}}}else{m.$el.hide()}var p=new k.ButtonMenu({icon:"fa-caret-down",title:(!u.compact&&"Options")||null,tooltip:"View available options"});if(u.biostar_url){p.addMenu({icon:"fa-question-circle",title:"Question?",tooltip:"Ask a question about this tool (Biostar)",onclick:function(){window.open(u.biostar_url+"/p/new/post/")}});p.addMenu({icon:"fa-search",title:"Search",tooltip:"Search help for this tool (Biostar)",onclick:function(){window.open(u.biostar_url+"/t/"+u.id+"/")}})}p.addMenu({icon:"fa-share",title:"Share",tooltip:"Share this tool",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+galaxy_config.root+"root?tool_id="+u.id)}});if(this.is_admin){p.addMenu({icon:"fa-download",title:"Download",tooltip:"Download this tool",onclick:function(){window.location.href=galaxy_config.root+"api/tools/"+u.id+"/download"}})}this.section=new j.View(t,{inputs:u.inputs});if(this.incompatible){this.$el.hide();$("#tool-form-classic").show();return}this.portlet=new f.View({icon:"fa-wrench",title:"<b>"+u.name+"</b> "+u.description+" (Galaxy Tool Version "+u.version+")",cls:"ui-portlet-slim",operations:{requirements:q,menu:p,versions:m},buttons:this.buttons});if(u.compact){this.portlet.$content.css("padding","0px")}this.portlet.append(this.message.$el,true);this.portlet.append(this.section.$el);this.$el.empty();this.$el.append(this.portlet.$el);if(u.help!=""){this.$el.append(c.help(u.help))}if(u.citations){var s=$("<div/>");var l=new i.ToolCitationCollection();l.tool_id=u.id;var n=new a.CitationListView({el:s,collection:l});n.render();l.fetch();this.$el.append(s)}if(u.message){this.message.update({persistent:true,status:"warning",message:u.message})}}})});
|
||||
define(["utils/utils","utils/deferred","mvc/ui/ui-portlet","mvc/ui/ui-misc","mvc/citation/citation-model","mvc/citation/citation-view","mvc/tools","mvc/tools/tools-template","mvc/tools/tools-content","mvc/tools/tools-section","mvc/tools/tools-tree"],function(g,h,f,k,i,a,d,c,e,j,b){return Backbone.View.extend({initialize:function(l){this.optionsDefault={is_dynamic:true,narrow:false,initial_errors:false};this.options=g.merge(l,this.optionsDefault);console.debug(this.options);var m=parent.Galaxy;if(m&&m.modal){this.modal=m.modal}else{this.modal=new k.Modal.View()}if(m&&m.currUser){this.is_admin=m.currUser.get("is_admin")}else{this.is_admin=false}this.container=this.options.container||"body";this.deferred=new h();this.setElement("<div/>");$(this.container).append(this.$el);this.build(this.options)},build:function(m){var l=this;this.off("refresh");this.off("reset");this.field_list={};this.input_list={};this.element_list={};this.tree=new b(this);this.content=new e(this);l.options.inputs=m&&m.inputs;this._renderForm(m);this.tree.finalize();if(m.initial_errors){this._errors(m)}this.on("refresh",function(){l.deferred.reset();l.deferred.execute(function(){l._updateModel()})});this.on("reset",function(){for(var n in this.element_list){this.element_list[n].reset()}});this.trigger("refresh")},reciept:function(l){$(this.container).empty();$(this.container).append(l)},highlight:function(m,n,l){var o=this.element_list[m];if(o){o.error(n||"Please verify this parameter.");if(!l){$(this.container).animate({scrollTop:o.$el.offset().top-20},500)}}},_errors:function(n){this.trigger("reset");if(n&&n.errors){var o=this.tree.matchResponse(n.errors);for(var m in this.element_list){var l=this.element_list[m];if(o[m]){this.highlight(m,o[m],true)}}}},_renderForm:function(u){var t=this;this.message=new k.Message();var q=new k.ButtonIcon({icon:"fa-info-circle",title:(!u.narrow&&"Requirements")||null,tooltip:"Display tool requirements",onclick:function(){if(!this.visible){this.visible=true;t.message.update({persistent:true,message:c.requirements(u),status:"info"})}else{this.visible=false;t.message.update({message:""})}}});if(!u.requirements||u.requirements.length==0){q.$el.hide()}var m=new k.ButtonMenu({icon:"fa-cubes",title:(!u.narrow&&"Versions")||null,tooltip:"Select another tool version"});if(u.versions&&u.versions.length>1){for(var o in u.versions){var r=u.versions[o];if(r!=u.version){m.addMenu({title:"Switch to "+r,version:r,icon:"fa-cube",onclick:function(){t.options.id=t.options.id.replace(t.options.version,this.version);t.options.version=this.version;t.deferred.reset();t.deferred.execute(function(){t._buildModel()})}})}}}else{m.$el.hide()}var p=new k.ButtonMenu({icon:"fa-caret-down",title:(!u.narrow&&"Options")||null,tooltip:"View available options"});if(u.biostar_url){p.addMenu({icon:"fa-question-circle",title:"Question?",tooltip:"Ask a question about this tool (Biostar)",onclick:function(){window.open(u.biostar_url+"/p/new/post/")}});p.addMenu({icon:"fa-search",title:"Search",tooltip:"Search help for this tool (Biostar)",onclick:function(){window.open(u.biostar_url+"/t/"+u.id+"/")}})}p.addMenu({icon:"fa-share",title:"Share",tooltip:"Share this tool",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+galaxy_config.root+"root?tool_id="+u.id)}});if(this.is_admin){p.addMenu({icon:"fa-download",title:"Download",tooltip:"Download this tool",onclick:function(){window.location.href=galaxy_config.root+"api/tools/"+u.id+"/download"}})}this.section=new j.View(t,{inputs:u.inputs});if(this.incompatible){this.$el.hide();$("#tool-form-classic").show();return}this.portlet=new f.View({icon:"fa-wrench",title:"<b>"+u.name+"</b> "+u.description+" (Galaxy Tool Version "+u.version+")",cls:"ui-portlet-slim",operations:{requirements:q,menu:p,versions:m},buttons:this.buttons});if(u.narrow){this.portlet.$content.css("padding","0px")}this.portlet.append(this.message.$el,true);this.portlet.append(this.section.$el);this.$el.empty();this.$el.append(this.portlet.$el);if(u.help!=""){this.$el.append(c.help(u.help))}if(u.citations){var s=$("<div/>");var l=new i.ToolCitationCollection();l.tool_id=u.id;var n=new a.CitationListView({el:s,collection:l});n.render();l.fetch();this.$el.append(s)}if(u.message){this.message.update({persistent:true,status:"warning",message:u.message})}}})});
|
||||
@@ -1 +1 @@
|
||||
define(["utils/utils","mvc/tools/tools-form-base"],function(b,a){var c=a.extend({initialize:function(e){this.node=workflow.active_node;if(!this.node){console.debug("FAILED - tools-form-workflow:initialize() - Node not found in workflow.");return}this.post_job_actions=this.node.post_job_actions||{};this.options=e;this.options.text_enable="In Advance";this.options.text_disable="At Runtime";this.options.use_defaults=true;b.deepeach(e.inputs,function(f){if(f.type){f.optional=(["data","data_hidden","hidden","drill_down","repeat","conditional"]).indexOf(f.type)==-1}});b.deepeach(e.inputs,function(f){if(f.type){if(f.type=="conditional"){f.test_param.optional=false}}});var d=this;b.get({url:galaxy_config.root+"api/datatypes",cache:true,success:function(f){d.datatypes=f;d._makeSections(e.inputs);a.prototype.initialize.call(d,e)}})},_makeSections:function(d){d[b.uuid()]={label:"Annotation / Notes",name:"annotation",type:"text",area:true,help:"Add an annotation or note for this step. It will be shown with the workflow.",value:this.node.annotation};var f=this.node.output_terminals&&Object.keys(this.node.output_terminals)[0];if(f){d[b.uuid()]={name:"pja__"+f+"__EmailAction",label:"Email notification",type:"boolean",value:String(Boolean(this.post_job_actions["EmailAction"+f])),ignore:"false",help:"An email notification will be send when the job has completed.",payload:{host:window.location.host}};d[b.uuid()]={name:"pja__"+f+"__DeleteIntermediatesAction",label:"Output cleanup",type:"boolean",value:String(Boolean(this.post_job_actions["DeleteIntermediatesAction"+f])),ignore:"false",help:"Delete intermediate outputs if they are not used as input for another job."};for(var e in this.node.output_terminals){d[b.uuid()]=this._makeSection(e)}}},_makeSection:function(h){var g=[];for(key in this.datatypes){g.push({0:this.datatypes[key],1:this.datatypes[key]})}g.sort(function(j,i){return j.label>i.label?1:j.label<i.label?-1:0});g.unshift({0:"Sequences",1:"Sequences"});g.unshift({0:"Roadmaps",1:"Roadmaps"});g.unshift({0:"Leave unchanged",1:""});var f={label:"Add Actions: '"+h+"'",type:"section",inputs:[{action:"RenameDatasetAction",argument:"newname",label:"Rename dataset",type:"text",value:"",ignore:"",help:'This action will rename the result dataset. Click <a href="https://wiki.galaxyproject.org/Learn/AdvancedWorkflow/Variables">here</a> for more information.'},{action:"ChangeDatatypeAction",argument:"newtype",label:"Change datatype",type:"select",ignore:"",options:g,help:"This action will change the datatype of the output to the indicated value."},{action:"TagDatasetAction",argument:"tags",label:"Tags",type:"text",value:"",ignore:"",help:"This action will set tags for the dataset."},{label:"Assign columns",type:"section",inputs:[{action:"ColumnSetAction",argument:"chromCol",label:"Chrom column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"startCol",label:"Start column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"endCol",label:"End column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"strandCol",label:"Strand column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"nameCol",label:"Name column",type:"integer",value:"",ignore:""}],help:"This action will set column assignments in the output dataset. Blank fields are ignored."}]};var d=this;function e(n,o){o=o||[];o.push(n);for(var m in n.inputs){var k=n.inputs[m];if(k.action){k.name="pja__"+h+"__"+k.action;if(k.argument){k.name+="__"+k.argument}if(k.payload){for(var s in k.payload){var q=k.payload[s];k.payload[k.name+"__"+s]=q;delete q}}var r=d.post_job_actions[k.action+h];if(r){for(var l in o){o[l].expand=true}if(k.argument){k.value=r.action_arguments&&r.action_arguments[k.argument]||k.value}else{k.value="true"}}}if(k.inputs){e(k,o.slice(0))}}}e(f);return f},_buildModel:function(){Galaxy.modal.show({title:"Coming soon...",body:"This feature has not been implemented yet.",buttons:{Close:function(){Galaxy.modal.hide()}}})},_updateModel:function(){var d=this;var e=this.tree.finalize();console.debug("tools-form-workflow::_refreshForm() - Refreshing states.");console.debug(e);var g=this.deferred.register();var f=galaxy_config.root+"workflow/editor_form_post?tool_id="+this.options.id+"&__is_dynamic__=False";b.request({type:"GET",url:f,data:e,success:function(h){d.node.update_field_data(h);d._errors(h&&h.tool_model);d.deferred.done(g);console.debug("tools-form::_refreshForm() - States refreshed.");console.debug(h)},error:function(h){d.deferred.done(g);console.debug("tools-form::_refreshForm() - Refresh request failed.");console.debug(h)}})}});return{View:c}});
|
||||
define(["utils/utils","mvc/tools/tools-form-base"],function(b,a){var c=a.extend({initialize:function(e){this.node=workflow.active_node;if(!this.node){console.debug("FAILED - tools-form-workflow:initialize() - Node not found in workflow.");return}this.post_job_actions=this.node.post_job_actions||{};this.options=e;this.options.text_enable="In Advance";this.options.text_disable="At Runtime";this.options.is_dynamic=false;this.options.narrow=true;this.options.initial_errors=true;b.deepeach(e.inputs,function(f){if(f.type){f.optional=(["data","data_hidden","hidden","drill_down","repeat","conditional"]).indexOf(f.type)==-1}});b.deepeach(e.inputs,function(f){if(f.type){if(f.type=="conditional"){f.test_param.optional=false}}});var d=this;b.get({url:galaxy_config.root+"api/datatypes",cache:true,success:function(f){d.datatypes=f;d._makeSections(e.inputs);a.prototype.initialize.call(d,e)}})},_makeSections:function(d){d[b.uuid()]={label:"Annotation / Notes",name:"annotation",type:"text",area:true,help:"Add an annotation or note for this step. It will be shown with the workflow.",value:this.node.annotation};var f=this.node.output_terminals&&Object.keys(this.node.output_terminals)[0];if(f){d[b.uuid()]={name:"pja__"+f+"__EmailAction",label:"Email notification",type:"boolean",value:String(Boolean(this.post_job_actions["EmailAction"+f])),ignore:"false",help:"An email notification will be send when the job has completed.",payload:{host:window.location.host}};d[b.uuid()]={name:"pja__"+f+"__DeleteIntermediatesAction",label:"Output cleanup",type:"boolean",value:String(Boolean(this.post_job_actions["DeleteIntermediatesAction"+f])),ignore:"false",help:"Delete intermediate outputs if they are not used as input for another job."};for(var e in this.node.output_terminals){d[b.uuid()]=this._makeSection(e)}}},_makeSection:function(h){var g=[];for(key in this.datatypes){g.push({0:this.datatypes[key],1:this.datatypes[key]})}g.sort(function(j,i){return j.label>i.label?1:j.label<i.label?-1:0});g.unshift({0:"Sequences",1:"Sequences"});g.unshift({0:"Roadmaps",1:"Roadmaps"});g.unshift({0:"Leave unchanged",1:""});var f={label:"Add Actions: '"+h+"'",type:"section",inputs:[{action:"RenameDatasetAction",argument:"newname",label:"Rename dataset",type:"text",value:"",ignore:"",help:'This action will rename the result dataset. Click <a href="https://wiki.galaxyproject.org/Learn/AdvancedWorkflow/Variables">here</a> for more information.'},{action:"ChangeDatatypeAction",argument:"newtype",label:"Change datatype",type:"select",ignore:"",options:g,help:"This action will change the datatype of the output to the indicated value."},{action:"TagDatasetAction",argument:"tags",label:"Tags",type:"text",value:"",ignore:"",help:"This action will set tags for the dataset."},{label:"Assign columns",type:"section",inputs:[{action:"ColumnSetAction",argument:"chromCol",label:"Chrom column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"startCol",label:"Start column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"endCol",label:"End column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"strandCol",label:"Strand column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",argument:"nameCol",label:"Name column",type:"integer",value:"",ignore:""}],help:"This action will set column assignments in the output dataset. Blank fields are ignored."}]};var d=this;function e(n,o){o=o||[];o.push(n);for(var m in n.inputs){var k=n.inputs[m];if(k.action){k.name="pja__"+h+"__"+k.action;if(k.argument){k.name+="__"+k.argument}if(k.payload){for(var s in k.payload){var q=k.payload[s];k.payload[k.name+"__"+s]=q;delete q}}var r=d.post_job_actions[k.action+h];if(r){for(var l in o){o[l].expand=true}if(k.argument){k.value=r.action_arguments&&r.action_arguments[k.argument]||k.value}else{k.value="true"}}}if(k.inputs){e(k,o.slice(0))}}}e(f);return f},_buildModel:function(){Galaxy.modal.show({title:"Coming soon...",body:"This feature has not been implemented yet.",buttons:{Close:function(){Galaxy.modal.hide()}}})},_updateModel:function(){var d=this;var e=this.tree.finalize();console.debug("tools-form-workflow::_refreshForm() - Refreshing states.");console.debug(e);var g=this.deferred.register();var f=galaxy_config.root+"workflow/editor_form_post?tool_id="+this.options.id+"&__is_dynamic__=False";b.request({type:"GET",url:f,data:e,success:function(h){d.node.update_field_data(h);d._errors(h&&h.tool_model);d.deferred.done(g);console.debug("tools-form::_refreshForm() - States refreshed.");console.debug(h)},error:function(h){d.deferred.done(g);console.debug("tools-form::_refreshForm() - Refresh request failed.");console.debug(h)}})}});return{View:c}});
|
||||
@@ -1 +1 @@
|
||||
define(["utils/utils","mvc/ui/ui-misc","mvc/tools/tools-form-base","mvc/tools/tools-jobs"],function(c,e,b,a){var d=b.extend({initialize:function(g){var f=this;this.job_handler=new a(this);this.buttons={execute:new e.Button({icon:"fa-check",tooltip:"Execute: "+g.name,title:"Execute",cls:"btn btn-primary",floating:"clear",onclick:function(){f.job_handler.submit()}})};b.prototype.initialize.call(this,g)},_buildModel:function(){var f=this;var g=galaxy_config.root+"api/tools/"+this.options.id+"/build?";if(this.options.job_id){g+="job_id="+this.options.job_id}else{if(this.options.dataset_id){g+="dataset_id="+this.options.dataset_id}else{g+="tool_version="+this.options.version+"&";var i=top.location.href;var j=i.indexOf("?");if(i.indexOf("tool_id=")!=-1&&j!==-1){g+=i.slice(j+1)}}}var h=this.deferred.register();c.request({type:"GET",url:g,success:function(k){f.options=k;f._buildForm();f.message.update({status:"success",message:"Now you are using '"+f.options.name+"' version "+f.options.version+".",persistent:false});f.deferred.done(h);console.debug("tools-form::initialize() - Initial tool model ready.");console.debug(k)},error:function(k){f.deferred.done(h);console.debug("tools-form::initialize() - Initial tool model request failed.");console.debug(k);var l=k.error||"Uncaught error.";f.modal.show({title:"Tool cannot be executed",body:l,buttons:{Close:function(){f.modal.hide()}}})}})},_updateModel:function(){var f=this;var g=this.tree.finalize({data:function(k){if(k.values.length>0&&k.values[0]&&k.values[0].src==="hda"){return f.content.get({id:k.values[0].id,src:"hda"}).id_uncoded}return null}});console.debug("tools-form::_refreshForm() - Refreshing states.");console.debug(g);function j(n){for(var l in f.input_list){var m=f.field_list[l];var k=f.input_list[l];if(k.is_dynamic&&m.wait&&m.unwait){if(n){m.wait()}else{m.unwait()}}}}j(true);var i=this.deferred.register();var h=galaxy_config.root+"api/tools/"+this.options.id+"/build?tool_version="+this.options.version;c.request({type:"GET",url:h,data:g,success:function(k){f.tree.matchModel(k,function(m,q){var l=f.input_list[m];if(l&&l.options){if(!_.isEqual(l.options,q.options)){l.options=q.options;var r=f.field_list[m];if(r.update){var p=[];if((["data","data_collection","drill_down"]).indexOf(l.type)!=-1){p=l.options}else{for(var o in q.options){var n=q.options[o];if(n.length>2){p.push({label:n[0],value:n[1]})}}}r.update(p);r.trigger("change");console.debug("Updating options for "+m)}}}});j(false);f.deferred.done(i);console.debug("tools-form::_refreshForm() - States refreshed.");console.debug(k)},error:function(k){f.deferred.done(i);console.debug("tools-form::_refreshForm() - Refresh request failed.");console.debug(k)}})}});return{View:d}});
|
||||
define(["utils/utils","mvc/ui/ui-misc","mvc/tools/tools-form-base","mvc/tools/tools-jobs"],function(c,e,b,a){var d=b.extend({initialize:function(g){var f=this;this.job_handler=new a(this);this.buttons={execute:new e.Button({icon:"fa-check",tooltip:"Execute: "+g.name,title:"Execute",cls:"btn btn-primary",floating:"clear",onclick:function(){f.job_handler.submit()}})};b.prototype.initialize.call(this,g)},_buildModel:function(){var f=this;var g=galaxy_config.root+"api/tools/"+this.options.id+"/build?";if(this.options.job_id){g+="job_id="+this.options.job_id}else{if(this.options.dataset_id){g+="dataset_id="+this.options.dataset_id}else{g+="tool_version="+this.options.version+"&";var i=top.location.href;var j=i.indexOf("?");if(i.indexOf("tool_id=")!=-1&&j!==-1){g+=i.slice(j+1)}}}var h=this.deferred.register();c.request({type:"GET",url:g,success:function(k){f.build(k);f.message.update({status:"success",message:"Now you are using '"+f.options.name+"' version "+f.options.version+".",persistent:false});f.deferred.done(h);console.debug("tools-form::initialize() - Initial tool model ready.");console.debug(k)},error:function(k){f.deferred.done(h);console.debug("tools-form::initialize() - Initial tool model request failed.");console.debug(k);var l=k.error||"Uncaught error.";f.modal.show({title:"Tool cannot be executed",body:l,buttons:{Close:function(){f.modal.hide()}}})}})},_updateModel:function(){var f=this;var g=this.tree.finalize({data:function(k){if(k.values.length>0&&k.values[0]&&k.values[0].src==="hda"){return f.content.get({id:k.values[0].id,src:"hda"}).id_uncoded}return null}});console.debug("tools-form::_refreshForm() - Refreshing states.");console.debug(g);function j(n){for(var l in f.input_list){var m=f.field_list[l];var k=f.input_list[l];if(k.is_dynamic&&m.wait&&m.unwait){if(n){m.wait()}else{m.unwait()}}}}j(true);var i=this.deferred.register();var h=galaxy_config.root+"api/tools/"+this.options.id+"/build?tool_version="+this.options.version;c.request({type:"GET",url:h,data:g,success:function(k){f.tree.matchModel(k,function(m,q){var l=f.input_list[m];if(l&&l.options){if(!_.isEqual(l.options,q.options)){l.options=q.options;var r=f.field_list[m];if(r.update){var p=[];if((["data","data_collection","drill_down"]).indexOf(l.type)!=-1){p=l.options}else{for(var o in q.options){var n=q.options[o];if(n.length>2){p.push({label:n[0],value:n[1]})}}}r.update(p);r.trigger("change");console.debug("Updating options for "+m)}}}});j(false);f.deferred.done(i);console.debug("tools-form::_refreshForm() - States refreshed.");console.debug(k)},error:function(k){f.deferred.done(i);console.debug("tools-form::_refreshForm() - Refresh request failed.");console.debug(k)}})}});return{View:d}});
|
||||
@@ -9,8 +9,7 @@ ${h.css('base', 'jquery-ui/smoothness/jquery-ui')}
|
||||
## TEMPORARY: create tool dictionary in mako while both tool forms are in use.
|
||||
## This avoids making two separate requests since the classic form requires the mako anyway.
|
||||
params = dict(trans.request.params)
|
||||
if 'id' in params:
|
||||
params['dataset_id'] = params['id']
|
||||
params['__dataset_id__'] = params.get('id', None)
|
||||
self.form_config = tool.to_json(trans, **params)
|
||||
self.form_config.update({
|
||||
'id' : tool.id,
|
||||
|
||||
@@ -15,9 +15,6 @@
|
||||
'id' : tool.id,
|
||||
'job_id' : trans.security.encode_id( job.id ) if job else None,
|
||||
'history_id' : trans.security.encode_id( trans.history.id ),
|
||||
'is_dynamic' : False,
|
||||
'compact' : True,
|
||||
'initial_errors' : True,
|
||||
'container' : '#right-content'
|
||||
})
|
||||
%>
|
||||
|
||||
Reference in New Issue
Block a user