The url is now stored as a QUrl in settings

This commit is contained in:
0xFEEDC0DE
2018-03-11 15:16:23 +01:00
parent 73ea366466
commit ac1edf2372
5 changed files with 43 additions and 32 deletions

View File

@@ -178,14 +178,23 @@ bool loadLoginPage(QSplashScreen &splashScreen, ZeiterfassungSettings &settings,
QMessageBox::warning(&splashScreen, QCoreApplication::translate("main", "Could not access Zeiterfassung!"),
QCoreApplication::translate("main", "Could not access Zeiterfassung!") % "\n\n" % reply->message());
inputAgain:
bool ok;
auto url = QInputDialog::getText(&splashScreen, QCoreApplication::translate("main", "Base url"),
QCoreApplication::translate("main", "Please enter the base url to the Zeiterfassung:"),
QLineEdit::Normal, settings.url(), &ok);
auto text = QInputDialog::getText(&splashScreen, QCoreApplication::translate("main", "Base url"),
QCoreApplication::translate("main", "Please enter the base url to the Zeiterfassung:"),
QLineEdit::Normal, settings.url().toString(), &ok);
if(!ok)
return false;
auto url = QUrl::fromUserInput(text);
if(!url.isValid())
{
QMessageBox::warning(&splashScreen, QCoreApplication::translate("main", "Invalid url!"),
QCoreApplication::translate("main", "This url is not valid!"));
goto inputAgain;
}
settings.setUrl(url);
erfassung.setUrl(url);
@@ -335,7 +344,7 @@ int main(int argc, char *argv[])
if(!loadStripLayouts(splashScreen, stripFactory))
return -3;
ZeiterfassungApi erfassung(settings.url(), &app);
ZeiterfassungApi erfassung(settings.url().toString(), &app);
if(!loadLoginPage(splashScreen, settings, erfassung))
return -4;

View File

@@ -28,19 +28,19 @@
//add support for pre cpp14 compilers
#include "cpp14polyfills.h"
ZeiterfassungApi::ZeiterfassungApi(const QString &url, QObject *parent) :
ZeiterfassungApi::ZeiterfassungApi(const QUrl &url, QObject *parent) :
QObject(parent),
m_url(url),
m_manager(new QNetworkAccessManager(this))
{
}
const QString &ZeiterfassungApi::url() const
const QUrl &ZeiterfassungApi::url() const
{
return m_url;
}
void ZeiterfassungApi::setUrl(const QString &url)
void ZeiterfassungApi::setUrl(const QUrl &url)
{
m_url = url;
}
@@ -52,14 +52,14 @@ QNetworkAccessManager *ZeiterfassungApi::manager() const
std::unique_ptr<LoginPageReply> ZeiterfassungApi::doLoginPage()
{
QNetworkRequest request(QUrl(m_url % "pages/login.jsp"));
QNetworkRequest request(QUrl(m_url.toString() % "pages/login.jsp"));
return std::make_unique<LoginPageReply>(std::unique_ptr<QNetworkReply>(m_manager->get(request)), this);
}
std::unique_ptr<LoginReply> ZeiterfassungApi::doLogin(const QString &username, const QString &password)
{
QNetworkRequest request(QUrl(m_url % "pages/j_spring_security_check"));
QNetworkRequest request(QUrl(m_url.toString() % "pages/j_spring_security_check"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/x-www-form-urlencoded"));
request.setMaximumRedirectsAllowed(0);
@@ -70,10 +70,10 @@ std::unique_ptr<LoginReply> ZeiterfassungApi::doLogin(const QString &username, c
std::unique_ptr<GetUserInfoReply> ZeiterfassungApi::doUserInfo()
{
QNetworkRequest request0(QUrl(m_url % "json/evoAppsUserInfoDialogController/load-EvoAppsUserInfoTO"));
QNetworkRequest request0(QUrl(m_url.toString() % "json/evoAppsUserInfoDialogController/load-EvoAppsUserInfoTO"));
request0.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("home"));
QNetworkRequest request1(QUrl(m_url % "json/persons"));
QNetworkRequest request1(QUrl(m_url.toString() % "json/persons"));
request1.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
return std::make_unique<GetUserInfoReply>(std::unique_ptr<QNetworkReply>(m_manager->get(request0)),
@@ -83,7 +83,7 @@ std::unique_ptr<GetUserInfoReply> ZeiterfassungApi::doUserInfo()
std::unique_ptr<GetBookingsReply> ZeiterfassungApi::doGetBookings(int userId, const QDate &start, const QDate &end)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/bookings?start=%1&end=%2&pnrLst=%3")
.arg(m_url)
.arg(m_url.toString())
.arg(start.toString(QStringLiteral("yyyyMMdd")))
.arg(end.toString(QStringLiteral("yyyyMMdd")))
.arg(userId)));
@@ -95,7 +95,7 @@ std::unique_ptr<GetBookingsReply> ZeiterfassungApi::doGetBookings(int userId, co
std::unique_ptr<CreateBookingReply> ZeiterfassungApi::doCreateBooking(int userId, const QDate &date, const QTime &time, const QTime &timespan,
const QString &type, const QString &text)
{
QNetworkRequest request(QUrl(m_url % "json/booking"));
QNetworkRequest request(QUrl(m_url.toString() % "json/booking"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -118,7 +118,7 @@ std::unique_ptr<CreateBookingReply> ZeiterfassungApi::doCreateBooking(int userId
std::unique_ptr<UpdateBookingReply> ZeiterfassungApi::doUpdateBooking(int bookingId, int userId, const QDate &date, const QTime &time,
const QTime &timespan, const QString &type, const QString &text)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1").arg(m_url).arg(bookingId)));
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1").arg(m_url.toString()).arg(bookingId)));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -142,7 +142,7 @@ std::unique_ptr<UpdateBookingReply> ZeiterfassungApi::doUpdateBooking(int bookin
std::unique_ptr<DeleteBookingReply> ZeiterfassungApi::doDeleteBooking(int bookingId)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/booking/%1?text=")
.arg(m_url)
.arg(m_url.toString())
.arg(bookingId)));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -152,7 +152,7 @@ std::unique_ptr<DeleteBookingReply> ZeiterfassungApi::doDeleteBooking(int bookin
std::unique_ptr<GetTimeAssignmentsReply> ZeiterfassungApi::doGetTimeAssignments(int userId, const QDate &start, const QDate &end)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking?start=%1&end=%2&pnrLst=%3")
.arg(m_url)
.arg(m_url.toString())
.arg(start.toString(QStringLiteral("yyyyMMdd")))
.arg(end.toString(QStringLiteral("yyyyMMdd")))
.arg(userId)));
@@ -166,7 +166,7 @@ std::unique_ptr<CreateTimeAssignmentReply> ZeiterfassungApi::doCreateTimeAssignm
const QString &subproject, const QString &workpackage,
const QString &text)
{
QNetworkRequest request(QUrl(m_url % "json/azebooking"));
QNetworkRequest request(QUrl(m_url.toString() % "json/azebooking"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -207,7 +207,7 @@ std::unique_ptr<UpdateTimeAssignmentReply> ZeiterfassungApi::doUpdateTimeAssignm
const QString &subproject, const QString &workpackage,
const QString &text)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking/%1").arg(m_url).arg(timeAssignmentId)));
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking/%1").arg(m_url.toString()).arg(timeAssignmentId)));
request.setHeader(QNetworkRequest::ContentTypeHeader, QByteArrayLiteral("application/json"));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -251,7 +251,7 @@ std::unique_ptr<UpdateTimeAssignmentReply> ZeiterfassungApi::doUpdateTimeAssignm
std::unique_ptr<DeleteTimeAssignmentReply> ZeiterfassungApi::doDeleteTimeAssignment(int timeAssignmentId)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/azebooking/%1")
.arg(m_url)
.arg(m_url.toString())
.arg(timeAssignmentId)));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -261,7 +261,7 @@ std::unique_ptr<DeleteTimeAssignmentReply> ZeiterfassungApi::doDeleteTimeAssignm
std::unique_ptr<GetProjectsReply> ZeiterfassungApi::doGetProjects(int userId, const QDate &date)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/combobox?persnr=%1&date=%2&dqkey=KOST&kowert0=&kowert1=&kowert2=&term=")
.arg(m_url)
.arg(m_url.toString())
.arg(userId)
.arg(date.toString(QStringLiteral("yyyyMMdd")))));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -272,7 +272,7 @@ std::unique_ptr<GetProjectsReply> ZeiterfassungApi::doGetProjects(int userId, co
std::unique_ptr<GetReportReply> ZeiterfassungApi::doGetReport(int userId, const QDate &date)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/auswertung/month?persNr=%1&date=%2")
.arg(m_url)
.arg(m_url.toString())
.arg(userId)
.arg(date.toString(QStringLiteral("yyyyMMdd")))));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("bookingCalendar"));
@@ -282,7 +282,7 @@ std::unique_ptr<GetReportReply> ZeiterfassungApi::doGetReport(int userId, const
std::unique_ptr<GetPresenceStatusReply> ZeiterfassungApi::doGetPresenceStatus()
{
QNetworkRequest request(QUrl(m_url % "json/presencestatus"));
QNetworkRequest request(QUrl(m_url.toString() % "json/presencestatus"));
request.setRawHeader(QByteArrayLiteral("sisAppName"), QByteArrayLiteral("presenceStatus"));
return std::make_unique<GetPresenceStatusReply>(std::unique_ptr<QNetworkReply>(m_manager->get(request)), this);
@@ -291,7 +291,7 @@ std::unique_ptr<GetPresenceStatusReply> ZeiterfassungApi::doGetPresenceStatus()
std::unique_ptr<GetAbsencesReply> ZeiterfassungApi::doGetAbsences(int userId, const QDate &start, const QDate &end)
{
QNetworkRequest request(QUrl(QStringLiteral("%0json/fulldayAbsences?start=%1&end=%2&pnrLst=%3")
.arg(m_url)
.arg(m_url.toString())
.arg(start.toString(QStringLiteral("yyyyMMdd")))
.arg(end.toString(QStringLiteral("yyyyMMdd")))
.arg(userId)));

View File

@@ -3,6 +3,7 @@
#include <memory>
#include <QObject>
#include <QUrl>
#include <QString>
#include <QDate>
#include <QTime>
@@ -32,10 +33,10 @@ class ZEITERFASSUNGCORELIBSHARED_EXPORT ZeiterfassungApi : public QObject
Q_OBJECT
public:
explicit ZeiterfassungApi(const QString &url, QObject *parent = Q_NULLPTR);
explicit ZeiterfassungApi(const QUrl &url, QObject *parent = Q_NULLPTR);
const QString &url() const;
void setUrl(const QString &url);
const QUrl &url() const;
void setUrl(const QUrl &url);
QNetworkAccessManager *manager() const;
@@ -67,6 +68,6 @@ public:
std::unique_ptr<GetAbsencesReply> doGetAbsences(int userId, const QDate &start, const QDate &end);
private:
QString m_url;
QUrl m_url;
QNetworkAccessManager *m_manager;
};

View File

@@ -42,12 +42,12 @@ void ZeiterfassungSettings::setLanguage(QLocale::Language language)
setValue(QStringLiteral("language"), language);
}
QString ZeiterfassungSettings::url() const
QUrl ZeiterfassungSettings::url() const
{
return value(QStringLiteral("url"), QStringLiteral("http://10.1.0.11:8080/evoApps/")).toString();
return value(QStringLiteral("url"), QUrl(QStringLiteral("http://10.1.0.11:8080/evoApps/"))).toUrl();
}
void ZeiterfassungSettings::setUrl(const QString &url)
void ZeiterfassungSettings::setUrl(const QUrl &url)
{
setValue(QStringLiteral("url"), url);
}

View File

@@ -2,6 +2,7 @@
#include <QSettings>
#include <QLocale>
#include <QUrl>
#include <QString>
#include <QStringList>
#include <QDate>
@@ -25,8 +26,8 @@ public:
QLocale::Language language() const;
void setLanguage(QLocale::Language language);
QString url() const;
void setUrl(const QString &url);
QUrl url() const;
void setUrl(const QUrl &url);
QString username() const;
void setUsername(const QString &username);