mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
2 lines
4.3 KiB
JavaScript
2 lines
4.3 KiB
JavaScript
define(["mvc/workflow/workflow-globals","mvc/workflow/workflow-terminals","mvc/workflow/workflow-connector"],function(a,b,c){var d=Backbone.View.extend({tagName:"div",className:"fa-icon-button fa fa-folder-o",initialize:function(){var a="Run tool in parallel over collection";this.$el.tooltip({delay:500,title:a}),this.model.bind("change",_.bind(this.render,this))},render:function(){this.model.mapOver.isCollection?this.$el.show():this.$el.hide()}}),e=d.extend({events:{click:"onClick",mouseenter:"onMouseEnter",mouseleave:"onMouseLeave"},onMouseEnter:function(){var a=this.model;!a.terminal.connected()&&a.mapOver.isCollection&&this.$el.css("color","red")},onMouseLeave:function(){this.$el.css("color","black")},onClick:function(){var a=this.model;!a.terminal.connected()&&a.mapOver.isCollection&&a.terminal.resetMapping()}}),f=Backbone.View.extend({setupMappingView:function(a){var b=new this.terminalMappingClass({terminal:a}),c=new this.terminalMappingViewClass({model:b});c.render(),a.terminalMappingView=c,this.terminalMappingView=c},terminalElements:function(){return this.terminalMappingView?[this.terminalMappingView.el,this.el]:[this.el]}}),g=f.extend({className:"terminal input-terminal",initialize:function(a){var b=a.node,c=a.input,d=c.name,e=this.terminalForInput(c);e.multiple||this.setupMappingView(e),this.el.terminal=e,e.node=b,e.name=d,b.input_terminals[d]=e},events:{dropinit:"onDropInit",dropstart:"onDropStart",dropend:"onDropEnd",drop:"onDrop",hover:"onHover"},onDropInit:function(a,b){var c=this.el.terminal;return $(b.drag).hasClass("output-terminal")&&c.canAccept(b.drag.terminal)},onDropStart:function(a,b){b.proxy.terminal&&(b.proxy.terminal.connectors[0].inner_color="#BBFFBB")},onDropEnd:function(a,b){b.proxy.terminal&&(b.proxy.terminal.connectors[0].inner_color="#FFFFFF")},onDrop:function(a,b){var d=this.el.terminal;new c(b.drag.terminal,d).redraw()},onHover:function(){var a=this.el,b=a.terminal;if(b.connectors.length>0){var c=$("<div class='callout'></div>").css({display:"none"}).appendTo("body").append($("<div class='button'></div>").append($("<div/>").addClass("fa-icon-button fa fa-times").click(function(){$.each(b.connectors,function(a,b){b&&b.destroy()}),c.remove()}))).bind("mouseleave",function(){$(this).remove()});c.css({top:$(a).offset().top-2,left:$(a).offset().left-c.width(),"padding-right":$(a).width()}).show()}}}),h=g.extend({terminalMappingClass:b.TerminalMapping,terminalMappingViewClass:e,terminalForInput:function(a){return new b.InputTerminal({element:this.el,input:a})}}),i=g.extend({terminalMappingClass:b.TerminalMapping,terminalMappingViewClass:e,terminalForInput:function(a){return new b.InputCollectionTerminal({element:this.el,input:a})}}),j=f.extend({className:"terminal output-terminal",initialize:function(a){var b=a.node,c=a.output,d=c.name,e=this.terminalForOutput(c);this.setupMappingView(e),this.el.terminal=e,e.node=b,e.name=d,b.output_terminals[d]=e},events:{drag:"onDrag",dragstart:"onDragStart",dragend:"onDragEnd"},onDrag:function(b,c){var d=function(){var b=$(c.proxy).offsetParent().offset(),d=c.offsetX-b.left,e=c.offsetY-b.top;$(c.proxy).css({left:d,top:e}),c.proxy.terminal.redraw(),a.canvas_manager.update_viewport_overlay()};d(),$("#canvas-container").get(0).scroll_panel.test(b,d)},onDragStart:function(d,e){$(e.available).addClass("input-terminal-active"),a.workflow.check_changes_in_active_form();var f=$('<div class="drag-terminal" style="position: absolute;"></div>').appendTo("#canvas-container").get(0);f.terminal=new b.OutputTerminal({element:f});var g=new c;return g.dragging=!0,g.connect(this.el.terminal,f.terminal),f},onDragEnd:function(a,b){var c=b.proxy.terminal.connectors[0];c&&c.destroy(),$(b.proxy).remove(),$(b.available).removeClass("input-terminal-active"),$("#canvas-container").get(0).scroll_panel.stop()}}),k=j.extend({terminalMappingClass:b.TerminalMapping,terminalMappingViewClass:d,terminalForOutput:function(a){var c=a.extensions,d=new b.OutputTerminal({element:this.el,datatypes:c});return d}}),l=j.extend({terminalMappingClass:b.TerminalMapping,terminalMappingViewClass:d,terminalForOutput:function(a){var c=a.collection_type,d=new b.OutputCollectionTerminal({element:this.el,collection_type:c,datatypes:a.extensions});return d}});return{InputTerminalView:h,OutputTerminalView:k,InputCollectionTerminalView:i,OutputCollectionTerminalView:l}});
|
|
//# sourceMappingURL=../../../maps/mvc/workflow/workflow-view-terminals.js.map
|