From b2e2c597507b275df46b8c0c902d840839645626 Mon Sep 17 00:00:00 2001 From: Tom Raithel Date: Tue, 24 Jan 2017 23:07:32 +0100 Subject: [PATCH] Add isNew flag logic --- scripts/radar.js | 31 ++++++++++++++++++++++++++++++- templates/item.pug | 2 ++ 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/scripts/radar.js b/scripts/radar.js index 9d500e9..644adae 100644 --- a/scripts/radar.js +++ b/scripts/radar.js @@ -16,8 +16,11 @@ import { export const createRadar = async (tree) => { const fileNames = (await getAllMarkdownFiles(radarPath())).reverse(); const revisions = await createRevisionsFromFiles(fileNames); + const allVersions = getAllVersions(revisions); const quadrants = createQuadrants(revisions); - return quadrants; + const quadrantsWithIsNewFlag = flagWithIsNew(quadrants, allVersions); + + return quadrantsWithIsNewFlag; }; const createRevisionsFromFiles = (fileNames) => ( @@ -53,6 +56,15 @@ const itemInfoFromFilename = (fileName) => { } }; +const getAllVersions = (revisions) => ( + revisions.reduce((allVersions, { version }) => { + if(!allVersions.includes(version)) { + return [...allVersions, version]; + } + return allVersions; + }, []).sort() +) + const createQuadrants = (revisions) => ( revisions.reduce((quadrants, revision) => { return { @@ -123,3 +135,20 @@ const outputQuadrantPage = (quadrantName, quadrant) => ( }) }) ) + +const flagWithIsNew = (radar, allVersions) => ( + Object.entries(radar).reduce((newRadar, [quadrantName, quadrant]) => ({ + ...newRadar, + [quadrantName]: Object.entries(quadrant).reduce((newItem, [itemName, item]) => ({ + ...newItem, + [itemName]: { + ...item, + isNew: isNewItem(item, allVersions), + }, + }), {}), + }), {}) +); + +const isNewItem = (item, allVersions) => { + return item.revisions[0].version === allVersions[allVersions.length-1] +} diff --git a/templates/item.pug b/templates/item.pug index d060392..82978a8 100644 --- a/templates/item.pug +++ b/templates/item.pug @@ -9,6 +9,8 @@ block content = ' ' small #{item.attributes.ring} + h2 New: #{item.isNew ? 'YES' : 'NO'} + hr section != item.revisions[0].body