diff --git a/dev/Common/Folders.js b/dev/Common/Folders.js index 6d53c6332..97bef2249 100644 --- a/dev/Common/Folders.js +++ b/dev/Common/Folders.js @@ -50,15 +50,14 @@ folderListOptionsBuilder = ( aDisabled, aHeaderLines, fRenameCallback, - fDisableCallback, - bNoSelectSelectable, - aList = FolderUserStore.folderList() + fDisableCallback ) => { const aResult = [], sDeepPrefix = '\u00A0\u00A0\u00A0', // FolderSystemPopupView should always be true showUnsubscribed = fRenameCallback ? !SettingsUserStore.hideUnsubscribed() : true, + isDisabled = fDisableCallback || (item => !item.selectable() || aDisabled.includes(item.fullName)), foldersWalk = folders => { folders.forEach(oItem => { @@ -69,10 +68,7 @@ folderListOptionsBuilder = ( sDeepPrefix.repeat(oItem.deep) + fRenameCallback(oItem), system: false, - disabled: !bNoSelectSelectable && ( - !oItem.selectable() || - aDisabled.includes(oItem.fullName) || - fDisableCallback(oItem)) + disabled: isDisabled(oItem) }); } foldersWalk(oItem.subFolders()); @@ -93,7 +89,7 @@ folderListOptionsBuilder = ( }) ); - foldersWalk(aList); + foldersWalk(FolderUserStore.folderList()); return aResult; }, diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index 4403caa25..c62217b91 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -548,6 +548,8 @@ export class FolderModel extends AbstractModel { folder.isSubscribed(attr('\\subscribed')); folder.exists = !attr('\\nonexistent'); + folder.subFolders.allow = !attr('\\noinferiors'); +// folder.subFolders.exist = attr('\\haschildren') || !attr('\\hasnochildren'); folder.selectable(folder.exists && !attr('\\noselect')); type && 'mail' != type && folder.kolabType(type); diff --git a/dev/View/Popup/FolderCreate.js b/dev/View/Popup/FolderCreate.js index 6b33d5a44..a1cb4e370 100644 --- a/dev/View/Popup/FolderCreate.js +++ b/dev/View/Popup/FolderCreate.js @@ -29,10 +29,8 @@ export class FolderCreatePopupView extends AbstractViewPopup { [], [['', '']], oItem => oItem ? oItem.detailedName() : '', - FolderUserStore.namespace - ? item => !item.fullName.startsWith(FolderUserStore.namespace) - : null, - true + item => !item.subFolders.allow + || (FolderUserStore.namespace && !item.fullName.startsWith(FolderUserStore.namespace)) ) );