CardDAV (pre-release)

This commit is contained in:
RainLoop Team 2013-12-25 04:05:04 +04:00
parent 7a8fffede8
commit 639d8c58f6
38 changed files with 525 additions and 207 deletions

View file

@ -277,6 +277,7 @@ module.exports = function (grunt) {
"dev/ViewModels/SettingsPaneViewModel.js", "dev/ViewModels/SettingsPaneViewModel.js",
"dev/Settings/General.js", "dev/Settings/General.js",
"dev/Settings/Contacts.js",
"dev/Settings/Accounts.js", "dev/Settings/Accounts.js",
"dev/Settings/Identity.js", "dev/Settings/Identity.js",
"dev/Settings/Identities.js", "dev/Settings/Identities.js",

View file

@ -146,7 +146,7 @@ AbstractApp.prototype.settingsSet = function (sName, mValue)
AbstractApp.prototype.setTitle = function (sTitle) AbstractApp.prototype.setTitle = function (sTitle)
{ {
sTitle = ((0 < sTitle.length) ? sTitle + ' - ' : '') + sTitle = ((Utils.isNormal(sTitle) && 0 < sTitle.length) ? sTitle + ' - ' : '') +
RL.settingsGet('Title') || ''; RL.settingsGet('Title') || '';
window.document.title = '_'; window.document.title = '_';

View file

@ -720,6 +720,11 @@ RainLoopApp.prototype.bootstart = function ()
Utils.removeSettingsViewModel(SettingsChangePasswordScreen); Utils.removeSettingsViewModel(SettingsChangePasswordScreen);
} }
if (!RL.settingsGet('ContactsIsAllowed'))
{
Utils.removeSettingsViewModel(SettingsContacts);
}
if (!RL.settingsGet('AllowAdditionalAccounts')) if (!RL.settingsGet('AllowAdditionalAccounts'))
{ {
Utils.removeSettingsViewModel(SettingsAccounts); Utils.removeSettingsViewModel(SettingsAccounts);

View file

@ -13,5 +13,5 @@ _.extend(LoginScreen.prototype, KnoinAbstractScreen.prototype);
LoginScreen.prototype.onShow = function () LoginScreen.prototype.onShow = function ()
{ {
RL.setTitle(Utils.i18n('TITLES/LOGIN')); RL.setTitle('');
}; };

39
dev/Settings/Contacts.js Normal file
View file

@ -0,0 +1,39 @@
/* RainLoop Webmail (c) RainLoop Team | Licensed under CC BY-NC-SA 3.0 */
/**
* @constructor
*/
function SettingsContacts()
{
var oData = RL.data();
this.contactsAutosave = oData.contactsAutosave;
this.showPassword = ko.observable(false);
this.allowContactsSync = !!RL.settingsGet('ContactsSyncIsAllowed');
this.contactsSyncServer = RL.settingsGet('ContactsSyncServer');
this.contactsSyncUser = RL.settingsGet('ContactsSyncUser');
this.contactsSyncPass = RL.settingsGet('ContactsSyncPassword');
this.contactsSyncPabUrl = RL.settingsGet('ContactsSyncPabUrl');
}
Utils.addSettingsViewModel(SettingsContacts, 'SettingsContacts', 'SETTINGS_LABELS/LABEL_CONTACTS_NAME', 'contacts');
SettingsContacts.prototype.toggleShowPassword = function ()
{
this.showPassword(!this.showPassword());
};
SettingsContacts.prototype.onBuild = function ()
{
RL.data().contactsAutosave.subscribe(function (bValue) {
RL.remote().saveSettings(Utils.emptyFunction, {
'ContactsAutosave': bValue ? '1' : '0'
});
});
};
SettingsContacts.prototype.onShow = function ()
{
this.showPassword(false);
};

View file

@ -12,7 +12,6 @@ function SettingsGeneral()
this.mainMessagesPerPageArray = Consts.Defaults.MessagesPerPageArray; this.mainMessagesPerPageArray = Consts.Defaults.MessagesPerPageArray;
this.editorDefaultType = oData.editorDefaultType; this.editorDefaultType = oData.editorDefaultType;
this.showImages = oData.showImages; this.showImages = oData.showImages;
this.contactsAutosave = oData.contactsAutosave;
this.interfaceAnimation = oData.interfaceAnimation; this.interfaceAnimation = oData.interfaceAnimation;
this.useDesktopNotifications = oData.useDesktopNotifications; this.useDesktopNotifications = oData.useDesktopNotifications;
this.threading = oData.threading; this.threading = oData.threading;
@ -39,7 +38,6 @@ function SettingsGeneral()
this.mppTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.mppTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.isAnimationSupported = Globals.bAnimationSupported; this.isAnimationSupported = Globals.bAnimationSupported;
this.allowContacts = !!RL.settingsGet('ContactsIsAllowed');
} }
Utils.addSettingsViewModel(SettingsGeneral, 'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true); Utils.addSettingsViewModel(SettingsGeneral, 'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true);
@ -97,12 +95,6 @@ SettingsGeneral.prototype.onBuild = function ()
}); });
}); });
oData.contactsAutosave.subscribe(function (bValue) {
RL.remote().saveSettings(Utils.emptyFunction, {
'ContactsAutosave': bValue ? '1' : '0'
});
});
oData.interfaceAnimation.subscribe(function (sValue) { oData.interfaceAnimation.subscribe(function (sValue) {
RL.remote().saveSettings(Utils.emptyFunction, { RL.remote().saveSettings(Utils.emptyFunction, {
'InterfaceAnimation': sValue 'InterfaceAnimation': sValue

View file

@ -290,11 +290,12 @@ class Http
/** /**
* @param bool $bWithRemoteUserData = false * @param bool $bWithRemoteUserData = false
* @param bool $bRemoveWWW = true * @param bool $bWithoutWWW = true
* @param bool $bWithoutPort = false
* *
* @return string * @return string
*/ */
public function GetHost($bWithRemoteUserData = false, $bRemoveWWW = true) public function GetHost($bWithRemoteUserData = false, $bWithoutWWW = true, $bWithoutPort = false)
{ {
$sHost = $this->GetServer('HTTP_HOST', ''); $sHost = $this->GetServer('HTTP_HOST', '');
if (0 === \strlen($sHost)) if (0 === \strlen($sHost))
@ -307,7 +308,7 @@ class Http
? $sName : $sName.':'.$iPort; ? $sName : $sName.':'.$iPort;
} }
if ($bRemoveWWW) if ($bWithoutWWW)
{ {
$sHost = 'www.' === \substr(\strtolower($sHost), 0, 4) ? \substr($sHost, 4) : $sHost; $sHost = 'www.' === \substr(\strtolower($sHost), 0, 4) ? \substr($sHost, 4) : $sHost;
} }
@ -318,6 +319,11 @@ class Http
$sHost = (0 < \strlen($sUser) ? $sUser.'@' : '').$sHost; $sHost = (0 < \strlen($sUser) ? $sUser.'@' : '').$sHost;
} }
if ($bWithoutPort)
{
$sHost = \preg_replace('/:[\d]+$/', '', $sHost);
}
return $sHost; return $sHost;
} }

View file

@ -930,14 +930,35 @@ class Actions
$oAccount = $this->getAccountFromToken(false); $oAccount = $this->getAccountFromToken(false);
if ($oAccount instanceof \RainLoop\Account) if ($oAccount instanceof \RainLoop\Account)
{ {
$oPab = $this->PersonalAddressBookProvider($oAccount);
$aResult['Auth'] = true; $aResult['Auth'] = true;
$aResult['Email'] = $oAccount->Email(); $aResult['Email'] = $oAccount->Email();
$aResult['IncLogin'] = $oAccount->IncLogin(); $aResult['IncLogin'] = $oAccount->IncLogin();
$aResult['OutLogin'] = $oAccount->OutLogin(); $aResult['OutLogin'] = $oAccount->OutLogin();
$aResult['AccountHash'] = $oAccount->Hash(); $aResult['AccountHash'] = $oAccount->Hash();
$aResult['ChangePasswordIsAllowed'] = $this->ChangePasswordProvider()->PasswordChangePossibility($oAccount); $aResult['ChangePasswordIsAllowed'] = $this->ChangePasswordProvider()->PasswordChangePossibility($oAccount);
$aResult['ContactsIsAllowed'] = $this->PersonalAddressBookProvider($oAccount)->IsActive(); $aResult['ContactsIsAllowed'] = $oPab->IsActive();
$aResult['ContactsSharingIsAllowed'] = $this->PersonalAddressBookProvider($oAccount)->IsSharingAllowed(); $aResult['ContactsSharingIsAllowed'] = $oPab->IsSharingAllowed();
$aResult['ContactsSyncIsAllowed'] = (bool) $oConfig->Get('contacts', 'allow_sync', false);
$aResult['ContactsSyncServer'] = '';
$aResult['ContactsSyncUser'] = '';
$aResult['ContactsSyncPassword'] = '';
$aResult['ContactsSyncPabUrl'] = '';
if ($aResult['ContactsSyncIsAllowed'])
{
$aResult['ContactsSyncServer'] = $this->Http()->GetHost(false, true, true);
$aResult['ContactsSyncUser'] = $oAccount->ParentEmailHelper();
$aResult['ContactsSyncPassword'] = $oPab->GetUserHashByEmail($aResult['ContactsSyncUser'], true);
$sUrl = \rtrim(\trim($this->Http()->GetScheme().'://'.$this->Http()->GetHost(true, false).$this->Http()->GetPath()), '/\\');
$sUrl = \preg_replace('/index\.php(.*)$/i', '', $sUrl);
$aResult['ContactsSyncPabUrl'] = $sUrl.'/index.php/dav/addressbooks/'.$oAccount->ParentEmailHelper().'/default/';
}
$oSettings = $this->SettingsProvider()->Load($oAccount); $oSettings = $this->SettingsProvider()->Load($oAccount);
} }

View file

@ -88,6 +88,8 @@ class PdoPersonalAddressBook
*/ */
public function GetUserUidByEmail($sEmail) public function GetUserUidByEmail($sEmail)
{ {
$this->Sync();
$iId = $this->getUserId($sEmail); $iId = $this->getUserId($sEmail);
return 0 < $iId ? (string) $iId : ''; return 0 < $iId ? (string) $iId : '';
} }
@ -98,6 +100,8 @@ class PdoPersonalAddressBook
*/ */
public function GetCtagByEmail($sEmail) public function GetCtagByEmail($sEmail)
{ {
$this->Sync();
$sResult = '0'; $sResult = '0';
$iUserID = $this->getUserId($sEmail); $iUserID = $this->getUserId($sEmail);
if (0 < $iUserID) if (0 < $iUserID)
@ -126,11 +130,13 @@ class PdoPersonalAddressBook
*/ */
public function GetUserHashByEmail($sEmail, $bCreate = false) public function GetUserHashByEmail($sEmail, $bCreate = false)
{ {
$this->Sync();
$sHash = ''; $sHash = '';
$iUserID = $this->getUserId($sEmail); $iUserID = $this->getUserId($sEmail);
if (0 < $iUserID) if (0 < $iUserID)
{ {
$oStmt = $this->prepareAndExecute('SELECT pass_hash FROM rainloop_pab_users_hashes WHERE id_user = :id_user LIMIT 1', $oStmt = $this->prepareAndExecute('SELECT pass_hash FROM rainloop_pab_users WHERE id_user = :id_user LIMIT 1',
array(':id_user' => array($iUserID, \PDO::PARAM_INT))); array(':id_user' => array($iUserID, \PDO::PARAM_INT)));
if ($oStmt) if ($oStmt)
@ -142,14 +148,15 @@ class PdoPersonalAddressBook
} }
else if ($bCreate) else if ($bCreate)
{ {
$this->prepareAndExecute('INSERT INTO rainloop_pab_users_hashes (id_user, pass_hash) VALUES (:id_user, :pass_hash);', $this->prepareAndExecute('INSERT INTO rainloop_pab_users (id_user, email, pass_hash) VALUES (:id_user, :email, :pass_hash);',
array( array(
':id_user' => array($iUserID, \PDO::PARAM_INT), ':id_user' => array($iUserID, \PDO::PARAM_INT),
':email' => array($sEmail, \PDO::PARAM_STR),
':pass_hash' => array(\md5($sEmail.\microtime(true)), \PDO::PARAM_STR) ':pass_hash' => array(\md5($sEmail.\microtime(true)), \PDO::PARAM_STR)
) )
); );
$this->GetUserHashByEmail($sEmail, false); $sHash = $this->GetUserHashByEmail($sEmail, false);
} }
} }
} }
@ -305,6 +312,7 @@ class PdoPersonalAddressBook
*/ */
public function DeleteContacts($sEmail, $aContactIds) public function DeleteContacts($sEmail, $aContactIds)
{ {
$this->Sync();
$iUserID = $this->getUserId($sEmail); $iUserID = $this->getUserId($sEmail);
$aContactIds = \array_filter($aContactIds, function (&$mItem) { $aContactIds = \array_filter($aContactIds, function (&$mItem) {
@ -1239,8 +1247,9 @@ SQLITEINITIAL;
'ALTER TABLE rainloop_pab_contacts ADD carddav_data MEDIUMTEXT;', 'ALTER TABLE rainloop_pab_contacts ADD carddav_data MEDIUMTEXT;',
'ALTER TABLE rainloop_pab_contacts ADD carddav_hash varchar(128) NOT NULL DEFAULT \'\';', 'ALTER TABLE rainloop_pab_contacts ADD carddav_hash varchar(128) NOT NULL DEFAULT \'\';',
'ALTER TABLE rainloop_pab_contacts ADD carddav_size int UNSIGNED NOT NULL DEFAULT 0;', 'ALTER TABLE rainloop_pab_contacts ADD carddav_size int UNSIGNED NOT NULL DEFAULT 0;',
'CREATE TABLE IF NOT EXISTS rainloop_pab_users_hashes ( 'CREATE TABLE IF NOT EXISTS rainloop_pab_users (
id_user int UNSIGNED NOT NULL, id_user int UNSIGNED NOT NULL,
email varchar(128) NOT NULL,
pass_hash varchar(128) NOT NULL pass_hash varchar(128) NOT NULL
)/*!40000 ENGINE=INNODB */;' )/*!40000 ENGINE=INNODB */;'
) )
@ -1253,8 +1262,9 @@ SQLITEINITIAL;
'ALTER TABLE rainloop_pab_contacts ADD carddav_data TEXT;', 'ALTER TABLE rainloop_pab_contacts ADD carddav_data TEXT;',
'ALTER TABLE rainloop_pab_contacts ADD carddav_hash varchar(128) NOT NULL DEFAULT \'\';', 'ALTER TABLE rainloop_pab_contacts ADD carddav_hash varchar(128) NOT NULL DEFAULT \'\';',
'ALTER TABLE rainloop_pab_contacts ADD carddav_size integer NOT NULL DEFAULT 0;', 'ALTER TABLE rainloop_pab_contacts ADD carddav_size integer NOT NULL DEFAULT 0;',
'CREATE TABLE rainloop_pab_users_hashes ( 'CREATE TABLE rainloop_pab_users (
id_user integer NOT NULL, id_user integer NOT NULL,
email varchar(128) NOT NULL,
pass_hash varchar(128) NOT NULL pass_hash varchar(128) NOT NULL
);' );'
) )
@ -1267,8 +1277,9 @@ SQLITEINITIAL;
'ALTER TABLE rainloop_pab_contacts ADD carddav_data text;', 'ALTER TABLE rainloop_pab_contacts ADD carddav_data text;',
'ALTER TABLE rainloop_pab_contacts ADD carddav_hash text NOT NULL DEFAULT \'\';', 'ALTER TABLE rainloop_pab_contacts ADD carddav_hash text NOT NULL DEFAULT \'\';',
'ALTER TABLE rainloop_pab_contacts ADD carddav_size integer NOT NULL DEFAULT 0;', 'ALTER TABLE rainloop_pab_contacts ADD carddav_size integer NOT NULL DEFAULT 0;',
'CREATE TABLE rainloop_pab_users_hashes ( 'CREATE TABLE rainloop_pab_users (
id_user integer NOT NULL, id_user integer NOT NULL,
email text NOT NULL,
pass_hash text NOT NULL pass_hash text NOT NULL
);' );'
) )

View file

@ -9,7 +9,6 @@
</div> </div>
</div> </div>
<div class="form-horizontal" data-bind="visible: contactsSupported"> <div class="form-horizontal" data-bind="visible: contactsSupported">
<div class="form-horizontal">
<div class="legend"> <div class="legend">
Contacts Contacts
</div> </div>
@ -23,12 +22,15 @@
<i data-bind="css: contactsSharing() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i> <i data-bind="css: contactsSharing() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow contacts sharing Allow contacts sharing
</label> </label>
<br />
<label data-bind="click: function () { contactsSync(!contactsSync()); }"> <label data-bind="click: function () { contactsSync(!contactsSync()); }">
<i data-bind="css: contactsSync() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i> <i data-bind="css: contactsSync() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Allow contacts sync (CardDAV) Allow contacts sync (CardDAV)
</label> </label>
<a href="http://rainloop.net/docs/carddav/" target="_blank">read about web server configuration</a>
</div> </div>
</div> </div>
<br />
<div class="control-group"> <div class="control-group">
<label class="control-label"> <label class="control-label">
Type Type

View file

@ -1,4 +1,4 @@
<div class="b-settings-accounts"> <div class="b-settings-accounts g-ui-user-select-none">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span> <span class="i18n" data-i18n-text="SETTINGS_ACCOUNTS/LEGEND_ACCOUNTS"></span>

View file

@ -1,4 +1,4 @@
<div class="b-settings-general"> <div class="b-settings-general g-ui-user-select-none">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LEGEND_CHANGE_PASSWORD"></span> <span class="i18n" data-i18n-text="SETTINGS_CHANGE_PASSWORD/LEGEND_CHANGE_PASSWORD"></span>

View file

@ -0,0 +1,66 @@
<div class="b-settings-contacts">
<div class="form-horizontal g-ui-user-select-none">
<div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LEGEND_CONTACTS"></span>
</div>
<div class="control-group">
<div class="controls">
<label data-bind="click: function () { contactsAutosave(!contactsAutosave()); }">
<i data-bind="css: contactsAutosave() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
&nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_CONTACTS_AUTOSAVE"></span>
</label>
</div>
</div>
</div>
<div class="form-horizontal" data-bind="visible: allowContactsSync">
<div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LEGEND_MOBILE_SYNC"></span>
</div>
<div class="control-group">
<label class="control-label" style="padding-top: 0;">
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_SYNC_SERVER"></span>
</label>
<div class="controls">
<strong data-bind="text: contactsSyncServer"></strong>
</div>
</div>
<div class="control-group">
<label class="control-label" style="padding-top: 0;">
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_SYNC_USERNAME"></span>
</label>
<div class="controls">
<strong data-bind="text: contactsSyncUser"></strong>
</div>
</div>
<div class="control-group">
<label class="control-label" style="padding-top: 0;">
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_SYNC_PASSWORD"></span>
</label>
<div class="controls">
<div data-bind="visible: showPassword">
<strong style="color:red" data-bind="text: contactsSyncPass"></strong>
</div>
<span class="g-ui-link i18n" data-bind="visible: !showPassword(), click: toggleShowPassword"
data-i18n-text="SETTINGS_CONTACTS/LINK_SHOW"></span>
<span class="g-ui-link i18n" data-bind="visible: showPassword, click: toggleShowPassword"
data-i18n-text="SETTINGS_CONTACTS/LINK_HIDE"></span>
</div>
</div>
<div class="control-group">
<div class="controls">
<div class="alert alert-info span8" style="margin-left: 0">
<p>
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/DESC_FULL_PAB_URL"></span>
</p>
<p>
<span class="i18n" data-i18n-text="SETTINGS_CONTACTS/LABEL_DESC_PAB"></span>:
<br />
<a href="javascript:void(0);" target="_blank" data-bind="text: contactsSyncPabUrl, attr: {'href': contactsSyncPabUrl}"></a>
</p>
</div>
<br />
</div>
</div>
</div>
</div>

View file

@ -1,4 +1,4 @@
<div class="b-settings-folders" data-bind="css: { 'ignore-folder-subscribe': !useImapSubscribe }"> <div class="b-settings-folders g-ui-user-select-none" data-bind="css: { 'ignore-folder-subscribe': !useImapSubscribe }">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span> <span class="i18n" data-i18n-text="SETTINGS_FOLDERS/LEGEND_FOLDERS"></span>

View file

@ -1,4 +1,4 @@
<div class="b-settings-general"> <div class="b-settings-general g-ui-user-select-none">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LEGEND_GENERAL"></span> <span class="i18n" data-i18n-text="SETTINGS_GENERAL/LEGEND_GENERAL"></span>
@ -64,20 +64,6 @@
</div> </div>
</div> </div>
</div> </div>
<div class="form-horizontal" data-bind="visible: allowContacts">
<div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LEGEND_CONTACTS"></span>
</div>
<div class="control-group">
<div class="controls">
<label data-bind="click: function () { contactsAutosave(!contactsAutosave()); }">
<i data-bind="css: contactsAutosave() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
&nbsp;&nbsp;
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_CONTACTS_AUTOSAVE"></span>
</label>
</div>
</div>
</div>
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_VIEW_OPTIONS"></span> <span class="i18n" data-i18n-text="SETTINGS_GENERAL/LABEL_VIEW_OPTIONS"></span>

View file

@ -1,4 +1,4 @@
<div class="b-settings-identities"> <div class="b-settings-identities g-ui-user-select-none">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LEGEND_IDENTITY"></span> <span class="i18n" data-i18n-text="SETTINGS_IDENTITIES/LEGEND_IDENTITY"></span>

View file

@ -1,4 +1,4 @@
<div class="b-settings b-settins-right g-ui-user-select-none"> <div class="b-settings b-settins-right">
<div class="b-toolbar"> <div class="b-toolbar">
<div class="btn-toolbar"> <div class="btn-toolbar">
<a class="btn button-back" data-bind="click: backToMailBoxClick"> <a class="btn button-back" data-bind="click: backToMailBoxClick">

View file

@ -1,4 +1,4 @@
<div class="b-settings-social"> <div class="b-settings-social g-ui-user-select-none">
<div class="form-horizontal" data-bind="visible: googleEnable"> <div class="form-horizontal" data-bind="visible: googleEnable">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_SOCIAL/LEGEND_GOOGLE"></span> <span class="i18n" data-i18n-text="SETTINGS_SOCIAL/LEGEND_GOOGLE"></span>

View file

@ -1,4 +1,4 @@
<div class="b-settings-themes"> <div class="b-settings-themes g-ui-user-select-none">
<div class="form-horizontal"> <div class="form-horizontal">
<div class="legend"> <div class="legend">
<span class="i18n" data-i18n-text="SETTINGS_THEMES/LEGEND_THEMES"></span> <span class="i18n" data-i18n-text="SETTINGS_THEMES/LEGEND_THEMES"></span>

View file

@ -1,14 +1,14 @@
<div class="b-system-drop-down g-ui-user-select-none"> <div class="b-system-drop-down g-ui-user-select-none">
<div class="b-toolbar"> <div class="b-toolbar">
<div class="btn-toolbar"> <div class="btn-toolbar">
<div class="btn-group pull-right"> <!-- <div class="btn-group pull-right">
<a class="btn btn-narrow" data-bind="click: logoutClick"> <a class="btn btn-narrow" data-bind="click: logoutClick">
<i class="icon-power"></i> <i class="icon-power"></i>
</a> </a>
</div> </div>
<div class="btn-group pull-right"> <div class="btn-group pull-right">
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
</div> </div>-->
<div class="btn-group pull-right"> <div class="btn-group pull-right">
<a class="btn btn-ellipsis btn-block dropdown-toggle system-dropdown" data-placement="left" data-toggle="dropdown" <a class="btn btn-ellipsis btn-block dropdown-toggle system-dropdown" data-placement="left" data-toggle="dropdown"
data-tooltip-class="tooltip-big" data-bind="tooltip2: emailTitle"> data-tooltip-class="tooltip-big" data-bind="tooltip2: emailTitle">
@ -46,7 +46,7 @@
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_SETTINGS"></span> <span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_SETTINGS"></span>
</a> </a>
</li> </li>
<!--
<li class="divider"></li> <li class="divider"></li>
<li class="e-item"> <li class="e-item">
<a class="e-link" data-bind="click: logoutClick"> <a class="e-link" data-bind="click: logoutClick">
@ -55,7 +55,7 @@
<span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_LOGOUT"></span> <span class="i18n" data-i18n-text="TOP_TOOLBAR/BUTTON_LOGOUT"></span>
</a> </a>
</li> </li>
-->
</ul> </ul>
</div> </div>
</div> </div>

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Alle Textformatierungen und Grafiken gehen verloren. Wo
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Persönlich" LABEL_PERSONAL_NAME = "Persönlich"
LABEL_GENERAL_NAME = "Allgemein" LABEL_GENERAL_NAME = "Allgemein"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Ordner" LABEL_FOLDERS_NAME = "Ordner"
LABEL_ACCOUNTS_NAME = "Konten" LABEL_ACCOUNTS_NAME = "Konten"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Signatur"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Allgemein" LEGEND_GENERAL = "Allgemein"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Sprache" LABEL_LANGUAGE = "Sprache"
LABEL_EDITOR = "Standard-Text-Editor" LABEL_EDITOR = "Standard-Text-Editor"
LABEL_EDITOR_HTML_AS_DEFAULT = "HTML" LABEL_EDITOR_HTML_AS_DEFAULT = "HTML"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "Nachrichten pro Seite"
LABEL_CHROME_NOTIFICATION = "Benachrichtigungen" LABEL_CHROME_NOTIFICATION = "Benachrichtigungen"
LABEL_CHROME_NOTIFICATION_DESC = "Popups einblenden, wenn neue Nachrichten vorhanden sind" LABEL_CHROME_NOTIFICATION_DESC = "Popups einblenden, wenn neue Nachrichten vorhanden sind"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Vom Browser blockiert.)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Vom Browser blockiert.)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Text formatting and images will be lost. Are you sure y
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Personal" LABEL_PERSONAL_NAME = "Personal"
LABEL_GENERAL_NAME = "General" LABEL_GENERAL_NAME = "General"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Folders" LABEL_FOLDERS_NAME = "Folders"
LABEL_ACCOUNTS_NAME = "Accounts" LABEL_ACCOUNTS_NAME = "Accounts"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Signature"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "General" LEGEND_GENERAL = "General"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Language" LABEL_LANGUAGE = "Language"
LABEL_EDITOR = "Default text editor" LABEL_EDITOR = "Default text editor"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "messages on page"
LABEL_CHROME_NOTIFICATION = "Notifications" LABEL_CHROME_NOTIFICATION = "Notifications"
LABEL_CHROME_NOTIFICATION_DESC = "Show new messages notification popups" LABEL_CHROME_NOTIFICATION_DESC = "Show new messages notification popups"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Blocked by the browser)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Blocked by the browser)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Se perderá el formato de texto e imágenes. ¿Está se
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Personal" LABEL_PERSONAL_NAME = "Personal"
LABEL_GENERAL_NAME = "General" LABEL_GENERAL_NAME = "General"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Carpetas" LABEL_FOLDERS_NAME = "Carpetas"
LABEL_ACCOUNTS_NAME = "Cuentas" LABEL_ACCOUNTS_NAME = "Cuentas"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Firma"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "General" LEGEND_GENERAL = "General"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Idioma" LABEL_LANGUAGE = "Idioma"
LABEL_EDITOR = "Editor de texto predeterminado" LABEL_EDITOR = "Editor de texto predeterminado"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "mensajes en página"
LABEL_CHROME_NOTIFICATION = "Notificaciones" LABEL_CHROME_NOTIFICATION = "Notificaciones"
LABEL_CHROME_NOTIFICATION_DESC = "Mostrar notificación de nuevos mensajes en Popup" LABEL_CHROME_NOTIFICATION_DESC = "Mostrar notificación de nuevos mensajes en Popup"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado por el explorador)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado por el explorador)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Le formatage du texte et les images seront perdues. Ete
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Personnel" LABEL_PERSONAL_NAME = "Personnel"
LABEL_GENERAL_NAME = "Général" LABEL_GENERAL_NAME = "Général"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Dossiers" LABEL_FOLDERS_NAME = "Dossiers"
LABEL_ACCOUNTS_NAME = "Comptes" LABEL_ACCOUNTS_NAME = "Comptes"
LABEL_IDENTITY_NAME = "Identité" LABEL_IDENTITY_NAME = "Identité"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Signature"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Général" LEGEND_GENERAL = "Général"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Langue" LABEL_LANGUAGE = "Langue"
LABEL_EDITOR = "Éditeur de texte par défaut" LABEL_EDITOR = "Éditeur de texte par défaut"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "messages par page"
LABEL_CHROME_NOTIFICATION = "Notifications" LABEL_CHROME_NOTIFICATION = "Notifications"
LABEL_CHROME_NOTIFICATION_DESC = "Afficher un pop-up de notification pour les nouveaux messages" LABEL_CHROME_NOTIFICATION_DESC = "Afficher un pop-up de notification pour les nouveaux messages"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqué par le navigateur)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqué par le navigateur)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Ajouter automatiquement les destinataires de votre carnet d'adresses" LABEL_CONTACTS_AUTOSAVE = "Ajouter automatiquement les destinataires de votre carnet d'adresses"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Texta forsnið og myndir munu týnast. Ertu viss um að
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Persónulegt" LABEL_PERSONAL_NAME = "Persónulegt"
LABEL_GENERAL_NAME = "Almennt" LABEL_GENERAL_NAME = "Almennt"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Möppur" LABEL_FOLDERS_NAME = "Möppur"
LABEL_ACCOUNTS_NAME = "Aðgangar" LABEL_ACCOUNTS_NAME = "Aðgangar"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Undirskrift"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Almennt" LEGEND_GENERAL = "Almennt"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Tungumál" LABEL_LANGUAGE = "Tungumál"
LABEL_EDITOR = "Sjálfgefinn textaritill" LABEL_EDITOR = "Sjálfgefinn textaritill"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "bréf á síðu"
LABEL_CHROME_NOTIFICATION = "Tilkynningar" LABEL_CHROME_NOTIFICATION = "Tilkynningar"
LABEL_CHROME_NOTIFICATION_DESC = "Sýna tilkynningarglugga fyrir ný bréf" LABEL_CHROME_NOTIFICATION_DESC = "Sýna tilkynningarglugga fyrir ný bréf"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Lokað af vafra)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Lokað af vafra)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -266,6 +266,7 @@ TEXT_SWITCHER_CONFIRM = "본문 형식과 이미지가 삭제됩니다. 정말
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "개인" LABEL_PERSONAL_NAME = "개인"
LABEL_GENERAL_NAME = "일반" LABEL_GENERAL_NAME = "일반"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "메일함" LABEL_FOLDERS_NAME = "메일함"
LABEL_ACCOUNTS_NAME = "계정" LABEL_ACCOUNTS_NAME = "계정"
LABEL_IDENTITY_NAME = "신원" LABEL_IDENTITY_NAME = "신원"
@ -283,7 +284,6 @@ LABEL_SIGNATURE = "서명"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "일반" LEGEND_GENERAL = "일반"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "언어" LABEL_LANGUAGE = "언어"
LABEL_EDITOR = "기본 본문 편집 도구" LABEL_EDITOR = "기본 본문 편집 도구"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html 편집기" LABEL_EDITOR_HTML_AS_DEFAULT = "Html 편집기"
@ -303,6 +303,17 @@ LABEL_MESSAGE_PER_PAGE = "페이지 당 메시지 수"
LABEL_CHROME_NOTIFICATION = "알림" LABEL_CHROME_NOTIFICATION = "알림"
LABEL_CHROME_NOTIFICATION_DESC = "새 메시지 알림 팝업 사용" LABEL_CHROME_NOTIFICATION_DESC = "새 메시지 알림 팝업 사용"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(브라우저에 의해 차단됨)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(브라우저에 의해 차단됨)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Bildes un teksta noformējums pazudīs. Vai tiešām tu
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Personīgie" LABEL_PERSONAL_NAME = "Personīgie"
LABEL_GENERAL_NAME = "Vispārējie" LABEL_GENERAL_NAME = "Vispārējie"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Mapes" LABEL_FOLDERS_NAME = "Mapes"
LABEL_ACCOUNTS_NAME = "Konti" LABEL_ACCOUNTS_NAME = "Konti"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Paraksts"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Vispārējie" LEGEND_GENERAL = "Vispārējie"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Valoda" LABEL_LANGUAGE = "Valoda"
LABEL_EDITOR = "Galvenais teksta editors" LABEL_EDITOR = "Galvenais teksta editors"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "ziņojumi lapā"
LABEL_CHROME_NOTIFICATION = "Paziņojumi" LABEL_CHROME_NOTIFICATION = "Paziņojumi"
LABEL_CHROME_NOTIFICATION_DESC = "Rādīt jaunus paziņojumus kā izlecošus logus" LABEL_CHROME_NOTIFICATION_DESC = "Rādīt jaunus paziņojumus kā izlecošus logus"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Parlūkprogramma bloķēja)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Parlūkprogramma bloķēja)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Tekst opmaak en formattering zal verloren gaan. Wenst u
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Persoonlijk" LABEL_PERSONAL_NAME = "Persoonlijk"
LABEL_GENERAL_NAME = "Algemeen" LABEL_GENERAL_NAME = "Algemeen"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Mappen" LABEL_FOLDERS_NAME = "Mappen"
LABEL_ACCOUNTS_NAME = "Accounts" LABEL_ACCOUNTS_NAME = "Accounts"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Handtekening"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Algemeen" LEGEND_GENERAL = "Algemeen"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Taal" LABEL_LANGUAGE = "Taal"
LABEL_EDITOR = "Standaard tekst editor" LABEL_EDITOR = "Standaard tekst editor"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "berichten op pagina"
LABEL_CHROME_NOTIFICATION = "Notificaties" LABEL_CHROME_NOTIFICATION = "Notificaties"
LABEL_CHROME_NOTIFICATION_DESC = "Toon nieuwe berichten popup" LABEL_CHROME_NOTIFICATION_DESC = "Toon nieuwe berichten popup"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Geblokkeerd door de browser)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Geblokkeerd door de browser)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Tekst formatering og bilder vil bli tapt . Er du sikker
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Personlig" LABEL_PERSONAL_NAME = "Personlig"
LABEL_GENERAL_NAME = "Generelt" LABEL_GENERAL_NAME = "Generelt"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Mapper" LABEL_FOLDERS_NAME = "Mapper"
LABEL_ACCOUNTS_NAME = "Kontoer" LABEL_ACCOUNTS_NAME = "Kontoer"
LABEL_IDENTITY_NAME = "Identitet" LABEL_IDENTITY_NAME = "Identitet"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Signatur"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Generelt" LEGEND_GENERAL = "Generelt"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Språk" LABEL_LANGUAGE = "Språk"
LABEL_EDITOR = "Standard teksteditor" LABEL_EDITOR = "Standard teksteditor"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "meldinger på side"
LABEL_CHROME_NOTIFICATION = "Varsler" LABEL_CHROME_NOTIFICATION = "Varsler"
LABEL_CHROME_NOTIFICATION_DESC = "Vis nye meldinger varslings popups" LABEL_CHROME_NOTIFICATION_DESC = "Vis nye meldinger varslings popups"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "( Blokkert av nettleseren )" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "( Blokkert av nettleseren )"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Formatowanie tekstu oraz wszystkie wstawione obrazy zos
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Osobiste" LABEL_PERSONAL_NAME = "Osobiste"
LABEL_GENERAL_NAME = "Ogólne" LABEL_GENERAL_NAME = "Ogólne"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Foldery" LABEL_FOLDERS_NAME = "Foldery"
LABEL_ACCOUNTS_NAME = "Konta" LABEL_ACCOUNTS_NAME = "Konta"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Sygnatura"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Ogólne" LEGEND_GENERAL = "Ogólne"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Język" LABEL_LANGUAGE = "Język"
LABEL_EDITOR = "Domyślny edytor tekstu" LABEL_EDITOR = "Domyślny edytor tekstu"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "wiadomości na stronie"
LABEL_CHROME_NOTIFICATION = "Powiadomienia" LABEL_CHROME_NOTIFICATION = "Powiadomienia"
LABEL_CHROME_NOTIFICATION_DESC = "Wyświetlaj powiadomienia o nowych wiadomościach" LABEL_CHROME_NOTIFICATION_DESC = "Wyświetlaj powiadomienia o nowych wiadomościach"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Zablokowane przez przeglądarkę)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Zablokowane przez przeglądarkę)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "A formatação de texto e as imagens serão perdidas. T
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Pessoal" LABEL_PERSONAL_NAME = "Pessoal"
LABEL_GENERAL_NAME = "Geral" LABEL_GENERAL_NAME = "Geral"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Pastas" LABEL_FOLDERS_NAME = "Pastas"
LABEL_ACCOUNTS_NAME = "Contas" LABEL_ACCOUNTS_NAME = "Contas"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Assinatura"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Geral" LEGEND_GENERAL = "Geral"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Linguagem" LABEL_LANGUAGE = "Linguagem"
LABEL_EDITOR = "Editor de texto padrão" LABEL_EDITOR = "Editor de texto padrão"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "Página de mensagens"
LABEL_CHROME_NOTIFICATION = "Notificações" LABEL_CHROME_NOTIFICATION = "Notificações"
LABEL_CHROME_NOTIFICATION_DESC = "Mostrar as novas mensagens de notificação" LABEL_CHROME_NOTIFICATION_DESC = "Mostrar as novas mensagens de notificação"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado pelo navegador)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado pelo navegador)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "A formatação de texto e as imagens serão perdidas. T
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Pessoal" LABEL_PERSONAL_NAME = "Pessoal"
LABEL_GENERAL_NAME = "Geral" LABEL_GENERAL_NAME = "Geral"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "Pastas" LABEL_FOLDERS_NAME = "Pastas"
LABEL_ACCOUNTS_NAME = "Contas" LABEL_ACCOUNTS_NAME = "Contas"
LABEL_IDENTITY_NAME = "Identity" LABEL_IDENTITY_NAME = "Identity"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Assinatura"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Geral" LEGEND_GENERAL = "Geral"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "Linguagem" LABEL_LANGUAGE = "Linguagem"
LABEL_EDITOR = "Editor de texto padrão" LABEL_EDITOR = "Editor de texto padrão"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "Página de mensagens"
LABEL_CHROME_NOTIFICATION = "Notificações" LABEL_CHROME_NOTIFICATION = "Notificações"
LABEL_CHROME_NOTIFICATION_DESC = "Mostrar as novas mensagens de notificação" LABEL_CHROME_NOTIFICATION_DESC = "Mostrar as novas mensagens de notificação"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado pelo navegador)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Bloqueado pelo navegador)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "Форматирование текста и изобр
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "Персональные" LABEL_PERSONAL_NAME = "Персональные"
LABEL_GENERAL_NAME = "Основные" LABEL_GENERAL_NAME = "Основные"
LABEL_CONTACTS_NAME = "Контакты"
LABEL_FOLDERS_NAME = "Папки" LABEL_FOLDERS_NAME = "Папки"
LABEL_ACCOUNTS_NAME = "Аккаунты" LABEL_ACCOUNTS_NAME = "Аккаунты"
LABEL_IDENTITY_NAME = "Профиль" LABEL_IDENTITY_NAME = "Профиль"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "Подпись"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "Основные Настройки" LEGEND_GENERAL = "Основные Настройки"
LEGEND_CONTACTS = "Контакты"
LABEL_LANGUAGE = "Язык" LABEL_LANGUAGE = "Язык"
LABEL_EDITOR = "Редактор текста по умолчанию" LABEL_EDITOR = "Редактор текста по умолчанию"
LABEL_EDITOR_HTML_AS_DEFAULT = "Форматированный" LABEL_EDITOR_HTML_AS_DEFAULT = "Форматированный"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "сообщений на одной странице"
LABEL_CHROME_NOTIFICATION = "Уведомления" LABEL_CHROME_NOTIFICATION = "Уведомления"
LABEL_CHROME_NOTIFICATION_DESC = "Показывать уведомления о новых сообщениях в всплывающих подсказках" LABEL_CHROME_NOTIFICATION_DESC = "Показывать уведомления о новых сообщениях в всплывающих подсказках"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Блокировано браузером)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(Блокировано браузером)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Контакты"
LEGEND_MOBILE_SYNC = "Мобильная Синхронизация"
LABEL_SYNC_SERVER = "Сервер"
LABEL_SYNC_USERNAME = "Пользователь"
LABEL_SYNC_PASSWORD = "Пароль"
LINK_HIDE = "спрятать"
LINK_SHOW = "показать"
LABEL_DESC_PAB = "Персональная адресная книга"
DESC_FULL_PAB_URL = "Если вашему приложению (например как Mozilla Thunderbird (SOGo Connector Thunderbird extension) или Evolution) необходим полный путь к CardDAV адресной книге, используйте URL ниже."
LABEL_CONTACTS_AUTOSAVE = "Автоматически добавлять получателей писем в адресную книгу" LABEL_CONTACTS_AUTOSAVE = "Автоматически добавлять получателей писем в адресную книгу"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -269,6 +269,7 @@ TEXT_SWITCHER_CONFIRM = "文件格式及图片将丢失,您确定继续这么
[SETTINGS_LABELS] [SETTINGS_LABELS]
LABEL_PERSONAL_NAME = "个人" LABEL_PERSONAL_NAME = "个人"
LABEL_GENERAL_NAME = "一般设置" LABEL_GENERAL_NAME = "一般设置"
LABEL_CONTACTS_NAME = "Contacts"
LABEL_FOLDERS_NAME = "文件夹" LABEL_FOLDERS_NAME = "文件夹"
LABEL_ACCOUNTS_NAME = "账户" LABEL_ACCOUNTS_NAME = "账户"
LABEL_IDENTITY_NAME = "签名" LABEL_IDENTITY_NAME = "签名"
@ -286,7 +287,6 @@ LABEL_SIGNATURE = "签名"
[SETTINGS_GENERAL] [SETTINGS_GENERAL]
LEGEND_GENERAL = "一般设置" LEGEND_GENERAL = "一般设置"
LEGEND_CONTACTS = "Contacts"
LABEL_LANGUAGE = "语言" LABEL_LANGUAGE = "语言"
LABEL_EDITOR = "默认格式" LABEL_EDITOR = "默认格式"
LABEL_EDITOR_HTML_AS_DEFAULT = "Html" LABEL_EDITOR_HTML_AS_DEFAULT = "Html"
@ -306,6 +306,17 @@ LABEL_MESSAGE_PER_PAGE = "封邮件每页"
LABEL_CHROME_NOTIFICATION = "通知" LABEL_CHROME_NOTIFICATION = "通知"
LABEL_CHROME_NOTIFICATION_DESC = "显示新邮件弹窗" LABEL_CHROME_NOTIFICATION_DESC = "显示新邮件弹窗"
LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(被浏览器阻止)" LABEL_CHROME_NOTIFICATION_DESC_DENIED = "(被浏览器阻止)"
[SETTINGS_CONTACTS]
LEGEND_CONTACTS = "Contacts"
LEGEND_MOBILE_SYNC = "Mobile Sync"
LABEL_SYNC_SERVER = "Server"
LABEL_SYNC_USERNAME = "User Name"
LABEL_SYNC_PASSWORD = "Password"
LINK_HIDE = "hide"
LINK_SHOW = "show"
LABEL_DESC_PAB = "Pesonal Address Book"
DESC_FULL_PAB_URL = "If your application (such as Mozilla Thunderbird (SOGo Connector Thunderbird extension) or Evolution) requires the full path to the CardDAV address book, use the URL below."
LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book" LABEL_CONTACTS_AUTOSAVE = "Automatically add recipients to your address book"
[SETTINGS_THEMES] [SETTINGS_THEMES]

View file

@ -7119,7 +7119,7 @@ AbstractApp.prototype.settingsSet = function (sName, mValue)
AbstractApp.prototype.setTitle = function (sTitle) AbstractApp.prototype.setTitle = function (sTitle)
{ {
sTitle = ((0 < sTitle.length) ? sTitle + ' - ' : '') + sTitle = ((Utils.isNormal(sTitle) && 0 < sTitle.length) ? sTitle + ' - ' : '') +
RL.settingsGet('Title') || ''; RL.settingsGet('Title') || '';
window.document.title = '_'; window.document.title = '_';

File diff suppressed because one or more lines are too long

View file

@ -12252,7 +12252,6 @@ function SettingsGeneral()
this.mainMessagesPerPageArray = Consts.Defaults.MessagesPerPageArray; this.mainMessagesPerPageArray = Consts.Defaults.MessagesPerPageArray;
this.editorDefaultType = oData.editorDefaultType; this.editorDefaultType = oData.editorDefaultType;
this.showImages = oData.showImages; this.showImages = oData.showImages;
this.contactsAutosave = oData.contactsAutosave;
this.interfaceAnimation = oData.interfaceAnimation; this.interfaceAnimation = oData.interfaceAnimation;
this.useDesktopNotifications = oData.useDesktopNotifications; this.useDesktopNotifications = oData.useDesktopNotifications;
this.threading = oData.threading; this.threading = oData.threading;
@ -12279,7 +12278,6 @@ function SettingsGeneral()
this.mppTrigger = ko.observable(Enums.SaveSettingsStep.Idle); this.mppTrigger = ko.observable(Enums.SaveSettingsStep.Idle);
this.isAnimationSupported = Globals.bAnimationSupported; this.isAnimationSupported = Globals.bAnimationSupported;
this.allowContacts = !!RL.settingsGet('ContactsIsAllowed');
} }
Utils.addSettingsViewModel(SettingsGeneral, 'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true); Utils.addSettingsViewModel(SettingsGeneral, 'SettingsGeneral', 'SETTINGS_LABELS/LABEL_GENERAL_NAME', 'general', true);
@ -12337,12 +12335,6 @@ SettingsGeneral.prototype.onBuild = function ()
}); });
}); });
oData.contactsAutosave.subscribe(function (bValue) {
RL.remote().saveSettings(Utils.emptyFunction, {
'ContactsAutosave': bValue ? '1' : '0'
});
});
oData.interfaceAnimation.subscribe(function (sValue) { oData.interfaceAnimation.subscribe(function (sValue) {
RL.remote().saveSettings(Utils.emptyFunction, { RL.remote().saveSettings(Utils.emptyFunction, {
'InterfaceAnimation': sValue 'InterfaceAnimation': sValue
@ -12402,6 +12394,44 @@ SettingsGeneral.prototype.selectLanguage = function ()
kn.showScreenPopup(PopupsLanguagesViewModel); kn.showScreenPopup(PopupsLanguagesViewModel);
}; };
/**
* @constructor
*/
function SettingsContacts()
{
var oData = RL.data();
this.contactsAutosave = oData.contactsAutosave;
this.showPassword = ko.observable(false);
this.allowContactsSync = !!RL.settingsGet('ContactsSyncIsAllowed');
this.contactsSyncServer = RL.settingsGet('ContactsSyncServer');
this.contactsSyncUser = RL.settingsGet('ContactsSyncUser');
this.contactsSyncPass = RL.settingsGet('ContactsSyncPassword');
this.contactsSyncPabUrl = RL.settingsGet('ContactsSyncPabUrl');
}
Utils.addSettingsViewModel(SettingsContacts, 'SettingsContacts', 'SETTINGS_LABELS/LABEL_CONTACTS_NAME', 'contacts');
SettingsContacts.prototype.toggleShowPassword = function ()
{
this.showPassword(!this.showPassword());
};
SettingsContacts.prototype.onBuild = function ()
{
RL.data().contactsAutosave.subscribe(function (bValue) {
RL.remote().saveSettings(Utils.emptyFunction, {
'ContactsAutosave': bValue ? '1' : '0'
});
});
};
SettingsContacts.prototype.onShow = function ()
{
this.showPassword(false);
};
/** /**
* @constructor * @constructor
*/ */
@ -15725,7 +15755,7 @@ _.extend(LoginScreen.prototype, KnoinAbstractScreen.prototype);
LoginScreen.prototype.onShow = function () LoginScreen.prototype.onShow = function ()
{ {
RL.setTitle(Utils.i18n('TITLES/LOGIN')); RL.setTitle('');
}; };
/** /**
* @constructor * @constructor
@ -16066,7 +16096,7 @@ AbstractApp.prototype.settingsSet = function (sName, mValue)
AbstractApp.prototype.setTitle = function (sTitle) AbstractApp.prototype.setTitle = function (sTitle)
{ {
sTitle = ((0 < sTitle.length) ? sTitle + ' - ' : '') + sTitle = ((Utils.isNormal(sTitle) && 0 < sTitle.length) ? sTitle + ' - ' : '') +
RL.settingsGet('Title') || ''; RL.settingsGet('Title') || '';
window.document.title = '_'; window.document.title = '_';
@ -16902,6 +16932,11 @@ RainLoopApp.prototype.bootstart = function ()
Utils.removeSettingsViewModel(SettingsChangePasswordScreen); Utils.removeSettingsViewModel(SettingsChangePasswordScreen);
} }
if (!RL.settingsGet('ContactsIsAllowed'))
{
Utils.removeSettingsViewModel(SettingsContacts);
}
if (!RL.settingsGet('AllowAdditionalAccounts')) if (!RL.settingsGet('AllowAdditionalAccounts'))
{ {
Utils.removeSettingsViewModel(SettingsAccounts); Utils.removeSettingsViewModel(SettingsAccounts);

File diff suppressed because one or more lines are too long