From 9a3cfd077013e42d4b3f788b78f45edf3b46ef07 Mon Sep 17 00:00:00 2001 From: Aldrik Ramaekers Date: Sun, 4 Jan 2026 12:36:52 +0100 Subject: activity list write --- src/administration.cpp | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'src/administration.cpp') diff --git a/src/administration.cpp b/src/administration.cpp index 44438ff..0b1a0db 100644 --- a/src/administration.cpp +++ b/src/administration.cpp @@ -1520,7 +1520,7 @@ a_err administration::invoice_update(invoice* inv) if (invoice_changed_event_callback) invoice_changed_event_callback(c); - administration::activity_add(ACTIVITY_USER, c->id, "activity.update_invoice", 0); + administration::activity_add(ACTIVITY_USER, c->id, "activity.update_invoice"); return A_ERR_SUCCESS; } } @@ -1578,7 +1578,7 @@ a_err administration::invoice_add(invoice* inv) return A_ERR_GENERIC; } - administration::activity_add(ACTIVITY_USER, inv->id, "activity.add_invoice", 0); + administration::activity_add(ACTIVITY_USER, inv->id, "activity.add_invoice"); g_administration.next_id++; g_administration.next_sequence_number++; @@ -1933,7 +1933,7 @@ billing_item administration::billing_item_create_empty() // Activity functions. // =================== -a_err administration::activity_add(char* user, char* ref_id, char* message, ...) +a_err administration::activity_add(char* user, char* ref_id, char* message) { activity* new_activity = (activity*)memops::alloc(sizeof(activity)); strops::copy(new_activity->user_name, user, MAX_LEN_SHORT_DESC); @@ -1941,21 +1941,6 @@ a_err administration::activity_add(char* user, char* ref_id, char* message, ...) strops::copy(new_activity->message, message, MAX_LEN_LONG_DESC); new_activity->timestamp = time(NULL); - va_list args; - va_start(args, message); - - char* param; - u32 param_count = 0; - do - { - param = va_arg(args, char*); - if (param != 0) { - strops::copy(new_activity->params[param_count++], param, MAX_LEN_LONG_DESC); - } - } while (param && param_count < ACTIVITY_MAX_PARAMS); - - va_end(args); - if (!list_prepend(&g_administration.activities, new_activity)) { return A_ERR_GENERIC; } @@ -1975,4 +1960,20 @@ u32 administration::activity_get_all_for_object(activity* buffer, char* ref_id) list_iterator_stop(&g_administration.activities); return write_cursor; +} + +u32 administration::activity_count() +{ + return list_size(&g_administration.activities); +} + +a_err administration::activity_get_by_index(u32 index, activity* buffer) +{ + assert(buffer); + + activity* c = (activity *)list_get_at(&g_administration.activities, index); + if (c == NULL) return A_ERR_NOT_FOUND; + *buffer = *c; + + return A_ERR_SUCCESS; } \ No newline at end of file -- cgit v1.2.3-70-g09d2