mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-10 15:08:28 +03:00
Code improvements
This commit is contained in:
parent
c43e35530e
commit
06d3dac310
13 changed files with 121 additions and 50 deletions
|
|
@ -23,7 +23,7 @@ class AbstractApp extends AbstractBoot
|
|||
{
|
||||
super();
|
||||
|
||||
this.iframe = $('<iframe style="display:none" />').appendTo('body');
|
||||
this.iframe = $('<iframe class="internal-hiddden" />').appendTo('body');
|
||||
|
||||
Globals.$win.on('error', function (oEvent) {
|
||||
if (oEvent && oEvent.originalEvent && oEvent.originalEvent.message &&
|
||||
|
|
|
|||
|
|
@ -28,6 +28,12 @@ window.__rlah_clear = () => {
|
|||
}
|
||||
};
|
||||
|
||||
function getComputedStyle(id, name)
|
||||
{
|
||||
var element = window.document.getElementById(id);
|
||||
return element.currentStyle ? element.currentStyle[name] : (window.getComputedStyle ? window.getComputedStyle(element, null).getPropertyValue(name) : null);
|
||||
}
|
||||
|
||||
function includeStyle(styles)
|
||||
{
|
||||
window.document.write(unescape('%3Csty' + 'le%3E' + styles + '"%3E%3C/' + 'sty' + 'le%3E'));
|
||||
|
|
@ -41,10 +47,16 @@ function includeScr(src)
|
|||
function includeLayout()
|
||||
{
|
||||
const
|
||||
css = require('Styles/@Boot.css'),
|
||||
layout = require('Html/Layout.html'),
|
||||
app = window.document.getElementById('rl-app')
|
||||
;
|
||||
|
||||
if (css)
|
||||
{
|
||||
includeStyle(css);
|
||||
}
|
||||
|
||||
if (app && layout)
|
||||
{
|
||||
app.innerHTML = layout.replace(/[\r\n\t]+/g, '');
|
||||
|
|
@ -163,12 +175,6 @@ function runApp()
|
|||
libs = window.jassl(appData.StaticLibJsLink).then(() => {
|
||||
if (window.$)
|
||||
{
|
||||
if (!window.$('#rl-check').is(':visible'))
|
||||
{
|
||||
window.$('html').addClass('no-css');
|
||||
throw new Error('no-css');
|
||||
}
|
||||
|
||||
window.$('#rl-check').remove();
|
||||
|
||||
if (appData.IncludeBackground)
|
||||
|
|
@ -224,7 +230,7 @@ window.__initAppData = function(data) {
|
|||
|
||||
if (rlAppDataStorage.NewThemeLink)
|
||||
{
|
||||
window.document.getElementById('app-theme-link').href = rlAppDataStorage.NewThemeLink;
|
||||
(window.document.getElementById('app-theme-link') || {}).href = rlAppDataStorage.NewThemeLink;
|
||||
}
|
||||
|
||||
if (rlAppDataStorage.IncludeCss)
|
||||
|
|
@ -244,6 +250,12 @@ window.__runBoot = function() {
|
|||
window.document.location.replace('./?/NoCookie');
|
||||
}
|
||||
|
||||
if ('none' !== getComputedStyle('rl-check', 'display'))
|
||||
{
|
||||
const root = document.documentElement;
|
||||
root.className += ' no-css';
|
||||
}
|
||||
|
||||
if (includeLayout())
|
||||
{
|
||||
includeAppScr(getRainloopBootData());
|
||||
|
|
|
|||
|
|
@ -1532,6 +1532,25 @@
|
|||
}
|
||||
};
|
||||
|
||||
Utils.appendStyles = function ($styleTag, css)
|
||||
{
|
||||
if ($styleTag && $styleTag[0])
|
||||
{
|
||||
if ($styleTag[0].styleSheet && !Utils.isUnd($styleTag[0].styleSheet.cssText))
|
||||
{
|
||||
$styleTag[0].styleSheet.cssText = css;
|
||||
}
|
||||
else
|
||||
{
|
||||
$styleTag.text(css);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
Utils.__themeTimer = 0;
|
||||
Utils.__themeAjax = null;
|
||||
|
||||
|
|
@ -1583,14 +1602,9 @@
|
|||
|
||||
if (oThemeStyle && oThemeStyle[0])
|
||||
{
|
||||
oThemeStyle.attr('data-href', sUrl).attr('data-theme', aData[0]);
|
||||
if (oThemeStyle[0].styleSheet && !Utils.isUnd(oThemeStyle[0].styleSheet.cssText))
|
||||
if (Utils.appendStyles(oThemeStyle, aData[1]))
|
||||
{
|
||||
oThemeStyle[0].styleSheet.cssText = aData[1];
|
||||
}
|
||||
else
|
||||
{
|
||||
oThemeStyle.text(aData[1]);
|
||||
oThemeStyle.attr('data-href', sUrl).attr('data-theme', aData[0]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@
|
|||
|
||||
Knoin.prototype.hideLoading = function ()
|
||||
{
|
||||
$('#rl-content').show();
|
||||
$('#rl-content').addClass('rl-content-show');
|
||||
$('#rl-loading').hide().remove();
|
||||
};
|
||||
|
||||
|
|
@ -422,9 +422,9 @@
|
|||
*/
|
||||
Knoin.prototype.startScreens = function (aScreensClasses)
|
||||
{
|
||||
$('#rl-content').css({
|
||||
'visibility': 'hidden'
|
||||
});
|
||||
// $('#rl-content').css({
|
||||
// 'visibility': 'hidden'
|
||||
// });
|
||||
|
||||
_.each(aScreensClasses, function (CScreen) {
|
||||
|
||||
|
|
@ -468,9 +468,9 @@
|
|||
hasher.changed.add(oCross.parse, oCross);
|
||||
hasher.init();
|
||||
|
||||
$('#rl-content').css({
|
||||
'visibility': 'visible'
|
||||
});
|
||||
// $('#rl-content').css({
|
||||
// 'visibility': 'visible'
|
||||
// });
|
||||
|
||||
_.delay(function () {
|
||||
Globals.$html.removeClass('rl-started-trigger').addClass('rl-started');
|
||||
|
|
|
|||
57
dev/Styles/@Boot.css
Normal file
57
dev/Styles/@Boot.css
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
|
||||
#rl-content{
|
||||
display: none;
|
||||
}
|
||||
|
||||
.internal-hiddden{
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
html.no-css, html.no-css body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-family: Arial, Verdana, Geneva, sans-serif;
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
html.no-css #rl-content, html.no-css #rl-loading{
|
||||
display: none;
|
||||
}
|
||||
|
||||
html.no-css #rl-loading-error {
|
||||
position: absolute;
|
||||
font-size: 30px;
|
||||
line-height: 130%;
|
||||
top: 50%;
|
||||
width: 100%;
|
||||
height: 65px;
|
||||
margin: 0;
|
||||
margin-top: -60px;
|
||||
background-color: transparent;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
html.no-css .progressjs-container {
|
||||
display: none;
|
||||
}
|
||||
|
||||
html.no-css .thm-body {
|
||||
color: #333;
|
||||
background-color: #aaa;
|
||||
background-image: none;
|
||||
}
|
||||
|
||||
html.no-css .thm-loading {
|
||||
color: #333 !important;
|
||||
text-shadow: none !important;
|
||||
|
||||
.e-spinner .e-bounce {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
html.no-css .thm-login-desc .desc {
|
||||
color: #333 !important;
|
||||
text-shadow: none !important;
|
||||
}
|
||||
|
|
@ -375,7 +375,11 @@ html.rl-ctrl-key-pressed {
|
|||
}
|
||||
|
||||
#rl-check{
|
||||
display: block;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.rl-content-show {
|
||||
display: block !important;
|
||||
}
|
||||
|
||||
html.rl-mobile .hide-on-mobile {
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ function copyFile(sFile, sNewFile, callback)
|
|||
callback();
|
||||
}
|
||||
|
||||
cfg.paths.globjs = 'dev/**/*.{js,jsx,html}';
|
||||
cfg.paths.globjs = 'dev/**/*.{js,jsx,html,css}';
|
||||
cfg.paths.globjsonly = 'dev/**/*.js';
|
||||
cfg.paths.globjsxonly = 'dev/**/*.jsx';
|
||||
cfg.paths.static = 'rainloop/v/' + cfg.devVersion + '/static/';
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
/*
|
||||
* This file is part of MailSo.
|
||||
*
|
||||
* (c) 2014 Usenko Timur
|
||||
* (c) 2016 Usenko Timur
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
|
|
@ -19,7 +19,7 @@ final class Version
|
|||
/**
|
||||
* @var string
|
||||
*/
|
||||
const APP_VERSION = '2.0.0';
|
||||
const APP_VERSION = '2.0.1';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
|
|
|
|||
|
|
@ -2396,27 +2396,7 @@ NewThemeLink IncludeCss LoadingDescriptionEsc TemplatesLink LangLink IncludeBack
|
|||
$sPassword = $this->clientRsaDecryptHelper($sPassword);
|
||||
$this->Logger()->AddSecret($sPassword);
|
||||
|
||||
if (0 < \strlen($sEmail) && 0 < \strlen($sPassword) &&
|
||||
$this->Config()->Get('security', 'allow_universal_login', true) &&
|
||||
$this->Config()->Get('security', 'allow_admin_panel', true) &&
|
||||
$sEmail === $this->Config()->Get('security', 'admin_login', '')
|
||||
)
|
||||
{
|
||||
if ($this->Config()->ValidatePassword($sPassword))
|
||||
{
|
||||
$this->setAdminAuthToken($this->getAdminToken());
|
||||
|
||||
return $this->DefaultResponse(__FUNCTION__, true, array(
|
||||
'Admin' => true
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->loginErrorDelay();
|
||||
throw new \RainLoop\Exceptions\ClientException(\RainLoop\Notifications::AuthError);
|
||||
}
|
||||
}
|
||||
else if ('sleep@sleep.dev' === $sEmail && 0 < \strlen($sPassword) &&
|
||||
if ('sleep@sleep.dev' === $sEmail && 0 < \strlen($sPassword) &&
|
||||
\is_numeric($sPassword) && $this->Config()->Get('debug', 'enable', false)
|
||||
)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -207,9 +207,9 @@ class Application extends \RainLoop\Config\AbstractConfig
|
|||
'allow_admin_panel' => array(true, 'Access settings'),
|
||||
'allow_two_factor_auth' => array(false),
|
||||
'force_two_factor_auth' => array(false),
|
||||
'allow_universal_login' => array(false),
|
||||
'admin_panel_host' => array(''),
|
||||
'admin_panel_key' => array('admin'),
|
||||
'content_security_policy' => array(''),
|
||||
'core_install_access_domain' => array('')
|
||||
),
|
||||
|
||||
|
|
|
|||
|
|
@ -284,6 +284,8 @@ class Service
|
|||
$sFaviconPngLink = $sFaviconUrl ? $sFaviconUrl : $this->staticPath('apple-touch-icon.png');
|
||||
$sAppleTouchLink = $sFaviconUrl ? '' : $this->staticPath('apple-touch-icon.png');
|
||||
|
||||
$sContentSecurityPolicy = $this->oActions->Config()->Get('security', 'content_security_policy', '');
|
||||
|
||||
$aTemplateParameters = array(
|
||||
'{{BaseAppFaviconPngLinkTag}}' => $sFaviconPngLink ? '<link type="image/png" rel="shortcut icon" href="'.$sFaviconPngLink.'" />' : '',
|
||||
'{{BaseAppFaviconTouchLinkTag}}' => $sAppleTouchLink ? '<link type="image/png" rel="apple-touch-icon" href="'.$sAppleTouchLink.'" />' : '',
|
||||
|
|
@ -291,6 +293,8 @@ class Service
|
|||
'{{BaseAppThemeCssLink}}' => $this->oActions->ThemeLink($sTheme, $bAdmin),
|
||||
'{{BaseAppBootScriptLink}}' => $this->staticPath('js/'.($bAppJsDebug ? '' : 'min/').'boot.js'),
|
||||
'{{BaseViewport}}' => $bMobile ? 'width=device-width,initial-scale=1,user-scalable=no' : 'width=950,maximum-scale=2',
|
||||
'{{BaseContentSecurityPolicy}}' => $sContentSecurityPolicy ?
|
||||
'<meta http-equiv="Content-Security-Policy" content="'.$sContentSecurityPolicy.'" />' : '',
|
||||
'{{BaseDir}}' => false && \in_array($sLanguage, array('ar', 'he', 'ur')) ? 'rtl' : 'ltr'
|
||||
);
|
||||
|
||||
|
|
|
|||
|
|
@ -14,10 +14,10 @@
|
|||
<meta name="google" content="notranslate" />
|
||||
<meta name="robots" content="noindex,nofollow,noodp" />
|
||||
<meta name="AppBootData" content='{{RainloopBootData}}' id="app-boot-data" />
|
||||
{{BaseContentSecurityPolicy}}
|
||||
<title></title>
|
||||
{{BaseAppFaviconPngLinkTag}}
|
||||
{{BaseAppFaviconTouchLinkTag}}
|
||||
<style>#rl-check{display:none}</style>
|
||||
<link type="text/css" rel="stylesheet" href="{{BaseAppMainCssLink}}" />
|
||||
<link type="text/css" rel="stylesheet" href="{{BaseAppThemeCssLink}}" id="app-theme-link" />
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -33,7 +33,7 @@ module.exports = {
|
|||
module: {
|
||||
loaders: [
|
||||
{
|
||||
test: /\.html$/,
|
||||
test: /\.(html|css)$/,
|
||||
loader: 'raw'
|
||||
},
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue