Replaced dev/Common/ClientStorageDriver/* with webstorage polyfill

Cleanup some other code
This commit is contained in:
djmaze 2020-09-03 12:51:15 +02:00
parent 0e8bf13d5d
commit b837013cfb
13 changed files with 201 additions and 594 deletions

View file

@ -104,9 +104,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
this.messageListCompleteLoadingThrottle = MessageStore.messageListCompleteLoadingThrottle;
this.messageListCompleteLoadingThrottleForAnimation = MessageStore.messageListCompleteLoadingThrottleForAnimation;
initOnStartOrLangChange(() => {
this.emptySubjectValue = i18n('MESSAGE_LIST/EMPTY_SUBJECT_TEXT');
});
initOnStartOrLangChange(() => this.emptySubjectValue = i18n('MESSAGE_LIST/EMPTY_SUBJECT_TEXT'));
this.userQuota = QuotaStore.quota;
this.userUsageSize = QuotaStore.usage;
@ -140,9 +138,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
read: () => 0 < MessageStore.messageListChecked().length,
write: (value) => {
value = !!value;
MessageStore.messageList().forEach(message => {
message.checked(value);
});
MessageStore.messageList().forEach(message => message.checked(value));
}
});
@ -151,9 +147,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
this.sLastSearchValue = '';
this.inputProxyMessageListSearch = ko.computed({
read: this.mainMessageListSearch,
write: (value) => {
this.sLastSearchValue = value;
}
write: value => this.sLastSearchValue = value
});
this.isIncompleteChecked = ko.computed(() => {
@ -205,9 +199,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
return this.mobile ? 0 < this.messageListChecked().length : true;
});
this.mobileCheckedStateHide = ko.computed(() => {
return this.mobile ? !this.messageListChecked().length : true;
});
this.mobileCheckedStateHide = ko.computed(() => this.mobile ? !this.messageListChecked().length : true);
this.messageListFocused = ko.computed(() => Focused.MessageList === AppStore.focusedState());
@ -225,25 +217,17 @@ class MessageListMailBoxUserView extends AbstractViewNext {
'.messageListItem.focused'
);
this.selector.on('onItemSelect', (message) => {
MessageStore.selectMessage(message);
});
this.selector.on('onItemSelect', message => MessageStore.selectMessage(message));
this.selector.on('onItemGetUid', (message) => (message ? message.generateUid() : ''));
this.selector.on('onItemGetUid', message => (message ? message.generateUid() : ''));
this.selector.on('onAutoSelect', () => this.useAutoSelect());
this.selector.on('onUpUpOrDownDown', (v) => {
this.goToUpUpOrDownDown(v);
});
this.selector.on('onUpUpOrDownDown', v => this.goToUpUpOrDownDown(v));
addEventListener('mailbox.message-list.selector.go-down', e => {
this.selector.goDown(e.detail);
});
addEventListener('mailbox.message-list.selector.go-down', e => this.selector.goDown(e.detail));
addEventListener('mailbox.message-list.selector.go-up', e => {
this.selector.goUp(e.detail);
});
addEventListener('mailbox.message-list.selector.go-up', e => this.selector.goUp(e.detail));
addEventListener('mailbox.message.show', e => {
const sFolder = e.detail.Folder, sUid = e.detail.Uid;
@ -708,16 +692,14 @@ class MessageListMailBoxUserView extends AbstractViewNext {
}
gotoPage(page) {
if (page) {
setHash(
mailBox(
FolderStore.currentFolderFullNameHash(),
page.value,
MessageStore.messageListSearch(),
MessageStore.messageListThreadUid()
)
);
}
page && setHash(
mailBox(
FolderStore.currentFolderFullNameHash(),
page.value,
MessageStore.messageListSearch(),
MessageStore.messageListThreadUid()
)
);
}
gotoThread(message) {
@ -938,9 +920,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
const next = !!(StorageResultType.Success === result && data && data.Result);
setTimeout(() => {
this.bPrefetch = false;
if (next) {
this.prefetchNextTick();
}
next && this.prefetchNextTick();
}, 1000);
},
message.folderFullNameRaw,
@ -951,9 +931,8 @@ class MessageListMailBoxUserView extends AbstractViewNext {
}
advancedSearchClick() {
if (Settings.capa(Capa.SearchAdv)) {
showScreenPopup(require('View/Popup/AdvancedSearch'), [this.mainMessageListSearch()]);
}
Settings.capa(Capa.SearchAdv)
&& showScreenPopup(require('View/Popup/AdvancedSearch'), [this.mainMessageListSearch()]);
}
quotaTooltip() {
@ -981,25 +960,13 @@ class MessageListMailBoxUserView extends AbstractViewNext {
dragAndDropBodyElement: this.dragOverBodyArea()
});
this.dragOver.subscribe((value) => {
if (value) {
this.selector.scrollToTop();
}
});
this.dragOver.subscribe(value => value && this.selector.scrollToTop());
oJua
.on('onDragEnter', () => {
this.dragOverEnter(true);
})
.on('onDragLeave', () => {
this.dragOverEnter(false);
})
.on('onBodyDragEnter', () => {
this.dragOver(true);
})
.on('onBodyDragLeave', () => {
this.dragOver(false);
})
.on('onDragEnter', () => this.dragOverEnter(true))
.on('onDragLeave', () => this.dragOverEnter(false))
.on('onBodyDragEnter', () => this.dragOver(true))
.on('onBodyDragLeave', () => this.dragOver(false))
.on('onSelect', (sUid, oData) => {
if (sUid && oData && 'message/rfc822' === oData.Type) {
MessageStore.messageListLoading(true);
@ -1008,9 +975,7 @@ class MessageListMailBoxUserView extends AbstractViewNext {
return false;
})
.on('onComplete', () => {
getApp().reloadMessageList(true, true);
});
.on('onComplete', () => getApp().reloadMessageList(true, true));
return !!oJua;
}

View file

@ -115,9 +115,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.showAttachmnetControls = ko.observable(false);
this.showAttachmnetControlsState = (v) => {
Local.set(ClientSideKeyName.MessageAttachmnetControls, !!v);
};
this.showAttachmnetControlsState = v => Local.set(ClientSideKeyName.MessageAttachmnetControls, !!v);
this.allowAttachmnetControls = ko.computed(
() => this.attachmentsActions().length && Settings.capa(Capa.AttachmentsActions)
@ -130,33 +128,23 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.downloadAsZipLoading = ko.observable(false);
this.downloadAsZipError = ko.observable(false).extend({ falseTimeout: 7000 });
this.showAttachmnetControls.subscribe((v) => {
if (this.message()) {
this.message().attachments().forEach(item => {
if (item) {
item.checked(!!v);
}
});
}
});
this.showAttachmnetControls.subscribe(v => this.message()
&& this.message().attachments().forEach(item => item && item.checked(!!v))
);
this.lastReplyAction_ = ko.observable('');
this.lastReplyAction = ko.computed({
read: this.lastReplyAction_,
write: (value) => {
this.lastReplyAction_(
[ComposeType.Reply, ComposeType.ReplyAll, ComposeType.Forward].includes(value)
? ComposeType.Reply
: value
);
}
write: value => this.lastReplyAction_(
[ComposeType.Reply, ComposeType.ReplyAll, ComposeType.Forward].includes(value)
? ComposeType.Reply
: value
)
});
this.lastReplyAction(Local.get(ClientSideKeyName.LastReplyAction) || ComposeType.Reply);
this.lastReplyAction_.subscribe((value) => {
Local.set(ClientSideKeyName.LastReplyAction, value);
});
this.lastReplyAction_.subscribe(value => Local.set(ClientSideKeyName.LastReplyAction, value));
this.showFullInfo = ko.observable('1' === Local.get(ClientSideKeyName.MessageHeaderFullInfo));
@ -165,16 +153,9 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.messageVisibility = ko.computed(() => !this.messageLoadingThrottle() && !!this.message());
this.message.subscribe((message) => {
if (!message) {
MessageStore.selectorMessageSelected(null);
}
});
this.message.subscribe(message => (!message) && MessageStore.selectorMessageSelected(null));
this.canBeRepliedOrForwarded = ko.computed(() => {
const v = this.messageVisibility();
return !this.isDraftFolder() && v;
});
this.canBeRepliedOrForwarded = ko.computed(() => !this.isDraftFolder() && this.messageVisibility());
// commands
this.replyCommand = createCommandReplyHelper(ComposeType.Reply);
@ -242,9 +223,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
return '';
});
this.messageActiveDom.subscribe(dom => {
this.bodyBackgroundColor(this.detectDomBackgroundColor(dom));
}, this);
this.messageActiveDom.subscribe(dom => this.bodyBackgroundColor(this.detectDomBackgroundColor(dom)), this);
this.message.subscribe((message) => {
this.messageActiveDom(null);
@ -304,16 +283,10 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
this.message.viewTrigger.subscribe(() => {
const message = this.message();
if (message) {
this.viewIsFlagged(message.flagged());
} else {
this.viewIsFlagged(false);
}
message ? this.viewIsFlagged(message.flagged()) : this.viewIsFlagged(false);
});
this.fullScreenMode.subscribe((value) => {
$htmlCL.toggle('rl-message-fullscreen', value);
});
this.fullScreenMode.subscribe(value => $htmlCL.toggle('rl-message-fullscreen', value));
this.messageFocused = ko.computed(() => Focused.MessageView === AppStore.focusedState());
@ -321,9 +294,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
() => MessageStore.messageListCompleteLoadingThrottle() || MessageStore.messageLoadingThrottle()
);
addEventListener('mailbox.message-view.toggle-full-screen', () => {
this.toggleFullScreen();
});
addEventListener('mailbox.message-view.toggle-full-screen', () => this.toggleFullScreen());
this.attachmentPreview = this.attachmentPreview.bind(this);
}
@ -397,9 +368,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
* @returns {void}
*/
replyOrforward(sType) {
if (Settings.capa(Capa.Composer)) {
showScreenPopup(require('View/Popup/Compose'), [sType, MessageStore.message()]);
}
Settings.capa(Capa.Composer) && showScreenPopup(require('View/Popup/Compose'), [sType, MessageStore.message()]);
}
checkHeaderHeight() {
@ -463,9 +432,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
removeInFocus(true);
});
div.on('onCloseAfter.lg', () => {
useKeyboardShortcuts(true);
});
div.on('onCloseAfter.lg', () => useKeyboardShortcuts(true));
div.lightGallery({
dynamic: true,
@ -487,15 +454,9 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
}
onBuild(dom) {
this.fullScreenMode.subscribe((value) => {
if (value && this.message()) {
AppStore.focusedState(Focused.MessageView);
}
});
this.fullScreenMode.subscribe(value => value && this.message() && AppStore.focusedState(Focused.MessageView));
this.showFullInfo.subscribe((value) => {
Local.set(ClientSideKeyName.MessageHeaderFullInfo, value ? '1' : '0');
});
this.showFullInfo.subscribe(value => Local.set(ClientSideKeyName.MessageHeaderFullInfo, value ? '1' : '0'));
this.oHeaderDom = dom.querySelector('.messageItemHeader');
if (this.oHeaderDom) {
@ -556,26 +517,22 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
if (eqs(event, '.messageItemHeader .subjectParent .flagParent')) {
// eslint-disable-line prefer-arrow-callback
const message = this.message();
if (message) {
getApp().messageListAction(
message.folderFullNameRaw,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message]
);
}
message && getApp().messageListAction(
message.folderFullNameRaw,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message]
);
}
el = eqs(event, '.thread-list .flagParent');
if (el) {
// eslint-disable-line prefer-arrow-callback
const message = ko.dataFor(el); // eslint-disable-line no-invalid-this
if (message && message.folder && message.uid) {
getApp().messageListAction(
message.folder,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message]
);
}
message && message.folder && message.uid && getApp().messageListAction(
message.folder,
message.flagged() ? MessageSetAction.UnsetFlag : MessageSetAction.SetFlag,
[message]
);
this.threadsDropdownTrigger(true);
@ -590,9 +547,7 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
}
});
keyScopeReal.subscribe((value) => {
this.messageDomFocused(KeyState.MessageView === value && !inFocus());
});
keyScopeReal.subscribe(value => this.messageDomFocused(KeyState.MessageView === value && !inFocus()));
this.oMessageScrollerDom = dom.querySelector('.messageItem');
@ -604,13 +559,14 @@ class MessageViewMailBoxUserView extends AbstractViewNext {
*/
escShortcuts() {
if (this.viewModelVisibility() && this.message()) {
const preview = Layout.NoPreview !== this.layout();
if (this.fullScreenMode()) {
this.fullScreenMode(false);
if (Layout.NoPreview !== this.layout()) {
if (preview) {
AppStore.focusedState(Focused.MessageList);
}
} else if (Layout.NoPreview === this.layout()) {
} else if (!preview) {
this.message(null);
} else {
AppStore.focusedState(Focused.MessageList);