Fix data format and version checking

This commit is contained in:
KadisonM 2025-02-14 02:36:20 +10:30
parent 992410e821
commit d3ce025507
3 changed files with 24 additions and 17 deletions

View file

@ -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<View>
}
@ -13,7 +16,8 @@ export const DEFAULT_DATA: HomeworkManagerData = {
settings: {
deleteFinishedTasks: true,
showTooltips: true,
autoSortForTaskQuantity: true
autoSortForTaskQuantity: true,
version: currentVersion
},
views: new Array<View>()
}
@ -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<View>();
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];

View file

@ -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();
}
}

View file

@ -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
}