mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
v2.2.1
This commit is contained in:
parent
3983932bc0
commit
aa05f10629
5 changed files with 29 additions and 31 deletions
35
README.md
35
README.md
|
|
@ -109,33 +109,34 @@ Things might work in Edge 18, Firefox 50-62 and Chrome 54-68 due to one polyfill
|
||||||
* Removed non-community (aka Prem/Premium/License) code
|
* Removed non-community (aka Prem/Premium/License) code
|
||||||
|
|
||||||
|
|
||||||
RainLoop 1.14 vs SnappyMail
|
RainLoop 1.15 vs SnappyMail
|
||||||
|
|
||||||
|js/* |RainLoop |Snappy |
|
|js/* |RainLoop |Snappy |
|
||||||
|--------------- |--------: |--------: |
|
|--------------- |--------: |--------: |
|
||||||
|admin.js |2.130.942 | 119.180 |
|
|admin.js |2.158.025 | 119.197 |
|
||||||
|app.js |4.184.455 | 527.492 |
|
|app.js |4.215.733 | 527.415 |
|
||||||
|boot.js | 671.522 | 4.842 |
|
|boot.js | 672.433 | 4.842 |
|
||||||
|libs.js | 647.614 | 235.475 |
|
|libs.js | 647.679 | 235.475 |
|
||||||
|polyfills.js | 325.834 | 0 |
|
|polyfills.js | 325.908 | 0 |
|
||||||
|serviceworker.js | 0 | 285 |
|
|serviceworker.js | 0 | 285 |
|
||||||
|TOTAL |7.960.367 | 887.274 |
|
|TOTAL |8.019.778 | 887.214 |
|
||||||
|
|
||||||
|js/min/* |RainLoop |Snappy |Rain gzip |gzip |brotli |
|
|js/min/* |RainLoop |Snappy |Rain gzip |S gzip |R brotli |S brotli |
|
||||||
|--------------- |--------: |--------: |--------: |--------: |--------: |
|
|--------------- |--------: |--------: |--------: |------: |-------: |-------: |
|
||||||
|admin.min.js | 252.147 | 61.128 | 73.657 | 17.416 | 15.445 |
|
|admin.min.js | 255.514 | 61.165 | 73.899 | 17.419 | 60.674 | 15.447 |
|
||||||
|app.min.js | 511.202 | 256.673 |140.462 | 73.698 | 61.839 |
|
|app.min.js | 516.000 | 256.632 |140.430 | 73.688 |110.657 | 61.812 |
|
||||||
|boot.min.js | 66.007 | 2.630 | 22.567 | 1.375 | 1.189 |
|
|boot.min.js | 66.456 | 2.630 | 22.553 | 1.375 | 20.043 | 1.189 |
|
||||||
|libs.min.js | 572.545 | 130.930 |176.720 | 47.397 | 42.116 |
|
|libs.min.js | 574.626 | 130.930 |177.280 | 47.397 |151.855 | 42.116 |
|
||||||
|polyfills.min.js | 32.452 | 0 | 11.312 | 0 | 0 |
|
|polyfills.min.js | 32.608 | 0 | 11.315 | 0 | 10.072 | 0 |
|
||||||
|TOTAL |1.434.353 | 451.361 |424.718 |139.886 |120.589 |
|
|TOTAL |1.445.204 | 451.357 |425.477 |139.879 |353.301 |120.564 |
|
||||||
|TOTAL (no admin) |1.182.206 | 390.233 |351.061 |122.470 |105.144 |
|
|TOTAL (no admin) |1.189.690 | 390.192 |351.061 |122.460 |292.627 |105.117 |
|
||||||
|
|
||||||
For a user its around 65% smaller and faster than traditional RainLoop.
|
For a user its around 65% smaller and faster than traditional RainLoop.
|
||||||
|
|
||||||
### CSS changes
|
### CSS changes
|
||||||
|
|
||||||
* Solve jQuery removed "features" with native css code.
|
* Solve jQuery removed "features" with native css code
|
||||||
|
* Cleanup unused css
|
||||||
* Removed html.no-css
|
* Removed html.no-css
|
||||||
* Removed dev/Styles/Cmd.less
|
* Removed dev/Styles/Cmd.less
|
||||||
* Removed dev/Styles/Scroll.less
|
* Removed dev/Styles/Scroll.less
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import {
|
||||||
} from 'Common/Globals';
|
} from 'Common/Globals';
|
||||||
|
|
||||||
import { KeyState } from 'Common/Enums';
|
import { KeyState } from 'Common/Enums';
|
||||||
import { rootAdmin, rootUser } from 'Common/Links';
|
import { logoutLink } from 'Common/Links';
|
||||||
import { i18nToNodes, initOnStartOrLangChange } from 'Common/Translator';
|
import { i18nToNodes, initOnStartOrLangChange } from 'Common/Translator';
|
||||||
|
|
||||||
import { LanguageStore } from 'Stores/Language';
|
import { LanguageStore } from 'Stores/Language';
|
||||||
|
|
@ -70,13 +70,13 @@ export class AbstractApp {
|
||||||
}
|
}
|
||||||
|
|
||||||
logoutReload(close = false) {
|
logoutReload(close = false) {
|
||||||
const logoutLink = rl.adminArea() ? rootAdmin() : rootUser();
|
const url = logoutLink();
|
||||||
|
|
||||||
rl.hash.clear();
|
rl.hash.clear();
|
||||||
close && window.close && window.close();
|
close && window.close && window.close();
|
||||||
|
|
||||||
if (location.href !== logoutLink) {
|
if (location.href !== url) {
|
||||||
setTimeout(() => (Settings.app('inIframe') ? parent : window).location.href = logoutLink, 100);
|
setTimeout(() => (Settings.app('inIframe') ? parent : window).location.href = url, 100);
|
||||||
} else {
|
} else {
|
||||||
rl.route.reload();
|
rl.route.reload();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ const
|
||||||
ROOT = './',
|
ROOT = './',
|
||||||
HASH_PREFIX = '#/',
|
HASH_PREFIX = '#/',
|
||||||
SERVER_PREFIX = './?',
|
SERVER_PREFIX = './?',
|
||||||
SUB_QUERY_PREFIX = '&q[]=',
|
|
||||||
VERSION = Settings.app('version'),
|
VERSION = Settings.app('version'),
|
||||||
VERSION_PREFIX = Settings.app('webVersionPath') || 'snappymail/v/' + VERSION + '/',
|
VERSION_PREFIX = Settings.app('webVersionPath') || 'snappymail/v/' + VERSION + '/',
|
||||||
|
|
||||||
|
|
@ -14,9 +13,7 @@ const
|
||||||
/**
|
/**
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
export function subQueryPrefix() {
|
export const SUB_QUERY_PREFIX = '&q[]=';
|
||||||
return SUB_QUERY_PREFIX;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string=} startupUrl
|
* @param {string=} startupUrl
|
||||||
|
|
@ -36,8 +33,8 @@ export function rootAdmin() {
|
||||||
/**
|
/**
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
export function rootUser() {
|
export function logoutLink() {
|
||||||
return ROOT;
|
return rl.adminArea() ? rootAdmin() : ROOT;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@ import {
|
||||||
MessageFlagsCache
|
MessageFlagsCache
|
||||||
} from 'Common/Cache';
|
} from 'Common/Cache';
|
||||||
|
|
||||||
import { subQueryPrefix } from 'Common/Links';
|
import { SUB_QUERY_PREFIX } from 'Common/Links';
|
||||||
|
|
||||||
import AppStore from 'Stores/User/App';
|
import AppStore from 'Stores/User/App';
|
||||||
import SettingsStore from 'Stores/User/Settings';
|
import SettingsStore from 'Stores/User/Settings';
|
||||||
|
|
@ -314,7 +314,7 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
||||||
|
|
||||||
if (folderHash && (!sSearch || !sSearch.includes('is:'))) {
|
if (folderHash && (!sSearch || !sSearch.includes('is:'))) {
|
||||||
sGetAdd = 'MessageList/' +
|
sGetAdd = 'MessageList/' +
|
||||||
subQueryPrefix() +
|
SUB_QUERY_PREFIX +
|
||||||
'/' +
|
'/' +
|
||||||
urlsafeArray([
|
urlsafeArray([
|
||||||
sFolderFullNameRaw,
|
sFolderFullNameRaw,
|
||||||
|
|
@ -381,7 +381,7 @@ class RemoteUserFetch extends AbstractFetchRemote {
|
||||||
{},
|
{},
|
||||||
null,
|
null,
|
||||||
'Message/' +
|
'Message/' +
|
||||||
subQueryPrefix() +
|
SUB_QUERY_PREFIX +
|
||||||
'/' +
|
'/' +
|
||||||
urlsafeArray([
|
urlsafeArray([
|
||||||
sFolderFullNameRaw,
|
sFolderFullNameRaw,
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
"title": "SnappyMail",
|
"title": "SnappyMail",
|
||||||
"description": "Simple, modern & fast web-based email client",
|
"description": "Simple, modern & fast web-based email client",
|
||||||
"private": true,
|
"private": true,
|
||||||
"version": "2.2.0",
|
"version": "2.2.1",
|
||||||
"homepage": "https://snappymail.eu",
|
"homepage": "https://snappymail.eu",
|
||||||
"author": {
|
"author": {
|
||||||
"name": "DJ Maze",
|
"name": "DJ Maze",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue