in public/lib/filters-service.js [15:167]
attachListeners() {
var self = this;
$rootScope.$on('filtersChanged.prodOffice', function(event, data) {
self.update('prodOffice', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.content-type', function(event, data) {
self.update('content-type', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.article-format', function(event, data) {
self.update('article-format', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.atom-type', function(event, data) {
self.update('atom-type', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.section', function(event, data) {
self.update('section', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.state', function(event, data) {
self.update('state', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.status', function(event, data) {
self.update('status', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.flags', function(event, data) {
self.update('flags', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.deadline', function (event, data) {
self.update('deadline', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.created', function(event, data) {
self.update('created', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.desk', function(event, data) {
if (data !== -1) {
self.update('desk', data);
} else {
self.update('desk', null);
}
// Desk ignored so no need to request content
});
$rootScope.$on('filtersChanged.touched', function(event, data) {
self.update('touched', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.assigneeEmail', function(event, data) {
self.update('assigneeEmail', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.trashed', function(event, data) {
self.update('trashed', data);
$rootScope.$broadcast('getContent');
});
var keywords = {
"type" : "content-type",
"status" : "status",
"state" : "state",
"who" : "assignee",
"assignee" : "assignee",
"assignedto" : "assignee"
};
var savedFilters = null;
function enterSearchMode(data) {
savedFilters = _.clone(self.filters);
self.clearAll(true, true);
$rootScope.$broadcast("search-mode.enter");
}
function exitSearchMode(data) {
self.clearAll(true, true);
if(savedFilters != null) {
_.forOwn(savedFilters,
(value, key) => self.update(key, value));
}
$rootScope.$broadcast("search-mode.exit");
}
$rootScope.$on('filtersChanged.freeText', function(event, data) {
var newValue = data.newValue;
var oldValue = data.oldValue;
if(oldValue == null && newValue != null) {
enterSearchMode(data);
} else if(newValue == null && oldValue != null) {
exitSearchMode(data);
}
if(newValue != null) {
var rest =
newValue.replace(/\s*([A-Za-z-]+):(\S+)\s*/g, (match, field, value) => {
if(_.has(keywords, field)) {
self.update(keywords[field], value, true, true);
}
return "";
});
self.update('text', rest, true, true);
} else {
self.update('text', null, true, true);
}
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.incopy', function(event, data) {
self.update('incopy', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.view', function(event, data) {
self.update('view', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.hasPrintInfo', function(event, data) {
self.update('hasPrintInfo', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.hasMainMedia', function(event, data) {
self.update('hasMainMedia', data);
$rootScope.$broadcast('getContent');
});
$rootScope.$on('filtersChanged.rights', function(event, data) {
self.update('rights', data);
$rootScope.$broadcast('getContent');
});
}