Small fixes

Release commit
This commit is contained in:
RainLoop Team 2014-10-24 21:08:03 +04:00
parent c8cda5fb5b
commit e6438233cf
7 changed files with 99 additions and 99 deletions

View file

@ -42,42 +42,35 @@
BrandingAdminSetting.prototype.onBuild = function () BrandingAdminSetting.prototype.onBuild = function ()
{ {
var
self = this,
Remote = require('Storage/Admin/Remote')
;
_.delay(function () {
var
f1 = Utils.settingsSaveHelperSimpleFunction(self.title.trigger, self),
f2 = Utils.settingsSaveHelperSimpleFunction(self.loadingDesc.trigger, self)
;
self.title.subscribe(function (sValue) {
Remote.saveAdminConfig(f1, {
'Title': Utils.trim(sValue)
});
});
self.loadingDesc.subscribe(function (sValue) {
Remote.saveAdminConfig(f2, {
'LoadingDescription': Utils.trim(sValue)
});
});
}, 50);
if (this.capa) if (this.capa)
{ {
var
self = this,
Remote = require('Storage/Admin/Remote')
;
_.delay(function () { _.delay(function () {
var var
f1 = Utils.settingsSaveHelperSimpleFunction(self.title.trigger, self),
f2 = Utils.settingsSaveHelperSimpleFunction(self.loadingDesc.trigger, self),
f3 = Utils.settingsSaveHelperSimpleFunction(self.loginLogo.trigger, self), f3 = Utils.settingsSaveHelperSimpleFunction(self.loginLogo.trigger, self),
f4 = Utils.settingsSaveHelperSimpleFunction(self.loginDescription.trigger, self), f4 = Utils.settingsSaveHelperSimpleFunction(self.loginDescription.trigger, self),
f5 = Utils.settingsSaveHelperSimpleFunction(self.loginCss.trigger, self) f5 = Utils.settingsSaveHelperSimpleFunction(self.loginCss.trigger, self)
; ;
self.title.subscribe(function (sValue) {
Remote.saveAdminConfig(f1, {
'Title': Utils.trim(sValue)
});
});
self.loadingDesc.subscribe(function (sValue) {
Remote.saveAdminConfig(f2, {
'LoadingDescription': Utils.trim(sValue)
});
});
self.loginLogo.subscribe(function (sValue) { self.loginLogo.subscribe(function (sValue) {
Remote.saveAdminConfig(f3, { Remote.saveAdminConfig(f3, {
'LoginLogo': Utils.trim(sValue) 'LoginLogo': Utils.trim(sValue)
@ -102,7 +95,7 @@
}); });
}); });
}, 100); }, 50);
} }
}; };

View file

@ -73,6 +73,7 @@
height: 34px; height: 34px;
padding: 8px @rlLowMargin; padding: 8px @rlLowMargin;
color: #fff; color: #fff;
text-shadow: 0px 1px 1px #000;
} }
.b-content { .b-content {

View file

@ -2,7 +2,7 @@
"name": "RainLoop", "name": "RainLoop",
"title": "RainLoop Webmail", "title": "RainLoop Webmail",
"version": "1.6.10", "version": "1.6.10",
"release": "184", "release": "185",
"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

@ -997,6 +997,7 @@ class Actions
'DevPassword' => '', 'DevPassword' => '',
'Title' => 'RainLoop Webmail', 'Title' => 'RainLoop Webmail',
'LoadingDescription' => 'RainLoop', 'LoadingDescription' => 'RainLoop',
'LoadingDescriptionEsc' => 'RainLoop',
'LoginLogo' => '', 'LoginLogo' => '',
'LoginDescription' => '', 'LoginDescription' => '',
'LoginCss' => '', 'LoginCss' => '',
@ -1046,17 +1047,20 @@ class Actions
$aResult['AuthAccountHash'] = $sAuthAccountHash; $aResult['AuthAccountHash'] = $sAuthAccountHash;
} }
$aResult['Title'] = $oConfig->Get('webmail', 'title', '');
$aResult['LoadingDescription'] = $oConfig->Get('webmail', 'loading_description', '');
if ($this->PremType()) if ($this->PremType())
{ {
$aResult['Title'] = $oConfig->Get('webmail', 'title', '');
$aResult['LoadingDescription'] = $oConfig->Get('webmail', 'loading_description', '');
$aResult['LoginLogo'] = $oConfig->Get('branding', 'login_logo', ''); $aResult['LoginLogo'] = $oConfig->Get('branding', 'login_logo', '');
$aResult['LoginDescription'] = $oConfig->Get('branding', 'login_desc', ''); $aResult['LoginDescription'] = $oConfig->Get('branding', 'login_desc', '');
$aResult['LoginCss'] = $oConfig->Get('branding', 'login_css', ''); $aResult['LoginCss'] = $oConfig->Get('branding', 'login_css', '');
$aResult['LoginPowered'] = !!$oConfig->Get('branding', 'login_powered', true); $aResult['LoginPowered'] = !!$oConfig->Get('branding', 'login_powered', true);
} }
$aResult['LoadingDescriptionEsc'] = \htmlspecialchars($aResult['LoadingDescription'], ENT_QUOTES|ENT_IGNORE, 'UTF-8');
$oSettings = null; $oSettings = null;
if (!$bAdmin) if (!$bAdmin)
{ {
@ -2469,11 +2473,12 @@ class Actions
$this->setConfigFromParams($oConfig, 'DetermineUserLanguage', 'login', 'determine_user_language', 'bool'); $this->setConfigFromParams($oConfig, 'DetermineUserLanguage', 'login', 'determine_user_language', 'bool');
$this->setConfigFromParams($oConfig, 'DetermineUserDomain', 'login', 'determine_user_domain', 'bool'); $this->setConfigFromParams($oConfig, 'DetermineUserDomain', 'login', 'determine_user_domain', 'bool');
$this->setConfigFromParams($oConfig, 'Title', 'webmail', 'title', 'string');
$this->setConfigFromParams($oConfig, 'LoadingDescription', 'webmail', 'loading_description', 'string');
if ($this->HasOneOfActionParams(array('LoginLogo', 'LoginDescription', 'LoginCss', 'LoginPowered')) && $this->PremType()) if ($this->HasOneOfActionParams(array('Title', 'LoadingDescription', 'LoginLogo', 'LoginDescription', 'LoginCss', 'LoginPowered')) && $this->PremType())
{ {
$this->setConfigFromParams($oConfig, 'Title', 'webmail', 'title', 'string');
$this->setConfigFromParams($oConfig, 'LoadingDescription', 'webmail', 'loading_description', 'string');
$this->setConfigFromParams($oConfig, 'LoginLogo', 'branding', 'login_logo', 'string'); $this->setConfigFromParams($oConfig, 'LoginLogo', 'branding', 'login_logo', 'string');
$this->setConfigFromParams($oConfig, 'LoginDescription', 'branding', 'login_desc', 'string'); $this->setConfigFromParams($oConfig, 'LoginDescription', 'branding', 'login_desc', 'string');
$this->setConfigFromParams($oConfig, 'LoginCss', 'branding', 'login_css', 'string'); $this->setConfigFromParams($oConfig, 'LoginCss', 'branding', 'login_css', 'string');

View file

@ -220,7 +220,6 @@ class Service
$aData = array( $aData = array(
'Language' => $sLanguage, 'Language' => $sLanguage,
'Theme' => $sTheme, 'Theme' => $sTheme,
'LoadingDescription' => $this->oActions->Config()->Get('webmail', 'loading_description', 'RainLoop'),
'FaviconIcoLink' => $sStaticPrefix.'favicon.ico', 'FaviconIcoLink' => $sStaticPrefix.'favicon.ico',
'FaviconPngLink' => $sStaticPrefix.'favicon.png', 'FaviconPngLink' => $sStaticPrefix.'favicon.png',
'AppleTouchLink' => $sStaticPrefix.'apple-touch-icon.png', 'AppleTouchLink' => $sStaticPrefix.'apple-touch-icon.png',
@ -243,7 +242,6 @@ class Service
'{{BaseAppEditorScriptLink}}' => $aData['EditorJsLink'], '{{BaseAppEditorScriptLink}}' => $aData['EditorJsLink'],
'{{BaseAppOpenPgpScriptLink}}' => $aData['OpenPgpJsLink'], '{{BaseAppOpenPgpScriptLink}}' => $aData['OpenPgpJsLink'],
'{{BaseAppMainScriptLink}}' => $aData['AppJsLink'], '{{BaseAppMainScriptLink}}' => $aData['AppJsLink'],
'{{BaseAppLoadingDescription}}' => \htmlspecialchars($aData['LoadingDescription'], ENT_QUOTES|ENT_IGNORE, 'UTF-8'),
'{{BaseDir}}' => \in_array($aData['Language'], array('ar', 'he', 'ur')) ? 'rtl' : 'ltr' '{{BaseDir}}' => \in_array($aData['Language'], array('ar', 'he', 'ur')) ? 'rtl' : 'ltr'
); );

View file

@ -37,7 +37,7 @@
<body> <body>
<div id="rl-bg" class="thm-body"></div> <div id="rl-bg" class="thm-body"></div>
<div id="rl-loading" class="thm-loading"> <div id="rl-loading" class="thm-loading">
{{BaseAppLoadingDescription}} <div id="rl-loading-desc">Loading</div>
<div class="e-spinner"> <div class="e-spinner">
<div class="e-bounce bounce1"></div> <div class="e-bounce bounce1"></div>
<div class="e-bounce bounce2"></div> <div class="e-bounce bounce2"></div>
@ -45,7 +45,14 @@
</div> </div>
</div> </div>
<script data-cfasync="false"> <script data-cfasync="false">
var oE = window.document.getElementById('rl-loading'); var
oE = window.document.getElementById('rl-loading'),
oElDesc = window.document.getElementById('rl-loading-desc')
;
if (oElDesc && window.rainloopAppData['LoadingDescriptionEsc']) {
oElDesc.innerHTML = window.rainloopAppData['LoadingDescriptionEsc'];
}
if (oE && oE.style) { if (oE && oE.style) {
oE.style.opacity = 0; oE.style.opacity = 0;
window.setTimeout(function () { window.setTimeout(function () {

View file

@ -4,74 +4,70 @@
Full functionality available in <strong><a href="#/licensing">Premium version</a></strong> only. Full functionality available in <strong><a href="#/licensing">Premium version</a></strong> only.
</div> </div>
</div> </div>
<div class="form-horizontal"> <div class="form-horizontal" data-bind="css: {'disabled-form': !capa}">
<div> <div class="legend">
<div class="legend"> Branding
Branding </div>
<div class="control-group">
<label class="control-label">
Page Title
</label>
<div class="controls">
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: title, saveTrigger: title.trigger, enable: capa" />
<div data-bind="saveTrigger: title.trigger"></div>
</div> </div>
<div class="control-group"> </div>
<label class="control-label"> <div class="control-group">
Page Title <label class="control-label">
</label> Loading Description
<div class="controls"> </label>
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <div class="controls">
data-bind="value: title, saveTrigger: title.trigger" /> <input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
<div data-bind="saveTrigger: title.trigger"></div> data-bind="value: loadingDesc, saveTrigger: loadingDesc.trigger, enable: capa" />
</div> <div data-bind="saveTrigger: loadingDesc.trigger"></div>
</div>
<div class="control-group">
<label class="control-label">
Loading Description
</label>
<div class="controls">
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: loadingDesc, saveTrigger: loadingDesc.trigger" />
<div data-bind="saveTrigger: loadingDesc.trigger"></div>
</div>
</div> </div>
</div> </div>
<br /> <br />
<div data-bind="css: {'disabled-form': !capa}"> <div class="legend">
<div class="legend"> Login Screen
Login Screen </div>
<div class="control-group">
<label class="control-label">
Logo
</label>
<div class="controls">
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
placeholder="https://" data-bind="value: loginLogo, saveTrigger: loginLogo.trigger, enable: capa" />
<div data-bind="saveTrigger: loginLogo.trigger"></div>
</div> </div>
<div class="control-group"> </div>
<label class="control-label"> <div class="control-group">
Logo <label class="control-label">
</label> Description
<div class="controls"> </label>
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" <div class="controls">
placeholder="https://" data-bind="value: loginLogo, saveTrigger: loginLogo.trigger, enable: capa" /> <input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
<div data-bind="saveTrigger: loginLogo.trigger"></div> data-bind="value: loginDescription, saveTrigger: loginDescription.trigger, enable: capa" />
</div> <div data-bind="saveTrigger: loginDescription.trigger"></div>
</div> </div>
<div class="control-group"> </div>
<label class="control-label"> <!-- <div class="control-group">
Description <label class="control-label"></label>
<div class="controls">
<label data-bind="click: function () { if (capa) { loginPowered(!loginPowered()); }}">
<i data-bind="css: loginPowered() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i>
Show "Powered by RainLoop" link
</label> </label>
<div class="controls">
<input type="text" class="span5" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"
data-bind="value: loginDescription, saveTrigger: loginDescription.trigger, enable: capa" />
<div data-bind="saveTrigger: loginDescription.trigger"></div>
</div>
</div> </div>
<!-- <div class="control-group"> </div>-->
<label class="control-label"></label> <div class="control-group">
<div class="controls"> <label class="control-label">
<label data-bind="click: function () { if (capa) { loginPowered(!loginPowered()); }}"> Custom CSS
<i data-bind="css: loginPowered() ? 'icon-checkbox-checked' : 'icon-checkbox-unchecked'"></i> </label>
Show "Powered by RainLoop" link <div class="controls">
</label> <textarea class="input-xxlarge" data-bind="value: loginCss, saveTrigger: loginCss.trigger, enable: capa" rows="7" spellcheck="true"></textarea>
</div> <div style="vertical-align: top;" data-bind="saveTrigger: loginCss.trigger"></div>
</div>-->
<div class="control-group">
<label class="control-label">
Custom CSS
</label>
<div class="controls">
<textarea class="input-xxlarge" data-bind="value: loginCss, saveTrigger: loginCss.trigger, enable: capa" rows="7" spellcheck="true"></textarea>
<div style="vertical-align: top;" data-bind="saveTrigger: loginCss.trigger"></div>
</div>
</div> </div>
</div> </div>
</div> </div>