diff --git a/client/galaxy/scripts/mvc/workflow/workflow-manager.js b/client/galaxy/scripts/mvc/workflow/workflow-manager.js index 08c247672b9..070c3aa15f8 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-manager.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-manager.js @@ -1,4 +1,8 @@ -define(['mvc/workflow/workflow-connector'], function( Connector ) { +define([ + 'mvc/workflow/workflow-connector', + 'libs/toastr' + ], +function( Connector, Toastr ) { function Workflow( app, canvas_container ) { this.app = app; this.canvas_container = canvas_container; @@ -7,10 +11,49 @@ define(['mvc/workflow/workflow-connector'], function( Connector ) { this.name = null; this.has_changes = false; this.active_form_has_changes = false; + this.nodeLabels = {}; // TODO: track and enforce output labels also + } $.extend( Workflow.prototype, { - create_node: function ( type, title_text, tool_id ) { - var node = this.app.prebuildNode( type, title_text, tool_id ); + canLabelNodeWith: function( label ) { + if( label ) { + return ! (label in this.nodeLabels); + } else { + // empty labels are non-exclusive, so allow this one. + return true; + } + }, + registerNodeLabel: function( label ) { + if( label ) { + this.nodeLabels[label] = true; + } + }, + unregisterNodeLabel: function( label ) { + if( label ) { + delete this.nodeLabels[label]; + } + }, + updateNodeLabel: function( fromLabel, toLabel ) { + if( fromLabel ) { + this.unregisterNodeLabel( fromLabel ); + } + if( ! this.canLabelNodeWith( toLabel ) ) { + Toastr.warning("Workflow contains duplicate node labels " + toLabel + ". This must be fixed before it can be saved."); + } + if( toLabel ) { + this.registerNodeLabel( toLabel ); + } + }, + attemptUpdateNodeLabel: function( node, label ) { + if( this.canLabelNodeWith( label ) ) { + node.setLabel( label ); + return true; + } else { + return false; + } + }, + create_node: function ( type, title_text, content_id ) { + var node = this.app.prebuildNode( type, title_text, content_id ); this.add_node( node ); this.fit_canvas_to_nodes(); this.app.canvas_manager.draw_overview(); @@ -131,7 +174,7 @@ define(['mvc/workflow/workflow-connector'], function( Connector ) { var node_data = { id : node.id, type : node.type, - tool_id : node.tool_id, + tool_id : node.content_id, tool_state : node.tool_state, tool_errors : node.tool_errors, input_connections : input_connections, @@ -383,4 +426,4 @@ define(['mvc/workflow/workflow-connector'], function( Connector ) { } }); return Workflow; -}); \ No newline at end of file +}); diff --git a/client/galaxy/scripts/mvc/workflow/workflow-node.js b/client/galaxy/scripts/mvc/workflow/workflow-node.js index fb4feb69844..7395f22a8ff 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-node.js @@ -124,6 +124,10 @@ define(['mvc/workflow/workflow-view-node'], function( NodeView ) { // Remove active class $(element).removeClass( "toolForm-active" ); }, + setLabel: function(label) { + this.app.workflow.updateNodeLabel(this.label, label); + this.label = label || null; + }, init_field_data : function ( data ) { if ( data.type ) { this.type = data.type; @@ -135,7 +139,7 @@ define(['mvc/workflow/workflow-view-node'], function( NodeView ) { this.tooltip = data.tooltip ? data.tooltip : ""; this.annotation = data.annotation; this.post_job_actions = data.post_job_actions ? data.post_job_actions : {}; - this.label = data.label; + this.setLabel(data.label); this.uuid = data.uuid; this.workflow_outputs = data.workflow_outputs ? data.workflow_outputs : []; @@ -165,6 +169,8 @@ define(['mvc/workflow/workflow-view-node'], function( NodeView ) { this.form_html = data.form_html; this.tool_errors = data.tool_errors; this.annotation = data['annotation']; + this.setLabel(data.label); + if( "post_job_actions" in data ) { // Won't be present in response for data inputs var pja_in = $.parseJSON(data.post_job_actions); @@ -184,6 +190,7 @@ define(['mvc/workflow/workflow-view-node'], function( NodeView ) { unusedView.el.terminal.destroy(); } ); nodeView.terminalViews = newTerminalViews; + node.nodeView.render(); // In general workflow editor assumes tool outputs don't change in # or // type (not really valid right?) but adding special logic here for // data collection input parameters that can have their collection diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js index d702d17e7b3..f08308d6bf7 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js @@ -11,6 +11,14 @@ define(['mvc/workflow/workflow-view-terminals', 'mvc/workflow/workflow-view-data }, render: function() { + var label = this.node.label; + var title; + if(label) { + title = label; + } else { + title = this.node.name; + } + this.$el.find(".nodeTitle").text(title); this.renderToolErrors(); this.$el.css( "width", Math.min(250, Math.max( this.$el.width(), this.output_width ))); }, diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view.js b/client/galaxy/scripts/mvc/workflow/workflow-view.js index fe712da025e..6fa56e40d67 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -7,7 +7,9 @@ define([ 'mvc/workflow/workflow-node', 'mvc/tool/tools-form-workflow', 'utils/async-save-text', -], function( Utils, Globals, Workflow, WorkflowCanvas, Node, ToolsForm, async_save_text ){ + 'libs/toastr', + 'ui/editable-text' +], function( Utils, Globals, Workflow, WorkflowCanvas, Node, ToolsForm, async_save_text, Toastr ){ // Reset tool search to start state. function reset_tool_search( initValue ) { @@ -44,6 +46,21 @@ function reset_tool_search( initValue ) { } } +NODE_ICONS = { + 'tool': 'fa-wrench', + 'data_input': 'fa-file-o', + 'data_collection_input': 'fa-folder-o', + 'pause': 'fa-pause' +} + +add_node_icon = function($to_el, nodeType) { + var iconStyle = NODE_ICONS[nodeType]; + if(iconStyle) { + var $icon = $(' ').addClass(iconStyle); + $to_el.before($icon); + } +} + // Really a shell of a real backbone view, but refactoring in the right // direction I think. @@ -61,7 +78,33 @@ EditorFormView = Backbone.View.extend({ this.setElement($el); if (node && node.id != 'no-node') { - $el.find('.toolForm:first').after(this._genericStepAttributesTemplate( node )); + $el.find('table:first').after(this._genericStepAttributesTemplate( node )); + var nodeType = node.type; + add_node_icon($el.find('.portlet-title-text'), nodeType); + var $titleText = $el.find(".portlet-title-text"); + $titleText.data('last-value', $titleText.text()); + $titleText.make_text_editable({ + on_finish: function( newLabel ){ + var lastValue = $titleText.data("last-value"); + if( newLabel == lastValue ) { + return; + } + + var workflow = workflowView.workflow; + if( workflow.attemptUpdateNodeLabel( node, newLabel ) ) { + $el.find("input[name='label']").val(newLabel); + $titleText.data("last-value", newLabel); + $el.find('form').submit(); + if(newLabel == "") { + // If label unset restore default name as title. + $titleText.text(node.name); + } + } else { + Toastr.warning("Step label " + newLabel + " already exists, cannot update label."); + $titleText.text(lastValue); + } + } + }); ($el.find( 'form' ).length > 0) && $el.find( 'form' ).ajaxForm( { type: 'POST', dataType: 'json', @@ -525,12 +568,10 @@ EditorFormView = Backbone.View.extend({ cc.css( { left: left, top: top } ); }, - // Add a new step to the workflow by tool id - add_node_for_tool: function ( id, title ) { - node = this.workflow.create_node( 'tool', title, id ); + _moduleInitAjax: function(node, request_data) { $.ajax( { url: this.urls.get_new_module_info, - data: { type: "tool", tool_id: id, "_": "true" }, + data: request_data, global: false, dataType: "json", success: function( data ) { @@ -546,23 +587,21 @@ EditorFormView = Backbone.View.extend({ }); }, + // Add a new step to the workflow by tool id + add_node_for_tool: function ( id, title ) { + node = this.workflow.create_node( 'tool', title, id ); + this._moduleInitAjax(node, { type: "tool", content_id: id, "_": "true" }); + }, + + // Add a new step to the workflow by tool id + add_node_for_subworkflow: function ( id, title ) { + node = this.workflow.create_node( 'subworkflow', title, id ); + this._moduleInitAjax(node, { type: "subworkflow", subworkflow_id: id, "_": "true" }); + }, + add_node_for_module: function ( type, title ) { node = this.workflow.create_node( type, title ); - $.ajax( { - url: this.urls.get_new_module_info, - data: { type: type, "_": "true" }, - dataType: "json", - success: function( data ) { - node.init_field_data( data ); - }, - error: function( x, e ) { - var m = "error loading field data" - if ( x.status == 0 ) { - m += ", server unavailable" - } - node.error( m ); - } - }); + this._moduleInitAjax(node, { type: type, "_": "true" }); }, // This function preloads how to display known pja's. @@ -704,22 +743,27 @@ EditorFormView = Backbone.View.extend({ return ( this.type_to_type[child] ) && ( parent in this.type_to_type[child] ); }, - prebuildNode: function ( type, title_text, tool_id ) { + $newNodeElement: function(type, title_text) { + var $f = $("
"); + var $title = $("
" + title_text + "
" ); + add_node_icon($title.find('.nodeTitle'), type); + $f.append( $title ); + $f.css( "left", $(window).scrollLeft() + 20 ); + $f.css( "top", $(window).scrollTop() + 20 ); + var $b = $("
"); + $f.append($b); + return $f + }, + + prebuildNode: function ( type, title_text, content_id ) { var self = this; - var f = $("
"); - var node = new Node( this, { element: f } ); + var $f = this.$newNodeElement( type, title_text ); + var node = new Node( this, { element: $f } ); node.type = type; - if ( type == 'tool' ) { - node.tool_id = tool_id; - } - var title = $("
" + title_text + "
" ); - f.append( title ); - f.css( "left", $(window).scrollLeft() + 20 ); f.css( "top", $(window).scrollTop() + 20 ); - var b = $("
"); + node.content_id = content_id; var tmp = "
loading tool info...
"; - b.append( tmp ); + $f.find(".toolFormBody").append(tmp); node.form_html = tmp; - f.append( b ); // Fix width to computed width // Now add floats var buttons = $("
"); @@ -727,17 +771,17 @@ EditorFormView = Backbone.View.extend({ node.destroy(); })); // Place inside container - f.appendTo( "#canvas-container" ); + $f.appendTo( "#canvas-container" ); // Position in container var o = $("#canvas-container").position(); var p = $("#canvas-container").parent(); - var width = f.width(); - var height = f.height(); - f.css( { left: ( - o.left ) + ( p.width() / 2 ) - ( width / 2 ), top: ( - o.top ) + ( p.height() / 2 ) - ( height / 2 ) } ); - buttons.prependTo( title ); + var width = $f.width(); + var height = $f.height(); + $f.css( { left: ( - o.left ) + ( p.width() / 2 ) - ( width / 2 ), top: ( - o.top ) + ( p.height() / 2 ) - ( height / 2 ) } ); + buttons.prependTo( $f.find(".toolFormTitle" ) ); width += ( buttons.width() + 10 ); - f.css( "width", width ); - $(f).bind( "dragstart", function() { + $f.css( "width", width ); + $f.bind( "dragstart", function() { self.workflow.activate_node( node ); }).bind( "dragend", function() { self.workflow.node_changed( this ); diff --git a/lib/galaxy/managers/base.py b/lib/galaxy/managers/base.py index c12ae7a513c..13820752c79 100644 --- a/lib/galaxy/managers/base.py +++ b/lib/galaxy/managers/base.py @@ -112,6 +112,16 @@ def get_class( class_name ): return item_class +def decode_id(app, id): + try: + # note: use str - occasionally a fully numeric id will be placed in post body and parsed as int via JSON + # resulting in error for valid id + return app.security.decode_id( str( id ) ) + except ( ValueError, TypeError ): + msg = "Malformed id ( %s ) specified, unable to decode" % ( str( id ) ) + raise exceptions.MalformedId( msg, id=str( id ) ) + + def get_object( trans, id, class_name, check_ownership=False, check_accessible=False, deleted=None ): """ Convenience method to get a model object with the specified checks. This is @@ -119,11 +129,7 @@ def get_object( trans, id, class_name, check_ownership=False, check_accessible=F controller mixin code - however whenever possible the managers for a particular model should be used to load objects. """ - try: - decoded_id = trans.security.decode_id( id ) - except: - raise exceptions.MessageException( "Malformed %s id ( %s ) specified, unable to decode" - % ( class_name, str( id ) ), type='error' ) + decoded_id = decode_id(trans.app, id) try: item_class = get_class( class_name ) assert item_class is not None diff --git a/lib/galaxy/managers/workflows.py b/lib/galaxy/managers/workflows.py index bdaadc39e1b..3a4bf53489c 100644 --- a/lib/galaxy/managers/workflows.py +++ b/lib/galaxy/managers/workflows.py @@ -2,12 +2,18 @@ from __future__ import absolute_import from collections import namedtuple import json +import uuid + +from sqlalchemy import and_ from galaxy import model +from galaxy import util from galaxy import exceptions from galaxy.model.item_attrs import UsesAnnotations from galaxy.workflow import modules +from .base import decode_id + # For WorkflowContentManager from galaxy.util.sanitize_html import sanitize_html from galaxy.workflow.steps import attach_ordered_steps @@ -26,6 +32,38 @@ class WorkflowsManager( object ): def __init__( self, app ): self.app = app + def get_stored_workflow( self, trans, workflow_id ): + """ Use a supplied ID (UUID or encoded stored workflow ID) to find + a workflow. + """ + if util.is_uuid(workflow_id): + # see if they have passed in the UUID for a workflow that is attached to a stored workflow + workflow_uuid = uuid.UUID(workflow_id) + stored_workflow = trans.sa_session.query(trans.app.model.StoredWorkflow).filter( and_( + trans.app.model.StoredWorkflow.latest_workflow_id == trans.app.model.Workflow.id, + trans.app.model.Workflow.uuid == workflow_uuid + )).first() + if stored_workflow is None: + raise exceptions.ObjectNotFound( "Workflow not found: %s" % workflow_id ) + else: + workflow_id = decode_id( self.app, workflow_id ) + query = trans.sa_session.query( trans.app.model.StoredWorkflow ) + stored_workflow = query.get( workflow_id ) + if stored_workflow is None: + raise exceptions.ObjectNotFound( "No such workflow found." ) + return stored_workflow + + def get_stored_accessible_workflow( self, trans, workflow_id ): + stored_workflow = self.get_stored_workflow( trans, workflow_id ) + + # check to see if user has permissions to selected workflow + if stored_workflow.user != trans.user and not trans.user_is_admin(): + if trans.sa_session.query(trans.app.model.StoredWorkflowUserShareAssociation).filter_by(user=trans.user, stored_workflow=stored_workflow).count() == 0: + message = "Workflow is not owned by or shared with current user" + raise exceptions.ItemAccessibilityException( message ) + + return stored_workflow + def check_security( self, trans, has_workflow, check_ownership=True, check_accessible=True): """ check accessibility or ownership of workflows, storedworkflows, and workflowinvocations. Throw an exception or returns True if user has @@ -352,7 +390,7 @@ class WorkflowContentsManager(UsesAnnotations): step_dict = { 'id': step.order_index, 'type': module.type, - 'tool_id': module.get_tool_id(), + 'tool_id': module.get_content_id(), 'name': module.get_name(), 'tool_state': module.get_state(), 'tooltip': module.get_tooltip( static_path=url_for( '/static' ) ), @@ -395,11 +433,13 @@ class WorkflowContentsManager(UsesAnnotations): action_arguments=pja.action_arguments ) step_dict['post_job_actions'] = pja_dict - # workflow outputs - outputs = [] - for output in step.workflow_outputs: - outputs.append({"output_name": output.output_name}) - step_dict['workflow_outputs'] = outputs + + # workflow outputs + outputs = [] + for output in step.workflow_outputs: + outputs.append({"output_name": output.output_name}) + step_dict['workflow_outputs'] = outputs + # Encode input connections as dictionary input_conn_dict = {} for conn in input_connections: @@ -453,7 +493,7 @@ class WorkflowContentsManager(UsesAnnotations): step_dict = { 'id': step.order_index, 'type': module.type, - 'tool_id': module.get_tool_id(), + 'tool_id': module.get_content_id(), 'tool_version': step.tool_version, 'name': module.get_name(), 'tool_state': module.get_state( secure=False ), diff --git a/lib/galaxy/web/base/controller.py b/lib/galaxy/web/base/controller.py index dba14dc3ece..3c46652783c 100644 --- a/lib/galaxy/web/base/controller.py +++ b/lib/galaxy/web/base/controller.py @@ -11,7 +11,6 @@ from paste.httpexceptions import HTTPBadRequest, HTTPInternalServerError from paste.httpexceptions import HTTPNotImplemented, HTTPRequestRangeNotSatisfiable from galaxy.exceptions import ItemAccessibilityException, ItemDeletionException, ItemOwnershipException from galaxy.exceptions import MessageException -from galaxy import exceptions from galaxy import web from galaxy import model @@ -94,13 +93,7 @@ class BaseController( object ): # ---- parsing query params def decode_id( self, id ): - try: - # note: use str - occasionally a fully numeric id will be placed in post body and parsed as int via JSON - # resulting in error for valid id - return self.app.security.decode_id( str( id ) ) - except ( ValueError, TypeError ): - msg = "Malformed id ( %s ) specified, unable to decode" % ( str( id ) ) - raise exceptions.MalformedId( msg, id=str( id ) ) + return managers_base.decode_id( self.app, id ) def encode_all_ids( self, trans, rval, recursive=False ): """ diff --git a/lib/galaxy/webapps/galaxy/api/workflows.py b/lib/galaxy/webapps/galaxy/api/workflows.py index 4e7107d44c3..be1ff669617 100644 --- a/lib/galaxy/webapps/galaxy/api/workflows.py +++ b/lib/galaxy/webapps/galaxy/api/workflows.py @@ -4,11 +4,10 @@ API operations for Workflows from __future__ import absolute_import -import uuid import logging import copy import urllib -from sqlalchemy import and_, desc, false, or_, true +from sqlalchemy import desc, false, or_, true from galaxy import exceptions, util from galaxy.model.item_attrs import UsesAnnotations from galaxy.managers import histories @@ -570,33 +569,10 @@ class WorkflowsAPIController(BaseAPIController, UsesStoredWorkflowMixin, UsesAnn ) def __get_stored_accessible_workflow( self, trans, workflow_id ): - stored_workflow = self.__get_stored_workflow( trans, workflow_id ) - - # check to see if user has permissions to selected workflow - if stored_workflow.user != trans.user and not trans.user_is_admin(): - if trans.sa_session.query(trans.app.model.StoredWorkflowUserShareAssociation).filter_by(user=trans.user, stored_workflow=stored_workflow).count() == 0: - message = "Workflow is not owned by or shared with current user" - raise exceptions.ItemAccessibilityException( message ) - - return stored_workflow + return self.workflow_manager.get_stored_accessible_workflow( trans, workflow_id ) def __get_stored_workflow( self, trans, workflow_id ): - if util.is_uuid(workflow_id): - # see if they have passed in the UUID for a workflow that is attached to a stored workflow - workflow_uuid = uuid.UUID(workflow_id) - stored_workflow = trans.sa_session.query(trans.app.model.StoredWorkflow).filter( and_( - trans.app.model.StoredWorkflow.latest_workflow_id == trans.app.model.Workflow.id, - trans.app.model.Workflow.uuid == workflow_uuid - )).first() - if stored_workflow is None: - raise exceptions.ObjectNotFound( "Workflow not found: %s" % workflow_id ) - else: - workflow_id = self.decode_id( workflow_id ) - query = trans.sa_session.query( trans.app.model.StoredWorkflow ) - stored_workflow = query.get( workflow_id ) - if stored_workflow is None: - raise exceptions.ObjectNotFound( "No such workflow found." ) - return stored_workflow + return self.workflow_manager.get_stored_workflow( trans, workflow_id ) def __encode_invocation( self, trans, invocation, view="element", step_details=False ): return self.encode_all_ids( diff --git a/lib/galaxy/webapps/galaxy/controllers/workflow.py b/lib/galaxy/webapps/galaxy/controllers/workflow.py index 8ab9bbc8638..24eb397b893 100644 --- a/lib/galaxy/webapps/galaxy/controllers/workflow.py +++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py @@ -613,7 +613,7 @@ class WorkflowController( BaseUIController, SharableMixin, UsesStoredWorkflowMix return trans.fill_template( "workflow/editor.mako", stored=stored, annotation=self.get_item_annotation_str( trans.sa_session, trans.user, stored ) ) @web.json - def editor_form_post( self, trans, type='tool', tool_id=None, annotation=None, **incoming ): + def editor_form_post( self, trans, type='tool', tool_id=None, annotation=None, label=None, **incoming ): """ Accepts a tool state and incoming values, and generates a new tool form and some additional information, packed into a json dictionary. @@ -625,12 +625,14 @@ class WorkflowController( BaseUIController, SharableMixin, UsesStoredWorkflowMix module = module_factory.from_dict( trans, { 'type': type, 'tool_id': tool_id, - 'tool_state': tool_state + 'tool_state': tool_state, + 'label': label or None, } ) # update module state module.update_state( incoming ) if type == 'tool': return { + 'label': module.label, 'tool_state': module.get_state(), 'data_inputs': module.get_data_inputs(), 'data_outputs': module.get_data_outputs(), @@ -641,6 +643,7 @@ class WorkflowController( BaseUIController, SharableMixin, UsesStoredWorkflowMix } else: return { + 'label': module.label, 'tool_state': module.get_state(), 'data_inputs': module.get_data_inputs(), 'data_outputs': module.get_data_outputs(), @@ -664,7 +667,7 @@ class WorkflowController( BaseUIController, SharableMixin, UsesStoredWorkflowMix return { 'type': module.type, 'name': module.get_name(), - 'tool_id': module.get_tool_id(), + 'tool_id': module.get_content_id(), 'tool_state': module.get_state(), 'tool_model': tool_model, 'tooltip': module.get_tooltip( static_path=url_for( '/static' ) ), diff --git a/lib/galaxy/workflow/modules.py b/lib/galaxy/workflow/modules.py index c46c4fac3ae..a5a7d8e2b13 100644 --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -42,7 +42,7 @@ class WorkflowModule( object ): # ---- Creating modules from various representations --------------------- @classmethod - def new( Class, trans, tool_id=None ): + def new( Class, trans, content_id=None ): """ Create a new instance of the module with default state """ @@ -73,7 +73,10 @@ class WorkflowModule( object ): def get_name( self ): return self.name - def get_tool_id( self ): + def get_content_id( self ): + """ If this component has an identifier external to the step (such + as a tool or another workflow) return the identifier for that content. + """ return None def get_tooltip( self, static_path='' ): @@ -194,9 +197,10 @@ class WorkflowModule( object ): class SimpleWorkflowModule( WorkflowModule ): @classmethod - def new( Class, trans, tool_id=None ): + def new( Class, trans, content_id=None ): module = Class( trans ) module.state = Class.default_state() + module.label = None return module @classmethod @@ -204,12 +208,14 @@ class SimpleWorkflowModule( WorkflowModule ): module = Class( trans ) state = loads( d["tool_state"] ) module.recover_state( state ) + module.label = d.get("label", None) or None return module @classmethod def from_workflow_step( Class, trans, step ): module = Class( trans ) module.recover_state( step.tool_inputs ) + module.label = step.label return module @classmethod @@ -502,12 +508,13 @@ class ToolModule( WorkflowModule ): self.errors[ tool_id ] = 'Tool unavailable' @classmethod - def new( Class, trans, tool_id=None ): - module = Class( trans, tool_id ) + def new( Class, trans, content_id=None ): + module = Class( trans, content_id ) if module.tool is None: - error_message = "Attempted to create new workflow module for invalid tool_id, no tool with id - %s." % tool_id + error_message = "Attempted to create new workflow module for invalid tool_id, no tool with id - %s." % content_id raise Exception( error_message ) module.state = module.tool.new_state( trans ) + module.label = None return module @classmethod @@ -516,6 +523,7 @@ class ToolModule( WorkflowModule ): tool_version = str( d.get( 'tool_version', None ) ) module = Class( trans, tool_id, tool_version=tool_version ) module.state = galaxy.tools.DefaultToolState() + module.label = d.get("label", None) or None if module.tool is not None: message = "" if tool_id != module.tool_id: @@ -560,6 +568,7 @@ class ToolModule( WorkflowModule ): module.recover_state( step.tool_inputs ) module.errors = step.tool_errors module.workflow_outputs = step.workflow_outputs + module.label = step.label or None pjadict = {} for pja in step.post_job_actions: pjadict[pja.action_type] = pja @@ -623,7 +632,7 @@ class ToolModule( WorkflowModule ): return self.tool.name return 'unavailable' - def get_tool_id( self ): + def get_content_id( self ): return self.tool_id def get_tool_version( self ): @@ -735,6 +744,7 @@ class ToolModule( WorkflowModule ): # set. We also need to make sure all datasets have a dummy value # for dependencies to see + self.label = incoming.get("label", None) or None self.post_job_actions = ActionBox.handle_incoming(incoming) make_runtime_key = incoming.get( 'make_runtime', None ) @@ -951,13 +961,13 @@ class WorkflowModuleFactory( object ): def __init__( self, module_types ): self.module_types = module_types - def new( self, trans, type, tool_id=None ): + def new( self, trans, type, content_id=None ): """ Return module for type and (optional) tool_id intialized with new / default state. """ assert type in self.module_types - return self.module_types[type].new( trans, tool_id ) + return self.module_types[type].new( trans, content_id ) def from_dict( self, trans, d, **kwargs ): """ diff --git a/lib/galaxy/workflow/run.py b/lib/galaxy/workflow/run.py index f9efbd6056b..b06b770e830 100644 --- a/lib/galaxy/workflow/run.py +++ b/lib/galaxy/workflow/run.py @@ -235,8 +235,8 @@ class WorkflowProgress( object ): if not hasattr( step, 'module' ): self.module_injector.inject( step ) if step_id not in step_states: - template = "Workflow invocation [%s] has no step state for step id [%s]. States are [%s]." - message = template % (self.workflow_invocation.id, step_id, step_states) + template = "Workflow invocation [%s] has no step state for step id [%s]. States ids are %s." + message = template % (self.workflow_invocation.id, step_id, step_states.keys()) raise Exception(message) runtime_state = step_states[ step_id ].value step.state = step.module.recover_runtime_state( runtime_state ) diff --git a/static/maps/mvc/workflow/workflow-manager.js.map b/static/maps/mvc/workflow/workflow-manager.js.map index 6c4348c37c4..27171ddefe9 100644 --- a/static/maps/mvc/workflow/workflow-manager.js.map +++ b/static/maps/mvc/workflow/workflow-manager.js.map @@ -1 +1 @@ -{"version":3,"file":"workflow-manager.js","sources":["../../../src/mvc/workflow/workflow-manager.js"],"names":["define","Connector","Workflow","app","canvas_container","this","id_counter","nodes","name","has_changes","active_form_has_changes","$","extend","prototype","create_node","type","title_text","tool_id","node","prebuildNode","add_node","fit_canvas_to_nodes","canvas_manager","draw_overview","activate_node","id","element","attr","workflow","remove_node","active_node","clear_active_node","remove_all","wf","each","k","v","destroy","rectify_workflow_outputs","using_workflow_outputs","has_existing_pjas","workflow_outputs","length","post_job_actions","pja_id","pja","action_type","self","node_changed","pjas_to_rem","push","i","pja_name","output_terminals","ot_id","ot","create_pja","isWorkflowOutput","output_name","action_arguments","reload_active_node","to_simple","input_connections","input_terminals","t","cons","connectors","c","handle1","act","node_data","tool_state","tool_errors","position","annotation","uuid","label","steps","from_simple","data","max_id","step","init_field_data","css","top","left","Math","max","parseInt","isArray","l","x","other_node","connect","redraw","undefined","addWorkflowOutput","callout","find","Galaxy","root","check_changes_in_active_form","submit","make_inactive","showToolForm","form_html","make_active","force","layout","n_pred","successors","j","other","node_ids_by_level","level_parents","pred_k","sk","all_nodes","h_pad","v_pad","ids","sort","a","b","max_width","width","height","_","bounds_for_all_nodes","p","xmin","xmax","ymin","ymax","e","min","round_up","n","ceil","fix_delta","new_pos","bounds","parent","xmin_delta","ymin_delta","children"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"workflow-manager.js","sources":["../../../src/mvc/workflow/workflow-manager.js"],"names":["define","Connector","Toastr","Workflow","app","canvas_container","this","id_counter","nodes","name","has_changes","active_form_has_changes","nodeLabels","$","extend","prototype","canLabelNodeWith","label","registerNodeLabel","unregisterNodeLabel","updateNodeLabel","fromLabel","toLabel","warning","attemptUpdateNodeLabel","node","setLabel","create_node","type","title_text","content_id","prebuildNode","add_node","fit_canvas_to_nodes","canvas_manager","draw_overview","activate_node","id","element","attr","workflow","remove_node","active_node","clear_active_node","remove_all","wf","each","k","v","destroy","rectify_workflow_outputs","using_workflow_outputs","has_existing_pjas","workflow_outputs","length","post_job_actions","pja_id","pja","action_type","self","node_changed","pjas_to_rem","push","i","pja_name","output_terminals","ot_id","ot","create_pja","isWorkflowOutput","output_name","action_arguments","reload_active_node","to_simple","input_connections","input_terminals","t","cons","connectors","c","handle1","act","node_data","tool_id","tool_state","tool_errors","position","annotation","uuid","steps","from_simple","data","max_id","step","init_field_data","css","top","left","Math","max","parseInt","isArray","l","x","other_node","connect","redraw","undefined","addWorkflowOutput","callout","find","Galaxy","root","check_changes_in_active_form","submit","make_inactive","showToolForm","form_html","make_active","force","layout","n_pred","successors","j","other","node_ids_by_level","level_parents","pred_k","sk","all_nodes","h_pad","v_pad","ids","sort","a","b","max_width","width","height","_","bounds_for_all_nodes","p","xmin","xmax","ymin","ymax","e","min","round_up","n","ceil","fix_delta","new_pos","bounds","parent","xmin_delta","ymin_delta","children"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/workflow/workflow-node.js.map b/static/maps/mvc/workflow/workflow-node.js.map index f07e1b25d75..eff73424320 100644 --- a/static/maps/mvc/workflow/workflow-node.js.map +++ b/static/maps/mvc/workflow/workflow-node.js.map @@ -1 +1 @@ -{"version":3,"file":"workflow-node.js","sources":["../../../src/mvc/workflow/workflow-node.js"],"names":["define","NodeView","Node","Backbone","Model","extend","initialize","app","attr","this","element","input_terminals","output_terminals","tool_errors","workflow_outputs","getWorkflowOutput","outputName","_","findWhere","output_name","isWorkflowOutput","undefined","removeWorkflowOutput","splice","addWorkflowOutput","push","connectedOutputTerminals","_connectedTerminals","terminals","connectedTerminals","$","each","t","connectors","length","hasConnectedOutputTerminals","outputTerminals","connectedMappedInputTerminals","_connectedMappedTerminals","hasConnectedMappedInputTerminals","inputTerminals","inputName","inputTerminal","isMappedOver","mapped_outputs","mapOver","isCollection","mappedInputTerminals","_mappedTerminals","mappedTerminals","hasMappedOverInputTerminals","found","redraw","destroy","k","workflow","remove_node","remove","make_active","addClass","make_inactive","get","p","removeChild","appendChild","parentNode","removeClass","init_field_data","data","type","name","form_html","tool_state","tooltip","annotation","post_job_actions","label","uuid","node","nodeView","el","data_inputs","i","input","addDataInput","data_outputs","addRule","output","addDataOutput","render","node_changed","update_field_data","pja_in","parseJSON","renderToolErrors","old_body","new_body","newInputsDiv","newTerminalViews","terminalView","difference","values","terminalViews","unusedView","terminal","updateDataOutput","replaceWith","markChanged","error","text","b","find","tmp","html"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"workflow-node.js","sources":["../../../src/mvc/workflow/workflow-node.js"],"names":["define","NodeView","Node","Backbone","Model","extend","initialize","app","attr","this","element","input_terminals","output_terminals","tool_errors","workflow_outputs","getWorkflowOutput","outputName","_","findWhere","output_name","isWorkflowOutput","undefined","removeWorkflowOutput","splice","addWorkflowOutput","push","connectedOutputTerminals","_connectedTerminals","terminals","connectedTerminals","$","each","t","connectors","length","hasConnectedOutputTerminals","outputTerminals","connectedMappedInputTerminals","_connectedMappedTerminals","hasConnectedMappedInputTerminals","inputTerminals","inputName","inputTerminal","isMappedOver","mapped_outputs","mapOver","isCollection","mappedInputTerminals","_mappedTerminals","mappedTerminals","hasMappedOverInputTerminals","found","redraw","destroy","k","workflow","remove_node","remove","make_active","addClass","make_inactive","get","p","removeChild","appendChild","parentNode","removeClass","setLabel","label","updateNodeLabel","init_field_data","data","type","name","form_html","tool_state","tooltip","annotation","post_job_actions","uuid","node","nodeView","el","data_inputs","i","input","addDataInput","data_outputs","addRule","output","addDataOutput","render","node_changed","update_field_data","pja_in","parseJSON","renderToolErrors","old_body","new_body","newInputsDiv","newTerminalViews","terminalView","difference","values","terminalViews","unusedView","terminal","updateDataOutput","replaceWith","markChanged","error","text","b","find","tmp","html"],"mappings":"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"} \ No newline at end of file diff --git a/static/maps/mvc/workflow/workflow-view-node.js.map b/static/maps/mvc/workflow/workflow-view-node.js.map index b248c82942a..3f658f81891 100644 --- a/static/maps/mvc/workflow/workflow-view-node.js.map +++ b/static/maps/mvc/workflow/workflow-view-node.js.map @@ -1 +1 @@ -{"version":3,"file":"workflow-view-node.js","sources":["../../../src/mvc/workflow/workflow-view-node.js"],"names":["define","TerminalViews","DataViews","Backbone","View","extend","initialize","options","this","node","output_width","Math","max","$el","width","tool_body","find","remove","newInputsDiv","appendTo","terminalViews","outputTerminlViews","render","renderToolErrors","css","min","tool_errors","addClass","removeClass","$","updateMaxWidth","newWidth","addRule","append","addDataInput","input","body","skipResize","terminalView","name","terminalViewClass","input_type","InputCollectionTerminalView","InputTerminalView","el","terminal","destroy","update","destroyInvalidConnections","terminalElement","inputView","DataInputView","nodeView","ib","prepend","terminalElements","addDataOutput","output","OutputCollectionTerminalView","OutputTerminalView","outputView","DataOutputView","updateDataOutput","outputTerminal","output_terminals"],"mappings":"AAAAA,QAAQ,uCAAwC,mCAAoC,SAAUC,EAAeC,GACzG,MAAOC,UAASC,KAAKC,QACjBC,WAAY,SAAUC,GAClBC,KAAKC,KAAOF,EAAQE,KACpBD,KAAKE,aAAeC,KAAKC,IAAI,IAAKJ,KAAKK,IAAIC,SAC3CN,KAAKO,UAAYP,KAAKK,IAAIG,KAAM,iBAChCR,KAAKO,UAAUC,KAAM,OAAQC,SAC7BT,KAAKU,eAAeC,SAAUX,KAAKO,WACnCP,KAAKY,iBACLZ,KAAKa,uBAGTC,OAAQ,WACJd,KAAKe,mBACLf,KAAKK,IAAIW,IAAK,QAASb,KAAKc,IAAI,IAAKd,KAAKC,IAAKJ,KAAKK,IAAIC,QAASN,KAAKE,iBAG1Ea,iBAAkB,WACTf,KAAKC,KAAKiB,YACXlB,KAAKK,IAAIc,SAAU,mBAEnBnB,KAAKK,IAAIe,YAAa,oBAI9BV,aAAc,WACV,MAAOW,GAAE,+BAGbC,eAAgB,SAAUC,GACtBvB,KAAKE,aAAeC,KAAKC,IAAKJ,KAAKE,aAAcqB,IAGrDC,QAAS,WACLxB,KAAKO,UAAUkB,OAAQJ,EAAG,8BAG9BK,aAAc,SAAUC,EAAOC,GAC3B,GAAIC,IAAa,CACXD,KACFA,EAAO5B,KAAKqB,EAAG,WAGfQ,GAAa,EAEjB,IAAIC,GAAe9B,KAAKY,cAAee,EAAMI,MACzCC,EAA0C,sBAApBL,EAAMM,WAAuCxC,EAAcyC,4BAA8BzC,EAAc0C,iBAKjI,KAJIL,GAAoBA,YAAwBE,KAC5CF,EAAaM,GAAGC,SAASC,UACzBR,EAAe,MAEbA,EAKC,CACH,GAAIO,GAAWP,EAAaM,GAAGC,QAC/BA,GAASE,OAAQZ,GACjBU,EAASG,gCAPTV,GAAe,GAAIE,IACf/B,KAAMD,KAAKC,KACX0B,MAAOA,GAOf3B,MAAKY,cAAee,EAAMI,MAASD,CACnC,IAAIW,GAAkBX,EAAaM,GAC/BM,EAAY,GAAIhD,GAAUiD,eAC1BF,gBAAiBA,EACjBd,MAAOA,EACPiB,SAAU5C,KACV6B,WAAYA,IAEZgB,EAAKH,EAAUrC,GAEnB,OADAuB,GAAKH,OAAQoB,EAAGC,QAAShB,EAAaiB,qBAC/BjB,GAGXkB,cAAe,SAAUC,GACrB,GAAIjB,GAAsBiB,EAAkB,WAAIxD,EAAcyD,6BAA+BzD,EAAc0D,mBACvGrB,EAAe,GAAIE,IACnB/B,KAAMD,KAAKC,KACXgD,OAAQA,IAERG,EAAa,GAAI1D,GAAU2D,gBAC3BJ,OAAUA,EACVR,gBAAmBX,EAAaM,GAChCQ,SAAY5C,MAEhBA,MAAKO,UAAUkB,OAAQ2B,EAAW/C,IAAIoB,OAAQK,EAAaiB,sBAG/DO,iBAAkB,SAAUL,GACxB,GAAIM,GAAiBvD,KAAKC,KAAKuD,iBAAkBP,EAAOlB,KACxDwB,GAAehB,OAAQU"} \ No newline at end of file +{"version":3,"file":"workflow-view-node.js","sources":["../../../src/mvc/workflow/workflow-view-node.js"],"names":["define","TerminalViews","DataViews","Backbone","View","extend","initialize","options","this","node","output_width","Math","max","$el","width","tool_body","find","remove","newInputsDiv","appendTo","terminalViews","outputTerminlViews","render","title","label","name","text","renderToolErrors","css","min","tool_errors","addClass","removeClass","$","updateMaxWidth","newWidth","addRule","append","addDataInput","input","body","skipResize","terminalView","terminalViewClass","input_type","InputCollectionTerminalView","InputTerminalView","el","terminal","destroy","update","destroyInvalidConnections","terminalElement","inputView","DataInputView","nodeView","ib","prepend","terminalElements","addDataOutput","output","OutputCollectionTerminalView","OutputTerminalView","outputView","DataOutputView","updateDataOutput","outputTerminal","output_terminals"],"mappings":"AAAAA,QAAQ,uCAAwC,mCAAoC,SAAUC,EAAeC,GACzG,MAAOC,UAASC,KAAKC,QACjBC,WAAY,SAAUC,GAClBC,KAAKC,KAAOF,EAAQE,KACpBD,KAAKE,aAAeC,KAAKC,IAAI,IAAKJ,KAAKK,IAAIC,SAC3CN,KAAKO,UAAYP,KAAKK,IAAIG,KAAM,iBAChCR,KAAKO,UAAUC,KAAM,OAAQC,SAC7BT,KAAKU,eAAeC,SAAUX,KAAKO,WACnCP,KAAKY,iBACLZ,KAAKa,uBAGTC,OAAQ,WACJ,GACIC,GADAC,EAAQhB,KAAKC,KAAKe,KAGlBD,GADDC,EACSA,EAEAhB,KAAKC,KAAKgB,KAEtBjB,KAAKK,IAAIG,KAAK,cAAcU,KAAKH,GACjCf,KAAKmB,mBACLnB,KAAKK,IAAIe,IAAK,QAASjB,KAAKkB,IAAI,IAAKlB,KAAKC,IAAKJ,KAAKK,IAAIC,QAASN,KAAKE,iBAG1EiB,iBAAkB,WACTnB,KAAKC,KAAKqB,YACXtB,KAAKK,IAAIkB,SAAU,mBAEnBvB,KAAKK,IAAImB,YAAa,oBAI9Bd,aAAc,WACV,MAAOe,GAAE,+BAGbC,eAAgB,SAAUC,GACtB3B,KAAKE,aAAeC,KAAKC,IAAKJ,KAAKE,aAAcyB,IAGrDC,QAAS,WACL5B,KAAKO,UAAUsB,OAAQJ,EAAG,8BAG9BK,aAAc,SAAUC,EAAOC,GAC3B,GAAIC,IAAa,CACXD,KACFA,EAAOhC,KAAKyB,EAAG,WAGfQ,GAAa,EAEjB,IAAIC,GAAelC,KAAKY,cAAemB,EAAMd,MACzCkB,EAA0C,sBAApBJ,EAAMK,WAAuC3C,EAAc4C,4BAA8B5C,EAAc6C,iBAKjI,KAJIJ,GAAoBA,YAAwBC,KAC5CD,EAAaK,GAAGC,SAASC,UACzBP,EAAe,MAEbA,EAKC,CACH,GAAIM,GAAWN,EAAaK,GAAGC,QAC/BA,GAASE,OAAQX,GACjBS,EAASG,gCAPTT,GAAe,GAAIC,IACflC,KAAMD,KAAKC,KACX8B,MAAOA,GAOf/B,MAAKY,cAAemB,EAAMd,MAASiB,CACnC,IAAIU,GAAkBV,EAAaK,GAC/BM,EAAY,GAAInD,GAAUoD,eAC1BF,gBAAiBA,EACjBb,MAAOA,EACPgB,SAAU/C,KACViC,WAAYA,IAEZe,EAAKH,EAAUxC,GAEnB,OADA2B,GAAKH,OAAQmB,EAAGC,QAASf,EAAagB,qBAC/BhB,GAGXiB,cAAe,SAAUC,GACrB,GAAIjB,GAAsBiB,EAAkB,WAAI3D,EAAc4D,6BAA+B5D,EAAc6D,mBACvGpB,EAAe,GAAIC,IACnBlC,KAAMD,KAAKC,KACXmD,OAAQA,IAERG,EAAa,GAAI7D,GAAU8D,gBAC3BJ,OAAUA,EACVR,gBAAmBV,EAAaK,GAChCQ,SAAY/C,MAEhBA,MAAKO,UAAUsB,OAAQ0B,EAAWlD,IAAIwB,OAAQK,EAAagB,sBAG/DO,iBAAkB,SAAUL,GACxB,GAAIM,GAAiB1D,KAAKC,KAAK0D,iBAAkBP,EAAOnC,KACxDyC,GAAehB,OAAQU"} \ No newline at end of file diff --git a/static/maps/mvc/workflow/workflow-view.js.map b/static/maps/mvc/workflow/workflow-view.js.map index 29e6d1f76fd..27284bad95a 100644 --- a/static/maps/mvc/workflow/workflow-view.js.map +++ b/static/maps/mvc/workflow/workflow-view.js.map @@ -1 +1 @@ -{"version":3,"file":"workflow-view.js","sources":["../../../src/mvc/workflow/workflow-view.js"],"names":["define","Utils","Globals","Workflow","WorkflowCanvas","Node","ToolsForm","async_save_text","reset_tool_search","initValue","tool_menu_frame","$","contents","length","document","this","removeClass","find","hide","show","each","attr","hasClass","search_input","val","EditorFormView","Backbone","View","extend","initialize","options","merge","$el","workflowView","node","html","setElement","id","after","_genericStepAttributesTemplate","ajaxForm","type","dataType","success","data","workflow","active_form_has_changes","update_field_data","showWorkflowParameters","beforeSubmit","push","name","value","tool_state","form","change","submit","bind","_annotationTemplate","annotation","layout_editor","self","layout","fit_canvas_to_nodes","scroll_to_nodes","canvas_manager","draw_overview","edit_workflow_attributes","clear_active_node","show_overview","jStorage","set","css","hide_overview","app","urls","active_ajax_call","close_editor","check_changes_in_active_form","has_changes","do_close","window","onbeforeunload","undefined","location","workflow_index","show_modal","Cancel","hide_modal","Save Changes","save_current_workflow","Don't Save","eventObj","success_callback","show_message","rectify_workflow_outputs","savefn","callback","ajax","url","save_workflow","workflow_data","JSON","stringify","to_simple","_","body","text","message","errors","addClass","errlist","i","v","appendTo","append","stored","Ok","unbind","click","focus","select","keyup","lastValue","q","timer","clearTimeout","setTimeout","get","tool_search","s","map","n","index","parent","this_label","next","no_visible_tools","is","reset","datatypes","parse","Galaxy","root","async","responseText","datatypes_mapping","ext_to_type","ext_to_class_name","type_to_type","class_to_classes","load_workflow","cache","from_simple","upgrade_message","upgrade_messages","k","parseInt","nodes","vv","Continue","ajaxStart","ajaxError","e","x","statusText","Ignore error","make_popupmenu","Save","Run","run_workflow","Edit Attributes","Auto Re-layout","Close","overview_size","width","height","d","op","offsetParent","opo","offset","new_size","Math","max","offsetX","left","offsetY","top","wrap","last_expanded","slideUp","slideDown","rename_async","annotate_async","remove_all","cv","cc","add_node_for_tool","title","create_node","get_new_module_info","tool_id","global","init_field_data","error","m","status","add_node_for_module","display_pja","pja","get_pja_form","action_to_rem","closest","children","remove","active_node","post_job_actions","display_pja_list","pja_list","display_file_list","addlist","out_terminal","output_terminals","new_pja","action_type","target","output_name","parameter_re","workflow_parameters","wf_parm_container","wf_parm_box","new_parameter_content","matches","form_matches","form_html","match","concat","action_arguments","action_argument","arg_matches","element","inArray","substring","showToolForm","cls","$container","$current","formView","isJSON","scrollTop","isSubType","child","prebuildNode","title_text","f","scrollLeft","b","tmp","buttons","destroy","o","position","p","prependTo","activate_node","node_changed","po","y","terminal","redraw"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"workflow-view.js","sources":["../../../src/mvc/workflow/workflow-view.js"],"names":["define","Utils","Globals","Workflow","WorkflowCanvas","Node","ToolsForm","async_save_text","Toastr","reset_tool_search","initValue","tool_menu_frame","$","contents","length","document","this","removeClass","find","hide","show","each","attr","hasClass","search_input","val","NODE_ICONS","tool","data_input","data_collection_input","pause","add_node_icon","$to_el","nodeType","iconStyle","$icon","addClass","before","EditorFormView","Backbone","View","extend","initialize","options","merge","$el","workflowView","node","html","setElement","id","after","_genericStepAttributesTemplate","type","$titleText","data","text","make_text_editable","on_finish","newLabel","lastValue","workflow","attemptUpdateNodeLabel","submit","name","warning","ajaxForm","dataType","success","active_form_has_changes","update_field_data","showWorkflowParameters","beforeSubmit","push","value","tool_state","form","change","bind","_annotationTemplate","annotation","layout_editor","self","layout","fit_canvas_to_nodes","scroll_to_nodes","canvas_manager","draw_overview","edit_workflow_attributes","clear_active_node","show_overview","jStorage","set","css","hide_overview","app","urls","active_ajax_call","close_editor","check_changes_in_active_form","has_changes","do_close","window","onbeforeunload","undefined","location","workflow_index","show_modal","Cancel","hide_modal","Save Changes","save_current_workflow","Don't Save","eventObj","success_callback","show_message","rectify_workflow_outputs","savefn","callback","ajax","url","save_workflow","workflow_data","JSON","stringify","to_simple","_","body","message","errors","errlist","i","v","appendTo","append","stored","Ok","unbind","click","focus","select","keyup","q","timer","clearTimeout","setTimeout","get","tool_search","s","map","n","index","parent","this_label","next","no_visible_tools","is","reset","datatypes","parse","Galaxy","root","async","responseText","datatypes_mapping","ext_to_type","ext_to_class_name","type_to_type","class_to_classes","load_workflow","cache","from_simple","upgrade_message","upgrade_messages","k","parseInt","nodes","vv","Continue","ajaxStart","ajaxError","e","x","statusText","Ignore error","make_popupmenu","Save","Run","run_workflow","Edit Attributes","Auto Re-layout","Close","overview_size","width","height","d","op","offsetParent","opo","offset","new_size","Math","max","offsetX","left","offsetY","top","wrap","last_expanded","slideUp","slideDown","rename_async","annotate_async","remove_all","cv","cc","_moduleInitAjax","request_data","get_new_module_info","global","init_field_data","error","m","status","add_node_for_tool","title","create_node","content_id","add_node_for_subworkflow","subworkflow_id","add_node_for_module","display_pja","pja","get_pja_form","action_to_rem","closest","children","remove","active_node","post_job_actions","display_pja_list","pja_list","display_file_list","addlist","out_terminal","output_terminals","new_pja","action_type","target","output_name","parameter_re","workflow_parameters","wf_parm_container","wf_parm_box","new_parameter_content","matches","form_matches","form_html","match","concat","action_arguments","action_argument","arg_matches","element","inArray","substring","showToolForm","cls","$container","$current","formView","isJSON","scrollTop","isSubType","child","$newNodeElement","title_text","$f","$title","scrollLeft","$b","prebuildNode","tmp","buttons","destroy","o","position","p","prependTo","activate_node","node_changed","po","y","terminal","redraw"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/mvc/workflow/workflow-manager.js b/static/scripts/mvc/workflow/workflow-manager.js index 2bbfa9d4f99..b648ac54704 100644 --- a/static/scripts/mvc/workflow/workflow-manager.js +++ b/static/scripts/mvc/workflow/workflow-manager.js @@ -1,2 +1,2 @@ -define(["mvc/workflow/workflow-connector"],function(a){function b(a,b){this.app=a,this.canvas_container=b,this.id_counter=0,this.nodes={},this.name=null,this.has_changes=!1,this.active_form_has_changes=!1}return $.extend(b.prototype,{create_node:function(a,b,c){var d=this.app.prebuildNode(a,b,c);return this.add_node(d),this.fit_canvas_to_nodes(),this.app.canvas_manager.draw_overview(),this.activate_node(d),d},add_node:function(a){a.id=this.id_counter,a.element.attr("id","wf-node-step-"+a.id),this.id_counter++,this.nodes[a.id]=a,this.has_changes=!0,a.workflow=this},remove_node:function(a){this.active_node==a&&this.clear_active_node(),delete this.nodes[a.id],this.has_changes=!0},remove_all:function(){wf=this,$.each(this.nodes,function(a,b){b.destroy(),wf.remove_node(b)})},rectify_workflow_outputs:function(){var a=!1,b=!1;if($.each(this.nodes,function(c,d){d.workflow_outputs&&d.workflow_outputs.length>0&&(a=!0),$.each(d.post_job_actions,function(a,c){"HideDatasetAction"===c.action_type&&(b=!0)})}),a!==!1||b!==!1){var c=this;$.each(this.nodes,function(b,d){if("tool"===d.type){var e=!1;null==d.post_job_actions&&(d.post_job_actions={},e=!0);var f=[];$.each(d.post_job_actions,function(a,b){"HideDatasetAction"==b.action_type&&f.push(a)}),f.length>0&&$.each(f,function(a,b){e=!0,delete d.post_job_actions[b]}),a&&$.each(d.output_terminals,function(a,b){var c=!d.isWorkflowOutput(b.name);if(c===!0){e=!0;var f={action_type:"HideDatasetAction",output_name:b.name,action_arguments:{}};d.post_job_actions["HideDatasetAction"+b.name]=null,d.post_job_actions["HideDatasetAction"+b.name]=f}}),c.active_node==d&&e===!0&&c.reload_active_node()}})}},to_simple:function(){var a={};return $.each(this.nodes,function(b,c){var d={};$.each(c.input_terminals,function(a,b){d[b.name]=null;var c=[];$.each(b.connectors,function(a,e){c[a]={id:e.handle1.node.id,output_name:e.handle1.name},d[b.name]=c})});var e={};c.post_job_actions&&$.each(c.post_job_actions,function(a,b){var c={action_type:b.action_type,output_name:b.output_name,action_arguments:b.action_arguments};e[b.action_type+b.output_name]=null,e[b.action_type+b.output_name]=c}),c.workflow_outputs||(c.workflow_outputs=[]);var f={id:c.id,type:c.type,tool_id:c.tool_id,tool_state:c.tool_state,tool_errors:c.tool_errors,input_connections:d,position:$(c.element).position(),annotation:c.annotation,post_job_actions:c.post_job_actions,uuid:c.uuid,label:c.label,workflow_outputs:c.workflow_outputs};a[c.id]=f}),{steps:a}},from_simple:function(b){wf=this;var c=0;wf.name=b.name;var d=!1;$.each(b.steps,function(a,b){var e=wf.app.prebuildNode(b.type,b.name,b.tool_id);e.init_field_data(b),b.position&&e.element.css({top:b.position.top,left:b.position.left}),e.id=b.id,wf.nodes[e.id]=e,c=Math.max(c,parseInt(a)),d||"tool"!==e.type||(e.workflow_outputs.length>0?d=!0:$.each(e.post_job_actions,function(a,b){"HideDatasetAction"===b.action_type&&(d=!0)}))}),wf.id_counter=c+1,$.each(b.steps,function(b,c){var e=wf.nodes[b];$.each(c.input_connections,function(b,c){c&&($.isArray(c)||(c=[c]),$.each(c,function(c,d){var f=wf.nodes[d.id],g=new a;g.connect(f.output_terminals[d.output_name],e.input_terminals[b]),g.redraw()}))}),d&&"tool"===e.type&&$.each(e.output_terminals,function(a,b){void 0===e.post_job_actions["HideDatasetAction"+b.name]&&(e.addWorkflowOutput(b.name),callout=$(e.element).find(".callout."+b.name),callout.find("img").attr("src",Galaxy.root+"static/images/fugue/asterisk-small.png"),wf.has_changes=!0)})})},check_changes_in_active_form:function(){this.active_form_has_changes&&(this.has_changes=!0,$("#right-content").find("form").submit(),this.active_form_has_changes=!1)},reload_active_node:function(){if(this.active_node){var a=this.active_node;this.clear_active_node(),this.activate_node(a)}},clear_active_node:function(){this.active_node&&(this.active_node.make_inactive(),this.active_node=null),this.app.showToolForm("
No node selected
",{id:"no-node"})},activate_node:function(a){this.active_node!=a&&(this.check_changes_in_active_form(),this.clear_active_node(),this.app.showToolForm(a.form_html,a),a.make_active(),this.active_node=a)},node_changed:function(a,b){this.has_changes=!0,this.active_node==a&&b&&(this.check_changes_in_active_form(),this.app.showToolForm(a.form_html,a))},layout:function(){this.check_changes_in_active_form(),this.has_changes=!0;var a={},b={};for($.each(this.nodes,function(c){void 0===a[c]&&(a[c]=0),void 0===b[c]&&(b[c]=[])}),$.each(this.nodes,function(c,d){$.each(d.input_terminals,function(c,e){$.each(e.connectors,function(c,e){var f=e.handle1.node;a[d.id]+=1,b[f.id].push(d.id)})})}),node_ids_by_level=[];;){level_parents=[];for(var c in a)0==a[c]&&level_parents.push(c);if(0==level_parents.length)break;node_ids_by_level.push(level_parents);for(var d in level_parents){var e=level_parents[d];delete a[e];for(var f in b[e])a[b[e][f]]-=1}}if(!a.length){var g=this.nodes,h=80;v_pad=30;var i=h;$.each(node_ids_by_level,function(a,b){b.sort(function(a,b){return $(g[a].element).position().top-$(g[b].element).position().top});var c=0,d=v_pad;$.each(b,function(a,b){var e=g[b],f=$(e.element);$(f).css({top:d,left:i}),c=Math.max(c,$(f).width()),d+=$(f).height()+v_pad}),i+=c+h}),$.each(g,function(a,b){b.redraw()})}},bounds_for_all_nodes:function(){var a,b=1/0,c=-(1/0),d=1/0,f=-(1/0);return $.each(this.nodes,function(g,h){e=$(h.element),a=e.position(),b=Math.min(b,a.left),c=Math.max(c,a.left+e.width()),d=Math.min(d,a.top),f=Math.max(f,a.top+e.width())}),{xmin:b,xmax:c,ymin:d,ymax:f}},fit_canvas_to_nodes:function(){function a(a,b){return Math.ceil(a/b)*b}function b(a,b){return b>a||a>3*b?(new_pos=(Math.ceil(a%b/b)+1)*b,-(a-new_pos)):0}var c=this.bounds_for_all_nodes(),d=this.canvas_container.position(),e=this.canvas_container.parent(),f=b(c.xmin,100),g=b(c.ymin,100);f=Math.max(f,d.left),g=Math.max(g,d.top);var h=d.left-f,i=d.top-g,j=a(c.xmax+100,100)+f,k=a(c.ymax+100,100)+g;j=Math.max(j,-h+e.width()),k=Math.max(k,-i+e.height()),this.canvas_container.css({left:h,top:i,width:j,height:k}),this.canvas_container.children().each(function(){var a=$(this).position();$(this).css("left",a.left+f),$(this).css("top",a.top+g)})}}),b}); +define(["mvc/workflow/workflow-connector","libs/toastr"],function(a,b){function c(a,b){this.app=a,this.canvas_container=b,this.id_counter=0,this.nodes={},this.name=null,this.has_changes=!1,this.active_form_has_changes=!1,this.nodeLabels={}}return $.extend(c.prototype,{canLabelNodeWith:function(a){return a?!(a in this.nodeLabels):!0},registerNodeLabel:function(a){a&&(this.nodeLabels[a]=!0)},unregisterNodeLabel:function(a){a&&delete this.nodeLabels[a]},updateNodeLabel:function(a,c){a&&this.unregisterNodeLabel(a),this.canLabelNodeWith(c)||b.warning("Workflow contains duplicate node labels "+c+". This must be fixed before it can be saved."),c&&this.registerNodeLabel(c)},attemptUpdateNodeLabel:function(a,b){return this.canLabelNodeWith(b)?(a.setLabel(b),!0):!1},create_node:function(a,b,c){var d=this.app.prebuildNode(a,b,c);return this.add_node(d),this.fit_canvas_to_nodes(),this.app.canvas_manager.draw_overview(),this.activate_node(d),d},add_node:function(a){a.id=this.id_counter,a.element.attr("id","wf-node-step-"+a.id),this.id_counter++,this.nodes[a.id]=a,this.has_changes=!0,a.workflow=this},remove_node:function(a){this.active_node==a&&this.clear_active_node(),delete this.nodes[a.id],this.has_changes=!0},remove_all:function(){wf=this,$.each(this.nodes,function(a,b){b.destroy(),wf.remove_node(b)})},rectify_workflow_outputs:function(){var a=!1,b=!1;if($.each(this.nodes,function(c,d){d.workflow_outputs&&d.workflow_outputs.length>0&&(a=!0),$.each(d.post_job_actions,function(a,c){"HideDatasetAction"===c.action_type&&(b=!0)})}),a!==!1||b!==!1){var c=this;$.each(this.nodes,function(b,d){if("tool"===d.type){var e=!1;null==d.post_job_actions&&(d.post_job_actions={},e=!0);var f=[];$.each(d.post_job_actions,function(a,b){"HideDatasetAction"==b.action_type&&f.push(a)}),f.length>0&&$.each(f,function(a,b){e=!0,delete d.post_job_actions[b]}),a&&$.each(d.output_terminals,function(a,b){var c=!d.isWorkflowOutput(b.name);if(c===!0){e=!0;var f={action_type:"HideDatasetAction",output_name:b.name,action_arguments:{}};d.post_job_actions["HideDatasetAction"+b.name]=null,d.post_job_actions["HideDatasetAction"+b.name]=f}}),c.active_node==d&&e===!0&&c.reload_active_node()}})}},to_simple:function(){var a={};return $.each(this.nodes,function(b,c){var d={};$.each(c.input_terminals,function(a,b){d[b.name]=null;var c=[];$.each(b.connectors,function(a,e){c[a]={id:e.handle1.node.id,output_name:e.handle1.name},d[b.name]=c})});var e={};c.post_job_actions&&$.each(c.post_job_actions,function(a,b){var c={action_type:b.action_type,output_name:b.output_name,action_arguments:b.action_arguments};e[b.action_type+b.output_name]=null,e[b.action_type+b.output_name]=c}),c.workflow_outputs||(c.workflow_outputs=[]);var f={id:c.id,type:c.type,tool_id:c.content_id,tool_state:c.tool_state,tool_errors:c.tool_errors,input_connections:d,position:$(c.element).position(),annotation:c.annotation,post_job_actions:c.post_job_actions,uuid:c.uuid,label:c.label,workflow_outputs:c.workflow_outputs};a[c.id]=f}),{steps:a}},from_simple:function(b){wf=this;var c=0;wf.name=b.name;var d=!1;$.each(b.steps,function(a,b){var e=wf.app.prebuildNode(b.type,b.name,b.tool_id);e.init_field_data(b),b.position&&e.element.css({top:b.position.top,left:b.position.left}),e.id=b.id,wf.nodes[e.id]=e,c=Math.max(c,parseInt(a)),d||"tool"!==e.type||(e.workflow_outputs.length>0?d=!0:$.each(e.post_job_actions,function(a,b){"HideDatasetAction"===b.action_type&&(d=!0)}))}),wf.id_counter=c+1,$.each(b.steps,function(b,c){var e=wf.nodes[b];$.each(c.input_connections,function(b,c){c&&($.isArray(c)||(c=[c]),$.each(c,function(c,d){var f=wf.nodes[d.id],g=new a;g.connect(f.output_terminals[d.output_name],e.input_terminals[b]),g.redraw()}))}),d&&"tool"===e.type&&$.each(e.output_terminals,function(a,b){void 0===e.post_job_actions["HideDatasetAction"+b.name]&&(e.addWorkflowOutput(b.name),callout=$(e.element).find(".callout."+b.name),callout.find("img").attr("src",Galaxy.root+"static/images/fugue/asterisk-small.png"),wf.has_changes=!0)})})},check_changes_in_active_form:function(){this.active_form_has_changes&&(this.has_changes=!0,$("#right-content").find("form").submit(),this.active_form_has_changes=!1)},reload_active_node:function(){if(this.active_node){var a=this.active_node;this.clear_active_node(),this.activate_node(a)}},clear_active_node:function(){this.active_node&&(this.active_node.make_inactive(),this.active_node=null),this.app.showToolForm("
No node selected
",{id:"no-node"})},activate_node:function(a){this.active_node!=a&&(this.check_changes_in_active_form(),this.clear_active_node(),this.app.showToolForm(a.form_html,a),a.make_active(),this.active_node=a)},node_changed:function(a,b){this.has_changes=!0,this.active_node==a&&b&&(this.check_changes_in_active_form(),this.app.showToolForm(a.form_html,a))},layout:function(){this.check_changes_in_active_form(),this.has_changes=!0;var a={},b={};for($.each(this.nodes,function(c){void 0===a[c]&&(a[c]=0),void 0===b[c]&&(b[c]=[])}),$.each(this.nodes,function(c,d){$.each(d.input_terminals,function(c,e){$.each(e.connectors,function(c,e){var f=e.handle1.node;a[d.id]+=1,b[f.id].push(d.id)})})}),node_ids_by_level=[];;){level_parents=[];for(var c in a)0==a[c]&&level_parents.push(c);if(0==level_parents.length)break;node_ids_by_level.push(level_parents);for(var d in level_parents){var e=level_parents[d];delete a[e];for(var f in b[e])a[b[e][f]]-=1}}if(!a.length){var g=this.nodes,h=80;v_pad=30;var i=h;$.each(node_ids_by_level,function(a,b){b.sort(function(a,b){return $(g[a].element).position().top-$(g[b].element).position().top});var c=0,d=v_pad;$.each(b,function(a,b){var e=g[b],f=$(e.element);$(f).css({top:d,left:i}),c=Math.max(c,$(f).width()),d+=$(f).height()+v_pad}),i+=c+h}),$.each(g,function(a,b){b.redraw()})}},bounds_for_all_nodes:function(){var a,b=1/0,c=-(1/0),d=1/0,f=-(1/0);return $.each(this.nodes,function(g,h){e=$(h.element),a=e.position(),b=Math.min(b,a.left),c=Math.max(c,a.left+e.width()),d=Math.min(d,a.top),f=Math.max(f,a.top+e.width())}),{xmin:b,xmax:c,ymin:d,ymax:f}},fit_canvas_to_nodes:function(){function a(a,b){return Math.ceil(a/b)*b}function b(a,b){return b>a||a>3*b?(new_pos=(Math.ceil(a%b/b)+1)*b,-(a-new_pos)):0}var c=this.bounds_for_all_nodes(),d=this.canvas_container.position(),e=this.canvas_container.parent(),f=b(c.xmin,100),g=b(c.ymin,100);f=Math.max(f,d.left),g=Math.max(g,d.top);var h=d.left-f,i=d.top-g,j=a(c.xmax+100,100)+f,k=a(c.ymax+100,100)+g;j=Math.max(j,-h+e.width()),k=Math.max(k,-i+e.height()),this.canvas_container.css({left:h,top:i,width:j,height:k}),this.canvas_container.children().each(function(){var a=$(this).position();$(this).css("left",a.left+f),$(this).css("top",a.top+g)})}}),c}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-manager.js.map \ No newline at end of file diff --git a/static/scripts/mvc/workflow/workflow-node.js b/static/scripts/mvc/workflow/workflow-node.js index c91dbe18b4d..046aff233e0 100644 --- a/static/scripts/mvc/workflow/workflow-node.js +++ b/static/scripts/mvc/workflow/workflow-node.js @@ -1,2 +1,2 @@ -define(["mvc/workflow/workflow-view-node"],function(a){var b=Backbone.Model.extend({initialize:function(a,b){this.app=a,this.element=b.element,this.input_terminals={},this.output_terminals={},this.tool_errors={},this.workflow_outputs=[]},getWorkflowOutput:function(a){return _.findWhere(this.workflow_outputs,{output_name:a})},isWorkflowOutput:function(a){return void 0!=this.getWorkflowOutput(a)},removeWorkflowOutput:function(a){for(;this.isWorkflowOutput(a);)this.workflow_outputs.splice(this.getWorkflowOutput(a),1)},addWorkflowOutput:function(a){this.isWorkflowOutput(a)||this.workflow_outputs.push({output_name:a})},connectedOutputTerminals:function(){return this._connectedTerminals(this.output_terminals)},_connectedTerminals:function(a){var b=[];return $.each(a,function(a,c){c.connectors.length>0&&b.push(c)}),b},hasConnectedOutputTerminals:function(){var a=this.output_terminals;for(var b in a)if(a[b].connectors.length>0)return!0;return!1},connectedMappedInputTerminals:function(){return this._connectedMappedTerminals(this.input_terminals)},hasConnectedMappedInputTerminals:function(){var a=this.input_terminals;for(var b in a){var c=a[b];if(c.connectors.length>0&&c.isMappedOver())return!0}return!1},_connectedMappedTerminals:function(a){var b=[];return $.each(a,function(a,c){var d=c.mapOver();d.isCollection&&c.connectors.length>0&&b.push(c)}),b},mappedInputTerminals:function(){return this._mappedTerminals(this.input_terminals)},_mappedTerminals:function(a){var b=[];return $.each(a,function(a,c){var d=c.mapOver();d.isCollection&&b.push(c)}),b},hasMappedOverInputTerminals:function(){var a=!1;return _.each(this.input_terminals,function(b){var c=b.mapOver();c.isCollection&&(a=!0)}),a},redraw:function(){$.each(this.input_terminals,function(a,b){b.redraw()}),$.each(this.output_terminals,function(a,b){b.redraw()})},destroy:function(){$.each(this.input_terminals,function(a,b){b.destroy()}),$.each(this.output_terminals,function(a,b){b.destroy()}),this.app.workflow.remove_node(this),$(this.element).remove()},make_active:function(){$(this.element).addClass("toolForm-active")},make_inactive:function(){var a=this.element.get(0);!function(b){b.removeChild(a),b.appendChild(a)}(a.parentNode),$(a).removeClass("toolForm-active")},init_field_data:function(b){b.type&&(this.type=b.type),this.name=b.name,this.form_html=b.form_html,this.tool_state=b.tool_state,this.tool_errors=b.tool_errors,this.tooltip=b.tooltip?b.tooltip:"",this.annotation=b.annotation,this.post_job_actions=b.post_job_actions?b.post_job_actions:{},this.label=b.label,this.uuid=b.uuid,this.workflow_outputs=b.workflow_outputs?b.workflow_outputs:[];var c=this,d=new a({el:this.element[0],node:c});c.nodeView=d,$.each(b.data_inputs,function(a,b){d.addDataInput(b)}),b.data_inputs.length>0&&b.data_outputs.length>0&&d.addRule(),$.each(b.data_outputs,function(a,b){d.addDataOutput(b)}),d.render(),this.app.workflow.node_changed(this,!0)},update_field_data:function(a){var b=this;if(nodeView=b.nodeView,this.tool_state=a.tool_state,this.form_html=a.form_html,this.tool_errors=a.tool_errors,this.annotation=a.annotation,"post_job_actions"in a){var c=$.parseJSON(a.post_job_actions);this.post_job_actions=c?c:{}}b.nodeView.renderToolErrors();var d=nodeView.$("div.inputs"),e=nodeView.newInputsDiv(),f={};_.each(a.data_inputs,function(a){var c=b.nodeView.addDataInput(a,e);f[a.name]=c}),_.each(_.difference(_.values(nodeView.terminalViews),_.values(f)),function(a){a.el.terminal.destroy()}),nodeView.terminalViews=f,1==a.data_outputs.length&&"collection_type"in a.data_outputs[0]&&nodeView.updateDataOutput(a.data_outputs[0]),d.replaceWith(e),this.markChanged(),this.redraw()},error:function(a){var b=$(this.element).find(".toolFormBody");b.find("div").remove();var c="
"+a+"
";this.form_html=c,b.html(c),this.app.workflow.node_changed(this)},markChanged:function(){this.app.workflow.node_changed(this)}});return b}); +define(["mvc/workflow/workflow-view-node"],function(a){var b=Backbone.Model.extend({initialize:function(a,b){this.app=a,this.element=b.element,this.input_terminals={},this.output_terminals={},this.tool_errors={},this.workflow_outputs=[]},getWorkflowOutput:function(a){return _.findWhere(this.workflow_outputs,{output_name:a})},isWorkflowOutput:function(a){return void 0!=this.getWorkflowOutput(a)},removeWorkflowOutput:function(a){for(;this.isWorkflowOutput(a);)this.workflow_outputs.splice(this.getWorkflowOutput(a),1)},addWorkflowOutput:function(a){this.isWorkflowOutput(a)||this.workflow_outputs.push({output_name:a})},connectedOutputTerminals:function(){return this._connectedTerminals(this.output_terminals)},_connectedTerminals:function(a){var b=[];return $.each(a,function(a,c){c.connectors.length>0&&b.push(c)}),b},hasConnectedOutputTerminals:function(){var a=this.output_terminals;for(var b in a)if(a[b].connectors.length>0)return!0;return!1},connectedMappedInputTerminals:function(){return this._connectedMappedTerminals(this.input_terminals)},hasConnectedMappedInputTerminals:function(){var a=this.input_terminals;for(var b in a){var c=a[b];if(c.connectors.length>0&&c.isMappedOver())return!0}return!1},_connectedMappedTerminals:function(a){var b=[];return $.each(a,function(a,c){var d=c.mapOver();d.isCollection&&c.connectors.length>0&&b.push(c)}),b},mappedInputTerminals:function(){return this._mappedTerminals(this.input_terminals)},_mappedTerminals:function(a){var b=[];return $.each(a,function(a,c){var d=c.mapOver();d.isCollection&&b.push(c)}),b},hasMappedOverInputTerminals:function(){var a=!1;return _.each(this.input_terminals,function(b){var c=b.mapOver();c.isCollection&&(a=!0)}),a},redraw:function(){$.each(this.input_terminals,function(a,b){b.redraw()}),$.each(this.output_terminals,function(a,b){b.redraw()})},destroy:function(){$.each(this.input_terminals,function(a,b){b.destroy()}),$.each(this.output_terminals,function(a,b){b.destroy()}),this.app.workflow.remove_node(this),$(this.element).remove()},make_active:function(){$(this.element).addClass("toolForm-active")},make_inactive:function(){var a=this.element.get(0);!function(b){b.removeChild(a),b.appendChild(a)}(a.parentNode),$(a).removeClass("toolForm-active")},setLabel:function(a){this.app.workflow.updateNodeLabel(this.label,a),this.label=a||null},init_field_data:function(b){b.type&&(this.type=b.type),this.name=b.name,this.form_html=b.form_html,this.tool_state=b.tool_state,this.tool_errors=b.tool_errors,this.tooltip=b.tooltip?b.tooltip:"",this.annotation=b.annotation,this.post_job_actions=b.post_job_actions?b.post_job_actions:{},this.setLabel(b.label),this.uuid=b.uuid,this.workflow_outputs=b.workflow_outputs?b.workflow_outputs:[];var c=this,d=new a({el:this.element[0],node:c});c.nodeView=d,$.each(b.data_inputs,function(a,b){d.addDataInput(b)}),b.data_inputs.length>0&&b.data_outputs.length>0&&d.addRule(),$.each(b.data_outputs,function(a,b){d.addDataOutput(b)}),d.render(),this.app.workflow.node_changed(this,!0)},update_field_data:function(a){var b=this;if(nodeView=b.nodeView,this.tool_state=a.tool_state,this.form_html=a.form_html,this.tool_errors=a.tool_errors,this.annotation=a.annotation,this.setLabel(a.label),"post_job_actions"in a){var c=$.parseJSON(a.post_job_actions);this.post_job_actions=c?c:{}}b.nodeView.renderToolErrors();var d=nodeView.$("div.inputs"),e=nodeView.newInputsDiv(),f={};_.each(a.data_inputs,function(a){var c=b.nodeView.addDataInput(a,e);f[a.name]=c}),_.each(_.difference(_.values(nodeView.terminalViews),_.values(f)),function(a){a.el.terminal.destroy()}),nodeView.terminalViews=f,b.nodeView.render(),1==a.data_outputs.length&&"collection_type"in a.data_outputs[0]&&nodeView.updateDataOutput(a.data_outputs[0]),d.replaceWith(e),this.markChanged(),this.redraw()},error:function(a){var b=$(this.element).find(".toolFormBody");b.find("div").remove();var c="
"+a+"
";this.form_html=c,b.html(c),this.app.workflow.node_changed(this)},markChanged:function(){this.app.workflow.node_changed(this)}});return b}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-node.js.map \ No newline at end of file diff --git a/static/scripts/mvc/workflow/workflow-view-node.js b/static/scripts/mvc/workflow/workflow-view-node.js index 14b00a490da..86e681d2ab8 100644 --- a/static/scripts/mvc/workflow/workflow-view-node.js +++ b/static/scripts/mvc/workflow/workflow-view-node.js @@ -1,2 +1,2 @@ -define(["mvc/workflow/workflow-view-terminals","mvc/workflow/workflow-view-data"],function(a,b){return Backbone.View.extend({initialize:function(a){this.node=a.node,this.output_width=Math.max(150,this.$el.width()),this.tool_body=this.$el.find(".toolFormBody"),this.tool_body.find("div").remove(),this.newInputsDiv().appendTo(this.tool_body),this.terminalViews={},this.outputTerminlViews={}},render:function(){this.renderToolErrors(),this.$el.css("width",Math.min(250,Math.max(this.$el.width(),this.output_width)))},renderToolErrors:function(){this.node.tool_errors?this.$el.addClass("tool-node-error"):this.$el.removeClass("tool-node-error")},newInputsDiv:function(){return $("
")},updateMaxWidth:function(a){this.output_width=Math.max(this.output_width,a)},addRule:function(){this.tool_body.append($("
"))},addDataInput:function(c,d){var e=!0;d||(d=this.$(".inputs"),e=!1);var f=this.terminalViews[c.name],g="dataset_collection"==c.input_type?a.InputCollectionTerminalView:a.InputTerminalView;if(!f||f instanceof g||(f.el.terminal.destroy(),f=null),f){var h=f.el.terminal;h.update(c),h.destroyInvalidConnections()}else f=new g({node:this.node,input:c});this.terminalViews[c.name]=f;var i=f.el,j=new b.DataInputView({terminalElement:i,input:c,nodeView:this,skipResize:e}),k=j.$el;return d.append(k.prepend(f.terminalElements())),f},addDataOutput:function(c){var d=c.collection?a.OutputCollectionTerminalView:a.OutputTerminalView,e=new d({node:this.node,output:c}),f=new b.DataOutputView({output:c,terminalElement:e.el,nodeView:this});this.tool_body.append(f.$el.append(e.terminalElements()))},updateDataOutput:function(a){var b=this.node.output_terminals[a.name];b.update(a)}})}); +define(["mvc/workflow/workflow-view-terminals","mvc/workflow/workflow-view-data"],function(a,b){return Backbone.View.extend({initialize:function(a){this.node=a.node,this.output_width=Math.max(150,this.$el.width()),this.tool_body=this.$el.find(".toolFormBody"),this.tool_body.find("div").remove(),this.newInputsDiv().appendTo(this.tool_body),this.terminalViews={},this.outputTerminlViews={}},render:function(){var a,b=this.node.label;a=b?b:this.node.name,this.$el.find(".nodeTitle").text(a),this.renderToolErrors(),this.$el.css("width",Math.min(250,Math.max(this.$el.width(),this.output_width)))},renderToolErrors:function(){this.node.tool_errors?this.$el.addClass("tool-node-error"):this.$el.removeClass("tool-node-error")},newInputsDiv:function(){return $("
")},updateMaxWidth:function(a){this.output_width=Math.max(this.output_width,a)},addRule:function(){this.tool_body.append($("
"))},addDataInput:function(c,d){var e=!0;d||(d=this.$(".inputs"),e=!1);var f=this.terminalViews[c.name],g="dataset_collection"==c.input_type?a.InputCollectionTerminalView:a.InputTerminalView;if(!f||f instanceof g||(f.el.terminal.destroy(),f=null),f){var h=f.el.terminal;h.update(c),h.destroyInvalidConnections()}else f=new g({node:this.node,input:c});this.terminalViews[c.name]=f;var i=f.el,j=new b.DataInputView({terminalElement:i,input:c,nodeView:this,skipResize:e}),k=j.$el;return d.append(k.prepend(f.terminalElements())),f},addDataOutput:function(c){var d=c.collection?a.OutputCollectionTerminalView:a.OutputTerminalView,e=new d({node:this.node,output:c}),f=new b.DataOutputView({output:c,terminalElement:e.el,nodeView:this});this.tool_body.append(f.$el.append(e.terminalElements()))},updateDataOutput:function(a){var b=this.node.output_terminals[a.name];b.update(a)}})}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-view-node.js.map \ No newline at end of file diff --git a/static/scripts/mvc/workflow/workflow-view.js b/static/scripts/mvc/workflow/workflow-view.js index 514217500e9..8949e169a71 100644 --- a/static/scripts/mvc/workflow/workflow-view.js +++ b/static/scripts/mvc/workflow/workflow-view.js @@ -1,2 +1,2 @@ -define("mvc/workflow/workflow-globals",{}),define(["utils/utils","mvc/workflow/workflow-globals","mvc/workflow/workflow-manager","mvc/workflow/workflow-canvas","mvc/workflow/workflow-node","mvc/tool/tools-form-workflow","utils/async-save-text"],function(a,b,c,d,e,f,g){function h(a){var b=$("#galaxy_tools").contents();if(0===b.length&&(b=$(document)),$(this).removeClass("search_active"),b.find(".toolTitle").removeClass("search_match"),b.find(".toolSectionBody").hide(),b.find(".toolTitle").show(),b.find(".toolPanelLabel").show(),b.find(".toolSectionWrapper").each(function(){"recently_used_wrapper"!==$(this).attr("id")?$(this).show():$(this).hasClass("user_pref_visible")&&$(this).show()}),b.find("#search-no-results").hide(),b.find("#search-spinner").hide(),a){var c=b.find("#tool-search-query");c.val("search tools")}}return EditorFormView=Backbone.View.extend({initialize:function(b){this.options=a.merge(b,{});var c=$("
"),d=b.workflowView,e=b.node;b.html&&c.html(b.html),this.setElement(c),e&&"no-node"!=e.id&&(c.find(".toolForm:first").after(this._genericStepAttributesTemplate(e)),c.find("form").length>0&&c.find("form").ajaxForm({type:"POST",dataType:"json",success:function(a){d.workflow.active_form_has_changes=!1,e.update_field_data(a),d.showWorkflowParameters()},beforeSubmit:function(a){a.push({name:"tool_state",value:e.tool_state}),a.push({name:"_",value:"true"})}}).each(function(){var a=this;$(this).find('select[refresh_on_change="true"]').change(function(){$(a).submit()}),$(this).find('input[refresh_on_change="true"]').change(function(){$(a).submit()}),$(this).find("input, textarea, select").each(function(){$(this).bind("focus click",function(){d.workflow.active_form_has_changes=!0})})}))},_genericStepAttributesTemplate:function(a){return'

Edit Step Attributes
'+this._annotationTemplate(a)+"

"},_annotationTemplate:function(a){return'
Add an annotation or notes to this step; annotations are available when a workflow is viewed.
'}}),Backbone.View.extend({initialize:function(a){function c(){j.workflow.layout(),j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview()}function e(){j.workflow.clear_active_node(),$(".right-content").hide(),$("#edit-attributes").show()}function f(){$.jStorage.set("overview-off",!1),$("#overview-border").css("right","0px"),$("#close-viewport").css("background-position","0px 0px")}function i(){$.jStorage.set("overview-off",!0),$("#overview-border").css("right","20000px"),$("#close-viewport").css("background-position","12px 0px")}var j=b.app=this;this.options=a,this.urls=a&&a.urls||{},this.active_ajax_call=!1;var k=function(){j.workflow.check_changes_in_active_form(),workflow&&j.workflow.has_changes?(do_close=function(){window.onbeforeunload=void 0,window.document.location=j.urls.workflow_index},window.show_modal("Close workflow editor","There are unsaved changes to your workflow which will be lost.",{Cancel:hide_modal,"Save Changes":function(){l(null,do_close)}},{"Don't Save":do_close})):window.document.location=j.urls.workflow_index},l=function(a,b){if(show_message("Saving workflow","progress"),j.workflow.check_changes_in_active_form(),!j.workflow.has_changes)return hide_modal(),void(b&&b());j.workflow.rectify_workflow_outputs();var c=function(a){$.ajax({url:j.urls.save_workflow,type:"POST",data:{id:j.options.id,workflow_data:function(){return JSON.stringify(j.workflow.to_simple())},_:"true"},dataType:"json",success:function(b){var c=$("
").text(b.message);if(b.errors){c.addClass("warningmark");var d=$("