mirror of
https://github.com/kadisonm/obsidian-homework-plugin.git
synced 2026-07-22 08:40:33 +00:00
Fix data format and version checking
This commit is contained in:
parent
992410e821
commit
d3ce025507
3 changed files with 24 additions and 17 deletions
|
|
@ -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];
|
||||
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
Loading…
Reference in a new issue