Added links page

This commit is contained in:
Torsten Schulz
2024-02-17 14:52:08 +01:00
parent 825f5c924b
commit 7f5ac600a8
4 changed files with 27 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ add_executable(${PROJECT_NAME}
src/app.h src/app.cpp
docroot/text.xml
docroot/ads.txt
docroot/links.csv
)
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)

2
docroot/links.csv Normal file
View File

@@ -0,0 +1,2 @@
"Page Name","url"
"Webtoolkit","https://www.webtoolkit.eu"
1 Page Name url
2 Webtoolkit https://www.webtoolkit.eu

View File

@@ -3,6 +3,8 @@
#include <string>
#include <regex>
#include <iomanip>
#include <fstream>
#include <rapidcsv.h>
#include <curl/curl.h>
#include <libxml2/libxml/parser.h>
#include <libxml2/libxml/tree.h>
@@ -590,9 +592,13 @@ Wt::WWebWidget* App::createTextElement(const std::string& writer, const std::str
void App::createImprintContainer(Wt::WVBoxLayout *containerLayout) {
auto imprintContainer = containerLayout->addNew<Wt::WContainerWidget>();
imprintContainer->setContentAlignment(Wt::AlignmentFlag::Right);
imprintContainer->setContentAlignment(Wt::AlignmentFlag::Justify);
imprintContainer->setPadding(Wt::WLength(0.5, Wt::LengthUnit::FontEm));
auto partnerPagesButton = imprintContainer->addNew<Wt::WText>("Partners");
partnerPagesButton->clicked().connect(this, &App::showPartnerSites);
partnerPagesButton->setFloatSide(Wt::Side::Left);
auto imprintButton = imprintContainer->addNew<Wt::WText>("Imprint");
imprintButton->setFloatSide(Wt::Side::Right);
Wt::WCssDecorationStyle imprintButtonDecorationStyle;
imprintButtonDecorationStyle.setForegroundColor(Wt::StandardColor::White);
imprintButtonDecorationStyle.setBackgroundColor(Wt::WColor(0x42, 0x90, 0x43));
@@ -1059,6 +1065,22 @@ void App::addTimeoutView() {
timeoutRemainingTimer_->start();
}
void App::showPartnerSites() {
contentContainer_->clear();
contentContainer_->setOverflow(Wt::Overflow::Auto);
auto linkContainer = contentContainer_->addNew<Wt::WContainerWidget>();
auto contentLayout = linkContainer->setLayout(std::make_unique<Wt::WVBoxLayout>());
rapidcsv::Document doc("../docroot/links.csv");
for (size_t i = 0; i < doc.GetRowCount(); ++i) {
auto url = doc.GetCell<std::string>(1, i);
auto name = doc.GetCell<std::string>(0, i);
std::cout << url << std::endl;
auto link = Wt::WLink(url);
link.setTarget(Wt::LinkTarget::NewWindow);
contentLayout->addNew<Wt::WAnchor>(link, name);
}
}
void App::itemChanged(Wt::WCheckBox *item, Wt::WContainerWidget *dropDownContainer, Wt::WPushButton *openButton, std::unordered_set<std::string> *saveItems) {
saveItems->clear();
bool unselect = (item->text() == "All" && item->isChecked());

View File

@@ -203,6 +203,7 @@ private:
void connectionTimedOut();
void addLoginTimeView();
void addTimeoutView();
void showPartnerSites();
};
#endif // APP_H