commit/galaxy-central: guerler: ToolForm: Update repeat blocks

1 new commit in galaxy-central: https://bitbucket.org/galaxy/galaxy-central/commits/394cf89ac004/ Changeset: 394cf89ac004 User: guerler Date: 2015-02-07 04:23:26+00:00 Summary: ToolForm: Update repeat blocks Affected #: 6 files diff -r ade75ceb5427c588756ab888c3944cf4d25ada73 -r 394cf89ac0044524bf1f2dac6971a4d593c714ec client/galaxy/scripts/mvc/tools/tools-repeat.js --- a/client/galaxy/scripts/mvc/tools/tools-repeat.js +++ b/client/galaxy/scripts/mvc/tools/tools-repeat.js @@ -6,7 +6,9 @@ var View = Backbone.View.extend({ // default options optionsDefault : { - max : null + title : 'Section', + max : null, + min : null }, /** Initialize @@ -14,13 +16,13 @@ initialize : function(options) { // configure options this.options = Utils.merge(options, this.optionsDefault); - + // create new element this.setElement('<div/>'); - + // link this var self = this; - + // create button this.button_new = new Ui.ButtonIcon({ icon : 'fa-plus', @@ -33,32 +35,44 @@ } } }); - + // create table this.table = new Table.View({ cls : 'ui-table-plain', content : '' }); - + // append button this.$el.append(this.table.$el); - + // add button this.$el.append($('<div/>').append(this.button_new.$el)); - + // clear list this.list = {}; + + // number of available repeats + this.n = 0; }, - + /** Number of repeat blocks */ size: function() { - return _.size(this.list); + return this.n; }, - + /** Add new repeat block */ add: function(options) { + // repeat block already exists + if (!options.id || this.list[options.id]) { + console.debug('tools-repeat::add - Duplicate repeat block id.'); + return; + } + + // increase repeat block counter + this.n++; + // delete button var button_delete = new Ui.ButtonIcon({ icon : 'fa-trash-o', @@ -70,7 +84,7 @@ } } }); - + // create portlet var portlet = new Portlet.View({ id : options.id, @@ -80,53 +94,67 @@ button_delete : button_delete } }); - - // hide button - if (!options.ondel) { - button_delete.remove(); - } - + // append content portlet.append(options.$el); - + // tag as section row portlet.$el.addClass('section-row'); - + // append to dom this.list[options.id] = portlet; - + // append to dom this.table.add(portlet.$el); this.table.append('row_' + options.id, true); - + // validate maximum - if (this.options.max > 0 && this.size() >= this.options.max) { + if (this.options.max > 0 && this.n >= this.options.max) { this.button_new.disable(); } + + // refresh view + this._refresh(); }, - + /** Delete repeat block */ del: function(id) { - if (this.list[id]) { - // delete table row - var table_row = this.table.get('row_' + id); - table_row.remove(); - - // remove from list - delete this.list[id]; - - // enable new button - this.button_new.enable(); + // could not find element + if (!this.list[id]) { + console.debug('tools-repeat::del - Invalid repeat block id.'); + return; } + + // decrease repeat block counter + this.n--; + + // delete table row + var table_row = this.table.get('row_' + id); + table_row.remove(); + + // remove from list + delete this.list[id]; + + // enable new button + this.button_new.enable(); + + // refresh delete button visibility + this._refresh(); }, - - /** Retitle/Enumerate repeat blocks + + /** Refresh view */ - retitle: function(new_title) { + _refresh: function() { var index = 0; for (var id in this.list) { - this.list[id].title(++index + ': ' + new_title); + var portlet = this.list[id]; + portlet.title(++index + ': ' + this.options.title); + if (this.n > this.options.min) { + portlet.showOperation('button_delete'); + } else { + portlet.hideOperation('button_delete'); + } } } }); diff -r ade75ceb5427c588756ab888c3944cf4d25ada73 -r 394cf89ac0044524bf1f2dac6971a4d593c714ec client/galaxy/scripts/mvc/tools/tools-section.js --- a/client/galaxy/scripts/mvc/tools/tools-section.js +++ b/client/galaxy/scripts/mvc/tools/tools-section.js @@ -161,26 +161,26 @@ // block index var block_index = 0; + // create repeat block element + var repeat = new Repeat.View({ + title : input_def.title, + title_new : input_def.title, + min : input_def.min, + max : input_def.max, + onnew : function() { + // create + create(input_def.inputs); + + // trigger refresh + self.app.trigger('refresh'); + } + }); + // helper function to create new repeat blocks - function create (inputs, deleteable) { + function create (inputs) { // create id tag var sub_section_id = input_def.id + '-section-' + (block_index++); - // enable/disable repeat delete button - var ondel = null; - if (deleteable) { - ondel = function() { - // delete repeat block - repeat.del(sub_section_id); - - // retitle repeat block - repeat.retitle(input_def.title); - - // trigger refresh - self.app.trigger('refresh'); - } - } - // create sub section var sub_section = new View(self.app, { inputs : inputs @@ -189,37 +189,23 @@ // add tab repeat.add({ id : sub_section_id, - title : input_def.title, $el : sub_section.$el, - ondel : ondel + ondel : function() { + // delete repeat block + repeat.del(sub_section_id); + + // trigger refresh + self.app.trigger('refresh'); + } }); - - // retitle repeat block - repeat.retitle(input_def.title); } // - // create repeat block element - // - var repeat = new Repeat.View({ - title_new : input_def.title, - max : input_def.max, - onnew : function() { - // create - create(input_def.inputs, true); - - // trigger refresh - self.app.trigger('refresh'); - } - }); - - // // add parsed/minimum number of repeat blocks // var n_min = input_def.min; var n_cache = _.size(input_def.cache); for (var i = 0; i < Math.max(n_cache, n_min); i++) { - // select input source var inputs = null; if (i < n_cache) { inputs = input_def.cache[i]; @@ -228,7 +214,7 @@ } // create repeat block - create(inputs, i >= n_min); + create(inputs); } // create input field wrapper diff -r ade75ceb5427c588756ab888c3944cf4d25ada73 -r 394cf89ac0044524bf1f2dac6971a4d593c714ec static/scripts/mvc/tools/tools-repeat.js --- a/static/scripts/mvc/tools/tools-repeat.js +++ b/static/scripts/mvc/tools/tools-repeat.js @@ -6,7 +6,9 @@ var View = Backbone.View.extend({ // default options optionsDefault : { - max : null + title : 'Section', + max : null, + min : null }, /** Initialize @@ -14,13 +16,13 @@ initialize : function(options) { // configure options this.options = Utils.merge(options, this.optionsDefault); - + // create new element this.setElement('<div/>'); - + // link this var self = this; - + // create button this.button_new = new Ui.ButtonIcon({ icon : 'fa-plus', @@ -33,32 +35,44 @@ } } }); - + // create table this.table = new Table.View({ cls : 'ui-table-plain', content : '' }); - + // append button this.$el.append(this.table.$el); - + // add button this.$el.append($('<div/>').append(this.button_new.$el)); - + // clear list this.list = {}; + + // number of available repeats + this.n = 0; }, - + /** Number of repeat blocks */ size: function() { - return _.size(this.list); + return this.n; }, - + /** Add new repeat block */ add: function(options) { + // repeat block already exists + if (!options.id || this.list[options.id]) { + console.debug('tools-repeat::add - Duplicate repeat block id.'); + return; + } + + // increase repeat block counter + this.n++; + // delete button var button_delete = new Ui.ButtonIcon({ icon : 'fa-trash-o', @@ -70,7 +84,7 @@ } } }); - + // create portlet var portlet = new Portlet.View({ id : options.id, @@ -80,53 +94,67 @@ button_delete : button_delete } }); - - // hide button - if (!options.ondel) { - button_delete.remove(); - } - + // append content portlet.append(options.$el); - + // tag as section row portlet.$el.addClass('section-row'); - + // append to dom this.list[options.id] = portlet; - + // append to dom this.table.add(portlet.$el); this.table.append('row_' + options.id, true); - + // validate maximum - if (this.options.max > 0 && this.size() >= this.options.max) { + if (this.options.max > 0 && this.n >= this.options.max) { this.button_new.disable(); } + + // refresh view + this._refresh(); }, - + /** Delete repeat block */ del: function(id) { - if (this.list[id]) { - // delete table row - var table_row = this.table.get('row_' + id); - table_row.remove(); - - // remove from list - delete this.list[id]; - - // enable new button - this.button_new.enable(); + // could not find element + if (!this.list[id]) { + console.debug('tools-repeat::del - Invalid repeat block id.'); + return; } + + // decrease repeat block counter + this.n--; + + // delete table row + var table_row = this.table.get('row_' + id); + table_row.remove(); + + // remove from list + delete this.list[id]; + + // enable new button + this.button_new.enable(); + + // refresh delete button visibility + this._refresh(); }, - - /** Retitle/Enumerate repeat blocks + + /** Refresh view */ - retitle: function(new_title) { + _refresh: function() { var index = 0; for (var id in this.list) { - this.list[id].title(++index + ': ' + new_title); + var portlet = this.list[id]; + portlet.title(++index + ': ' + this.options.title); + if (this.n > this.options.min) { + portlet.showOperation('button_delete'); + } else { + portlet.hideOperation('button_delete'); + } } } }); diff -r ade75ceb5427c588756ab888c3944cf4d25ada73 -r 394cf89ac0044524bf1f2dac6971a4d593c714ec static/scripts/mvc/tools/tools-section.js --- a/static/scripts/mvc/tools/tools-section.js +++ b/static/scripts/mvc/tools/tools-section.js @@ -161,26 +161,26 @@ // block index var block_index = 0; + // create repeat block element + var repeat = new Repeat.View({ + title : input_def.title, + title_new : input_def.title, + min : input_def.min, + max : input_def.max, + onnew : function() { + // create + create(input_def.inputs); + + // trigger refresh + self.app.trigger('refresh'); + } + }); + // helper function to create new repeat blocks - function create (inputs, deleteable) { + function create (inputs) { // create id tag var sub_section_id = input_def.id + '-section-' + (block_index++); - // enable/disable repeat delete button - var ondel = null; - if (deleteable) { - ondel = function() { - // delete repeat block - repeat.del(sub_section_id); - - // retitle repeat block - repeat.retitle(input_def.title); - - // trigger refresh - self.app.trigger('refresh'); - } - } - // create sub section var sub_section = new View(self.app, { inputs : inputs @@ -189,37 +189,23 @@ // add tab repeat.add({ id : sub_section_id, - title : input_def.title, $el : sub_section.$el, - ondel : ondel + ondel : function() { + // delete repeat block + repeat.del(sub_section_id); + + // trigger refresh + self.app.trigger('refresh'); + } }); - - // retitle repeat block - repeat.retitle(input_def.title); } // - // create repeat block element - // - var repeat = new Repeat.View({ - title_new : input_def.title, - max : input_def.max, - onnew : function() { - // create - create(input_def.inputs, true); - - // trigger refresh - self.app.trigger('refresh'); - } - }); - - // // add parsed/minimum number of repeat blocks // var n_min = input_def.min; var n_cache = _.size(input_def.cache); for (var i = 0; i < Math.max(n_cache, n_min); i++) { - // select input source var inputs = null; if (i < n_cache) { inputs = input_def.cache[i]; @@ -228,7 +214,7 @@ } // create repeat block - create(inputs, i >= n_min); + create(inputs); } // create input field wrapper diff -r ade75ceb5427c588756ab888c3944cf4d25ada73 -r 394cf89ac0044524bf1f2dac6971a4d593c714ec static/scripts/packed/mvc/tools/tools-repeat.js --- a/static/scripts/packed/mvc/tools/tools-repeat.js +++ b/static/scripts/packed/mvc/tools/tools-repeat.js @@ -1,1 +1,1 @@ -define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-portlet","mvc/ui/ui-misc"],function(c,a,b,e){var d=Backbone.View.extend({optionsDefault:{max:null},initialize:function(g){this.options=c.merge(g,this.optionsDefault);this.setElement("<div/>");var f=this;this.button_new=new e.ButtonIcon({icon:"fa-plus",title:"Insert "+g.title_new,tooltip:"Add new "+g.title_new+" block",floating:"clear",onclick:function(){if(g.onnew){g.onnew()}}});this.table=new a.View({cls:"ui-table-plain",content:""});this.$el.append(this.table.$el);this.$el.append($("<div/>").append(this.button_new.$el));this.list={}},size:function(){return _.size(this.list)},add:function(g){var f=new e.ButtonIcon({icon:"fa-trash-o",tooltip:"Delete this repeat block",cls:"ui-button-icon-plain",onclick:function(){if(g.ondel){g.ondel()}}});var h=new b.View({id:g.id,title:"<b>"+g.title+"</b>",cls:"ui-portlet-repeat",operations:{button_delete:f}});if(!g.ondel){f.remove()}h.append(g.$el);h.$el.addClass("section-row");this.list[g.id]=h;this.table.add(h.$el);this.table.append("row_"+g.id,true);if(this.options.max>0&&this.size()>=this.options.max){this.button_new.disable()}},del:function(g){if(this.list[g]){var f=this.table.get("row_"+g);f.remove();delete this.list[g];this.button_new.enable()}},retitle:function(g){var f=0;for(var h in this.list){this.list[h].title(++f+": "+g)}}});return{View:d}}); \ No newline at end of file +define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-portlet","mvc/ui/ui-misc"],function(c,a,b,e){var d=Backbone.View.extend({optionsDefault:{title:"Section",max:null,min:null},initialize:function(g){this.options=c.merge(g,this.optionsDefault);this.setElement("<div/>");var f=this;this.button_new=new e.ButtonIcon({icon:"fa-plus",title:"Insert "+g.title_new,tooltip:"Add new "+g.title_new+" block",floating:"clear",onclick:function(){if(g.onnew){g.onnew()}}});this.table=new a.View({cls:"ui-table-plain",content:""});this.$el.append(this.table.$el);this.$el.append($("<div/>").append(this.button_new.$el));this.list={};this.n=0},size:function(){return this.n},add:function(g){if(!g.id||this.list[g.id]){console.debug("tools-repeat::add - Duplicate repeat block id.");return}this.n++;var f=new e.ButtonIcon({icon:"fa-trash-o",tooltip:"Delete this repeat block",cls:"ui-button-icon-plain",onclick:function(){if(g.ondel){g.ondel()}}});var h=new b.View({id:g.id,title:"<b>"+g.title+"</b>",cls:"ui-portlet-repeat",operations:{button_delete:f}});h.append(g.$el);h.$el.addClass("section-row");this.list[g.id]=h;this.table.add(h.$el);this.table.append("row_"+g.id,true);if(this.options.max>0&&this.n>=this.options.max){this.button_new.disable()}this._refresh()},del:function(g){if(!this.list[g]){console.debug("tools-repeat::del - Invalid repeat block id.");return}this.n--;var f=this.table.get("row_"+g);f.remove();delete this.list[g];this.button_new.enable();this._refresh()},_refresh:function(){var f=0;for(var h in this.list){var g=this.list[h];g.title(++f+": "+this.options.title);if(this.n>this.options.min){g.showOperation("button_delete")}else{g.hideOperation("button_delete")}}}});return{View:d}}); \ No newline at end of file diff -r ade75ceb5427c588756ab888c3944cf4d25ada73 -r 394cf89ac0044524bf1f2dac6971a4d593c714ec static/scripts/packed/mvc/tools/tools-section.js --- a/static/scripts/packed/mvc/tools/tools-section.js +++ b/static/scripts/packed/mvc/tools/tools-section.js @@ -1,1 +1,1 @@ -define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-misc","mvc/ui/ui-portlet","mvc/tools/tools-repeat","mvc/tools/tools-select-content","mvc/tools/tools-input"],function(e,b,h,d,c,a,f){var g=Backbone.View.extend({initialize:function(j,i){this.app=j;this.inputs=i.inputs;i.cls="ui-table-plain";i.cls_tr="section-row";this.table=new b.View(i);this.setElement(this.table.$el);this.render()},render:function(){this.table.delAll();for(var j in this.inputs){this.add(this.inputs[j])}},add:function(k){var j=this;var i=jQuery.extend(true,{},k);i.id=k.id=e.uuid();this.app.input_list[i.id]=i;var l=i.type;switch(l){case"conditional":this._addConditional(i);break;case"repeat":this._addRepeat(i);break;case"section":this._addSection(i);break;default:this._addRow(i)}},_addConditional:function(j){var k=this;j.test_param.id=j.id;var n=this._addRow(j.test_param);n.options.onchange=function(w){var v=k.app.tree.matchCase(j,w);for(var u in j.cases){var q=j.cases[u];var t=j.id+"-section-"+u;var p=k.table.get(t);var s=false;for(var r in q.inputs){if(!q.inputs[r].hidden){s=true;break}}if(u==v&&s){p.fadeIn("fast")}else{p.hide()}}k.app.trigger("refresh")};for(var m in j.cases){var l=j.id+"-section-"+m;var o=new g(this.app,{inputs:j.cases[m].inputs});o.$el.addClass("ui-table-section");this.table.add(o.$el);this.table.append(l)}n.trigger("change")},_addRepeat:function(p){var s=this;var q=0;function n(i,u){var t=p.id+"-section-"+(q++);var v=null;if(u){v=function(){l.del(t);l.retitle(p.title);s.app.trigger("refresh")}}var w=new g(s.app,{inputs:i});l.add({id:t,title:p.title,$el:w.$el,ondel:v});l.retitle(p.title)}var l=new c.View({title_new:p.title,max:p.max,onnew:function(){n(p.inputs,true);s.app.trigger("refresh")}});var j=p.min;var r=_.size(p.cache);for(var m=0;m<Math.max(r,j);m++){var o=null;if(m<r){o=p.cache[m]}else{o=p.inputs}n(o,m>=j)}var k=new f(this.app,{label:p.title,help:p.help,field:l});this.table.add(k.$el);this.table.append(p.id)},_addSection:function(i){var j=this;var n=new g(j.app,{inputs:i.inputs});var m=new h.ButtonIcon({icon:"fa-eye-slash",tooltip:"Show/hide section",cls:"ui-button-icon-plain"});var l=new d.View({title:i.label,cls:"ui-portlet-section",operations:{button_visible:m}});l.append(n.$el);l.append($("<div/>").addClass("ui-table-form-info").html(i.help));var k=false;l.$content.hide();l.$header.css("cursor","pointer");l.$header.on("click",function(){if(k){k=false;l.$content.hide();m.setIcon("fa-eye-slash")}else{k=true;l.$content.fadeIn("fast");m.setIcon("fa-eye")}});if(i.expand){l.$header.trigger("click")}this.table.add(l.$el);this.table.append(i.id)},_addRow:function(i){var l=i.id;var j=this._createField(i);this.app.field_list[l]=j;if(i.default_value===undefined){i.default_value=i.value}var k=new f(this.app,{label:i.label,default_value:i.default_value,optional:i.optional,help:i.help,field:j});this.app.element_list[l]=k;this.table.add(k.$el);this.table.append(l);if(i.hidden){this.table.get(l).hide()}return j},_createField:function(i){var j=null;switch(i.type){case"text":j=this._fieldText(i);break;case"select":j=this._fieldSelect(i);break;case"data":j=this._fieldData(i);break;case"data_collection":j=this._fieldData(i);break;case"data_column":i.error_text="Missing columns in referenced dataset.";j=this._fieldSelect(i);break;case"hidden":j=this._fieldHidden(i);break;case"hidden_data":j=this._fieldHidden(i);break;case"integer":j=this._fieldSlider(i);break;case"float":j=this._fieldSlider(i);break;case"boolean":j=this._fieldBoolean(i);break;case"genomebuild":i.searchable=true;j=this._fieldSelect(i);break;case"drill_down":j=this._fieldDrilldown(i);break;case"baseurl":j=this._fieldHidden(i);break;default:this.app.incompatible=true;if(i.options){j=this._fieldSelect(i)}else{j=this._fieldText(i)}console.debug("tools-form::_addRow() : Auto matched field type ("+i.type+").")}if(i.value!==undefined){j.value(i.value)}return j},_fieldData:function(i){if(!this.app.options.is_dynamic){i.info="Data input '"+i.name+"' ("+e.textify(i.extensions.toString())+")";i.value=null;return this._fieldHidden(i)}var j=this;return new a.View(this.app,{id:"field-"+i.id,extensions:i.extensions,optional:i.optional,multiple:i.multiple,type:i.type,data:i.options,onchange:function(){j.app.trigger("refresh")}})},_fieldSelect:function(j){if(!this.app.options.is_dynamic&&j.is_dynamic){return this._fieldText(j)}var l=[];for(var m in j.options){var n=j.options[m];l.push({label:n[0],value:n[1]})}var o=h.Select;switch(j.display){case"checkboxes":o=h.Checkbox;break;case"radio":o=h.Radio;break}var k=this;return new o.View({id:"field-"+j.id,data:l,error_text:j.error_text||"No options available",multiple:j.multiple,searchable:j.searchable,onchange:function(){k.app.trigger("refresh")}})},_fieldDrilldown:function(i){if(!this.app.options.is_dynamic&&i.is_dynamic){return this._fieldText(i)}var j=this;return new h.Drilldown.View({id:"field-"+i.id,data:i.options,display:i.display,onchange:function(){j.app.trigger("refresh")}})},_fieldText:function(i){if(i.options){i.area=i.multiple;if(!e.validate(i.value)){i.value=""}else{if(i.value instanceof Array){i.value=value.toString()}else{i.value=String(i.value).replace(/[\[\]'"\s]/g,"");if(i.multiple){i.value=i.value.replace(/,/g,"\n")}}}}var j=this;return new h.Input({id:"field-"+i.id,area:i.area,onchange:function(){j.app.trigger("refresh")}})},_fieldSlider:function(i){var j=this;return new h.Slider.View({id:"field-"+i.id,precise:i.type=="float",min:i.min,max:i.max,onchange:function(){j.app.trigger("refresh")}})},_fieldHidden:function(i){return new h.Hidden({id:"field-"+i.id,info:i.info})},_fieldBoolean:function(i){var j=this;return new h.RadioButton.View({id:"field-"+i.id,data:[{label:"Yes",value:"true"},{label:"No",value:"false"}],onchange:function(){j.app.trigger("refresh")}})}});return{View:g}}); \ No newline at end of file +define(["utils/utils","mvc/ui/ui-table","mvc/ui/ui-misc","mvc/ui/ui-portlet","mvc/tools/tools-repeat","mvc/tools/tools-select-content","mvc/tools/tools-input"],function(e,b,h,d,c,a,f){var g=Backbone.View.extend({initialize:function(j,i){this.app=j;this.inputs=i.inputs;i.cls="ui-table-plain";i.cls_tr="section-row";this.table=new b.View(i);this.setElement(this.table.$el);this.render()},render:function(){this.table.delAll();for(var j in this.inputs){this.add(this.inputs[j])}},add:function(k){var j=this;var i=jQuery.extend(true,{},k);i.id=k.id=e.uuid();this.app.input_list[i.id]=i;var l=i.type;switch(l){case"conditional":this._addConditional(i);break;case"repeat":this._addRepeat(i);break;case"section":this._addSection(i);break;default:this._addRow(i)}},_addConditional:function(j){var k=this;j.test_param.id=j.id;var n=this._addRow(j.test_param);n.options.onchange=function(w){var v=k.app.tree.matchCase(j,w);for(var u in j.cases){var q=j.cases[u];var t=j.id+"-section-"+u;var p=k.table.get(t);var s=false;for(var r in q.inputs){if(!q.inputs[r].hidden){s=true;break}}if(u==v&&s){p.fadeIn("fast")}else{p.hide()}}k.app.trigger("refresh")};for(var m in j.cases){var l=j.id+"-section-"+m;var o=new g(this.app,{inputs:j.cases[m].inputs});o.$el.addClass("ui-table-section");this.table.add(o.$el);this.table.append(l)}n.trigger("change")},_addRepeat:function(p){var s=this;var q=0;var l=new c.View({title:p.title,title_new:p.title,min:p.min,max:p.max,onnew:function(){n(p.inputs);s.app.trigger("refresh")}});function n(i){var t=p.id+"-section-"+(q++);var u=new g(s.app,{inputs:i});l.add({id:t,$el:u.$el,ondel:function(){l.del(t);s.app.trigger("refresh")}})}var j=p.min;var r=_.size(p.cache);for(var m=0;m<Math.max(r,j);m++){var o=null;if(m<r){o=p.cache[m]}else{o=p.inputs}n(o)}var k=new f(this.app,{label:p.title,help:p.help,field:l});this.table.add(k.$el);this.table.append(p.id)},_addSection:function(i){var j=this;var n=new g(j.app,{inputs:i.inputs});var m=new h.ButtonIcon({icon:"fa-eye-slash",tooltip:"Show/hide section",cls:"ui-button-icon-plain"});var l=new d.View({title:i.label,cls:"ui-portlet-section",operations:{button_visible:m}});l.append(n.$el);l.append($("<div/>").addClass("ui-table-form-info").html(i.help));var k=false;l.$content.hide();l.$header.css("cursor","pointer");l.$header.on("click",function(){if(k){k=false;l.$content.hide();m.setIcon("fa-eye-slash")}else{k=true;l.$content.fadeIn("fast");m.setIcon("fa-eye")}});if(i.expand){l.$header.trigger("click")}this.table.add(l.$el);this.table.append(i.id)},_addRow:function(i){var l=i.id;var j=this._createField(i);this.app.field_list[l]=j;if(i.default_value===undefined){i.default_value=i.value}var k=new f(this.app,{label:i.label,default_value:i.default_value,optional:i.optional,help:i.help,field:j});this.app.element_list[l]=k;this.table.add(k.$el);this.table.append(l);if(i.hidden){this.table.get(l).hide()}return j},_createField:function(i){var j=null;switch(i.type){case"text":j=this._fieldText(i);break;case"select":j=this._fieldSelect(i);break;case"data":j=this._fieldData(i);break;case"data_collection":j=this._fieldData(i);break;case"data_column":i.error_text="Missing columns in referenced dataset.";j=this._fieldSelect(i);break;case"hidden":j=this._fieldHidden(i);break;case"hidden_data":j=this._fieldHidden(i);break;case"integer":j=this._fieldSlider(i);break;case"float":j=this._fieldSlider(i);break;case"boolean":j=this._fieldBoolean(i);break;case"genomebuild":i.searchable=true;j=this._fieldSelect(i);break;case"drill_down":j=this._fieldDrilldown(i);break;case"baseurl":j=this._fieldHidden(i);break;default:this.app.incompatible=true;if(i.options){j=this._fieldSelect(i)}else{j=this._fieldText(i)}console.debug("tools-form::_addRow() : Auto matched field type ("+i.type+").")}if(i.value!==undefined){j.value(i.value)}return j},_fieldData:function(i){if(!this.app.options.is_dynamic){i.info="Data input '"+i.name+"' ("+e.textify(i.extensions.toString())+")";i.value=null;return this._fieldHidden(i)}var j=this;return new a.View(this.app,{id:"field-"+i.id,extensions:i.extensions,optional:i.optional,multiple:i.multiple,type:i.type,data:i.options,onchange:function(){j.app.trigger("refresh")}})},_fieldSelect:function(j){if(!this.app.options.is_dynamic&&j.is_dynamic){return this._fieldText(j)}var l=[];for(var m in j.options){var n=j.options[m];l.push({label:n[0],value:n[1]})}var o=h.Select;switch(j.display){case"checkboxes":o=h.Checkbox;break;case"radio":o=h.Radio;break}var k=this;return new o.View({id:"field-"+j.id,data:l,error_text:j.error_text||"No options available",multiple:j.multiple,searchable:j.searchable,onchange:function(){k.app.trigger("refresh")}})},_fieldDrilldown:function(i){if(!this.app.options.is_dynamic&&i.is_dynamic){return this._fieldText(i)}var j=this;return new h.Drilldown.View({id:"field-"+i.id,data:i.options,display:i.display,onchange:function(){j.app.trigger("refresh")}})},_fieldText:function(i){if(i.options){i.area=i.multiple;if(!e.validate(i.value)){i.value=""}else{if(i.value instanceof Array){i.value=value.toString()}else{i.value=String(i.value).replace(/[\[\]'"\s]/g,"");if(i.multiple){i.value=i.value.replace(/,/g,"\n")}}}}var j=this;return new h.Input({id:"field-"+i.id,area:i.area,onchange:function(){j.app.trigger("refresh")}})},_fieldSlider:function(i){var j=this;return new h.Slider.View({id:"field-"+i.id,precise:i.type=="float",min:i.min,max:i.max,onchange:function(){j.app.trigger("refresh")}})},_fieldHidden:function(i){return new h.Hidden({id:"field-"+i.id,info:i.info})},_fieldBoolean:function(i){var j=this;return new h.RadioButton.View({id:"field-"+i.id,data:[{label:"Yes",value:"true"},{label:"No",value:"false"}],onchange:function(){j.app.trigger("refresh")}})}});return{View:g}}); \ No newline at end of file Repository URL: https://bitbucket.org/galaxy/galaxy-central/ -- This is a commit notification from bitbucket.org. You are receiving this because you have the service enabled, addressing the recipient of this email.
participants (1)
-
commits-noreply@bitbucket.org