diff --git a/client/galaxy/scripts/mvc/workflow/workflow-forms.js b/client/galaxy/scripts/mvc/workflow/workflow-forms.js index 1aed0dd189a..59327f58149 100644 --- a/client/galaxy/scripts/mvc/workflow/workflow-forms.js +++ b/client/galaxy/scripts/mvc/workflow/workflow-forms.js @@ -164,11 +164,19 @@ define( [ 'utils/utils', 'mvc/form/form-view', 'mvc/tool/tool-form-base' ], func },{ action : 'TagDatasetAction', pja_arg : 'tags', - label : 'Tags', + label : 'Add Tags', type : 'text', value : '', ignore : '', help : 'This action will set tags for the dataset.' + },{ + action : 'RemoveTagDatasetAction', + pja_arg : 'tags', + label : 'Remove Tags', + type : 'text', + value : '', + ignore : '', + help : 'This action will remove tags for the dataset.' },{ title : 'Assign columns', type : 'section', diff --git a/lib/galaxy/jobs/actions/post.py b/lib/galaxy/jobs/actions/post.py index 38f5178bd78..80496171e7f 100644 --- a/lib/galaxy/jobs/actions/post.py +++ b/lib/galaxy/jobs/actions/post.py @@ -326,6 +326,8 @@ class DeleteIntermediatesAction(DefaultJobAction): class TagDatasetAction(DefaultJobAction): name = "TagDatasetAction" verbose_name = "Add tag to dataset" + action = "Add" + direction = "to" @classmethod def execute(cls, app, sa_session, action, job, replacement_dict): @@ -334,16 +336,33 @@ class TagDatasetAction(DefaultJobAction): if tags: for dataset_assoc in job.output_datasets: if action.output_name == '' or dataset_assoc.name == action.output_name: - app.tag_handler.add_tags_from_list( job.user, dataset_assoc.dataset, tags) + cls._execute( app, job.user, dataset_assoc.dataset, tags) sa_session.flush() + @classmethod + def _execute(cls, app, user, dataset, tags): + app.tag_handler.add_tags_from_list(user, dataset, tags) + @classmethod def get_short_str(cls, pja): if pja.action_arguments and pja.action_arguments.get('tags', ''): - return "Add tag(s) '%s' to '%s'." % (escape(pja.action_arguments['tags']), + return "%s tag(s) '%s' %s '%s'." % ( cls.action, + escape(pja.action_arguments['tags']), + cls.direction, escape(pja.output_name)) else: - return "Tag addition action used without a tag specified. No tag will be added." + return "%s Tag action used without a tag specified. No tag will be added." % cls.action + + +class RemoveTagDatasetAction(TagDatasetAction): + name = "RemoveTagDatasetAction" + verbose_name = "Remove tag from dataset" + action = "Remove" + direction = "from" + + @classmethod + def _execute(cls, app, user, dataset, tags): + app.tag_handler.remove_tags_from_list(user, dataset, tags) class ActionBox(object): @@ -355,12 +374,14 @@ class ActionBox(object): "EmailAction": EmailAction, "DeleteIntermediatesAction": DeleteIntermediatesAction, "TagDatasetAction": TagDatasetAction, + "RemoveTagDatasetAction": RemoveTagDatasetAction, } public_actions = ['RenameDatasetAction', 'ChangeDatatypeAction', 'ColumnSetAction', 'EmailAction', - 'DeleteIntermediatesAction', 'TagDatasetAction'] + 'DeleteIntermediatesAction', 'TagDatasetAction', + 'RemoveTagDatasetAction'] immediate_actions = ['ChangeDatatypeAction', 'RenameDatasetAction', - 'TagDatasetAction'] + 'TagDatasetAction', 'RemoveTagDatasetAction'] @classmethod def get_short_str(cls, action): diff --git a/lib/galaxy/managers/tags.py b/lib/galaxy/managers/tags.py index f59cee26fe8..989f5185ffd 100644 --- a/lib/galaxy/managers/tags.py +++ b/lib/galaxy/managers/tags.py @@ -44,6 +44,13 @@ class TagManager( object ): new_tags_set.update( self.get_tags_str( item.tags ).split( ',' ) ) return self.set_tags_from_list( user, item, new_tags_set ) + def remove_tags_from_list( self, user, item, tag_to_remove_list ): + tag_to_remove_set = set( tag_to_remove_list ) + tags_set = set(self.get_tags_str( item.tags ).split( ',' )) + if item.tags: + tags_set -= tag_to_remove_set + return self.set_tags_from_list( user, item, tags_set ) + def set_tags_from_list( self, user, item, new_tags_list ): # precondition: item is already security checked against user # precondition: incoming tags is a list of sanitized/formatted strings diff --git a/static/maps/mvc/workflow/workflow-forms.js.map b/static/maps/mvc/workflow/workflow-forms.js.map index 88eaf3749ec..13069799972 100644 --- a/static/maps/mvc/workflow/workflow-forms.js.map +++ b/static/maps/mvc/workflow/workflow-forms.js.map @@ -1 +1 @@ -{"version":3,"file":"workflow-forms.js","sources":["../../../src/mvc/workflow/workflow-forms.js"],"names":["define","Utils","Form","ToolFormBase","Default","Backbone","View","extend","initialize","options","this","form","Tool","self","workflow","node","post_job_actions","deepeach","inputs","input","type","indexOf","info","name","textify","extensions","value","__class__","fixed","collapsible_value","is_workflow","length","test_param","undefined","_makeSections","merge","text_enable","text_disable","narrow","initial_errors","sustain_version","cls","postchange","process","model","attributes","current_state","tool_id","id","tool_version","version","$","data","create","Galaxy","emit","debug","request","url","root","success","update","config_form","errors","update_field_data","resolve","error","response","reject","datatypes","output_id","output_terminals","Object","keys","push","label","String","Boolean","ignore","help","payload","host","window","location","i","_makeSection","visit","head","head_list","action","pja_arg","p_id","p","d","j","expanded","action_arguments","slice","input_terminal_names","key",1,"input_terminals","sort","a","b","unshift","input_config","title","flat","output","getWorkflowOutput","onchange","new_value","attemptUpdateOutputLabel","join"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"workflow-forms.js","sources":["../../../src/mvc/workflow/workflow-forms.js"],"names":["define","Utils","Form","ToolFormBase","Default","Backbone","View","extend","initialize","options","this","form","Tool","self","workflow","node","post_job_actions","deepeach","inputs","input","type","indexOf","info","name","textify","extensions","value","__class__","fixed","collapsible_value","is_workflow","length","test_param","undefined","_makeSections","merge","text_enable","text_disable","narrow","initial_errors","sustain_version","cls","postchange","process","model","attributes","current_state","tool_id","id","tool_version","version","$","data","create","Galaxy","emit","debug","request","url","root","success","update","config_form","errors","update_field_data","resolve","error","response","reject","datatypes","output_id","output_terminals","Object","keys","push","label","String","Boolean","ignore","help","payload","host","window","location","i","_makeSection","visit","head","head_list","action","pja_arg","p_id","p","d","j","expanded","action_arguments","slice","input_terminal_names","key",1,"input_terminals","sort","a","b","unshift","input_config","title","flat","output","getWorkflowOutput","onchange","new_value","attemptUpdateOutputLabel","join"],"mappings":"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"} \ No newline at end of file diff --git a/static/scripts/mvc/workflow/workflow-forms.js b/static/scripts/mvc/workflow/workflow-forms.js index 399991fed42..c30041f8a6d 100644 --- a/static/scripts/mvc/workflow/workflow-forms.js +++ b/static/scripts/mvc/workflow/workflow-forms.js @@ -1,2 +1,2 @@ -define(["utils/utils","mvc/form/form-view","mvc/tool/tool-form-base"],function(a,b,c){var d=Backbone.View.extend({initialize:function(a){this.form=new b(a)}}),e=Backbone.View.extend({initialize:function(b){var d=this;this.workflow=b.workflow,this.node=b.node,this.node?(this.post_job_actions=this.node.post_job_actions||{},a.deepeach(b.inputs,function(b){b.type&&(-1!=["data","data_collection"].indexOf(b.type)?(b.type="hidden",b.info="Data input '"+b.name+"' ("+a.textify(b.extensions)+")",b.value={__class__:"RuntimeValue"}):b.fixed||(b.collapsible_value={__class__:"RuntimeValue"},b.is_workflow=b.options&&0==b.options.length||-1!=["integer","float"].indexOf(b.type)))}),a.deepeach(b.inputs,function(a){"conditional"==a.type&&(a.test_param.collapsible_value=void 0)}),this._makeSections(b),this.form=new c(a.merge(b,{text_enable:"Set in Advance",text_disable:"Set at Runtime",narrow:!0,initial_errors:!0,sustain_version:!0,cls:"ui-portlet-narrow",postchange:function(b,c){var e=c.model.attributes,f={tool_id:e.id,tool_version:e.version,type:"tool",inputs:$.extend(!0,{},c.data.create())};Galaxy.emit.debug("tool-form-workflow::postchange()","Sending current state.",f),a.request({type:"POST",url:Galaxy.root+"api/workflows/build_module",data:f,success:function(a){c.update(a.config_form),c.errors(a.config_form),d.node.update_field_data(a),Galaxy.emit.debug("tool-form-workflow::postchange()","Received new model.",a),b.resolve()},error:function(a){Galaxy.emit.debug("tool-form-workflow::postchange()","Refresh request failed.",a),b.reject()}})}}))):Galaxy.emit.debug("tool-form-workflow::initialize()","Node not found in workflow.")},_makeSections:function(a){var b=a.inputs,c=a.datatypes,d=this.node.output_terminals&&Object.keys(this.node.output_terminals)[0];if(d){b.push({name:"pja__"+d+"__EmailAction",label:"Email notification",type:"boolean",value:String(Boolean(this.post_job_actions["EmailAction"+d])),ignore:"false",help:"An email notification will be sent when the job has completed.",payload:{host:window.location.host}}),b.push({name:"pja__"+d+"__DeleteIntermediatesAction",label:"Output cleanup",type:"boolean",value:String(Boolean(this.post_job_actions["DeleteIntermediatesAction"+d])),ignore:"false",help:"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs."});for(var e in this.node.output_terminals)b.push(this._makeSection(e,c))}},_makeSection:function(a,b){function c(b,e){e=e||[],e.push(b);for(var f in b.inputs){var g=b.inputs[f],h=g.action;if(h){if(g.name="pja__"+a+"__"+g.action,g.pja_arg&&(g.name+="__"+g.pja_arg),g.payload)for(var i in g.payload){var j=g.payload[i];g.payload[g.name+"__"+i]=j,delete j}var k=d.post_job_actions[g.action+a];if(k){for(var l in e)e[l].expanded=!0;g.value=g.pja_arg?k.action_arguments&&k.action_arguments[g.pja_arg]||g.value:"true"}}g.inputs&&c(g,e.slice(0))}}var d=this,e=[],f=[];for(key in b)e.push({0:b[key],1:b[key]});for(key in this.node.input_terminals)f.push(this.node.input_terminals[key].name);e.sort(function(a,b){return a.label>b.label?1:a.labelhere for more information. Valid inputs are: '+f.join(", ")+"."},{action:"ChangeDatatypeAction",pja_arg:"newtype",label:"Change datatype",type:"select",ignore:"__empty__",value:"__empty__",options:e,help:"This action will change the datatype of the output to the indicated value."},{action:"TagDatasetAction",pja_arg:"tags",label:"Tags",type:"text",value:"",ignore:"",help:"This action will set tags for the dataset."},{title:"Assign columns",type:"section",flat:!0,inputs:[{action:"ColumnSetAction",pja_arg:"chromCol",label:"Chrom column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"startCol",label:"Start column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"endCol",label:"End column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"strandCol",label:"Strand column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"nameCol",label:"Name column",type:"integer",value:"",ignore:""}],help:"This action will set column assignments in the output dataset. Blank fields are ignored."}]};return c(g),g}});return{Default:d,Tool:e}}); +define(["utils/utils","mvc/form/form-view","mvc/tool/tool-form-base"],function(a,b,c){var d=Backbone.View.extend({initialize:function(a){this.form=new b(a)}}),e=Backbone.View.extend({initialize:function(b){var d=this;this.workflow=b.workflow,this.node=b.node,this.node?(this.post_job_actions=this.node.post_job_actions||{},a.deepeach(b.inputs,function(b){b.type&&(-1!=["data","data_collection"].indexOf(b.type)?(b.type="hidden",b.info="Data input '"+b.name+"' ("+a.textify(b.extensions)+")",b.value={__class__:"RuntimeValue"}):b.fixed||(b.collapsible_value={__class__:"RuntimeValue"},b.is_workflow=b.options&&0==b.options.length||-1!=["integer","float"].indexOf(b.type)))}),a.deepeach(b.inputs,function(a){"conditional"==a.type&&(a.test_param.collapsible_value=void 0)}),this._makeSections(b),this.form=new c(a.merge(b,{text_enable:"Set in Advance",text_disable:"Set at Runtime",narrow:!0,initial_errors:!0,sustain_version:!0,cls:"ui-portlet-narrow",postchange:function(b,c){var e=c.model.attributes,f={tool_id:e.id,tool_version:e.version,type:"tool",inputs:$.extend(!0,{},c.data.create())};Galaxy.emit.debug("tool-form-workflow::postchange()","Sending current state.",f),a.request({type:"POST",url:Galaxy.root+"api/workflows/build_module",data:f,success:function(a){c.update(a.config_form),c.errors(a.config_form),d.node.update_field_data(a),Galaxy.emit.debug("tool-form-workflow::postchange()","Received new model.",a),b.resolve()},error:function(a){Galaxy.emit.debug("tool-form-workflow::postchange()","Refresh request failed.",a),b.reject()}})}}))):Galaxy.emit.debug("tool-form-workflow::initialize()","Node not found in workflow.")},_makeSections:function(a){var b=a.inputs,c=a.datatypes,d=this.node.output_terminals&&Object.keys(this.node.output_terminals)[0];if(d){b.push({name:"pja__"+d+"__EmailAction",label:"Email notification",type:"boolean",value:String(Boolean(this.post_job_actions["EmailAction"+d])),ignore:"false",help:"An email notification will be sent when the job has completed.",payload:{host:window.location.host}}),b.push({name:"pja__"+d+"__DeleteIntermediatesAction",label:"Output cleanup",type:"boolean",value:String(Boolean(this.post_job_actions["DeleteIntermediatesAction"+d])),ignore:"false",help:"Upon completion of this step, delete non-starred outputs from completed workflow steps if they are no longer required as inputs."});for(var e in this.node.output_terminals)b.push(this._makeSection(e,c))}},_makeSection:function(a,b){function c(b,e){e=e||[],e.push(b);for(var f in b.inputs){var g=b.inputs[f],h=g.action;if(h){if(g.name="pja__"+a+"__"+g.action,g.pja_arg&&(g.name+="__"+g.pja_arg),g.payload)for(var i in g.payload){var j=g.payload[i];g.payload[g.name+"__"+i]=j,delete j}var k=d.post_job_actions[g.action+a];if(k){for(var l in e)e[l].expanded=!0;g.value=g.pja_arg?k.action_arguments&&k.action_arguments[g.pja_arg]||g.value:"true"}}g.inputs&&c(g,e.slice(0))}}var d=this,e=[],f=[];for(key in b)e.push({0:b[key],1:b[key]});for(key in this.node.input_terminals)f.push(this.node.input_terminals[key].name);e.sort(function(a,b){return a.label>b.label?1:a.labelhere for more information. Valid inputs are: '+f.join(", ")+"."},{action:"ChangeDatatypeAction",pja_arg:"newtype",label:"Change datatype",type:"select",ignore:"__empty__",value:"__empty__",options:e,help:"This action will change the datatype of the output to the indicated value."},{action:"TagDatasetAction",pja_arg:"tags",label:"Add Tags",type:"text",value:"",ignore:"",help:"This action will set tags for the dataset."},{action:"RemoveTagDatasetAction",pja_arg:"tags",label:"Remove Tags",type:"text",value:"",ignore:"",help:"This action will remove tags for the dataset."},{title:"Assign columns",type:"section",flat:!0,inputs:[{action:"ColumnSetAction",pja_arg:"chromCol",label:"Chrom column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"startCol",label:"Start column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"endCol",label:"End column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"strandCol",label:"Strand column",type:"integer",value:"",ignore:""},{action:"ColumnSetAction",pja_arg:"nameCol",label:"Name column",type:"integer",value:"",ignore:""}],help:"This action will set column assignments in the output dataset. Blank fields are ignored."}]};return c(g),g}});return{Default:d,Tool:e}}); //# sourceMappingURL=../../../maps/mvc/workflow/workflow-forms.js.map \ No newline at end of file