--- 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;