From b11002bef32d83b058e3495f96695c8dc12cb91b Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 15:34:15 +0000 Subject: [PATCH 01/12] Don't iterate over unused key. Thanks to @bgruening. --- test/api/workflows_format_2/converter.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/api/workflows_format_2/converter.py b/test/api/workflows_format_2/converter.py index e4a5bb9cc24..cf123de7998 100644 --- a/test/api/workflows_format_2/converter.py +++ b/test/api/workflows_format_2/converter.py @@ -91,7 +91,7 @@ def _python_to_workflow(as_python, conversion_context): as_python["steps"] = steps_as_dict steps = steps_as_dict - for i, step in steps.iteritems(): + for step in steps.itervalues(): step_type = step.get("type", None) if "run" in step: if step_type is not None: @@ -113,7 +113,7 @@ def _python_to_workflow(as_python, conversion_context): run_to_step_function(conversion_context, step, run_action) del step["run"] - for i, step in steps.iteritems(): + for step in steps.itervalues(): step_type = step.get("type", "tool") step_type = STEP_TYPE_ALIASES.get(step_type, step_type) if step_type not in STEP_TYPES: From 2aa7f04364e10e46c655de636925883a43698694 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 15:43:20 +0000 Subject: [PATCH 02/12] Replace __rip_value with dict.pop. Thanks @bgruening. --- test/api/workflows_format_2/converter.py | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/test/api/workflows_format_2/converter.py b/test/api/workflows_format_2/converter.py index cf123de7998..7ab6b2d6ff3 100644 --- a/test/api/workflows_format_2/converter.py +++ b/test/api/workflows_format_2/converter.py @@ -148,14 +148,14 @@ def convert_inputs_to_steps(inputs, steps): if "label" not in input_def and "id" not in input_def: raise Exception("Input must define a label.") - raw_label = __rip_value(input_def, "label") - raw_id = __rip_value(input_def, "id") + raw_label = input_def.pop("label", None) + raw_id = input_def.pop("id", None) label = raw_label or raw_id if not label: raise Exception("Input label must not be empty.") - input_type = __rip_value(input_def, "type", "data") + input_type = input_def.pop("type", "data") if input_type in ["File", "data", "data_input"]: step_type = "data_input" elif input_type in ["collection", "data_collection", "data_collection_input"]: @@ -380,15 +380,6 @@ def __join_prefix(prefix, key): return new_key -def __rip_value(input_def, key, default=None): - if key in input_def: - value = input_def[key] - del input_def[key] - else: - value = default - return value - - def __init_connect_dict(step): if "connect" not in step: step["connect"] = {} From 98249058e85d8133748519ac59ebed96a28a77ac Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 15:47:13 +0000 Subject: [PATCH 03/12] Cleanup error message. Thanks @bgruening. --- lib/galaxy/workflow/run.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 ) From f17a6c996a060f68bc8a250effa23f60b96b44a7 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Fri, 4 Dec 2015 21:21:33 +0000 Subject: [PATCH 04/12] Synchronize decoding ids across base controller and manager base. To ensure we have the same kind of exception thrown in both cases. --- lib/galaxy/managers/base.py | 16 +++++++++++----- lib/galaxy/web/base/controller.py | 9 +-------- 2 files changed, 12 insertions(+), 13 deletions(-) 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/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 ): """ From f6d26c9ee6f148fd033d1b070c2dbe8c69b08fa8 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Fri, 4 Dec 2015 18:08:07 +0000 Subject: [PATCH 05/12] Small refactor making workflow views and modules tad more generic. - Reduce duplication between initializing generic modules and tool modules. - Switch tool_id to content_id as variable names throughout the client. - Rename get_tool_id to get_content_id on workflow modules. - Add some minimal documentation to the workflow module about get_content_id. Downstream in the subworkflow commit I switch the over-the-wire communication to use content_id instead of tool_id also and use content_ids to refer to workflow ids in subworkflow moduls. --- .../scripts/mvc/workflow/workflow-manager.js | 6 +-- .../scripts/mvc/workflow/workflow-view.js | 40 ++++++++----------- lib/galaxy/managers/workflows.py | 4 +- .../webapps/galaxy/controllers/workflow.py | 2 +- lib/galaxy/workflow/modules.py | 21 +++++----- test/unit/workflows/test_modules.py | 4 +- 6 files changed, 37 insertions(+), 40 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-manager.js b/client/galaxy/scripts/mvc/workflow/workflow-manager.js index 08c247672b9..42de4396f43 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-manager.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-manager.js @@ -9,8 +9,8 @@ define(['mvc/workflow/workflow-connector'], function( Connector ) { this.active_form_has_changes = false; } $.extend( Workflow.prototype, { - create_node: function ( type, title_text, tool_id ) { - var node = this.app.prebuildNode( type, title_text, tool_id ); + 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 +131,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, diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view.js b/client/galaxy/scripts/mvc/workflow/workflow-view.js index fe712da025e..a15ec495aa8 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -525,12 +525,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 +544,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,14 +700,12 @@ EditorFormView = Backbone.View.extend({ return ( this.type_to_type[child] ) && ( parent in this.type_to_type[child] ); }, - prebuildNode: function ( type, title_text, tool_id ) { + prebuildNode: function ( type, title_text, content_id ) { var self = this; var f = $("
"); var node = new Node( this, { element: f } ); node.type = type; - if ( type == 'tool' ) { - node.tool_id = tool_id; - } + node.content_id = content_id; var title = $("
" + title_text + "
" ); f.append( title ); f.css( "left", $(window).scrollLeft() + 20 ); f.css( "top", $(window).scrollTop() + 20 ); diff --git a/lib/galaxy/managers/workflows.py b/lib/galaxy/managers/workflows.py index c43dbf69983..a5b259de134 100644 --- a/lib/galaxy/managers/workflows.py +++ b/lib/galaxy/managers/workflows.py @@ -348,7 +348,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' ) ), @@ -449,7 +449,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/webapps/galaxy/controllers/workflow.py b/lib/galaxy/webapps/galaxy/controllers/workflow.py index 8ab9bbc8638..e7a63f0cdac 100644 --- a/lib/galaxy/webapps/galaxy/controllers/workflow.py +++ b/lib/galaxy/webapps/galaxy/controllers/workflow.py @@ -664,7 +664,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 4383038def2..0e93e984652 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,7 +197,7 @@ 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() return module @@ -502,10 +505,10 @@ 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 ) return module @@ -615,7 +618,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 ): @@ -943,13 +946,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/test/unit/workflows/test_modules.py b/test/unit/workflows/test_modules.py index 4a92b716d23..d0910ea77af 100644 --- a/test/unit/workflows/test_modules.py +++ b/test/unit/workflows/test_modules.py @@ -19,7 +19,7 @@ def test_valid_new_tool_has_no_errors(): trans = MockTrans() mock_tool = mock.Mock() trans.app.toolbox.tools[ "cat1" ] = mock_tool - tool_module = modules.module_factory.new( trans, "tool", tool_id="cat1" ) + tool_module = modules.module_factory.new( trans, "tool", content_id="cat1" ) assert not tool_module.get_errors() @@ -194,7 +194,7 @@ def test_cannot_create_tool_modules_for_missing_tools(): trans = MockTrans() exception = False try: - modules.module_factory.new( trans, "tool", tool_id="cat1" ) + modules.module_factory.new( trans, "tool", content_id="cat1" ) except Exception: exception = True assert exception From 73bfbf016347f764a0747ad7c6d138c74b6f519d Mon Sep 17 00:00:00 2001 From: John Chilton Date: Fri, 4 Dec 2015 19:35:04 +0000 Subject: [PATCH 06/12] Refactor some workflow API code into workflows manager. This allows for reuse outside of the API controller, such as loading subworkflows downstream. --- lib/galaxy/managers/workflows.py | 38 ++++++++++++++++++++++ lib/galaxy/webapps/galaxy/api/workflows.py | 30 ++--------------- 2 files changed, 41 insertions(+), 27 deletions(-) diff --git a/lib/galaxy/managers/workflows.py b/lib/galaxy/managers/workflows.py index a5b259de134..a3d312dfdb0 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 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( From f92220a74f216d937dc5b147472261d154779512 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 13:11:09 +0000 Subject: [PATCH 07/12] Allow workflow outputs on non-tool steps. --- lib/galaxy/managers/workflows.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/galaxy/managers/workflows.py b/lib/galaxy/managers/workflows.py index a3d312dfdb0..11f93623eff 100644 --- a/lib/galaxy/managers/workflows.py +++ b/lib/galaxy/managers/workflows.py @@ -429,11 +429,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: From d18c75ceb875632f9e68a74ebeb88389262d6fa8 Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 17:08:13 +0000 Subject: [PATCH 08/12] Bring gneric and tool module styles into alignment in workflow editor. --- .../scripts/mvc/workflow/workflow-view.js | 2 +- .../galaxy/workflow/editor_generic_form.mako | 57 +++++++++++-------- 2 files changed, 34 insertions(+), 25 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view.js b/client/galaxy/scripts/mvc/workflow/workflow-view.js index a15ec495aa8..c8d6a9bd4d5 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -61,7 +61,7 @@ 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 )); ($el.find( 'form' ).length > 0) && $el.find( 'form' ).ajaxForm( { type: 'POST', dataType: 'json', diff --git a/templates/webapps/galaxy/workflow/editor_generic_form.mako b/templates/webapps/galaxy/workflow/editor_generic_form.mako index 5f744fdf4bf..f12073948b8 100644 --- a/templates/webapps/galaxy/workflow/editor_generic_form.mako +++ b/templates/webapps/galaxy/workflow/editor_generic_form.mako @@ -1,12 +1,22 @@
-
-
${form.title}
-
+
+
+
+ ${form.title} +
+
+
+
+
+
+ + + %if form.inputs: %for input in form.inputs: <% - cls = "form-row" + cls = "section-row" if input.error: cls += " form-row-error" extra_attributes = "" @@ -16,38 +26,37 @@ if input.type: type_attribute = "type=\"input.type\"" %> -
-
%endfor %else:
No options
%endif +
+
${input.label}: - -
- +
+
%if hasattr( input, "body_html" ): ${input.body_html()} %endif -
- %if input.error: -
-
 ${input.error}
-
- %endif + %if input.error: +
+
 ${input.error}
+
+ %endif - %if input.help: -
- ${input.help} -
- %endif + %if input.help: +
+ ${input.help} +
+ %endif +
-
- -
+
-
+
+
From d7ac52f6bb61fe360198f91310a3e22076183d7b Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 17:49:33 +0000 Subject: [PATCH 09/12] Add icons to existing workflow steps in workflow editor. Tools have an icon there. --- .../scripts/mvc/workflow/workflow-view.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view.js b/client/galaxy/scripts/mvc/workflow/workflow-view.js index c8d6a9bd4d5..cd799467ab4 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -44,6 +44,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. @@ -62,6 +77,8 @@ EditorFormView = Backbone.View.extend({ if (node && node.id != 'no-node') { $el.find('table:first').after(this._genericStepAttributesTemplate( node )); + var nodeType = node.type; + add_node_icon($el.find('.portlet-title-text'), nodeType); ($el.find( 'form' ).length > 0) && $el.find( 'form' ).ajaxForm( { type: 'POST', dataType: 'json', From e3161b4671e9fb19a47c7f341e3fb46617111a9e Mon Sep 17 00:00:00 2001 From: John Chilton Date: Sat, 5 Dec 2015 18:49:11 +0000 Subject: [PATCH 10/12] Add support for workflow step labels in editor. - If a step has a label, display it in the step editor side panel title. - Allow clicking the title to change the label. - Display the label (if set) as the workflow node box title. - Add icon to workflow node since the title might not be related to type anymore. - Enforce unique labels accross the workflow in the editor. - Qunit test cases for some of this behavior and other recent changes. --- .../scripts/mvc/workflow/workflow-manager.js | 39 +++++++++++++ .../scripts/mvc/workflow/workflow-node.js | 9 ++- .../mvc/workflow/workflow-view-node.js | 4 ++ .../scripts/mvc/workflow/workflow-view.js | 58 ++++++++++++++----- .../webapps/galaxy/controllers/workflow.py | 7 ++- lib/galaxy/workflow/modules.py | 7 +++ .../maps/mvc/workflow/workflow-manager.js.map | 2 +- static/maps/mvc/workflow/workflow-node.js.map | 2 +- .../mvc/workflow/workflow-view-node.js.map | 2 +- static/maps/mvc/workflow/workflow-view.js.map | 2 +- .../scripts/mvc/workflow/workflow-manager.js | 2 +- static/scripts/mvc/workflow/workflow-node.js | 2 +- .../mvc/workflow/workflow-view-node.js | 2 +- static/scripts/mvc/workflow/workflow-view.js | 2 +- .../galaxy/workflow/editor_generic_form.mako | 10 +++- test/qunit/tests/workflow_editor_tests.js | 39 ++++++++++--- 16 files changed, 154 insertions(+), 35 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-manager.js b/client/galaxy/scripts/mvc/workflow/workflow-manager.js index 42de4396f43..7fea600a132 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-manager.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-manager.js @@ -7,8 +7,47 @@ 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, { + 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 ) ) { + // TODO: Improve display of this error. + alert("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 ); 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..9fb01bb4980 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js @@ -11,6 +11,10 @@ define(['mvc/workflow/workflow-view-terminals', 'mvc/workflow/workflow-view-data }, render: function() { + var label = this.node.label; + if(label) { + this.$el.find(".nodeTitle").text(label); + } 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 cd799467ab4..f694825ce78 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -7,6 +7,7 @@ define([ 'mvc/workflow/workflow-node', 'mvc/tool/tools-form-workflow', 'utils/async-save-text', + 'ui/editable-text', ], function( Utils, Globals, Workflow, WorkflowCanvas, Node, ToolsForm, async_save_text ){ // Reset tool search to start state. @@ -79,6 +80,26 @@ EditorFormView = Backbone.View.extend({ $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(); + } else { + alert("Step label " + newLabel + " already exists, cannot update label."); + $titleText.text(lastValue); + } + } + }); ($el.find( 'form' ).length > 0) && $el.find( 'form' ).ajaxForm( { type: 'POST', dataType: 'json', @@ -717,20 +738,27 @@ EditorFormView = Backbone.View.extend({ return ( this.type_to_type[child] ) && ( parent in this.type_to_type[child] ); }, + $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; node.content_id = content_id; - var title = $("
" + title_text + "
" ); - f.append( title ); - f.css( "left", $(window).scrollLeft() + 20 ); f.css( "top", $(window).scrollTop() + 20 ); - var b = $("
"); 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 = $("
"); @@ -738,17 +766,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/webapps/galaxy/controllers/workflow.py b/lib/galaxy/webapps/galaxy/controllers/workflow.py index e7a63f0cdac..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(), diff --git a/lib/galaxy/workflow/modules.py b/lib/galaxy/workflow/modules.py index 0e93e984652..30a67c9913f 100644 --- a/lib/galaxy/workflow/modules.py +++ b/lib/galaxy/workflow/modules.py @@ -200,6 +200,7 @@ class SimpleWorkflowModule( WorkflowModule ): def new( Class, trans, content_id=None ): module = Class( trans ) module.state = Class.default_state() + module.label = None return module @classmethod @@ -207,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 @@ -511,6 +514,7 @@ class ToolModule( WorkflowModule ): 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 @@ -519,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: if d.get('tool_version', 'Unspecified') != module.get_tool_version(): message = "%s: using version '%s' instead of version '%s' indicated in this workflow." % ( tool_id, d.get( 'tool_version', 'Unspecified' ), module.get_tool_version() ) @@ -555,6 +560,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 @@ -730,6 +736,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 ) diff --git a/static/maps/mvc/workflow/workflow-manager.js.map b/static/maps/mvc/workflow/workflow-manager.js.map index 6c4348c37c4..047ff3aaf0a 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","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","alert","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..3563b9c8659 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","label","text","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,WACJ,GAAIC,GAAQf,KAAKC,KAAKc,KACnBA,IACCf,KAAKK,IAAIG,KAAK,cAAcQ,KAAKD,GAErCf,KAAKiB,mBACLjB,KAAKK,IAAIa,IAAK,QAASf,KAAKgB,IAAI,IAAKhB,KAAKC,IAAKJ,KAAKK,IAAIC,QAASN,KAAKE,iBAG1Ee,iBAAkB,WACTjB,KAAKC,KAAKmB,YACXpB,KAAKK,IAAIgB,SAAU,mBAEnBrB,KAAKK,IAAIiB,YAAa,oBAI9BZ,aAAc,WACV,MAAOa,GAAE,+BAGbC,eAAgB,SAAUC,GACtBzB,KAAKE,aAAeC,KAAKC,IAAKJ,KAAKE,aAAcuB,IAGrDC,QAAS,WACL1B,KAAKO,UAAUoB,OAAQJ,EAAG,8BAG9BK,aAAc,SAAUC,EAAOC,GAC3B,GAAIC,IAAa,CACXD,KACFA,EAAO9B,KAAKuB,EAAG,WAGfQ,GAAa,EAEjB,IAAIC,GAAehC,KAAKY,cAAeiB,EAAMI,MACzCC,EAA0C,sBAApBL,EAAMM,WAAuC1C,EAAc2C,4BAA8B3C,EAAc4C,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,IACfjC,KAAMD,KAAKC,KACX4B,MAAOA,GAOf7B,MAAKY,cAAeiB,EAAMI,MAASD,CACnC,IAAIW,GAAkBX,EAAaM,GAC/BM,EAAY,GAAIlD,GAAUmD,eAC1BF,gBAAiBA,EACjBd,MAAOA,EACPiB,SAAU9C,KACV+B,WAAYA,IAEZgB,EAAKH,EAAUvC,GAEnB,OADAyB,GAAKH,OAAQoB,EAAGC,QAAShB,EAAaiB,qBAC/BjB,GAGXkB,cAAe,SAAUC,GACrB,GAAIjB,GAAsBiB,EAAkB,WAAI1D,EAAc2D,6BAA+B3D,EAAc4D,mBACvGrB,EAAe,GAAIE,IACnBjC,KAAMD,KAAKC,KACXkD,OAAQA,IAERG,EAAa,GAAI5D,GAAU6D,gBAC3BJ,OAAUA,EACVR,gBAAmBX,EAAaM,GAChCQ,SAAY9C,MAEhBA,MAAKO,UAAUoB,OAAQ2B,EAAWjD,IAAIsB,OAAQK,EAAaiB,sBAG/DO,iBAAkB,SAAUL,GACxB,GAAIM,GAAiBzD,KAAKC,KAAKyD,iBAAkBP,EAAOlB,KACxDwB,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..fd3ed8a7d9b 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","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","alert","ajaxForm","dataType","success","active_form_has_changes","update_field_data","showWorkflowParameters","beforeSubmit","push","name","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..f6bc230e567 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"],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,this.nodeLabels={}}return $.extend(b.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,b){a&&this.unregisterNodeLabel(a),this.canLabelNodeWith(b)||alert("Workflow contains duplicate node labels "+b+". This must be fixed before it can be saved."),b&&this.registerNodeLabel(b)},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)})}}),b}); //# 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..95c4063adb2 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=this.node.label;a&&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..1a17fa9ffc4 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=$("
    ");$.each(b.errors,function(a,b){$("
  • ").text(b).appendTo(d)}),c.append(d)}else c.addClass("donemark");j.workflow.name=b.name,j.workflow.has_changes=!1,j.workflow.stored=!0,j.showWorkflowParameters(),b.errors?window.show_modal("Saving workflow",c,{Ok:hide_modal}):(a&&a(),hide_modal())}})};j.active_ajax_call?$(document).bind("ajaxStop.save_workflow",function(){$(document).unbind("ajaxStop.save_workflow"),c(),$(document).unbind("ajaxStop.save_workflow"),j.active_ajax_call=!1}):c(b)};$("#tool-search-query").click(function(){$(this).focus(),$(this).select()}).keyup(function(){if($(this).css("font-style","normal"),this.value.length<3)h(!1);else if(this.value!=this.lastValue){$(this).addClass("search_active");var a=this.value;this.timer&&clearTimeout(this.timer),$("#search-spinner").show(),this.timer=setTimeout(function(){$.get(j.urls.tool_search,{q:a},function(a){if($("#search-no-results").hide(),$(".toolSectionWrapper").hide(),$(".toolSectionWrapper").find(".toolTitle").hide(),0!=a.length){var b=$.map(a,function(a){return"link-"+a});$(b).each(function(a,b){$("[id='"+b+"']").parent().addClass("search_match"),$("[id='"+b+"']").parent().show().parent().parent().show().parent().show()}),$(".toolPanelLabel").each(function(){for(var a=$(this),b=a.next(),c=!0;0!==b.length&&b.hasClass("toolTitle");){if(b.is(":visible")){c=!1;break}b=b.next()}c&&a.hide()})}else $("#search-no-results").show();$("#search-spinner").hide()},"json")},400)}this.lastValue=this.value}),this.canvas_manager=b.canvas_manager=new d(this,$("#canvas-viewport"),$("#overview")),this.reset(),this.datatypes=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes",async:!1}).responseText),this.datatypes_mapping=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes/mapping",async:!1}).responseText),this.ext_to_type=this.datatypes_mapping.ext_to_class_name,this.type_to_type=this.datatypes_mapping.class_to_classes,$.ajax({url:j.urls.load_workflow,data:{id:j.options.id,_:"true"},dataType:"json",cache:!1,success:function(a){j.reset(),j.workflow.from_simple(a),j.workflow.has_changes=!1,j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview(),upgrade_message="",$.each(a.upgrade_messages,function(a,b){upgrade_message+="
  • Step "+(parseInt(a,10)+1)+": "+j.workflow.nodes[a].name+"
      ",$.each(b,function(a,b){upgrade_message+="
    • "+b+"
    • "}),upgrade_message+="
  • "}),upgrade_message?window.show_modal("Workflow loaded with changes","Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.
      "+upgrade_message+"
    ",{Continue:hide_modal}):hide_modal(),j.showWorkflowParameters()},beforeSubmit:function(){show_message("Loading workflow","progress")}}),$(document).ajaxStart(function(){j.active_ajax_call=!0,$(document).bind("ajaxStop.global",function(){j.active_ajax_call=!1})}),$(document).ajaxError(function(a,b){var c=b.responseText||b.statusText||"Could not connect to server";return window.show_modal("Server error",c,{"Ignore error":hide_modal}),!1}),window.make_popupmenu&&make_popupmenu($("#workflow-options-button"),{Save:l,Run:function(){window.location=j.urls.run_workflow},"Edit Attributes":e,"Auto Re-layout":c,Close:k}),overview_size=$.jStorage.get("overview-size"),void 0!==overview_size&&$("#overview-border").css({width:overview_size,height:overview_size}),$.jStorage.get("overview-off")?i():f(),$("#overview-border").bind("dragend",function(a,b){var c=$(this).offsetParent(),d=c.offset(),e=Math.max(c.width()-(b.offsetX-d.left),c.height()-(b.offsetY-d.top));$.jStorage.set("overview-size",e+"px")}),$("#close-viewport").click(function(){"0px"===$("#overview-border").css("right")?i():f()}),window.onbeforeunload=function(){return workflow&&j.workflow.has_changes?"There are unsaved changes to your workflow which will be lost.":void 0},$("div.toolSectionBody").hide(),$("div.toolSectionTitle > span").wrap("");var m=null;$("div.toolSectionTitle").each(function(){var a=$(this).next("div.toolSectionBody");$(this).click(function(){a.is(":hidden")?(m&&m.slideUp("fast"),m=a,a.slideDown("fast")):(a.slideUp("fast"),m=null)})}),g("workflow-name","workflow-name",j.urls.rename_async,"new_name"),$("#workflow-tag").click(function(){return $(".tag-area").click(),!1}),g("workflow-annotation","workflow-annotation",j.urls.annotate_async,"new_annotation",25,!0,4)},reset:function(){this.workflow&&this.workflow.remove_all(),this.workflow=b.workflow=new c(this,$("#canvas-container"))},scroll_to_nodes:function(){var a,b,c=$("#canvas-viewport"),d=$("#canvas-container");b=d.width().toolForm:last>.toolFormTitle>.buttons").click(function(){action_to_rem=$(this).closest(".toolForm",".action_tag").children(".action_tag:first").text(),$(this).closest(".toolForm").remove(),delete c.workflow.active_node.post_job_actions[action_to_rem],c.workflow.active_form_has_changes=!0})},display_pja_list:function(){return pja_list},display_file_list:function(a){addlist="",addlist},new_pja:function(a,b,c){if(void 0===c.post_job_actions&&(c.post_job_actions={}),void 0===c.post_job_actions[a+b]){var d={};return d.action_type=a,d.output_name=b,c.post_job_actions[a+b]=null,c.post_job_actions[a+b]=d,display_pja(d,c),this.workflow.active_form_has_changes=!0,!0}return!1},showWorkflowParameters:function(){var a=/\$\{.+?\}/g,b=[],c=$("#workflow-parameters-container"),d=$("#workflow-parameters-box"),e="",f=[];$.each(this.workflow.nodes,function(c,d){var e=d.form_html.match(a);e&&(f=f.concat(e)),d.post_job_actions&&($.each(d.post_job_actions,function(b,c){c.action_arguments&&$.each(c.action_arguments,function(b,c){var d=c.match(a);d&&(f=f.concat(d))})}),f&&$.each(f,function(a,c){-1===$.inArray(c,b)&&b.push(c)}))}),b&&0!==b.length?($.each(b,function(a,b){e+="
    "+b.substring(2,b.length-1)+"
    "}),c.html(e),d.show()):(c.html(e),d.hide())},showToolForm:function(b,c){var d="right-content",e=d+"-"+c.id,g=$("#"+d),h=g.find("#"+e);if(h.length>0&&0==h.find(".section-row").length&&h.remove(),0==g.find("#"+e).length){var i=$('
    '),j=null;if("tool"==c.type&&a.isJSON(b)){var k=JSON.parse(b);k.node=c,k.datatypes=this.datatypes,j=new f.View(k)}else{var k={html:b,node:c,workflowView:this};j=new EditorFormView(k)}i.append(j.$el),g.append(i)}$("."+d).hide(),g.find("#"+e).show(),g.show(),g.scrollTop()},isSubType:function(a,b){return a=this.ext_to_type[a],b=this.ext_to_type[b],this.type_to_type[a]&&b in this.type_to_type[a]},prebuildNode:function(a,b,c){var d=this,f=$("
    "),g=new e(this,{element:f});g.type=a,"tool"==a&&(g.tool_id=c);var h=$("
    "+b+"
    ");f.append(h),f.css("left",$(window).scrollLeft()+20),f.css("top",$(window).scrollTop()+20);var i=$("
    "),j="
    loading tool info...
    ";i.append(j),g.form_html=j,f.append(i);var k=$("
    ");k.append($("
    ").addClass("fa-icon-button fa fa-times").click(function(){g.destroy()})),f.appendTo("#canvas-container");var l=$("#canvas-container").position(),m=$("#canvas-container").parent(),n=f.width(),o=f.height();return f.css({left:-l.left+m.width()/2-n/2,top:-l.top+m.height()/2-o/2}),k.prependTo(h),n+=k.width()+10,f.css("width",n),$(f).bind("dragstart",function(){d.workflow.activate_node(g)}).bind("dragend",function(){d.workflow.node_changed(this),d.workflow.fit_canvas_to_nodes(),d.canvas_manager.draw_overview()}).bind("dragclickonly",function(){d.workflow.activate_node(g)}).bind("drag",function(a,b){var c=$(this).offsetParent().offset(),d=b.offsetX-c.left,e=b.offsetY-c.top;$(this).css({left:d,top:e}),$(this).find(".terminal").each(function(){this.terminal.redraw()})}),g}})}); +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","ui/editable-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 NODE_ICONS={tool:"fa-wrench",data_input:"fa-file-o",data_collection_input:"fa-folder-o",pause:"fa-pause"},add_node_icon=function(a,b){var c=NODE_ICONS[b];if(c){var d=$(' ').addClass(c);a.before(d)}},EditorFormView=Backbone.View.extend({initialize:function(b){this.options=a.merge(b,{});var c=$("
    "),d=b.workflowView,e=b.node;if(b.html&&c.html(b.html),this.setElement(c),e&&"no-node"!=e.id){c.find("table:first").after(this._genericStepAttributesTemplate(e));var f=e.type;add_node_icon(c.find(".portlet-title-text"),f);var g=c.find(".portlet-title-text");g.data("last-value",g.text()),g.make_text_editable({on_finish:function(a){var b=g.data("last-value");if(a!=b){var f=d.workflow;f.attemptUpdateNodeLabel(e,a)?(c.find("input[name='label']").val(a),g.data("last-value",a),c.find("form").submit()):(alert("Step label "+a+" already exists, cannot update label."),g.text(b))}}}),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=$("
      ");$.each(b.errors,function(a,b){$("
    • ").text(b).appendTo(d)}),c.append(d)}else c.addClass("donemark");j.workflow.name=b.name,j.workflow.has_changes=!1,j.workflow.stored=!0,j.showWorkflowParameters(),b.errors?window.show_modal("Saving workflow",c,{Ok:hide_modal}):(a&&a(),hide_modal())}})};j.active_ajax_call?$(document).bind("ajaxStop.save_workflow",function(){$(document).unbind("ajaxStop.save_workflow"),c(),$(document).unbind("ajaxStop.save_workflow"),j.active_ajax_call=!1}):c(b)};$("#tool-search-query").click(function(){$(this).focus(),$(this).select()}).keyup(function(){if($(this).css("font-style","normal"),this.value.length<3)h(!1);else if(this.value!=this.lastValue){$(this).addClass("search_active");var a=this.value;this.timer&&clearTimeout(this.timer),$("#search-spinner").show(),this.timer=setTimeout(function(){$.get(j.urls.tool_search,{q:a},function(a){if($("#search-no-results").hide(),$(".toolSectionWrapper").hide(),$(".toolSectionWrapper").find(".toolTitle").hide(),0!=a.length){var b=$.map(a,function(a){return"link-"+a});$(b).each(function(a,b){$("[id='"+b+"']").parent().addClass("search_match"),$("[id='"+b+"']").parent().show().parent().parent().show().parent().show()}),$(".toolPanelLabel").each(function(){for(var a=$(this),b=a.next(),c=!0;0!==b.length&&b.hasClass("toolTitle");){if(b.is(":visible")){c=!1;break}b=b.next()}c&&a.hide()})}else $("#search-no-results").show();$("#search-spinner").hide()},"json")},400)}this.lastValue=this.value}),this.canvas_manager=b.canvas_manager=new d(this,$("#canvas-viewport"),$("#overview")),this.reset(),this.datatypes=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes",async:!1}).responseText),this.datatypes_mapping=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes/mapping",async:!1}).responseText),this.ext_to_type=this.datatypes_mapping.ext_to_class_name,this.type_to_type=this.datatypes_mapping.class_to_classes,$.ajax({url:j.urls.load_workflow,data:{id:j.options.id,_:"true"},dataType:"json",cache:!1,success:function(a){j.reset(),j.workflow.from_simple(a),j.workflow.has_changes=!1,j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview(),upgrade_message="",$.each(a.upgrade_messages,function(a,b){upgrade_message+="
    • Step "+(parseInt(a,10)+1)+": "+j.workflow.nodes[a].name+"
        ",$.each(b,function(a,b){upgrade_message+="
      • "+b+"
      • "}),upgrade_message+="
    • "}),upgrade_message?window.show_modal("Workflow loaded with changes","Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.
        "+upgrade_message+"
      ",{Continue:hide_modal}):hide_modal(),j.showWorkflowParameters()},beforeSubmit:function(){show_message("Loading workflow","progress")}}),$(document).ajaxStart(function(){j.active_ajax_call=!0,$(document).bind("ajaxStop.global",function(){j.active_ajax_call=!1})}),$(document).ajaxError(function(a,b){var c=b.responseText||b.statusText||"Could not connect to server";return window.show_modal("Server error",c,{"Ignore error":hide_modal}),!1}),window.make_popupmenu&&make_popupmenu($("#workflow-options-button"),{Save:l,Run:function(){window.location=j.urls.run_workflow},"Edit Attributes":e,"Auto Re-layout":c,Close:k}),overview_size=$.jStorage.get("overview-size"),void 0!==overview_size&&$("#overview-border").css({width:overview_size,height:overview_size}),$.jStorage.get("overview-off")?i():f(),$("#overview-border").bind("dragend",function(a,b){var c=$(this).offsetParent(),d=c.offset(),e=Math.max(c.width()-(b.offsetX-d.left),c.height()-(b.offsetY-d.top));$.jStorage.set("overview-size",e+"px")}),$("#close-viewport").click(function(){"0px"===$("#overview-border").css("right")?i():f()}),window.onbeforeunload=function(){return workflow&&j.workflow.has_changes?"There are unsaved changes to your workflow which will be lost.":void 0},$("div.toolSectionBody").hide(),$("div.toolSectionTitle > span").wrap("");var m=null;$("div.toolSectionTitle").each(function(){var a=$(this).next("div.toolSectionBody");$(this).click(function(){a.is(":hidden")?(m&&m.slideUp("fast"),m=a,a.slideDown("fast")):(a.slideUp("fast"),m=null)})}),g("workflow-name","workflow-name",j.urls.rename_async,"new_name"),$("#workflow-tag").click(function(){return $(".tag-area").click(),!1}),g("workflow-annotation","workflow-annotation",j.urls.annotate_async,"new_annotation",25,!0,4)},reset:function(){this.workflow&&this.workflow.remove_all(),this.workflow=b.workflow=new c(this,$("#canvas-container"))},scroll_to_nodes:function(){var a,b,c=$("#canvas-viewport"),d=$("#canvas-container");b=d.width().toolForm:last>.toolFormTitle>.buttons").click(function(){action_to_rem=$(this).closest(".toolForm",".action_tag").children(".action_tag:first").text(),$(this).closest(".toolForm").remove(),delete c.workflow.active_node.post_job_actions[action_to_rem],c.workflow.active_form_has_changes=!0})},display_pja_list:function(){return pja_list},display_file_list:function(a){addlist="",addlist},new_pja:function(a,b,c){if(void 0===c.post_job_actions&&(c.post_job_actions={}),void 0===c.post_job_actions[a+b]){var d={};return d.action_type=a,d.output_name=b,c.post_job_actions[a+b]=null,c.post_job_actions[a+b]=d,display_pja(d,c),this.workflow.active_form_has_changes=!0,!0}return!1},showWorkflowParameters:function(){var a=/\$\{.+?\}/g,b=[],c=$("#workflow-parameters-container"),d=$("#workflow-parameters-box"),e="",f=[];$.each(this.workflow.nodes,function(c,d){var e=d.form_html.match(a);e&&(f=f.concat(e)),d.post_job_actions&&($.each(d.post_job_actions,function(b,c){c.action_arguments&&$.each(c.action_arguments,function(b,c){var d=c.match(a);d&&(f=f.concat(d))})}),f&&$.each(f,function(a,c){-1===$.inArray(c,b)&&b.push(c)}))}),b&&0!==b.length?($.each(b,function(a,b){e+="
      "+b.substring(2,b.length-1)+"
      "}),c.html(e),d.show()):(c.html(e),d.hide())},showToolForm:function(b,c){var d="right-content",e=d+"-"+c.id,g=$("#"+d),h=g.find("#"+e);if(h.length>0&&0==h.find(".section-row").length&&h.remove(),0==g.find("#"+e).length){var i=$('
      '),j=null;if("tool"==c.type&&a.isJSON(b)){var k=JSON.parse(b);k.node=c,k.datatypes=this.datatypes,j=new f.View(k)}else{var k={html:b,node:c,workflowView:this};j=new EditorFormView(k)}i.append(j.$el),g.append(i)}$("."+d).hide(),g.find("#"+e).show(),g.show(),g.scrollTop()},isSubType:function(a,b){return a=this.ext_to_type[a],b=this.ext_to_type[b],this.type_to_type[a]&&b in this.type_to_type[a]},$newNodeElement:function(a,b){var c=$("
      "),d=$("
      "+b+"
      ");add_node_icon(d.find(".nodeTitle"),a),c.append(d),c.css("left",$(window).scrollLeft()+20),c.css("top",$(window).scrollTop()+20);var e=$("
      ");return c.append(e),c},prebuildNode:function(a,b,c){var d=this,f=this.$newNodeElement(a,b),g=new e(this,{element:f});g.type=a,g.content_id=c;var h="
      loading tool info...
      ";f.find(".toolFormBody").append(h),g.form_html=h;var i=$("
      ");i.append($("
      ").addClass("fa-icon-button fa fa-times").click(function(){g.destroy()})),f.appendTo("#canvas-container");var j=$("#canvas-container").position(),k=$("#canvas-container").parent(),l=f.width(),m=f.height();return f.css({left:-j.left+k.width()/2-l/2,top:-j.top+k.height()/2-m/2}),i.prependTo(f.find(".toolFormTitle")),l+=i.width()+10,f.css("width",l),f.bind("dragstart",function(){d.workflow.activate_node(g)}).bind("dragend",function(){d.workflow.node_changed(this),d.workflow.fit_canvas_to_nodes(),d.canvas_manager.draw_overview()}).bind("dragclickonly",function(){d.workflow.activate_node(g)}).bind("drag",function(a,b){var c=$(this).offsetParent().offset(),d=b.offsetX-c.left,e=b.offsetY-c.top;$(this).css({left:d,top:e}),$(this).find(".terminal").each(function(){this.terminal.redraw()})}),g}})}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-view.js.map \ No newline at end of file diff --git a/templates/webapps/galaxy/workflow/editor_generic_form.mako b/templates/webapps/galaxy/workflow/editor_generic_form.mako index f12073948b8..7c9add037b9 100644 --- a/templates/webapps/galaxy/workflow/editor_generic_form.mako +++ b/templates/webapps/galaxy/workflow/editor_generic_form.mako @@ -1,8 +1,15 @@
      + <% + label = module.label + if label is not None: + title = label + else: + title = form.title + %>
      - ${form.title} + ${title}
      @@ -10,6 +17,7 @@
      + diff --git a/test/qunit/tests/workflow_editor_tests.js b/test/qunit/tests/workflow_editor_tests.js index 28954ee6029..46d9bdd671d 100644 --- a/test/qunit/tests/workflow_editor_tests.js +++ b/test/qunit/tests/workflow_editor_tests.js @@ -2,6 +2,7 @@ define([ "sinon-qunit", "test-app", + 'utils/utils', "mvc/workflow/workflow-view", "mvc/workflow/workflow-node", "mvc/workflow/workflow-view-node", @@ -11,6 +12,7 @@ define([ ], function( sinon, testApp, + Utils, App, Node, NodeView, @@ -296,8 +298,8 @@ define([ setup: function() { this.input_terminal = { destroy: sinon.spy(), redraw: sinon.spy() }; this.output_terminal = { destroy: sinon.spy(), redraw: sinon.spy() }; - this.element = $("
      "); this.app = create_app(); + this.element = this.app.$newNodeElement( "tool", "newnode" ); this.node = new Node( this.app, { element: this.element } ); this.node.input_terminals.i1 = this.input_terminal; this.node.output_terminals.o1 = this.output_terminal; @@ -311,22 +313,24 @@ define([ f(); ok( node_changed_spy.calledWith( node ) ); }, - init_field_data_simple: function() { - var data = { + init_field_data_simple: function(option_overrides) { + var data = Utils.merge(option_overrides, { data_inputs: [ {name: "input1", extensions: [ "data" ] } ], data_outputs: [ {name: "output1", extensions: [ "data" ] } ], - }; + label: null, + }); this.node.init_field_data( data ); }, - update_field_data_with_new_input: function() { - var new_data = { + update_field_data_with_new_input: function(option_overrides) { + var new_data = Utils.merge(option_overrides, { data_inputs: [ { name: "input1", extensions: [ "data" ] }, { name: "extra_0|input1", extensions: [ "data" ] }, ], data_outputs: [ {name: "output1", extensions: [ "data" ] } ], - post_job_actions: "{}" - }; + post_job_actions: "{}", + label: "New Label" + }); this.node.update_field_data( new_data ); } } ); @@ -368,6 +372,7 @@ define([ tooltip: "tool tooltip", annotation: "tool annotation", workflow_outputs: [ {"output_name": "out1"} ], + label: "Cat that data.", }; node.init_field_data( data ); equal( node.type, "tool" ); @@ -376,6 +381,7 @@ define([ equal( node.tool_state, "ok" ); equal( node.tooltip, "tool tooltip" ); equal( node.annotation, "tool annotation" ); + equal( node.label, "Cat that data." ); deepEqual( node.post_job_actions, {} ); deepEqual( node.workflow_outputs, [ {"output_name": "out1"} ] ); } ); @@ -394,9 +400,26 @@ define([ equal( test.$( ".input-terminal" ).length, 1 ); equal( test.$( ".rule" ).length, 1 ); equal( test.$( ".toolFormBody" ).children().length, 3 ); + equal( test.$( ".nodeTitle" ).text(), "newnode" ); + ok( test.$( ".toolFormTitle" ).find("i").hasClass("fa-wrench") ); } ); } ); + test( "node title behavior", function() { + var test = this; + this.expect_workflow_node_changed( function( ) { + // Node created with name newnode + equal( test.$( ".nodeTitle" ).text(), "newnode" ); + // init_field_data_simple doesn't change label, so it should + // remain original name. + test.init_field_data_simple(); + equal( test.$( ".nodeTitle" ).text(), "newnode" ); + // Despite awkward name, update does change the label... + test.update_field_data_with_new_input(); + equal( test.$( ".nodeTitle" ).text(), "New Label" ); + }); + }); + test( "update_field_data updated data inputs and outputs", function() { var test = this; this.expect_workflow_node_changed( function( ) { From ef0b6cc459a40227db2e63ee709e9dd5d8fd37c6 Mon Sep 17 00:00:00 2001 From: Martin Cech Date: Mon, 7 Dec 2015 15:07:14 -0500 Subject: [PATCH 11/12] show notifications as Toasts and not like JS alerts (bleh) --- .../galaxy/scripts/mvc/workflow/workflow-manager.js | 12 ++++++++---- client/galaxy/scripts/mvc/workflow/workflow-view.js | 7 ++++--- static/maps/mvc/workflow/workflow-manager.js.map | 2 +- static/maps/mvc/workflow/workflow-view.js.map | 2 +- static/scripts/mvc/workflow/workflow-manager.js | 2 +- static/scripts/mvc/workflow/workflow-view.js | 2 +- 6 files changed, 16 insertions(+), 11 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-manager.js b/client/galaxy/scripts/mvc/workflow/workflow-manager.js index 7fea600a132..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; @@ -8,6 +12,7 @@ define(['mvc/workflow/workflow-connector'], function( Connector ) { this.has_changes = false; this.active_form_has_changes = false; this.nodeLabels = {}; // TODO: track and enforce output labels also + } $.extend( Workflow.prototype, { canLabelNodeWith: function( label ) { @@ -33,8 +38,7 @@ define(['mvc/workflow/workflow-connector'], function( Connector ) { this.unregisterNodeLabel( fromLabel ); } if( ! this.canLabelNodeWith( toLabel ) ) { - // TODO: Improve display of this error. - alert("Workflow contains duplicate node labels " + toLabel + ". This must be fixed before it can be saved."); + Toastr.warning("Workflow contains duplicate node labels " + toLabel + ". This must be fixed before it can be saved."); } if( toLabel ) { this.registerNodeLabel( toLabel ); @@ -422,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-view.js b/client/galaxy/scripts/mvc/workflow/workflow-view.js index f694825ce78..d2cb0035ceb 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -7,8 +7,9 @@ define([ 'mvc/workflow/workflow-node', 'mvc/tool/tools-form-workflow', 'utils/async-save-text', - 'ui/editable-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 ) { @@ -95,7 +96,7 @@ EditorFormView = Backbone.View.extend({ $titleText.data("last-value", newLabel); $el.find('form').submit(); } else { - alert("Step label " + newLabel + " already exists, cannot update label."); + Toastr.warning("Step label " + newLabel + " already exists, cannot update label."); $titleText.text(lastValue); } } diff --git a/static/maps/mvc/workflow/workflow-manager.js.map b/static/maps/mvc/workflow/workflow-manager.js.map index 047ff3aaf0a..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","nodeLabels","$","extend","prototype","canLabelNodeWith","label","registerNodeLabel","unregisterNodeLabel","updateNodeLabel","fromLabel","toLabel","alert","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 +{"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-view.js.map b/static/maps/mvc/workflow/workflow-view.js.map index fd3ed8a7d9b..607e9d3c2b9 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","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","alert","ajaxForm","dataType","success","active_form_has_changes","update_field_data","showWorkflowParameters","beforeSubmit","push","name","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 +{"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","warning","ajaxForm","dataType","success","active_form_has_changes","update_field_data","showWorkflowParameters","beforeSubmit","push","name","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 f6bc230e567..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,this.nodeLabels={}}return $.extend(b.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,b){a&&this.unregisterNodeLabel(a),this.canLabelNodeWith(b)||alert("Workflow contains duplicate node labels "+b+". This must be fixed before it can be saved."),b&&this.registerNodeLabel(b)},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)})}}),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-view.js b/static/scripts/mvc/workflow/workflow-view.js index 1a17fa9ffc4..7733fb65178 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","ui/editable-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 NODE_ICONS={tool:"fa-wrench",data_input:"fa-file-o",data_collection_input:"fa-folder-o",pause:"fa-pause"},add_node_icon=function(a,b){var c=NODE_ICONS[b];if(c){var d=$(' ').addClass(c);a.before(d)}},EditorFormView=Backbone.View.extend({initialize:function(b){this.options=a.merge(b,{});var c=$("
      "),d=b.workflowView,e=b.node;if(b.html&&c.html(b.html),this.setElement(c),e&&"no-node"!=e.id){c.find("table:first").after(this._genericStepAttributesTemplate(e));var f=e.type;add_node_icon(c.find(".portlet-title-text"),f);var g=c.find(".portlet-title-text");g.data("last-value",g.text()),g.make_text_editable({on_finish:function(a){var b=g.data("last-value");if(a!=b){var f=d.workflow;f.attemptUpdateNodeLabel(e,a)?(c.find("input[name='label']").val(a),g.data("last-value",a),c.find("form").submit()):(alert("Step label "+a+" already exists, cannot update label."),g.text(b))}}}),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=$("
        ");$.each(b.errors,function(a,b){$("
      • ").text(b).appendTo(d)}),c.append(d)}else c.addClass("donemark");j.workflow.name=b.name,j.workflow.has_changes=!1,j.workflow.stored=!0,j.showWorkflowParameters(),b.errors?window.show_modal("Saving workflow",c,{Ok:hide_modal}):(a&&a(),hide_modal())}})};j.active_ajax_call?$(document).bind("ajaxStop.save_workflow",function(){$(document).unbind("ajaxStop.save_workflow"),c(),$(document).unbind("ajaxStop.save_workflow"),j.active_ajax_call=!1}):c(b)};$("#tool-search-query").click(function(){$(this).focus(),$(this).select()}).keyup(function(){if($(this).css("font-style","normal"),this.value.length<3)h(!1);else if(this.value!=this.lastValue){$(this).addClass("search_active");var a=this.value;this.timer&&clearTimeout(this.timer),$("#search-spinner").show(),this.timer=setTimeout(function(){$.get(j.urls.tool_search,{q:a},function(a){if($("#search-no-results").hide(),$(".toolSectionWrapper").hide(),$(".toolSectionWrapper").find(".toolTitle").hide(),0!=a.length){var b=$.map(a,function(a){return"link-"+a});$(b).each(function(a,b){$("[id='"+b+"']").parent().addClass("search_match"),$("[id='"+b+"']").parent().show().parent().parent().show().parent().show()}),$(".toolPanelLabel").each(function(){for(var a=$(this),b=a.next(),c=!0;0!==b.length&&b.hasClass("toolTitle");){if(b.is(":visible")){c=!1;break}b=b.next()}c&&a.hide()})}else $("#search-no-results").show();$("#search-spinner").hide()},"json")},400)}this.lastValue=this.value}),this.canvas_manager=b.canvas_manager=new d(this,$("#canvas-viewport"),$("#overview")),this.reset(),this.datatypes=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes",async:!1}).responseText),this.datatypes_mapping=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes/mapping",async:!1}).responseText),this.ext_to_type=this.datatypes_mapping.ext_to_class_name,this.type_to_type=this.datatypes_mapping.class_to_classes,$.ajax({url:j.urls.load_workflow,data:{id:j.options.id,_:"true"},dataType:"json",cache:!1,success:function(a){j.reset(),j.workflow.from_simple(a),j.workflow.has_changes=!1,j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview(),upgrade_message="",$.each(a.upgrade_messages,function(a,b){upgrade_message+="
      • Step "+(parseInt(a,10)+1)+": "+j.workflow.nodes[a].name+"
          ",$.each(b,function(a,b){upgrade_message+="
        • "+b+"
        • "}),upgrade_message+="
      • "}),upgrade_message?window.show_modal("Workflow loaded with changes","Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.
          "+upgrade_message+"
        ",{Continue:hide_modal}):hide_modal(),j.showWorkflowParameters()},beforeSubmit:function(){show_message("Loading workflow","progress")}}),$(document).ajaxStart(function(){j.active_ajax_call=!0,$(document).bind("ajaxStop.global",function(){j.active_ajax_call=!1})}),$(document).ajaxError(function(a,b){var c=b.responseText||b.statusText||"Could not connect to server";return window.show_modal("Server error",c,{"Ignore error":hide_modal}),!1}),window.make_popupmenu&&make_popupmenu($("#workflow-options-button"),{Save:l,Run:function(){window.location=j.urls.run_workflow},"Edit Attributes":e,"Auto Re-layout":c,Close:k}),overview_size=$.jStorage.get("overview-size"),void 0!==overview_size&&$("#overview-border").css({width:overview_size,height:overview_size}),$.jStorage.get("overview-off")?i():f(),$("#overview-border").bind("dragend",function(a,b){var c=$(this).offsetParent(),d=c.offset(),e=Math.max(c.width()-(b.offsetX-d.left),c.height()-(b.offsetY-d.top));$.jStorage.set("overview-size",e+"px")}),$("#close-viewport").click(function(){"0px"===$("#overview-border").css("right")?i():f()}),window.onbeforeunload=function(){return workflow&&j.workflow.has_changes?"There are unsaved changes to your workflow which will be lost.":void 0},$("div.toolSectionBody").hide(),$("div.toolSectionTitle > span").wrap("");var m=null;$("div.toolSectionTitle").each(function(){var a=$(this).next("div.toolSectionBody");$(this).click(function(){a.is(":hidden")?(m&&m.slideUp("fast"),m=a,a.slideDown("fast")):(a.slideUp("fast"),m=null)})}),g("workflow-name","workflow-name",j.urls.rename_async,"new_name"),$("#workflow-tag").click(function(){return $(".tag-area").click(),!1}),g("workflow-annotation","workflow-annotation",j.urls.annotate_async,"new_annotation",25,!0,4)},reset:function(){this.workflow&&this.workflow.remove_all(),this.workflow=b.workflow=new c(this,$("#canvas-container"))},scroll_to_nodes:function(){var a,b,c=$("#canvas-viewport"),d=$("#canvas-container");b=d.width().toolForm:last>.toolFormTitle>.buttons").click(function(){action_to_rem=$(this).closest(".toolForm",".action_tag").children(".action_tag:first").text(),$(this).closest(".toolForm").remove(),delete c.workflow.active_node.post_job_actions[action_to_rem],c.workflow.active_form_has_changes=!0})},display_pja_list:function(){return pja_list},display_file_list:function(a){addlist="",addlist},new_pja:function(a,b,c){if(void 0===c.post_job_actions&&(c.post_job_actions={}),void 0===c.post_job_actions[a+b]){var d={};return d.action_type=a,d.output_name=b,c.post_job_actions[a+b]=null,c.post_job_actions[a+b]=d,display_pja(d,c),this.workflow.active_form_has_changes=!0,!0}return!1},showWorkflowParameters:function(){var a=/\$\{.+?\}/g,b=[],c=$("#workflow-parameters-container"),d=$("#workflow-parameters-box"),e="",f=[];$.each(this.workflow.nodes,function(c,d){var e=d.form_html.match(a);e&&(f=f.concat(e)),d.post_job_actions&&($.each(d.post_job_actions,function(b,c){c.action_arguments&&$.each(c.action_arguments,function(b,c){var d=c.match(a);d&&(f=f.concat(d))})}),f&&$.each(f,function(a,c){-1===$.inArray(c,b)&&b.push(c)}))}),b&&0!==b.length?($.each(b,function(a,b){e+="
        "+b.substring(2,b.length-1)+"
        "}),c.html(e),d.show()):(c.html(e),d.hide())},showToolForm:function(b,c){var d="right-content",e=d+"-"+c.id,g=$("#"+d),h=g.find("#"+e);if(h.length>0&&0==h.find(".section-row").length&&h.remove(),0==g.find("#"+e).length){var i=$('
        '),j=null;if("tool"==c.type&&a.isJSON(b)){var k=JSON.parse(b);k.node=c,k.datatypes=this.datatypes,j=new f.View(k)}else{var k={html:b,node:c,workflowView:this};j=new EditorFormView(k)}i.append(j.$el),g.append(i)}$("."+d).hide(),g.find("#"+e).show(),g.show(),g.scrollTop()},isSubType:function(a,b){return a=this.ext_to_type[a],b=this.ext_to_type[b],this.type_to_type[a]&&b in this.type_to_type[a]},$newNodeElement:function(a,b){var c=$("
        "),d=$("
        "+b+"
        ");add_node_icon(d.find(".nodeTitle"),a),c.append(d),c.css("left",$(window).scrollLeft()+20),c.css("top",$(window).scrollTop()+20);var e=$("
        ");return c.append(e),c},prebuildNode:function(a,b,c){var d=this,f=this.$newNodeElement(a,b),g=new e(this,{element:f});g.type=a,g.content_id=c;var h="
        loading tool info...
        ";f.find(".toolFormBody").append(h),g.form_html=h;var i=$("
        ");i.append($("
        ").addClass("fa-icon-button fa fa-times").click(function(){g.destroy()})),f.appendTo("#canvas-container");var j=$("#canvas-container").position(),k=$("#canvas-container").parent(),l=f.width(),m=f.height();return f.css({left:-j.left+k.width()/2-l/2,top:-j.top+k.height()/2-m/2}),i.prependTo(f.find(".toolFormTitle")),l+=i.width()+10,f.css("width",l),f.bind("dragstart",function(){d.workflow.activate_node(g)}).bind("dragend",function(){d.workflow.node_changed(this),d.workflow.fit_canvas_to_nodes(),d.canvas_manager.draw_overview()}).bind("dragclickonly",function(){d.workflow.activate_node(g)}).bind("drag",function(a,b){var c=$(this).offsetParent().offset(),d=b.offsetX-c.left,e=b.offsetY-c.top;$(this).css({left:d,top:e}),$(this).find(".terminal").each(function(){this.terminal.redraw()})}),g}})}); +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","libs/toastr","ui/editable-text"],function(a,b,c,d,e,f,g,h){function i(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 NODE_ICONS={tool:"fa-wrench",data_input:"fa-file-o",data_collection_input:"fa-folder-o",pause:"fa-pause"},add_node_icon=function(a,b){var c=NODE_ICONS[b];if(c){var d=$(' ').addClass(c);a.before(d)}},EditorFormView=Backbone.View.extend({initialize:function(b){this.options=a.merge(b,{});var c=$("
        "),d=b.workflowView,e=b.node;if(b.html&&c.html(b.html),this.setElement(c),e&&"no-node"!=e.id){c.find("table:first").after(this._genericStepAttributesTemplate(e));var f=e.type;add_node_icon(c.find(".portlet-title-text"),f);var g=c.find(".portlet-title-text");g.data("last-value",g.text()),g.make_text_editable({on_finish:function(a){var b=g.data("last-value");if(a!=b){var f=d.workflow;f.attemptUpdateNodeLabel(e,a)?(c.find("input[name='label']").val(a),g.data("last-value",a),c.find("form").submit()):(h.warning("Step label "+a+" already exists, cannot update label."),g.text(b))}}}),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 h(){$.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=$("
          ");$.each(b.errors,function(a,b){$("
        • ").text(b).appendTo(d)}),c.append(d)}else c.addClass("donemark");j.workflow.name=b.name,j.workflow.has_changes=!1,j.workflow.stored=!0,j.showWorkflowParameters(),b.errors?window.show_modal("Saving workflow",c,{Ok:hide_modal}):(a&&a(),hide_modal())}})};j.active_ajax_call?$(document).bind("ajaxStop.save_workflow",function(){$(document).unbind("ajaxStop.save_workflow"),c(),$(document).unbind("ajaxStop.save_workflow"),j.active_ajax_call=!1}):c(b)};$("#tool-search-query").click(function(){$(this).focus(),$(this).select()}).keyup(function(){if($(this).css("font-style","normal"),this.value.length<3)i(!1);else if(this.value!=this.lastValue){$(this).addClass("search_active");var a=this.value;this.timer&&clearTimeout(this.timer),$("#search-spinner").show(),this.timer=setTimeout(function(){$.get(j.urls.tool_search,{q:a},function(a){if($("#search-no-results").hide(),$(".toolSectionWrapper").hide(),$(".toolSectionWrapper").find(".toolTitle").hide(),0!=a.length){var b=$.map(a,function(a){return"link-"+a});$(b).each(function(a,b){$("[id='"+b+"']").parent().addClass("search_match"),$("[id='"+b+"']").parent().show().parent().parent().show().parent().show()}),$(".toolPanelLabel").each(function(){for(var a=$(this),b=a.next(),c=!0;0!==b.length&&b.hasClass("toolTitle");){if(b.is(":visible")){c=!1;break}b=b.next()}c&&a.hide()})}else $("#search-no-results").show();$("#search-spinner").hide()},"json")},400)}this.lastValue=this.value}),this.canvas_manager=b.canvas_manager=new d(this,$("#canvas-viewport"),$("#overview")),this.reset(),this.datatypes=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes",async:!1}).responseText),this.datatypes_mapping=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes/mapping",async:!1}).responseText),this.ext_to_type=this.datatypes_mapping.ext_to_class_name,this.type_to_type=this.datatypes_mapping.class_to_classes,$.ajax({url:j.urls.load_workflow,data:{id:j.options.id,_:"true"},dataType:"json",cache:!1,success:function(a){j.reset(),j.workflow.from_simple(a),j.workflow.has_changes=!1,j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview(),upgrade_message="",$.each(a.upgrade_messages,function(a,b){upgrade_message+="
        • Step "+(parseInt(a,10)+1)+": "+j.workflow.nodes[a].name+"
            ",$.each(b,function(a,b){upgrade_message+="
          • "+b+"
          • "}),upgrade_message+="
        • "}),upgrade_message?window.show_modal("Workflow loaded with changes","Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.
            "+upgrade_message+"
          ",{Continue:hide_modal}):hide_modal(),j.showWorkflowParameters()},beforeSubmit:function(){show_message("Loading workflow","progress")}}),$(document).ajaxStart(function(){j.active_ajax_call=!0,$(document).bind("ajaxStop.global",function(){j.active_ajax_call=!1})}),$(document).ajaxError(function(a,b){var c=b.responseText||b.statusText||"Could not connect to server";return window.show_modal("Server error",c,{"Ignore error":hide_modal}),!1}),window.make_popupmenu&&make_popupmenu($("#workflow-options-button"),{Save:l,Run:function(){window.location=j.urls.run_workflow},"Edit Attributes":e,"Auto Re-layout":c,Close:k}),overview_size=$.jStorage.get("overview-size"),void 0!==overview_size&&$("#overview-border").css({width:overview_size,height:overview_size}),$.jStorage.get("overview-off")?h():f(),$("#overview-border").bind("dragend",function(a,b){var c=$(this).offsetParent(),d=c.offset(),e=Math.max(c.width()-(b.offsetX-d.left),c.height()-(b.offsetY-d.top));$.jStorage.set("overview-size",e+"px")}),$("#close-viewport").click(function(){"0px"===$("#overview-border").css("right")?h():f()}),window.onbeforeunload=function(){return workflow&&j.workflow.has_changes?"There are unsaved changes to your workflow which will be lost.":void 0},$("div.toolSectionBody").hide(),$("div.toolSectionTitle > span").wrap("");var m=null;$("div.toolSectionTitle").each(function(){var a=$(this).next("div.toolSectionBody");$(this).click(function(){a.is(":hidden")?(m&&m.slideUp("fast"),m=a,a.slideDown("fast")):(a.slideUp("fast"),m=null)})}),g("workflow-name","workflow-name",j.urls.rename_async,"new_name"),$("#workflow-tag").click(function(){return $(".tag-area").click(),!1}),g("workflow-annotation","workflow-annotation",j.urls.annotate_async,"new_annotation",25,!0,4)},reset:function(){this.workflow&&this.workflow.remove_all(),this.workflow=b.workflow=new c(this,$("#canvas-container"))},scroll_to_nodes:function(){var a,b,c=$("#canvas-viewport"),d=$("#canvas-container");b=d.width().toolForm:last>.toolFormTitle>.buttons").click(function(){action_to_rem=$(this).closest(".toolForm",".action_tag").children(".action_tag:first").text(),$(this).closest(".toolForm").remove(),delete c.workflow.active_node.post_job_actions[action_to_rem],c.workflow.active_form_has_changes=!0})},display_pja_list:function(){return pja_list},display_file_list:function(a){addlist="",addlist},new_pja:function(a,b,c){if(void 0===c.post_job_actions&&(c.post_job_actions={}),void 0===c.post_job_actions[a+b]){var d={};return d.action_type=a,d.output_name=b,c.post_job_actions[a+b]=null,c.post_job_actions[a+b]=d,display_pja(d,c),this.workflow.active_form_has_changes=!0,!0}return!1},showWorkflowParameters:function(){var a=/\$\{.+?\}/g,b=[],c=$("#workflow-parameters-container"),d=$("#workflow-parameters-box"),e="",f=[];$.each(this.workflow.nodes,function(c,d){var e=d.form_html.match(a);e&&(f=f.concat(e)),d.post_job_actions&&($.each(d.post_job_actions,function(b,c){c.action_arguments&&$.each(c.action_arguments,function(b,c){var d=c.match(a);d&&(f=f.concat(d))})}),f&&$.each(f,function(a,c){-1===$.inArray(c,b)&&b.push(c)}))}),b&&0!==b.length?($.each(b,function(a,b){e+="
          "+b.substring(2,b.length-1)+"
          "}),c.html(e),d.show()):(c.html(e),d.hide())},showToolForm:function(b,c){var d="right-content",e=d+"-"+c.id,g=$("#"+d),h=g.find("#"+e);if(h.length>0&&0==h.find(".section-row").length&&h.remove(),0==g.find("#"+e).length){var i=$('
          '),j=null;if("tool"==c.type&&a.isJSON(b)){var k=JSON.parse(b);k.node=c,k.datatypes=this.datatypes,j=new f.View(k)}else{var k={html:b,node:c,workflowView:this};j=new EditorFormView(k)}i.append(j.$el),g.append(i)}$("."+d).hide(),g.find("#"+e).show(),g.show(),g.scrollTop()},isSubType:function(a,b){return a=this.ext_to_type[a],b=this.ext_to_type[b],this.type_to_type[a]&&b in this.type_to_type[a]},$newNodeElement:function(a,b){var c=$("
          "),d=$("
          "+b+"
          ");add_node_icon(d.find(".nodeTitle"),a),c.append(d),c.css("left",$(window).scrollLeft()+20),c.css("top",$(window).scrollTop()+20);var e=$("
          ");return c.append(e),c},prebuildNode:function(a,b,c){var d=this,f=this.$newNodeElement(a,b),g=new e(this,{element:f});g.type=a,g.content_id=c;var h="
          loading tool info...
          ";f.find(".toolFormBody").append(h),g.form_html=h;var i=$("
          ");i.append($("
          ").addClass("fa-icon-button fa fa-times").click(function(){g.destroy()})),f.appendTo("#canvas-container");var j=$("#canvas-container").position(),k=$("#canvas-container").parent(),l=f.width(),m=f.height();return f.css({left:-j.left+k.width()/2-l/2,top:-j.top+k.height()/2-m/2}),i.prependTo(f.find(".toolFormTitle")),l+=i.width()+10,f.css("width",l),f.bind("dragstart",function(){d.workflow.activate_node(g)}).bind("dragend",function(){d.workflow.node_changed(this),d.workflow.fit_canvas_to_nodes(),d.canvas_manager.draw_overview()}).bind("dragclickonly",function(){d.workflow.activate_node(g)}).bind("drag",function(a,b){var c=$(this).offsetParent().offset(),d=b.offsetX-c.left,e=b.offsetY-c.top;$(this).css({left:d,top:e}),$(this).find(".terminal").each(function(){this.terminal.redraw()})}),g}})}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-view.js.map \ No newline at end of file From 3f8950628c3e31d9e2abe0b4f4a360c035133b8e Mon Sep 17 00:00:00 2001 From: John Chilton Date: Tue, 8 Dec 2015 09:18:23 +0000 Subject: [PATCH 12/12] Workflow label UI refinement. - Escape workflow labels in mako. - Handle unlabelling steps properly (restore original node name to node and editor form titles). --- client/galaxy/scripts/mvc/workflow/workflow-view-node.js | 6 +++++- client/galaxy/scripts/mvc/workflow/workflow-view.js | 4 ++++ static/maps/mvc/workflow/workflow-view-node.js.map | 2 +- static/maps/mvc/workflow/workflow-view.js.map | 2 +- static/scripts/mvc/workflow/workflow-view-node.js | 2 +- static/scripts/mvc/workflow/workflow-view.js | 2 +- templates/webapps/galaxy/workflow/editor_generic_form.mako | 3 ++- 7 files changed, 15 insertions(+), 6 deletions(-) diff --git a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js index 9fb01bb4980..f08308d6bf7 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view-node.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view-node.js @@ -12,9 +12,13 @@ define(['mvc/workflow/workflow-view-terminals', 'mvc/workflow/workflow-view-data render: function() { var label = this.node.label; + var title; if(label) { - this.$el.find(".nodeTitle").text(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 d2cb0035ceb..6fa56e40d67 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-view.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-view.js @@ -95,6 +95,10 @@ EditorFormView = Backbone.View.extend({ $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); diff --git a/static/maps/mvc/workflow/workflow-view-node.js.map b/static/maps/mvc/workflow/workflow-view-node.js.map index 3563b9c8659..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","label","text","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,WACJ,GAAIC,GAAQf,KAAKC,KAAKc,KACnBA,IACCf,KAAKK,IAAIG,KAAK,cAAcQ,KAAKD,GAErCf,KAAKiB,mBACLjB,KAAKK,IAAIa,IAAK,QAASf,KAAKgB,IAAI,IAAKhB,KAAKC,IAAKJ,KAAKK,IAAIC,QAASN,KAAKE,iBAG1Ee,iBAAkB,WACTjB,KAAKC,KAAKmB,YACXpB,KAAKK,IAAIgB,SAAU,mBAEnBrB,KAAKK,IAAIiB,YAAa,oBAI9BZ,aAAc,WACV,MAAOa,GAAE,+BAGbC,eAAgB,SAAUC,GACtBzB,KAAKE,aAAeC,KAAKC,IAAKJ,KAAKE,aAAcuB,IAGrDC,QAAS,WACL1B,KAAKO,UAAUoB,OAAQJ,EAAG,8BAG9BK,aAAc,SAAUC,EAAOC,GAC3B,GAAIC,IAAa,CACXD,KACFA,EAAO9B,KAAKuB,EAAG,WAGfQ,GAAa,EAEjB,IAAIC,GAAehC,KAAKY,cAAeiB,EAAMI,MACzCC,EAA0C,sBAApBL,EAAMM,WAAuC1C,EAAc2C,4BAA8B3C,EAAc4C,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,IACfjC,KAAMD,KAAKC,KACX4B,MAAOA,GAOf7B,MAAKY,cAAeiB,EAAMI,MAASD,CACnC,IAAIW,GAAkBX,EAAaM,GAC/BM,EAAY,GAAIlD,GAAUmD,eAC1BF,gBAAiBA,EACjBd,MAAOA,EACPiB,SAAU9C,KACV+B,WAAYA,IAEZgB,EAAKH,EAAUvC,GAEnB,OADAyB,GAAKH,OAAQoB,EAAGC,QAAShB,EAAaiB,qBAC/BjB,GAGXkB,cAAe,SAAUC,GACrB,GAAIjB,GAAsBiB,EAAkB,WAAI1D,EAAc2D,6BAA+B3D,EAAc4D,mBACvGrB,EAAe,GAAIE,IACnBjC,KAAMD,KAAKC,KACXkD,OAAQA,IAERG,EAAa,GAAI5D,GAAU6D,gBAC3BJ,OAAUA,EACVR,gBAAmBX,EAAaM,GAChCQ,SAAY9C,MAEhBA,MAAKO,UAAUoB,OAAQ2B,EAAWjD,IAAIsB,OAAQK,EAAaiB,sBAG/DO,iBAAkB,SAAUL,GACxB,GAAIM,GAAiBzD,KAAKC,KAAKyD,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 607e9d3c2b9..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","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","warning","ajaxForm","dataType","success","active_form_has_changes","update_field_data","showWorkflowParameters","beforeSubmit","push","name","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 +{"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-view-node.js b/static/scripts/mvc/workflow/workflow-view-node.js index 95c4063adb2..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(){var a=this.node.label;a&&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)}})}); +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 7733fb65178..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","libs/toastr","ui/editable-text"],function(a,b,c,d,e,f,g,h){function i(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 NODE_ICONS={tool:"fa-wrench",data_input:"fa-file-o",data_collection_input:"fa-folder-o",pause:"fa-pause"},add_node_icon=function(a,b){var c=NODE_ICONS[b];if(c){var d=$(' ').addClass(c);a.before(d)}},EditorFormView=Backbone.View.extend({initialize:function(b){this.options=a.merge(b,{});var c=$("
          "),d=b.workflowView,e=b.node;if(b.html&&c.html(b.html),this.setElement(c),e&&"no-node"!=e.id){c.find("table:first").after(this._genericStepAttributesTemplate(e));var f=e.type;add_node_icon(c.find(".portlet-title-text"),f);var g=c.find(".portlet-title-text");g.data("last-value",g.text()),g.make_text_editable({on_finish:function(a){var b=g.data("last-value");if(a!=b){var f=d.workflow;f.attemptUpdateNodeLabel(e,a)?(c.find("input[name='label']").val(a),g.data("last-value",a),c.find("form").submit()):(h.warning("Step label "+a+" already exists, cannot update label."),g.text(b))}}}),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 h(){$.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=$("
            ");$.each(b.errors,function(a,b){$("
          • ").text(b).appendTo(d)}),c.append(d)}else c.addClass("donemark");j.workflow.name=b.name,j.workflow.has_changes=!1,j.workflow.stored=!0,j.showWorkflowParameters(),b.errors?window.show_modal("Saving workflow",c,{Ok:hide_modal}):(a&&a(),hide_modal())}})};j.active_ajax_call?$(document).bind("ajaxStop.save_workflow",function(){$(document).unbind("ajaxStop.save_workflow"),c(),$(document).unbind("ajaxStop.save_workflow"),j.active_ajax_call=!1}):c(b)};$("#tool-search-query").click(function(){$(this).focus(),$(this).select()}).keyup(function(){if($(this).css("font-style","normal"),this.value.length<3)i(!1);else if(this.value!=this.lastValue){$(this).addClass("search_active");var a=this.value;this.timer&&clearTimeout(this.timer),$("#search-spinner").show(),this.timer=setTimeout(function(){$.get(j.urls.tool_search,{q:a},function(a){if($("#search-no-results").hide(),$(".toolSectionWrapper").hide(),$(".toolSectionWrapper").find(".toolTitle").hide(),0!=a.length){var b=$.map(a,function(a){return"link-"+a});$(b).each(function(a,b){$("[id='"+b+"']").parent().addClass("search_match"),$("[id='"+b+"']").parent().show().parent().parent().show().parent().show()}),$(".toolPanelLabel").each(function(){for(var a=$(this),b=a.next(),c=!0;0!==b.length&&b.hasClass("toolTitle");){if(b.is(":visible")){c=!1;break}b=b.next()}c&&a.hide()})}else $("#search-no-results").show();$("#search-spinner").hide()},"json")},400)}this.lastValue=this.value}),this.canvas_manager=b.canvas_manager=new d(this,$("#canvas-viewport"),$("#overview")),this.reset(),this.datatypes=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes",async:!1}).responseText),this.datatypes_mapping=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes/mapping",async:!1}).responseText),this.ext_to_type=this.datatypes_mapping.ext_to_class_name,this.type_to_type=this.datatypes_mapping.class_to_classes,$.ajax({url:j.urls.load_workflow,data:{id:j.options.id,_:"true"},dataType:"json",cache:!1,success:function(a){j.reset(),j.workflow.from_simple(a),j.workflow.has_changes=!1,j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview(),upgrade_message="",$.each(a.upgrade_messages,function(a,b){upgrade_message+="
          • Step "+(parseInt(a,10)+1)+": "+j.workflow.nodes[a].name+"
              ",$.each(b,function(a,b){upgrade_message+="
            • "+b+"
            • "}),upgrade_message+="
          • "}),upgrade_message?window.show_modal("Workflow loaded with changes","Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.
              "+upgrade_message+"
            ",{Continue:hide_modal}):hide_modal(),j.showWorkflowParameters()},beforeSubmit:function(){show_message("Loading workflow","progress")}}),$(document).ajaxStart(function(){j.active_ajax_call=!0,$(document).bind("ajaxStop.global",function(){j.active_ajax_call=!1})}),$(document).ajaxError(function(a,b){var c=b.responseText||b.statusText||"Could not connect to server";return window.show_modal("Server error",c,{"Ignore error":hide_modal}),!1}),window.make_popupmenu&&make_popupmenu($("#workflow-options-button"),{Save:l,Run:function(){window.location=j.urls.run_workflow},"Edit Attributes":e,"Auto Re-layout":c,Close:k}),overview_size=$.jStorage.get("overview-size"),void 0!==overview_size&&$("#overview-border").css({width:overview_size,height:overview_size}),$.jStorage.get("overview-off")?h():f(),$("#overview-border").bind("dragend",function(a,b){var c=$(this).offsetParent(),d=c.offset(),e=Math.max(c.width()-(b.offsetX-d.left),c.height()-(b.offsetY-d.top));$.jStorage.set("overview-size",e+"px")}),$("#close-viewport").click(function(){"0px"===$("#overview-border").css("right")?h():f()}),window.onbeforeunload=function(){return workflow&&j.workflow.has_changes?"There are unsaved changes to your workflow which will be lost.":void 0},$("div.toolSectionBody").hide(),$("div.toolSectionTitle > span").wrap("");var m=null;$("div.toolSectionTitle").each(function(){var a=$(this).next("div.toolSectionBody");$(this).click(function(){a.is(":hidden")?(m&&m.slideUp("fast"),m=a,a.slideDown("fast")):(a.slideUp("fast"),m=null)})}),g("workflow-name","workflow-name",j.urls.rename_async,"new_name"),$("#workflow-tag").click(function(){return $(".tag-area").click(),!1}),g("workflow-annotation","workflow-annotation",j.urls.annotate_async,"new_annotation",25,!0,4)},reset:function(){this.workflow&&this.workflow.remove_all(),this.workflow=b.workflow=new c(this,$("#canvas-container"))},scroll_to_nodes:function(){var a,b,c=$("#canvas-viewport"),d=$("#canvas-container");b=d.width().toolForm:last>.toolFormTitle>.buttons").click(function(){action_to_rem=$(this).closest(".toolForm",".action_tag").children(".action_tag:first").text(),$(this).closest(".toolForm").remove(),delete c.workflow.active_node.post_job_actions[action_to_rem],c.workflow.active_form_has_changes=!0})},display_pja_list:function(){return pja_list},display_file_list:function(a){addlist="",addlist},new_pja:function(a,b,c){if(void 0===c.post_job_actions&&(c.post_job_actions={}),void 0===c.post_job_actions[a+b]){var d={};return d.action_type=a,d.output_name=b,c.post_job_actions[a+b]=null,c.post_job_actions[a+b]=d,display_pja(d,c),this.workflow.active_form_has_changes=!0,!0}return!1},showWorkflowParameters:function(){var a=/\$\{.+?\}/g,b=[],c=$("#workflow-parameters-container"),d=$("#workflow-parameters-box"),e="",f=[];$.each(this.workflow.nodes,function(c,d){var e=d.form_html.match(a);e&&(f=f.concat(e)),d.post_job_actions&&($.each(d.post_job_actions,function(b,c){c.action_arguments&&$.each(c.action_arguments,function(b,c){var d=c.match(a);d&&(f=f.concat(d))})}),f&&$.each(f,function(a,c){-1===$.inArray(c,b)&&b.push(c)}))}),b&&0!==b.length?($.each(b,function(a,b){e+="
            "+b.substring(2,b.length-1)+"
            "}),c.html(e),d.show()):(c.html(e),d.hide())},showToolForm:function(b,c){var d="right-content",e=d+"-"+c.id,g=$("#"+d),h=g.find("#"+e);if(h.length>0&&0==h.find(".section-row").length&&h.remove(),0==g.find("#"+e).length){var i=$('
            '),j=null;if("tool"==c.type&&a.isJSON(b)){var k=JSON.parse(b);k.node=c,k.datatypes=this.datatypes,j=new f.View(k)}else{var k={html:b,node:c,workflowView:this};j=new EditorFormView(k)}i.append(j.$el),g.append(i)}$("."+d).hide(),g.find("#"+e).show(),g.show(),g.scrollTop()},isSubType:function(a,b){return a=this.ext_to_type[a],b=this.ext_to_type[b],this.type_to_type[a]&&b in this.type_to_type[a]},$newNodeElement:function(a,b){var c=$("
            "),d=$("
            "+b+"
            ");add_node_icon(d.find(".nodeTitle"),a),c.append(d),c.css("left",$(window).scrollLeft()+20),c.css("top",$(window).scrollTop()+20);var e=$("
            ");return c.append(e),c},prebuildNode:function(a,b,c){var d=this,f=this.$newNodeElement(a,b),g=new e(this,{element:f});g.type=a,g.content_id=c;var h="
            loading tool info...
            ";f.find(".toolFormBody").append(h),g.form_html=h;var i=$("
            ");i.append($("
            ").addClass("fa-icon-button fa fa-times").click(function(){g.destroy()})),f.appendTo("#canvas-container");var j=$("#canvas-container").position(),k=$("#canvas-container").parent(),l=f.width(),m=f.height();return f.css({left:-j.left+k.width()/2-l/2,top:-j.top+k.height()/2-m/2}),i.prependTo(f.find(".toolFormTitle")),l+=i.width()+10,f.css("width",l),f.bind("dragstart",function(){d.workflow.activate_node(g)}).bind("dragend",function(){d.workflow.node_changed(this),d.workflow.fit_canvas_to_nodes(),d.canvas_manager.draw_overview()}).bind("dragclickonly",function(){d.workflow.activate_node(g)}).bind("drag",function(a,b){var c=$(this).offsetParent().offset(),d=b.offsetX-c.left,e=b.offsetY-c.top;$(this).css({left:d,top:e}),$(this).find(".terminal").each(function(){this.terminal.redraw()})}),g}})}); +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","libs/toastr","ui/editable-text"],function(a,b,c,d,e,f,g,h){function i(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 NODE_ICONS={tool:"fa-wrench",data_input:"fa-file-o",data_collection_input:"fa-folder-o",pause:"fa-pause"},add_node_icon=function(a,b){var c=NODE_ICONS[b];if(c){var d=$(' ').addClass(c);a.before(d)}},EditorFormView=Backbone.View.extend({initialize:function(b){this.options=a.merge(b,{});var c=$("
            "),d=b.workflowView,e=b.node;if(b.html&&c.html(b.html),this.setElement(c),e&&"no-node"!=e.id){c.find("table:first").after(this._genericStepAttributesTemplate(e));var f=e.type;add_node_icon(c.find(".portlet-title-text"),f);var g=c.find(".portlet-title-text");g.data("last-value",g.text()),g.make_text_editable({on_finish:function(a){var b=g.data("last-value");if(a!=b){var f=d.workflow;f.attemptUpdateNodeLabel(e,a)?(c.find("input[name='label']").val(a),g.data("last-value",a),c.find("form").submit(),""==a&&g.text(e.name)):(h.warning("Step label "+a+" already exists, cannot update label."),g.text(b))}}}),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 h(){$.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=$("
              ");$.each(b.errors,function(a,b){$("
            • ").text(b).appendTo(d)}),c.append(d)}else c.addClass("donemark");j.workflow.name=b.name,j.workflow.has_changes=!1,j.workflow.stored=!0,j.showWorkflowParameters(),b.errors?window.show_modal("Saving workflow",c,{Ok:hide_modal}):(a&&a(),hide_modal())}})};j.active_ajax_call?$(document).bind("ajaxStop.save_workflow",function(){$(document).unbind("ajaxStop.save_workflow"),c(),$(document).unbind("ajaxStop.save_workflow"),j.active_ajax_call=!1}):c(b)};$("#tool-search-query").click(function(){$(this).focus(),$(this).select()}).keyup(function(){if($(this).css("font-style","normal"),this.value.length<3)i(!1);else if(this.value!=this.lastValue){$(this).addClass("search_active");var a=this.value;this.timer&&clearTimeout(this.timer),$("#search-spinner").show(),this.timer=setTimeout(function(){$.get(j.urls.tool_search,{q:a},function(a){if($("#search-no-results").hide(),$(".toolSectionWrapper").hide(),$(".toolSectionWrapper").find(".toolTitle").hide(),0!=a.length){var b=$.map(a,function(a){return"link-"+a});$(b).each(function(a,b){$("[id='"+b+"']").parent().addClass("search_match"),$("[id='"+b+"']").parent().show().parent().parent().show().parent().show()}),$(".toolPanelLabel").each(function(){for(var a=$(this),b=a.next(),c=!0;0!==b.length&&b.hasClass("toolTitle");){if(b.is(":visible")){c=!1;break}b=b.next()}c&&a.hide()})}else $("#search-no-results").show();$("#search-spinner").hide()},"json")},400)}this.lastValue=this.value}),this.canvas_manager=b.canvas_manager=new d(this,$("#canvas-viewport"),$("#overview")),this.reset(),this.datatypes=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes",async:!1}).responseText),this.datatypes_mapping=JSON.parse($.ajax({url:Galaxy.root+"api/datatypes/mapping",async:!1}).responseText),this.ext_to_type=this.datatypes_mapping.ext_to_class_name,this.type_to_type=this.datatypes_mapping.class_to_classes,$.ajax({url:j.urls.load_workflow,data:{id:j.options.id,_:"true"},dataType:"json",cache:!1,success:function(a){j.reset(),j.workflow.from_simple(a),j.workflow.has_changes=!1,j.workflow.fit_canvas_to_nodes(),j.scroll_to_nodes(),j.canvas_manager.draw_overview(),upgrade_message="",$.each(a.upgrade_messages,function(a,b){upgrade_message+="
            • Step "+(parseInt(a,10)+1)+": "+j.workflow.nodes[a].name+"
                ",$.each(b,function(a,b){upgrade_message+="
              • "+b+"
              • "}),upgrade_message+="
            • "}),upgrade_message?window.show_modal("Workflow loaded with changes","Problems were encountered loading this workflow (possibly a result of tool upgrades). Please review the following parameters and then save.
                "+upgrade_message+"
              ",{Continue:hide_modal}):hide_modal(),j.showWorkflowParameters()},beforeSubmit:function(){show_message("Loading workflow","progress")}}),$(document).ajaxStart(function(){j.active_ajax_call=!0,$(document).bind("ajaxStop.global",function(){j.active_ajax_call=!1})}),$(document).ajaxError(function(a,b){var c=b.responseText||b.statusText||"Could not connect to server";return window.show_modal("Server error",c,{"Ignore error":hide_modal}),!1}),window.make_popupmenu&&make_popupmenu($("#workflow-options-button"),{Save:l,Run:function(){window.location=j.urls.run_workflow},"Edit Attributes":e,"Auto Re-layout":c,Close:k}),overview_size=$.jStorage.get("overview-size"),void 0!==overview_size&&$("#overview-border").css({width:overview_size,height:overview_size}),$.jStorage.get("overview-off")?h():f(),$("#overview-border").bind("dragend",function(a,b){var c=$(this).offsetParent(),d=c.offset(),e=Math.max(c.width()-(b.offsetX-d.left),c.height()-(b.offsetY-d.top));$.jStorage.set("overview-size",e+"px")}),$("#close-viewport").click(function(){"0px"===$("#overview-border").css("right")?h():f()}),window.onbeforeunload=function(){return workflow&&j.workflow.has_changes?"There are unsaved changes to your workflow which will be lost.":void 0},$("div.toolSectionBody").hide(),$("div.toolSectionTitle > span").wrap("");var m=null;$("div.toolSectionTitle").each(function(){var a=$(this).next("div.toolSectionBody");$(this).click(function(){a.is(":hidden")?(m&&m.slideUp("fast"),m=a,a.slideDown("fast")):(a.slideUp("fast"),m=null)})}),g("workflow-name","workflow-name",j.urls.rename_async,"new_name"),$("#workflow-tag").click(function(){return $(".tag-area").click(),!1}),g("workflow-annotation","workflow-annotation",j.urls.annotate_async,"new_annotation",25,!0,4)},reset:function(){this.workflow&&this.workflow.remove_all(),this.workflow=b.workflow=new c(this,$("#canvas-container"))},scroll_to_nodes:function(){var a,b,c=$("#canvas-viewport"),d=$("#canvas-container");b=d.width().toolForm:last>.toolFormTitle>.buttons").click(function(){action_to_rem=$(this).closest(".toolForm",".action_tag").children(".action_tag:first").text(),$(this).closest(".toolForm").remove(),delete c.workflow.active_node.post_job_actions[action_to_rem],c.workflow.active_form_has_changes=!0})},display_pja_list:function(){return pja_list},display_file_list:function(a){addlist="",addlist},new_pja:function(a,b,c){if(void 0===c.post_job_actions&&(c.post_job_actions={}),void 0===c.post_job_actions[a+b]){var d={};return d.action_type=a,d.output_name=b,c.post_job_actions[a+b]=null,c.post_job_actions[a+b]=d,display_pja(d,c),this.workflow.active_form_has_changes=!0,!0}return!1},showWorkflowParameters:function(){var a=/\$\{.+?\}/g,b=[],c=$("#workflow-parameters-container"),d=$("#workflow-parameters-box"),e="",f=[];$.each(this.workflow.nodes,function(c,d){var e=d.form_html.match(a);e&&(f=f.concat(e)),d.post_job_actions&&($.each(d.post_job_actions,function(b,c){c.action_arguments&&$.each(c.action_arguments,function(b,c){var d=c.match(a);d&&(f=f.concat(d))})}),f&&$.each(f,function(a,c){-1===$.inArray(c,b)&&b.push(c)}))}),b&&0!==b.length?($.each(b,function(a,b){e+="
              "+b.substring(2,b.length-1)+"
              "}),c.html(e),d.show()):(c.html(e),d.hide())},showToolForm:function(b,c){var d="right-content",e=d+"-"+c.id,g=$("#"+d),h=g.find("#"+e);if(h.length>0&&0==h.find(".section-row").length&&h.remove(),0==g.find("#"+e).length){var i=$('
              '),j=null;if("tool"==c.type&&a.isJSON(b)){var k=JSON.parse(b);k.node=c,k.datatypes=this.datatypes,j=new f.View(k)}else{var k={html:b,node:c,workflowView:this};j=new EditorFormView(k)}i.append(j.$el),g.append(i)}$("."+d).hide(),g.find("#"+e).show(),g.show(),g.scrollTop()},isSubType:function(a,b){return a=this.ext_to_type[a],b=this.ext_to_type[b],this.type_to_type[a]&&b in this.type_to_type[a]},$newNodeElement:function(a,b){var c=$("
              "),d=$("
              "+b+"
              ");add_node_icon(d.find(".nodeTitle"),a),c.append(d),c.css("left",$(window).scrollLeft()+20),c.css("top",$(window).scrollTop()+20);var e=$("
              ");return c.append(e),c},prebuildNode:function(a,b,c){var d=this,f=this.$newNodeElement(a,b),g=new e(this,{element:f});g.type=a,g.content_id=c;var h="
              loading tool info...
              ";f.find(".toolFormBody").append(h),g.form_html=h;var i=$("
              ");i.append($("
              ").addClass("fa-icon-button fa fa-times").click(function(){g.destroy()})),f.appendTo("#canvas-container");var j=$("#canvas-container").position(),k=$("#canvas-container").parent(),l=f.width(),m=f.height();return f.css({left:-j.left+k.width()/2-l/2,top:-j.top+k.height()/2-m/2}),i.prependTo(f.find(".toolFormTitle")),l+=i.width()+10,f.css("width",l),f.bind("dragstart",function(){d.workflow.activate_node(g)}).bind("dragend",function(){d.workflow.node_changed(this),d.workflow.fit_canvas_to_nodes(),d.canvas_manager.draw_overview()}).bind("dragclickonly",function(){d.workflow.activate_node(g)}).bind("drag",function(a,b){var c=$(this).offsetParent().offset(),d=b.offsetX-c.left,e=b.offsetY-c.top;$(this).css({left:d,top:e}),$(this).find(".terminal").each(function(){this.terminal.redraw()})}),g}})}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-view.js.map \ No newline at end of file diff --git a/templates/webapps/galaxy/workflow/editor_generic_form.mako b/templates/webapps/galaxy/workflow/editor_generic_form.mako index 7c9add037b9..32ad4600af2 100644 --- a/templates/webapps/galaxy/workflow/editor_generic_form.mako +++ b/templates/webapps/galaxy/workflow/editor_generic_form.mako @@ -1,5 +1,6 @@ <% + from xml.sax.saxutils import escape label = module.label if label is not None: title = label @@ -17,7 +18,7 @@
              - +