v1.14.0-djmaze5

This commit is contained in:
djmaze 2020-08-31 16:33:40 +02:00
parent dcdaf70601
commit 088945b636
5 changed files with 43 additions and 48 deletions

View file

@ -61,8 +61,14 @@ The result is faster and smaller download code (good for mobile networks).
Things might work in Edge 18, Firefox 50-62 and Chrome 54-68 due to one polyfill for array.flat().
* Added dev/prototype-*.js for some additional features
* Replaced jQuery with jQuery.slim
* Replaced ProgressJS with simple native dropin
* Replaced Autolinker with simple https/email detection
* Replaced ifvisible.js with simple drop-in replacement
* Replaced momentToNode with proper HTML5 <time>
* Replaced resize listeners with ResizeObserver
* Replaced bootstrap.js with native drop-in replacement
* Removed pikaday
* Removed underscore
* Removed polyfills
@ -73,38 +79,53 @@ Things might work in Edge 18, Firefox 50-62 and Chrome 54-68 due to one polyfill
* Removed matchmedia-polyfill
* Removed momentjs (localization still used)
* Removed opentip (use CSS)
* Replaced Autolinker with simple https/email detection
* Replaced ifvisible.js with simple drop-in replacement
* Replaced momentToNode with proper HTML5 <time>
* Replaced resize listeners with ResizeObserver
* Removed non-community (aka Prem/Premium/License) code
* Replaced bootstrap.js with native drop-in replacement
|js/* |1.14.0 |native |
|----------- |--------: |--------: |
|admin.js |2.130.942 | 967.065 |
|app.js |4.184.455 |2.630.967 |
|admin.js |2.130.942 | 963.702 |
|app.js |4.184.455 |2.626.779 |
|boot.js | 671.522 | 43.824 |
|libs.js | 647.614 | 315.759 |
|polyfills.js | 325.834 | 0 |
|TOTAL |7.960.367 |3.957.615 |
|TOTAL |7.960.367 |3.950.064 |
|js/min/* |1.14.0 |native |gzip 1.14 |gzip |brotli |
|--------------- |--------: |--------: |--------: |--------: |--------: |
|admin.min.js | 252.147 | 131.409 | 73.657 | 38.016 | 32.576 |
|app.min.js | 511.202 | 355.295 |140.462 | 93.568 | 75.036 |
|boot.min.js | 66.007 | 5.560 | 22.567 | 2.341 | 2.004 |
|libs.min.js | 572.545 | 299.223 |176.720 | 92.519 | 81.725 |
|admin.min.js | 252.147 | 130.802 | 73.657 | 37.916 | 32.474 |
|app.min.js | 511.202 | 354.515 |140.462 | 93.408 | 74.849 |
|boot.min.js | 66.007 | 5.564 | 22.567 | 2.327 | 1.989 |
|libs.min.js | 572.545 | 299.283 |176.720 | 92.510 | 81.659 |
|polyfills.min.js | 32.452 | 0 | 11.312 | 0 | 0 |
|TOTAL |1.434.353 | 791.487 |424.718 |226.444 |191.341 |
|TOTAL |1.434.353 | 790.164 |424.718 |226.161 |190.971 |
641.922 bytes (197.980 gzip) is not much, but it feels faster.
644.189 bytes (198.557 gzip) is not much, but it feels faster.
### CSS changes
* Solve jQuery removed "features" with native css code.
* Removed html.no-css
* Removed dev/Styles/Cmd.less
* Removed dev/Styles/Scroll.less
* Removed Internet Explorer from normalize.css
* Removed node_modules/opentip/css/opentip.css
* Removed node_modules/pikaday/css/pikaday.css
* Removed vendors/bootstrap/less/breadcrumbs.less
* Removed vendors/bootstrap/less/navbar.less
* Removed vendors/bootstrap/less/popovers.less
* Removed vendors/bootstrap/less/progress-bars.less
* Removed vendors/bootstrap/less/scaffolding.less
* Removed vendors/bootstrap/less/sprites.less
* Removed vendors/bootstrap/less/tooltip.less
* Removed vendors/jquery-nanoscroller/nanoscroller.css
* Removed vendors/jquery-letterfx/jquery-letterfx.min.css
* Removed vendors/Progress.js/minified/progressjs.min.css
|css/* |1.14.0 |native |
|-------------- |--------: |--------: |
|app.css | 340.334 | 265.864 |
|app.min.css | 274.791 | 211.468 |
|app.css | 340.334 | 265.871 |
|app.min.css | 274.791 | 211.493 |
### PHP73 branch

9
dev/External/ko.js vendored
View file

@ -628,15 +628,6 @@ ko.observable.fn.validateEmail = function() {
return this;
};
ko.observable.fn.validateSimpleEmail = function() {
this.hasError = ko.observable(false);
this.subscribe(value => this.hasError(value && !/^.+@.+$/.test(value)));
this.valueHasMutated();
return this;
};
ko.observable.fn.deleteAccessHelper = function() {
this.extend({ falseTimeout: 3000 }).extend({ toggleSubscribeProperty: [this, 'deleteAccess'] });
return this;

View file

@ -80,22 +80,6 @@ export function addSettingsViewModel(SettingsViewModelClass, template, labelName
VIEW_MODELS.settings.push(SettingsViewModelClass);
}
/**
* @param {Function} SettingsViewModelClass
* @returns {void}
*/
export function removeSettingsViewModel(SettingsViewModelClass) {
VIEW_MODELS['settings-removed'].push(SettingsViewModelClass);
}
/**
* @param {Function} SettingsViewModelClass
* @returns {void}
*/
export function disableSettingsViewModel(SettingsViewModelClass) {
VIEW_MODELS['settings-disabled'].push(SettingsViewModelClass);
}
/**
* @returns {void}
*/
@ -122,7 +106,7 @@ export function screen(screenName) {
* @param {Function} ViewModelClassToShow
* @returns {Function|null}
*/
export function getScreenPopup(PopuViewModelClass) {
function getScreenPopup(PopuViewModelClass) {
let result = null;
if (PopuViewModelClass) {
result = PopuViewModelClass;
@ -150,7 +134,7 @@ export function hideScreenPopup(ViewModelClassToHide) {
* @param {Object=} vmScreen
* @returns {*}
*/
export function buildViewModel(ViewModelClass, vmScreen) {
function buildViewModel(ViewModelClass, vmScreen) {
if (ViewModelClass && !ViewModelClass.__builded) {
let vmDom = null;
const vm = new ViewModelClass(vmScreen),
@ -276,7 +260,7 @@ export function isPopupVisible(ViewModelClassToShow) {
* @param {string} subPart
* @returns {void}
*/
export function screenOnRoute(screenName, subPart) {
function screenOnRoute(screenName, subPart) {
let vmScreen = null,
isSameScreen = false,
cross = null;
@ -531,7 +515,6 @@ export {
commandDecorator as command,
viewDecorator,
viewDecorator as view,
viewDecorator as viewModel,
popupDecorator,
popupDecorator as popup,
settingsMenuKeysHandler

View file

@ -27,9 +27,9 @@ class IdentityPopupView extends AbstractViewNext {
this.email = ko.observable('').validateEmail();
this.email.focused = ko.observable(false);
this.name = ko.observable('');
this.replyTo = ko.observable('').validateSimpleEmail();
this.replyTo = ko.observable('').validateEmail();
this.replyTo.focused = ko.observable(false);
this.bcc = ko.observable('').validateSimpleEmail();
this.bcc = ko.observable('').validateEmail();
this.bcc.focused = ko.observable(false);
this.signature = ko.observable('');

View file

@ -3,7 +3,7 @@
"title": "RainLoop Webmail",
"description": "Simple, modern & fast web-based email client",
"private": true,
"version": "1.14.0-djmaze4",
"version": "1.14.0-djmaze5",
"homepage": "https://www.rainloop.net",
"author": {
"name": "RainLoop Team",