# HG changeset patch # User Thomas Junk # Date 1558689358 -7200 # Node ID df6c2973f7915c98d9af11d8c655e225d82962e9 # Parent 6a044d6c2cdcc8c589fb56768d21dcc73161ce96 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. diff -r 6a044d6c2cdc -r df6c2973f791 client/src/components/fairway/AvailableFairwayDepthDialogue.vue --- 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"), diff -r 6a044d6c2cdc -r df6c2973f791 client/src/store/fairwayavailability.js --- 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); })