diff --git a/public/js/citationSheetParse.js b/public/js/citationSheetParse.js index 9f5f21dd1543c3833a521e44835235b7ededc07c..250cf945acf3ad7d128653da4fed7fdd48d58a2c 100644 --- a/public/js/citationSheetParse.js +++ b/public/js/citationSheetParse.js @@ -4,182 +4,171 @@ var jsonContent = []; var bibAuthors = ""; -var bit1stAuthorLN = ""; -var url = "./content/CitationSheet3.xlsx"; +var bit1stAuthorLN =""; + + + +/* set up XMLHttpRequest */ +var url = "./content/CitationSheet_June.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" + }); -var load_excel_citation = function (cb) { - 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); - // console.log(jsonOutput); - - for (i = 0; i < jsonOutput.length; i++) { - var authors; - if (jsonOutput[i].Authors != undefined) { - authors = jsonOutput[i].Authors.replace("and ", "").trim().split(","); - } - var bibAuthors; - var item = { - "item": { - "title": "", - "project": "", - "authors": [], - "imageLink": "", - "keywords": "", - "journal": { - "name": "journal", - "volume": "", - "year": "", - "pages": "" - }, - "conference": { - "name": "", - "place": "", - "date": "" - }, - "DOI": "", - "publisher": "", - "type": "", - "project": "", - "reviewed": "", - "open": "" - + // 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); + // console.log(jsonOutput); + + for (i = 0; i < jsonOutput.length; i++) { + var authors; + if (jsonOutput[i].Authors != undefined){ + authors = jsonOutput[i].Authors.replace("and ", "").trim().split(","); + } + var bibAuthors; + var item = { + "item": { + "title": "", + "project": "", + "authors": [], + "imageLink": "", + "keywords": "", + "journal": { + "name": "journal", + "volume": "", + "year": "", + "pages": "" }, - "links": { - "pdf": "", - "url": "", - "demo": "" + "conference":{ + "name":"", + "place":"", + "date":"" }, - "bibtex": "" - } - - - bibAuthors = ""; - bit1stAuthorLN = ""; - 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); - bibAuthors += authors[j].trim().split(".")[1] + ", " + authors[j].trim().split(".")[0] + " and "; - } 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); - bibAuthors += authors[j].trim().split(" ")[1] + ", " + authors[j].trim().split(" ")[0] + " and "; - } 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); - bibAuthors += authors[j].trim().split(" ")[2] + ", " + authors[j].trim().split(" ")[0] + " and "; - } - - } - - if (jsonOutput[i].Keywords != undefined) { - item["item"].keywords = jsonOutput[i].Keywords.split(","); - } else { - item["item"].keywords = jsonOutput[i].Keywords; - } - - if (authors[0].split(" ").length == 3) { - bit1stAuthorLN = authors[0].split(" ")[2]; - } else if (authors[0].split(" ").length == 2) { - bit1stAuthorLN = authors[0].split(" ")[1]; - } else if (authors[0].split(" ").length == 1) { - bit1stAuthorLN = authors[0].split(" ")[0]; - } - - item["item"].title = jsonOutput[i].Titel; - item["item"].project = jsonOutput[i].Project; - item["item"].imageLink = jsonOutput[i]["Path to demo image"] - 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"].conference.name = jsonOutput[i].Conference; - item["item"].conference.place = jsonOutput[i]["City and Country"] - item["item"].conference.date = jsonOutput[i].Date; - item["item"].publisher = jsonOutput[i].Publisher; - item["item"].type = jsonOutput[i]["Type of Work"]; - item["item"].project = jsonOutput[i].Project; - item["item"].reviewed = jsonOutput[i]["Peer-Reviewed"]; - item["item"].open = jsonOutput[i]["Open Access"]; - item["item"].DOI = jsonOutput[i].DOI; - item["links"].pdf = jsonOutput[i].PDF_Link; - item["links"].url = jsonOutput[i].URL; - item["links"].demo = jsonOutput[i].Demo; - - - var month = ""; - if (jsonOutput[i].Date != undefined) { - month = jsonOutput[i].Date.split(",")[0].trim(); + "DOI": "", + "publisher":"", + "type":"", + "project":"", + "reviewed":"", + "open":"" + + }, + "links": { + "pdf": "", + "url": "", + "demo": "" + }, + "bibtex" : "" + } + + + bibAuthors = ""; + bit1stAuthorLN =""; + for (j = 0; j < authors.length; j++) { + var author = { + "firstName": "", + "lastName": "" } - - - //// BibTex ///////////////////// - item["bibtex"] = "@article{" + bit1stAuthorLN + jsonOutput[i].Year + "," + - "title={" + jsonOutput[i].Titel + - "},author={" + bibAuthors.trim().substring(0, bibAuthors.trim().lastIndexOf(" ")) + - "},journal={" + jsonOutput[i].Journal + - "},volume={" + jsonOutput[i].Volume + - "},month={" + month + - "},pages={" + jsonOutput[i].Pages + - "},year={" + jsonOutput[i].Year + - "},DOI ={" + jsonOutput[i].DOI + - "},url ={" + jsonOutput[i].URL + - "}}" - - jsonContent.push(item); - if (i == jsonOutput.length - 1) { - cb() // callback + 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); + bibAuthors+=authors[j].trim().split(".")[1] + ", "+ authors[j].trim().split(".")[0]+ " and "; + } 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); + bibAuthors+=authors[j].trim().split(" ")[1] + ", "+ authors[j].trim().split(" ")[0]+ " and "; + } 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); + bibAuthors+=authors[j].trim().split(" ")[2] + ", "+ authors[j].trim().split(" ")[0]+ " and "; } + } - // console.log(jsonContent); - - } - xmlHttpRequest.send(); - -} + + if (jsonOutput[i].Keywords != undefined) { + item["item"].keywords = jsonOutput[i].Keywords.split(","); + } else { + item["item"].keywords = jsonOutput[i].Keywords; + } + + if (authors[0].split(" ").length == 3 ){ + bit1stAuthorLN = authors[0].split(" ")[2]; + } else if (authors[0].split(" ").length == 2 ){ + bit1stAuthorLN = authors[0].split(" ")[1]; + } else if (authors[0].split(" ").length == 1 ){ + bit1stAuthorLN = authors[0].split(" ")[0]; + } + + item["item"].title = jsonOutput[i].Titel; + item["item"].project = jsonOutput[i].Project; + item["item"].imageLink = jsonOutput[i]["Path to demo image"] + item["item"].journal.name = jsonOutput[i].Journal; + item["item"].journal.volume = jsonOutput[i].Volume; + item["item"].journal.year = jsonOutput[i].Year; -// get paper from the Sabo result -load_excel_citation(function () { - stuff_paper = jsonContent; - var new_row = document.getElementById("cont_paper") - new_row.innerHTML = ""; - var arrayLength = stuff_paper.length; - for (var i = 0; i < arrayLength; i++) { + item["item"].journal.pages = jsonOutput[i].Pages; + item["item"].conference.name = jsonOutput[i].Conference; + item["item"].conference.place = jsonOutput[i]["City and Country"] + item["item"].conference.date = jsonOutput[i].Date; + item["item"].publisher = jsonOutput[i].Publisher; + item["item"].type = jsonOutput[i]["Type of Work"]; + item["item"].project = jsonOutput[i].Project; + item["item"].reviewed = jsonOutput[i]["Peer-Reviewed"]; + item["item"].open = jsonOutput[i]["Open Access"]; + item["item"].DOI = jsonOutput[i].DOI; + item["links"].pdf = jsonOutput[i].PDF_Link; + item["links"].url = jsonOutput[i].URL; + item["links"].demo = jsonOutput[i].Demo; - if (i < max_paper_list && i <= arrayLength) { - addpaper(stuff_paper[i]); + + var month = ""; + if (jsonOutput[i].Date != undefined){ + month = jsonOutput[i].Date.toString().split(",")[0].trim(); } - //Do something + + + //// BibTex ///////////////////// + item["bibtex"] = "@article{"+ bit1stAuthorLN + jsonOutput[i].Year +","+ + "title={"+ jsonOutput[i].Titel + + "},author={"+ bibAuthors.trim().substring(0, bibAuthors.trim().lastIndexOf(" ")) + + "},journal={"+ jsonOutput[i].Journal + + "},volume={"+ jsonOutput[i].Volume + + "},month={"+ month + + "},pages={"+ jsonOutput[i].Pages + + "},year={"+ jsonOutput[i].Year + + "},DOI ={"+ jsonOutput[i].DOI+ + "},url ={"+ jsonOutput[i].URL+ + "}}" + + jsonContent.push(item); + } -}) \ No newline at end of file + //console.log(jsonContent); + +} +xmlHttpRequest.send(); + + +// str = str.substring(0, lastIndex); + + +// +// ending of xlsx to json coversion +//