Added links page
This commit is contained in:
@@ -12,6 +12,7 @@ add_executable(${PROJECT_NAME}
|
|||||||
src/app.h src/app.cpp
|
src/app.h src/app.cpp
|
||||||
docroot/text.xml
|
docroot/text.xml
|
||||||
docroot/ads.txt
|
docroot/ads.txt
|
||||||
|
docroot/links.csv
|
||||||
)
|
)
|
||||||
|
|
||||||
target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20)
|
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 <string>
|
||||||
#include <regex>
|
#include <regex>
|
||||||
#include <iomanip>
|
#include <iomanip>
|
||||||
|
#include <fstream>
|
||||||
|
#include <rapidcsv.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
#include <libxml2/libxml/parser.h>
|
#include <libxml2/libxml/parser.h>
|
||||||
#include <libxml2/libxml/tree.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) {
|
void App::createImprintContainer(Wt::WVBoxLayout *containerLayout) {
|
||||||
auto imprintContainer = containerLayout->addNew<Wt::WContainerWidget>();
|
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));
|
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");
|
auto imprintButton = imprintContainer->addNew<Wt::WText>("Imprint");
|
||||||
|
imprintButton->setFloatSide(Wt::Side::Right);
|
||||||
Wt::WCssDecorationStyle imprintButtonDecorationStyle;
|
Wt::WCssDecorationStyle imprintButtonDecorationStyle;
|
||||||
imprintButtonDecorationStyle.setForegroundColor(Wt::StandardColor::White);
|
imprintButtonDecorationStyle.setForegroundColor(Wt::StandardColor::White);
|
||||||
imprintButtonDecorationStyle.setBackgroundColor(Wt::WColor(0x42, 0x90, 0x43));
|
imprintButtonDecorationStyle.setBackgroundColor(Wt::WColor(0x42, 0x90, 0x43));
|
||||||
@@ -1059,6 +1065,22 @@ void App::addTimeoutView() {
|
|||||||
timeoutRemainingTimer_->start();
|
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) {
|
void App::itemChanged(Wt::WCheckBox *item, Wt::WContainerWidget *dropDownContainer, Wt::WPushButton *openButton, std::unordered_set<std::string> *saveItems) {
|
||||||
saveItems->clear();
|
saveItems->clear();
|
||||||
bool unselect = (item->text() == "All" && item->isChecked());
|
bool unselect = (item->text() == "All" && item->isChecked());
|
||||||
|
|||||||
Reference in New Issue
Block a user