diff --git a/src/lib/components/TagDropdownWrapper.js b/src/lib/components/TagDropdownWrapper.js index 78961a3..2ad3d01 100644 --- a/src/lib/components/TagDropdownWrapper.js +++ b/src/lib/components/TagDropdownWrapper.js @@ -108,7 +108,8 @@ class TagDropdownWrapper extends BaseComponent { async #onAddToNewClicked() { const profile = new MaintenanceProfile(crypto.randomUUID(), { name: 'Temporary Profile (' + (new Date().toISOString()) + ')', - tags: [this.#tagName] + tags: [this.#tagName], + temporary: true, }); await profile.save(); diff --git a/src/lib/extension/entities/MaintenanceProfile.ts b/src/lib/extension/entities/MaintenanceProfile.ts index ac14352..f4b68c9 100644 --- a/src/lib/extension/entities/MaintenanceProfile.ts +++ b/src/lib/extension/entities/MaintenanceProfile.ts @@ -4,6 +4,7 @@ import EntitiesController from "$lib/extension/EntitiesController.ts"; export interface MaintenanceProfileSettings { name: string; tags: string[]; + temporary: boolean; } /** @@ -17,9 +18,18 @@ export default class MaintenanceProfile extends StorageEntity) { super(id, { name: settings.name || '', - tags: settings.tags || [] + tags: settings.tags || [], + temporary: settings.temporary ?? false }); } + async save(): Promise { + if (this.settings.temporary && !this.settings.tags?.length) { + return this.delete(); + } + + return super.save(); + } + public static readonly _entityName = "profiles"; }