20#ifndef ORES_QT_PUBLISH_DATASETS_DIALOG_HPP
21#define ORES_QT_PUBLISH_DATASETS_DIALOG_HPP
29#include <QTableWidget>
31#include <QProgressBar>
32#include <boost/uuid/uuid.hpp>
33#include "ores.logging/make_logger.hpp"
34#include "ores.dq/domain/dataset.hpp"
35#include "ores.dq/domain/publication_mode.hpp"
36#include "ores.dq/domain/publication_result.hpp"
56 inline static std::string_view logger_name =
"ores.qt.publish_datasets_dialog";
58 [[nodiscard]]
static auto& lg() {
60 static auto instance = make_logger(logger_name);
87 const QString& username,
88 QWidget* parent =
nullptr);
96 void setDatasets(
const std::vector<dq::domain::dataset>& datasets);
99 ClientManager* clientManager()
const {
return clientManager_; }
100 const QString& username()
const {
return username_; }
101 const std::vector<dq::domain::dataset>& datasets()
const {
return datasets_; }
102 std::vector<dq::domain::dataset>& resolvedDatasets() {
return resolvedDatasets_; }
103 std::vector<boost::uuids::uuid>& requestedIds() {
return requestedIds_; }
104 std::vector<dq::domain::publication_result>& results() {
return results_; }
107 dq::domain::publication_mode selectedMode()
const;
108 bool resolveDependencies()
const;
113 ClientManager* clientManager_;
115 std::vector<dq::domain::dataset> datasets_;
116 std::vector<dq::domain::dataset> resolvedDatasets_;
117 std::vector<boost::uuids::uuid> requestedIds_;
118 std::vector<dq::domain::publication_result> results_;
136 void initializePage()
override;
140 QListWidget* datasetList_;
153 QComboBox* modeCombo()
const {
return modeCombo_; }
154 QCheckBox* resolveDependenciesCheck()
const {
return resolveDependenciesCheck_; }
158 QComboBox* modeCombo_;
159 QCheckBox* resolveDependenciesCheck_;
170 void initializePage()
override;
171 bool isComplete()
const override;
174 void resolveDependencies();
175 void updatePublicationOrder();
178 QTableWidget* orderTable_;
179 QLabel* summaryLabel_;
180 QLabel* statusLabel_;
181 bool resolved_ =
false;
192 void initializePage()
override;
193 bool isComplete()
const override;
194 int nextId()
const override;
197 void performPublish();
200 QLabel* statusLabel_;
201 QProgressBar* progressBar_;
202 QLabel* currentDatasetLabel_;
203 bool publishComplete_ =
false;
204 bool publishSuccess_ =
false;
215 void initializePage()
override;
219 QTableWidget* resultsTable_;
220 QLabel* summaryLabel_;
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:35
Manages the lifecycle of the network client and IO context.
Definition ClientManager.hpp:90
Wizard for publishing datasets from artefact tables to production.
Definition PublishDatasetsDialog.hpp:52
void datasetsPublished(const QStringList &datasetCodes)
Emitted when datasets are successfully published.
void setDatasets(const std::vector< dq::domain::dataset > &datasets)
Set the datasets to publish.
Definition PublishDatasetsDialog.cpp:72
Page showing the selected datasets.
Definition PublishDatasetsDialog.hpp:131
Page for configuring publication options.
Definition PublishDatasetsDialog.hpp:147
Page showing the resolved publication order.
Definition PublishDatasetsDialog.hpp:165
Page showing progress during publication.
Definition PublishDatasetsDialog.hpp:187
Page showing publication results.
Definition PublishDatasetsDialog.hpp:210