diff --git a/app/javascript/vue/projects/modals/move.vue b/app/javascript/vue/projects/modals/move.vue index 08eaa66ab..0b92d73a9 100644 --- a/app/javascript/vue/projects/modals/move.vue +++ b/app/javascript/vue/projects/modals/move.vue @@ -98,20 +98,19 @@ export default { if (this.query === '') { return this.foldersTree; } - return this.foldersTree.map((folder) => ( - { - folder: folder.folder, - children: folder.children.filter((child) => ( - child.folder.name.toLowerCase().includes(this.query.toLowerCase()) - )), - } - )).filter((folder) => ( - folder.folder.name.toLowerCase().includes(this.query.toLowerCase()) - || folder.children.length > 0 - )); + return this.filteredFoldersTreeHelper(this.foldersTree); }, }, methods: { + filteredFoldersTreeHelper(foldersTree) { + return foldersTree.map(({ folder, children }) => { + if (folder.name.toLowerCase().includes(this.query.toLowerCase())) { + return { folder, children }; + } + const filteredChildren = this.filteredFoldersTreeHelper(children); + return filteredChildren.length ? { folder, children: filteredChildren } : null; + }).filter(Boolean); + }, selectFolder(folderId) { this.selectedFolderId = folderId; }, diff --git a/app/javascript/vue/storage_locations/modals/assign/container_selector.vue b/app/javascript/vue/storage_locations/modals/assign/container_selector.vue index d42b661b3..c5bd98e2b 100644 --- a/app/javascript/vue/storage_locations/modals/assign/container_selector.vue +++ b/app/javascript/vue/storage_locations/modals/assign/container_selector.vue @@ -18,7 +18,7 @@ {{ i18n.t('storage_locations.index.move_modal.search_header') }} - + diff --git a/app/javascript/vue/storage_locations/modals/move.vue b/app/javascript/vue/storage_locations/modals/move.vue index 6f59b9824..0066f69ef 100644 --- a/app/javascript/vue/storage_locations/modals/move.vue +++ b/app/javascript/vue/storage_locations/modals/move.vue @@ -31,7 +31,7 @@ {{ i18n.t('storage_locations.index.move_modal.search_header') }} - +