Mercurial > gemma
view client/src/lib/filters.js @ 4153:7c44af0b9370
client: Waterleveldiagram
Since there is no convention for the nameing of reference waterlevels
we have to do some guesswork. Levels containing /HDC/ are considered hdc
and ldc accordingly are determined by /LDC/.
For now, we assume having only a max of one LDC and one HDC.
If there are multiple instances of LDC and HDC, LDCs are red and HDCs are green.
author | Fadi Abbud <fadi.abbud@intevation.de> |
---|---|
date | Fri, 02 Aug 2019 12:59:23 +0200 |
parents | 1109a38f7ff1 |
children |
line wrap: on
line source
/* This is Free Software under GNU Affero General Public License v >= 3.0 * without warranty, see README.md and license for details. * * SPDX-License-Identifier: AGPL-3.0-or-later * License-Filename: LICENSES/AGPL-3.0.txt * * Copyright (C) 2018 by via donau * – Österreichische Wasserstraßen-Gesellschaft mbH * Software engineering by Intevation GmbH * * Author(s): * Thomas Junk <thomas.junk@intevation.de> * Markus Kottländer <markus.kottlaender@intevation.de> */ import locale2 from "locale2"; export default { surveyDate(date) { return date ? new Date(date).toLocaleDateString(locale2, { day: "2-digit", month: "2-digit", year: "numeric" }) : ""; }, dateTime(date, hideTime) { if (!date) return ""; const d = new Date(date); let dateString = d.toLocaleDateString(locale2, { day: "2-digit", month: "2-digit", year: "numeric" }); if (!hideTime) { dateString += " - " + d.toLocaleTimeString(locale2, { hour12: false }); } return dateString; }, sortTable(data, sortColumn, sortDirection, page, pageSize) { // clone the array and leave the original intact let sortedData = data.filter(d => d); if (sortColumn && sortDirection) { sortedData.sort((a, b) => { let valB = sortColumn.split(".").reduce((o, i) => o[i], a) || ""; let valA = sortColumn.split(".").reduce((o, i) => o[i], b) || ""; if (valA > valB) return sortDirection === "ASC" ? -1 : 1; if (valA < valB) return sortDirection === "ASC" ? 1 : -1; return 0; }); } if (page && pageSize) { let start = page * pageSize - pageSize; sortedData = sortedData.slice(start, start + pageSize); } return sortedData; }, // converts cm to m and formats based on locale waterlevel(n) { return (n / 100).toLocaleString(locale2, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); } };