From d3ce0255072dddecfaacfe59fdfe2a39c1ccc41b Mon Sep 17 00:00:00 2001 From: KadisonM <134670047+kadisonm@users.noreply.github.com> Date: Fri, 14 Feb 2025 02:36:20 +1030 Subject: [PATCH] Fix data format and version checking --- src/data-editor.ts | 25 +++++++++++++++++++++++-- src/main.ts | 3 +-- src/update.ts | 13 ------------- 3 files changed, 24 insertions(+), 17 deletions(-) delete mode 100644 src/update.ts diff --git a/src/data-editor.ts b/src/data-editor.ts index 9fbdfe7..a0e9d60 100644 --- a/src/data-editor.ts +++ b/src/data-editor.ts @@ -1,10 +1,13 @@ import HomeworkManagerPlugin from './main'; +const currentVersion = "1.1.1" + export interface HomeworkManagerData { settings: { deleteFinishedTasks: boolean; showTooltips: boolean; autoSortForTaskQuantity: boolean; + version: string; } views: Array } @@ -13,7 +16,8 @@ export const DEFAULT_DATA: HomeworkManagerData = { settings: { deleteFinishedTasks: true, showTooltips: true, - autoSortForTaskQuantity: true + autoSortForTaskQuantity: true, + version: currentVersion }, views: new Array() } @@ -45,9 +49,11 @@ export default class DataEditor { // Make sure new updates are reflected formatData(data: any) { const newData = Object.assign({}, DEFAULT_DATA); - newData.settings = data.settings; + newData.settings = { ...DEFAULT_DATA.settings, ...data.settings} newData.views = new Array(); + console.log(newData.settings) + const assign = (assignTo: View | Task | Subject, object: any) => { let filteredObject: any = {}; @@ -124,6 +130,21 @@ export default class DataEditor { return newData; } + async checkPluginUpdated() { + const lastVersion = this.plugin.data.settings.version.split('.').slice(0, 2).join('.'); + const current = currentVersion.split('.').slice(0, 2).join('.'); + + if (lastVersion == current) { + return false + } + + this.plugin.data.settings.version = currentVersion + + await this.plugin.writeData(); + + return true + } + async addSubject(viewIndex: number, subjectName: string) { const view = this.plugin.data.views[viewIndex]; diff --git a/src/main.ts b/src/main.ts index bab842b..f6c19d2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,7 +2,6 @@ import { Plugin } from 'obsidian'; import { SettingsTab, defaultLogo } from "./settings"; import { HomeworkManagerData } from './data-editor'; import DataEditor from './data-editor'; -import isUpdated from './update'; import UpdateModal from './modals/update-modal'; import HomeworkModal from './modals/homework-modal' @@ -41,7 +40,7 @@ export default class HomeworkManagerPlugin extends Plugin { } }); - if (await isUpdated(this.app)) { + if (await this.dataEditor.checkPluginUpdated()) { new UpdateModal(this.app, this).open(); } } diff --git a/src/update.ts b/src/update.ts deleted file mode 100644 index 4a51234..0000000 --- a/src/update.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { App, TFile, normalizePath } from 'obsidian'; - -const path = ".obsidian/plugins/homework-manager/temp" - -export default async function asyncisUpdated(app: App) { - let file = await app.vault.adapter.exists(normalizePath(path)); - - if (file) - return false - - await app.vault.create(path, "") - return true -} \ No newline at end of file