Mercurial > gemma
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 |
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 | 7 <div v-for="(entry, index) in legendLNWL" :key="index" class="legend"> |
3474 | 8 <span |
9 :style=" | |
10 `${legendStyle( | |
11 index | |
12 )}; border-radius: 0.25rem; width: 40px; height: 20px;` | |
13 " | |
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 | 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 | 188 "csv", |
189 "depthlimit1", | |
190 "depthlimit2", | |
191 "widthlimit1", | |
192 "widthlimit2" | |
3296
fa7dc3f31ef3
available_fairwaydepth_vs_lnwl: POC etd.
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
193 ]), |
3471 | 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 | 211 }, |
3437 | 212 dataLink() { |
213 return `data:text/csv;charset=utf-8, ${encodeURIComponent(this.csv)}`; | |
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 | 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 | 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 | 266 return style[index]; |
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 | 478 .attr( |
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 | 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 | 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> |