mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-05 07:27:04 +03:00
Prepare for #1793
This commit is contained in:
parent
28a8e3c157
commit
6f2f40b983
5 changed files with 138 additions and 20 deletions
75
plugins/send-save-in/savein.js
Normal file
75
plugins/send-save-in/savein.js
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
(rl => {
|
||||
const templateId = 'PopupsCompose',
|
||||
folderListOptionsBuilder = () => {
|
||||
const
|
||||
aResult = [{
|
||||
id: '',
|
||||
name: '',
|
||||
system: false,
|
||||
disabled: false
|
||||
}],
|
||||
sDeepPrefix = '\u00A0\u00A0\u00A0',
|
||||
showUnsubscribed = true/*!SettingsUserStore.hideUnsubscribed()*/,
|
||||
|
||||
foldersWalk = folders => {
|
||||
folders.forEach(oItem => {
|
||||
if (showUnsubscribed || oItem.hasSubscriptions() || !oItem.exists) {
|
||||
aResult.push({
|
||||
id: oItem.fullName,
|
||||
name: sDeepPrefix.repeat(oItem.deep) + oItem.detailedName(),
|
||||
system: false,
|
||||
disabled: !oItem.selectable()
|
||||
});
|
||||
}
|
||||
|
||||
if (oItem.subFolders.length) {
|
||||
foldersWalk(oItem.subFolders());
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
// FolderUserStore.folderList()
|
||||
foldersWalk(rl.app.folderList() || []);
|
||||
|
||||
return aResult;
|
||||
};
|
||||
|
||||
let oldSentFolderFn;
|
||||
|
||||
addEventListener('rl-view-model.create', e => {
|
||||
if (templateId === e.detail.viewModelTemplateID) {
|
||||
const view = e.detail; // ComposePopupView
|
||||
|
||||
view.sentFolderValue = ko.observable('');
|
||||
view.sentFolderSelectList = ko.computed(folderListOptionsBuilder, {'pure':true});
|
||||
view.defaultOptionsAfterRender = (domItem, item) =>
|
||||
item && undefined !== item.disabled && domItem?.classList.toggle('disabled', domItem.disabled = item.disabled);
|
||||
|
||||
oldSentFolderFn = view.sentFolder.bind(view);
|
||||
view.sentFolder = () => view.sentFolderValue() || oldSentFolderFn();
|
||||
|
||||
document.getElementById(templateId).content.querySelector('.b-header tbody').append(Element.fromHTML(`
|
||||
<tr>
|
||||
<td>Store in</td>
|
||||
<td>
|
||||
<select class="span3" data-bind="options: sentFolderSelectList, value: sentFolderValue,
|
||||
optionsText: 'name', optionsValue: 'id', optionsAfterRender: defaultOptionsAfterRender"></select>
|
||||
(When send, store a copy of the message in the selected folder)
|
||||
</td>
|
||||
</tr>`));
|
||||
|
||||
view.currentIdentity.subscribe(()=>{
|
||||
view.sentFolderValue(oldSentFolderFn());
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
addEventListener('rl-vm-visible', e => {
|
||||
if (templateId === e.detail.viewModelTemplateID) {
|
||||
const view = e.detail; // ComposePopupView
|
||||
view.sentFolderValue(oldSentFolderFn());
|
||||
}
|
||||
});
|
||||
|
||||
})(window.rl);
|
||||
Loading…
Add table
Add a link
Reference in a new issue