mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
2 lines
2.9 KiB
JavaScript
2 lines
2.9 KiB
JavaScript
define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-misc","mvc/ui/ui-portlet","mvc/form/form-repeat","mvc/form/form-input","mvc/form/form-parameters"],function(a,b,c,d,e,f,g){var h=Backbone.View.extend({initialize:function(a,c){this.app=a,this.inputs=c.inputs,c.cls="ui-table-plain",c.cls_tr="section-row",this.table=new b.View(c),this.parameters=new g,this.setElement(this.table.$el),this.render()},render:function(){this.table.delAll();for(var a in this.inputs)this.add(this.inputs[a])},add:function(b){var c=jQuery.extend(!0,{},b);c.id=b.id=a.uid(),this.app.input_list[c.id]=c;var d=c.type;switch(d){case"conditional":this._addConditional(c);break;case"repeat":this._addRepeat(c);break;case"section":this._addSection(c);break;default:this._addRow(c)}},_addConditional:function(a){var b=this;a.test_param.id=a.id,this.app.options.sustain_conditionals&&(a.test_param.disabled=!0);var c=this._addRow(a.test_param);c.model&&c.model.set("onchange",function(c){var d=b.app.data.matchCase(a,c);for(var e in a.cases){var f=a.cases[e],g=a.id+"-section-"+e,h=b.table.get(g),i=!1;for(var j in f.inputs)if(!f.inputs[j].hidden){i=!0;break}e==d&&i?h.fadeIn("fast"):h.hide()}b.app.trigger("change")});for(var d in a.cases){var e=a.id+"-section-"+d,f=new h(this.app,{inputs:a.cases[d].inputs});f.$el.addClass("ui-table-section"),this.table.add(f.$el),this.table.append(e)}c.trigger("change")},_addRepeat:function(a){function b(b){var e=a.id+"-section-"+d++,f=new h(c.app,{inputs:b});g.add({id:e,$el:f.$el,ondel:function(){g.del(e),c.app.trigger("change")}})}for(var c=this,d=0,g=new e.View({title:a.title||"Repeat",title_new:a.title||"",min:a.min,max:a.max,onnew:function(){b(a.inputs),c.app.trigger("change")}}),i=_.size(a.cache),j=0;j<Math.max(Math.max(i,a.min),a.default);j++)b(i>j?a.cache[j]:a.inputs);this.app.options.sustain_repeats&&g.hideOptions();var k=new f(this.app,{label:a.title||a.name,help:a.help,field:g});this.table.add(k.$el),this.table.append(a.id)},_addSection:function(a){var b=new d.View({title:a.title||a.name,cls:"ui-portlet-section",collapsible:!0,collapsible_button:!0,collapsed:!a.expanded});b.append(new h(this.app,{inputs:a.inputs}).$el),b.append($("<div/>").addClass("ui-form-info").html(a.help)),this.app.on("expand",function(a){b.$("#"+a).length>0&&b.expand()}),this.table.add(b.$el),this.table.append(a.id)},_addRow:function(a){var b=this,c=a.id;a.onchange=function(){b.app.trigger("change")};var d=this.parameters.create(a);this.app.field_list[c]=d;var e=new f(this.app,{name:a.name,label:a.label||a.name,value:a.value,text_value:a.text_value,collapsible_value:a.collapsible_value,collapsible_preview:a.collapsible_preview,help:a.help,argument:a.argument,disabled:a.disabled,color:a.color,style:a.style,backdrop:a.backdrop,field:d});return this.app.element_list[c]=e,this.table.add(e.$el),this.table.append(c),a.hidden&&this.table.get(c).hide(),d}});return{View:h}});
|
|
//# sourceMappingURL=../../../maps/mvc/form/form-section.js.map
|