mirror of
https://github.com/jxpeng98/obsidian-to-NotionNext
synced 2026-07-31 01:48:35 +08:00
reformat code and update readme file
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import {App, ButtonComponent, Modal, Setting} from "obsidian";
|
||||
import {DatabaseDetails, ObsidianSettingTab} from "./settingTabs";
|
||||
import { App, ButtonComponent, Modal, Setting } from "obsidian";
|
||||
import { DatabaseDetails, ObsidianSettingTab } from "./settingTabs";
|
||||
import ObsidianSyncNotionPlugin from "../main";
|
||||
|
||||
export class DeleteModal extends Modal {
|
||||
@@ -21,12 +21,12 @@ export class DeleteModal extends Modal {
|
||||
this.containerEl.addClass("delete-modal");
|
||||
this.titleEl.setText('Delete Database');
|
||||
|
||||
let {contentEl} = this;
|
||||
let { contentEl } = this;
|
||||
contentEl.empty();
|
||||
|
||||
const deleteDiv = contentEl.createDiv('delete-div');
|
||||
deleteDiv.createEl('h4', {text: 'Are you sure you want to delete the following database?'});
|
||||
deleteDiv.createEl('h2', {text: this.dbDetails.fullName + ' (' + this.dbDetails.abName + ', ' + this.dbDetails.format +')'});
|
||||
deleteDiv.createEl('h4', { text: 'Are you sure you want to delete the following database?' });
|
||||
deleteDiv.createEl('h2', { text: this.dbDetails.fullName + ' (' + this.dbDetails.abName + ', ' + this.dbDetails.format + ')' });
|
||||
|
||||
|
||||
// add delete button
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { App, ButtonComponent, Modal, Setting } from "obsidian";
|
||||
import { App, ButtonComponent, Setting } from "obsidian";
|
||||
import { customProperty, SettingModal } from "./settingModal";
|
||||
import ObsidianSyncNotionPlugin from "../main";
|
||||
import { DatabaseDetails, ObsidianSettingTab } from "./settingTabs";
|
||||
@@ -133,8 +133,8 @@ export class EditModal extends SettingModal {
|
||||
.onClick(async () => {
|
||||
this.dataTemp.savedTempInd = true;
|
||||
this.dataTemp.savedTemp = true;
|
||||
console.log(this.dataTemp);
|
||||
console.log(this.dataPrev);
|
||||
// console.log(this.dataTemp);
|
||||
// console.log(this.dataPrev);
|
||||
this.close();
|
||||
});
|
||||
}
|
||||
@@ -144,8 +144,8 @@ export class EditModal extends SettingModal {
|
||||
.setTooltip('Cancel')
|
||||
.setIcon('cross')
|
||||
.onClick(() => {
|
||||
console.log(this.dataTemp);
|
||||
console.log(this.dataPrev);
|
||||
// console.log(this.dataTemp);
|
||||
// console.log(this.dataPrev);
|
||||
this.close();
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
import {App, ExtraButtonComponent, Modal, Notice, Setting} from "obsidian";
|
||||
import { App, ExtraButtonComponent, Modal, Notice, Setting } from "obsidian";
|
||||
import ObsidianSyncNotionPlugin from "../main";
|
||||
import {DatabaseDetails, ObsidianSettingTab} from "./settingTabs";
|
||||
import {customProperty} from "./settingModal";
|
||||
import {i18nConfig} from "../lang/I18n";
|
||||
import { DatabaseDetails, ObsidianSettingTab } from "./settingTabs";
|
||||
import { customProperty } from "./settingModal";
|
||||
import { i18nConfig } from "../lang/I18n";
|
||||
|
||||
export class PreviewModal extends Modal {
|
||||
plugin: ObsidianSyncNotionPlugin;
|
||||
settingTab: ObsidianSettingTab;
|
||||
dbDetails: DatabaseDetails;
|
||||
|
||||
constructor(app:App, plugin: ObsidianSyncNotionPlugin, settingTab: ObsidianSettingTab, dbDetails: DatabaseDetails) {
|
||||
constructor(app: App, plugin: ObsidianSyncNotionPlugin, settingTab: ObsidianSettingTab, dbDetails: DatabaseDetails) {
|
||||
super(app);
|
||||
this.plugin = plugin;
|
||||
this.settingTab = settingTab;
|
||||
@@ -26,25 +26,25 @@ export class PreviewModal extends Modal {
|
||||
const previewEl = contentEl.createDiv('preview-content')
|
||||
|
||||
const dbFormatEl = new Setting(previewEl)
|
||||
dbFormatEl
|
||||
dbFormatEl
|
||||
.setName('Database Format')
|
||||
.addText(text => text
|
||||
.setValue(this.dbDetails.format)
|
||||
.setDisabled(true));
|
||||
.addText(text => text
|
||||
.setValue(this.dbDetails.format)
|
||||
.setDisabled(true));
|
||||
|
||||
const dbFullEl = new Setting(previewEl)
|
||||
dbFullEl
|
||||
dbFullEl
|
||||
.setName('Database Full Name')
|
||||
.addText(text => text
|
||||
.setValue(this.dbDetails.fullName)
|
||||
.setDisabled(true));
|
||||
.addText(text => text
|
||||
.setValue(this.dbDetails.fullName)
|
||||
.setDisabled(true));
|
||||
|
||||
const dbAbbrEl = new Setting(previewEl)
|
||||
dbAbbrEl
|
||||
dbAbbrEl
|
||||
.setName('Database Abbreviate Name')
|
||||
.addText(text => text
|
||||
.setValue(this.dbDetails.abName)
|
||||
.setDisabled(true));
|
||||
.addText(text => text
|
||||
.setValue(this.dbDetails.abName)
|
||||
.setDisabled(true));
|
||||
// .controlEl.createEl('p', { text: this.dbDetails.abName })
|
||||
|
||||
// Setting for toggle and copy buttons
|
||||
@@ -124,7 +124,6 @@ export class PreviewModal extends Modal {
|
||||
|
||||
const customPrv = previewEl.createDiv("custom-tabs");
|
||||
|
||||
|
||||
this.previewPropertyLine(previewEl, this.dbDetails.customProperties);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,31 +1,29 @@
|
||||
import {App, ButtonComponent, Modal, PluginSettingTab, Setting} from "obsidian";
|
||||
import {i18nConfig} from "../lang/I18n";
|
||||
import { App, ButtonComponent, PluginSettingTab, Setting } from "obsidian";
|
||||
import { i18nConfig } from "../lang/I18n";
|
||||
import ObsidianSyncNotionPlugin from "../main";
|
||||
import {SettingModal} from "./settingModal";
|
||||
import {set} from "yaml/dist/schema/yaml-1.1/set";
|
||||
import {PreviewModal} from "./PreviewModal";
|
||||
import {EditModal} from "./EditModal";
|
||||
import {DeleteModal} from "./DeleteModal";
|
||||
import { SettingModal } from "./settingModal";
|
||||
import { PreviewModal } from "./PreviewModal";
|
||||
import { EditModal } from "./EditModal";
|
||||
import { DeleteModal } from "./DeleteModal";
|
||||
|
||||
export interface PluginSettings {
|
||||
NextButton: boolean;
|
||||
notionAPINext: string;
|
||||
databaseIDNext: string;
|
||||
bannerUrl: string;
|
||||
notionUser: string;
|
||||
NotionLinkDisplay: boolean;
|
||||
proxy: string;
|
||||
GeneralButton: boolean;
|
||||
tagButton: boolean;
|
||||
customTitleButton: boolean;
|
||||
customTitleName: string;
|
||||
notionAPIGeneral: string;
|
||||
databaseIDGeneral: string;
|
||||
CustomButton: boolean;
|
||||
CustomValues: string;
|
||||
notionAPICustom: string;
|
||||
databaseIDCustom: string;
|
||||
[key: string]: any;
|
||||
NextButton: boolean;
|
||||
notionAPINext: string;
|
||||
databaseIDNext: string;
|
||||
bannerUrl: string;
|
||||
notionUser: string;
|
||||
proxy: string;
|
||||
GeneralButton: boolean;
|
||||
tagButton: boolean;
|
||||
customTitleButton: boolean;
|
||||
customTitleName: string;
|
||||
notionAPIGeneral: string;
|
||||
databaseIDGeneral: string;
|
||||
CustomButton: boolean;
|
||||
CustomValues: string;
|
||||
notionAPICustom: string;
|
||||
databaseIDCustom: string;
|
||||
[key: string]: any;
|
||||
databaseDetails: Record<string, DatabaseDetails>
|
||||
}
|
||||
|
||||
@@ -38,58 +36,54 @@ export interface DatabaseDetails {
|
||||
tagButton: boolean;
|
||||
customTitleButton: boolean;
|
||||
customTitleName: string;
|
||||
customProperties:{ customName: string, customType: string, index: number}[];
|
||||
customProperties: { customName: string, customType: string, index: number }[];
|
||||
// customValues: string;
|
||||
saved: boolean;
|
||||
}
|
||||
|
||||
export const DEFAULT_SETTINGS: PluginSettings = {
|
||||
NextButton: true,
|
||||
notionAPINext: "",
|
||||
databaseIDNext: "",
|
||||
bannerUrl: "",
|
||||
notionUser: "",
|
||||
NotionLinkDisplay: true,
|
||||
proxy: "",
|
||||
GeneralButton: true,
|
||||
tagButton: true,
|
||||
customTitleButton: false,
|
||||
customTitleName: "",
|
||||
notionAPIGeneral: "",
|
||||
databaseIDGeneral: "",
|
||||
CustomButton: false,
|
||||
CustomValues: "",
|
||||
notionAPICustom: "",
|
||||
databaseIDCustom: "",
|
||||
NextButton: true,
|
||||
notionAPINext: "",
|
||||
databaseIDNext: "",
|
||||
bannerUrl: "",
|
||||
notionUser: "",
|
||||
proxy: "",
|
||||
GeneralButton: true,
|
||||
tagButton: true,
|
||||
customTitleButton: false,
|
||||
customTitleName: "",
|
||||
notionAPIGeneral: "",
|
||||
databaseIDGeneral: "",
|
||||
CustomButton: false,
|
||||
CustomValues: "",
|
||||
notionAPICustom: "",
|
||||
databaseIDCustom: "",
|
||||
databaseDetails: {},
|
||||
};
|
||||
|
||||
|
||||
export class ObsidianSettingTab extends PluginSettingTab {
|
||||
plugin: ObsidianSyncNotionPlugin;
|
||||
plugin: ObsidianSyncNotionPlugin;
|
||||
databaseEl: HTMLDivElement;
|
||||
|
||||
constructor(app: App, plugin: ObsidianSyncNotionPlugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
constructor(app: App, plugin: ObsidianSyncNotionPlugin) {
|
||||
super(app, plugin);
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
display(): void {
|
||||
const { containerEl } = this;
|
||||
display(): void {
|
||||
const { containerEl } = this;
|
||||
|
||||
containerEl.empty();
|
||||
containerEl.empty();
|
||||
|
||||
// General Settings
|
||||
containerEl.createEl('h2', { text: i18nConfig.GeneralSetting });
|
||||
// General Settings
|
||||
containerEl.createEl('h2', { text: i18nConfig.GeneralSetting });
|
||||
|
||||
this.createSettingEl(containerEl, i18nConfig.BannerUrl, i18nConfig.BannerUrlDesc, 'text', i18nConfig.BannerUrlText, this.plugin.settings.bannerUrl, 'bannerUrl')
|
||||
this.createSettingEl(containerEl, i18nConfig.BannerUrl, i18nConfig.BannerUrlDesc, 'text', i18nConfig.BannerUrlText, this.plugin.settings.bannerUrl, 'bannerUrl')
|
||||
|
||||
this.createSettingEl(containerEl, i18nConfig.NotionUser, i18nConfig.NotionUserDesc, 'text', i18nConfig.NotionUserText, this.plugin.settings.notionUser, 'notionUser')
|
||||
|
||||
this.createSettingEl(containerEl, i18nConfig.NotionLinkDisplay, i18nConfig.NotionLinkDisplayDesc, 'toggle', i18nConfig.NotionLinkDisplay, this.plugin.settings.NotionLinkDisplay, 'NotionLinkDisplay')
|
||||
this.createSettingEl(containerEl, i18nConfig.NotionUser, i18nConfig.NotionUserDesc, 'text', i18nConfig.NotionUserText, this.plugin.settings.notionUser, 'notionUser')
|
||||
|
||||
// add new button
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName("Add New Database")
|
||||
.setDesc("Add New Database")
|
||||
@@ -129,73 +123,74 @@ export class ObsidianSettingTab extends PluginSettingTab {
|
||||
});
|
||||
|
||||
// new section to display all created database
|
||||
containerEl.createEl('h2', {text: "Database List"});
|
||||
containerEl.createEl('h2', { text: "Database List" });
|
||||
|
||||
this.databaseEl = containerEl.createDiv('database-list');
|
||||
// list all created database
|
||||
this.showDatabase();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// create a function to create a div with a style for pop over elements
|
||||
public createStyleDiv(className: string, commandValue: boolean = false) {
|
||||
return this.containerEl.createDiv(className, (div) => {
|
||||
this.updateSettingEl(div, commandValue);
|
||||
});
|
||||
}
|
||||
// update the setting display style in the setting tab
|
||||
public updateSettingEl(element: HTMLElement, commandValue: boolean) {
|
||||
element.style.borderTop = commandValue ? "1px solid var(--background-modifier-border)" : "none";
|
||||
element.style.paddingTop = commandValue ? "0.75em" : "0";
|
||||
element.style.display = commandValue ? "block" : "none";
|
||||
element.style.alignItems = "center";
|
||||
}
|
||||
// create a function to create a div with a style for pop over elements
|
||||
// public createStyleDiv(className: string, commandValue: boolean = false) {
|
||||
// return this.containerEl.createDiv(className, (div) => {
|
||||
// this.updateSettingEl(div, commandValue);
|
||||
// });
|
||||
// }
|
||||
|
||||
// function to add one setting element in the setting tab.
|
||||
public createSettingEl(containerEl: HTMLElement, name: string, desc: string, type: string, placeholder: string, holderValue: any, settingsKey: string) {
|
||||
if (type === 'password') {
|
||||
return new Setting(containerEl)
|
||||
.setName(name)
|
||||
.setDesc(desc)
|
||||
.addText((text) => {
|
||||
text.inputEl.type = type;
|
||||
return text
|
||||
.setPlaceholder(placeholder)
|
||||
.setValue(holderValue)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings[settingsKey] = value; // Update the plugin settings directly
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
});
|
||||
} else if (type === 'toggle') {
|
||||
return new Setting(containerEl)
|
||||
.setName(name)
|
||||
.setDesc(desc)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(holderValue)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings[settingsKey] = value; // Update the plugin settings directly
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.commands.updateCommand();
|
||||
})
|
||||
);
|
||||
} else if (type === 'text') {
|
||||
return new Setting(containerEl)
|
||||
.setName(name)
|
||||
.setDesc(desc)
|
||||
.addText((text) =>
|
||||
text
|
||||
.setPlaceholder(placeholder)
|
||||
.setValue(holderValue)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings[settingsKey] = value; // Update the plugin settings directly
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.commands.updateCommand();
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
// update the setting display style in the setting tab
|
||||
public updateSettingEl(element: HTMLElement, commandValue: boolean) {
|
||||
element.style.borderTop = commandValue ? "1px solid var(--background-modifier-border)" : "none";
|
||||
element.style.paddingTop = commandValue ? "0.75em" : "0";
|
||||
element.style.display = commandValue ? "block" : "none";
|
||||
element.style.alignItems = "center";
|
||||
}
|
||||
|
||||
// function to add one setting element in the setting tab.
|
||||
public createSettingEl(containerEl: HTMLElement, name: string, desc: string, type: string, placeholder: string, holderValue: any, settingsKey: string) {
|
||||
if (type === 'password') {
|
||||
return new Setting(containerEl)
|
||||
.setName(name)
|
||||
.setDesc(desc)
|
||||
.addText((text) => {
|
||||
text.inputEl.type = type;
|
||||
return text
|
||||
.setPlaceholder(placeholder)
|
||||
.setValue(holderValue)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings[settingsKey] = value; // Update the plugin settings directly
|
||||
await this.plugin.saveSettings();
|
||||
})
|
||||
});
|
||||
} else if (type === 'toggle') {
|
||||
return new Setting(containerEl)
|
||||
.setName(name)
|
||||
.setDesc(desc)
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(holderValue)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings[settingsKey] = value; // Update the plugin settings directly
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.commands.updateCommand();
|
||||
})
|
||||
);
|
||||
} else if (type === 'text') {
|
||||
return new Setting(containerEl)
|
||||
.setName(name)
|
||||
.setDesc(desc)
|
||||
.addText((text) =>
|
||||
text
|
||||
.setPlaceholder(placeholder)
|
||||
.setValue(holderValue)
|
||||
.onChange(async (value) => {
|
||||
this.plugin.settings[settingsKey] = value; // Update the plugin settings directly
|
||||
await this.plugin.saveSettings();
|
||||
await this.plugin.commands.updateCommand();
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// function to show all the database details
|
||||
showDatabase() {
|
||||
@@ -211,8 +206,8 @@ export class ObsidianSettingTab extends PluginSettingTab {
|
||||
.setDesc(dbDetails.format)
|
||||
|
||||
|
||||
// add a button for preview data
|
||||
settingEl
|
||||
// add a button for preview data
|
||||
settingEl
|
||||
.addButton((button: ButtonComponent): ButtonComponent => {
|
||||
return button
|
||||
.setTooltip("Preview Database")
|
||||
@@ -224,8 +219,8 @@ export class ObsidianSettingTab extends PluginSettingTab {
|
||||
});
|
||||
});
|
||||
|
||||
// add a button for edit data
|
||||
settingEl
|
||||
// add a button for edit data
|
||||
settingEl
|
||||
.addButton((button: ButtonComponent): ButtonComponent => {
|
||||
return button
|
||||
.setTooltip("Edit Database")
|
||||
@@ -272,11 +267,11 @@ export class ObsidianSettingTab extends PluginSettingTab {
|
||||
}
|
||||
}
|
||||
|
||||
modal.open ();
|
||||
modal.open();
|
||||
});
|
||||
});
|
||||
|
||||
settingEl
|
||||
settingEl
|
||||
.addButton((button: ButtonComponent): ButtonComponent => {
|
||||
return button
|
||||
.setTooltip("Delete Database")
|
||||
|
||||
Reference in New Issue
Block a user