diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index 1d14603fe..20a1c5508 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -445,17 +445,19 @@ export class FolderModel extends AbstractModel { return name; }, - manageFolderSystemName: () => { + nameInfo: () => { if (this.isSystemFolder()) { translateTrigger(); let suffix = getSystemFolderName(this.type(), getKolabFolderName(this.kolabType())); if (this.name() !== suffix && 'inbox' !== suffix.toLowerCase()) { - return '(' + suffix + ')'; + return ' (' + suffix + ')'; } } return ''; }, + detailedName: () => this.name() + ' ' + this.nameInfo(), + hasSubscribedUnreadMessagesSubfolders: () => !!this.subFolders().find( folder => folder.unreadCount() | folder.hasSubscribedUnreadMessagesSubfolders() diff --git a/dev/Sieve/View/Filter.js b/dev/Sieve/View/Filter.js index 98431cf9a..c77da4c00 100644 --- a/dev/Sieve/View/Filter.js +++ b/dev/Sieve/View/Filter.js @@ -17,31 +17,29 @@ const // import { folderListOptionsBuilder } from 'Common/Folders'; /** - * @param {Array=} aDisabled - * @param {Array=} aHeaderLines - * @param {Function=} fRenameCallback * @returns {Array} */ - folderListOptionsBuilder = ( - aDisabled, - aHeaderLines, - fRenameCallback - ) => { + folderListOptionsBuilder = () => { const - aResult = [], + aResult = [{ + id: '', + name: '', + system: false, + disabled: false + }], sDeepPrefix = '\u00A0\u00A0\u00A0', showUnsubscribed = true/*!SettingsUserStore.hideUnsubscribed()*/, + disabled = rl.settings.get('sieveAllowFileintoInbox') ? '' : 'INBOX', + foldersWalk = folders => { folders.forEach(oItem => { if (showUnsubscribed || oItem.hasSubscriptions() || !oItem.exists) { aResult.push({ id: oItem.fullName, - name: - sDeepPrefix.repeat(oItem.deep) + - fRenameCallback(oItem), + name: sDeepPrefix.repeat(oItem.deep) + oItem.detailedName(), system: false, - disabled: !oItem.selectable() || aDisabled.includes(oItem.fullName) + disabled: !oItem.selectable() || disabled == oItem.fullName }); } @@ -52,18 +50,6 @@ const }; - fRenameCallback = fRenameCallback || (oItem => oItem.name()); - Array.isArray(aDisabled) || (aDisabled = []); - - Array.isArray(aHeaderLines) && aHeaderLines.forEach(line => - aResult.push({ - id: line[0], - name: line[1], - system: false, - disabled: false - }) - ); - // FolderUserStore.folderList() foldersWalk(window.Sieve.folderList() || []); @@ -82,13 +68,7 @@ export class FilterPopupView extends rl.pluginPopupView { }); this.defaultOptionsAfterRender = defaultOptionsAfterRender; - this.folderSelectList = koComputable(() => - folderListOptionsBuilder( - [rl.settings.get('sieveAllowFileintoInbox') ? '' : 'INBOX'], - [['', '']], - item => item?.localName() || '' - ) - ); + this.folderSelectList = koComputable(() => folderListOptionsBuilder()); this.selectedFolderValue.subscribe(() => this.filter().actionValueError(false)); diff --git a/dev/View/Popup/FolderCreate.js b/dev/View/Popup/FolderCreate.js index 341294329..4618ef7b8 100644 --- a/dev/View/Popup/FolderCreate.js +++ b/dev/View/Popup/FolderCreate.js @@ -28,8 +28,7 @@ export class FolderCreatePopupView extends AbstractViewPopup { folderListOptionsBuilder( [], [['', '']], - oItem => - oItem ? (oItem.isSystemFolder() ? oItem.name() + ' ' + oItem.manageFolderSystemName() : oItem.name()) : '', + oItem => oItem ? oItem.detailedName() : '', FolderUserStore.namespace ? item => !item.fullName.startsWith(FolderUserStore.namespace) : null, diff --git a/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html b/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html index 0432e202b..839f850e3 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html @@ -6,8 +6,7 @@ - - +