Cleanup FolderClearPopupView

This commit is contained in:
the-djmaze 2022-09-21 09:51:52 +02:00
parent 36c54521d7
commit 64c716ea07
2 changed files with 23 additions and 41 deletions

View file

@ -13,55 +13,42 @@ export class FolderClearPopupView extends AbstractViewPopup {
super('FolderClear');
this.addObservables({
selectedFolder: null,
clearingProcess: false,
clearingError: ''
folder: null,
clearing: false
});
this.addComputables({
dangerDescHtml: () => {
const folder = this.selectedFolder();
// return i18n('POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_1', { FOLDER: folder ? folder.fullName.replace(folder.delimiter, ' / ') : '' });
return i18n('POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_1', { FOLDER: folder ? folder.localName() : '' });
// const folder = this.folder();
// return i18n('POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_1', { FOLDER: folder.fullName.replace(folder.delimiter, ' / ') });
return i18n('POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_1', { FOLDER: this.folder()?.localName() });
}
});
decorateKoCommands(this, {
clearCommand: self => {
const folder = self.selectedFolder();
return !self.clearingProcess() && null !== folder;
}
clearCommand: self => !self.clearing()
});
}
clearCommand() {
const folderToClear = this.selectedFolder();
if (folderToClear) {
MessageUserStore.message(null);
MessagelistUserStore([]);
this.clearingProcess(true);
folderToClear.totalEmails(0);
folderToClear.unreadEmails(0);
folderToClear.hash = '';
const folder = this.folder();
if (folder) {
this.clearing(true);
Remote.request('FolderClear', iError => {
this.clearingProcess(false);
if (iError) {
this.clearingError(getNotification(iError));
} else {
MessagelistUserStore.reload(true);
this.close();
}
folder.totalEmails(0);
folder.unreadEmails(0);
MessageUserStore.message(null);
MessagelistUserStore.reload(true, true);
this.clearing(false);
iError ? alert(getNotification(iError)) : this.close();
}, {
Folder: folderToClear.fullName
Folder: folder.fullName
});
}
}
onShow(folder) {
this.clearingProcess(false);
this.selectedFolder(folder || null);
this.clearing(false);
this.folder(folder);
}
}