mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-11-12 00:01:46 +08:00
Support \noinferiors to disallow creating subfolders
This commit is contained in:
parent
d74407f36b
commit
5cdbba8da0
3 changed files with 8 additions and 12 deletions
|
|
@ -50,15 +50,14 @@ folderListOptionsBuilder = (
|
||||||
aDisabled,
|
aDisabled,
|
||||||
aHeaderLines,
|
aHeaderLines,
|
||||||
fRenameCallback,
|
fRenameCallback,
|
||||||
fDisableCallback,
|
fDisableCallback
|
||||||
bNoSelectSelectable,
|
|
||||||
aList = FolderUserStore.folderList()
|
|
||||||
) => {
|
) => {
|
||||||
const
|
const
|
||||||
aResult = [],
|
aResult = [],
|
||||||
sDeepPrefix = '\u00A0\u00A0\u00A0',
|
sDeepPrefix = '\u00A0\u00A0\u00A0',
|
||||||
// FolderSystemPopupView should always be true
|
// FolderSystemPopupView should always be true
|
||||||
showUnsubscribed = fRenameCallback ? !SettingsUserStore.hideUnsubscribed() : true,
|
showUnsubscribed = fRenameCallback ? !SettingsUserStore.hideUnsubscribed() : true,
|
||||||
|
isDisabled = fDisableCallback || (item => !item.selectable() || aDisabled.includes(item.fullName)),
|
||||||
|
|
||||||
foldersWalk = folders => {
|
foldersWalk = folders => {
|
||||||
folders.forEach(oItem => {
|
folders.forEach(oItem => {
|
||||||
|
|
@ -69,10 +68,7 @@ folderListOptionsBuilder = (
|
||||||
sDeepPrefix.repeat(oItem.deep) +
|
sDeepPrefix.repeat(oItem.deep) +
|
||||||
fRenameCallback(oItem),
|
fRenameCallback(oItem),
|
||||||
system: false,
|
system: false,
|
||||||
disabled: !bNoSelectSelectable && (
|
disabled: isDisabled(oItem)
|
||||||
!oItem.selectable() ||
|
|
||||||
aDisabled.includes(oItem.fullName) ||
|
|
||||||
fDisableCallback(oItem))
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
foldersWalk(oItem.subFolders());
|
foldersWalk(oItem.subFolders());
|
||||||
|
|
@ -93,7 +89,7 @@ folderListOptionsBuilder = (
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
||||||
foldersWalk(aList);
|
foldersWalk(FolderUserStore.folderList());
|
||||||
|
|
||||||
return aResult;
|
return aResult;
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -548,6 +548,8 @@ export class FolderModel extends AbstractModel {
|
||||||
|
|
||||||
folder.isSubscribed(attr('\\subscribed'));
|
folder.isSubscribed(attr('\\subscribed'));
|
||||||
folder.exists = !attr('\\nonexistent');
|
folder.exists = !attr('\\nonexistent');
|
||||||
|
folder.subFolders.allow = !attr('\\noinferiors');
|
||||||
|
// folder.subFolders.exist = attr('\\haschildren') || !attr('\\hasnochildren');
|
||||||
folder.selectable(folder.exists && !attr('\\noselect'));
|
folder.selectable(folder.exists && !attr('\\noselect'));
|
||||||
|
|
||||||
type && 'mail' != type && folder.kolabType(type);
|
type && 'mail' != type && folder.kolabType(type);
|
||||||
|
|
|
||||||
|
|
@ -29,10 +29,8 @@ export class FolderCreatePopupView extends AbstractViewPopup {
|
||||||
[],
|
[],
|
||||||
[['', '']],
|
[['', '']],
|
||||||
oItem => oItem ? oItem.detailedName() : '',
|
oItem => oItem ? oItem.detailedName() : '',
|
||||||
FolderUserStore.namespace
|
item => !item.subFolders.allow
|
||||||
? item => !item.fullName.startsWith(FolderUserStore.namespace)
|
|| (FolderUserStore.namespace && !item.fullName.startsWith(FolderUserStore.namespace))
|
||||||
: null,
|
|
||||||
true
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue