cms/app-client/app/controllers/application.js
changeset 392 4fbe94af93e8
parent 339 766af1228b05
child 394 48458e099b05
--- a/cms/app-client/app/controllers/application.js	Thu Nov 03 11:14:41 2016 +0100
+++ b/cms/app-client/app/controllers/application.js	Fri Nov 04 19:03:25 2016 +0100
@@ -1,99 +1,32 @@
 import Ember from 'ember';
+import _ from 'lodash/lodash';
 
 export default Ember.Controller.extend({
 
     player: Ember.inject.service(),
+    filter: Ember.inject.service(),
+
 
     playerVideoscreenObserver: Ember.observer('player.videoscreen', function() {
         Ember.$('body').toggleClass('videoscreen', this.get('player').get('videoscreen'));
     }),
 
-    queryParams: ['location', 'date', 'notice', {
-        language: 'language',
-        discourse: 'discourse',
-        theme: 'theme'
-    }],
-
-    date: [],
-    discourse: null,
-    language: null,
-    location: null,
-    theme: null,
-
-    filter: Ember.inject.service(),
-    setFilter: Ember.observer('discourse', 'language', 'location', 'theme', function(sender, key) {
-        if(this.get('filter').get(key) !== this.get(key)) {
-            this.get('filter').set(key, this.get(key));    
-        }
-    }),
-    filterObserver: Ember.observer('filter.discourse', 'filter.language', 'filter.location', 'filter.theme', function(sender, key) {
-        key = key.split('.').pop();
-        this.set(key, this.get('filter').get(key));
+    // queryParams: ['location', 'date', 'notice', 'language', 'discourse', 'theme'],
+    // queryParams: Ember.computed('filter.queryParams', 'notice', function() {
+    //     const queryParamsList = this.get('filter').get('queryParams');
+    //     return _.merge(queryParamsList, {'notice' : this.get('notice')});
+    // }),
+    queryParams : Ember.computed('filter.queryParams', function() {
+        var res = _.clone(this.get('filter').get('queryParams'));
+        res.push('notice');
+        return res;
     }),
 
-    setDateFilter: Ember.observer('date', function(sender, key) {
-        var intervals = [];
-        this.get(key).forEach(function(interval) {
-            interval = interval.split('-');
-            if(interval.length > 1) {
-                var array = [];
-                for(var i = interval[0]; i <= interval[1]; i++) {
-                    array.push(parseInt(i));
-                }
-                interval = array;
-            } else {
-                interval = parseInt(interval);
-            }
-            intervals = intervals.concat(interval);
-        });
-        this.get('filter').set(key, intervals);
-    }),
-    dateFilterObserver: Ember.observer('filter.date', function(sender, key) {
-        key = key.split('.').pop();
-        var intervals = [];
-        this.get('filter').get('date').forEach(function(date) {
-            var isInterval = false;
-            intervals.forEach(function(interval) {
-                if(interval.length && (interval.includes(date + 1) || interval.includes(date - 1))) {
-                    interval.push(date);
-                    isInterval = true;
-                }
-            });
-            if (!isInterval) {
-                intervals.push([date]);
-            }
-        });
-        intervals.forEach(function(interval, index) {
-            if(interval.length > 1) {
-               intervals[index] =  interval.shift() + '-' + interval.pop();
-            } else {
-               intervals[index] =  interval.toString();
-            }
-        });
-        if(!this.arraysEqual(this.get('date').toArray(), intervals)) {
-            this.set('date', intervals);
-        }
-    }),
-
-    arraysEqual: function(a, b) {
-        if (a === b) {
-            return true;
-        }
-        if (a == null || b == null) {
-            return false;
-        }
-        if (a.length !== b.length) {
-            return false;
-        }
-        for(var i = 0; i < a.length; ++i) {
-            if(a[i] !== b[i]) {
-                return false;
-            }
-        }
-        return true;
-    },
-
-
+    location: Ember.computed.alias('filter.location'),
+    date: Ember.computed.alias('filter.date'),
+    language: Ember.computed.alias('filter.language'),
+    discourse: Ember.computed.alias('filter.discourse'),
+    theme: Ember.computed.alias('filter.theme'),
 
     itemObserver: Ember.observer('player.item', function() {
         var self = this;