Added links page
This commit is contained in:
@@ -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
2
docroot/links.csv
Normal file
@@ -0,0 +1,2 @@
|
||||
"Page Name","url"
|
||||
"Webtoolkit","https://www.webtoolkit.eu"
|
||||
|
24
src/app.cpp
24
src/app.cpp
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user