From d292c870f61cfd1316f9a91d1fe77f5a5ccc86bd Mon Sep 17 00:00:00 2001 From: Chad Elliott Date: Tue, 19 Nov 2024 08:20:18 -0600 Subject: [PATCH] If bio, kudos, self-review, reviews, or feedback not available, provide text indicating such. --- web-ui/src/pages/MeritReportPage.jsx | 95 ++++++++++++++++------------ 1 file changed, 55 insertions(+), 40 deletions(-) diff --git a/web-ui/src/pages/MeritReportPage.jsx b/web-ui/src/pages/MeritReportPage.jsx index a590607277..6a4225b279 100644 --- a/web-ui/src/pages/MeritReportPage.jsx +++ b/web-ui/src/pages/MeritReportPage.jsx @@ -19,6 +19,8 @@ import { useQueryParameters } from '../helpers/query-parameters'; import markdown from 'markdown-builder'; +const noneAvailable = "None available during the period covered by this review."; + const MeritReportPage = () => { const { state, dispatch } = useContext(AppContext); @@ -256,49 +258,58 @@ const MeritReportPage = () => { let text = markdown.headers.h1("Current Information"); text += years.toFixed(1) + " years\n\n"; text += markdown.headers.h2("Biographical Notes"); - text += currentInfo.biography + "\n\n"; + text += (currentInfo.biography ? currentInfo.biography : + noneAvailable) + "\n\n"; return text; }; const markdownKudos = (data) => { const kudosList = data.kudos; let text = markdown.headers.h1("Kudos"); - for (let kudos of kudosList) { - const date = dateFromArray(kudos.dateCreated); - text += kudos.message + "\n\n"; - text += "     " + - markdown.emphasis.i("Submitted on " + formatDate(date) + - ", by " + kudos.sender) + - "\n\n\n"; + if (kudosList.length > 0) { + for (let kudos of kudosList) { + const date = dateFromArray(kudos.dateCreated); + text += kudos.message + "\n\n"; + text += "     " + + markdown.emphasis.i("Submitted on " + formatDate(date) + + ", by " + kudos.sender) + + "\n\n\n"; + } + } else { + text += noneAvailable + "\n\n"; } return text; }; const markdownReviewsImpl = (title, feedbackList, listMembers) => { let text = markdown.headers.h1(title); - for(let feedback of feedbackList) { - const members = getUniqueMembers(feedback.answers); - for(let member of Object.keys(members)) { - if (listMembers) { - text += member + ": "; - } - text += "Submitted - " + formatDate(members[member]) + "\n\n"; - } - text += "\n"; - - const questions = getUniqueQuestions(feedback.answers); - for(let question of Object.keys(questions)) { - text += markdown.headers.h4(question) + "\n"; - for(let answer of questions[question]) { + if (feedbackList.length > 0) { + for(let feedback of feedbackList) { + const members = getUniqueMembers(feedback.answers); + for(let member of Object.keys(members)) { if (listMembers) { - text += answer[0] + ": "; + text += member + ": "; } - text += answer[1] + "\n\n"; + text += "Submitted - " + formatDate(members[member]) + "\n\n"; } text += "\n"; + + const questions = getUniqueQuestions(feedback.answers); + for(let question of Object.keys(questions)) { + text += markdown.headers.h4(question) + "\n"; + for(let answer of questions[question]) { + if (listMembers) { + text += answer[0] + ": "; + } + text += answer[1] + "\n\n"; + } + text += "\n"; + } } + text += "\n"; + } else { + text += noneAvailable + "\n\n"; } - text += "\n"; return text; } @@ -347,31 +358,35 @@ const MeritReportPage = () => { const markdownFeedback = (data) => { let text = markdown.headers.h1("Feedback"); const feedbackList = data.feedback; - for(let feedback of feedbackList) { - text += markdown.headers.h2("Template: " + feedback.name); - const members = getUniqueMembers(feedback.answers); - for(let member of Object.keys(members)) { - text += member + ": " + formatDate(members[member]) + "\n\n"; - } - text += "\n"; - - const questions = getUniqueQuestions(feedback.answers); - for(let question of Object.keys(questions)) { - text += markdown.headers.h4(question) + "\n"; - for(let answer of questions[question]) { - text += answer[0] + ": " + answer[1] + "\n\n"; + if (feedbackList.length > 0) { + for(let feedback of feedbackList) { + text += markdown.headers.h2("Template: " + feedback.name); + const members = getUniqueMembers(feedback.answers); + for(let member of Object.keys(members)) { + text += member + ": " + formatDate(members[member]) + "\n\n"; } text += "\n"; + + const questions = getUniqueQuestions(feedback.answers); + for(let question of Object.keys(questions)) { + text += markdown.headers.h4(question) + "\n"; + for(let answer of questions[question]) { + text += answer[0] + ": " + answer[1] + "\n\n"; + } + text += "\n"; + } } + text += "\n"; + } else { + text += noneAvailable + "\n\n"; } - text += "\n"; return text; }; const markdownTitleHistory = (data) => { // Get the position history sorted latest to earliest const posHistory = data.positionHistory.sort((a, b) => { - for(let i = 0; i < a.length; i++) { + for(let i = 0; i < a.date.length; i++) { if (a.date[i] != b.date[i]) { return b.date[i] - a.date[i]; }