annotate client/src/components/fairway/AvailableFairwayDepthLNWL.vue @ 4808:db450fcc8ed7

client: add title for the exported image
author Fadi Abbud <fadi.abbud@intevation.de>
date Tue, 29 Oct 2019 11:04:14 +0100
parents 7de099c4824c
children b6d8570b8480
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
1 <template>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
2 <div class="d-flex flex-column flex-fill">
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
3 <UIBoxHeader icon="chart-area" :title="title" :closeCallback="close" />
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
4 <UISpinnerOverlay v-if="loading" />
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
5 <div class="d-flex flex-fill">
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
6 <DiagramLegend>
3366
8974efd71917 fa_LNWL: cleanup
Thomas Junk <thomas.junk@intevation.de>
parents: 3333
diff changeset
7 <div v-for="(entry, index) in legendLNWL" :key="index" class="legend">
3474
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
8 <span
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
9 :style="
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
10 `${legendStyle(
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
11 index
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
12 )}; border-radius: 0.25rem; width: 40px; height: 20px;`
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
13 "
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
14 ></span>
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
15 {{ entry }}
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
16 </div>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
17 <div>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
18 <select
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
19 @change="applyChange"
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
20 v-model="form.template"
3466
dfa97aad1134 client: unify the buttons style for diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3463
diff changeset
21 class="form-control d-block custom-select-sm w-100 mt-2"
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
22 >
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
23 <option
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
24 v-for="template in templates"
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
25 :value="template"
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
26 :key="template.name"
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
27 >
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
28 {{ template.name }}
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
29 </option>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
30 </select>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
31 <button
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
32 @click="downloadPDF"
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
33 type="button"
3466
dfa97aad1134 client: unify the buttons style for diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3463
diff changeset
34 class="btn btn-sm btn-info d-block w-100 mt-2"
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
35 >
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
36 <translate>Export to PDF</translate>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
37 </button>
3450
213b703bdd85 afdLNWL: CSV-Export
Thomas Junk <thomas.junk@intevation.de>
parents: 3437
diff changeset
38 <a
213b703bdd85 afdLNWL: CSV-Export
Thomas Junk <thomas.junk@intevation.de>
parents: 3437
diff changeset
39 :href="dataLink"
4803
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
40 :download="`${fileName}.csv`"
3466
dfa97aad1134 client: unify the buttons style for diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3463
diff changeset
41 class="mt-2 btn btn-sm btn-info w-100"
4598
96283fc7de02 client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4473
diff changeset
42 ><translate>Download CSV</translate></a
3437
6a044d6c2cdc afd: csv download
Thomas Junk <thomas.junk@intevation.de>
parents: 3419
diff changeset
43 >
4803
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
44 <a
4808
db450fcc8ed7 client: add title for the exported image
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4805
diff changeset
45 @click="downloadImage('AFDvsLNWLpng', title)"
4805
7de099c4824c client: image-export: improve hyperlink ids for download
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4803
diff changeset
46 id="AFDvsLNWLpng"
4803
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
47 class=" btn btn-sm btn-info text-white d-block w-100 mt-2"
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
48 :download="`${fileName}.png`"
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
49 >
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
50 <translate>Download Image</translate>
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
51 </a>
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
52 </div>
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
53 <div class="btn-group-toggle w-100 mt-2">
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
54 <label
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
55 class="btn btn-outline-secondary btn-sm"
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
56 :class="{ active: showNumbers }"
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
57 ><input
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
58 type="checkbox"
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
59 v-model="showNumbers"
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
60 autocomplete="off"
4598
96283fc7de02 client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4473
diff changeset
61 /><translate>Numbers</translate>
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
62 </label>
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
63 </div>
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
64 </DiagramLegend>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
65 <div
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
66 ref="diagramContainer"
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
67 :id="containerId"
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
68 class="diagram-container flex-fill"
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
69 ></div>
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
70 </div>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
71 </div>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
72 </template>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
73
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
74 <style></style>
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
75
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
76 <script>
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
77 /* This is Free Software under GNU Affero General Public License v >= 3.0
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
78 * without warranty, see README.md and license for details.
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
79 *
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
80 * SPDX-License-Identifier: AGPL-3.0-or-later
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
81 * License-Filename: LICENSES/AGPL-3.0.txt
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
82 *
3800
26325370ba18 client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 3780
diff changeset
83 * Copyright (C) 2018, 2019 by via donau
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
84 * – Österreichische Wasserstraßen-Gesellschaft mbH
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
85 * Software engineering by Intevation GmbH
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
86 *
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
87 * Author(s):
3800
26325370ba18 client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 3780
diff changeset
88 * * Thomas Junk <thomas.junk@intevation.de>
26325370ba18 client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 3780
diff changeset
89 * * Markus Kottländer <markus.kottlaender@intevation.de>
26325370ba18 client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents: 3780
diff changeset
90 * * Fadi Abbud <fadi.abbud@intevation.de>
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
91 * * Bernhard Reiter <bernhard.reiter@intevation.de>
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
92 */
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
93 import * as d3 from "d3";
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
94 import app from "@/main";
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
95 import debounce from "debounce";
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
96 import { mapState } from "vuex";
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
97 import filters from "@/lib/filters.js";
3963
feb53713bc2f client: moved duplicated code to mixins and unified code patterns in diagram components [WIP]
Markus Kottlaender <markus@intevation.de>
parents: 3941
diff changeset
98 import { diagram, pdfgen, templateLoader } from "@/lib/mixins";
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
99 import { HTTP } from "@/lib/http";
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
100 import { displayError } from "@/lib/errors";
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
101 import { defaultDiagramTemplate } from "@/lib/DefaultDiagramTemplate";
4665
c47c8085cc7e client: translation: implement marking of diagram labels
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4598
diff changeset
102 import { localeDateString } from "@/lib/datelocalization";
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
103
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
104 export default {
3940
f56d14b9d9f1 available_fairway_depth_lnwl: leverage mixin
Thomas Junk <thomas.junk@intevation.de>
parents: 3927
diff changeset
105 mixins: [diagram, pdfgen, templateLoader],
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
106 components: {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
107 DiagramLegend: () => import("@/components/DiagramLegend")
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
108 },
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
109 data() {
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
110 return {
4387
65d575505480 AFDLNWL: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents: 4383
diff changeset
111 frequencyD: null,
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
112 selectedFairwayAvailabilityFeatureD: null,
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
113 fromDate: null,
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
114 toDate: null,
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
115 depthlimit1D: null,
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
116 depthlimit2D: null,
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
117 widthlimit1D: null,
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
118 widthlimit2D: null,
3918
1e837d86bead available_fairway_lnwl: fixed containerID
Thomas Junk <thomas.junk@intevation.de>
parents: 3916
diff changeset
119 containerId: "availablefairwaydepthlnwl-diagram-container",
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
120 resizeListenerFunction: null,
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
121 loading: false,
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
122 scalePaddingLeft: 60,
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
123 scalePaddingRight: 0,
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
124 paddingTop: 25,
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
125 pdf: {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
126 doc: null,
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
127 width: null,
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
128 height: null
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
129 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
130 form: {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
131 template: null
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
132 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
133 templateData: null,
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
134 templates: [],
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
135 defaultTemplate: defaultDiagramTemplate,
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
136 showNumbers: false
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
137 };
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
138 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
139 created() {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
140 this.resizeListenerFunction = debounce(this.drawDiagram, 100);
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
141 window.addEventListener("resize", this.resizeListenerFunction);
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
142 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
143 destroyed() {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
144 window.removeEventListener("resize", this.resizeListenerFunction);
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
145 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
146 mounted() {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
147 // Nasty but necessary if we don't want to use the updated hook to re-draw
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
148 // the diagram because this would re-draw it also for irrelevant reasons.
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
149 // In this case we need to wait for the child component (DiagramLegend) to
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
150 // render. According to the docs (https://vuejs.org/v2/api/#mounted) this
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
151 // should be possible with $nextTick() but it doesn't work because it does
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
152 // not guarantee that the DOM is not only updated but also re-painted on the
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
153 // screen.
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
154 setTimeout(this.drawDiagram, 150);
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
155 this.initDiagramValues();
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
156 this.templates[0] = this.defaultTemplate;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
157 this.form.template = this.templates[0];
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
158 this.templateData = this.form.template;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
159 HTTP.get("/templates/diagram", {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
160 headers: {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
161 "X-Gemma-Auth": localStorage.getItem("token"),
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
162 "Content-type": "text/xml; charset=UTF-8"
3963
feb53713bc2f client: moved duplicated code to mixins and unified code patterns in diagram components [WIP]
Markus Kottlaender <markus@intevation.de>
parents: 3941
diff changeset
163 }
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
164 })
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
165 .then(response => {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
166 if (response.data.length) {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
167 this.templates = response.data;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
168 this.form.template = this.templates[0];
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
169 this.templates[this.templates.length] = this.defaultTemplate;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
170 this.applyChange();
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
171 }
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
172 })
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
173 .catch(e => {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
174 const { status, data } = e.response;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
175 displayError({
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
176 title: this.$gettext("Backend Error"),
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
177 message: `${status}: ${data.message || data}`
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
178 });
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
179 });
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
180 },
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
181 computed: {
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
182 ...mapState("fairwayavailability", [
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
183 "selectedFairwayAvailabilityFeature",
3299
ef52926ce2fc available_fairwaydepth_vs_lnwl: Scales adjusted
Thomas Junk <thomas.junk@intevation.de>
parents: 3296
diff changeset
184 "fwLNWLData",
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
185 "from",
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
186 "to",
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
187 "frequency",
3471
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
188 "csv",
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
189 "depthlimit1",
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
190 "depthlimit2",
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
191 "widthlimit1",
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
192 "widthlimit2"
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
193 ]),
3471
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
194 legendLNWL() {
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
195 const d = [this.depthlimit1D, this.depthlimit2D].sort();
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
196 const w = [this.widthlimit1D, this.widthlimit2D].sort();
4425
fe8c331760ae client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4409
diff changeset
197 const lowerBound = [d[0] / 100, w[0]].filter(x => x).join(", ");
fe8c331760ae client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4409
diff changeset
198 const upperBound = [d[1] / 100, w[1]].filter(x => x).join(", ");
4011
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
199 let result;
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
200 if (this.depthlimit1D !== this.depthlimit2D) {
4011
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
201 result = [
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
202 `> LDC`,
4425
fe8c331760ae client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4409
diff changeset
203 `< ${lowerBound} [m]`,
fe8c331760ae client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4409
diff changeset
204 `< ${upperBound} [m]`,
fe8c331760ae client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4409
diff changeset
205 `>= ${upperBound} [m]`
4011
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
206 ];
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
207 } else {
4425
fe8c331760ae client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4409
diff changeset
208 result = [`> LDC`, `< ${upperBound} [m]`, `>= ${upperBound} [m]`];
4011
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
209 }
44060b9027da available_fairway_depth: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 3992
diff changeset
210 return result;
3471
Thomas Junk <thomas.junk@intevation.de>
parents: 3466
diff changeset
211 },
3437
6a044d6c2cdc afd: csv download
Thomas Junk <thomas.junk@intevation.de>
parents: 3419
diff changeset
212 dataLink() {
6a044d6c2cdc afd: csv download
Thomas Junk <thomas.junk@intevation.de>
parents: 3419
diff changeset
213 return `data:text/csv;charset=utf-8, ${encodeURIComponent(this.csv)}`;
6a044d6c2cdc afd: csv download
Thomas Junk <thomas.junk@intevation.de>
parents: 3419
diff changeset
214 },
4803
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
215 fileName() {
4387
65d575505480 AFDLNWL: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents: 4383
diff changeset
216 if (!this.frequencyD) return;
4803
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
217 return this.downloadFilename(
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
218 this.$gettext("FairwayAvailabilityVsLNWL"),
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
219 this.featureName
4677
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
220 );
3437
6a044d6c2cdc afd: csv download
Thomas Junk <thomas.junk@intevation.de>
parents: 3419
diff changeset
221 },
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
222 availability() {
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
223 return this.plainAvailability;
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
224 },
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
225 title() {
4387
65d575505480 AFDLNWL: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents: 4383
diff changeset
226 if (!this.frequencyD) return;
4598
96283fc7de02 client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4473
diff changeset
227 return `${this.$gettext("Available Fairway Depth vs LNWL:")} ${
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
228 this.featureName
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
229 } (${filters.surveyDate(this.fromDate)} - ${filters.surveyDate(
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
230 this.toDate
4387
65d575505480 AFDLNWL: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents: 4383
diff changeset
231 )}) ${this.$gettext(this.frequencyD)}`;
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
232 },
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
233 featureName() {
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
234 if (this.selectedFairwayAvailabilityFeatureD == null) return "";
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
235 return this.selectedFairwayAvailabilityFeatureD.properties.name;
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
236 }
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
237 },
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
238 methods: {
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
239 initDiagramValues() {
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
240 this.selectedFairwayAvailabilityFeatureD = this.selectedFairwayAvailabilityFeature;
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
241 this.fromDate = this.from;
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
242 this.toDate = this.to;
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
243 this.depthlimit1D = this.depthlimit1;
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
244 this.depthlimit2D = this.depthlimit2;
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
245 this.widthlimit1D = this.widthlimit1;
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
246 this.widthlimit2D = this.widthlimit2;
4387
65d575505480 AFDLNWL: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents: 4383
diff changeset
247 this.frequencyD = this.frequency;
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
248 },
3474
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
249 legendStyle(index) {
4012
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
250 let style;
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
251 if (this.depthlimit1 !== this.depthlimit2) {
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
252 style = {
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
253 0: `background-color: ${this.$options.LWNLCOLORS.LDC};`,
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
254 1: `background-color: ${this.$options.AFDCOLORS[2]};`,
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
255 2: `background-color: ${this.$options.AFDCOLORS[1]};`,
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
256 3: `background-color: ${this.$options.AFDCOLORS[0]};`
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
257 };
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
258 } else {
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
259 style = {
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
260 0: `background-color: ${this.$options.LWNLCOLORS.LDC};`,
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
261 1: `background-color: ${this.$options.AFDCOLORS[2]};`,
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
262 2: `background-color: ${this.$options.AFDCOLORS[0]};`
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
263 };
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
264 }
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
265
3474
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
266 return style[index];
Thomas Junk <thomas.junk@intevation.de>
parents: 3471
diff changeset
267 },
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
268 applyChange() {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
269 if (this.form.template.hasOwnProperty("properties")) {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
270 this.templateData = this.defaultTemplate;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
271 return;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
272 }
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
273 if (this.form.template) {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
274 this.loadTemplates("/templates/diagram/" + this.form.template.name)
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
275 .then(response => {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
276 this.prepareImages(response.data.template_data.elements).then(
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
277 values => {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
278 values.forEach(v => {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
279 response.data.template_data.elements[v.index].url = v.url;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
280 });
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
281 this.templateData = response.data.template_data;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
282 }
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
283 );
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
284 })
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
285 .catch(e => {
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
286 const { status, data } = e.response;
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
287 displayError({
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
288 title: this.$gettext("Backend Error"),
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
289 message: `${status}: ${data.message || data}`
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
290 });
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
291 });
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
292 }
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
293 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
294 downloadPDF() {
4598
96283fc7de02 client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4473
diff changeset
295 let title = `${this.$gettext("Available Fairway Depth vs LNWL:")} ${
96283fc7de02 client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4473
diff changeset
296 this.featureName
96283fc7de02 client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4473
diff changeset
297 }`;
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
298 this.generatePDF({
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
299 templateData: this.templateData,
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
300 diagramTitle: title
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
301 });
4677
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
302 this.pdf.doc.save(
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
303 this.downloadFilename(
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
304 this.$gettext("FairwayAvailabilityVsLNWL"),
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
305 this.featureName
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
306 ) + ".pdf"
fa55e48bbca1 client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4665
diff changeset
307 );
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
308 },
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
309 addDiagramLegend(position, offset, color) {
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
310 let x = offset.x,
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
311 y = offset.y;
3333
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
312 this.pdf.doc.setFontSize(10);
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
313 let width =
3489
e6673f35d5d1 client: diagram-template: improve diagramlegend element (AvailableFairwayDepthLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3484
diff changeset
314 (this.pdf.doc.getStringUnitWidth(">= LDC") * 10) / (72 / 25.6) + 15;
3333
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
315 // if position is on the right, x needs to be calculate with pdf width and
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
316 // the size of the element
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
317 if (["topright", "bottomright"].indexOf(position) !== -1) {
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
318 x = this.pdf.width - offset.x - width;
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
319 }
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
320 if (["bottomright", "bottomleft"].indexOf(position) !== -1) {
3489
e6673f35d5d1 client: diagram-template: improve diagramlegend element (AvailableFairwayDepthLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3484
diff changeset
321 y = this.pdf.height - offset.y - this.getTextHeight(6);
3333
d5dbfba9faae clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents: 3299
diff changeset
322 }
4012
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
323 if (this.legendLNWL[3]) {
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
324 this.pdf.doc.setTextColor(color);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
325 this.pdf.doc.setDrawColor(this.$options.LWNLCOLORS.LDC);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
326 this.pdf.doc.setFillColor(this.$options.LWNLCOLORS.LDC);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
327 this.pdf.doc.roundedRect(x, y, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
328 this.pdf.doc.text(this.legendLNWL[0], x + 12, y + 3);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
329
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
330 this.pdf.doc.setDrawColor(this.$options.AFDCOLORS[2]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
331 this.pdf.doc.setFillColor(this.$options.AFDCOLORS[2]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
332 this.pdf.doc.roundedRect(x, y + 5, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
333 this.pdf.doc.text(this.legendLNWL[1], x + 12, y + 8);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
334
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
335 this.pdf.doc.setDrawColor(this.$options.AFDCOLORS[1]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
336 this.pdf.doc.setFillColor(this.$options.AFDCOLORS[1]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
337 this.pdf.doc.roundedRect(x, y + 10, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
338 this.pdf.doc.text(this.legendLNWL[2], x + 12, y + 13);
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
339
4012
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
340 this.pdf.doc.setDrawColor(this.$options.AFDCOLORS[0]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
341 this.pdf.doc.setFillColor(this.$options.AFDCOLORS[0]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
342 this.pdf.doc.roundedRect(x, y + 15, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
343 this.pdf.doc.text(this.legendLNWL[3], x + 12, y + 18);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
344 } else {
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
345 this.pdf.doc.setTextColor(color);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
346 this.pdf.doc.setDrawColor(this.$options.LWNLCOLORS.LDC);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
347 this.pdf.doc.setFillColor(this.$options.LWNLCOLORS.LDC);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
348 this.pdf.doc.roundedRect(x, y, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
349 this.pdf.doc.text(this.legendLNWL[0], x + 12, y + 3);
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
350
4012
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
351 this.pdf.doc.setDrawColor(this.$options.AFDCOLORS[2]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
352 this.pdf.doc.setFillColor(this.$options.AFDCOLORS[2]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
353 this.pdf.doc.roundedRect(x, y + 5, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
354 this.pdf.doc.text(this.legendLNWL[1], x + 12, y + 8);
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
355
4012
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
356 this.pdf.doc.setDrawColor(this.$options.AFDCOLORS[0]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
357 this.pdf.doc.setFillColor(this.$options.AFDCOLORS[0]);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
358 this.pdf.doc.roundedRect(x, y + 10, 10, 4, 1.5, 1.5, "FD");
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
359 this.pdf.doc.text(this.legendLNWL[2], x + 12, y + 13);
7a0f56f9d0dd available_fairway_depth_LNWL: in case the limits are equal the middle label is omitted. and in print too
Thomas Junk <thomas.junk@intevation.de>
parents: 4011
diff changeset
360 }
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
361 },
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
362 close() {
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
363 this.$store.commit("application/paneSetup", "DEFAULT");
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
364 },
4136
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
365 getPrintLayout(svgHeight, svgWidth) {
3941
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
366 return {
4136
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
367 main: {
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
368 top: 0,
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
369 right: Math.floor(svgWidth * 0.025),
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
370 bottom: Math.floor(svgHeight * 0.17),
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
371 left: Math.floor(svgWidth * 0.025)
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
372 }
3941
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
373 };
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
374 },
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
375 drawDiagram() {
4665
c47c8085cc7e client: translation: implement marking of diagram labels
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4598
diff changeset
376 d3.timeFormatDefaultLocale(localeDateString);
3941
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
377 const elem = document.querySelector("#" + this.containerId);
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
378 const svgWidth = elem != null ? elem.clientWidth : 0;
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
379 const svgHeight = elem != null ? elem.clientHeight : 0;
4136
630b817d12b3 fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents: 4012
diff changeset
380 const layout = this.getPrintLayout(svgHeight, svgWidth);
3941
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
381 const dimensions = this.getDimensions({
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
382 svgHeight,
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
383 svgWidth,
7b3935a8d9ee refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents: 3940
diff changeset
384 ...layout
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
385 });
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
386 d3.select(".diagram-container svg").remove();
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
387 this.renderTo({ element: ".diagram-container", dimensions });
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
388 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
389 drawTooltip(diagram) {
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
390 diagram
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
391 .append("text")
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
392 .text("")
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
393 .attr("font-size", "0.8em")
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
394 .attr("opacity", 0)
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
395 .attr("id", "tooltip");
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
396 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
397 renderTo({ element, dimensions }) {
3913
9ec50fd5c9fa available_fairwaydepthLNWL: readd padding.top
Thomas Junk <thomas.junk@intevation.de>
parents: 3912
diff changeset
398 let diagram = d3
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
399 .select(element)
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
400 .append("svg")
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
401 .attr("width", "100%")
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
402 .attr("height", "100%");
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
403 diagram = diagram.append("g");
4803
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
404 diagram
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
405 .append("g")
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
406 .append("rect")
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
407 .attr("width", "100%")
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
408 .attr("height", "100%")
b3f65cff13e8 client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4677
diff changeset
409 .attr("fill", "#ffffff");
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
410 const yScale = d3
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
411 .scaleLinear()
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
412 .domain([0, 100])
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
413 .range([dimensions.mainHeight - 30, 0]);
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
414 this.drawScaleLabel({ diagram, dimensions });
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
415 this.drawScale({ diagram, dimensions, yScale });
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
416 this.drawBars({ diagram, yScale, dimensions });
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
417 this.drawTooltip(diagram);
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
418 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
419 drawBars({ diagram, yScale, dimensions }) {
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
420 if (this.fwLNWLData) {
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
421 const widthPerItem = Math.min(
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
422 (dimensions.width - this.scalePaddingLeft - this.scalePaddingRight) /
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
423 this.fwLNWLData.length,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
424 180
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
425 );
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
426 const spaceBetween = widthPerItem * 0.2;
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
427 const afdWidth = widthPerItem * 0.5;
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
428 const ldcWidth = widthPerItem * 0.3;
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
429 this.fwLNWLData.forEach((data, i) => {
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
430 this.drawLNWL(
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
431 data,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
432 i,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
433 diagram,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
434 spaceBetween,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
435 widthPerItem,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
436 ldcWidth,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
437 yScale
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
438 );
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
439 this.drawAFD(
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
440 data,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
441 i,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
442 diagram,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
443 spaceBetween,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
444 widthPerItem,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
445 ldcWidth,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
446 yScale,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
447 afdWidth
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
448 );
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
449 this.drawLabel(data.date, i, diagram, widthPerItem, dimensions);
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
450 });
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
451 }
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
452 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
453 drawLabel(date, i, diagram, widthPerItem, dimensions) {
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
454 diagram
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
455 .append("text")
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
456 .text(date)
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
457 .attr("text-anchor", "middle")
3922
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
458 .attr("font-size", 10)
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
459 .attr(
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
460 "transform",
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
461 `translate(${this.scalePaddingLeft +
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
462 widthPerItem * i +
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
463 widthPerItem / 2} ${dimensions.mainHeight + this.paddingTop - 5})`
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
464 );
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
465 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
466 drawAFD(
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
467 data,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
468 i,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
469 diagram,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
470 spaceBetween,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
471 widthPerItem,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
472 ldcWidth,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
473 yScale,
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
474 afdWidth
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
475 ) {
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
476 let afd = diagram
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
477 .append("g")
3386
0ba142a4bf43 afdlnwl: colors
Thomas Junk <thomas.junk@intevation.de>
parents: 3381
diff changeset
478 .attr(
0ba142a4bf43 afdlnwl: colors
Thomas Junk <thomas.junk@intevation.de>
parents: 3381
diff changeset
479 "transform",
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
480 `translate(${this.scalePaddingLeft +
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
481 spaceBetween / 2 +
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
482 widthPerItem * i +
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
483 ldcWidth})`
3386
0ba142a4bf43 afdlnwl: colors
Thomas Junk <thomas.junk@intevation.de>
parents: 3381
diff changeset
484 );
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
485 afd
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
486 .selectAll("rect")
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
487 .data([data.above, data.between, data.below])
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
488 .enter()
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
489 .append("rect")
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
490 .on("mouseover", function() {
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
491 d3.select(this).attr("opacity", "0.8");
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
492 d3.select("#tooltip").attr("opacity", 1);
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
493 })
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
494 .on("mouseout", function() {
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
495 d3.select(this).attr("opacity", 1);
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
496 d3.select("#tooltip").attr("opacity", 0);
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
497 })
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
498 .on("mousemove", function(d) {
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
499 let y = d3.mouse(this)[1];
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
500 const dy = document
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
501 .querySelector(".diagram-container")
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
502 .getBoundingClientRect().left;
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
503 d3.select("#tooltip")
3907
7b172a1fd9e7 client: available fairway depth diagram: rounded values in tooltip
Markus Kottlaender <markus@intevation.de>
parents: 3905
diff changeset
504 .text(Math.round(d))
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
505 .attr("y", y - 10)
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
506 .attr("x", d3.event.pageX - dy);
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
507 //d3.event.pageX gives coordinates relative to SVG
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
508 //dy gives offset of svg on page
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
509 })
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
510 .attr("height", d => {
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
511 return yScale(0) - yScale(d);
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
512 })
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
513 .attr("y", (d, i) => {
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
514 if (i === 0) {
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
515 return yScale(d);
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
516 }
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
517 if (i === 1) {
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
518 return yScale(data.above + d);
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
519 }
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
520 if (i === 2) {
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
521 return yScale(data.above + data.between + d);
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
522 }
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
523 })
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
524 .attr("transform", `translate(0 ${this.paddingTop})`)
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
525 .attr("width", afdWidth)
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
526 .attr("fill", (d, i) => {
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
527 return this.$options.AFDCOLORS[i];
3380
d83c738e8627 fairway_availability_LNWL: draw chart with MOCKDATA
Thomas Junk <thomas.junk@intevation.de>
parents: 3377
diff changeset
528 });
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
529 if (this.showNumbers) {
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
530 afd
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
531 .selectAll("text")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
532 .data([data.above, data.between, data.below])
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
533 .enter()
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
534 .append("text")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
535 .attr("fill", "black")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
536 .attr("text-anchor", "middle")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
537 .attr("x", ldcWidth / 2)
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
538 .attr("y", (d, i) => {
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
539 let h = d; // i == 0
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
540 if (i > 0) {
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
541 h += data.above;
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
542 }
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
543 if (i > 1) {
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
544 h += data.between;
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
545 }
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
546 return yScale(h + 0.8) + this.paddingTop;
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
547 })
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
548 .text(d => (d > 0 ? Math.round(d) : ""))
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
549 .attr("font-size", "8");
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
550 }
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
551 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
552 drawLNWL(data, i, diagram, spaceBetween, widthPerItem, ldcWidth, yScale) {
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
553 let lnwl = diagram
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
554 .append("g")
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
555 .attr(
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
556 "transform",
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
557 `translate(${this.scalePaddingLeft +
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
558 spaceBetween / 2 +
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
559 widthPerItem * i})`
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
560 );
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
561 lnwl
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
562 .append("rect")
3461
b43cf476d791 client: spuc05: implemented new data structure (CSV) and added support for multiple charts
Markus Kottlaender <markus@intevation.de>
parents: 3450
diff changeset
563 .datum([data.ldc])
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
564 .on("mouseover", function() {
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
565 d3.select(this).attr("opacity", "0.8");
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
566 d3.select("#tooltip").attr("opacity", 1);
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
567 })
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
568 .on("mouseout", function() {
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
569 d3.select(this).attr("opacity", 1);
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
570 d3.select("#tooltip").attr("opacity", 0);
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
571 })
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
572 .on("mousemove", function(d) {
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
573 let y = d3.mouse(this)[1];
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
574 const dy = document
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
575 .querySelector(".diagram-container")
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
576 .getBoundingClientRect().left;
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
577 d3.select("#tooltip")
3907
7b172a1fd9e7 client: available fairway depth diagram: rounded values in tooltip
Markus Kottlaender <markus@intevation.de>
parents: 3905
diff changeset
578 .text(Math.round(d[0]))
3377
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
579 .attr("y", y - 10)
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
580 .attr("x", d3.event.pageX - dy);
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
581 //d3.event.pageX gives coordinates relative to SVG
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
582 //dy gives offset of svg on page
ccb5455f0713 available_fairway_depthLNWL: tooltips added
Thomas Junk <thomas.junk@intevation.de>
parents: 3368
diff changeset
583 })
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
584 .attr("height", d => yScale(0) - yScale(d))
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
585 .attr("y", d => yScale(d))
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
586 .attr("transform", `translate(0 ${this.paddingTop})`)
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
587 .attr("width", ldcWidth)
3463
6f4dad7473d7 afdLNWL: basical usage of classbreaks
Thomas Junk <thomas.junk@intevation.de>
parents: 3461
diff changeset
588 .attr("fill", () => {
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
589 return this.$options.LWNLCOLORS.LDC;
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
590 });
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
591 if (this.showNumbers) {
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
592 // we do not need to bind data or a datum as the forEach in drawBars
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
593 // already brings us only one datum in data
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
594 lnwl
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
595 .append("text")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
596 .attr("y", yScale(data.ldc + 0.8) + this.paddingTop)
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
597 .text(data.ldc)
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
598 .attr("text-anchor", "left")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
599 .attr("fill", "black")
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
600 .attr("font-size", "8");
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
601 }
3368
70605404f37d fa_lnwl: prototypical diagram added
Thomas Junk <thomas.junk@intevation.de>
parents: 3366
diff changeset
602 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
603 drawScaleLabel({ diagram, dimensions }) {
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
604 diagram
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
605 .append("text")
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
606 .text(this.$options.LEGEND)
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
607 .attr("text-anchor", "middle")
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
608 .attr("x", 0)
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
609 .attr("y", 0)
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
610 .attr("dy", "20")
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
611 .attr("fill", "black")
3814
ff8ca2d80ce9 client: improve pdf generation towards vector diagrams
Bernhard Reiter <bernhard@intevation.de>
parents: 3806
diff changeset
612 // translate a few mm to the right to allow for slightly higher letters
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
613 .attr(
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
614 "transform",
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
615 `translate(2, ${(dimensions.mainHeight + this.paddingTop) /
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
616 2}), rotate(-90)`
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
617 );
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
618 },
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
619 drawScale({ diagram, dimensions, yScale }) {
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
620 const yAxisLeft = d3
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
621 .axisLeft()
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
622 .tickSizeInner(
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
623 dimensions.width - this.scalePaddingLeft - this.scalePaddingRight
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
624 )
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
625 .tickSizeOuter(0)
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
626 .scale(yScale);
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
627 const yAxisRight = d3
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
628 .axisRight()
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
629 .tickSizeInner(
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
630 dimensions.width - this.scalePaddingLeft - this.scalePaddingRight
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
631 )
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
632 .tickSizeOuter(0)
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
633 .scale(yScale);
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
634
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
635 diagram
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
636 .append("g")
3876
0c6ef9e655fc client: available fairway depth diagrams: added second y-axis on the right
Markus Kottlaender <markus@intevation.de>
parents: 3717
diff changeset
637 .attr(
0c6ef9e655fc client: available fairway depth diagrams: added second y-axis on the right
Markus Kottlaender <markus@intevation.de>
parents: 3717
diff changeset
638 "transform",
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
639 `translate(${dimensions.width - this.scalePaddingRight} ${
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
640 this.paddingTop
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
641 })`
3876
0c6ef9e655fc client: available fairway depth diagrams: added second y-axis on the right
Markus Kottlaender <markus@intevation.de>
parents: 3717
diff changeset
642 )
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
643 .call(yAxisLeft)
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
644 .selectAll(".tick text")
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
645 .attr("fill", "black")
3922
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
646 .attr("font-size", 10)
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
647 .attr("dy", 3)
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
648 .attr("dx", -3)
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
649 .select(function() {
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
650 return this.parentNode;
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
651 })
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
652 .selectAll(".tick line")
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
653 .attr("stroke-dasharray", 5)
3905
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
654 .attr("stroke", "#ccc")
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
655 .select(function() {
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
656 return this.parentNode;
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
657 })
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
658 .filter(d => d === 0)
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
659 .selectAll(".tick line")
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
660 .attr("stroke-dasharray", "none")
3c095749efb2 client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents: 3890
diff changeset
661 .attr("stroke", "#333");
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
662 diagram
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
663 .append("g")
3916
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
664 .attr(
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
665 "transform",
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
666 `translate(${this.scalePaddingLeft} ${this.paddingTop})`
c76bbd27f89c client: AFDvsLNWL diagram: adjusted height to be same as other AFD diagram
Markus Kottlaender <markus@intevation.de>
parents: 3913
diff changeset
667 )
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
668 .call(yAxisRight)
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
669 .selectAll(".tick text")
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
670 .attr("fill", "black")
3922
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
671 .attr("font-size", 10)
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
672 .attr("dy", 3)
32b656e77e2f client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents: 3920
diff changeset
673 .attr("dx", 3)
3877
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
674 .select(function() {
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
675 return this.parentNode;
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
676 })
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
677 .selectAll(".tick line")
d82b5e5868e3 client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents: 3876
diff changeset
678 .attr("stroke", "transparent");
3912
b7dfee369f2f available_fairwaydepthLNWL: factor out sideeffects and render offscreen
Thomas Junk <thomas.junk@intevation.de>
parents: 3907
diff changeset
679 diagram.selectAll(".domain").attr("stroke", "black");
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
680 }
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
681 },
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
682 watch: {
3299
ef52926ce2fc available_fairwaydepth_vs_lnwl: Scales adjusted
Thomas Junk <thomas.junk@intevation.de>
parents: 3296
diff changeset
683 fwLNWLData() {
4383
59a7b7ec56c4 Available_Fairway_DepthLNWL: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents: 4359
diff changeset
684 this.initDiagramValues();
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
685 this.drawDiagram();
4359
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
686 },
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
687 showNumbers() {
057787583b12 client: add showNumbers option to AvailableFairwayDepthLNWL
Bernhard Reiter <bernhard@intevation.de>
parents: 4319
diff changeset
688 this.drawDiagram();
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
689 }
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
690 },
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
691 LEGEND: app.$gettext("Percent"),
4319
0d516bac1aae bottleneck fairway availability: minor layout adjustments
Thomas Junk <thomas.junk@intevation.de>
parents: 4312
diff changeset
692 AFDCOLORS: ["blue", "darksalmon", "hotpink"],
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
693 LWNLCOLORS: {
4312
8926fc81e4de client: unify legend colors for fairway availability diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents: 4136
diff changeset
694 LDC: "aqua",
3992
2f024d6189ca Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents: 3965
diff changeset
695 HDC: "#43FFE1"
3381
540ef09bd6bc fix linting
Thomas Junk <thomas.junk@intevation.de>
parents: 3380
diff changeset
696 }
3296
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
697 };
fa7dc3f31ef3 available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff changeset
698 </script>