From c020606dc400029c5db94ea286d8d7c143e217fa Mon Sep 17 00:00:00 2001 From: Neil Dewhurst Date: Tue, 24 Jun 2025 16:20:56 +0100 Subject: [PATCH] Add cypher labels and label event ordering --- src/js/60-docs-roles.js | 20 ++++++++++------- src/js/data/rolesData.json | 45 ++++++++++++++++++++++++++++---------- 2 files changed, 46 insertions(+), 19 deletions(-) diff --git a/src/js/60-docs-roles.js b/src/js/60-docs-roles.js index 587f630c..8e1a35f6 100644 --- a/src/js/60-docs-roles.js +++ b/src/js/60-docs-roles.js @@ -70,6 +70,7 @@ document.addEventListener('DOMContentLoaded', function () { var labelDetails = { class: dataLabel, role: dataLabel, + eventOrder: rolesData[dataLabel].eventOrder || -1, text: rolesData[dataLabel].displayText || '', joinText: dataVersion ? rolesData[dataLabel].joinText || 'in' : '', data: { @@ -133,7 +134,12 @@ document.addEventListener('DOMContentLoaded', function () { labelSpan.appendChild(document.createTextNode(labelDetails.text)) - labels.push(labelSpan) + labels.push( + { + html: labelSpan, + eventOrder: labelDetails.eventOrder, + } + ) }) // we only generate labels from defined roles @@ -143,19 +149,17 @@ document.addEventListener('DOMContentLoaded', function () { let labelsLocation = (roleDiv.firstElementChild && headings.includes(roleDiv.firstElementChild.nodeName)) ? roleDiv.firstElementChild : roleDiv const labelsDiv = createElement('div', 'labels') - for (const label of labels) { + for (const label of labels.sort((a, b) => a.eventOrder - b.eventOrder)) { if (roleDiv.nodeName === 'H1' || headings.includes(roleDiv.firstElementChild.nodeName)) { - label.classList.add('header-label') + label.html.classList.add('header-label') } - labelsDiv.append(label) + labelsDiv.append(label.html) - for (var d in label.dataset) { - roleDiv.dataset[d] = label.dataset[d] + for (var d in label.html.dataset) { + roleDiv.dataset[d] = label.html.dataset[d] } } - console.log(roleDiv.classList) - if (roleDiv.classList.contains('admonitionblock')) { labelsLocation = roleDiv.querySelector('td.content') } diff --git a/src/js/data/rolesData.json b/src/js/data/rolesData.json index 3507ad1a..c998b84e 100644 --- a/src/js/data/rolesData.json +++ b/src/js/data/rolesData.json @@ -22,6 +22,18 @@ "product": "Graph Academy", "displayText": "Graph Academy" }, + "cypher-5":{ + "description": "Function available in Cypher 5", + "labelCategory": "product", + "product": "Cypher 5", + "displayText": "Cypher 5" + }, + "cypher-25":{ + "description": "Function available in Cypher 25", + "labelCategory": "product", + "product": "Cypher 25", + "displayText": "Cypher 25" + }, "enterprise":{ "description": "Function available in Enterprise Edition only", "labelCategory": "product", @@ -122,18 +134,21 @@ "description": "The feature or function was added in the version stated", "labelCategory": "version", "displayText": "Introduced", - "altDisplayText": "Added" + "altDisplayText": "Added", + "eventOrder": 1 }, "added":{ "description": "The feature or function was added in the version stated", "labelCategory": "version", "displayText": "Introduced", - "altDisplayText": "Added" + "altDisplayText": "Added", + "eventOrder": 1 }, "changed":{ "description": "The feature or function was changed in the version stated", "labelCategory": "version", - "displayText": "Changed" + "displayText": "Changed", + "eventOrder": 2 }, "default":{ "description": "The value shown is the default value", @@ -143,7 +158,8 @@ "discontinued":{ "description": "The feature is no longer available", "labelCategory": "version", - "displayText": "Discontinued" + "displayText": "Discontinued", + "eventOrder": 4 }, "dynamic":{ "labelCategory": "function", @@ -152,34 +168,41 @@ }, "alpha":{ "labelCategory": "version", - "displayText": "Alpha" + "displayText": "Alpha", + "eventOrder": 0 }, "beta":{ "labelCategory": "version", - "displayText": "Beta" + "displayText": "Beta", + "eventOrder": 0 }, "beta-until":{ "description": "The feature or function was in beta until the version specified", "labelCategory": "version", "displayText": "Beta", - "joinText": "until" + "joinText": "until", + "eventOrder": 0 }, "deprecated":{ "labelCategory": "version", - "displayText": "Deprecated" + "displayText": "Deprecated", + "eventOrder": 3 }, "removed":{ "labelCategory": "version", - "displayText": "Removed" + "displayText": "Removed", + "eventOrder": 4 }, "renamed":{ "labelCategory": "version", - "displayText": "Renamed" + "displayText": "Renamed", + "eventOrder": 2 }, "updated":{ "description": "The feature or function was updated in the version stated", "labelCategory": "version", - "displayText": "Updated" + "displayText": "Updated", + "eventOrder": 2 }, "fabric":{ "labelCategory": "function",