Add initial configuration from the settings tab #68

This commit is contained in:
alexcolucci@protonmail.com 2022-02-03 14:52:50 +01:00
parent 90a54a1aa9
commit 74042670b9
4 changed files with 35 additions and 1 deletions

View File

@ -55,7 +55,7 @@ export default class ObsidianFlashcard extends Plugin {
}
private getDefaultSettings(): ISettings {
return { contextAwareMode: true, sourceSupport: false, codeHighlightSupport: false, inlineID: false, contextSeparator: " > ", deck: "Default", flashcardsTag: "card", inlineSeparator: "::", inlineSeparatorReverse: ":::", defaultAnkiTag: "obsidian" }
return { contextAwareMode: true, sourceSupport: false, codeHighlightSupport: false, inlineID: false, contextSeparator: " > ", deck: "Default", flashcardsTag: "card", inlineSeparator: "::", inlineSeparatorReverse: ":::", defaultAnkiTag: "obsidian", ankiConnectPermission: false }
}
private generateCards(activeFile: TFile) {

View File

@ -10,6 +10,35 @@ export class SettingsTab extends PluginSettingTab {
containerEl.empty();
containerEl.createEl("h1", { text: "Flashcards" });
const description = createFragment()
description.append(
"This needs to be done only one time. Open Anki and click the button to grant permission.",
createEl('br'),
'Be aware that AnkiConnect must be installed.',
)
new Setting(containerEl)
.setName("Give Permission")
.setDesc(description)
.addButton((button) => {
button.setButtonText("Grant Permission").onClick(() => {
new Anki().requestPermission().then((result) => {
if (result.permission === "granted") {
plugin.settings.ankiConnectPermission = true;
plugin.saveData(plugin.settings);
new Notice("Anki Connect permission granted");
} else {
new Notice("AnkiConnect permission not granted");
}
}).catch((error) => {
new Notice("Something went wrong, is Anki open?");
console.error(error);
});
});
});
new Setting(containerEl)
.setName("Test Anki")
.setDesc("Test that connection between Anki and Obsidian actually works.")

View File

@ -303,4 +303,8 @@ export class Anki {
return [obsidianBasic, obsidianBasicReversed, obsidianSpaced];
}
public async requestPermission() {
return await this.invoke("requestPermission", 6);
}
}

View File

@ -9,4 +9,5 @@ export interface ISettings {
inlineSeparator: string;
inlineSeparatorReverse: string;
defaultAnkiTag: string;
ankiConnectPermission: boolean;
}