diff --git a/dev/App/Abstract.js b/dev/App/Abstract.js index fa25f491e..7945df545 100644 --- a/dev/App/Abstract.js +++ b/dev/App/Abstract.js @@ -340,11 +340,6 @@ class AbstractApp extends AbstractBoot leftPanelDisabled(false); }); - if (Settings.appSettingsGet('loginGlassStyle')) - { - $html.addClass('glass'); - } - if (!mobile) { ssm.addState({ diff --git a/dev/Common/HtmlEditor.js b/dev/Common/HtmlEditor.js index 826c592c7..13344d03b 100644 --- a/dev/Common/HtmlEditor.js +++ b/dev/Common/HtmlEditor.js @@ -92,12 +92,11 @@ class HtmlEditor * @param {bool} insertBefore * @returns {void} */ - setSignature(signature, html, insertBefore = false, first = false) { + setSignature(signature, html, insertBefore = false) { if (this.editor) { this.editor.execCommand('insertSignature', { isHtml: html, - isFirst: first, insertBefore: insertBefore, signature: signature }); diff --git a/dev/Common/Utils.js b/dev/Common/Utils.js index 321c856c8..1c10cf23d 100644 --- a/dev/Common/Utils.js +++ b/dev/Common/Utils.js @@ -826,7 +826,7 @@ export function htmlToPlain(html) .replace(/</gi, '<') .replace(/&/gi, '&'); - text = splitPlainText(trim(text)); + text = splitPlainText(text); pos = 0; limit = 800; diff --git a/dev/Styles/Layout.less b/dev/Styles/Layout.less index df3e5e76d..ca129e777 100644 --- a/dev/Styles/Layout.less +++ b/dev/Styles/Layout.less @@ -6,11 +6,6 @@ right: 0; top: 0; bottom: 0; - - &.animated { - right: -25px; - bottom: -25px; - } } #rl-content { diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index 632e5ceea..48e39e4df 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -866,7 +866,7 @@ class ComposePopupView extends AbstractViewNext return signature; } - setSignatureFromIdentity(identity, first = false) { + setSignatureFromIdentity(identity) { if (identity) { this.editor((editor) => { @@ -883,7 +883,7 @@ class ComposePopupView extends AbstractViewNext } } - editor.setSignature(this.converSignature(signature), isHtml, !!identity.signatureInsertBefore(), first); + editor.setSignature(this.converSignature(signature), isHtml, !!identity.signatureInsertBefore()); }); } } @@ -1168,7 +1168,7 @@ class ComposePopupView extends AbstractViewNext if (identity && ComposeType.Draft !== lineComposeType && ComposeType.EditAsNew !== lineComposeType) { - this.setSignatureFromIdentity(identity, true); + this.setSignatureFromIdentity(identity); } this.setFocusInPopup(); @@ -1192,7 +1192,7 @@ class ComposePopupView extends AbstractViewNext if (identity) { - this.setSignatureFromIdentity(identity, true); + this.setSignatureFromIdentity(identity); } this.setFocusInPopup(); @@ -1216,7 +1216,7 @@ class ComposePopupView extends AbstractViewNext if (identity && ComposeType.Draft !== lineComposeType && ComposeType.EditAsNew !== lineComposeType) { - this.setSignatureFromIdentity(identity, true); + this.setSignatureFromIdentity(identity); } this.setFocusInPopup(); diff --git a/dev/View/User/Login.js b/dev/View/User/Login.js index 7451be999..45a4e0a0e 100644 --- a/dev/View/User/Login.js +++ b/dev/View/User/Login.js @@ -1,6 +1,5 @@ import window from 'window'; -import $ from '$'; import _ from '_'; import ko from 'ko'; @@ -457,11 +456,6 @@ class LoginUserView extends AbstractViewNext }, Magics.Time50ms); triggerAutocompleteInputChange(true); - - if (Settings.appSettingsGet('activeBackgroud')) - { - this.initActiveBackgroud(); - } } submitForm() { @@ -486,28 +480,6 @@ class LoginUserView extends AbstractViewNext return true; } - - initActiveBackgroud() { - - const - $bg = $('#rl-bg'), - movementStrength = 25, - winHeight = $win.height(), - winWidth = $win.width(), - height = movementStrength / winHeight, - width = movementStrength / winWidth, - winHeightHalf = winHeight / 2, - winWidthHalf = winWidth / 2; - - $bg.addClass('animated'); - - $('#rl-app').on('mousemove', _.throttle((e) => { - $bg.css({ - top: height * (e.pageY - winHeightHalf) * -1 - movementStrength, - left: width * (e.pageX - winWidthHalf) * -1 - movementStrength - }); - }, 1)); - } } export {LoginUserView, LoginUserView as default}; diff --git a/plugins/recaptcha/js/recaptcha.js b/plugins/recaptcha/js/recaptcha.js index 30ba6b2e4..2a579d817 100644 --- a/plugins/recaptcha/js/recaptcha.js +++ b/plugins/recaptcha/js/recaptcha.js @@ -1,95 +1,95 @@ -(function ($, window) { - - $(function () { - - var - nId = null, - bStarted = false - ; - - function ShowRecaptcha() - { - if (window.grecaptcha) - { - if (null === nId) - { - var - oEl = null, - oLink = $('.plugin-mark-Login-BottomControlGroup') - ; - - if (oLink && oLink[0]) - { - oEl = $('
'); - - $(oLink[0]).after(oEl); - - nId = window.grecaptcha.render(oEl[0], { - 'sitekey': window.rl.pluginSettingsGet('recaptcha', 'public_key'), - 'theme': window.rl.pluginSettingsGet('recaptcha', 'theme') - }); - } - } - } - } - - window.__globalShowRecaptcha = ShowRecaptcha; - - function StartRecaptcha() - { - if (!window.grecaptcha && window.rl) - { - $.getScript('https://www.google.com/recaptcha/api.js?onload=__globalShowRecaptcha&render=explicit&hl=' + window.rl.settingsGet('Language')); - } - else - { - ShowRecaptcha(); - } - } - - if (window.rl) - { - window.rl.addHook('user-login-submit', function (fSubmitResult) { - if (null !== nId && !window.grecaptcha.getResponse(nId)) - { - fSubmitResult(105); - } - }); - - window.rl.addHook('view-model-on-show', function (sName, oViewModel) { - if (!bStarted && oViewModel && - ('View:RainLoop:Login' === sName || 'View/App/Login' === sName || 'LoginViewModel' === sName || 'LoginAppView' === sName) && - window.rl.pluginSettingsGet('recaptcha', 'show_captcha_on_login')) - { - bStarted = true; - StartRecaptcha(); - } - }); - - window.rl.addHook('ajax-default-request', function (sAction, oParameters) { - if ('Login' === sAction && oParameters && null !== nId && window.grecaptcha) - { - oParameters['RecaptchaResponse'] = window.grecaptcha.getResponse(nId); - } - }); - - window.rl.addHook('ajax-default-response', function (sAction, oData, sType) { - if ('Login' === sAction) - { - if (!oData || 'success' !== sType || !oData['Result']) - { - if (null !== nId && window.grecaptcha) - { - window.grecaptcha.reset(nId); - } - else if (oData && oData['Captcha']) - { - StartRecaptcha(); - } - } - } - }); - } - }); - +(function ($, window) { + + $(function () { + + var + nId = null, + bStarted = false + ; + + function ShowRecaptcha() + { + if (window.grecaptcha) + { + if (null === nId) + { + var + oEl = null, + oLink = $('.plugin-mark-Login-BottomControlGroup') + ; + + if (oLink && oLink[0]) + { + oEl = $('
'); + + $(oLink[0]).after(oEl); + + nId = window.grecaptcha.render(oEl[0], { + 'sitekey': window.rl.pluginSettingsGet('recaptcha', 'public_key'), + 'theme': window.rl.pluginSettingsGet('recaptcha', 'theme') + }); + } + } + } + } + + window.__globalShowRecaptcha = ShowRecaptcha; + + function StartRecaptcha() + { + if (!window.grecaptcha && window.rl) + { + $.getScript('https://www.google.com/recaptcha/api.js?onload=__globalShowRecaptcha&render=explicit&hl=' + window.rl.settingsGet('Language')); + } + else + { + ShowRecaptcha(); + } + } + + if (window.rl) + { + window.rl.addHook('user-login-submit', function (fSubmitResult) { + if (null !== nId && !window.grecaptcha.getResponse(nId)) + { + fSubmitResult(105); + } + }); + + window.rl.addHook('view-model-on-show', function (sName, oViewModel) { + if (!bStarted && oViewModel && + ('View:RainLoop:Login' === sName || 'View/App/Login' === sName || 'LoginViewModel' === sName || 'LoginAppView' === sName) && + window.rl.pluginSettingsGet('recaptcha', 'show_captcha_on_login')) + { + bStarted = true; + StartRecaptcha(); + } + }); + + window.rl.addHook('ajax-default-request', function (sAction, oParameters) { + if ('Login' === sAction && oParameters && null !== nId && window.grecaptcha) + { + oParameters['RecaptchaResponse'] = window.grecaptcha.getResponse(nId); + } + }); + + window.rl.addHook('ajax-default-response', function (sAction, oData, sType) { + if ('Login' === sAction) + { + if (!oData || 'success' !== sType || !oData['Result']) + { + if (null !== nId && window.grecaptcha) + { + window.grecaptcha.reset(nId); + } + else if (oData && oData['Captcha']) + { + StartRecaptcha(); + } + } + } + }); + } + }); + }($, window)); \ No newline at end of file diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php index 7a47f42ab..c292520bd 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Actions.php @@ -1455,9 +1455,7 @@ class Actions 'customLogoutLink' => $oConfig->Get('labs', 'custom_logout_link', ''), 'forgotPasswordLinkUrl' => \trim($oConfig->Get('login', 'forgot_password_link_url', '')), 'registrationLinkUrl' => \trim($oConfig->Get('login', 'registration_link_url', '')), - 'loginGlassStyle' => (bool) $oConfig->Get('login', 'glass_style', true), 'hideSubmitButton' => (bool) $oConfig->Get('login', 'hide_submit_button', true), - 'activeBackgroud' => (bool) $oConfig->Get('login', 'active_backgroud', false), 'jsHash' => \md5(\RainLoop\Utils::GetConnectionToken()), 'useImapThread' => (bool) $oConfig->Get('labs', 'use_imap_thread', false), 'useImapSubscribe' => (bool) $oConfig->Get('labs', 'use_imap_list_subscribe', true), diff --git a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php index 736eec2f2..b3f8b3f63 100644 --- a/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php +++ b/rainloop/v/0.0.0/app/libraries/RainLoop/Config/Application.php @@ -251,9 +251,7 @@ class Application extends \RainLoop\Config\AbstractConfig 'welcome_page' => array(false, ''), - 'glass_style' => array(true), 'hide_submit_button' => array(true), - 'active_backgroud' => array(false), 'forgot_password_link_url' => array('', ''), 'registration_link_url' => array('', ''), diff --git a/rainloop/v/0.0.0/app/templates/Index.html b/rainloop/v/0.0.0/app/templates/Index.html index d5ff62554..e13fe4797 100644 --- a/rainloop/v/0.0.0/app/templates/Index.html +++ b/rainloop/v/0.0.0/app/templates/Index.html @@ -1,30 +1,30 @@ - - - - - - - - - - - - - {{BaseContentSecurityPolicy}} - - {{BaseAppFaviconPngLinkTag}} - {{BaseAppFaviconTouchLinkTag}} - - - - - -
-
- - - + + + + + + + + + + + + + {{BaseContentSecurityPolicy}} + + {{BaseAppFaviconPngLinkTag}} + {{BaseAppFaviconTouchLinkTag}} + + + + + +
+
+ + + diff --git a/rainloop/v/0.0.0/themes/Mobile/ext.less b/rainloop/v/0.0.0/themes/Mobile/ext.less index fd61cfcb9..cd7e68f97 100644 --- a/rainloop/v/0.0.0/themes/Mobile/ext.less +++ b/rainloop/v/0.0.0/themes/Mobile/ext.less @@ -1,18 +1,18 @@ - -.b-login-content .loginFormWrapper { - width: 90%; - .wrapper { - padding: 30px 30px 10px 30px; - } -} - -.thm-login { - - width: 100% !important; - width: calc(~'100% - 60px') !important; - max-width: 303px !important; - - box-shadow: 0 1px 4px #ccc !important; - box-shadow: 0 1px 5px rgba(0,0,0,.2) !important; - box-shadow: 0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1) !important; + +.b-login-content .loginFormWrapper { + width: 90%; + .wrapper { + padding: 30px 30px 10px 30px; + } +} + +.thm-login { + + width: 100% !important; + width: calc(~'100% - 60px') !important; + max-width: 303px !important; + + box-shadow: 0 1px 4px #ccc !important; + box-shadow: 0 1px 5px rgba(0,0,0,.2) !important; + box-shadow: 0 0 0 1px rgba(0,0,0,.04),0 1px 5px rgba(0,0,0,.1) !important; } \ No newline at end of file diff --git a/vendors/ckeditor-plugins/plain/plugin.js b/vendors/ckeditor-plugins/plain/plugin.js index d72ed6d20..f3510ace7 100644 --- a/vendors/ckeditor-plugins/plain/plugin.js +++ b/vendors/ckeditor-plugins/plain/plugin.js @@ -1,187 +1,187 @@ - -(function() { - - var - simplePlainToHtml = function (sPlain) { - return sPlain - .replace(/&/g, '&') - .replace(/>/g, '>').replace(/') - .replace(/\n/g, '
') - .replace(/ /g, ' ') - ; - }, - simpleHtmlToPlain = function (sHtml) { - - var sText = sHtml - .replace(/[\s]+/gm, ' ') - .replace(/]*>/gmi, '\n') - .replace(/<\/h[\d]>/gi, '\n') - .replace(/<\/p>/gi, '\n\n') - .replace(/<\/li>/gi, '\n') - .replace(/<\/td>/gi, '\n') - .replace(/<\/tr>/gi, '\n') - .replace(/<\/div>/gi, '\n') - .replace(/]*>/gmi, '\n') - .replace(/<\/blockquote>/gi, '\n') - .replace(/]*>/gmi, '\n_______________________________\n\n') - .replace(/ /gi, ' ') - .replace(/"/gi, '"') - .replace(/<[^>]*>/gm, '') - ; - - sText = $('
').html(sText).text(); - - sText = sText - .replace(/\n[ \t]+/gm, '\n') - .replace(/[\n]{3,}/gm, '\n\n') - .replace(/>/gi, '>') - .replace(/</gi, '<') - .replace(/&/gi, '&') - ; - - return sText; - } - ; - - CKEDITOR.plugins.add('plain', { - lang: '', - icons: 'plain', - hidpi: true, - init: function(editor) - { - if (editor.elementMode === CKEDITOR.ELEMENT_MODE_INLINE) - return; - - editor.__plainUtils = { - plainToHtml: function(data) { - return window.rainloop_Utils_plainToHtml ? - window.rainloop_Utils_plainToHtml(data, true) : simplePlainToHtml(data); - }, - htmlToPlain: function(data) { - return window.rainloop_Utils_htmlToPlain ? - window.rainloop_Utils_htmlToPlain(data, true) : simpleHtmlToPlain(data); - } - }; - - var plain = CKEDITOR.plugins.plain; - editor.addMode('plain', function(callback) { - - var - contentsSpace = editor.ui.space('contents'), - textarea = contentsSpace.getDocument().createElement('textarea') - ; - - textarea.setStyles( - CKEDITOR.tools.extend({ - width: CKEDITOR.env.ie7Compat ? '99%' : '100%', - height: '100%', - resize: 'none', - outline: 'none', - 'text-align': 'left' - }, - CKEDITOR.tools.cssVendorPrefix('tab-size', 4))) - ; - - textarea.setAttribute('dir', 'ltr'); - textarea.addClass('cke_plain'); - - CKEDITOR.plugins.clipboard.preventDefaultDropOnElement(textarea); - - contentsSpace.append(textarea); - - var editable = editor.editable(new plainEditable(editor, textarea)); - - editable.setData(editor.getData(1)); - editor.__plain = editable; - - // Having to make