Removed the DATA_IMAGE_USER_DOT_PIC

Because viewUserPic is always false due to the removed Gravatar feature
This commit is contained in:
djmaze 2020-09-30 16:10:01 +02:00
parent 98c6fa0675
commit cfdbe3251e
9 changed files with 44 additions and 93 deletions

View file

@ -101,26 +101,29 @@ Things might work in Edge 18, Firefox 50-62 and Chrome 54-68 due to one polyfill
* Removed opentip (use CSS)
* Removed non-community (aka Prem/Premium/License) code
|js/* |1.14.0 |native |
RainLoop 1.14 vs SnappyMail
|js/* |RainLoop |Snappy |
|----------- |--------: |--------: |
|admin.js |2.130.942 | 844.753 |
|app.js |4.184.455 |2.487.401 |
|admin.js |2.130.942 | 825.627 |
|app.js |4.184.455 |2.463.325 |
|boot.js | 671.522 | 5.285 |
|libs.js | 647.614 | 246.183 |
|libs.js | 647.614 | 253.356 |
|polyfills.js | 325.834 | 0 |
|TOTAL |7.960.367 |3.583.524 |
|TOTAL |7.960.367 |3.547.593 |
|js/min/* |1.14.0 |native |gzip 1.14 |gzip |brotli |
|js/min/* |RainLoop |Snappy |Rain gzip |gzip |brotli |
|--------------- |--------: |--------: |--------: |--------: |--------: |
|admin.min.js | 252.147 | 116.068 | 73.657 | 33.279 | 28.711 |
|app.min.js | 511.202 | 339.263 |140.462 | 89.051 | 72.194 |
|admin.min.js | 252.147 | 112.115 | 73.657 | 30.610 | 26.437 |
|app.min.js | 511.202 | 334.897 |140.462 | 86.030 | 69.713 |
|boot.min.js | 66.007 | 2.935 | 22.567 | 1.510 | 1.285 |
|libs.min.js | 572.545 | 147.113 |176.720 | 51.608 | 45.901 |
|libs.min.js | 572.545 | 149.819 |176.720 | 52.834 | 46.924 |
|polyfills.min.js | 32.452 | 0 | 11.312 | 0 | 0 |
|TOTAL |1.434.353 | 605.379 |424.718 |175.448 |148.091 |
|TOTAL (no admin) |1.182.206 | 489.311 |351.061 |142.169 |119.380 |
|TOTAL |1.434.353 | 599.766 |424.718 |170.984 |144.359 |
|TOTAL (no admin) |1.182.206 | 487.651 |351.061 |140.374 |117.922 |
For a user its around 58% smaller and faster than traditional RainLoop.
For a user its around 60% smaller and faster than traditional RainLoop.
### CSS changes
@ -145,8 +148,8 @@ For a user its around 58% smaller and faster than traditional RainLoop.
|css/* |1.14.0 |native |gzip 1.14 |gzip |brotli |
|-------------- |-------: |-------: |------: |------: |------: |
|app.css | 340.334 | 190.086 | 46,959 | 29.415 | 24.717 |
|app.min.css | 274.791 | 156.076 | 39.618 | 26.034 | 22.418 |
|app.css | 340.334 | 186.431 | 46,959 | 28.748 | 24.209 |
|app.min.css | 274.791 | 152.540 | 39.618 | 25.289 | 21.842 |
|boot.css | | 2.534 | | 837 | 668 |
|boot.min.css | | 2.055 | | 732 | 560 |

View file

@ -22,15 +22,6 @@ export function clear() {
MESSAGE_FLAGS_CACHE = {};
}
/**
* @param {string} email
* @param {Function} callback
* @returns {string}
*/
export function getUserPic(email, callback) {
callback('', email.trim());
}
/**
* @param {string} folderFullNameRaw
* @param {string} uid

View file

@ -1,9 +1,3 @@
export const MESSAGES_PER_PAGE_VALUES = [10, 20, 30, 50, 100];
export const DEFAULT_AJAX_TIMEOUT = 30000;
export const UNUSED_OPTION_VALUE = '__UNUSE__';
/* eslint max-len: 0 */
export const DATA_IMAGE_USER_DOT_PIC =
'data:image/png;base64,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';

View file

@ -1,4 +1,3 @@
import { DEFAULT_AJAX_TIMEOUT } from 'Common/Consts';
import { StorageResultType, Notification } from 'Common/Enums';
import { pInt, pString } from 'Common/Utils';
import { serverRequest } from 'Common/Links';
@ -91,7 +90,7 @@ class AbstractFetchRemote
}
return rl.fetchJSON(getURL(sGetAdd), {
signal: this.createAbort(action, undefined === iTimeout ? DEFAULT_AJAX_TIMEOUT : pInt(iTimeout))
signal: this.createAbort(action, undefined === iTimeout ? 30000 : pInt(iTimeout))
}, sGetAdd ? null : params
).then(data => {
let cached = false;
@ -217,7 +216,7 @@ class AbstractFetchRemote
this.setTrigger(fTrigger, true);
return rl.fetchJSON(getURL(), {
signal: this.createAbort(action, pInt(timeOut, DEFAULT_AJAX_TIMEOUT))
signal: this.createAbort(action, pInt(timeOut, 30000))
}, params
).then(data => {
this.abort(action, true);

View file

@ -1,7 +1,5 @@
import { pString, pInt } from 'Common/Utils';
import { DEFAULT_AJAX_TIMEOUT } from 'Common/Consts';
import {
getFolderHash,
getFolderInboxName,
@ -335,7 +333,7 @@ class RemoteUserFetch extends AbstractFetchRemote {
fCallback,
'MessageList',
params,
sSearch ? 300000 : DEFAULT_AJAX_TIMEOUT,
sSearch ? 300000 : 30000,
sGetAdd,
bSilent ? [] : ['MessageList']
);

View file

@ -140,19 +140,6 @@ html.rl-no-preview-pane {
.date {
}
.fromPic {
display: inline-block;
width: 50px;
height: 50px;
float: left;
padding: 2px;
margin: 0 5px 0 0;
background: #fff;
border: 1px solid #ccc;
border-radius: 6px;
box-sizing: border-box;
}
.subjectParent {
font-size: 18px;
font-weight: bold;

View file

@ -1,6 +1,6 @@
import ko from 'ko';
import { DATA_IMAGE_USER_DOT_PIC, UNUSED_OPTION_VALUE } from 'Common/Consts';
import { UNUSED_OPTION_VALUE } from 'Common/Consts';
import {
Capa,
@ -27,7 +27,7 @@ import Audio from 'Common/Audio';
import { i18n } from 'Common/Translator';
import { attachmentDownload } from 'Common/Links';
import { getUserPic, storeMessageFlagsToCache } from 'Common/Cache';
import { storeMessageFlagsToCache } from 'Common/Cache';
import AppStore from 'Stores/User/App';
import SettingsStore from 'Stores/User/Settings';
@ -53,8 +53,6 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
constructor() {
super();
let lastEmail = '';
const createCommandReplyHelper = type =>
createCommand(() => {
this.lastReplyAction(type);
@ -188,8 +186,6 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.viewViewLink = ko.observable('');
this.viewUnsubscribeLink = ko.observable('');
this.viewDownloadLink = ko.observable('');
this.viewUserPic = ko.observable(DATA_IMAGE_USER_DOT_PIC);
this.viewUserPicVisible = ko.observable(false);
this.viewIsImportant = ko.observable(false);
this.viewIsFlagged = ko.observable(false);
@ -254,18 +250,6 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.viewDownloadLink(message.downloadLink());
this.viewIsImportant(message.isImportant());
this.viewIsFlagged(message.flagged());
lastEmail = message.fromAsSingleEmail();
getUserPic(lastEmail, (pic, email) => {
if (pic !== this.viewUserPic() && lastEmail === email) {
this.viewUserPicVisible(false);
this.viewUserPic(DATA_IMAGE_USER_DOT_PIC);
if (pic) {
this.viewUserPicVisible(true);
this.viewUserPic(pic);
}
}
});
} else {
this.viewFolder = '';
this.viewUid = '';

View file

@ -230,37 +230,33 @@
<span class="i18n emptySubjectText" data-i18n="MESSAGE/EMPTY_SUBJECT_TEXT" data-bind="event: { 'dblclick': toggleFullScreen }"></span>
</div>
<div>
<div>
<img class="fromPic" data-bind="visible: viewUserPicVisible, attr: {'src': viewUserPic() }">
<div style="overflow: hidden;">
<div class="informationShort" data-bind="event: { 'dblclick': toggleFullScreen }">
<span>
<span class="from" data-bind="html: viewFromShort, title: viewFrom"></span>
<span data-bind="visible: viewFromDkimVisibility">
&nbsp;
<i data-bind="css: viewFromDkimStatusIconClass, title: viewFromDkimStatusTitle"></i>
</span>
<div style="overflow: hidden;">
<div class="informationShort" data-bind="event: { 'dblclick': toggleFullScreen }">
<span>
<span class="from" data-bind="html: viewFromShort, title: viewFrom"></span>
<span data-bind="visible: viewFromDkimVisibility">
&nbsp;
<i data-bind="css: viewFromDkimStatusIconClass, title: viewFromDkimStatusTitle"></i>
</span>
<span data-bind="visible: 0 < viewTimeStamp()">
(<time class="date" data-moment-format="FULL" data-bind="moment: viewTimeStamp"></time>)
</span>
<span data-bind="visible: 0 < viewTimeStamp()">
(<time class="date" data-moment-format="FULL" data-bind="moment: viewTimeStamp"></time>)
</span>
</div>
<div class="informationShortWrp">
<div class="informationShort" data-bind="visible: viewTo, event: { 'dblclick': toggleFullScreen }">
<span>
<span class="i18n uiLabel labelTo" data-i18n="MESSAGE/LABEL_TO"
></span>:&nbsp;<span class="to" data-bind="text: viewTo"></span>
</span>
</div>
<div class="informationShortWrp">
<div class="informationShort" data-bind="visible: viewTo, event: { 'dblclick': toggleFullScreen }">
<span>
<span class="i18n uiLabel labelTo" data-i18n="MESSAGE/LABEL_TO"
></span>:&nbsp;<span class="to" data-bind="text: viewTo"></span>
</span>
</div>
<div class="informationShort" data-bind="visible: viewCc, event: { 'dblclick': toggleFullScreen }">
<span>
<span class="i18n uiLabel labelTo" data-i18n="MESSAGE/LABEL_CC"
></span>:&nbsp;<span class="to" data-bind="text: viewCc"></span>
</span>
</div>
<div class="informationShort" data-bind="visible: viewCc, event: { 'dblclick': toggleFullScreen }">
<span>
<span class="i18n uiLabel labelTo" data-i18n="MESSAGE/LABEL_CC"
></span>:&nbsp;<span class="to" data-bind="text: viewCc"></span>
</span>
</div>
</div>
<div class="clearfix"></div>
</div>
<div class="informationFull" data-bind="visible: showFullInfo()">
<table>

View file

@ -9,7 +9,6 @@
<b data-bind="visible: 99 < accountsUnreadCount()">99+</b>
&nbsp;
-->
&nbsp;
<span class="caret"></span>
</a>
<ul class="dropdown-menu g-ui-menu" tabindex="-1" role="menu" aria-labelledby="top-system-dropdown-id">