diff --git a/panoramix/assets/javascripts/dashboard.js b/panoramix/assets/javascripts/dashboard.js index 6d65e2f60b4..6808c7bada5 100644 --- a/panoramix/assets/javascripts/dashboard.js +++ b/panoramix/assets/javascripts/dashboard.js @@ -11,141 +11,146 @@ require('brace/theme/crimson_editor'); require('select2'); require('../node_modules/gridster/dist/jquery.gridster.min.js'); -var dashboard; - -var Dashboard = function(obj){ - //obj['slices'] = []; - obj['filters'] = {}; - obj['addFilter'] = function(slice_id, filters) { - this.filters[slice_id] = filters; - this.refreshExcept(slice_id); - }; - obj['readFilters'] = function() { - // Returns a list of human readable active filters - return JSON.stringify(this.filters, null, 4); - }; - obj['refreshExcept'] = function(slice_id) { - this.slices.forEach(function(slice){ - if(slice.data.slice_id != slice_id && obj.metadata.filter_immune_slices.indexOf(slice.data.slice_id) == -1){ +var Dashboard = function(dashboardData){ + var dashboard = $.extend(dashboardData, { + filters: {}, + init: function() { + this.initDashboardView(); + var sliceObjects = []; + var dash = this; + dashboard.slices.forEach(function(data, i){ + var slice = px.Slice(data, dash); + $("#slice_" + data.slice_id).find('a.refresh').click(function(){ + slice.render(); + }); + sliceObjects.push(slice); slice.render(); - } - }); - }; - obj['clearFilter'] = function(slice_id) { - delete this.filters[slice_id]; - this.refreshExcept(slice_id); - }; - obj['getSlice'] = function(slice_id) { - for(var i=0; i