Added "Default identity" setting (Closes #157)

This commit is contained in:
RainLoop Team 2014-07-16 22:57:17 +04:00
parent c82a897582
commit d80a9e8485
29 changed files with 239 additions and 67 deletions

View file

@ -13,7 +13,7 @@ function Selector(oKoList, oKoSelectedItem,
sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector) sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector)
{ {
this.list = oKoList; this.list = oKoList;
this.listChecked = ko.computed(function () { this.listChecked = ko.computed(function () {
return _.filter(this.list(), function (oItem) { return _.filter(this.list(), function (oItem) {
return oItem.checked(); return oItem.checked();
@ -23,11 +23,11 @@ function Selector(oKoList, oKoSelectedItem,
this.isListChecked = ko.computed(function () { this.isListChecked = ko.computed(function () {
return 0 < this.listChecked().length; return 0 < this.listChecked().length;
}, this); }, this);
this.focusedItem = ko.observable(null); this.focusedItem = ko.observable(null);
this.selectedItem = oKoSelectedItem; this.selectedItem = oKoSelectedItem;
this.selectedItemUseCallback = true; this.selectedItemUseCallback = true;
this.itemSelectedThrottle = _.debounce(_.bind(this.itemSelected, this), 300); this.itemSelectedThrottle = _.debounce(_.bind(this.itemSelected, this), 300);
this.listChecked.subscribe(function (aItems) { this.listChecked.subscribe(function (aItems) {
@ -47,7 +47,7 @@ function Selector(oKoList, oKoSelectedItem,
this.selectedItem(this.focusedItem()); this.selectedItem(this.focusedItem());
} }
}, this); }, this);
this.selectedItem.subscribe(function (oItem) { this.selectedItem.subscribe(function (oItem) {
if (oItem) if (oItem)
@ -101,12 +101,12 @@ function Selector(oKoList, oKoSelectedItem,
this.oContentVisible = null; this.oContentVisible = null;
this.oContentScrollable = null; this.oContentScrollable = null;
this.sItemSelector = sItemSelector; this.sItemSelector = sItemSelector;
this.sItemSelectedSelector = sItemSelectedSelector; this.sItemSelectedSelector = sItemSelectedSelector;
this.sItemCheckedSelector = sItemCheckedSelector; this.sItemCheckedSelector = sItemCheckedSelector;
this.sItemFocusedSelector = sItemFocusedSelector; this.sItemFocusedSelector = sItemFocusedSelector;
this.sLastUid = ''; this.sLastUid = '';
this.bAutoSelect = true; this.bAutoSelect = true;
this.oCallbacks = {}; this.oCallbacks = {};
@ -126,7 +126,7 @@ function Selector(oKoList, oKoSelectedItem,
mFocused = null, mFocused = null,
mSelected = null mSelected = null
; ;
this.list.subscribe(function (aItems) { this.list.subscribe(function (aItems) {
var self = this; var self = this;
@ -136,7 +136,7 @@ function Selector(oKoList, oKoSelectedItem,
if (oItem) if (oItem)
{ {
var sUid = self.getItemUid(oItem); var sUid = self.getItemUid(oItem);
aCache.push(sUid); aCache.push(sUid);
if (oItem.checked()) if (oItem.checked())
{ {
@ -154,9 +154,9 @@ function Selector(oKoList, oKoSelectedItem,
}); });
} }
}, this, 'beforeChange'); }, this, 'beforeChange');
this.list.subscribe(function (aItems) { this.list.subscribe(function (aItems) {
var var
self = this, self = this,
oTemp = null, oTemp = null,
@ -167,7 +167,7 @@ function Selector(oKoList, oKoSelectedItem,
bSelected = false, bSelected = false,
iLen = 0 iLen = 0
; ;
this.selectedItemUseCallback = false; this.selectedItemUseCallback = false;
this.focusedItem(null); this.focusedItem(null);
@ -246,7 +246,7 @@ function Selector(oKoList, oKoSelectedItem,
aCheckedCache = []; aCheckedCache = [];
mFocused = null; mFocused = null;
mSelected = null; mSelected = null;
}, this); }, this);
} }
@ -284,13 +284,13 @@ Selector.prototype.init = function (oContentVisible, oContentScrollable, sKeySco
this.oContentScrollable = oContentScrollable; this.oContentScrollable = oContentScrollable;
sKeyScope = sKeyScope || 'all'; sKeyScope = sKeyScope || 'all';
if (this.oContentVisible && this.oContentScrollable) if (this.oContentVisible && this.oContentScrollable)
{ {
var var
self = this self = this
; ;
$(this.oContentVisible) $(this.oContentVisible)
.on('selectstart', function (oEvent) { .on('selectstart', function (oEvent) {
if (oEvent && oEvent.preventDefault) if (oEvent && oEvent.preventDefault)
@ -666,7 +666,7 @@ Selector.prototype.actionClick = function (oItem, oEvent)
bClick = true, bClick = true,
sUid = this.getItemUid(oItem) sUid = this.getItemUid(oItem)
; ;
if (oEvent) if (oEvent)
{ {
if (oEvent.shiftKey && !oEvent.ctrlKey && !oEvent.altKey) if (oEvent.shiftKey && !oEvent.ctrlKey && !oEvent.altKey)
@ -679,7 +679,7 @@ Selector.prototype.actionClick = function (oItem, oEvent)
oItem.checked(!oItem.checked()); oItem.checked(!oItem.checked());
this.eventClickFunction(oItem, oEvent); this.eventClickFunction(oItem, oEvent);
this.focusedItem(oItem); this.focusedItem(oItem);
} }
else if (oEvent.ctrlKey && !oEvent.shiftKey && !oEvent.altKey) else if (oEvent.ctrlKey && !oEvent.shiftKey && !oEvent.altKey)
@ -700,6 +700,8 @@ Selector.prototype.actionClick = function (oItem, oEvent)
{ {
this.focusedItem(oItem); this.focusedItem(oItem);
this.selectedItem(oItem); this.selectedItem(oItem);
this.scrollToFocused();
} }
} }
}; };

View file

@ -6,9 +6,11 @@
function SettingsIdentities() function SettingsIdentities()
{ {
var oData = RL.data(); var oData = RL.data();
this.editor = null; this.editor = null;
this.defautOptionsAfterRender = Utils.defautOptionsAfterRender;
this.accountEmail = oData.accountEmail;
this.displayName = oData.displayName; this.displayName = oData.displayName;
this.signature = oData.signature; this.signature = oData.signature;
this.signatureToAll = oData.signatureToAll; this.signatureToAll = oData.signatureToAll;
@ -16,11 +18,47 @@ function SettingsIdentities()
this.signatureDom = ko.observable(null); this.signatureDom = ko.observable(null);
this.defaultIdentityIDTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.displayNameTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.displayNameTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.replyTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.replyTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.signatureTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.signatureTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.identities = oData.identities; this.identities = oData.identities;
this.defaultIdentityID = oData.defaultIdentityID;
this.identitiesOptions = ko.computed(function () {
var
aList = this.identities(),
aResult = []
;
if (0 < aList.length)
{
aResult.push({
'id': this.accountEmail.peek(),
'name': this.formattedAccountIdentity(),
'seporator': false
});
aResult.push({
'id': '---',
'name': '---',
'seporator': true,
'disabled': true
});
_.each(aList, function (oItem) {
aResult.push({
'id': oItem.id,
'name': oItem.formattedNameForEmail(),
'seporator': false
});
});
}
return aResult;
}, this);
this.processText = ko.computed(function () { this.processText = ko.computed(function () {
return oData.identitiesLoading() ? Utils.i18n('SETTINGS_IDENTITIES/LOADING_PROCESS') : ''; return oData.identitiesLoading() ? Utils.i18n('SETTINGS_IDENTITIES/LOADING_PROCESS') : '';
@ -47,6 +85,20 @@ function SettingsIdentities()
Utils.addSettingsViewModel(SettingsIdentities, 'SettingsIdentities', 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME', 'identities'); Utils.addSettingsViewModel(SettingsIdentities, 'SettingsIdentities', 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME', 'identities');
/**
*
* @return {string}
*/
SettingsIdentities.prototype.formattedAccountIdentity = function ()
{
var
sDisplayName = this.displayName.peek(),
sEmail = this.accountEmail.peek()
;
return '' === sDisplayName ? sEmail : '"' + Utils.quoteName(sDisplayName) + '" <' + sEmail + '>';
};
SettingsIdentities.prototype.addNewIdentity = function () SettingsIdentities.prototype.addNewIdentity = function ()
{ {
kn.showScreenPopup(PopupsIdentityViewModel); kn.showScreenPopup(PopupsIdentityViewModel);
@ -65,7 +117,7 @@ SettingsIdentities.prototype.deleteIdentity = function (oIdentityToRemove)
if (oIdentityToRemove && oIdentityToRemove.deleteAccess()) if (oIdentityToRemove && oIdentityToRemove.deleteAccess())
{ {
this.identityForDeletion(null); this.identityForDeletion(null);
var var
fRemoveFolder = function (oIdentity) { fRemoveFolder = function (oIdentity) {
return oIdentityToRemove === oIdentity; return oIdentityToRemove === oIdentity;
@ -75,7 +127,7 @@ SettingsIdentities.prototype.deleteIdentity = function (oIdentityToRemove)
if (oIdentityToRemove) if (oIdentityToRemove)
{ {
this.identities.remove(fRemoveFolder); this.identities.remove(fRemoveFolder);
RL.remote().identityDelete(function () { RL.remote().identityDelete(function () {
RL.accountsAndIdentities(); RL.accountsAndIdentities();
}, oIdentityToRemove.id); }, oIdentityToRemove.id);
@ -121,7 +173,7 @@ SettingsIdentities.prototype.onBuild = function (oDom)
self.editIdentity(oIdentityItem); self.editIdentity(oIdentityItem);
} }
}) })
; ;
_.delay(function () { _.delay(function () {
@ -129,9 +181,16 @@ SettingsIdentities.prototype.onBuild = function (oDom)
oData = RL.data(), oData = RL.data(),
f1 = Utils.settingsSaveHelperSimpleFunction(self.displayNameTrigger, self), f1 = Utils.settingsSaveHelperSimpleFunction(self.displayNameTrigger, self),
f2 = Utils.settingsSaveHelperSimpleFunction(self.replyTrigger, self), f2 = Utils.settingsSaveHelperSimpleFunction(self.replyTrigger, self),
f3 = Utils.settingsSaveHelperSimpleFunction(self.signatureTrigger, self) f3 = Utils.settingsSaveHelperSimpleFunction(self.signatureTrigger, self),
f4 = Utils.settingsSaveHelperSimpleFunction(self.defaultIdentityIDTrigger, self)
; ;
oData.defaultIdentityID.subscribe(function (sValue) {
RL.remote().saveSettings(f4, {
'DefaultIdentityID': sValue
});
});
oData.displayName.subscribe(function (sValue) { oData.displayName.subscribe(function (sValue) {
RL.remote().saveSettings(f1, { RL.remote().saveSettings(f1, {
'DisplayName': sValue 'DisplayName': sValue

View file

@ -78,6 +78,7 @@ function WebMailDataStorage()
this.accountsLoading = ko.observable(false).extend({'throttle': 100}); this.accountsLoading = ko.observable(false).extend({'throttle': 100});
// identities // identities
this.defaultIdentityID = ko.observable('');
this.identities = ko.observableArray([]); this.identities = ko.observableArray([]);
this.identitiesLoading = ko.observable(false).extend({'throttle': 100}); this.identitiesLoading = ko.observable(false).extend({'throttle': 100});
@ -476,6 +477,8 @@ WebMailDataStorage.prototype.populateDataOnStart = function()
this.accountOutLogin(RL.settingsGet('OutLogin')); this.accountOutLogin(RL.settingsGet('OutLogin'));
this.projectHash(RL.settingsGet('ProjectHash')); this.projectHash(RL.settingsGet('ProjectHash'));
this.defaultIdentityID(RL.settingsGet('DefaultIdentityID'));
this.displayName(RL.settingsGet('DisplayName')); this.displayName(RL.settingsGet('DisplayName'));
this.replyTo(RL.settingsGet('ReplyTo')); this.replyTo(RL.settingsGet('ReplyTo'));
this.signature(RL.settingsGet('Signature')); this.signature(RL.settingsGet('Signature'));

View file

@ -91,7 +91,7 @@ function PopupsComposeViewModel()
this.composeEditorArea = ko.observable(null); this.composeEditorArea = ko.observable(null);
this.identities = RL.data().identities; this.identities = RL.data().identities;
this.defaultIdentityID = RL.data().defaultIdentityID;
this.currentIdentityID = ko.observable(''); this.currentIdentityID = ko.observable('');
this.currentIdentityString = ko.observable(''); this.currentIdentityString = ko.observable('');
@ -433,7 +433,6 @@ PopupsComposeViewModel.prototype.findIdentityIdByMessage = function (sComposeTyp
switch (sComposeType) switch (sComposeType)
{ {
case Enums.ComposeType.Empty: case Enums.ComposeType.Empty:
sResult = RL.data().accountEmail();
break; break;
case Enums.ComposeType.Reply: case Enums.ComposeType.Reply:
case Enums.ComposeType.ReplyAll: case Enums.ComposeType.ReplyAll:
@ -446,7 +445,13 @@ PopupsComposeViewModel.prototype.findIdentityIdByMessage = function (sComposeTyp
break; break;
} }
} }
else
if ('' === sResult)
{
sResult = this.defaultIdentityID();
}
if ('' === sResult)
{ {
sResult = RL.data().accountEmail(); sResult = RL.data().accountEmail();
} }
@ -694,9 +699,9 @@ PopupsComposeViewModel.prototype.onShow = function (sType, oMessageOrArray, aToE
if (null !== mEmail) if (null !== mEmail)
{ {
oExcludeEmail[mEmail] = true; oExcludeEmail[mEmail] = true;
this.currentIdentityID(this.findIdentityIdByMessage(sComposeType, oMessage));
} }
this.currentIdentityID(this.findIdentityIdByMessage(sComposeType, oMessage));
this.reset(); this.reset();
if (Utils.isNonEmptyArray(aToEmails)) if (Utils.isNonEmptyArray(aToEmails))

View file

@ -1,8 +1,8 @@
{ {
"name": "RainLoop", "name": "RainLoop",
"title": "RainLoop Webmail", "title": "RainLoop Webmail",
"version": "1.6.7", "version": "1.6.8",
"release": "141", "release": "151",
"description": "Simple, modern & fast web-based email client", "description": "Simple, modern & fast web-based email client",
"homepage": "http://rainloop.net", "homepage": "http://rainloop.net",
"main": "gulpfile.js", "main": "gulpfile.js",

View file

@ -1116,7 +1116,7 @@ class Actions
else else
{ {
$oAccount = null; $oAccount = null;
$aResult['DevEmail'] = $oConfig->Get('labs', 'dev_email', ''); $aResult['DevEmail'] = $oConfig->Get('labs', 'dev_email', '');
$aResult['DevPassword'] = $oConfig->Get('labs', 'dev_password', ''); $aResult['DevPassword'] = $oConfig->Get('labs', 'dev_password', '');
} }
@ -1240,6 +1240,7 @@ class Actions
$aResult['ReplySameFolder'] = false; $aResult['ReplySameFolder'] = false;
$aResult['Layout'] = \RainLoop\Enumerations\Layout::SIDE_PREVIEW; $aResult['Layout'] = \RainLoop\Enumerations\Layout::SIDE_PREVIEW;
$aResult['UseCheckboxesInList'] = true; $aResult['UseCheckboxesInList'] = true;
$aResult['DefaultIdentityID'] = '';
$aResult['DisplayName'] = ''; $aResult['DisplayName'] = '';
$aResult['ReplyTo'] = ''; $aResult['ReplyTo'] = '';
$aResult['Signature'] = ''; $aResult['Signature'] = '';
@ -1277,6 +1278,7 @@ class Actions
$aResult['UseCheckboxesInList'] = (bool) $oSettings->GetConf('UseCheckboxesInList', $aResult['UseCheckboxesInList']); $aResult['UseCheckboxesInList'] = (bool) $oSettings->GetConf('UseCheckboxesInList', $aResult['UseCheckboxesInList']);
$aResult['InterfaceAnimation'] = (string) $oSettings->GetConf('InterfaceAnimation', $aResult['InterfaceAnimation']); $aResult['InterfaceAnimation'] = (string) $oSettings->GetConf('InterfaceAnimation', $aResult['InterfaceAnimation']);
$aResult['DefaultIdentityID'] = $oSettings->GetConf('DefaultIdentityID', $oAccount ? $oAccount->Email() : $aResult['DefaultIdentityID']);
$aResult['DisplayName'] = $oSettings->GetConf('DisplayName', $aResult['DisplayName']); $aResult['DisplayName'] = $oSettings->GetConf('DisplayName', $aResult['DisplayName']);
$aResult['ReplyTo'] = $oSettings->GetConf('ReplyTo', $aResult['ReplyTo']); $aResult['ReplyTo'] = $oSettings->GetConf('ReplyTo', $aResult['ReplyTo']);
$aResult['Signature'] = $oSettings->GetConf('Signature', $aResult['Signature']); $aResult['Signature'] = $oSettings->GetConf('Signature', $aResult['Signature']);
@ -1339,6 +1341,7 @@ class Actions
$aResult['PluginsLink'] = $sPluginsLink; $aResult['PluginsLink'] = $sPluginsLink;
$aResult['EditorDefaultType'] = 'Html' === $aResult['EditorDefaultType'] ? 'Html' : 'Plain'; $aResult['EditorDefaultType'] = 'Html' === $aResult['EditorDefaultType'] ? 'Html' : 'Plain';
// IDN
$aResult['Email'] = \MailSo\Base\Utils::IdnToUtf8($aResult['Email']); $aResult['Email'] = \MailSo\Base\Utils::IdnToUtf8($aResult['Email']);
$aResult['ParentEmail'] = \MailSo\Base\Utils::IdnToUtf8($aResult['ParentEmail']); $aResult['ParentEmail'] = \MailSo\Base\Utils::IdnToUtf8($aResult['ParentEmail']);
$aResult['MailToEmail'] = \MailSo\Base\Utils::IdnToUtf8($aResult['MailToEmail']); $aResult['MailToEmail'] = \MailSo\Base\Utils::IdnToUtf8($aResult['MailToEmail']);
@ -1443,7 +1446,7 @@ class Actions
$sAdditionalCode = '', $bAdditionalCodeSignMe = false) $sAdditionalCode = '', $bAdditionalCodeSignMe = false)
{ {
$this->Plugins()->RunHook('filter.login-credentials-first', array(&$sEmail, &$sPassword)); $this->Plugins()->RunHook('filter.login-credentials-first', array(&$sEmail, &$sPassword));
$sEmail = \MailSo\Base\Utils::StrToLowerIfAscii($sEmail); $sEmail = \MailSo\Base\Utils::StrToLowerIfAscii($sEmail);
if (false === \strpos($sEmail, '@') && 0 < \strlen(\trim($this->Config()->Get('login', 'default_domain', '')))) if (false === \strpos($sEmail, '@') && 0 < \strlen(\trim($this->Config()->Get('login', 'default_domain', ''))))
{ {
@ -3430,6 +3433,7 @@ class Actions
$this->setSettingsFromParams($oSettings, 'ReplySameFolder', 'bool'); $this->setSettingsFromParams($oSettings, 'ReplySameFolder', 'bool');
$this->setSettingsFromParams($oSettings, 'UseCheckboxesInList', 'bool'); $this->setSettingsFromParams($oSettings, 'UseCheckboxesInList', 'bool');
$this->setSettingsFromParams($oSettings, 'DefaultIdentityID', 'string');
$this->setSettingsFromParams($oSettings, 'DisplayName', 'string'); $this->setSettingsFromParams($oSettings, 'DisplayName', 'string');
$this->setSettingsFromParams($oSettings, 'ReplyTo', 'string'); $this->setSettingsFromParams($oSettings, 'ReplyTo', 'string');
$this->setSettingsFromParams($oSettings, 'Signature', 'string'); $this->setSettingsFromParams($oSettings, 'Signature', 'string');

View file

@ -3,6 +3,16 @@
<div class="legend g-ui-user-select-none"> <div class="legend g-ui-user-select-none">
<span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LEGEND_IDENTITY"></span> <span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LEGEND_IDENTITY"></span>
</div> </div>
<div class="control-group g-ui-user-select-none" data-bind="if: 0 < identities().length">
<label class="control-label" data-bind="i18nUpdate: identities">
<span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LABEL_DEFAULT"></span>
</label>
<div class="controls">
<select data-bind="options: identitiesOptions, value: defaultIdentityID,
optionsText: 'name', optionsValue: 'id', optionsAfterRender: $root.defautOptionsAfterRender, saveTrigger: defaultIdentityIDTrigger"></select>
<div data-bind="saveTrigger: defaultIdentityIDTrigger"></div>
</div>
</div>
<div class="control-group g-ui-user-select-none"> <div class="control-group g-ui-user-select-none">
<label class="control-label"> <label class="control-label">
<span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LABEL_DISPLAY_NAME"></span> <span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LABEL_DISPLAY_NAME"></span>

View file

@ -461,6 +461,7 @@ DELETING_ASK = "Sind Sie sicher?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identität" LEGEND_IDENTITY = "Identität"
LEGEND_IDENTITIES = "Zusätzliche Identitäten" LEGEND_IDENTITIES = "Zusätzliche Identitäten"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Name" LABEL_DISPLAY_NAME = "Name"
LABEL_REPLY_TO = "Antwort an" LABEL_REPLY_TO = "Antwort an"
LABEL_SIGNATURE = "Signatur" LABEL_SIGNATURE = "Signatur"

View file

@ -469,6 +469,7 @@ DELETING_ASK = "Are you sure?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identity"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Additional Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Name" LABEL_DISPLAY_NAME = "Name"
LABEL_REPLY_TO = "Reply-To" LABEL_REPLY_TO = "Reply-To"
LABEL_SIGNATURE = "Signature" LABEL_SIGNATURE = "Signature"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "¿Está usted seguro?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identidad" LEGEND_IDENTITY = "Identidad"
LEGEND_IDENTITIES = "Identidades adicionales" LEGEND_IDENTITIES = "Identidades adicionales"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nombre" LABEL_DISPLAY_NAME = "Nombre"
LABEL_REPLY_TO = "Responder a" LABEL_REPLY_TO = "Responder a"
LABEL_SIGNATURE = "Firma" LABEL_SIGNATURE = "Firma"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Êtes-vous sûr ?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identité" LEGEND_IDENTITY = "Identité"
LEGEND_IDENTITIES = "Identités supplémentaires" LEGEND_IDENTITIES = "Identités supplémentaires"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nom" LABEL_DISPLAY_NAME = "Nom"
LABEL_REPLY_TO = "Répondre à" LABEL_REPLY_TO = "Répondre à"
LABEL_SIGNATURE = "Signature" LABEL_SIGNATURE = "Signature"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Biztosak vagyunk benne?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identitás" LEGEND_IDENTITY = "Identitás"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Additional Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Név" LABEL_DISPLAY_NAME = "Név"
LABEL_REPLY_TO = "Reply-To" LABEL_REPLY_TO = "Reply-To"
LABEL_SIGNATURE = "Aláírás" LABEL_SIGNATURE = "Aláírás"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Ertu viss?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identity"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Additional Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nafn" LABEL_DISPLAY_NAME = "Nafn"
LABEL_REPLY_TO = "Svara" LABEL_REPLY_TO = "Svara"
LABEL_SIGNATURE = "Undirskrift" LABEL_SIGNATURE = "Undirskrift"

View file

@ -461,6 +461,7 @@ DELETING_ASK = "Ne sei sicuro?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identità" LEGEND_IDENTITY = "Identità"
LEGEND_IDENTITIES = "Identità aggiuntive" LEGEND_IDENTITIES = "Identità aggiuntive"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nome" LABEL_DISPLAY_NAME = "Nome"
LABEL_REPLY_TO = "Rispondi a" LABEL_REPLY_TO = "Rispondi a"
LABEL_SIGNATURE = "Firma" LABEL_SIGNATURE = "Firma"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Are you sure?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identity"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Additional Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Name" LABEL_DISPLAY_NAME = "Name"
LABEL_REPLY_TO = "Reply-To" LABEL_REPLY_TO = "Reply-To"
LABEL_SIGNATURE = "Signature" LABEL_SIGNATURE = "Signature"

View file

@ -457,6 +457,7 @@ DELETING_ASK = "정말로 삭제하시겠습니까?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "신원" LEGEND_IDENTITY = "신원"
LEGEND_IDENTITIES = "새 신원 추가" LEGEND_IDENTITIES = "새 신원 추가"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "이름" LABEL_DISPLAY_NAME = "이름"
LABEL_REPLY_TO = "답장" LABEL_REPLY_TO = "답장"
LABEL_SIGNATURE = "서명" LABEL_SIGNATURE = "서명"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Tiešām?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identity"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Additional Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Vārds" LABEL_DISPLAY_NAME = "Vārds"
LABEL_REPLY_TO = "Atbildēt uz" LABEL_REPLY_TO = "Atbildēt uz"
LABEL_SIGNATURE = "Paraksts" LABEL_SIGNATURE = "Paraksts"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Ben je zeker?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identity" LEGEND_IDENTITY = "Identity"
LEGEND_IDENTITIES = "Additional Identities" LEGEND_IDENTITIES = "Additional Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Naam" LABEL_DISPLAY_NAME = "Naam"
LABEL_REPLY_TO = "Antwoorden naar" LABEL_REPLY_TO = "Antwoorden naar"
LABEL_SIGNATURE = "Handtekening" LABEL_SIGNATURE = "Handtekening"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Er du sikker?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identitet" LEGEND_IDENTITY = "Identitet"
LEGEND_IDENTITIES = "Tilleggs Identities" LEGEND_IDENTITIES = "Tilleggs Identities"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Navn" LABEL_DISPLAY_NAME = "Navn"
LABEL_REPLY_TO = "Svar til" LABEL_REPLY_TO = "Svar til"
LABEL_SIGNATURE = "Signatur" LABEL_SIGNATURE = "Signatur"

View file

@ -459,6 +459,7 @@ DELETING_ASK = "Czy na pewno usunąć?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Tożsamość" LEGEND_IDENTITY = "Tożsamość"
LEGEND_IDENTITIES = "Dodatkowe Tożsamości" LEGEND_IDENTITIES = "Dodatkowe Tożsamości"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nazwa" LABEL_DISPLAY_NAME = "Nazwa"
LABEL_REPLY_TO = "Odp. do" LABEL_REPLY_TO = "Odp. do"
LABEL_SIGNATURE = "Podpis" LABEL_SIGNATURE = "Podpis"

View file

@ -463,6 +463,7 @@ DELETING_ASK = "Você tem certeza?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identidade" LEGEND_IDENTITY = "Identidade"
LEGEND_IDENTITIES = "Identidades adicionais" LEGEND_IDENTITIES = "Identidades adicionais"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nome" LABEL_DISPLAY_NAME = "Nome"
LABEL_REPLY_TO = "Reenviar para" LABEL_REPLY_TO = "Reenviar para"
LABEL_SIGNATURE = "Assinatura" LABEL_SIGNATURE = "Assinatura"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Você tem certeza?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identidade" LEGEND_IDENTITY = "Identidade"
LEGEND_IDENTITIES = "Identidades adicionais" LEGEND_IDENTITIES = "Identidades adicionais"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nome" LABEL_DISPLAY_NAME = "Nome"
LABEL_REPLY_TO = "Reenviar para" LABEL_REPLY_TO = "Reenviar para"
LABEL_SIGNATURE = "Assinatura" LABEL_SIGNATURE = "Assinatura"

View file

@ -459,6 +459,7 @@ DELETING_ASK = "Sunteți sigur?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Setările de profil de bază" LEGEND_IDENTITY = "Setările de profil de bază"
LEGEND_IDENTITIES = "Profiluri suplimentare" LEGEND_IDENTITIES = "Profiluri suplimentare"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Nume" LABEL_DISPLAY_NAME = "Nume"
LABEL_REPLY_TO = "Răspunde la" LABEL_REPLY_TO = "Răspunde la"
LABEL_SIGNATURE = "Semnătură" LABEL_SIGNATURE = "Semnătură"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Точно?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Настройки основного профиля" LEGEND_IDENTITY = "Настройки основного профиля"
LEGEND_IDENTITIES = "Дополнительные профили" LEGEND_IDENTITIES = "Дополнительные профили"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Имя" LABEL_DISPLAY_NAME = "Имя"
LABEL_REPLY_TO = "Отвечать на" LABEL_REPLY_TO = "Отвечать на"
LABEL_SIGNATURE = "Подпись" LABEL_SIGNATURE = "Подпись"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Ste si istý?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Identita" LEGEND_IDENTITY = "Identita"
LEGEND_IDENTITIES = "Ďalšie identity" LEGEND_IDENTITIES = "Ďalšie identity"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Meno" LABEL_DISPLAY_NAME = "Meno"
LABEL_REPLY_TO = "Adresa pre odpoveď" LABEL_REPLY_TO = "Adresa pre odpoveď"
LABEL_SIGNATURE = "Podpis" LABEL_SIGNATURE = "Podpis"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "Впевнені?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "Налаштування основного профілю" LEGEND_IDENTITY = "Налаштування основного профілю"
LEGEND_IDENTITIES = "Додаткові профілі" LEGEND_IDENTITIES = "Додаткові профілі"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "Ім'я" LABEL_DISPLAY_NAME = "Ім'я"
LABEL_REPLY_TO = "Відповідати на" LABEL_REPLY_TO = "Відповідати на"
LABEL_SIGNATURE = "Підпис" LABEL_SIGNATURE = "Підпис"

View file

@ -460,6 +460,7 @@ DELETING_ASK = "确定?"
[SETTINGS_IDENTITIES] [SETTINGS_IDENTITIES]
LEGEND_IDENTITY = "签名" LEGEND_IDENTITY = "签名"
LEGEND_IDENTITIES = "附加签名" LEGEND_IDENTITIES = "附加签名"
LABEL_DEFAULT = "Default"
LABEL_DISPLAY_NAME = "名称" LABEL_DISPLAY_NAME = "名称"
LABEL_REPLY_TO = "回复" LABEL_REPLY_TO = "回复"
LABEL_SIGNATURE = "签名" LABEL_SIGNATURE = "签名"

View file

@ -4219,7 +4219,7 @@ function Selector(oKoList, oKoSelectedItem,
sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector) sItemSelector, sItemSelectedSelector, sItemCheckedSelector, sItemFocusedSelector)
{ {
this.list = oKoList; this.list = oKoList;
this.listChecked = ko.computed(function () { this.listChecked = ko.computed(function () {
return _.filter(this.list(), function (oItem) { return _.filter(this.list(), function (oItem) {
return oItem.checked(); return oItem.checked();
@ -4229,11 +4229,11 @@ function Selector(oKoList, oKoSelectedItem,
this.isListChecked = ko.computed(function () { this.isListChecked = ko.computed(function () {
return 0 < this.listChecked().length; return 0 < this.listChecked().length;
}, this); }, this);
this.focusedItem = ko.observable(null); this.focusedItem = ko.observable(null);
this.selectedItem = oKoSelectedItem; this.selectedItem = oKoSelectedItem;
this.selectedItemUseCallback = true; this.selectedItemUseCallback = true;
this.itemSelectedThrottle = _.debounce(_.bind(this.itemSelected, this), 300); this.itemSelectedThrottle = _.debounce(_.bind(this.itemSelected, this), 300);
this.listChecked.subscribe(function (aItems) { this.listChecked.subscribe(function (aItems) {
@ -4253,7 +4253,7 @@ function Selector(oKoList, oKoSelectedItem,
this.selectedItem(this.focusedItem()); this.selectedItem(this.focusedItem());
} }
}, this); }, this);
this.selectedItem.subscribe(function (oItem) { this.selectedItem.subscribe(function (oItem) {
if (oItem) if (oItem)
@ -4307,12 +4307,12 @@ function Selector(oKoList, oKoSelectedItem,
this.oContentVisible = null; this.oContentVisible = null;
this.oContentScrollable = null; this.oContentScrollable = null;
this.sItemSelector = sItemSelector; this.sItemSelector = sItemSelector;
this.sItemSelectedSelector = sItemSelectedSelector; this.sItemSelectedSelector = sItemSelectedSelector;
this.sItemCheckedSelector = sItemCheckedSelector; this.sItemCheckedSelector = sItemCheckedSelector;
this.sItemFocusedSelector = sItemFocusedSelector; this.sItemFocusedSelector = sItemFocusedSelector;
this.sLastUid = ''; this.sLastUid = '';
this.bAutoSelect = true; this.bAutoSelect = true;
this.oCallbacks = {}; this.oCallbacks = {};
@ -4332,7 +4332,7 @@ function Selector(oKoList, oKoSelectedItem,
mFocused = null, mFocused = null,
mSelected = null mSelected = null
; ;
this.list.subscribe(function (aItems) { this.list.subscribe(function (aItems) {
var self = this; var self = this;
@ -4342,7 +4342,7 @@ function Selector(oKoList, oKoSelectedItem,
if (oItem) if (oItem)
{ {
var sUid = self.getItemUid(oItem); var sUid = self.getItemUid(oItem);
aCache.push(sUid); aCache.push(sUid);
if (oItem.checked()) if (oItem.checked())
{ {
@ -4360,9 +4360,9 @@ function Selector(oKoList, oKoSelectedItem,
}); });
} }
}, this, 'beforeChange'); }, this, 'beforeChange');
this.list.subscribe(function (aItems) { this.list.subscribe(function (aItems) {
var var
self = this, self = this,
oTemp = null, oTemp = null,
@ -4373,7 +4373,7 @@ function Selector(oKoList, oKoSelectedItem,
bSelected = false, bSelected = false,
iLen = 0 iLen = 0
; ;
this.selectedItemUseCallback = false; this.selectedItemUseCallback = false;
this.focusedItem(null); this.focusedItem(null);
@ -4452,7 +4452,7 @@ function Selector(oKoList, oKoSelectedItem,
aCheckedCache = []; aCheckedCache = [];
mFocused = null; mFocused = null;
mSelected = null; mSelected = null;
}, this); }, this);
} }
@ -4490,13 +4490,13 @@ Selector.prototype.init = function (oContentVisible, oContentScrollable, sKeySco
this.oContentScrollable = oContentScrollable; this.oContentScrollable = oContentScrollable;
sKeyScope = sKeyScope || 'all'; sKeyScope = sKeyScope || 'all';
if (this.oContentVisible && this.oContentScrollable) if (this.oContentVisible && this.oContentScrollable)
{ {
var var
self = this self = this
; ;
$(this.oContentVisible) $(this.oContentVisible)
.on('selectstart', function (oEvent) { .on('selectstart', function (oEvent) {
if (oEvent && oEvent.preventDefault) if (oEvent && oEvent.preventDefault)
@ -4872,7 +4872,7 @@ Selector.prototype.actionClick = function (oItem, oEvent)
bClick = true, bClick = true,
sUid = this.getItemUid(oItem) sUid = this.getItemUid(oItem)
; ;
if (oEvent) if (oEvent)
{ {
if (oEvent.shiftKey && !oEvent.ctrlKey && !oEvent.altKey) if (oEvent.shiftKey && !oEvent.ctrlKey && !oEvent.altKey)
@ -4885,7 +4885,7 @@ Selector.prototype.actionClick = function (oItem, oEvent)
oItem.checked(!oItem.checked()); oItem.checked(!oItem.checked());
this.eventClickFunction(oItem, oEvent); this.eventClickFunction(oItem, oEvent);
this.focusedItem(oItem); this.focusedItem(oItem);
} }
else if (oEvent.ctrlKey && !oEvent.shiftKey && !oEvent.altKey) else if (oEvent.ctrlKey && !oEvent.shiftKey && !oEvent.altKey)
@ -4906,6 +4906,8 @@ Selector.prototype.actionClick = function (oItem, oEvent)
{ {
this.focusedItem(oItem); this.focusedItem(oItem);
this.selectedItem(oItem); this.selectedItem(oItem);
this.scrollToFocused();
} }
} }
}; };
@ -8799,7 +8801,7 @@ function PopupsComposeViewModel()
this.composeEditorArea = ko.observable(null); this.composeEditorArea = ko.observable(null);
this.identities = RL.data().identities; this.identities = RL.data().identities;
this.defaultIdentityID = RL.data().defaultIdentityID;
this.currentIdentityID = ko.observable(''); this.currentIdentityID = ko.observable('');
this.currentIdentityString = ko.observable(''); this.currentIdentityString = ko.observable('');
@ -9141,7 +9143,6 @@ PopupsComposeViewModel.prototype.findIdentityIdByMessage = function (sComposeTyp
switch (sComposeType) switch (sComposeType)
{ {
case Enums.ComposeType.Empty: case Enums.ComposeType.Empty:
sResult = RL.data().accountEmail();
break; break;
case Enums.ComposeType.Reply: case Enums.ComposeType.Reply:
case Enums.ComposeType.ReplyAll: case Enums.ComposeType.ReplyAll:
@ -9154,7 +9155,13 @@ PopupsComposeViewModel.prototype.findIdentityIdByMessage = function (sComposeTyp
break; break;
} }
} }
else
if ('' === sResult)
{
sResult = this.defaultIdentityID();
}
if ('' === sResult)
{ {
sResult = RL.data().accountEmail(); sResult = RL.data().accountEmail();
} }
@ -9402,9 +9409,9 @@ PopupsComposeViewModel.prototype.onShow = function (sType, oMessageOrArray, aToE
if (null !== mEmail) if (null !== mEmail)
{ {
oExcludeEmail[mEmail] = true; oExcludeEmail[mEmail] = true;
this.currentIdentityID(this.findIdentityIdByMessage(sComposeType, oMessage));
} }
this.currentIdentityID(this.findIdentityIdByMessage(sComposeType, oMessage));
this.reset(); this.reset();
if (Utils.isNonEmptyArray(aToEmails)) if (Utils.isNonEmptyArray(aToEmails))
@ -14813,9 +14820,11 @@ SettingsIdentity.prototype.onBuild = function ()
function SettingsIdentities() function SettingsIdentities()
{ {
var oData = RL.data(); var oData = RL.data();
this.editor = null; this.editor = null;
this.defautOptionsAfterRender = Utils.defautOptionsAfterRender;
this.accountEmail = oData.accountEmail;
this.displayName = oData.displayName; this.displayName = oData.displayName;
this.signature = oData.signature; this.signature = oData.signature;
this.signatureToAll = oData.signatureToAll; this.signatureToAll = oData.signatureToAll;
@ -14823,11 +14832,47 @@ function SettingsIdentities()
this.signatureDom = ko.observable(null); this.signatureDom = ko.observable(null);
this.defaultIdentityIDTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.displayNameTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.displayNameTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.replyTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.replyTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.signatureTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.signatureTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.identities = oData.identities; this.identities = oData.identities;
this.defaultIdentityID = oData.defaultIdentityID;
this.identitiesOptions = ko.computed(function () {
var
aList = this.identities(),
aResult = []
;
if (0 < aList.length)
{
aResult.push({
'id': this.accountEmail.peek(),
'name': this.formattedAccountIdentity(),
'seporator': false
});
aResult.push({
'id': '---',
'name': '---',
'seporator': true,
'disabled': true
});
_.each(aList, function (oItem) {
aResult.push({
'id': oItem.id,
'name': oItem.formattedNameForEmail(),
'seporator': false
});
});
}
return aResult;
}, this);
this.processText = ko.computed(function () { this.processText = ko.computed(function () {
return oData.identitiesLoading() ? Utils.i18n('SETTINGS_IDENTITIES/LOADING_PROCESS') : ''; return oData.identitiesLoading() ? Utils.i18n('SETTINGS_IDENTITIES/LOADING_PROCESS') : '';
@ -14854,6 +14899,20 @@ function SettingsIdentities()
Utils.addSettingsViewModel(SettingsIdentities, 'SettingsIdentities', 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME', 'identities'); Utils.addSettingsViewModel(SettingsIdentities, 'SettingsIdentities', 'SETTINGS_LABELS/LABEL_IDENTITIES_NAME', 'identities');
/**
*
* @return {string}
*/
SettingsIdentities.prototype.formattedAccountIdentity = function ()
{
var
sDisplayName = this.displayName.peek(),
sEmail = this.accountEmail.peek()
;
return '' === sDisplayName ? sEmail : '"' + Utils.quoteName(sDisplayName) + '" <' + sEmail + '>';
};
SettingsIdentities.prototype.addNewIdentity = function () SettingsIdentities.prototype.addNewIdentity = function ()
{ {
kn.showScreenPopup(PopupsIdentityViewModel); kn.showScreenPopup(PopupsIdentityViewModel);
@ -14872,7 +14931,7 @@ SettingsIdentities.prototype.deleteIdentity = function (oIdentityToRemove)
if (oIdentityToRemove && oIdentityToRemove.deleteAccess()) if (oIdentityToRemove && oIdentityToRemove.deleteAccess())
{ {
this.identityForDeletion(null); this.identityForDeletion(null);
var var
fRemoveFolder = function (oIdentity) { fRemoveFolder = function (oIdentity) {
return oIdentityToRemove === oIdentity; return oIdentityToRemove === oIdentity;
@ -14882,7 +14941,7 @@ SettingsIdentities.prototype.deleteIdentity = function (oIdentityToRemove)
if (oIdentityToRemove) if (oIdentityToRemove)
{ {
this.identities.remove(fRemoveFolder); this.identities.remove(fRemoveFolder);
RL.remote().identityDelete(function () { RL.remote().identityDelete(function () {
RL.accountsAndIdentities(); RL.accountsAndIdentities();
}, oIdentityToRemove.id); }, oIdentityToRemove.id);
@ -14928,7 +14987,7 @@ SettingsIdentities.prototype.onBuild = function (oDom)
self.editIdentity(oIdentityItem); self.editIdentity(oIdentityItem);
} }
}) })
; ;
_.delay(function () { _.delay(function () {
@ -14936,9 +14995,16 @@ SettingsIdentities.prototype.onBuild = function (oDom)
oData = RL.data(), oData = RL.data(),
f1 = Utils.settingsSaveHelperSimpleFunction(self.displayNameTrigger, self), f1 = Utils.settingsSaveHelperSimpleFunction(self.displayNameTrigger, self),
f2 = Utils.settingsSaveHelperSimpleFunction(self.replyTrigger, self), f2 = Utils.settingsSaveHelperSimpleFunction(self.replyTrigger, self),
f3 = Utils.settingsSaveHelperSimpleFunction(self.signatureTrigger, self) f3 = Utils.settingsSaveHelperSimpleFunction(self.signatureTrigger, self),
f4 = Utils.settingsSaveHelperSimpleFunction(self.defaultIdentityIDTrigger, self)
; ;
oData.defaultIdentityID.subscribe(function (sValue) {
RL.remote().saveSettings(f4, {
'DefaultIdentityID': sValue
});
});
oData.displayName.subscribe(function (sValue) { oData.displayName.subscribe(function (sValue) {
RL.remote().saveSettings(f1, { RL.remote().saveSettings(f1, {
'DisplayName': sValue 'DisplayName': sValue
@ -15926,6 +15992,7 @@ function WebMailDataStorage()
this.accountsLoading = ko.observable(false).extend({'throttle': 100}); this.accountsLoading = ko.observable(false).extend({'throttle': 100});
// identities // identities
this.defaultIdentityID = ko.observable('');
this.identities = ko.observableArray([]); this.identities = ko.observableArray([]);
this.identitiesLoading = ko.observable(false).extend({'throttle': 100}); this.identitiesLoading = ko.observable(false).extend({'throttle': 100});
@ -16324,6 +16391,8 @@ WebMailDataStorage.prototype.populateDataOnStart = function()
this.accountOutLogin(RL.settingsGet('OutLogin')); this.accountOutLogin(RL.settingsGet('OutLogin'));
this.projectHash(RL.settingsGet('ProjectHash')); this.projectHash(RL.settingsGet('ProjectHash'));
this.defaultIdentityID(RL.settingsGet('DefaultIdentityID'));
this.displayName(RL.settingsGet('DisplayName')); this.displayName(RL.settingsGet('DisplayName'));
this.replyTo(RL.settingsGet('ReplyTo')); this.replyTo(RL.settingsGet('ReplyTo'));
this.signature(RL.settingsGet('Signature')); this.signature(RL.settingsGet('Signature'));

File diff suppressed because one or more lines are too long