From 742f0c14c03cff7df585b681522551cceed0a879 Mon Sep 17 00:00:00 2001 From: Pithon Kabiro <pithon.kabiro@hft-stuttgart.de> Date: Fri, 22 Oct 2021 18:34:56 +0200 Subject: [PATCH] New function: abbreviate temp phenomenon name ... for use in the y-axis text of charts --- public/js/src_modules/chartColumn.mjs | 3 ++- public/js/src_modules/chartHelpers.mjs | 26 ++++++++++++++++++++++ public/js/src_modules/chartScatterPlot.mjs | 3 ++- 3 files changed, 30 insertions(+), 2 deletions(-) diff --git a/public/js/src_modules/chartColumn.mjs b/public/js/src_modules/chartColumn.mjs index 1608f4a..d971746 100644 --- a/public/js/src_modules/chartColumn.mjs +++ b/public/js/src_modules/chartColumn.mjs @@ -5,6 +5,7 @@ import { createFullTitleForLineOrColumnChart, createCombinedTextDelimitedByComma, createSubtitleForChart, + abbreviateTemperaturePhenomenonNames, createTooltipDateString, } from "./chartHelpers.mjs"; @@ -148,7 +149,7 @@ const drawColumnChartHighcharts = function ( const textChartSubtitle = createSubtitleForChart(datastreamNamesArr); const textYAxisTitle = createYAxisTitleTextColumnChart( - phenomenonNamesArr, + abbreviateTemperaturePhenomenonNames(phenomenonNamesArr), unitOfMeasurementSymbolsArr ); diff --git a/public/js/src_modules/chartHelpers.mjs b/public/js/src_modules/chartHelpers.mjs index 1ef5745..0c633b3 100644 --- a/public/js/src_modules/chartHelpers.mjs +++ b/public/js/src_modules/chartHelpers.mjs @@ -352,6 +352,31 @@ const createSubtitleForHeatmap = function (datastreamNamesArr) { )}`; }; +/** + * Abbreviate temperature phenomenon names for use in chart y-axis title strings where space is limited + * + * @param {Array} phenomenonNamesArr An array of phenomenon name strings + * @returns {Array} An array that contains abbreviated temperature phenomenon strings + */ +const abbreviateTemperaturePhenomenonNames = function (phenomenonNamesArr) { + // We're interested in phenomenon names that contain the substrings + // `temperature` or `Temperature` + return phenomenonNamesArr.map((phenomenonName) => { + // Case 1: Temperature phenomenon name string variant 1 + if (phenomenonName.includes("temperature")) { + return phenomenonName.replace("temperature", "temp."); + } + // Case 2: Temperature phenomenon name string variant 2 + else if (phenomenonName.includes("Temperature")) { + return phenomenonName.replace("Temperature", "Temp."); + } + // Case 3: The other phenomenon name strings + else { + return phenomenonName; + } + }); +}; + /** * Creates a date string that is used in a shared tooltip for a line or column chart * @param {Number} pointXAxisValue The x-axis value (Unix timestamp) which is common for a set of data points @@ -389,6 +414,7 @@ export { createTitleForHeatmap, createSubtitleForChart, createSubtitleForHeatmap, + abbreviateTemperaturePhenomenonNames, createTooltipDateString, convertHexColorToRGBColor, removeTransparencyFromColor, diff --git a/public/js/src_modules/chartScatterPlot.mjs b/public/js/src_modules/chartScatterPlot.mjs index e10275b..1919537 100644 --- a/public/js/src_modules/chartScatterPlot.mjs +++ b/public/js/src_modules/chartScatterPlot.mjs @@ -6,6 +6,7 @@ import { convertHexColorToRGBColor, createCombinedTextDelimitedByAmpersand, createCombinedTextDelimitedByComma, + abbreviateTemperaturePhenomenonNames, createSubtitleForChart, removeTransparencyFromColor, } from "./chartHelpers.mjs"; @@ -211,7 +212,7 @@ const drawScatterPlotHighcharts = function ( ); const Y_AXIS_TITLE = createYAxisTitleTextScatterPlot( - phenomenonNamesArr, + abbreviateTemperaturePhenomenonNames(phenomenonNamesArr), unitOfMeasurementSymbolsArr ); -- GitLab