summaryrefslogtreecommitdiff
path: root/tickethistory.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'tickethistory.cxx')
-rw-r--r--tickethistory.cxx90
1 files changed, 90 insertions, 0 deletions
diff --git a/tickethistory.cxx b/tickethistory.cxx
new file mode 100644
index 0000000..4243d7c
--- /dev/null
+++ b/tickethistory.cxx
@@ -0,0 +1,90 @@
+#include <cstddef>
+#include "qrtclient/tickethistory.hxx"
+
+namespace RTClient {
+
+ int TicketHistoryList::rowCount(QModelIndex const& parent) const
+ {
+ Q_UNUSED(parent)
+ return histories.count();
+ }
+
+ QVariant TicketHistoryList::data(QModelIndex const& index, int role) const
+ {
+ auto row = index.row();
+
+ if (row < 0 || row >= histories.count()) return QVariant();
+
+ auto history = histories[row];
+ switch (role) {
+ case IdRole:
+ return history.id();
+ case TicketRole:
+ return history.ticket();
+ case TimeTakenRole:
+ return history.timeTaken();
+ case TypeRole:
+ return history.type();
+ case FieldRole:
+ return history.field();
+ case OldValueRole:
+ return history.oldValue();
+ case NewValueRole:
+ return history.newValue();
+ case DataRole:
+ return history.data();
+ case DescriptionRole:
+ return history.description();
+ case ContentRole:
+ return history.content();
+ case CreatorRole:
+ return history.creator();
+ case CreatedRole:
+ return history.created();
+ /*
+ case AttachmentsRole:
+ return history.attachments();
+ */
+ default:
+ return QVariant();
+ }
+ }
+
+ QHash<int, QByteArray> TicketHistoryList::roleNames() const
+ {
+ return QHash<int, QByteArray>{
+ {IdRole, "id"}
+ , {TicketRole, "ticket"}
+ , {TimeTakenRole, "timeTaken"}
+ , {TypeRole, "type"}
+ , {FieldRole, "field"}
+ , {OldValueRole, "oldValue"}
+ , {NewValueRole, "newValue"}
+ , {DataRole, "data"}
+ , {DescriptionRole, "description"}
+ , {ContentRole, "content"}
+ , {CreatorRole, "creator"}
+ , {CreatedRole, "created"}
+// , {AttachmentsRole, "attachments"}
+ };
+ }
+
+ void TicketHistoryList::addTicketHistory(TicketHistory const& history)
+ {
+ beginInsertRows(QModelIndex(), rowCount(), rowCount());
+ histories << history;
+ endInsertRows();
+ }
+
+ void TicketHistoryList::update(rtclient_ticket_history_list* list)
+ {
+ if (list) {
+ for (size_t i = 0; i < list->length; i++)
+ addTicketHistory
+ (TicketHistory{list->histories[i]});
+ rtclient_ticket_history_list_free(list);
+ }
+ emit updated();
+ }
+
+}