10
0
mirror of https://github.com/LCPQ/QUESTDB_website.git synced 2024-07-03 09:56:08 +02:00

Improvements for publications

This commit is contained in:
Mickaël Véril 2021-02-17 16:39:54 +01:00 committed by Anthony Scemama
parent d1af83bbf9
commit 14ae7312fc
3 changed files with 48 additions and 11 deletions

View File

@ -44,16 +44,24 @@ draft: false
if (sodois.has(null)) {
sodois.delete(null)
}
for (const [setName,dois] of sets) {
if (dois.length>0) {
const doi=dois[0]
if (sodois.has(doi)) {
sodois.delete(doi)
}
}
}
odois=Array.from(sodois)
const uoopublis = await PubliData.loadManyAsync(odois)
const opublis = uoopublis.sort((puba, pubb) => pubUtils.getIssuedDate(puba) - pubUtils.getIssuedDate(pubb))
const opublis = uoopublis.sort((puba, pubb) => pubUtils.parseDate(pubUtils.bestDate(puba).dateInfo) - pubUtils.parseDate(pubUtils.bestDate(pubb).dateInfo))
for (const publi of opublis) {
const art = await createPubliUI(publi, true, !myDB.others.includes(publi.DOI))
$(art).appendTo("#publis_other")
}
const rdois = myDB.reviews
const uorpublis = await PubliData.loadManyAsync(rdois)
const rpublis = uorpublis.sort((puba, pubb) => pubUtils.getIssuedDate(puba) - pubUtils.getIssuedDate(pubb))
const rpublis = uorpublis.sort((puba, pubb) => pubUtils.parseDate(pubUtils.bestDate(puba).dateInfo) - pubUtils.parseDate(pubUtils.bestDate(pubb).dateInfo))
for (const publi of rpublis) {
art = await createPubliUI(publi, true, true)
$(art).appendTo("#publis_review")

View File

@ -1,4 +1,8 @@
async function createPubliUI(publi,toolTips=false,abstract=false) {
var DayAndMothsFormat ={
minimumIntegerDigits: 2,
useGrouping: false
}
const art = $("<article/>").addClass("publi")
art.className = "publi"
$("<a/>", {
@ -13,8 +17,10 @@ async function createPubliUI(publi,toolTips=false,abstract=false) {
var notifycontent = $("<div/>").addClass("author-info")
$("<h1/>").text(String.raw`${author.given} ${author.family}`).appendTo(notifycontent)
ulaff = $("<ul/>").addClass("affiliation-list").appendTo(notifycontent)
for (const a of author.affiliation) {
$("<li/>").text(a.name).appendTo(ulaff)
if (author.affiliation) {
for (const a of author.affiliation) {
$("<li/>").text(a.name).appendTo(ulaff)
}
}
if (author["authenticated-orcid"]) {
const html = String.raw`<div class="orcid-id"><a href="https://orcid.org" target="_blank"><img alt="ORCID logo" src="https://orcid.org/sites/default/files/images/orcid_16x16.png" width="16" height="16"/></a> <a href="${author.ORCID}" target="_blank">${author.ORCID} </a></div>`
@ -44,7 +50,8 @@ async function createPubliUI(publi,toolTips=false,abstract=false) {
else {
$("<span/>").text(publi["container-title"][0]).appendTo(journaldiv)
}
var date = pubUtils.getIssuedDate(publi)
var publiDate = pubUtils.bestDate(publi)
var date = pubUtils.parseDate(publiDate.dateInfo)
journaldiv.append(" ")
$("<span/>").text(date.getFullYear().toString()).appendTo(journaldiv)
journaldiv.append(" ")
@ -58,8 +65,9 @@ async function createPubliUI(publi,toolTips=false,abstract=false) {
href: publi.URL,
target: "_blank"
}).text(String.raw`DOI: ${publi.DOI}`).appendTo(art)
$("<p/>").append("Published on ").append($("<time/>", {
datetime: JSON.stringify(date)
$("<p/>").append(`${publiDate.type== "created" ? "First p" : "P"}ublished on `).append($("<time/>", {
datetime: date.toISOString().substring(0, 10)
}).text(date.toLocaleDateString("en-us", {
day: "numeric",
month: "short",

View File

@ -1,6 +1,27 @@
class pubUtils{
static getIssuedDate(publi) {
const parts=publi.issued["date-parts"][0]
return new Date(Date.UTC(parts[0], parts[1] - 1, parts[2]))
class pubUtils {
static parseDate(date) {
if (date["date-time"]) {
return Date.parse(date["date-time"])
}
if (date.timestamp) {
return Date(date.timestamp)
}
const parts=date["date-parts"][0]
const [year, month, day] = date['date-parts'][0]
if (day) {
return new Date(Date.UTC(year, month - 1, day))
} else if (month) {
return new Date(Date.UTC(year, month - 1))
} else {
return new Date(Date.UTC(year))
}
}
static bestDate(publi) {
if (publi.issued != null) {
return {type:"issued", dateInfo:publi.issued}
}
else {
return {type:"created", dateInfo:publi.created}
}
}
}