Files
galaxy/static/scripts/mvc/tool/tool-form-base.js
T
2017-02-10 23:01:25 -05:00

2 lines
5.8 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.model.get("inputs")?this._buildForm(this.model.attributes):this.deferred.execute(function(a){c._buildModel(a,c.model.attributes,!0)}),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.remove()})},remove:function(){var a=this;this.$el.hide(),this.deferred.execute(function(){d.prototype.remove.call(a),Galaxy.emit.debug("tool-form-base::remove()","Destroy view.")})},_buildForm:function(a){var b=this;this.model.set(a),this.model.set({title:"<b>"+a.name+"</b> "+a.description+" (Galaxy Version "+a.version+")",operations:!this.model.get("hide_operations")&&this._operations(),onchange:function(){b.deferred.reset(),b.deferred.execute(function(a){b.model.get("postchange")(a,b)})}}),this.model.get("customize")&&this.model.get("customize")(this),this.render(),this.model.get("collapsible")||this.$el.append($("<div/>").addClass("ui-margin-top-large").append(this._footer()))},_buildModel:function(b,d,e){var f=this,g=this.model.attributes;g.version=d.version,g.id=d.id;var h="",i={};g.job_id?h=Galaxy.root+"api/jobs/"+g.job_id+"/build_for_rerun":(h=Galaxy.root+"api/tools/"+g.id+"/build",Galaxy.params&&Galaxy.params.tool_id==g.id&&(i=$.extend({},Galaxy.params),g.version&&(i.tool_version=g.version))),a.get({url:h,data:i,success:function(a){return a.display?(f._buildForm(a),!e&&f.message.update({status:"success",message:"Now you are using '"+g.name+"' version "+g.version+", id '"+g.id+"'.",persistent:!1}),Galaxy.emit.debug("tool-form-base::_buildModel()","Initial tool model ready.",a),void b.resolve()):void(window.location=Galaxy.root)},error:function(a,d){var e=a&&a.err_msg||"Uncaught error.";401==d?window.location=Galaxy.root+"user/login?"+$.param({redirect:Galaxy.root+"?tool_id="+g.id}):f.$el.is(":empty")?f.$el.prepend(new c.Message({message:e,status:"danger",persistent:!0,large:!0}).$el):Galaxy.modal&&Galaxy.modal.show({title:"Tool request failed",body:e,buttons:{Close:function(){Galaxy.modal.hide()}}}),Galaxy.emit.debug("tool-form-base::_buildModel()","Initial tool model request failed.",a),b.reject()}})},_operations:function(){var a=this,b=this.model.attributes,d=new c.ButtonMenu({icon:"fa-cubes",title:!b.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!b.sustain_version&&b.versions&&b.versions.length>1)for(var e in b.versions){var f=b.versions[e];f!=b.version&&d.addMenu({title:"Switch to "+f,version:f,icon:"fa-cube",onclick:function(){var c=b.id.replace(b.version,this.version),d=this.version;a.deferred.reset(),a.deferred.execute(function(b){a._buildModel(b,{id:c,version:d})})}})}else d.$el.hide();var g=new c.ButtonMenu({icon:"fa-caret-down",title:!b.narrow&&"Options"||null,tooltip:"View available options"});return b.biostar_url&&(g.addMenu({icon:"fa-question-circle",title:"Question?",tooltip:"Ask a question about this tool (Biostar)",onclick:function(){window.open(b.biostar_url+"/p/new/post/")}}),g.addMenu({icon:"fa-search",title:"Search",tooltip:"Search help for this tool (Biostar)",onclick:function(){window.open(b.biostar_url+"/local/search/page/?q="+b.name)}})),g.addMenu({icon:"fa-share",title:"Share",tooltip:"Share this tool",onclick:function(){prompt("Copy to clipboard: Ctrl+C, Enter",window.location.origin+Galaxy.root+"root?tool_id="+b.id)}}),Galaxy.user&&Galaxy.user.get("is_admin")&&g.addMenu({icon:"fa-download",title:"Download",tooltip:"Download this tool",onclick:function(){window.location.href=Galaxy.root+"api/tools/"+b.id+"/download"}}),Galaxy.user&&Galaxy.user.get("is_admin")&&g.addMenu({icon:"fa-refresh",title:"Reload Tool XML",tooltip:"Reload tool XML file",onclick:function(){$.ajax({url:Galaxy.root+"api/tools/"+b.id+"/reload",type:"GET"}).done(function(a){Galaxy.modal.show({title:a.done?"Tool XML Reload":"Tool XML Reload Error",body:a.done?a.done:a.error,buttons:{Close:function(){Galaxy.modal.hide()}}}),window.setTimeout(function(){Galaxy.modal.hide()},2e3)}).fail(function(a){Galaxy.modal.show({title:"Tool XML Reload AJAX Error",body:b.id+" "+a,buttons:{Close:function(){Galaxy.modal.hide()}}})})}}),b.requirements&&b.requirements.length>0&&g.addMenu({icon:"fa-info-circle",title:"Requirements",tooltip:"Display tool requirements",onclick:function(){!this.requirements_visible||a.portlet.collapsed?(this.requirements_visible=!0,a.portlet.expand(),a.message.update({persistent:!0,message:a._templateRequirements(b),status:"info"})):(this.requirements_visible=!1,a.message.update({message:""}))}}),b.sharable_url&&g.addMenu({icon:"fa-external-link",title:"See in Tool Shed",tooltip:"Access the repository",onclick:function(){window.open(b.sharable_url)}}),{menu:g,versions:d}},_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://wiki.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