refactor(preferences): replace comma-separated list of addresses by md-chips
parent
0ff0d43e1e
commit
4292a45e62
|
@ -7,8 +7,8 @@
|
||||||
/**
|
/**
|
||||||
* @ngInject
|
* @ngInject
|
||||||
*/
|
*/
|
||||||
PreferencesController.$inject = ['$q', '$window', '$state', '$mdMedia', '$mdSidenav', '$mdDialog', '$mdToast', 'sgSettings', 'sgFocus', 'Dialog', 'User', 'Account', 'Preferences', 'Authentication'];
|
PreferencesController.$inject = ['$q', '$window', '$state', '$mdConstant', '$mdMedia', '$mdSidenav', '$mdDialog', '$mdToast', 'sgSettings', 'sgFocus', 'Dialog', 'User', 'Account', 'Preferences', 'Authentication'];
|
||||||
function PreferencesController($q, $window, $state, $mdMedia, $mdSidenav, $mdDialog, $mdToast, sgSettings, focus, Dialog, User, Account, Preferences, Authentication) {
|
function PreferencesController($q, $window, $state, $mdConstant, $mdMedia, $mdSidenav, $mdDialog, $mdToast, sgSettings, focus, Dialog, User, Account, Preferences, Authentication) {
|
||||||
var vm = this, mailboxes = [], today = new Date().beginOfDay();
|
var vm = this, mailboxes = [], today = new Date().beginOfDay();
|
||||||
|
|
||||||
this.$onInit = function() {
|
this.$onInit = function() {
|
||||||
|
@ -17,7 +17,14 @@
|
||||||
this.timeZonesList = $window.timeZonesList;
|
this.timeZonesList = $window.timeZonesList;
|
||||||
this.timeZonesSearchText = '';
|
this.timeZonesSearchText = '';
|
||||||
this.sieveVariablesCapability = ($window.sieveCapabilities.indexOf('variables') >= 0);
|
this.sieveVariablesCapability = ($window.sieveCapabilities.indexOf('variables') >= 0);
|
||||||
|
this.addressesSearchText = '';
|
||||||
this.mailLabelKeyRE = new RegExp(/^(?!^_\$)[^(){} %*\"\\\\]*?$/);
|
this.mailLabelKeyRE = new RegExp(/^(?!^_\$)[^(){} %*\"\\\\]*?$/);
|
||||||
|
this.emailSeparatorKeys = [
|
||||||
|
$mdConstant.KEY_CODE.ENTER,
|
||||||
|
$mdConstant.KEY_CODE.TAB,
|
||||||
|
$mdConstant.KEY_CODE.COMMA,
|
||||||
|
$mdConstant.KEY_CODE.SEMICOLON
|
||||||
|
];
|
||||||
|
|
||||||
// Set alternate avatar in User service
|
// Set alternate avatar in User service
|
||||||
if (Preferences.defaults.SOGoAlternateAvatar)
|
if (Preferences.defaults.SOGoAlternateAvatar)
|
||||||
|
@ -256,19 +263,29 @@
|
||||||
return this._onFiltersOrderChanged;
|
return this._onFiltersOrderChanged;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
this.filterEmailAddresses = function ($query) {
|
||||||
|
return _.filter(
|
||||||
|
_.difference($window.defaultEmailAddresses,
|
||||||
|
this.preferences.defaults.Vacation.autoReplyEmailAddresses),
|
||||||
|
function (address) {
|
||||||
|
return address.toLowerCase().indexOf($query.toLowerCase()) >= 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
this.addDefaultEmailAddresses = function(form) {
|
this.addDefaultEmailAddresses = function(form) {
|
||||||
var v = [];
|
var v = [];
|
||||||
|
|
||||||
if (angular.isDefined(this.preferences.defaults.Vacation.autoReplyEmailAddresses)) {
|
if (angular.isDefined(this.preferences.defaults.Vacation.autoReplyEmailAddresses)) {
|
||||||
v = this.preferences.defaults.Vacation.autoReplyEmailAddresses.split(',');
|
v = this.preferences.defaults.Vacation.autoReplyEmailAddresses;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.preferences.defaults.Vacation.autoReplyEmailAddresses = (_.union($window.defaultEmailAddresses.split(','), v)).join(',');
|
this.preferences.defaults.Vacation.autoReplyEmailAddresses = _.union($window.defaultEmailAddresses, v);
|
||||||
form.$setDirty();
|
form.$setDirty();
|
||||||
};
|
};
|
||||||
|
|
||||||
this.userFilter = function(search, excludedUsers) {
|
this.userFilter = function(search, excludedUsers) {
|
||||||
if (search.length < sgSettings.minimumSearchLength())
|
if (!search || search.length < sgSettings.minimumSearchLength())
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
return User.$filter(search, excludedUsers).then(function(users) {
|
return User.$filter(search, excludedUsers).then(function(users) {
|
||||||
|
@ -333,7 +350,7 @@
|
||||||
addresses = this.preferences.defaults.Forward.forwardAddress.split(",");
|
addresses = this.preferences.defaults.Forward.forwardAddress.split(",");
|
||||||
|
|
||||||
// We first extract the list of 'known domains' to SOGo
|
// We first extract the list of 'known domains' to SOGo
|
||||||
defaultAddresses = $window.defaultEmailAddresses.split(/, */);
|
defaultAddresses = $window.defaultEmailAddresses;
|
||||||
|
|
||||||
_.forEach(defaultAddresses, function(adr) {
|
_.forEach(defaultAddresses, function(adr) {
|
||||||
var domain = adr.split("@")[1];
|
var domain = adr.split("@")[1];
|
||||||
|
|
Loading…
Reference in New Issue