mirror of
https://github.com/the-djmaze/snappymail.git
synced 2024-09-20 15:45:55 +08:00
59 lines
1.5 KiB
JavaScript
59 lines
1.5 KiB
JavaScript
import { AbstractViewPopup } from 'Knoin/AbstractViews';
|
|
import { addObservablesTo, koComputable } from 'External/ko';
|
|
import Remote from 'Remote/User/Fetch';
|
|
import { FolderUserStore } from 'Stores/User/Folder';
|
|
|
|
import { defaultOptionsAfterRender } from 'Common/Utils';
|
|
import { folderListOptionsBuilder } from 'Common/Folders';
|
|
|
|
export class FolderPopupView extends AbstractViewPopup {
|
|
constructor() {
|
|
super('Folder');
|
|
addObservablesTo(this, {
|
|
folder: null, // FolderModel
|
|
parentFolder: '',
|
|
name: '',
|
|
editing: false
|
|
});
|
|
this.ACLAllowed = FolderUserStore.hasCapability('ACL');
|
|
this.ACL = ko.observableArray();
|
|
|
|
this.parentFolderSelectList = koComputable(() =>
|
|
folderListOptionsBuilder(
|
|
[],
|
|
[['', '']],
|
|
oItem => oItem ? oItem.detailedName() : '',
|
|
item => !item.subFolders.allow
|
|
|| (FolderUserStore.namespace && !item.fullName.startsWith(FolderUserStore.namespace))
|
|
)
|
|
);
|
|
|
|
this.defaultOptionsAfterRender = defaultOptionsAfterRender;
|
|
}
|
|
|
|
afterHide() {
|
|
this.editing(false);
|
|
}
|
|
|
|
submitForm(form) {
|
|
this.folder().rename(this.name(), this.parentFolder());
|
|
console.dir({form});
|
|
this.close();
|
|
}
|
|
|
|
beforeShow(folder) {
|
|
this.ACL([]);
|
|
this.ACLAllowed && Remote.request('FolderACL', (iError, data) => {
|
|
if (!iError && data.Result) {
|
|
this.ACL(Object.values(data.Result));
|
|
}
|
|
}, {
|
|
folder: folder.fullName
|
|
});
|
|
this.editing(!folder.type() && folder.exists && folder.selectable());
|
|
this.name(folder.name()),
|
|
this.parentFolder(folder.parentName);
|
|
this.folder(folder);
|
|
}
|
|
}
|