diff --git a/src/backend/model/database/sql/SearchManager.ts b/src/backend/model/database/sql/SearchManager.ts index 89a3692c..d5f0f147 100644 --- a/src/backend/model/database/sql/SearchManager.ts +++ b/src/backend/model/database/sql/SearchManager.ts @@ -181,24 +181,26 @@ export class SearchManager implements ISearchManager { result.resultOverflow = true; } - const dirQuery = this.filterDirectoryQuery(query); - if (dirQuery !== null) { - result.directories = await connection - .getRepository(DirectoryEntity) - .createQueryBuilder('directory') - .where(this.buildWhereQuery(dirQuery, true)) - .limit(Config.Client.Search.maxDirectoryResult + 1) - .getMany(); + if (Config.Client.Search.listDirectories === true) { + const dirQuery = this.filterDirectoryQuery(query); + if (dirQuery !== null) { + result.directories = await connection + .getRepository(DirectoryEntity) + .createQueryBuilder('directory') + .where(this.buildWhereQuery(dirQuery, true)) + .limit(Config.Client.Search.maxDirectoryResult + 1) + .getMany(); - // setting previews - if (result.directories) { - for (const item of result.directories) { - await (ObjectManagers.getInstance().GalleryManager as ISQLGalleryManager) - .fillPreviewForSubDir(connection, item as DirectoryEntity); + // setting previews + if (result.directories) { + for (const item of result.directories) { + await (ObjectManagers.getInstance().GalleryManager as ISQLGalleryManager) + .fillPreviewForSubDir(connection, item as DirectoryEntity); + } + } + if (result.directories.length > Config.Client.Search.maxDirectoryResult) { + result.resultOverflow = true; } - } - if (result.directories.length > Config.Client.Search.maxDirectoryResult) { - result.resultOverflow = true; } } diff --git a/src/common/config/public/ClientConfig.ts b/src/common/config/public/ClientConfig.ts index 07d32825..a61254fe 100644 --- a/src/common/config/public/ClientConfig.ts +++ b/src/common/config/public/ClientConfig.ts @@ -29,6 +29,8 @@ export class ClientSearchConfig { AutoComplete: AutoCompleteConfig = new AutoCompleteConfig(); @ConfigProperty({type: 'unsignedInt'}) maxMediaResult: number = 10000; + @ConfigProperty({description: 'Search returns also with directories, not just media'}) + listDirectories: boolean = false; @ConfigProperty({type: 'unsignedInt'}) maxDirectoryResult: number = 200; } diff --git a/src/frontend/app/ui/settings/search/search.settings.component.html b/src/frontend/app/ui/settings/search/search.settings.component.html index 4ae55e31..4202e699 100644 --- a/src/frontend/app/ui/settings/search/search.settings.component.html +++ b/src/frontend/app/ui/settings/search/search.settings.component.html @@ -44,6 +44,13 @@ required="true"> + + diff --git a/src/frontend/translate/messages.en.xlf b/src/frontend/translate/messages.en.xlf index 0ceb9214..3d343e16 100644 --- a/src/frontend/translate/messages.en.xlf +++ b/src/frontend/translate/messages.en.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.es.xlf b/src/frontend/translate/messages.es.xlf index 5f25d61a..d1edfc34 100644 --- a/src/frontend/translate/messages.es.xlf +++ b/src/frontend/translate/messages.es.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.fr.xlf b/src/frontend/translate/messages.fr.xlf index 96637fd9..0e944894 100644 --- a/src/frontend/translate/messages.fr.xlf +++ b/src/frontend/translate/messages.fr.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.hu.xlf b/src/frontend/translate/messages.hu.xlf index 9a0e5e90..d6d96d45 100644 --- a/src/frontend/translate/messages.hu.xlf +++ b/src/frontend/translate/messages.hu.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximálisan ennyi képet és mappát listáz ki egy keresési eredménnyel + + Insert + Beillesztés + + + List directories" + Mappák listázása" + + + Search will also return with directories" + A keresési eredmény mappákat is fog tartalmazni" + diff --git a/src/frontend/translate/messages.it.xlf b/src/frontend/translate/messages.it.xlf index 0f327805..a5d16934 100644 --- a/src/frontend/translate/messages.it.xlf +++ b/src/frontend/translate/messages.it.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.pl.xlf b/src/frontend/translate/messages.pl.xlf index 9be64b37..c2015ca8 100644 --- a/src/frontend/translate/messages.pl.xlf +++ b/src/frontend/translate/messages.pl.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.ro.xlf b/src/frontend/translate/messages.ro.xlf index 569d343e..e8a56552 100644 --- a/src/frontend/translate/messages.ro.xlf +++ b/src/frontend/translate/messages.ro.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.ru.xlf b/src/frontend/translate/messages.ru.xlf index 7e411536..3f497004 100644 --- a/src/frontend/translate/messages.ru.xlf +++ b/src/frontend/translate/messages.ru.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/src/frontend/translate/messages.sv.xlf b/src/frontend/translate/messages.sv.xlf index 4d44c248..4e9c3e12 100644 --- a/src/frontend/translate/messages.sv.xlf +++ b/src/frontend/translate/messages.sv.xlf @@ -2772,6 +2772,18 @@ Maximum number of photos and videos that listed in one search result. Maximum number of photos and videos that listed in one search result. + + Insert + Insert + + + List directories" + List directories" + + + Search will also return with directories" + Search will also return with directories" + \ No newline at end of file diff --git a/test/backend/unit/model/sql/SearchManager.ts b/test/backend/unit/model/sql/SearchManager.ts index 0a3aed8e..77e0836d 100644 --- a/test/backend/unit/model/sql/SearchManager.ts +++ b/test/backend/unit/model/sql/SearchManager.ts @@ -117,12 +117,14 @@ describe('SearchManager', (sqlHelper: DBTestHelper) => { before(async () => { + Config.Client.Search.listDirectories = true; await setUpSqlDB(); }); after(async () => { await sqlHelper.clearDB(); + Config.Client.Search.listDirectories = false; }); it('should get autocomplete', async () => {