mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
2 lines
4.8 KiB
JavaScript
2 lines
4.8 KiB
JavaScript
define(["utils/utils","utils/deferred","mvc/ui/ui-misc","mvc/form/form-view","mvc/tools/tools-template","mvc/citation/citation-model","mvc/citation/citation-view"],function(a,b,c,d,e,f,g){return Backbone.View.extend({initialize:function(c){if(this.options=a.merge(c,{}),this.setElement("<div/>"),this.deferred=new b,c.inputs)this._buildForm(c);else{var d=this;this.deferred.execute(function(a){d._buildModel(a,c,!0)})}},remove:function(){var a=this;this.$el.hide(),this.deferred.execute(function(){Backbone.View.prototype.remove.call(a),Galaxy.emit.debug("tools-form-base::remove()","Destroy view.")})},_buildForm:function(b){var c=this;this.options=a.merge(b,this.options),this.options=a.merge({icon:"fa-wrench",title:"<b>"+b.name+"</b> "+b.description+" (Galaxy Tool Version "+b.version+")",operations:this._operations(),onchange:function(){c.deferred.reset(),c.deferred.execute(function(a){c._updateModel(a)})}},this.options),this.options.customize&&this.options.customize(this.options),this.form=new d(this.options),this._footer(),this.$el.empty(),this.$el.append(this.form.$el)},_buildModel:function(b,d,e){var f=this;this.options.id=d.id,this.options.version=d.version;var g="",h={};d.job_id?g=Galaxy.root+"api/jobs/"+d.job_id+"/build_for_rerun":(g=Galaxy.root+"api/tools/"+d.id+"/build",Galaxy.params&&Galaxy.params.tool_id==d.id&&(h=$.extend({},Galaxy.params),d.version&&(h.tool_version=d.version))),a.request({type:"GET",url:g,data:h,success:function(a){f._buildForm(a.tool_model||a),!e&&f.form.message.update({status:"success",message:"Now you are using '"+f.options.name+"' version "+f.options.version+", id '"+f.options.id+"'.",persistent:!1}),Galaxy.emit.debug("tools-form-base::initialize()","Initial tool model ready.",a),b.resolve()},error:function(a){var d=a&&a.err_msg||"Uncaught error.";f.$el.is(":empty")?f.$el.prepend(new c.Message({message:d,status:"danger",persistent:!0,large:!0}).$el):Galaxy.modal.show({title:"Tool request failed",body:d,buttons:{Close:function(){Galaxy.modal.hide()}}}),Galaxy.emit.debug("tools-form::initialize()","Initial tool model request failed.",a),b.reject()}})},_updateModel:function(b){var c=this.options.update_url||Galaxy.root+"api/tools/"+this.options.id+"/build",d=this,e=this.form,f={tool_id:this.options.id,tool_version:this.options.version,inputs:$.extend(!0,{},d.form.data.create())};e.wait(!0),Galaxy.emit.debug("tools-form-base::_updateModel()","Sending current state.",f),a.request({type:"POST",url:c,data:f,success:function(a){d.form.update(a.tool_model||a),d.options.update&&d.options.update(a),e.wait(!1),Galaxy.emit.debug("tools-form-base::_updateModel()","Received new model.",a),b.resolve()},error:function(a){Galaxy.emit.debug("tools-form-base::_updateModel()","Refresh request failed.",a),b.reject()}})},_operations:function(){var a=this,b=this.options,d=new c.ButtonMenu({icon:"fa-cubes",title:!b.narrow&&"Versions"||null,tooltip:"Select another tool version"});if(!b.is_workflow&&b.versions&&b.versions.length>1)for(var f in b.versions){var g=b.versions[f];g!=b.version&&d.addMenu({title:"Switch to "+g,version:g,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 h=new c.ButtonMenu({icon:"fa-caret-down",title:!b.narrow&&"Options"||null,tooltip:"View available options"});return b.biostar_url&&(h.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/")}}),h.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)}})),h.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")&&h.addMenu({icon:"fa-download",title:"Download",tooltip:"Download this tool",href:Galaxy.root+"api/tools/"+b.id+"/download",download:b.id}),b.requirements&&b.requirements.length>0&&h.addMenu({icon:"fa-info-circle",title:"Requirements",tooltip:"Display tool requirements",onclick:function(){this.visible?(this.visible=!1,a.form.message.update({message:""})):(this.visible=!0,a.form.message.update({persistent:!0,message:e.requirements(b),status:"info"}))}}),b.sharable_url&&h.addMenu({icon:"fa-external-link",title:"See in Tool Shed",tooltip:"Access the repository",onclick:function(){window.open(b.sharable_url)}}),{menu:h,versions:d}},_footer:function(){var a=this.options;if(""!=a.help&&this.form.$el.append(e.help(a)),a.citations){var b=$("<div/>"),c=new f.ToolCitationCollection;c.tool_id=a.id;var d=new g.CitationListView({el:b,collection:c});d.render(),c.fetch(),this.form.$el.append(b)}}})});
|
|
//# sourceMappingURL=../../../maps/mvc/tools/tools-form-base.js.map
|