Mercurial > gemma
view client/src/lib/classifications.js @ 3480:965b2fbb1890
Colorize gauge symbol based on availability of measurements
author | Tom Gottfried <tom@intevation.de> |
---|---|
date | Mon, 27 May 2019 15:45:55 +0200 |
parents | 71022e6bd98e |
children | 1457e2b9d900 |
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): * Raimund Renkert <raimund.renkert@intevation.de> */ export default { surveyCurrency(bottleneck) { if ( bottleneck.get("revisiting_time") === null || bottleneck.get("revisiting_time") === 0 ) { return "white"; } if (bottleneck.get("date_max") === null) { return "red"; } let revTime = bottleneck.get("revisiting_time") * 30.5; let latest = Date.parse(bottleneck.get("date_max").replace("Z", "")); var diff = Math.floor((Date.now() - latest) / 86400000); if (diff <= revTime) { return "lime"; } else if (revTime < diff && diff <= revTime * 1.5) { return "yellow"; } else if (revTime * 1.5 < diff) { return "red"; } }, gmAvailability(gauge) { let gmDate = gauge.get("gm_measuredate"); let gmN = gauge.get("gm_n_14d"); if ( gmDate !== undefined && gmDate !== null && Date.parse(gmDate) > Date.now() - 86400000 // latest value within 24 h ) { if ( gmN !== undefined && gmN !== null && gmN >= 1344 // one value every 15 min in 14 days ) { return "lime"; } return "yellow"; } return "red"; }, forecastAccuracy(gauge) { let fa3d = gauge.get("forecast_accuracy_3d"); let fa1d = gauge.get("forecast_accuracy_1d"); if (typeof fa3d == "number" && typeof fa1d == "number") { if (fa1d > 15) { return "red"; } else if (fa3d > 15) { return "yellow"; } else { return "lime"; } } return "white"; } };