Files
galaxy/static/scripts/mvc/tool/tool-form-base.js
T
2017-08-16 18:09:57 -04:00

2 lines
4.6 KiB
JavaScript

define(["utils/utils","utils/deferred","mvc/ui/ui-misc","mvc/form/form-view","mvc/citation/citation-model","mvc/citation/citation-view"],function(a,b,c,d,e,f){return d.extend({initialize:function(a){var c=this;this.deferred=new b,d.prototype.initialize.call(this,a),this._update(this.model.get("initialmodel")),this.model.get("listen_to_history")&&parent.Galaxy&&parent.Galaxy.currHistoryPanel&&this.listenTo(parent.Galaxy.currHistoryPanel.collection,"change",function(){c.model.get("onchange")()}),this.$el.on("remove",function(){c._destroy()})},_update:function(a){var b=this;a=a||this.model.get("buildmodel"),a?(this.deferred.reset(),this.deferred.execute(function(c){a(c,b),c.then(function(){b._render()})})):this._render()},_destroy:function(){var a=this;this.$el.off().hide(),this.deferred.execute(function(){d.prototype.remove.call(a),Galaxy.emit.debug("tool-form-base::_destroy()","Destroy view.")})},_render:function(){var a=this,b=this.model.attributes;this.model.set({title:b.fixed_title||"<b>"+b.name+"</b> "+b.description+" (Galaxy Version "+b.version+")",operations:!b.hide_operations&&this._operations(),onchange:function(){a.deferred.reset(),a.deferred.execute(function(b){a.model.get("postchange")(b,a)})}}),this.render(),this.model.get("collapsible")||this.$el.append($("<div/>").addClass("ui-margin-top-large").append(this._footer())),this.show_message&&this.message.update({status:"success",message:"Now you are using '"+b.name+"' version "+b.version+", id '"+b.id+"'.",persistent:!1}),this.show_message=!0},_operations:function(){var b=this,d=this.model.attributes,e=new c.ButtonMenu({icon:"fa-cubes",title:!d.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!d.sustain_version&&d.versions&&d.versions.length>1)for(var f in d.versions){var g=d.versions[f];g!=d.version&&e.addMenu({title:"Switch to "+g,version:g,icon:"fa-cube",onclick:function(){b.model.set("id",d.id.replace(d.version,this.version)),b.model.set("version",this.version),b._update()}})}else e.$el.hide();var h=new c.ButtonMenu({icon:"fa-caret-down",title:!d.narrow&&"Options"||null,tooltip:"View available options"});return d.biostar_url&&(h.addMenu({icon:"fa-question-circle",title:"Question?",onclick:function(){window.open(d.biostar_url+"/p/new/post/")}}),h.addMenu({icon:"fa-search",title:"Search",onclick:function(){window.open(d.biostar_url+"/local/search/page/?q="+d.name)}})),h.addMenu({icon:"fa-share",title:"Share",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+Galaxy.root+"root?tool_id="+d.id)}}),Galaxy.user&&Galaxy.user.get("is_admin")&&(h.addMenu({icon:"fa-download",title:"Download",onclick:function(){window.location.href=Galaxy.root+"api/tools/"+d.id+"/download"}}),h.addMenu({icon:"fa-refresh",title:"Reload XML",onclick:function(){a.get({url:Galaxy.root+"api/tools/"+d.id+"/reload",success:function(){b.message.update({persistent:!1,message:"Tool XML has been reloaded.",status:"success"})},error:function(a){b.message.update({persistent:!1,message:a.err_msg,status:"danger"})}})}})),d.requirements&&d.requirements.length>0&&h.addMenu({icon:"fa-info-circle",title:"Requirements",onclick:function(){!this.requirements_visible||b.portlet.collapsed?(this.requirements_visible=!0,b.portlet.expand(),b.message.update({persistent:!0,message:b._templateRequirements(d),status:"info"})):(this.requirements_visible=!1,b.message.update({message:""}))}}),d.sharable_url&&h.addMenu({icon:"fa-external-link",title:"See in Tool Shed",onclick:function(){window.open(d.sharable_url)}}),$.getJSON("/api/webhooks/tool-menu/all",function(a){_.each(a,function(a){a.activate&&a.config.function&&h.addMenu({icon:a.config.icon,title:a.config.title,onclick:function(){var b=new Function("options",a.config.function);b(d)}})})}),{menu:h,versions:e}},_footer:function(){var a=this.model.attributes,b=$("<div/>").append(this._templateHelp(a));if(a.citations){var c=$("<div/>"),d=new e.ToolCitationCollection;d.tool_id=a.id;var g=new f.CitationListView({el:c,collection:d});g.render(),d.fetch(),b.append(c)}return b},_templateHelp:function(a){var b=$("<div/>").addClass("ui-form-help").append(a.help);return b.find("a").attr("target","_blank"),b},_templateRequirements:function(a){var b=a.requirements.length;if(b>0){var c="This tool requires ";_.each(a.requirements,function(a,d){c+=a.name+(a.version?" (Version "+a.version+")":"")+(b-2>d?", ":d==b-2?" and ":"")});var d=$("<a/>").attr("target","_blank").attr("href","https://galaxyproject.org/tools/requirements/").text("here");return $("<span/>").append(c+". Click ").append(d).append(" for more information.")}return"No requirements found."}})});
//# sourceMappingURL=../../../maps/mvc/tool/tool-form-base.js.map