62 lines
2.1 KiB
C++
62 lines
2.1 KiB
C++
#include "pendingtasks.h"
|
|
#include "ui_pendingtasks.h"
|
|
#include "ovhapi.h"
|
|
|
|
#include <QTimer>
|
|
#include <QDebug>
|
|
#include <QJsonArray>
|
|
#include <QJsonDocument>
|
|
#include <QJsonObject>
|
|
|
|
PendingTasks::PendingTasks(OvhApi *api, const QString &path, QWidget *parent) :
|
|
QDialog(parent),
|
|
ui(new Ui::PendingTasks),
|
|
api(api),
|
|
apiPath(path)
|
|
{
|
|
ui->setupUi(this);
|
|
setAttribute(Qt::WA_DeleteOnClose);
|
|
baseRefreshText = ui->refreshLabel->text();
|
|
refreshTimer = new QTimer{this};
|
|
refreshTimer->setInterval(1000);
|
|
refreshTimer->setSingleShot(false);
|
|
refreshTimer->start();
|
|
connect(refreshTimer, &QTimer::timeout, this, &PendingTasks::refresh);
|
|
QTimer::singleShot(0, this, &PendingTasks::refresh);
|
|
}
|
|
|
|
PendingTasks::~PendingTasks()
|
|
{
|
|
delete ui;
|
|
}
|
|
|
|
QCoro::Task<> PendingTasks::refresh() {
|
|
auto tasks = co_await api->get(apiPath);
|
|
qDebug() << tasks;
|
|
auto tasksArray = tasks.array();
|
|
ui->tableWidget->setRowCount(tasksArray.count());
|
|
int i = 0;
|
|
for (auto &&taskIdJson: tasksArray) {
|
|
int c = 0;
|
|
auto taskId = taskIdJson.toInt();
|
|
QString taskPath = QString("%1/%2").arg(apiPath).arg(taskId);
|
|
qDebug() << "Fetching on " << taskPath;
|
|
auto taskData = (co_await api->get(taskPath)).object();
|
|
qDebug() << taskData;
|
|
// ID ; Type ; start date ; status
|
|
auto tableItem = new QTableWidgetItem(QString::number(taskId));
|
|
ui->tableWidget->setItem(i, c++, tableItem);
|
|
tableItem = new QTableWidgetItem(taskData["function"].toString());
|
|
ui->tableWidget->setItem(i, c++, tableItem);
|
|
tableItem = new QTableWidgetItem(taskData["startDate"].toString());
|
|
ui->tableWidget->setItem(i, c++, tableItem);
|
|
tableItem = new QTableWidgetItem(taskData["status"].toString());
|
|
if (taskData["status"].toString() == "done")
|
|
tableItem->setToolTip(tr("Done on %1").arg(taskData["doneDate"].toString()));
|
|
ui->tableWidget->setItem(i, c++, tableItem);
|
|
ui->tableWidget->resizeColumnsToContents();
|
|
i++;
|
|
}
|
|
ui->refreshLabel->setText(baseRefreshText.arg(QDateTime::currentDateTime().time().toString()));
|
|
}
|