Files
galaxy/static/scripts/mvc/visualization/chart/views/groups.js
T
2018-05-23 15:37:14 -04:00

1 line
2.4 KiB
JavaScript

define("mvc/visualization/chart/views/groups",["exports","utils/utils","mvc/ui/ui-misc","mvc/form/form-view","mvc/form/form-repeat","mvc/form/form-data"],function(e,t,a,i,r,n){"use strict";function s(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(e,"__esModule",{value:!0});var o=s(t),u=(s(a),s(i)),d=s(r),l=s(n),c=Backbone.View.extend({initialize:function(e,t){var a=this;this.deferred=e.deferred,this.chart=e.chart,this.group=t.group,this.setElement($("<div/>")),this.listenTo(this.chart,"change:dataset_id",function(){a.render()}),this.render()},render:function(){var e=this,t=o.default.clone(this.chart.plugin.groups)||[],a=this.chart.get("dataset_id");a&&(this.chart.state("wait","Loading metadata..."),this.deferred.execute(function(i){o.default.get({url:Galaxy.root+"api/datasets/"+a,cache:!0,success:function(a){var r={};l.default.visitInputs(t,function(t,i){if("data_column"==t.type){r[i]=o.default.clone(t);var n=[];t.is_auto&&n.push({label:"Column: Row Number",value:"auto"}),t.is_zero&&n.push({label:"Column: None",value:"zero"});var s=a.metadata_column_types;for(var u in s)(-1!=["int","float"].indexOf(s[u])&&t.is_numeric||t.is_label)&&n.push({label:"Column: "+(parseInt(u)+1),value:u});t.data=n}var d=e.group.get(i);void 0===d||t.hidden||(t.value=d)}),t.push({name:"__data_columns",type:"hidden",hidden:!0,value:r}),e.chart.state("ok","Metadata initialized..."),e.form=new u.default({inputs:t,cls:"ui-portlet-plain",onchange:function(){e.group.set(e.form.data.create()),e.chart.set("modified",!0),e.chart.trigger("redraw")}}),e.group.set(e.form.data.create()),e.$el.empty().append(e.form.$el),i.resolve(),e.chart.trigger("redraw")}})}))}});e.default=Backbone.View.extend({initialize:function(e){var t=this;this.app=e,this.chart=e.chart,this.repeat=new d.default.View({title:"Data series",title_new:"Data series",min:1,onnew:function(){t.chart.groups.add({id:o.default.uid()})}}),this.setElement($("<div/>").append(this.repeat.$el)),this.listenTo(this.chart.groups,"remove",function(e){t.repeat.del(e.id),t.chart.trigger("redraw")}),this.listenTo(this.chart.groups,"reset",function(){t.repeat.delAll()}),this.listenTo(this.chart.groups,"add",function(e){t.repeat.add({id:e.id,cls:"ui-portlet-panel",$el:new c(t.app,{group:e}).$el,ondel:function(){t.chart.groups.remove(e)}})})},render:function(){_.size(this.chart.plugin.groups)>0?this.repeat.$el.show():this.repeat.$el.hide()}})});