From f0d0d83a6e8e1a7fb7a7d831eb7af27c18fdafdf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Paukert?= <paukeluk@fit.cvut.cz>
Date: Sun, 5 Apr 2020 14:41:19 +0200
Subject: [PATCH] MainPage redesigned

---
 querying/resources/style.css    |  9 +++++++--
 querying/src/ui_wt/MainPage.cpp | 30 ++++++++++++++++--------------
 querying/src/ui_wt/MainPage.h   |  1 +
 3 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/querying/resources/style.css b/querying/resources/style.css
index cb1c002..e726ae7 100644
--- a/querying/resources/style.css
+++ b/querying/resources/style.css
@@ -20,13 +20,18 @@ button {
 
 .navigation a {
   display: block;
-  background-color: #D3D3D3;
+  background-color: #ffffff;
   text-decoration: none;
   padding: 10px;
 }
 
 .navigation a:hover {
-  background-color: #A9A9A9;
+  background-color: #dcdcdc;
+}
+
+.navigation > li > a {
+  border-radius: 5px;
+  margin-top: 3px;
 }
 
 .navigation > .itemselected > a {
diff --git a/querying/src/ui_wt/MainPage.cpp b/querying/src/ui_wt/MainPage.cpp
index 27db93c..5ab1eb4 100644
--- a/querying/src/ui_wt/MainPage.cpp
+++ b/querying/src/ui_wt/MainPage.cpp
@@ -26,29 +26,22 @@ MainPage::MainPage(const Wt::WEnvironment& env)
   auto availableDocuments = collection.fetchCollection();
 
   auto container = root()->addWidget(Wt::cpp14::make_unique<Wt::WContainerWidget>());
-  container->addNew<Wt::WText>("<h1>Available books to display</h1>");
-
   auto buttonPtr = Wt::cpp14::make_unique<Wt::WPushButton>("Show me more!");
   auto button = buttonPtr.get();
-  auto contents = Wt::cpp14::make_unique<Wt::WStackedWidget>();
-  std::string path;
 
-  Wt::WMenu *menu = container->addNew<Wt::WMenu>(contents.get());
+  container->addNew<Wt::WText>("<h1>Available books to display</h1>");
+
+  Wt::WMenu *menu = container->addNew<Wt::WMenu>();
   menu->setStyleClass("navigation");
-  for (int i = 0; i < 10; i++)
-  {
-    path = availableDocuments.at(i).name;
-    menu->addItem(getName(path), Wt::cpp14::make_unique<Wt::WText>(getDocument(path)));
+  for (int i = 0; i < 10; i++) {
+    menu->addItem(getName(availableDocuments.at(i).name));
   }
+  menu->select(0);
 
   container->addWidget(std::move(buttonPtr));
-  container->addWidget(std::move(contents));
 
   button->clicked().connect([=] {
-    container->clear(); // deletes everything from current container
-    std::string path = availableDocuments.at(menu->currentIndex()).name;
-    container->addNew<Wt::WText>("<h1>" + getName(path) + "</h1>");
-    container->addNew<Wt::WText>(getDocument(path));
+    displayDetail(container, availableDocuments.at(menu->currentIndex()).name);
   });
 }
 
@@ -97,3 +90,12 @@ void MainPage::encode(std::string & data) {
     }
     data.swap(buffer);
 }
+
+void MainPage::displayDetail(Wt::WContainerWidget * container, const std::string & path)
+{
+  // deletes everything from current container
+  container->clear();
+  // Show similar books
+  container->addNew<Wt::WText>("<h1>" + getName(path) + "</h1>");
+  container->addNew<Wt::WText>(getDocument(path));
+}
diff --git a/querying/src/ui_wt/MainPage.h b/querying/src/ui_wt/MainPage.h
index f5bbf53..c7abb6c 100644
--- a/querying/src/ui_wt/MainPage.h
+++ b/querying/src/ui_wt/MainPage.h
@@ -12,4 +12,5 @@ private:
     std::string getName(const std::string & path);
     std::string getDocument(const std::string & path);
     void encode(std::string & content);
+    void displayDetail(Wt::WContainerWidget * container, const std::string & path);
 };
-- 
GitLab