summaryrefslogtreecommitdiff
path: root/qrtclient/tickethistory.hxx
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-10-02 21:30:32 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-10-02 21:30:32 +0800
commit6e3ee14209963c9a7190cc76925cc736fea83218 (patch)
tree53eb35dd939033ce047a82ced5c03c6022917b5e /qrtclient/tickethistory.hxx
parentfd5de53d7f95084bacec1a880077de6bddcb3289 (diff)
Ticket history class
Diffstat (limited to 'qrtclient/tickethistory.hxx')
-rw-r--r--qrtclient/tickethistory.hxx109
1 files changed, 109 insertions, 0 deletions
diff --git a/qrtclient/tickethistory.hxx b/qrtclient/tickethistory.hxx
new file mode 100644
index 0000000..7d68652
--- /dev/null
+++ b/qrtclient/tickethistory.hxx
@@ -0,0 +1,109 @@
+#ifndef QRTCLIENT_TICKET_HISTORY_HXX
+#define QRTCLIENT_TICKET_HISTORY_HXX
+
+#include <QAbstractListModel>
+#include <QDateTime>
+#include <rtclient/ticket.h>
+
+struct rtclient_ticket_history_list;
+
+namespace RTClient {
+
+ class TicketHistory
+ {
+ public:
+ TicketHistory(struct rtclient_ticket_history* history)
+ : m_id{history->id}
+ , m_ticket{history->ticket}
+ , m_timeTaken{history->time_taken}
+ , m_type{history->type}
+ , m_description{history->description}
+ , m_content{history->content}
+ , m_creator{history->creator}
+ {
+ if (history->field)
+ m_field = QString{history->field};
+ if (history->old_value)
+ m_oldValue = QString{history->old_value};
+ if (history->new_value)
+ m_newValue = QString{history->new_value};
+ if (history->data)
+ m_data = QString{history->data};
+ }
+ unsigned int id() const { return m_id; }
+ unsigned int ticket() const { return m_ticket; }
+ unsigned int timeTaken() const { return m_timeTaken; }
+// Q_ENUM(rtclient_ticket_history_type)
+ rtclient_ticket_history_type type() const { return m_type; }
+ QString const& field() const { return m_field; }
+ QString const& oldValue() const { return m_oldValue; }
+ QString const& newValue() const { return m_newValue; }
+ QString const& data() const { return m_data; }
+ QString const& description() const { return m_description; }
+ QString const& content() const { return m_content; }
+ QString const& creator() const { return m_creator; }
+ QDateTime const& created() const { return m_created; }
+
+ private:
+ unsigned int m_id;
+ unsigned int m_ticket;
+ unsigned int m_timeTaken;
+ rtclient_ticket_history_type m_type;
+ QString m_field;
+ QString m_oldValue;
+ QString m_newValue;
+ QString m_data;
+ QString m_description;
+ QString m_content;
+ QString m_creator;
+ QDateTime m_created;
+// QList<TicketHistoryAttachment>* m_attachments;
+ };
+
+ class TicketHistoryList : public QAbstractListModel
+ {
+ Q_OBJECT
+
+ public:
+ enum TicketHistoryRoles {
+ IdRole = Qt::UserRole + 1,
+ TicketRole,
+ TimeTakenRole,
+ TypeRole,
+ FieldRole,
+ OldValueRole,
+ NewValueRole,
+ DataRole,
+ DescriptionRole,
+ ContentRole,
+ CreatorRole,
+ CreatedRole/*,
+ AttachmentsRole*/
+ };
+
+ explicit TicketHistoryList(QObject* parent = nullptr)
+ : QAbstractListModel{parent} {}
+
+ int rowCount(QModelIndex const& parent
+ = QModelIndex()) const Q_DECL_OVERRIDE;
+ QVariant data(const QModelIndex& index
+ , int role = Qt::DisplayRole
+ ) const Q_DECL_OVERRIDE;
+
+ public slots:
+ void update(rtclient_ticket_history_list* list);
+
+ protected:
+ QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
+
+ signals:
+ void updated();
+
+ private:
+ QList<TicketHistory> histories;
+ void addTicketHistory(TicketHistory const& history);
+ };
+
+}
+
+#endif // QRTCLIENT_TICKET_HISTORY_HXX