Improve robustness of error message display on tool execution

This commit is contained in:
guerler
2016-07-27 16:45:56 -04:00
parent 43f800b56d
commit 3dcc9adaaf
6 changed files with 15 additions and 12 deletions
+9 -6
View File
@@ -1,13 +1,14 @@
/**
This is the regular tool form.
*/
define([ 'utils/utils', 'mvc/ui/ui-misc', 'mvc/tool/tool-form-base' ],
function( Utils, Ui, ToolFormBase ) {
define([ 'utils/utils', 'mvc/ui/ui-misc', 'mvc/ui/ui-modal', 'mvc/tool/tool-form-base' ],
function( Utils, Ui, Modal, ToolFormBase ) {
var View = ToolFormBase.extend({
initialize: function( options ) {
var self = this;
options.listen_to_history = true;
options.always_refresh = false;
this.modal = parent.Galaxy.modal || new Modal.View();
ToolFormBase.prototype.initialize.call( this, Utils.merge({
customize: function( options ) {
// build execute button
@@ -82,20 +83,22 @@ define([ 'utils/utils', 'mvc/ui/ui-misc', 'mvc/tool/tool-form-base' ],
error : function( response ) {
callback && callback();
Galaxy.emit.debug( 'tool-form::submit', 'Submission failed.', response );
var input_found = false;
if ( response && response.err_data ) {
var error_messages = self.data.matchResponse( response.err_data );
for (var input_id in error_messages) {
self.highlight( input_id, error_messages[ input_id ]);
input_found = true;
break;
}
} else {
var modal = parent.Galaxy.modal;
modal && modal.show({
}
if ( !input_found ) {
self.modal.show({
title : 'Job submission failed',
body : ( response && response.err_msg ) || self._templateError( job_def ),
buttons : {
'Close' : function() {
modal.hide();
self.modal.hide();
}
}
});
+1 -1
View File
@@ -1 +1 @@
{"version":3,"file":"tool-form.js","sources":["../../../src/mvc/tool/tool-form.js"],"names":["define","Utils","Ui","ToolFormBase","View","extend","initialize","options","self","this","listen_to_history","always_refresh","prototype","call","merge","customize","buttons","execute","execute_btn","Button","icon","tooltip","name","version","title","cls","floating","onclick","wait","portlet","disable","submit","unwait","enable","job_id","job_remap","inputs","label","type","display","ignore","value","help","callback","job_def","tool_id","id","tool_version","data","create","trigger","validate","Galaxy","emit","debug","action","root","$f","$","attr","method","enctype","_","each","key","append","hide","appendTo","remove","request","url","success","response","$el","empty","_templateSuccess","parent","currHistoryPanel","refreshContents","error","err_data","error_messages","matchResponse","input_id","highlight","modal","show","body","err_msg","_templateError","Close","job_inputs","batch_n","batch_src","job_input_id","input_value","match","input_field","field_list","input_def","input_list","optional","batch","n","values","length","src","jobs","njobs","njobs_text","$message","addClass","text","outputs","output","hid","JSON","stringify"],"mappings":"AAGAA,QAAS,cAAe,iBAAkB,2BACtC,SAAUC,EAAOC,EAAIC,GACrB,GAAIC,GAAOD,EAAaE,QACpBC,WAAY,SAAUC,GAClB,GAAIC,GAAOC,IACXF,GAAQG,mBAAoB,EAC5BH,EAAQI,gBAAiB,EACzBR,EAAaS,UAAUN,WAAWO,KAAMJ,KAAMR,EAAMa,OAChDC,UAAW,SAAUR,GAEjBA,EAAQS,SACJC,QAASC,YAAc,GAAIhB,GAAGiB,QAC1BC,KAAW,WACXC,QAAW,YAAcd,EAAQe,KAAO,KAAOf,EAAQgB,QAAU,IACjEC,MAAW,UACXC,IAAW,4BACXC,SAAW,QACXC,QAAW,WACPT,YAAYU,OACZpB,EAAKqB,QAAQC,UACbtB,EAAKuB,OAAQxB,EAAS,WAClBW,YAAYc,SACZxB,EAAKqB,QAAQI,eAMxB1B,EAAQ2B,QAAU3B,EAAQ4B,YAC3B5B,EAAQ6B,OAA6B,oBACjCC,MAAc,oCACdf,KAAc,qBACdgB,KAAc,SACdC,QAAc,QACdC,OAAc,aACdC,MAAc,aACdlC,UAAkB,MAAOA,EAAQ2B,SAAY,KAAM,eACnDQ,KAAc,uLAI3BnC,KAOPwB,OAAQ,SAAUxB,EAASoC,GACvB,GAAInC,GAAOC,KACPmC,GACAC,QAAkBtC,EAAQuC,GAC1BC,aAAkBxC,EAAQgB,QAC1Ba,OAAkB3B,KAAKuC,KAAKC,SAGhC,IADAxC,KAAKyC,QAAS,UACR1C,EAAK2C,SAAUP,GAGjB,MAFAQ,QAAOC,KAAKC,MAAO,sBAAuB,gDAC1CX,GAAYA,IAGhB,IAAKpC,EAAQgD,SAAWH,OAAOI,KAAO,oBAAsB,CACxD,GAAIC,GAAKC,EAAG,WAAYC,MAAQJ,OAAQhD,EAAQgD,OAAQK,OAAQrD,EAAQqD,OAAQC,QAAStD,EAAQsD,SAIjG,OAHAC,GAAEC,KAAMnB,EAAQR,OAAQ,SAAUK,EAAOuB,GAAQP,EAAGQ,OAAQP,EAAG,YAAaC,MAAQrC,KAAQ0C,EAAKvB,MAASA,OAC1GgB,EAAGS,OAAOC,SAAU,QAASpC,SAASqC,cACtCzB,GAAYA,KAGhBS,OAAOC,KAAKC,MAAO,sBAAuB,uBAAwBV,GAClE3C,EAAMoE,SACF/B,KAAU,OACVgC,IAAUlB,OAAOI,KAAO,YACxBR,KAAUJ,EACV2B,QAAU,SAAUC,GAChB7B,GAAYA,IACZnC,EAAKiE,IAAIC,QAAQT,OAAQzD,EAAKmE,iBAAkBH,IAChDI,OAAOxB,QAAUwB,OAAOxB,OAAOyB,kBAAoBD,OAAOxB,OAAOyB,iBAAiBC,mBAEtFC,MAAU,SAAUP,GAGhB,GAFA7B,GAAYA,IACZS,OAAOC,KAAKC,MAAO,oBAAqB,qBAAsBkB,GACzDA,GAAYA,EAASQ,SAAW,CACjC,GAAIC,GAAiBzE,EAAKwC,KAAKkC,cAAeV,EAASQ,SACvD,KAAK,GAAIG,KAAYF,GAAgB,CACjCzE,EAAK4E,UAAWD,EAAUF,EAAgBE,GAC1C,YAED,CACH,GAAIE,GAAQT,OAAOxB,OAAOiC,KAC1BA,IAASA,EAAMC,MACX9D,MAAU,wBACV+D,KAAYf,GAAYA,EAASgB,SAAahF,EAAKiF,eAAgB7C,GACnE5B,SACI0E,MAAU,WACNL,EAAMnB,gBAYlCf,SAAU,SAAUP,GAChB,GAAI+C,GAAc/C,EAAQR,OACtBwD,EAAc,GACdC,EAAc,IAClB,KAAM,GAAIC,KAAgBH,GAAa,CACnC,GAAII,GAAcJ,EAAYG,GAC1BX,EAAc1E,KAAKuC,KAAKgD,MAAOF,GAC/BG,EAAcxF,KAAKyF,WAAYf,GAC/BgB,EAAc1F,KAAK2F,WAAYjB,EACnC,IAAMA,GAAagB,GAAcF,EAAjC,CAIA,IAAME,EAAUE,UAA2B,MAAfN,EAExB,MADAtF,MAAK2E,UAAWD,IACT,CAEX,IAAKY,GAAeA,EAAYO,MAAQ,CACpC,GAAIC,GAAIR,EAAYS,OAAOC,OACvBC,EAAMH,EAAI,GAAKR,EAAYS,OAAQ,IAAOT,EAAYS,OAAQ,GAAIE,GACtE,IAAKA,EACD,GAAmB,OAAdb,EACDA,EAAYa,MACT,IAAKb,IAAca,EAEtB,MADAjG,MAAK2E,UAAWD,EAAU,mFACnB,CAGf,IAAiB,KAAZS,EACDA,EAAUW,MACP,IAAKX,IAAYW,EAEpB,MADA9F,MAAK2E,UAAWD,EAAU,gHAAkHoB,EAAI,wDAA0DX,EAAU,UAC7M,OAtBXxC,QAAOC,KAAKC,MAAM,wBAAyB,oCA0BnD,OAAO,GAGXqB,iBAAkB,SAAUH,GACxB,GAAKA,EAASmC,MAAQnC,EAASmC,KAAKF,OAAS,EAAI,CAC7C,GAAIG,GAAQpC,EAASmC,KAAKF,OACtBI,EAAsB,GAATD,EAAa,YAAcA,EAAQ,aAChDE,EAAWpD,EAAG,UAAWqD,SAAU,oBACtB9C,OAAQP,EAAG,QAASsD,KAAMH,EAAa,gFAKxD,OAJA/C,GAAEC,KAAMS,EAASyC,QAAS,SAAUC,GAChCJ,EAAS7C,OAAQP,EAAG,QAASqD,SAAU,cAAe9C,OAAQP,EAAG,QAASsD,KAAME,EAAOC,IAAM,KAAOD,EAAO5F,UAE/GwF,EAAS7C,OAAQP,EAAG,QAASO,OAAQ,QAAS+C,KAAM,yPAC7CF,EAEP,MAAOrG,MAAKgF,eAAgBjB,IAIpCiB,eAAgB,SAAUjB,GACtB,MAAQd,GAAG,UAAWqD,SAAU,qBAC3B9C,OAAQP,EAAG,QAASsD,KAAM,sGAC1B/C,OAAQP,EAAG,UAAWsD,KAAMI,KAAKC,UAAW7C,EAAU,KAAM,OAIzE,QACIpE,KAAMA"}
{"version":3,"file":"tool-form.js","sources":["../../../src/mvc/tool/tool-form.js"],"names":["define","Utils","Ui","Modal","ToolFormBase","View","extend","initialize","options","self","this","listen_to_history","always_refresh","modal","parent","Galaxy","prototype","call","merge","customize","buttons","execute","execute_btn","Button","icon","tooltip","name","version","title","cls","floating","onclick","wait","portlet","disable","submit","unwait","enable","job_id","job_remap","inputs","label","type","display","ignore","value","help","callback","job_def","tool_id","id","tool_version","data","create","trigger","validate","emit","debug","action","root","$f","$","attr","method","enctype","_","each","key","append","hide","appendTo","remove","request","url","success","response","$el","empty","_templateSuccess","currHistoryPanel","refreshContents","error","input_found","err_data","error_messages","matchResponse","input_id","highlight","show","body","err_msg","_templateError","Close","job_inputs","batch_n","batch_src","job_input_id","input_value","match","input_field","field_list","input_def","input_list","optional","batch","n","values","length","src","jobs","njobs","njobs_text","$message","addClass","text","outputs","output","hid","JSON","stringify"],"mappings":"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"}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,2 +1,2 @@
define(["utils/utils","mvc/ui/ui-misc","mvc/tool/tool-form-base"],function(a,b,c){var d=c.extend({initialize:function(d){var e=this;d.listen_to_history=!0,d.always_refresh=!1,c.prototype.initialize.call(this,a.merge({customize:function(a){a.buttons={execute:execute_btn=new b.Button({icon:"fa-check",tooltip:"Execute: "+a.name+" ("+a.version+")",title:"Execute",cls:"ui-button btn btn-primary",floating:"clear",onclick:function(){execute_btn.wait(),e.portlet.disable(),e.submit(a,function(){execute_btn.unwait(),e.portlet.enable()})}})},a.job_id&&a.job_remap&&(a.inputs.rerun_remap_job_id={label:"Resume dependencies from this job",name:"rerun_remap_job_id",type:"select",display:"radio",ignore:"__ignore__",value:"__ignore__",options:[["Yes",a.job_id],["No","__ignore__"]],help:"The previous run of this tool failed and other tools were waiting for it to finish successfully. Use this option to resume those tools using the new output(s) of this tool run."})}},d))},submit:function(b,c){var d=this,e={tool_id:b.id,tool_version:b.version,inputs:this.data.create()};if(this.trigger("reset"),!d.validate(e))return Galaxy.emit.debug("tool-form::submit()","Submission canceled. Validation failed."),void(c&&c());if(b.action!==Galaxy.root+"tool_runner/index"){var f=$("<form/>").attr({action:b.action,method:b.method,enctype:b.enctype});return _.each(e.inputs,function(a,b){f.append($("<input/>").attr({name:b,value:a}))}),f.hide().appendTo("body").submit().remove(),void(c&&c())}Galaxy.emit.debug("tool-form::submit()","Validation complete.",e),a.request({type:"POST",url:Galaxy.root+"api/tools",data:e,success:function(a){c&&c(),d.$el.empty().append(d._templateSuccess(a)),parent.Galaxy&&parent.Galaxy.currHistoryPanel&&parent.Galaxy.currHistoryPanel.refreshContents()},error:function(a){if(c&&c(),Galaxy.emit.debug("tool-form::submit","Submission failed.",a),a&&a.err_data){var b=d.data.matchResponse(a.err_data);for(var f in b){d.highlight(f,b[f]);break}}else{var g=parent.Galaxy.modal;g&&g.show({title:"Job submission failed",body:a&&a.err_msg||d._templateError(e),buttons:{Close:function(){g.hide()}}})}}})},validate:function(a){var b=a.inputs,c=-1,d=null;for(var e in b){var f=b[e],g=this.data.match(e),h=this.field_list[g],i=this.input_list[g];if(g&&i&&h){if(!i.optional&&null==f)return this.highlight(g),!1;if(f&&f.batch){var j=f.values.length,k=j>0&&f.values[0]&&f.values[0].src;if(k)if(null===d)d=k;else if(d!==k)return this.highlight(g,"Please select either dataset or dataset list fields for all batch mode fields."),!1;if(-1===c)c=j;else if(c!==j)return this.highlight(g,"Please make sure that you select the same number of inputs for all batch mode fields. This field contains <b>"+j+"</b> selection(s) while a previous field contains <b>"+c+"</b>."),!1}}else Galaxy.emit.debug("tool-form::validate()","Retrieving input objects failed.")}return!0},_templateSuccess:function(a){if(a.jobs&&a.jobs.length>0){var b=a.jobs.length,c=1==b?"1 job has":b+" jobs have",d=$("<div/>").addClass("donemessagelarge").append($("<p/>").text(c+" been successfully added to the queue - resulting in the following datasets:"));return _.each(a.outputs,function(a){d.append($("<p/>").addClass("messagerow").append($("<b/>").text(a.hid+": "+a.name)))}),d.append($("<p/>").append("<b/>").text("You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from 'running' to 'finished' if completed successfully or 'error' if problems were encountered.")),d}return this._templateError(a)},_templateError:function(a){return $("<div/>").addClass("errormessagelarge").append($("<p/>").text("The server could not complete the request. Please contact the Galaxy Team if this error persists.")).append($("<pre/>").text(JSON.stringify(a,null,4)))}});return{View:d}});
define(["utils/utils","mvc/ui/ui-misc","mvc/ui/ui-modal","mvc/tool/tool-form-base"],function(a,b,c,d){var e=d.extend({initialize:function(e){var f=this;e.listen_to_history=!0,e.always_refresh=!1,this.modal=parent.Galaxy.modal||new c.View,d.prototype.initialize.call(this,a.merge({customize:function(a){a.buttons={execute:execute_btn=new b.Button({icon:"fa-check",tooltip:"Execute: "+a.name+" ("+a.version+")",title:"Execute",cls:"ui-button btn btn-primary",floating:"clear",onclick:function(){execute_btn.wait(),f.portlet.disable(),f.submit(a,function(){execute_btn.unwait(),f.portlet.enable()})}})},a.job_id&&a.job_remap&&(a.inputs.rerun_remap_job_id={label:"Resume dependencies from this job",name:"rerun_remap_job_id",type:"select",display:"radio",ignore:"__ignore__",value:"__ignore__",options:[["Yes",a.job_id],["No","__ignore__"]],help:"The previous run of this tool failed and other tools were waiting for it to finish successfully. Use this option to resume those tools using the new output(s) of this tool run."})}},e))},submit:function(b,c){var d=this,e={tool_id:b.id,tool_version:b.version,inputs:this.data.create()};if(this.trigger("reset"),!d.validate(e))return Galaxy.emit.debug("tool-form::submit()","Submission canceled. Validation failed."),void(c&&c());if(b.action!==Galaxy.root+"tool_runner/index"){var f=$("<form/>").attr({action:b.action,method:b.method,enctype:b.enctype});return _.each(e.inputs,function(a,b){f.append($("<input/>").attr({name:b,value:a}))}),f.hide().appendTo("body").submit().remove(),void(c&&c())}Galaxy.emit.debug("tool-form::submit()","Validation complete.",e),a.request({type:"POST",url:Galaxy.root+"api/tools",data:e,success:function(a){c&&c(),d.$el.empty().append(d._templateSuccess(a)),parent.Galaxy&&parent.Galaxy.currHistoryPanel&&parent.Galaxy.currHistoryPanel.refreshContents()},error:function(a){c&&c(),Galaxy.emit.debug("tool-form::submit","Submission failed.",a);var b=!1;if(a&&a.err_data){var f=d.data.matchResponse(a.err_data);for(var g in f){d.highlight(g,f[g]),b=!0;break}}b||d.modal.show({title:"Job submission failed",body:a&&a.err_msg||d._templateError(e),buttons:{Close:function(){d.modal.hide()}}})}})},validate:function(a){var b=a.inputs,c=-1,d=null;for(var e in b){var f=b[e],g=this.data.match(e),h=this.field_list[g],i=this.input_list[g];if(g&&i&&h){if(!i.optional&&null==f)return this.highlight(g),!1;if(f&&f.batch){var j=f.values.length,k=j>0&&f.values[0]&&f.values[0].src;if(k)if(null===d)d=k;else if(d!==k)return this.highlight(g,"Please select either dataset or dataset list fields for all batch mode fields."),!1;if(-1===c)c=j;else if(c!==j)return this.highlight(g,"Please make sure that you select the same number of inputs for all batch mode fields. This field contains <b>"+j+"</b> selection(s) while a previous field contains <b>"+c+"</b>."),!1}}else Galaxy.emit.debug("tool-form::validate()","Retrieving input objects failed.")}return!0},_templateSuccess:function(a){if(a.jobs&&a.jobs.length>0){var b=a.jobs.length,c=1==b?"1 job has":b+" jobs have",d=$("<div/>").addClass("donemessagelarge").append($("<p/>").text(c+" been successfully added to the queue - resulting in the following datasets:"));return _.each(a.outputs,function(a){d.append($("<p/>").addClass("messagerow").append($("<b/>").text(a.hid+": "+a.name)))}),d.append($("<p/>").append("<b/>").text("You can check the status of queued jobs and view the resulting data by refreshing the History pane. When the job has been run the status will change from 'running' to 'finished' if completed successfully or 'error' if problems were encountered.")),d}return this._templateError(a)},_templateError:function(a){return $("<div/>").addClass("errormessagelarge").append($("<p/>").text("The server could not complete the request. Please contact the Galaxy Team if this error persists.")).append($("<pre/>").text(JSON.stringify(a,null,4)))}});return{View:e}});
//# sourceMappingURL=../../../maps/mvc/tool/tool-form.js.map