From d65de563230eae8c24577bd36fcc95b670e778f4 Mon Sep 17 00:00:00 2001 From: ltctceplrm <14954927+ltctceplrm@users.noreply.github.com> Date: Fri, 28 Nov 2025 15:49:31 +0100 Subject: [PATCH] Fixed bug with file and folder paths selecting --- src/settings/Settings.ts | 85 ++++++++++++++++++++++++++++++++-------- 1 file changed, 68 insertions(+), 17 deletions(-) diff --git a/src/settings/Settings.ts b/src/settings/Settings.ts index 000335a..7a0bac5 100644 --- a/src/settings/Settings.ts +++ b/src/settings/Settings.ts @@ -329,7 +329,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Image folder') .setDesc('Where downloaded images should be stored.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.imageFolder) .setValue(this.plugin.settings.imageFolder) .onChange(data => { @@ -387,7 +390,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Movie folder') .setDesc('Where newly imported movies should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.movieFolder) .setValue(this.plugin.settings.movieFolder) .onChange(data => { @@ -400,7 +406,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Series folder') .setDesc('Where newly imported series should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.seriesFolder) .setValue(this.plugin.settings.seriesFolder) .onChange(data => { @@ -413,7 +422,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Comic and manga folder') .setDesc('Where newly imported comics and manga should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.mangaFolder) .setValue(this.plugin.settings.mangaFolder) .onChange(data => { @@ -426,7 +438,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Game folder') .setDesc('Where newly imported games should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.gameFolder) .setValue(this.plugin.settings.gameFolder) .onChange(data => { @@ -439,7 +454,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Wiki folder') .setDesc('Where newly imported wiki articles should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.wikiFolder) .setValue(this.plugin.settings.wikiFolder) .onChange(data => { @@ -452,7 +470,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Music folder') .setDesc('Where newly imported music should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.musicReleaseFolder) .setValue(this.plugin.settings.musicReleaseFolder) .onChange(data => { @@ -465,7 +486,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Board game folder') .setDesc('Where newly imported board games should be places.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.boardgameFolder) .setValue(this.plugin.settings.boardgameFolder) .onChange(data => { @@ -477,7 +501,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Book folder') .setDesc('Where newly imported books should be placed.') .addSearch(cb => { - new FolderSuggest(this.app, cb.inputEl); + const suggester = new FolderSuggest(this.app, cb.inputEl); + suggester.onSelect((folder, evt) => { + cb.setValue(folder.path); + }); cb.setPlaceholder(DEFAULT_SETTINGS.bookFolder) .setValue(this.plugin.settings.bookFolder) .onChange(data => { @@ -494,7 +521,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Movie template') .setDesc('Template file to be used when creating a new note for a movie.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: movieTemplate.md') .setValue(this.plugin.settings.movieTemplate) .onChange(data => { @@ -507,7 +537,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Series template') .setDesc('Template file to be used when creating a new note for a series.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: seriesTemplate.md') .setValue(this.plugin.settings.seriesTemplate) .onChange(data => { @@ -520,7 +553,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Manga and Comics template') .setDesc('Template file to be used when creating a new note for a manga or a comic.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: mangaTemplate.md') .setValue(this.plugin.settings.mangaTemplate) .onChange(data => { @@ -533,7 +569,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Game template') .setDesc('Template file to be used when creating a new note for a game.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: gameTemplate.md') .setValue(this.plugin.settings.gameTemplate) .onChange(data => { @@ -546,7 +585,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Wiki template') .setDesc('Template file to be used when creating a new note for a wiki entry.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: wikiTemplate.md') .setValue(this.plugin.settings.wikiTemplate) .onChange(data => { @@ -559,7 +601,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Music release template') .setDesc('Template file to be used when creating a new note for a music release.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: musicReleaseTemplate.md') .setValue(this.plugin.settings.musicReleaseTemplate) .onChange(data => { @@ -572,7 +617,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Board game template') .setDesc('Template file to be used when creating a new note for a boardgame.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: boardgameTemplate.md') .setValue(this.plugin.settings.boardgameTemplate) .onChange(data => { @@ -585,7 +633,10 @@ export class MediaDbSettingTab extends PluginSettingTab { .setName('Book template') .setDesc('Template file to be used when creating a new note for a book.') .addSearch(cb => { - new FileSuggest(this.app, cb.inputEl); + const suggester = new FileSuggest(this.app, cb.inputEl); + suggester.onSelect((file, evt) => { + cb.setValue(file.path); + }); cb.setPlaceholder('Example: bookTemplate.md') .setValue(this.plugin.settings.bookTemplate) .onChange(data => {