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

View file

@ -1,23 +1,18 @@
<header> <header>
<a href="#" class="close" data-bind="click: close">×</a> <a href="#" class="close" data-bind="click: close">×</a>
<h3> <h3 data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="hidden: clearing"></h3>
<span data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEAR_FOLDER" data-bind="visible: !clearingProcess()"></span> <h3 data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearing"></h3>
<span data-i18n="POPUPS_CLEAR_FOLDER/TITLE_CLEARING_PROCESS" data-bind="visible: clearingProcess"></span>
</h3>
</header> </header>
<div class="modal-body"> <div class="modal-body">
<i class="fontastic" style="color:red"></i> <i class="fontastic" style="color:red"></i>
&nbsp;&nbsp; &nbsp;
<strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong> <strong data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_WARNING"></strong>
<br> <p data-bind="html: dangerDescHtml"></p>
<br>
<span data-bind="html: dangerDescHtml"></span>
<br>
<span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span> <span data-i18n="[html]POPUPS_CLEAR_FOLDER/DANGER_DESC_HTML_2"></span>
</div> </div>
<footer> <footer>
<a class="btn btn-danger" data-bind="command: clearCommand"> <a class="btn btn-danger" data-bind="command: clearCommand">
<i class="fontastic" data-bind="css: {'icon-spinner white': clearingProcess()}">🔥</i> <i class="fontastic" data-bind="css: {'icon-spinner white': clearing}">🔥</i>
<span data-i18n="GLOBAL/CLEAR"></span> <span data-i18n="GLOBAL/CLEAR"></span>
</a> </a>
</footer> </footer>