From 0567619408505da292abeb1e84754da02de89c4f Mon Sep 17 00:00:00 2001 From: Jan Bader Date: Sun, 11 Sep 2022 20:47:12 +0000 Subject: [PATCH] Actually call API on save --- web/src/dialogs/CreateCategory.vue | 20 ++++++++++++-------- web/src/pages/Budgeting.vue | 5 +++-- web/src/stores/budget-account.ts | 12 +----------- web/src/stores/budget.ts | 5 ++++- 4 files changed, 20 insertions(+), 22 deletions(-) diff --git a/web/src/dialogs/CreateCategory.vue b/web/src/dialogs/CreateCategory.vue index d8b309e..6909dc7 100644 --- a/web/src/dialogs/CreateCategory.vue +++ b/web/src/dialogs/CreateCategory.vue @@ -3,21 +3,22 @@ import { computed, ref } from 'vue'; import Modal from '../components/Modal.vue'; import { useAccountStore } from '../stores/budget-account'; import Input from '../components/Input.vue'; -import Checkbox from '../components/Checkbox.vue'; -import { useRouter } from 'vue-router'; -import { useBudgetsStore } from '../stores/budget'; +import { useCategoryStore } from '../stores/category'; -const router = useRouter(); -const categoryStore = null; +const categoryStore = useCategoryStore(); + +const props = defineProps<{ + categoryGroup: string +}>(); const categoryName = ref(""); const error = ref(""); function createCategory(e : {cancel:boolean}) : boolean { - error.value = ""; -// categoryStore.CreateCategory(CurrentAccount.value?.ID ?? "", accountName.value, accountOnBudget.value, accountOpen.value); + error.value = ""; + categoryStore.CreateCategory(props.categoryGroup, categoryName.value); - return true; + return true; } @@ -30,6 +31,9 @@ function createCategory(e : {cancel:boolean}) : boolean { +
+ Parent: {{ categoryGroup }} +
{{ (getGroupState(group) ? "−" : "+") + " " + group.Name }} - + ; CurrentAccountID: string | null; - Categories: Map; Months: Map>>; Available: number, OverspentLastMonth: number, @@ -31,15 +31,6 @@ interface NullDate { Time: Date; } -export interface Category { - ID: string; - Group: string; - Name: string; - AvailableLastMonth: number; - Assigned: number; - Activity: number; -} - interface BudgetedAmounts { Assigned: number, Deassigned: number, @@ -54,7 +45,6 @@ export const useAccountStore = defineStore("budget/account", { Months: new Map>>(), Available: 0, OverspentLastMonth: 0, - Categories: new Map(), Assignments: [], }), getters: { diff --git a/web/src/stores/budget.ts b/web/src/stores/budget.ts index fe94d29..a1b9019 100644 --- a/web/src/stores/budget.ts +++ b/web/src/stores/budget.ts @@ -1,6 +1,7 @@ import { defineStore } from "pinia"; import { GET, POST } from "../api"; import { useAccountStore } from "./budget-account"; +import { useCategoryStore } from "./category"; import { Budget, useSessionStore } from "./session"; interface State { @@ -62,8 +63,10 @@ export const useBudgetsStore = defineStore("budget", { ); accounts.Accounts.set(account.ID, account); } + + const categories = useCategoryStore(); for (const category of response.Categories || []) { - accounts.Categories.set(category.ID, category); + categories.Categories.set(category.ID, category); } }, },