Mercurial > gemma
changeset 3438:df6c2973f791
New parsing of incoming afdcsv
We now know, that the format needs less dynamic parsing, we rely on
Incoming csv Format
#label,# >= LDC [h],# < 230.00 [h],# >= 230.00 [h],# >= 250.00 [h]
05-2019,215.500,0.000,0.000,215.500
Format:
$LABEL, $LDC, $BELOWLIMIT1, $BETWEENLIMIT12, $ABOVELIMIT2^
So code doing magic like shift() and pop() could be removed for
much simpler array destructuring.
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Fri, 24 May 2019 11:15:58 +0200 |
parents | 6a044d6c2cdc |
children | d7ddb21f7017 8801811bf9f5 |
files | client/src/components/fairway/AvailableFairwayDepthDialogue.vue client/src/store/fairwayavailability.js |
diffstat | 2 files changed, 42 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/fairway/AvailableFairwayDepthDialogue.vue Fri May 24 10:21:06 2019 +0200 +++ b/client/src/components/fairway/AvailableFairwayDepthDialogue.vue Fri May 24 11:15:58 2019 +0200 @@ -506,6 +506,7 @@ this.$store.commit("application/paneSetup", "AVAILABLEFAIRWAYDEPTH"); }) .catch(error => { + console.log(error); const { status, data } = error.response; displayError({ title: this.$gettext("Backend Error"),
--- a/client/src/store/fairwayavailability.js Fri May 24 10:21:06 2019 +0200 +++ b/client/src/store/fairwayavailability.js Fri May 24 11:15:58 2019 +0200 @@ -97,6 +97,46 @@ }; }; +/** + * transformAFD + * @param {string} csv + * + * takes the afd csv and transforms it to an intermediary format + * for display of diagrams + * + * Incoming csv Format + * #label,# >= LDC [h],# < 230.00 [h],# >= 230.00 [h],# >= 250.00 [h] + * 05-2019,215.500,0.000,0.000,215.500 + * + * Format: + * $LABEL, $LDC, $BELOWLIMIT1, $BETWEENLIMIT12, $ABOVELIMIT2^ + * + * This format is assumed to be fix + * + */ +const transformAFD = csv => { + return csv.map(e => { + const result = e.split(","); + let [label, ldc, lower, middle, highestLevel] = result; + let levelsWithSum = [ + { + height: Number(lower), + translateY: 0 + }, + { + height: Number(middle), + translateY: Number(lower) + } + ]; + return { + label: label, + ldc: ldc, + highestLevel: highestLevel, + lowerLevels: levelsWithSum + }; + }); +}; + const fairwayavailability = { init, namespaced: true, @@ -216,28 +256,7 @@ commit("setCSV", data); const csv = data.split("\n").filter(x => x !== ""); //omit empty lines commit("setLegend", csv.shift()); - let transformed = csv.map(e => { - const result = e.split(","); - const label = result.shift(); - const ldc = result.shift(); - const highestLevel = result.pop(); - const sum = result.reduce((x, y) => Number(x) + Number(y)); - let last = 0; - const levelsWithSum = result.map(x => { - let result = { - height: Number(x), - translateY: sum - (last + Number(x)) - }; - last = last + Number(x); - return result; - }); - return { - label: label, - ldc: ldc, - highestLevel: highestLevel, - lowerLevels: levelsWithSum - }; - }); + let transformed = transformAFD(csv); commit("setFwData", transformed); resolve(response); })