From bd06f995eefa51d76156727e16125f637c876b1e Mon Sep 17 00:00:00 2001 From: Maxime Beauchemin Date: Sun, 28 Feb 2016 16:46:15 -0800 Subject: [PATCH 1/5] Allowing to make certain widgets immune to filter --- panoramix/assets/javascripts/dashboard.js | 49 +++++++++----------- panoramix/models.py | 9 ++++ panoramix/templates/panoramix/dashboard.html | 2 +- panoramix/views.py | 8 ++-- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/panoramix/assets/javascripts/dashboard.js b/panoramix/assets/javascripts/dashboard.js index 6d57c03e99a4..78984a9d678f 100644 --- a/panoramix/assets/javascripts/dashboard.js +++ b/panoramix/assets/javascripts/dashboard.js @@ -10,52 +10,49 @@ require('brace/theme/crimson_editor'); require('select2'); require('../node_modules/gridster/dist/jquery.gridster.min.js'); -require('../node_modules/gridster/dist/jquery.gridster.min.js'); var dashboard; -var Dashboard = function(id){ - var dash = { - slices: [], - filters: {}, - id: id, - addFilter: function(slice_id, filters) { +var Dashboard = function(obj){ + obj['slices'] = []; + obj['filters'] = {}; + obj['addFilter'] = function(slice_id, filters) { this.filters[slice_id] = filters; this.refreshExcept(slice_id); - }, - readFilters: function() { + }; + obj['readFilters'] = function() { // Returns a list of human readable active filters return JSON.stringify(this.filters, null, 4); - }, - refreshExcept: function(slice_id) { - this.slices.forEach(function(slice){ - if(slice.data.slice_id != slice_id){ - slice.render(); - } - }); - }, - clearFilter: function(slice_id) { + }; + 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){ + slice.render(); + } + }); + }; + obj['clearFilter'] = function(slice_id) { delete this.filters[slice_id]; this.refreshExcept(slice_id); - }, - getSlice: function(slice_id) { + }; + obj['getSlice'] = function(slice_id) { for(var i=0; i +