From 4fbced2c700935dfaccb2bc03a6174630e0d0f90 Mon Sep 17 00:00:00 2001 From: Sirttas Date: Sat, 23 May 2026 14:29:25 +0200 Subject: [PATCH] ledger balance --- src/generated/mammon/api.ts | 98 ++++++++++++++++++++++++++++++++ src/ledger/CreateLedgerModal.vue | 2 +- src/pages/Characters.vue | 3 +- src/pages/ledger/ListLedgers.vue | 10 +++- src/sidebar/Sidebar.vue | 26 ++++----- 5 files changed, 121 insertions(+), 18 deletions(-) diff --git a/src/generated/mammon/api.ts b/src/generated/mammon/api.ts index 2136ff4..c47e33b 100644 --- a/src/generated/mammon/api.ts +++ b/src/generated/mammon/api.ts @@ -26,6 +26,7 @@ import { BASE_PATH, COLLECTION_FORMATS, BaseAPI, RequiredError, operationServerM export interface CombinedLedgerResponse extends LedgerResponse { 'ledgerId': string; 'name': string; + 'balance': number; 'memberLedgerIds': Array; 'type'?: CombinedLedgerResponseTypeEnum; } @@ -62,6 +63,7 @@ export type LedgerResponseTypeEnum = typeof LedgerResponseTypeEnum[keyof typeof export interface MainLedgerResponse extends LedgerResponse { 'ledgerId': string; 'name': string; + 'balance': number; 'type'?: MainLedgerResponseTypeEnum; } @@ -79,6 +81,102 @@ export interface UpdateMainLedgerRequest { 'name': string; } +/** + * ActivityControllerApi - axios parameter creator + */ +export const ActivityControllerApiAxiosParamCreator = function (configuration?: Configuration) { + return { + /** + * + * @param {number} characterId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + fetchNewActivitiesForCharacter: async (characterId: number, options: RawAxiosRequestConfig = {}): Promise => { + // verify required parameter 'characterId' is not null or undefined + assertParamExists('fetchNewActivitiesForCharacter', 'characterId', characterId) + const localVarPath = `/activity/fetch/{characterId}` + .replace('{characterId}', encodeURIComponent(String(characterId))); + // use dummy base URL string because the URL constructor only accepts absolute URLs. + const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL); + let baseOptions; + if (configuration) { + baseOptions = configuration.baseOptions; + } + + const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options}; + const localVarHeaderParameter = {} as any; + const localVarQueryParameter = {} as any; + + + setSearchParams(localVarUrlObj, localVarQueryParameter); + let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {}; + localVarRequestOptions.headers = {...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers}; + + return { + url: toPathString(localVarUrlObj), + options: localVarRequestOptions, + }; + }, + } +}; + +/** + * ActivityControllerApi - functional programming interface + */ +export const ActivityControllerApiFp = function(configuration?: Configuration) { + const localVarAxiosParamCreator = ActivityControllerApiAxiosParamCreator(configuration) + return { + /** + * + * @param {number} characterId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + async fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise> { + const localVarAxiosArgs = await localVarAxiosParamCreator.fetchNewActivitiesForCharacter(characterId, options); + const localVarOperationServerIndex = configuration?.serverIndex ?? 0; + const localVarOperationServerBasePath = operationServerMap['ActivityControllerApi.fetchNewActivitiesForCharacter']?.[localVarOperationServerIndex]?.url; + return (axios, basePath) => createRequestFunction(localVarAxiosArgs, globalAxios, BASE_PATH, configuration)(axios, localVarOperationServerBasePath || basePath); + }, + } +}; + +/** + * ActivityControllerApi - factory interface + */ +export const ActivityControllerApiFactory = function (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) { + const localVarFp = ActivityControllerApiFp(configuration) + return { + /** + * + * @param {number} characterId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig): AxiosPromise { + return localVarFp.fetchNewActivitiesForCharacter(characterId, options).then((request) => request(axios, basePath)); + }, + }; +}; + +/** + * ActivityControllerApi - object-oriented interface + */ +export class ActivityControllerApi extends BaseAPI { + /** + * + * @param {number} characterId + * @param {*} [options] Override http request option. + * @throws {RequiredError} + */ + public fetchNewActivitiesForCharacter(characterId: number, options?: RawAxiosRequestConfig) { + return ActivityControllerApiFp(this.configuration).fetchNewActivitiesForCharacter(characterId, options).then((request) => request(this.axios, this.basePath)); + } +} + + + /** * LedgerControllerApi - axios parameter creator */ diff --git a/src/ledger/CreateLedgerModal.vue b/src/ledger/CreateLedgerModal.vue index b8b91dd..6508dd5 100644 --- a/src/ledger/CreateLedgerModal.vue +++ b/src/ledger/CreateLedgerModal.vue @@ -49,7 +49,7 @@ const open = () => { } const canSave = computed(() => name.value.trim().length > 0); -const isCreating = computed(() => props.ledgerId) +const isCreating = computed(() => props.ledgerId === undefined || props.ledgerId.length === 0); const title = computed(() => { if (isCreating.value) { return `Creating ${type.value === LedgerTypes.Main ? 'Main' : 'Combined'} Ledger` diff --git a/src/pages/Characters.vue b/src/pages/Characters.vue index 67ffee6..6deb4ce 100644 --- a/src/pages/Characters.vue +++ b/src/pages/Characters.vue @@ -1,6 +1,7 @@ diff --git a/src/pages/ledger/ListLedgers.vue b/src/pages/ledger/ListLedgers.vue index d8eb094..305b589 100644 --- a/src/pages/ledger/ListLedgers.vue +++ b/src/pages/ledger/ListLedgers.vue @@ -4,13 +4,14 @@ import {CreateLedgerModal, LedgerLabel, useLedgersStore} from "@/ledger"; import {storeToRefs} from "pinia"; import {nextTick, ref} from "vue"; import {PencilSquareIcon} from "@heroicons/vue/24/outline"; +import {formatIsk} from "@/formaters.ts"; const {ledgers} = storeToRefs(useLedgersStore()); const editModal = ref(); -const editingLedgerId = ref(0); +const editingLedgerId = ref(""); -const openEdit = async (ledgerId: number) => { +const openEdit = async (ledgerId: string) => { editingLedgerId.value = ledgerId; await nextTick(); editModal.value?.open(); @@ -21,7 +22,10 @@ const openEdit = async (ledgerId: number) => {