From 89198a8028291df0b1cb916a5bca9f77bd63a20b Mon Sep 17 00:00:00 2001
From: Joe TS Dell <thunyathep.s@outlook.com>
Date: Thu, 22 Apr 2021 15:33:57 +0200
Subject: [PATCH] update

---
 public/index.html               |  14 +-
 public/js/add_paper.js          |   2 +-
 public/js/citationSheetParse.js | 104 +++++++++++
 public/js/search.js             | 297 ++++++++++++--------------------
 4 files changed, 222 insertions(+), 195 deletions(-)
 create mode 100644 public/js/citationSheetParse.js

diff --git a/public/index.html b/public/index.html
index 0b51e1d..d436148 100644
--- a/public/index.html
+++ b/public/index.html
@@ -404,24 +404,22 @@
   <!-- /////////////////////////////////////// -->
   <!-- Language selector -->
   <!-- full jquery needed -->
-  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
+  <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
   <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.2/js/bootstrap-select.min.js"></script>
+  <script src="./js/popper.min.js"></script>
+  <script src="js/bootstrap.min.js"></script>
   <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/0.8.2/css/flag-icon.min.css">
+  <script src="js/config.js"></script>
+  <script src="js/citationSheetParse.js"></script>
   <script src="js/language.js"></script>
   <script src="js/add_content.js"></script>
   <script src="js/add_paper.js"></script>
-  <script src="js/config.js"></script>
+  
   <!-- search library -->
-  <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
   <script src="https://cdn.jsdelivr.net/npm/fuse.js/dist/fuse.js"></script>
   <link rel="stylesheet" href="./css/search.css">
   <link rel="stylesheet" href="./css/language.css">
   <script src="js/search.js"></script>
-  <!-- KEINE ÄNDERUNGEN NACH DIESER ZEILE -->
-  <!-- <script src="settings.js"> </script> -->
-  <!-- <script src="./js/jquery.slim.min.js"></script> -->
-  <script src="./js/popper.min.js"></script>
-  <script src="js/bootstrap.min.js"></script>
 
 </body>
 
diff --git a/public/js/add_paper.js b/public/js/add_paper.js
index 55db519..065995f 100644
--- a/public/js/add_paper.js
+++ b/public/js/add_paper.js
@@ -13,7 +13,7 @@ function addpaper(item) {
     }
     var keywords = "";
     // check if there is keywords in item
-    if ("keywords" in item.item) {
+    if (item.item.keywords !== undefined) {
       for (var i = 0; i < item.item.keywords.length; i++) {
         console.log(i);
         keywords += '<span class="badge badge-pill badge-light">' + item.item.keywords[i] + '</span>'
diff --git a/public/js/citationSheetParse.js b/public/js/citationSheetParse.js
new file mode 100644
index 0000000..810796a
--- /dev/null
+++ b/public/js/citationSheetParse.js
@@ -0,0 +1,104 @@
+//
+// begining of xlsx to json coversion
+//
+
+var jsonContent = [];
+
+/* set up XMLHttpRequest */
+var url = "./content/CitationSheet.xlsx";
+var xmlHttpRequest = new XMLHttpRequest();
+xmlHttpRequest.open("GET", url, true);
+xmlHttpRequest.responseType = "arraybuffer";
+xmlHttpRequest.onload = function (e) {
+    var arraybuffer = xmlHttpRequest.response;
+
+    // convert data to binary string //
+    var data = new Uint8Array(arraybuffer);
+    var arr = new Array();
+    for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
+    var bstr = arr.join("");
+
+    // Call XLSX //
+    var workbook = XLSX.read(bstr, {
+        type: "binary"
+    });
+
+    // DO SOMETHING WITH workbook HERE //
+    var first_sheet_name = workbook.SheetNames[0];
+    // Get worksheet //
+    var worksheet = workbook.Sheets[first_sheet_name];
+
+    var jsonOutput = XLSX.utils.sheet_to_json(worksheet);
+
+    for (i = 0; i < jsonOutput.length; i++) {
+        var item = {
+            "item": {
+                "title": "",
+                "project": "",
+                "authors": [],
+                "imageLink": "",
+                "keywords": "",
+                "journal": {
+                    "name": "journal",
+                    "volume": "",
+                    "year": "",
+                    "pages": ""
+                },
+                "DOI": ""
+            },
+            "links": {
+                "pdf": "",
+                "url": "",
+                "demo": ""
+            }
+        }
+        var authors = jsonOutput[i].Authors.replace("and ", "").trim().split(",");
+
+        item["item"].title = jsonOutput[i].Titel;
+        item["item"].project = jsonOutput[i].Project;
+        for (j = 0; j < authors.length; j++) {
+            var author = {
+                "firstName": "",
+                "lastName": ""
+            }
+            if (authors[j].trim().split(" ").length == 1) {
+                author["firstName"] = authors[j].trim().split(".")[0];
+                author["lastName"] = authors[j].trim().split(".")[1];
+                item["item"].authors.push(author);
+            } else if (authors[j].trim().split(" ").length == 2) {
+                author["firstName"] = authors[j].trim().split(" ")[0];
+                author["lastName"] = authors[j].trim().split(" ")[1];
+                item["item"].authors.push(author);
+            } else if (authors[j].trim().split(" ").length == 3) {
+                author["firstName"] = authors[j].trim().split(" ")[0];
+                author["lastName"] = authors[j].trim().split(" ")[2];
+                item["item"].authors.push(author);
+            }
+
+        }
+        item["item"].imageLink = jsonOutput[i]["Path to demo image"]
+        if (jsonOutput[i].Keywords != undefined) {
+            item["item"].keywords = jsonOutput[i].Keywords.split(",");
+        } else {
+            item["item"].keywords = jsonOutput[i].Keywords;
+        }
+        item["item"].journal.name = jsonOutput[i].Journal;
+        item["item"].journal.volume = jsonOutput[i].Volume;
+        item["item"].journal.year = jsonOutput[i].Year;
+        item["item"].journal.pages = jsonOutput[i].Pages;
+        item["item"].DOI = jsonOutput[i].DOI;
+        item["links"].pdf = jsonOutput[i].URL;
+        item["links"].url = jsonOutput[i].URL;
+        item["links"].demo = jsonOutput[i].URL;
+
+        jsonContent.push(item);
+
+    }
+    // console.log(jsonContent);
+
+}
+xmlHttpRequest.send();
+
+//
+// ending of xlsx to json coversion
+//
diff --git a/public/js/search.js b/public/js/search.js
index 352f451..77a34bb 100644
--- a/public/js/search.js
+++ b/public/js/search.js
@@ -3,22 +3,25 @@
 const options = {
     includeScore: true,
     // Search in `author` and in `tags` array
-    keys: ["item.title","item.keywords",
-    "item.author.firstName", "item.author.lastName"]
+    keys: ["item.title", "item.keywords",
+        "item.author.firstName", "item.author.lastName"
+    ]
 }
 const options_paper = {
     includeScore: true,
     // Search in `author` and in `tags` array
-    keys: ["item.title","item.keywords",
-    "item.author.firstName", "item.author.lastName"]
+    keys: ["item.title", "item.keywords",
+        "item.author.firstName", "item.author.lastName"
+    ]
 }
 
 // start search
 var searchanswer
 var searchanswer_paper
-function search(){
-    const fuse  = new Fuse(stuff, options);
-    searchanswer = fuse.search(document.getElementById("search-input").value) 
+
+function search() {
+    const fuse = new Fuse(stuff, options);
+    searchanswer = fuse.search(document.getElementById("search-input").value)
 
     var new_row = document.getElementById("row_main")
     new_row.innerHTML = "";
@@ -30,9 +33,10 @@ function search(){
     // alert(searchanswer);
     console.log(searchanswer);
 }
-function search_paper(){
-    const fuse  = new Fuse(stuff_paper, options);
-    searchanswer_paper = fuse.search(document.getElementById("search-input_paper").value) 
+
+function search_paper() {
+    const fuse = new Fuse(stuff_paper, options);
+    searchanswer_paper = fuse.search(document.getElementById("search-input_paper").value)
 
     var new_row = document.getElementById("cont_paper")
     new_row.innerHTML = "";
@@ -61,133 +65,55 @@ var stuff_paper = []
 //     });
 
 
-  //
- // begining of xlsx to json coversion
-//
-
-var jsonContent = [];
-
-/* set up XMLHttpRequest */
-var url = "./content/CitationSheet.xlsx";
-var xmlHttpRequest = new XMLHttpRequest();
-xmlHttpRequest.open("GET", url, true);
-xmlHttpRequest.responseType = "arraybuffer";
-
-xmlHttpRequest.onload = function(e) {
-    var arraybuffer = xmlHttpRequest.response;
-
-    // convert data to binary string //
-    var data = new Uint8Array(arraybuffer);
-    var arr = new Array();
-    for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
-            var bstr = arr.join("");
-
-            // Call XLSX //
-            var workbook = XLSX.read(bstr, {
-                type: "binary"
-            });
-
-            // DO SOMETHING WITH workbook HERE //
-            var first_sheet_name = workbook.SheetNames[0];
-            // Get worksheet //
-            var worksheet = workbook.Sheets[first_sheet_name];
 
-            var jsonOutput = XLSX.utils.sheet_to_json(worksheet);
-
-            for (i=0; i < jsonOutput.length; i++){
-                var item = {
-                    "item": {"title": "",
-                    "project": "",
-                    "authors": [],
-                    "imageLink":"",
-                    "keywords":"",
-                    "journal": {"name":"journal","volume":"","year":"","pages":""},
-                    "DOI":""},
-                    "links": {"pdf":"","url": "","demo": ""}
-                  }
-                var authors = jsonOutput[i].Authors.replace("and " ,"").trim().split(",");
-
-                item["item"].title = jsonOutput[i].Titel;
-                item["item"].project = jsonOutput[i].Project;
-                for (j=0; j < authors.length; j++){
-                    var author = {
-                        "firstName": "",
-                        "lastName": ""
-                    }
-                    if (authors[j].trim().split(" ").length == 1){
-                        author["firstName"] = authors[j].trim().split(".")[0];
-                        author["lastName"] = authors[j].trim().split(".")[1];
-                        item["item"].authors.push(author);
-                    }
-                    else if (authors[j].trim().split(" ").length == 2){
-                        author["firstName"] = authors[j].trim().split(" ")[0];
-                        author["lastName"] = authors[j].trim().split(" ")[1];
-                        item["item"].authors.push(author);
-                    }
-                    else if (authors[j].trim().split(" ").length == 3) {
-                        author["firstName"] = authors[j].trim().split(" ")[0];
-                        author["lastName"] = authors[j].trim().split(" ")[2];
-                        item["item"].authors.push(author);
-                    }
-                    
-                }
-                item["item"].imageLink = jsonOutput[i]["Path to demo image"]
-                if (jsonOutput[i].Keywords != undefined){
-                    item["item"].keywords = jsonOutput[i].Keywords.split(",");
-                }
-                else {
-                    item["item"].keywords = jsonOutput[i].Keywords;
-                }
-                item["item"].journal.name = jsonOutput[i].Journal;
-                item["item"].journal.volume = jsonOutput[i].Volume;
-                item["item"].journal.year = jsonOutput[i].Year;
-                item["item"].journal.pages = jsonOutput[i].Pages;
-                item["item"].DOI = jsonOutput[i].DOI;
-                item["links"].pdf = jsonOutput[i].URL;
-                item["links"].url = jsonOutput[i].URL;
-                item["links"].demo = jsonOutput[i].URL;
-
-                jsonContent.push(item);
-
-            }
-            console.log(jsonContent);
-
-}
-xmlHttpRequest.send();
-
-  //
- // ending of xlsx to json coversion
-//
 
+$(document).ready(function () {
+    $.getJSON("./content/content.json", function (result) {
+        stuff = result;
+        var new_row = document.getElementById("row_main")
+        new_row.innerHTML = "";
+        var arrayLength = stuff.length;
+        for (var i = 0; i < arrayLength; i++) {
+            addcontent(stuff[i]);
+            //Do something
+        }
+    });
 
-$(document).ready(function(){
-    $.getJSON("./content/content.json", function(result){
-    stuff = result;
-    var new_row = document.getElementById("row_main")
+    // get paper content is commented out for back up
+    // $.getJSON("./content/paper2.json", function (result) {
+    //     stuff_paper = result;
+    //     var new_row = document.getElementById("cont_paper")
+    //     new_row.innerHTML = "";
+    //     var arrayLength = stuff_paper.length;
+    //     for (var i = 0; i < arrayLength; i++) {
+
+    //         if (Math.abs(arrayLength - i) <= max_paper_list) {
+    //             console.log("close to " + i)
+    //             addpaper(stuff_paper[i]);
+    //         }
+    //         //Do something
+    //     }
+    // });
+
+    // get paper from the Sabo result
+    stuff_paper = jsonContent;
+    var new_row = document.getElementById("cont_paper")
     new_row.innerHTML = "";
-    var arrayLength = stuff.length;
+    var arrayLength = stuff_paper.length;
     for (var i = 0; i < arrayLength; i++) {
-        addcontent(stuff[i]);
+
+        if (Math.abs(arrayLength - i) <= max_paper_list) {
+            console.log("close to " + i)
+            addpaper(stuff_paper[i]);
+        }
         //Do something
     }
-    });
-    $.getJSON("./content/paper2.json", function(result){
-        stuff_paper = result;
-        var new_row = document.getElementById("cont_paper")
-        new_row.innerHTML = "";
-        var arrayLength = stuff_paper.length;
-        for (var i = 0; i < arrayLength; i++) {
 
-            if(Math.abs(arrayLength - i) <= max_paper_list){
-                console.log("close to " + i)
-                addpaper(stuff_paper[i]);
-            }
-            //Do something
-        }
-        });
-    var userLang = navigator.language || navigator.userLanguage; 
+
+
+    var userLang = navigator.language || navigator.userLanguage;
     console.log("The language is: " + userLang);
-    if (userLang.includes("de")){
+    if (userLang.includes("de")) {
         console.log(true)
         var select1 = document.getElementById('selectpicker1');
         console.log(select1)
@@ -204,78 +130,77 @@ $(document).ready(function(){
 
 
 // searchbar and start search
-function searchToggle(obj, evt){
+function searchToggle(obj, evt) {
     console.log("arrive")
     var container = $(obj).closest('.search-wrapper');
-        if(!container.hasClass('active')){
-            container.addClass('active');
-            evt.preventDefault();
-            console.log("first")
-        }
-        else if(container.hasClass('active') && $(obj).closest('.input-holder').length == 0){
-            container.removeClass('active');
-            // clear input
-            console.log("second")
-            var new_row = document.getElementById("row_main")
-            new_row.innerHTML = "";
-            var arrayLength = stuff.length;
-            for (var i = 0; i < arrayLength; i++) {
-                addcontent(stuff[i]);
-                //Do something
-            }
-            container.find('.search-input').val('');
-        } else {
-            console.log("search")
-            search();
-            // addcontent();
+    if (!container.hasClass('active')) {
+        container.addClass('active');
+        evt.preventDefault();
+        console.log("first")
+    } else if (container.hasClass('active') && $(obj).closest('.input-holder').length == 0) {
+        container.removeClass('active');
+        // clear input
+        console.log("second")
+        var new_row = document.getElementById("row_main")
+        new_row.innerHTML = "";
+        var arrayLength = stuff.length;
+        for (var i = 0; i < arrayLength; i++) {
+            addcontent(stuff[i]);
+            //Do something
         }
+        container.find('.search-input').val('');
+    } else {
+        console.log("search")
+        search();
+        // addcontent();
+    }
 }
-function searchToggle_paper(obj, evt){
+
+function searchToggle_paper(obj, evt) {
     console.log("arrive")
     var container = $(obj).closest('.search-wrapper');
-        if(!container.hasClass('active')){
-            container.addClass('active');
-            evt.preventDefault();
-            console.log("first")
-        }
-        else if(container.hasClass('active') && $(obj).closest('.input-holder').length == 0){
-            container.removeClass('active');
-            // clear input
-            console.log("second")
-            var new_row = document.getElementById("cont_paper")
-            new_row.innerHTML = "";
-            var arrayLength = stuff_paper.length;
-            for (var i = 0; i < arrayLength; i++) {
-                if(Math.abs(arrayLength - i) <= 2){
-                    console.log("close to " + i)
-                    addpaper(stuff_paper[i]);
-                }
-
-                //Do something
+    if (!container.hasClass('active')) {
+        container.addClass('active');
+        evt.preventDefault();
+        console.log("first")
+    } else if (container.hasClass('active') && $(obj).closest('.input-holder').length == 0) {
+        container.removeClass('active');
+        // clear input
+        console.log("second")
+        var new_row = document.getElementById("cont_paper")
+        new_row.innerHTML = "";
+        var arrayLength = stuff_paper.length;
+        for (var i = 0; i < arrayLength; i++) {
+            if (Math.abs(arrayLength - i) <= 2) {
+                console.log("close to " + i)
+                addpaper(stuff_paper[i]);
             }
-            container.find('#search-input_paper').val('');
-        } else {
-            console.log("search")
-            search_paper();
-            // addcontent();
+
+            //Do something
         }
+        container.find('#search-input_paper').val('');
+    } else {
+        console.log("search")
+        search_paper();
+        // addcontent();
+    }
 }
 
 // search on enter
 var input = document.getElementById("search-input");
-input.addEventListener("keyup", function(event) {
-  if (event.keyCode === 13) {
-   event.preventDefault();
+input.addEventListener("keyup", function (event) {
+    if (event.keyCode === 13) {
+        event.preventDefault();
 
-   document.getElementById("search-button").click();
-  }
+        document.getElementById("search-button").click();
+    }
 });
 
 var input = document.getElementById("search-input_paper");
-input.addEventListener("keyup", function(event) {
-  if (event.keyCode === 13) {
-   event.preventDefault();
+input.addEventListener("keyup", function (event) {
+    if (event.keyCode === 13) {
+        event.preventDefault();
 
-   document.getElementById("search-button_paper").click();
-  }
-});
+        document.getElementById("search-button_paper").click();
+    }
+});
\ No newline at end of file
-- 
GitLab