From 9632da85b1fa741e9864207249a67af57b1b76b2 Mon Sep 17 00:00:00 2001 From: 0xFEEDC0DE64 Date: Tue, 9 Apr 2019 22:17:59 +0200 Subject: [PATCH] Fixed project dropdown --- zeiterfassungguilib/mainwindow.cpp | 4 +- zeiterfassungguilib/mainwindow.h | 4 +- zeiterfassungnetworklib/CMakeLists.txt | 4 +- ...projectsreply.cpp => getcomboboxreply.cpp} | 18 ++++---- ...{getprojectsreply.h => getcomboboxreply.h} | 10 ++-- .../zeiterfassungnetworklib_de.ts | 46 +++++++++---------- .../zeiterfassungnetworklib_en.ts | 46 +++++++++---------- zeiterfassungnetworklib/zeiterfassungapi.cpp | 19 ++++++-- zeiterfassungnetworklib/zeiterfassungapi.h | 5 +- 9 files changed, 84 insertions(+), 72 deletions(-) rename zeiterfassungnetworklib/replies/{getprojectsreply.cpp => getcomboboxreply.cpp} (80%) rename zeiterfassungnetworklib/replies/{getprojectsreply.h => getcomboboxreply.h} (65%) diff --git a/zeiterfassungguilib/mainwindow.cpp b/zeiterfassungguilib/mainwindow.cpp index 32b8dbc..80bb5c0 100644 --- a/zeiterfassungguilib/mainwindow.cpp +++ b/zeiterfassungguilib/mainwindow.cpp @@ -22,7 +22,7 @@ #include "stripfactory.h" #include "stripswidget.h" #include "dialogs/settingsdialog.h" -#include "replies/getprojectsreply.h" +#include "replies/getcomboboxreply.h" #include "replies/createbookingreply.h" #include "replies/createtimeassignmentreply.h" #include "replies/updatetimeassignmentreply.h" @@ -185,7 +185,7 @@ void MainWindow::getProjectsFinished() { m_projects.clear(); - for(const auto &project : m_getProjectsReply->projects()) + for(const auto &project : m_getProjectsReply->items()) m_projects.insert(project.value, project.label); updateComboboxes(); diff --git a/zeiterfassungguilib/mainwindow.h b/zeiterfassungguilib/mainwindow.h index 48d8c2d..da195cc 100644 --- a/zeiterfassungguilib/mainwindow.h +++ b/zeiterfassungguilib/mainwindow.h @@ -8,7 +8,7 @@ #include "zeiterfassungguilib_global.h" #include "replies/getuserinforeply.h" -#include "replies/getprojectsreply.h" +#include "replies/getcomboboxreply.h" #include "replies/getpresencestatusreply.h" class QMenu; @@ -77,7 +77,7 @@ private: StripFactory &m_stripFactory; const QSet &m_plugins; - std::unique_ptr m_getProjectsReply; + std::unique_ptr m_getProjectsReply; QMap m_projects; diff --git a/zeiterfassungnetworklib/CMakeLists.txt b/zeiterfassungnetworklib/CMakeLists.txt index 91bc75f..817764a 100644 --- a/zeiterfassungnetworklib/CMakeLists.txt +++ b/zeiterfassungnetworklib/CMakeLists.txt @@ -11,9 +11,9 @@ set(HEADERS replies/deletetimeassignmentreply.h replies/getabsencesreply.h replies/getbookingsreply.h + replies/getcomboboxreply.h replies/getdayinforeply.h replies/getpresencestatusreply.h - replies/getprojectsreply.h replies/getreportreply.h replies/gettimeassignmentsreply.h replies/getuserinforeply.h @@ -32,9 +32,9 @@ set(SOURCES replies/deletetimeassignmentreply.cpp replies/getabsencesreply.cpp replies/getbookingsreply.cpp + replies/getcomboboxreply.cpp replies/getdayinforeply.cpp replies/getpresencestatusreply.cpp - replies/getprojectsreply.cpp replies/getreportreply.cpp replies/gettimeassignmentsreply.cpp replies/getuserinforeply.cpp diff --git a/zeiterfassungnetworklib/replies/getprojectsreply.cpp b/zeiterfassungnetworklib/replies/getcomboboxreply.cpp similarity index 80% rename from zeiterfassungnetworklib/replies/getprojectsreply.cpp rename to zeiterfassungnetworklib/replies/getcomboboxreply.cpp index 58b47d4..ccc10dd 100644 --- a/zeiterfassungnetworklib/replies/getprojectsreply.cpp +++ b/zeiterfassungnetworklib/replies/getcomboboxreply.cpp @@ -1,4 +1,4 @@ -#include "getprojectsreply.h" +#include "getcomboboxreply.h" #include #include @@ -8,19 +8,19 @@ #include "zeiterfassungapi.h" -GetProjectsReply::GetProjectsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) : +GetComboboxReply::GetComboboxReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung) : ZeiterfassungReply(zeiterfassung), m_reply(std::move(reply)) { - connect(m_reply.get(), &QNetworkReply::finished, this, &GetProjectsReply::requestFinished); + connect(m_reply.get(), &QNetworkReply::finished, this, &GetComboboxReply::requestFinished); } -const QVector &GetProjectsReply::projects() const +const QVector &GetComboboxReply::items() const { - return m_projects; + return m_items; } -void GetProjectsReply::requestFinished() +void GetComboboxReply::requestFinished() { if(m_reply->error() != QNetworkReply::NoError) { @@ -67,13 +67,13 @@ void GetProjectsReply::requestFinished() auto elementsArr = elements.toArray(); setSuccess(true); - m_projects.clear(); - m_projects.reserve(elementsArr.count()); + m_items.clear(); + m_items.reserve(elementsArr.count()); for(const auto &val : elementsArr) { auto obj = val.toObject(); - m_projects.append({ + m_items.append({ obj.value(QStringLiteral("label")).toString(), obj.value(QStringLiteral("value")).toString() }); diff --git a/zeiterfassungnetworklib/replies/getprojectsreply.h b/zeiterfassungnetworklib/replies/getcomboboxreply.h similarity index 65% rename from zeiterfassungnetworklib/replies/getprojectsreply.h rename to zeiterfassungnetworklib/replies/getcomboboxreply.h index 3151b42..f13801f 100644 --- a/zeiterfassungnetworklib/replies/getprojectsreply.h +++ b/zeiterfassungnetworklib/replies/getcomboboxreply.h @@ -10,25 +10,25 @@ class ZeiterfassungApi; -class ZEITERFASSUNGNETWORKLIB_EXPORT GetProjectsReply : public ZeiterfassungReply +class ZEITERFASSUNGNETWORKLIB_EXPORT GetComboboxReply : public ZeiterfassungReply { Q_OBJECT public: - explicit GetProjectsReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung); + explicit GetComboboxReply(std::unique_ptr &&reply, ZeiterfassungApi *zeiterfassung); - struct Project + struct Item { QString label; QString value; }; - const QVector &projects() const; + const QVector &items() const; private Q_SLOTS: void requestFinished(); private: std::unique_ptr m_reply; - QVector m_projects; + QVector m_items; }; diff --git a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts index 0908673..11db845 100644 --- a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts +++ b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_de.ts @@ -71,6 +71,29 @@ + + GetComboboxReply + + Request error occured: %0 + + + + Parsing JSON failed: %0 + + + + JSON document is not an object! + + + + JSON does not contain elements! + + + + elements is not an array! + + + GetDayinfoReply @@ -101,29 +124,6 @@ - - GetProjectsReply - - Request error occured: %0 - - - - Parsing JSON failed: %0 - - - - JSON document is not an object! - - - - JSON does not contain elements! - - - - elements is not an array! - - - GetReportReply diff --git a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts index a9a2c0a..21b357b 100644 --- a/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts +++ b/zeiterfassungnetworklib/translations/zeiterfassungnetworklib_en.ts @@ -71,6 +71,29 @@ + + GetComboboxReply + + Request error occured: %0 + + + + Parsing JSON failed: %0 + + + + JSON document is not an object! + + + + JSON does not contain elements! + + + + elements is not an array! + + + GetDayinfoReply @@ -101,29 +124,6 @@ - - GetProjectsReply - - Request error occured: %0 - - - - Parsing JSON failed: %0 - - - - JSON document is not an object! - - - - JSON does not contain elements! - - - - elements is not an array! - - - GetReportReply diff --git a/zeiterfassungnetworklib/zeiterfassungapi.cpp b/zeiterfassungnetworklib/zeiterfassungapi.cpp index 621c9f6..0182cbd 100644 --- a/zeiterfassungnetworklib/zeiterfassungapi.cpp +++ b/zeiterfassungnetworklib/zeiterfassungapi.cpp @@ -20,7 +20,7 @@ #include "replies/createtimeassignmentreply.h" #include "replies/updatetimeassignmentreply.h" #include "replies/deletetimeassignmentreply.h" -#include "replies/getprojectsreply.h" +#include "replies/getcomboboxreply.h" #include "replies/getreportreply.h" #include "replies/getpresencestatusreply.h" #include "replies/getabsencesreply.h" @@ -247,15 +247,26 @@ std::unique_ptr ZeiterfassungApi::doDeleteTimeAssignm return std::make_unique(std::unique_ptr(m_manager->deleteResource(request)), this); } -std::unique_ptr ZeiterfassungApi::doGetProjects(int userId, const QDate &date) +std::unique_ptr ZeiterfassungApi::doGetCostcentres(int userId, const QDate &date) { - QNetworkRequest request(QUrl(QStringLiteral("%0json/combobox?persnr=%1&date=%2&dqkey=KOST&kowert0=&kowert1=&kowert2=&term=") + QNetworkRequest request(QUrl(QStringLiteral("%0json/combobox?persnr=%1&date=%2&dqkey=KOST") .arg(m_url.toString()) .arg(userId) .arg(formatDate(date)))); request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar")); - return std::make_unique(std::unique_ptr(m_manager->get(request)), this); + return std::make_unique(std::unique_ptr(m_manager->get(request)), this); +} + +std::unique_ptr ZeiterfassungApi::doGetProjects(int userId, const QDate &date) +{ + QNetworkRequest request(QUrl(QStringLiteral("%0json/combobox?persnr=%1&date=%2&dqkey=PROJEKT") + .arg(m_url.toString()) + .arg(userId) + .arg(formatDate(date)))); + request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar")); + + return std::make_unique(std::unique_ptr(m_manager->get(request)), this); } std::unique_ptr ZeiterfassungApi::doGetReport(int userId, const QDate &date) diff --git a/zeiterfassungnetworklib/zeiterfassungapi.h b/zeiterfassungnetworklib/zeiterfassungapi.h index fca8ce2..80994d2 100644 --- a/zeiterfassungnetworklib/zeiterfassungapi.h +++ b/zeiterfassungnetworklib/zeiterfassungapi.h @@ -23,7 +23,7 @@ class GetTimeAssignmentsReply; class CreateTimeAssignmentReply; class UpdateTimeAssignmentReply; class DeleteTimeAssignmentReply; -class GetProjectsReply; +class GetComboboxReply; class GetReportReply; class GetPresenceStatusReply; class GetAbsencesReply; @@ -61,7 +61,8 @@ public: const QString &workpackage, const QString &text); std::unique_ptr doDeleteTimeAssignment(int timeAssignmentId); - std::unique_ptr doGetProjects(int userId, const QDate &date); + std::unique_ptr doGetCostcentres(int userId, const QDate &date); + std::unique_ptr doGetProjects(int userId, const QDate &date); std::unique_ptr doGetReport(int userId, const QDate &date); std::unique_ptr doGetPresenceStatus(); std::unique_ptr doGetAbsences(int userId, const QDate &start, const QDate &end);