20#ifndef ORES_QT_PUBLISH_DATASETS_DIALOG_HPP
21#define ORES_QT_PUBLISH_DATASETS_DIALOG_HPP
29#include <QTableWidget>
32#include <QProgressBar>
33#include <boost/uuid/uuid.hpp>
34#include "ores.logging/make_logger.hpp"
35#include "ores.dq.api/domain/dataset.hpp"
36#include "ores.dq.api/domain/publication_mode.hpp"
37#include "ores.dq.api/domain/publication_result.hpp"
57 inline static std::string_view logger_name =
"ores.qt.publish_datasets_dialog";
59 [[nodiscard]]
static auto& lg() {
61 static auto instance = make_logger(logger_name);
88 const QString& username,
89 QWidget* parent =
nullptr);
97 void setDatasets(
const std::vector<dq::domain::dataset>& datasets);
100 ClientManager* clientManager()
const {
return clientManager_; }
101 const QString& username()
const {
return username_; }
102 const std::vector<dq::domain::dataset>& datasets()
const {
return datasets_; }
103 std::vector<dq::domain::dataset>& resolvedDatasets() {
return resolvedDatasets_; }
104 std::vector<std::string>& requestedIds() {
return requestedIds_; }
105 std::vector<dq::domain::publication_result>& results() {
return results_; }
106 QString& lastError() {
return lastError_; }
109 dq::domain::publication_mode selectedMode()
const;
110 bool resolveDependencies()
const;
115 ClientManager* clientManager_;
117 std::vector<dq::domain::dataset> datasets_;
118 std::vector<dq::domain::dataset> resolvedDatasets_;
119 std::vector<std::string> requestedIds_;
120 std::vector<dq::domain::publication_result> results_;
139 void initializePage()
override;
143 QListWidget* datasetList_;
156 QComboBox* modeCombo()
const {
return modeCombo_; }
157 QCheckBox* resolveDependenciesCheck()
const {
return resolveDependenciesCheck_; }
161 QComboBox* modeCombo_;
162 QCheckBox* resolveDependenciesCheck_;
173 void initializePage()
override;
174 bool isComplete()
const override;
177 void resolveDependencies();
178 void updatePublicationOrder();
181 QTableWidget* orderTable_;
182 QLabel* summaryLabel_;
183 QLabel* statusLabel_;
184 bool resolved_ =
false;
195 void initializePage()
override;
196 bool isComplete()
const override;
197 int nextId()
const override;
200 void performPublish();
203 QLabel* statusLabel_;
204 QProgressBar* progressBar_;
205 QLabel* currentDatasetLabel_;
206 bool publishComplete_ =
false;
207 bool publishSuccess_ =
false;
218 void initializePage()
override;
221 void appendLog(
const QString& message);
222 void appendError(
const QString& message);
223 void appendSuccess(
const QString& message);
226 QTextEdit* logOutput_;
227 QLabel* summaryLabel_;
Implements logging infrastructure for ORE Studio.
Definition boost_severity.hpp:28
Qt-based graphical user interface for ORE Studio.
Definition AboutDialog.hpp:29
Manages the lifecycle of the NATS client and login state.
Definition ClientManager.hpp:109
Wizard for publishing datasets from artefact tables to production.
Definition PublishDatasetsDialog.hpp:53
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:78
Page showing the selected datasets.
Definition PublishDatasetsDialog.hpp:134
Page for configuring publication options.
Definition PublishDatasetsDialog.hpp:150
Page showing the resolved publication order.
Definition PublishDatasetsDialog.hpp:168
Page showing progress during publication.
Definition PublishDatasetsDialog.hpp:190
Page showing publication results.
Definition PublishDatasetsDialog.hpp:213