From e8e80f6ddbf0480a6433c528b419dc19730d83d0 Mon Sep 17 00:00:00 2001 From: Lost Paul <70213368+LostPaul@users.noreply.github.com> Date: Sat, 1 Jun 2024 18:04:34 +0200 Subject: [PATCH] Fix #95 Also added a setting to allow the automatic creation of folder notes for the attachment folder --- src/events/handleCreate.ts | 14 +++++++++++- src/settings/GeneralSettings.ts | 40 +++++++++++++++++++++++---------- src/settings/SettingsTab.ts | 2 ++ 3 files changed, 43 insertions(+), 13 deletions(-) diff --git a/src/events/handleCreate.ts b/src/events/handleCreate.ts index e9e027b..63e41fd 100644 --- a/src/events/handleCreate.ts +++ b/src/events/handleCreate.ts @@ -33,12 +33,24 @@ export function handleCreate(file: TAbstractFile, plugin: FolderNotesPlugin) { if (!(file instanceof TFolder)) return; if (!plugin.settings.autoCreate) return; + let openFile = true; + + const attachmentFolderPath = plugin.app.vault.getConfig('attachmentFolderPath') as string; + const cleanAttachmentFolderPath = attachmentFolderPath?.replace('./', '') || ''; + const attachmentsAreInRootFolder = attachmentFolderPath === './' || attachmentFolderPath === ''; + + if (!plugin.settings.autoCreateForAttachmentFolder) { + if (!attachmentsAreInRootFolder && cleanAttachmentFolderPath === file.name) return; + } else { + openFile = false; + } + const excludedFolder = getExcludedFolder(plugin, file.path); if (excludedFolder?.disableAutoCreate) return; const folderNote = getFolderNote(plugin, file.path); if (folderNote) return; - createFolderNote(plugin, file.path, true, undefined, true); + createFolderNote(plugin, file.path, openFile, undefined, true); addCSSClassToTitleEL(file.path, 'has-folder-note'); } \ No newline at end of file diff --git a/src/settings/GeneralSettings.ts b/src/settings/GeneralSettings.ts index a6d8728..2b67fca 100644 --- a/src/settings/GeneralSettings.ts +++ b/src/settings/GeneralSettings.ts @@ -294,18 +294,6 @@ export async function renderGeneral(settingsTab: SettingsTab) { setting3.infoEl.appendText('Requires a restart to take effect'); setting3.infoEl.style.color = settingsTab.app.vault.getConfig('accentColor') as string || '#7d5bed'; } - new Setting(containerEl) - .setName('Automatically create folder notes') - .setDesc('Automatically create a folder note when a new folder is created') - .addToggle((toggle) => - toggle - .setValue(settingsTab.plugin.settings.autoCreate) - .onChange(async (value) => { - settingsTab.plugin.settings.autoCreate = value; - await settingsTab.plugin.saveSettings(); - settingsTab.display(); - }) - ); new Setting(containerEl) .setName('Enable front matter title plugin integration') @@ -342,4 +330,32 @@ export async function renderGeneral(settingsTab: SettingsTab) { new ConfirmationModal(settingsTab.app, settingsTab.plugin).open(); }); }); + + new Setting(containerEl) + .setName('Automatically create folder notes') + .setDesc('Automatically create a folder note when a new folder is created') + .addToggle((toggle) => + toggle + .setValue(settingsTab.plugin.settings.autoCreate) + .onChange(async (value) => { + settingsTab.plugin.settings.autoCreate = value; + await settingsTab.plugin.saveSettings(); + settingsTab.display(); + }) + ); + + if (settingsTab.plugin.settings.autoCreate) { + new Setting(containerEl) + .setName('Auto create folder note for attachment folder') + .setDesc('Automatically create a folder note for the attachment folder when you attach a file to a note and the attachment folder gets created') + .addToggle((toggle) => + toggle + .setValue(settingsTab.plugin.settings.autoCreateForAttachmentFolder) + .onChange(async (value) => { + settingsTab.plugin.settings.autoCreateForAttachmentFolder = value; + await settingsTab.plugin.saveSettings(); + settingsTab.display(); + }) + ); + } } \ No newline at end of file diff --git a/src/settings/SettingsTab.ts b/src/settings/SettingsTab.ts index 0986f53..33a24ae 100644 --- a/src/settings/SettingsTab.ts +++ b/src/settings/SettingsTab.ts @@ -20,6 +20,7 @@ export interface FolderNotesSettings { hideFolderNote: boolean; templatePath: string; autoCreate: boolean; + autoCreateForAttachmentFolder: boolean; enableCollapsing: boolean; excludeFolders: (ExcludePattern | ExcludedFolder)[]; whitelistFolders: (WhitelistedFolder | WhitelistedPattern)[]; @@ -72,6 +73,7 @@ export const DEFAULT_SETTINGS: FolderNotesSettings = { hideFolderNote: true, templatePath: '', autoCreate: false, + autoCreateForAttachmentFolder: false, enableCollapsing: false, excludeFolders: [], whitelistFolders: [],