From 8e7d0ed24154434d3f9852e1da955caf7cb1d2a5 Mon Sep 17 00:00:00 2001 From: Lost Paul <70213368+LostPaul@users.noreply.github.com> Date: Mon, 20 Mar 2023 12:25:39 +0100 Subject: [PATCH] Create folder note button --- src/commands.ts | 10 ++++++- src/settings.ts | 73 +++++++++++++++++++++++++------------------------ 2 files changed, 46 insertions(+), 37 deletions(-) diff --git a/src/commands.ts b/src/commands.ts index 28089d7..0ec03af 100644 --- a/src/commands.ts +++ b/src/commands.ts @@ -1,4 +1,4 @@ -import { App, TFolder, Menu, TAbstractFile, Notice } from 'obsidian'; +import { App, TFolder, Menu, TAbstractFile, Notice, Platform } from 'obsidian'; import FolderNotesPlugin from './main'; import { ExcludedFolder } from './settings'; export class Commands { @@ -34,6 +34,14 @@ export class Commands { new Notice('Successfully excluded folder from folder notes'); }); }); + + menu.addItem((item) => { + item.setTitle('Create folder note') + .setIcon('plus') + .onClick(() => { + this.plugin.createFolderNote(file.path, true); + }); + }); })); } } diff --git a/src/settings.ts b/src/settings.ts index 6d081dc..d24bb1d 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,18 +1,18 @@ -import { App, PluginSettingTab, Setting } from 'obsidian'; +import { App, Platform, PluginSettingTab, Setting } from 'obsidian'; import FolderNotesPlugin from './main'; import { FolderSuggest } from './suggesters/FolderSuggester'; import ExcludedFolderSettings from './modals/exludeFolderSettings'; import { TemplateSuggest } from './suggesters/templateSuggester'; // import ConfirmationModal from "./modals/confirmCreation"; export interface FolderNotesSettings { - syncFolderName: boolean; - ctrlKey: boolean; - altKey: boolean; - hideFolderNote: boolean; - templatePath: string; - autoCreate: boolean; - enableCollapsing: boolean; - excludeFolders: ExcludedFolder[]; + syncFolderName: boolean; + ctrlKey: boolean; + altKey: boolean; + hideFolderNote: boolean; + templatePath: string; + autoCreate: boolean; + enableCollapsing: boolean; + excludeFolders: ExcludedFolder[]; } export const DEFAULT_SETTINGS: FolderNotesSettings = { @@ -92,22 +92,23 @@ export class SettingsTab extends PluginSettingTab { this.display(); }) ); - new Setting(containerEl) - .setName('Key for creating folder note') - .setDesc('The key combination to create a folder note') - .addDropdown((dropdown) => { - dropdown - .addOption('ctrl', 'Ctrl + Click') - .addOption('alt', 'Alt + Click') - .setValue(this.plugin.settings.ctrlKey ? 'ctrl' : 'alt') - .onChange(async (value) => { - this.plugin.settings.ctrlKey = value === 'ctrl'; - this.plugin.settings.altKey = value === 'alt'; - await this.plugin.saveSettings(); - this.display(); - }); - }); - + if (Platform.isDesktopApp) { + new Setting(containerEl) + .setName('Key for creating folder note') + .setDesc('The key combination to create a folder note') + .addDropdown((dropdown) => { + dropdown + .addOption('ctrl', 'Ctrl + Click') + .addOption('alt', 'Alt + Click') + .setValue(this.plugin.settings.ctrlKey ? 'ctrl' : 'alt') + .onChange(async (value) => { + this.plugin.settings.ctrlKey = value === 'ctrl'; + this.plugin.settings.altKey = value === 'alt'; + await this.plugin.saveSettings(); + this.display(); + }); + }); + } new Setting(containerEl) .setName('Template path') .setDesc('The path to the template file') @@ -129,18 +130,18 @@ export class SettingsTab extends PluginSettingTab { // If you want to try it yourself make a pr // The issue was that it only used the first folder for all of the other folder notes /* - new Setting(containerEl) - .setName('Create folder note for every folder') - .setDesc('Create a folder note for every folder in the vault') - .addButton((cb) => { - cb.setIcon('plus'); + new Setting(containerEl) + .setName('Create folder note for every folder') + .setDesc('Create a folder note for every folder in the vault') + .addButton((cb) => { + cb.setIcon('plus'); - cb.setTooltip('Create folder notes'); - cb.onClick(async () => { - new ConfirmationModal(this.app, this.plugin).open(); - }); - }); - */ + cb.setTooltip('Create folder notes'); + cb.onClick(async () => { + new ConfirmationModal(this.app, this.plugin).open(); + }); + }); + */ new Setting(containerEl)