From a34b52d518b0ecdf9da3cdb39c15009cab43d412 Mon Sep 17 00:00:00 2001
From: Moises Sacal <moisbo@gmail.com>
Date: Tue, 1 Oct 2019 17:03:33 +1000
Subject: [PATCH] organised files, added numFound

---
 src/{lib => components}/Delegate.js           |  0
 src/components/RegisterEvents.js              | 44 ++++++++++++++++++
 src/components/Router.js                      | 17 +++----
 src/{lib => components}/SolrService.js        |  4 +-
 src/components/{ => views}/Footer.js          |  0
 src/components/{ => views}/Header.js          |  0
 src/components/{ => views}/ListDocs.js        |  0
 src/components/{ => views}/Loading.js         |  0
 src/components/{ => views}/Main.js            |  9 +++-
 src/components/{ => views}/Search.js          |  0
 src/components/{ => views}/ViewDoc.js         |  0
 src/components/{ => views}/ViewError.js       |  0
 .../{ => views}/ViewErrorElement.js           |  0
 src/components/{ => views}/ViewSubDoc.js      |  2 -
 src/components/{ => views}/ViewTable.js       |  0
 src/index.js                                  | 46 +++----------------
 16 files changed, 68 insertions(+), 54 deletions(-)
 rename src/{lib => components}/Delegate.js (100%)
 create mode 100644 src/components/RegisterEvents.js
 rename src/{lib => components}/SolrService.js (89%)
 rename src/components/{ => views}/Footer.js (100%)
 rename src/components/{ => views}/Header.js (100%)
 rename src/components/{ => views}/ListDocs.js (100%)
 rename src/components/{ => views}/Loading.js (100%)
 rename src/components/{ => views}/Main.js (52%)
 rename src/components/{ => views}/Search.js (100%)
 rename src/components/{ => views}/ViewDoc.js (100%)
 rename src/components/{ => views}/ViewError.js (100%)
 rename src/components/{ => views}/ViewErrorElement.js (100%)
 rename src/components/{ => views}/ViewSubDoc.js (92%)
 rename src/components/{ => views}/ViewTable.js (100%)

diff --git a/src/lib/Delegate.js b/src/components/Delegate.js
similarity index 100%
rename from src/lib/Delegate.js
rename to src/components/Delegate.js
diff --git a/src/components/RegisterEvents.js b/src/components/RegisterEvents.js
new file mode 100644
index 0000000..3149fa6
--- /dev/null
+++ b/src/components/RegisterEvents.js
@@ -0,0 +1,44 @@
+const Header = require('./views/header');
+const Main = require('./views/main');
+const Footer = require('./views/footer');
+const Search = require('./views/search');
+const ViewDoc = require('./views/ViewDoc');
+const ViewError = require('./views/ViewError');
+const delegate = require('./Delegate');
+const solrService = require('./SolrService');
+
+const RegisterEvents = function (state) {
+  const renderApp = function (data, into) {
+    into.innerHTML = [Header(data), Search(data), Main(data), Footer(data)].join('');
+  };
+
+  const app = document.querySelector('#app');
+
+  delegate('#app', 'click', '#search-text', async () => {
+    const search = document.querySelector('#text-to-search');
+    const {data, status} = await solrService.search({api: state.config.api}, search.value);
+    state.main.docs = data.docs;
+    state.main.numFound = data.numFound;
+    renderApp(state, app);
+  });
+
+  delegate('#app', 'keyup', '#text-to-search', async (event) => {
+    if (event.keyCode === 13) {
+      event.preventDefault();
+      const search = document.querySelector('#text-to-search');
+      const {data, status} = await solrService.search({api: state.config.api}, search.value);
+      state.main.docs = data.docs;
+      state.main.numFound = data.numFound;
+      renderApp(state, app);
+    }
+  });
+
+  delegate('#app', 'click', '#search-text-1', async () => {
+    const search = document.querySelector('#text-to-search');
+    const {data, status} = await solrService.search({api: state.config.api}, search.value);
+    state.main.docs = data;
+    renderApp(state, app);
+  });
+};
+
+module.exports = RegisterEvents;
\ No newline at end of file
diff --git a/src/components/Router.js b/src/components/Router.js
index dba5c07..9a49693 100644
--- a/src/components/Router.js
+++ b/src/components/Router.js
@@ -1,10 +1,10 @@
-const Header = require('./header');
-const Main = require('./main');
-const Footer = require('./footer');
-const Search = require('./search');
-const ViewDoc = require('./ViewDoc');
-const ViewError = require('./ViewError');
-const solrService = require('../lib/SolrService');
+const Header = require('./views/header');
+const Main = require('./views/main');
+const Footer = require('./views/footer');
+const Search = require('./views/search');
+const ViewDoc = require('./views/ViewDoc');
+const ViewError = require('./views/ViewError');
+const solrService = require('./SolrService');
 
 const Router = async function (state) {
   const route = window.location.hash;
@@ -26,7 +26,8 @@ const Router = async function (state) {
   } else {
     const {data, status} = await solrService.searchAll({api: state.config.api});
     if (status === 200) {
-      state.main.docs = data;
+      state.main.docs = data.docs;
+      state.main.numFound = data.numFound;
       app.innerHTML = [Header(state), Search(state), Main(state), Footer(state)].join('');
     } else {
       app.innerHTML = [Header(state), Search(state), ViewError(state), Footer(state)].join('');
diff --git a/src/lib/SolrService.js b/src/components/SolrService.js
similarity index 89%
rename from src/lib/SolrService.js
rename to src/components/SolrService.js
index ad707cb..9005a7a 100644
--- a/src/lib/SolrService.js
+++ b/src/components/SolrService.js
@@ -5,7 +5,7 @@ const SolrService = {
     try {
       const req = await axios.get(`${config.api}/select?q=*%3A*`);
       if (req.data) {
-        return {data: req.data['response']['docs'], status: req.status};
+        return {data: req.data['response'], status: req.status};
       } else {
         return {data: [], status: req.status};
       }
@@ -36,7 +36,7 @@ const SolrService = {
       data = encodeURIComponent(`${data}`);
       const req = await axios.get(`${config.api}/${param}${data}`);
       if (req.data) {
-        return {data: req.data['response']['docs'], status: req.status};
+        return {data: req.data['response'], status: req.status};
       } else {
         return {data: [], status: req.status};
       }
diff --git a/src/components/Footer.js b/src/components/views/Footer.js
similarity index 100%
rename from src/components/Footer.js
rename to src/components/views/Footer.js
diff --git a/src/components/Header.js b/src/components/views/Header.js
similarity index 100%
rename from src/components/Header.js
rename to src/components/views/Header.js
diff --git a/src/components/ListDocs.js b/src/components/views/ListDocs.js
similarity index 100%
rename from src/components/ListDocs.js
rename to src/components/views/ListDocs.js
diff --git a/src/components/Loading.js b/src/components/views/Loading.js
similarity index 100%
rename from src/components/Loading.js
rename to src/components/views/Loading.js
diff --git a/src/components/Main.js b/src/components/views/Main.js
similarity index 52%
rename from src/components/Main.js
rename to src/components/views/Main.js
index 450fedb..673c3f5 100644
--- a/src/components/Main.js
+++ b/src/components/views/Main.js
@@ -1,11 +1,16 @@
+const $ = require("jquery");
 const ListDocs = require('./ListDocs');
 
 const Main = function (data) {
-
   let html = '';
-
   html = [ListDocs(data)].join('');
 
+  html += `<div class="container">
+  <br/>
+  <div class="text-center">
+  <p>Results: ${data.main.numFound}</p>
+  </div>`;
+
   return html;
 };
 
diff --git a/src/components/Search.js b/src/components/views/Search.js
similarity index 100%
rename from src/components/Search.js
rename to src/components/views/Search.js
diff --git a/src/components/ViewDoc.js b/src/components/views/ViewDoc.js
similarity index 100%
rename from src/components/ViewDoc.js
rename to src/components/views/ViewDoc.js
diff --git a/src/components/ViewError.js b/src/components/views/ViewError.js
similarity index 100%
rename from src/components/ViewError.js
rename to src/components/views/ViewError.js
diff --git a/src/components/ViewErrorElement.js b/src/components/views/ViewErrorElement.js
similarity index 100%
rename from src/components/ViewErrorElement.js
rename to src/components/views/ViewErrorElement.js
diff --git a/src/components/ViewSubDoc.js b/src/components/views/ViewSubDoc.js
similarity index 92%
rename from src/components/ViewSubDoc.js
rename to src/components/views/ViewSubDoc.js
index 0148a33..e79c436 100644
--- a/src/components/ViewSubDoc.js
+++ b/src/components/views/ViewSubDoc.js
@@ -8,7 +8,6 @@ const ViewSubDoc = function (ele) {
       const dummy = $('<div>');
       const sub = $('<div>');
       const a = $('<a>');
-      console.log(ele);
       ele = JSON.parse(ele);
       const href = `/#view/${ele['@id']}`;
       a.attr('href', href);
@@ -16,7 +15,6 @@ const ViewSubDoc = function (ele) {
       a.text(ele['name']);
       a.addClass("link");
       sub.append(a);
-      console.log(a.html());
       dummy.append(sub);
       return dummy;
     } else {
diff --git a/src/components/ViewTable.js b/src/components/views/ViewTable.js
similarity index 100%
rename from src/components/ViewTable.js
rename to src/components/views/ViewTable.js
diff --git a/src/index.js b/src/index.js
index 14d8c06..7f100b5 100644
--- a/src/index.js
+++ b/src/index.js
@@ -4,17 +4,11 @@ import 'bootstrap';
 import './styles/styles.scss';
 import './images/logo.svg';
 
-const delegate = require('./lib/Delegate');
-const solrService = require('./lib/SolrService');
-
 const config = require('../config.json');
 
 //App view components
-const Header = require('./components/header');
-const Main = require('./components/main');
-const Footer = require('./components/footer');
-const Search = require('./components/search');
 const Router = require('./components/Router');
+const RegisterEvents = require('./components/RegisterEvents');
 
 //Default state
 let state = {
@@ -22,7 +16,7 @@ let state = {
     title: 'Data Portal',
     URL: '/',
     logo: 'images/logo.svg',
-    help: 'help',
+    help: 'Help',
     helpURL: '',
     portal: 'Back to Stash',
     portalURL: 'http://stash.research.uts.edu.au',
@@ -36,42 +30,14 @@ let state = {
     searchText: 'Search'
   },
   main: {
-    docs: []
+    docs: [],
+    doc: {},
+    numFound: 0
   },
   config: config
 };
 
-const renderApp = function (data, into) {
-  into.innerHTML = [Header(data), Search(data), Main(data), Footer(data)].join('');
-};
-
-const app = document.querySelector('#app');
-
-// Register Events
-
-delegate('#app', 'click', '#search-text', async () => {
-  const search = document.querySelector('#text-to-search');
-  const {data, status} = await solrService.search({api: state.config.api}, search.value);
-  state.main.docs = data;
-  renderApp(state, app);
-});
-
-delegate('#app', 'keyup', '#text-to-search', async (event) => {
-  if (event.keyCode === 13) {
-    event.preventDefault();
-    const search = document.querySelector('#text-to-search');
-    const {data, status} = await solrService.search({api: state.config.api}, search.value);
-    state.main.docs = data;
-    renderApp(state, app);
-  }
-});
-
-delegate('#app', 'click', '#search-text-1', async () => {
-  const search = document.querySelector('#text-to-search');
-  const {data, status} = await solrService.search({api: state.config.api}, search.value);
-  state.main.docs = data;
-  renderApp(state, app);
-});
+RegisterEvents(state);
 
 window.onhashchange = main;
 
-- 
GitLab