This commit is contained in:
the-djmaze 2022-10-07 12:06:03 +02:00
parent f488212c3d
commit 7a7b11bdeb
3 changed files with 13 additions and 4 deletions

View file

@ -13,8 +13,6 @@ import { FolderUserStore } from 'Stores/User/Folder';
import { MessagelistUserStore } from 'Stores/User/Messagelist'; import { MessagelistUserStore } from 'Stores/User/Messagelist';
import { SettingsUserStore } from 'Stores/User/Settings'; import { SettingsUserStore } from 'Stores/User/Settings';
import ko from 'ko';
import { sortFolders } from 'Common/Folders'; import { sortFolders } from 'Common/Folders';
import { i18n, trigger as translatorTrigger } from 'Common/Translator'; import { i18n, trigger as translatorTrigger } from 'Common/Translator';
@ -91,6 +89,8 @@ export const
Local.set(ClientSideKeyNameExpandedFolders, aExpandedList); Local.set(ClientSideKeyNameExpandedFolders, aExpandedList);
}, },
foldersFilter = ko.observable(''),
/** /**
* @param {?Function} fCallback * @param {?Function} fCallback
*/ */
@ -385,7 +385,11 @@ export class FolderModel extends AbstractModel {
*/ */
visible: () => { visible: () => {
const selectable = folder.canBeSelected(), const selectable = folder.canBeSelected(),
visible = (folder.isSubscribed() | !SettingsUserStore.hideUnsubscribed()) && selectable; name = folder.name(),
filter = foldersFilter(),
visible = (folder.isSubscribed() | !SettingsUserStore.hideUnsubscribed())
&& selectable
&& (!filter || name.toLowerCase().includes(filter.toLowerCase()));
return folder.hasVisibleSubfolders() | visible; return folder.hasVisibleSubfolders() | visible;
}, },

View file

@ -22,7 +22,7 @@ import { ComposePopupView } from 'View/Popup/Compose';
import { moveMessagesToFolder } from 'Common/Folders'; import { moveMessagesToFolder } from 'Common/Folders';
import { setExpandedFolder } from 'Model/FolderCollection'; import { setExpandedFolder, foldersFilter } from 'Model/FolderCollection';
export class MailFolderList extends AbstractViewLeft { export class MailFolderList extends AbstractViewLeft {
constructor() { constructor() {
@ -40,7 +40,11 @@ export class MailFolderList extends AbstractViewLeft {
this.allowContacts = AppUserStore.allowContacts(); this.allowContacts = AppUserStore.allowContacts();
this.foldersFilter = foldersFilter;
addComputablesTo(this, { addComputablesTo(this, {
foldersFilterVisible: () => 20 < FolderUserStore.folderList().CountRec,
folderListVisible: () => { folderListVisible: () => {
let multiple = false, let multiple = false,
inbox, visible, inbox, visible,

View file

@ -20,6 +20,7 @@
</li> </li>
</ul> </ul>
<hr> <hr>
<input type="search" style="width:100%" data-bind="textInput: foldersFilter, visible: foldersFilterVisible" data-i18n="[placeholder]GLOBAL/SEARCH">
<ul class="b-folders-user" data-bind="template: { name: 'MailFolderListItem', foreach: folderListVisible }"></ul> <ul class="b-folders-user" data-bind="template: { name: 'MailFolderListItem', foreach: folderListVisible }"></ul>
<div class="move-action-content-wrapper" data-bind="visible: moveAction"></div> <div class="move-action-content-wrapper" data-bind="visible: moveAction"></div>
</div> </div>