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