snappymail/dev/View/Popup/FolderClear.js

56 lines
1.4 KiB
JavaScript
Raw Normal View History

import { addObservablesTo, addComputablesTo } from 'External/ko';
2019-07-05 03:19:24 +08:00
import { i18n, getNotification } from 'Common/Translator';
import { MessageUserStore } from 'Stores/User/Message';
import { MessagelistUserStore } from 'Stores/User/Messagelist';
2014-08-25 15:10:51 +08:00
import Remote from 'Remote/User/Fetch';
import { decorateKoCommands } from 'Knoin/Knoin';
import { AbstractViewPopup } from 'Knoin/AbstractViews';
2022-02-24 21:01:41 +08:00
export class FolderClearPopupView extends AbstractViewPopup {
constructor() {
super('FolderClear');
2014-08-21 23:08:34 +08:00
addObservablesTo(this, {
2022-09-21 15:51:52 +08:00
folder: null,
clearing: false
});
2014-08-21 23:08:34 +08:00
addComputablesTo(this, {
2022-02-21 22:36:34 +08:00
dangerDescHtml: () => {
2022-09-21 15:51:52 +08:00
// 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() });
2022-02-21 22:36:34 +08:00
}
});
2016-09-10 06:38:16 +08:00
decorateKoCommands(this, {
2022-09-21 15:51:52 +08:00
clearCommand: self => !self.clearing()
});
}
2014-08-21 23:08:34 +08:00
2016-09-10 06:38:16 +08:00
clearCommand() {
2022-09-21 15:51:52 +08:00
const folder = this.folder();
if (folder) {
this.clearing(true);
Remote.request('FolderClear', iError => {
2022-09-21 15:51:52 +08:00
folder.totalEmails(0);
folder.unreadEmails(0);
MessageUserStore.message(null);
MessagelistUserStore.reload(true, true);
this.clearing(false);
iError ? alert(getNotification(iError)) : this.close();
}, {
folder: folder.fullName
});
2016-09-10 06:38:16 +08:00
}
}
onShow(folder) {
2022-09-21 15:51:52 +08:00
this.clearing(false);
this.folder(folder);
2016-06-30 08:02:45 +08:00
}
}