summaryrefslogtreecommitdiff
path: root/src/administration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/administration.cpp')
-rw-r--r--src/administration.cpp37
1 files changed, 19 insertions, 18 deletions
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