refactor(preferences): replace comma-separated list of addresses by md-chips
parent
42587f7422
commit
8b1b938899
|
@ -40,7 +40,7 @@
|
||||||
"Auto reply subject" = "Auto reply subject";
|
"Auto reply subject" = "Auto reply subject";
|
||||||
"You can write ${subject} to insert the original subject" = "You can write ${subject} to insert the original subject";
|
"You can write ${subject} to insert the original subject" = "You can write ${subject} to insert the original subject";
|
||||||
"Auto reply message" = "Auto reply message";
|
"Auto reply message" = "Auto reply message";
|
||||||
"Email addresses (separated by commas)" = "Email addresses (separated by commas)";
|
"Email addresses" = "Email addresses";
|
||||||
"Add default email addresses" = "Add default email addresses";
|
"Add default email addresses" = "Add default email addresses";
|
||||||
"Days between responses" = "Days between responses";
|
"Days between responses" = "Days between responses";
|
||||||
"Do not send responses to mailing lists" = "Do not send responses to mailing lists";
|
"Do not send responses to mailing lists" = "Do not send responses to mailing lists";
|
||||||
|
|
|
@ -793,23 +793,9 @@ static NSArray *reminderValues = nil;
|
||||||
//
|
//
|
||||||
// Used internally
|
// Used internally
|
||||||
//
|
//
|
||||||
- (NSString *) _defaultEmailAddresses
|
- (NSString *) defaultEmailAddresses
|
||||||
{
|
{
|
||||||
NSArray *addressesList;
|
return [[[user allEmails] uniqueObjects] jsonRepresentation];
|
||||||
NSMutableArray *uniqueAddressesList;
|
|
||||||
NSString *address;
|
|
||||||
unsigned int i;
|
|
||||||
|
|
||||||
uniqueAddressesList = [NSMutableArray array];
|
|
||||||
addressesList = [NSMutableArray arrayWithArray: [user allEmails]];
|
|
||||||
for (i = 0; i < [addressesList count]; i++)
|
|
||||||
{
|
|
||||||
address = [addressesList objectAtIndex: i];
|
|
||||||
if (![uniqueAddressesList containsObject: address])
|
|
||||||
[uniqueAddressesList addObject: address];
|
|
||||||
}
|
|
||||||
|
|
||||||
return [uniqueAddressesList componentsJoinedByString: @", "];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -877,20 +863,6 @@ static NSArray *reminderValues = nil;
|
||||||
return [defaultCategoriesColors jsonRepresentation];
|
return [defaultCategoriesColors jsonRepresentation];
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Used by templates
|
|
||||||
//
|
|
||||||
- (NSString *) autoReplyEmailAddresses
|
|
||||||
{
|
|
||||||
NSArray *addressesList;
|
|
||||||
|
|
||||||
addressesList = [vacationOptions objectForKey: @"autoReplyEmailAddresses"];
|
|
||||||
|
|
||||||
return (addressesList
|
|
||||||
? [addressesList componentsJoinedByString: @", "]
|
|
||||||
: [self _defaultEmailAddresses]);
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Used by templates
|
// Used by templates
|
||||||
//
|
//
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
var forwardEnabled = <var:string value="forwardEnabled" const:escapeHTML="NO"/>;
|
var forwardEnabled = <var:string value="forwardEnabled" const:escapeHTML="NO"/>;
|
||||||
var vacationEnabled = <var:string value="isVacationEnabled" const:escapeHTML="NO"/>;
|
var vacationEnabled = <var:string value="isVacationEnabled" const:escapeHTML="NO"/>;
|
||||||
var timeZonesList = <var:string value="timeZonesList" const:escapeHTML="NO"/>;
|
var timeZonesList = <var:string value="timeZonesList" const:escapeHTML="NO"/>;
|
||||||
var defaultEmailAddresses = '<var:string value="defaultEmailAddresses" const:escapeHTML="NO"/>';
|
var defaultEmailAddresses = <var:string value="defaultEmailAddresses" const:escapeHTML="NO"/>;
|
||||||
var defaultCalendarCategories = <var:string value="defaultCalendarCategoriesColors" const:escapeHTML="NO"/>;
|
var defaultCalendarCategories = <var:string value="defaultCalendarCategoriesColors" const:escapeHTML="NO"/>;
|
||||||
var forwardConstraints = <var:string value="forwardConstraints" const:escapeHTML="NO"/>;
|
var forwardConstraints = <var:string value="forwardConstraints" const:escapeHTML="NO"/>;
|
||||||
var forwardConstraintsDomains = <var:string value="forwardConstraintsDomains" const:escapeHTML="NO"/>;
|
var forwardConstraintsDomains = <var:string value="forwardConstraintsDomains" const:escapeHTML="NO"/>;
|
||||||
|
@ -969,14 +969,37 @@
|
||||||
|
|
||||||
<div layout="row" layout-align="start center">
|
<div layout="row" layout-align="start center">
|
||||||
<md-input-container class="md-block md-flex">
|
<md-input-container class="md-block md-flex">
|
||||||
<label><var:string label:value="Email addresses (separated by commas)"/></label>
|
<label><var:string label:value="Email addresses"/></label>
|
||||||
<textarea name="autoReplyEmailAddresses"
|
<md-chips
|
||||||
required="required"
|
id="autoReplyEmailAddresses"
|
||||||
id="autoReplyEmailAddresses"
|
name="autoReplyEmailAddresses"
|
||||||
ng-model="app.preferences.defaults.Vacation.autoReplyEmailAddresses"/>
|
ng-model="app.preferences.defaults.Vacation.autoReplyEmailAddresses"
|
||||||
|
ng-required="app.preferences.defaults.Vacation.enabled == 1"
|
||||||
|
md-separator-keys="app.emailSeparatorKeys"
|
||||||
|
md-add-on-blur="true"
|
||||||
|
md-autocomplete-snap="width">
|
||||||
|
<md-autocomplete
|
||||||
|
md-menu-class="md-2-line"
|
||||||
|
md-search-text="app.addressesSearchText"
|
||||||
|
md-items="address in app.filterEmailAddresses(app.addressesSearchText)"
|
||||||
|
md-no-cache="true"
|
||||||
|
md-min-length="0"
|
||||||
|
md-autofocus="true"
|
||||||
|
md-autoselect="true"
|
||||||
|
label:placeholder="Add an address">
|
||||||
|
<md-item-template>
|
||||||
|
<div class="sg-tile-content">
|
||||||
|
<div class="sg-md-subhead">
|
||||||
|
<div md-highlight-text="app.addressesSearchText"
|
||||||
|
md-highlight-flags="gi">{{ address }}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</md-item-template>
|
||||||
|
</md-autocomplete>
|
||||||
|
</md-chips>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
<md-button ng-click="app.addDefaultEmailAddresses(preferencesForm)">
|
<md-button ng-click="app.addDefaultEmailAddresses(preferencesForm)">
|
||||||
<var:string label:value="Add default email addresses" type="button"/>
|
<var:string label:value="Add default email addresses"/>
|
||||||
</md-button>
|
</md-button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -1091,10 +1114,17 @@
|
||||||
|
|
||||||
<div flex-offset="5" ng-show="app.preferences.defaults.Forward.enabled == 1">
|
<div flex-offset="5" ng-show="app.preferences.defaults.Forward.enabled == 1">
|
||||||
<md-input-container class="md-block md-flex">
|
<md-input-container class="md-block md-flex">
|
||||||
<label><var:string label:value="Email addresses (separated by commas)"/></label>
|
<label><var:string label:value="Email addresses"/></label>
|
||||||
<textarea name="forwardAddress"
|
<md-chips
|
||||||
id="forwardAddress"
|
id="forwardAddress"
|
||||||
ng-model="app.preferences.defaults.Forward.forwardAddress" />
|
name="forwardAddress"
|
||||||
|
ng-model="app.preferences.defaults.Forward.forwardAddress"
|
||||||
|
ng-required="app.preferences.defaults.Forward.enabled == 1"
|
||||||
|
md-separator-keys="app.emailSeparatorKeys"
|
||||||
|
md-add-on-blur="true"
|
||||||
|
md-autocomplete-snap="width">
|
||||||
|
<!-- forward addresses -->
|
||||||
|
</md-chips>
|
||||||
</md-input-container>
|
</md-input-container>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -85,15 +85,14 @@
|
||||||
data.Vacation.endDate.addDays(1);
|
data.Vacation.endDate.addDays(1);
|
||||||
}
|
}
|
||||||
if (data.Vacation.autoReplyEmailAddresses &&
|
if (data.Vacation.autoReplyEmailAddresses &&
|
||||||
angular.isArray(data.Vacation.autoReplyEmailAddresses) &&
|
angular.isString(data.Vacation.autoReplyEmailAddresses) &&
|
||||||
data.Vacation.autoReplyEmailAddresses.length)
|
data.Vacation.autoReplyEmailAddresses.length)
|
||||||
data.Vacation.autoReplyEmailAddresses = data.Vacation.autoReplyEmailAddresses.join(",");
|
data.Vacation.autoReplyEmailAddresses = data.Vacation.autoReplyEmailAddresses.split(/, */);
|
||||||
else
|
|
||||||
delete data.Vacation.autoReplyEmailAddresses;
|
|
||||||
} else
|
} else
|
||||||
data.Vacation = {};
|
data.Vacation = {};
|
||||||
|
|
||||||
if (angular.isUndefined(data.Vacation.autoReplyEmailAddresses) &&
|
if ((angular.isUndefined(data.Vacation.autoReplyEmailAddresses) ||
|
||||||
|
data.Vacation.autoReplyEmailAddresses.length == 0) &&
|
||||||
angular.isDefined(window.defaultEmailAddresses))
|
angular.isDefined(window.defaultEmailAddresses))
|
||||||
data.Vacation.autoReplyEmailAddresses = window.defaultEmailAddresses;
|
data.Vacation.autoReplyEmailAddresses = window.defaultEmailAddresses;
|
||||||
|
|
||||||
|
@ -110,9 +109,8 @@
|
||||||
data.Vacation.endDate = new Date();
|
data.Vacation.endDate = new Date();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.Forward && data.Forward.forwardAddress &&
|
if (data.Forward && angular.isUndefined(data.Forward.forwardAddress))
|
||||||
angular.isArray(data.Forward.forwardAddress))
|
data.Forward.forwardAddress = [];
|
||||||
data.Forward.forwardAddress = data.Forward.forwardAddress.join(",");
|
|
||||||
|
|
||||||
// Split calendar categories colors keys and values
|
// Split calendar categories colors keys and values
|
||||||
if (angular.isUndefined(data.SOGoCalendarCategories))
|
if (angular.isUndefined(data.SOGoCalendarCategories))
|
||||||
|
@ -360,13 +358,13 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preferences.defaults.Vacation.autoReplyEmailAddresses)
|
if (preferences.defaults.Vacation.autoReplyEmailAddresses)
|
||||||
preferences.defaults.Vacation.autoReplyEmailAddresses = _.filter(preferences.defaults.Vacation.autoReplyEmailAddresses.split(","), function(v) { return v.length; });
|
preferences.defaults.Vacation.autoReplyEmailAddresses = _.compact(preferences.defaults.Vacation.autoReplyEmailAddresses);
|
||||||
else
|
else
|
||||||
preferences.defaults.Vacation.autoReplyEmailAddresses = [];
|
preferences.defaults.Vacation.autoReplyEmailAddresses = [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (preferences.defaults.Forward && preferences.defaults.Forward.forwardAddress)
|
if (preferences.defaults.Forward && preferences.defaults.Forward.forwardAddress)
|
||||||
preferences.defaults.Forward.forwardAddress = preferences.defaults.Forward.forwardAddress.split(",");
|
preferences.defaults.Forward.forwardAddress = _.compact(preferences.defaults.Forward.forwardAddress);
|
||||||
|
|
||||||
// Merge back calendar categories colors keys and values
|
// Merge back calendar categories colors keys and values
|
||||||
preferences.defaults.SOGoCalendarCategoriesColors = {};
|
preferences.defaults.SOGoCalendarCategoriesColors = {};
|
||||||
|
|
Loading…
Reference in New Issue