From 5ef7f06b8e01a2aa7b389286277fba071c2a7468 Mon Sep 17 00:00:00 2001 From: Torsten Schulz Date: Mon, 8 Apr 2024 12:22:42 +0200 Subject: [PATCH] Added links page --- docroot/links.csv | 1 + src/app.cpp | 56 +++++++++++++++++++++++++++++------------------ src/app.h | 2 ++ 3 files changed, 38 insertions(+), 21 deletions(-) diff --git a/docroot/links.csv b/docroot/links.csv index 3b98f18..c7d147a 100644 --- a/docroot/links.csv +++ b/docroot/links.csv @@ -1,2 +1,3 @@ "Page Name","url" "Webtoolkit","https://www.webtoolkit.eu" +"Your Part","https://your-part.net" diff --git a/src/app.cpp b/src/app.cpp index f1a0902..948cdc9 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -49,22 +49,9 @@ App::App(const Wt::WEnvironment &env, Broadcast &server): initApp(); updateLocation(); enableUpdates(true); - userName = server.userNameForSessionId(sessionId()); - auto verticalContainer = createVerticalLayout(); - createHeadContainer(verticalContainer); - createMenuContainer(verticalContainer); - auto horizontalContainer = createActionLayout(verticalContainer); - createUserListContainer(horizontalContainer); - createContentContainer(horizontalContainer); - createImprintContainer(verticalContainer); - reSetUser(); - if (userName == "") { - showLogin(); -// Wt::WMessageBox::show("Cookie information", "By technical reasons we set a cookie. This cookie isn't tracking anything or will be saved in a database.", Wt::StandardButton::Ok); - } else { - startChat(); - } + showStandardPage(); messageReceived_ = std::make_unique("newmessage.mp3"); + onInternalPathChanged(internalPath()); } App::~App() { @@ -84,6 +71,28 @@ void App::initApp() { setCssTheme(""); useStyleSheet("style.css"); messageResourceBundle().use("../docroot/text"); + internalPathChanged().connect(this, &App::onInternalPathChanged); +} + +void App::showStandardPage() { + userName = server_.userNameForSessionId(sessionId()); + if (root()) { + root()->clear(); + initApp(); + } + auto verticalContainer = createVerticalLayout(); + createHeadContainer(verticalContainer); + createMenuContainer(verticalContainer); + auto horizontalContainer = createActionLayout(verticalContainer); + createUserListContainer(horizontalContainer); + createContentContainer(horizontalContainer); + createImprintContainer(verticalContainer); + reSetUser(); + if (userName == "") { + showLogin(); + } else { + startChat(); + } } void App::reSetUser() { @@ -495,27 +504,32 @@ void App::imageUploaded(Wt::WFileUpload *fileWidget, std::shared_ptr App::resizeImages(std::list &images, int maxWidth, int maxHeight) { std::list resizedImages; for (auto& img : images) { - // Berechne das Verhältnis des Originalbildes double originalWidth = img.columns(); double originalHeight = img.rows(); double widthRatio = static_cast(maxWidth) / originalWidth; double heightRatio = static_cast(maxHeight) / originalHeight; double resizeRatio = std::min(widthRatio, heightRatio); // Nehme das kleinere Verhältnis, um innerhalb der Grenzen zu bleiben - - // Berechne die neuen Dimensionen, um die Proportionen beizubehalten int newWidth = static_cast(originalWidth * resizeRatio); int newHeight = static_cast(originalHeight * resizeRatio); - - // Wende die neue Größe an, wenn eine Verkleinerung erforderlich ist if (resizeRatio < 1) { img.resize(Magick::Geometry(newWidth, newHeight)); } - resizedImages.push_back(img); } return resizedImages; } +void App::onInternalPathChanged(const std::string &path) { + std::cout << __LINE__ << "'" << path << "'" << std::endl << std::endl; + if (path.empty() || path == "/") { + showStandardPage(); + } else if (path == "/partners") { + showPartnerSites(); + } else { + setInternalPath("/", true); + } +} + Wt::WContainerWidget* App::createSmileyButton(Wt::WHBoxLayout* inputLayout, Wt::WLineEdit* inputLine, std::shared_ptr cursorPosition) { auto smileyButton = inputLayout->addNew(); smileyButton->addNew(Wt::WLink("/smileys.png")); diff --git a/src/app.h b/src/app.h index b59de2f..b9b0e70 100644 --- a/src/app.h +++ b/src/app.h @@ -210,6 +210,8 @@ private: void imageUploaded(Wt::WFileUpload *fileWidget, std::shared_ptr localImage, Wt::WImage *image, Wt::WPushButton *okButton); std::list resizeImages(std::list& images, int maxWidth, int maxHeight); bool isAnimatedGIF(const Magick::Blob &blob); + void showStandardPage(); + void onInternalPathChanged(const std::string &path); }; #endif // APP_H