Added flags

This commit is contained in:
Torsten Schulz
2024-02-14 08:53:18 +01:00
parent cdc2a01fa4
commit 5c79b70501
257 changed files with 48 additions and 13 deletions

View File

@@ -374,11 +374,18 @@ void App::setupConversationUI(Wt::Json::Object userData) {
Wt::WContainerWidget* App::createInfoWidget(Wt::WVBoxLayout *layout, Wt::Json::Object userData) {
auto infoWidget = layout->addNew<Wt::WContainerWidget>();
auto infoLayout = infoWidget->setLayout(std::make_unique<Wt::WHBoxLayout>());
infoWidget->setStyleClass(Wt::WString("user-conversation-info userlist-gender-{1}").arg((std::string)userData["gender"]));
infoLayout->addWidget(createInfoText(userData), 1);
auto blockButton = createBlockButton(userData);
infoLayout->addWidget(std::move(blockButton));
try {
auto infoLayout = infoWidget->setLayout(std::make_unique<Wt::WHBoxLayout>());
infoWidget->setStyleClass(Wt::WString("user-conversation-info userlist-gender-{1}").arg((std::string)userData["gender"]));
auto flag = infoLayout->addNew<Wt::WImage>(Wt::WLink(std::make_shared<Wt::WFileResource>("../docroot/flags/" + (std::string)userData["isoCountryCode"] + ".png")));
flag->setToolTip(country);
flag->setStyleClass("flag-icon");
infoLayout->addWidget(createInfoText(userData), 1);
auto blockButton = createBlockButton(userData);
infoLayout->addWidget(std::move(blockButton));
} catch(const std::exception &e) {
std::cout << e.what() << std::endl;
}
return infoWidget;
}
@@ -610,6 +617,8 @@ void App::createImprintContainer(Wt::WVBoxLayout *containerLayout) {
"</p>", Wt::TextFormat::UnsafeXHTML);
imprintDialog->contents()->addNew<Wt::WText>("<br> "
"Imprint from <a href=\"https://www.impressum-generator.de\">Imprint Generator</a> of <a href=\"https://www.kanzlei-hasselbach.de/\">Kanzlei Hasselbach, Lawyers for Labor Law and Family Law</a> ", Wt::TextFormat::UnsafeXHTML);
imprintDialog->contents()->addNew<Wt::WText>("<br> "
"Thanks for the flag icons to <a href=\"https://flagpedia.net\">flagpedia.net</a>", Wt::TextFormat::UnsafeXHTML);
imprintDialog->contents()->setMaximumSize(Wt::WLength(60, Wt::LengthUnit::FontEm), Wt::WLength(40, Wt::LengthUnit::FontEm));
imprintDialog->contents()->setOverflow(Wt::Overflow::Auto);
imprintDialog->buttonClicked().connect([=]() { imprintDialog->accept(); });
@@ -692,12 +701,16 @@ void App::showOpenInbox(Wt::Json::Object data) {
auto conversationsTable = contentContainer_->addNew<Wt::WTable>();
conversationsTable->resize(Wt::WLength(15, Wt::LengthUnit::FontEm), Wt::WLength::Auto);
for (Wt::Json::Object &user: (Wt::Json::Array)data["data"]) {
auto row = conversationsTable->rowCount();
auto userItem = conversationsTable->elementAt(row, 0)->addNew<Wt::WContainerWidget>();
Wt::WString partnerName = (std::string)user["name"];
auto userItem = conversationsTable->elementAt(conversationsTable->rowCount(), 0)->addNew<Wt::WText>(Wt::WString("{1} ({2})").arg(partnerName).arg((int)user["age"]));
auto flag = userItem->addNew<Wt::WImage>(Wt::WLink(std::make_shared<Wt::WFileResource>("../docroot/flags/" + (std::string)user["isoCountryCode"] + ".png")));
flag->setToolTip(country);
flag->setStyleClass("flag-icon");
userItem->addNew<Wt::WText>(Wt::WString("{1} ({2})").arg(partnerName).arg((int)user["age"]));
userItem->setStyleClass(Wt::WString("userlist-item userlist-gender-{1}").arg((std::string)user["gender"]));
userItem->setHeight(Wt::WLength(2, Wt::LengthUnit::FontEm));
userItem->setPadding(Wt::WLength(3, Wt::LengthUnit::Pixel));
userItem->setInline(false);
userItem->clicked().connect([=, this]() {
requestConversation(partnerName.toUTF8());
});
@@ -795,6 +808,10 @@ void App::addHistoryButton() {
}
void App::addIdentifier() {
menuContainer_->setPositionScheme(Wt::PositionScheme::Relative);
auto flag = menuContainer_->addNew<Wt::WImage>(Wt::WLink(std::make_shared<Wt::WFileResource>("../docroot/flags/" + isoCountryCode + ".png")));
flag->setToolTip(country);
flag->setStyleClass("flag-icon");
auto identifier = menuContainer_->addNew<Wt::WText>(Wt::WString("{1} ({2}), {3}").arg(userName).arg(isoCountryCode).arg(age));
identifier->setMargin(Wt::WLength(0.3, Wt::LengthUnit::FontEm), Wt::Side::Bottom | Wt::Side::Top);
Wt::WCssDecorationStyle backgroundStyle;
@@ -898,11 +915,17 @@ void App::addItem(const std::string& country, Wt::WContainerWidget *dropDownCont
void App::addUserItemToLayout(Wt::WVBoxLayout *layout, Wt::Json::Object userObject) {
auto userName = (std::string)userObject["name"];
auto userItem = layout->addNew<Wt::WText>(Wt::WString("{1} ({2})").arg(userName).arg((int)userObject["age"]));
userItem->setStyleClass(Wt::WString("userlist-item userlist-gender-{1}").arg((std::string)userObject["gender"]));
userItem->setHeight(Wt::WLength(2, Wt::LengthUnit::FontEm));
userItem->setPadding(Wt::WLength(3, Wt::LengthUnit::Pixel));
userItem->clicked().connect([=, this]() {
auto line = layout->addNew<Wt::WContainerWidget>();
auto flag = line->addNew<Wt::WImage>(Wt::WLink(std::make_shared<Wt::WFileResource>("../docroot/flags/" + (std::string)userObject["isoCountryCode"] + ".png")));
flag->setMaximumSize(Wt::WLength(60, Wt::LengthUnit::Pixel), Wt::WLength(20, Wt::LengthUnit::Pixel));
flag->setHeight(Wt::WLength(2, Wt::LengthUnit::FontEm));
flag->setStyleClass("flag-icon");
flag->setToolTip(userObject["country"]);
line->addNew<Wt::WText>(Wt::WString("{1} ({2})").arg(userName).arg((int)userObject["age"]));
line->setStyleClass(Wt::WString("userlist-item userlist-gender-{1}").arg((std::string)userObject["gender"]));
line->setHeight(Wt::WLength(2, Wt::LengthUnit::FontEm));
line->setPadding(Wt::WLength(3, Wt::LengthUnit::Pixel));
line->clicked().connect([=, this]() {
requestConversation(userName);
});

View File

@@ -450,6 +450,7 @@ Wt::Json::Object Broadcast::createUserList() {
user["age"] = connection->age();
user["gender"] = Wt::asString(connection->gender());
user["country"] = Wt::asString(connection->country());
user["isoCountryCode"] = getCountryIsoCodeByCountry(connection->country());
userList.push_back(user);
}
Wt::Json::Object data;