20#ifndef ORES_QT_PUBLISH_BUNDLE_WIZARD_HPP
21#define ORES_QT_PUBLISH_BUNDLE_WIZARD_HPP
29#include <QProgressBar>
31#include <QStandardItemModel>
34#include "ores.logging/make_logger.hpp"
35#include "ores.qt/ClientManager.hpp"
36#include "ores.dq.api/domain/dataset_bundle_member.hpp"
37#include "ores.dq.api/domain/publication_mode.hpp"
38#include "ores.dq.api/messaging/publish_bundle_protocol.hpp"
59 inline static std::string_view logger_name =
60 "ores.qt.publish_bundle_wizard";
62 [[nodiscard]]
static auto& lg() {
64 static auto instance = make_logger(logger_name);
71 Page_OptionalDatasets,
80 const QString& bundleCode,
81 const QString& bundleName,
82 QWidget* parent =
nullptr);
86 ClientManager* clientManager()
const {
return clientManager_; }
87 QString bundleCode()
const {
return bundleCode_; }
88 QString bundleName()
const {
return bundleName_; }
90 bool needsLeiPartyConfig()
const {
return needsLeiPartyConfig_; }
91 void setNeedsLeiPartyConfig(
bool needs) { needsLeiPartyConfig_ = needs; }
93 QString rootLei()
const {
return rootLei_; }
94 void setRootLei(
const QString& lei) { rootLei_ = lei; }
96 QString rootLeiName()
const {
return rootLeiName_; }
97 void setRootLeiName(
const QString& name) { rootLeiName_ = name; }
99 QString leiDatasetSize()
const {
return leiDatasetSize_; }
100 void setLeiDatasetSize(
const QString& size) { leiDatasetSize_ = size; }
102 bool hasOptionalDatasets()
const {
return hasOptionalDatasets_; }
103 void setHasOptionalDatasets(
bool has) { hasOptionalDatasets_ = has; }
105 const QSet<QString>& optedInDatasets()
const {
return optedInDatasets_; }
106 void setOptedInDatasets(
const QSet<QString>& datasets) {
107 optedInDatasets_ = datasets;
113 const std::vector<dq::domain::dataset_bundle_member>&
members()
const {
127 dq::domain::publication_mode
selectedMode()
const {
return selectedMode_; }
128 void setSelectedMode(dq::domain::publication_mode mode) {
129 selectedMode_ = mode;
136 void setAtomic(
bool atomic) { atomic_ = atomic; }
152 bool needsLeiPartyConfig_ =
false;
153 bool hasOptionalDatasets_ =
false;
154 QSet<QString> optedInDatasets_;
156 QString rootLeiName_;
157 QString leiDatasetSize_ = QStringLiteral(
"large");
158 std::vector<dq::domain::dataset_bundle_member> members_;
159 dq::domain::publication_mode selectedMode_ =
160 dq::domain::publication_mode::upsert;
182 inline static std::string_view logger_name =
183 "ores.qt.bundle_summary_page";
185 [[nodiscard]]
static auto& lg() {
187 static auto instance = make_logger(logger_name);
193 void initializePage()
override;
194 int nextId()
const override;
199 void populateTable();
202 QLabel* bundleNameLabel_;
203 QTableView* membersTable_;
204 QStandardItemModel* membersModel_;
205 QLabel* statusLabel_;
206 bool membersLoaded_ =
false;
222 void initializePage()
override;
223 bool validatePage()
override;
224 int nextId()
const override;
230 QVBoxLayout* checkboxLayout_;
231 std::vector<QCheckBox*> checkboxes_;
245 void initializePage()
override;
246 bool validatePage()
override;
247 int nextId()
const override;
254 QLabel* instructionLabel_;
255 QLabel* selectedEntityLabel_;
256 bool leiLoaded_ =
false;
270 void initializePage()
override;
271 bool validatePage()
override;
272 int nextId()
const override;
278 QLabel* summaryLabel_;
279 QComboBox* modeCombo_;
280 QCheckBox* atomicCheckbox_;
293 inline static std::string_view logger_name =
294 "ores.qt.publish_progress_page";
296 [[nodiscard]]
static auto& lg() {
298 static auto instance = make_logger(logger_name);
304 void initializePage()
override;
305 bool isComplete()
const override;
306 int nextId()
const override;
312 QLabel* statusLabel_;
313 QProgressBar* progressBar_;
314 bool publishComplete_ =
false;
315 bool publishSuccess_ =
false;
330 void initializePage()
override;
338 const QString& errorMessage,
339 const std::vector<dq::messaging::bundle_dataset_result>& results);
343 void populateResults();
346 QLabel* overallStatusLabel_;
347 QTableView* resultsTable_;
348 QStandardItemModel* resultsModel_;
350 bool overallSuccess_ =
false;
351 QString errorMessage_;
352 std::vector<dq::messaging::bundle_dataset_result> datasetResults_;
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
Reusable widget for searching and selecting an LEI entity.
Definition LeiEntityPicker.hpp:42
Wizard for publishing a dataset bundle.
Definition PublishBundleWizard.hpp:55
void bundlePublished(const QString &bundleCode)
Emitted when the bundle has been published successfully.
const std::vector< dq::domain::dataset_bundle_member > & members() const
Get the loaded bundle members.
Definition PublishBundleWizard.hpp:113
dq::domain::publication_mode selectedMode() const
Get the selected publication mode.
Definition PublishBundleWizard.hpp:127
bool isAtomic() const
Get the atomic publication flag.
Definition PublishBundleWizard.hpp:135
void setMembers(std::vector< dq::domain::dataset_bundle_member > members)
Set the loaded bundle members.
Definition PublishBundleWizard.hpp:120
Page showing bundle contents and dataset list.
Definition PublishBundleWizard.hpp:178
Page for opting in to optional datasets.
Definition PublishBundleWizard.hpp:217
Page for configuring LEI entity parameters.
Definition PublishBundleWizard.hpp:240
Confirmation page showing publication summary.
Definition PublishBundleWizard.hpp:265
Progress page that executes the publication.
Definition PublishBundleWizard.hpp:289
Results page showing per-dataset publication outcomes.
Definition PublishBundleWizard.hpp:325
void setResults(bool overallSuccess, const QString &errorMessage, const std::vector< dq::messaging::bundle_dataset_result > &results)
Set results data for display.
Definition PublishBundleWizard.cpp:719