Mercurial > gemma
annotate client/src/components/fairway/AvailableFairwayDepth.vue @ 5475:791a372553a0
Client:FWA: Fix setting request parameters and legend
* Set default limit-width values (80m, 150m) for bottlenecks that limited
by width
* Fix condition of generating the legend
* Fix setting the boundaries of the legend
* Convert limit-width values to "cm" for the request.
author | Fadi Abbud <fadi.abbud@intevation.de> |
---|---|
date | Mon, 16 Aug 2021 15:55:57 +0200 |
parents | 6b054b91d9b2 |
children | 89b6978afc58 |
rev | line source |
---|---|
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
1 <template> |
3184
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
2 <div class="d-flex flex-column flex-fill"> |
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
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" /> |
3279
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
5 <div class="d-flex flex-fill"> |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
6 <DiagramLegend> |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
7 <div v-for="(entry, index) in legend" :key="index" class="legend"> |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
8 <span |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
9 :style=" |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
10 `${legendStyle( |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
11 index |
3280
8fb81b45085f
available_fairway_depth: use rounded border for legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3279
diff
changeset
|
12 )}; border-radius: 0.25rem; width: 40px; height: 20px;` |
3279
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
13 " |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
14 ></span> |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
15 {{ entry }} |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
16 </div> |
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
17 <div> |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
18 <select |
3273
050e72ce5cf7
client: diagram-template: add template elements and get templates from backend(fairway avalibilty)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3268
diff
changeset
|
19 @change="applyChange" |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
20 v-model="form.template" |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
21 class="form-control d-block custom-select-sm w-100 mt-1" |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
22 > |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
23 <option |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
24 v-for="template in templates" |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
25 :value="template" |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
26 :key="template.name" |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
27 > |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
28 {{ template.name }} |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
29 </option> |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
30 </select> |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
31 <button |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
32 @click="downloadPDF" |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
33 type="button" |
3466
dfa97aad1134
client: unify the buttons style for diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3464
diff
changeset
|
34 class="btn btn-sm btn-info d-block w-100 mt-2" |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
35 > |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
36 <translate>Export to PDF</translate> |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
37 </button> |
3437 | 38 <a |
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:
3464
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:
4440
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('AFDpng', title)" |
4805
7de099c4824c
client: image-export: improve hyperlink ids for download
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4803
diff
changeset
|
46 id="AFDpng" |
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> |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
52 </div> |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
53 <div class="btn-group-toggle w-100 mt-2"> |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
54 <label |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
55 class="btn btn-outline-secondary btn-sm" |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
56 :class="{ active: showNumbers }" |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
57 ><input |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
58 type="checkbox" |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
59 v-model="showNumbers" |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
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:
4440
diff
changeset
|
61 /><translate>Numbers</translate> |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
62 </label> |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
63 </div> |
3279
215173f62900
available_fairway_depth: improve legend layout
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3273
diff
changeset
|
64 </DiagramLegend> |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
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" |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
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> |
3135 | 70 </div> |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
71 </div> |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
72 </template> |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
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 |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
76 <script> |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
77 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
78 * without warranty, see README.md and license for details. |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
79 * |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
80 * SPDX-License-Identifier: AGPL-3.0-or-later |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
81 * License-Filename: LICENSES/AGPL-3.0.txt |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
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 |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
84 * – Österreichische Wasserstraßen-Gesellschaft mbH |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
85 * Software engineering by Intevation GmbH |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
86 * |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
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> |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
91 * * Bernhard Reiter <bernhard.reiter@intevation.de> |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
92 */ |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
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"; |
3184
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
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"; |
3939
f9de2ea2706e
available_fairway_depth: leverage mixin
Thomas Junk <thomas.junk@intevation.de>
parents:
3927
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"; |
3327
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
101 import { FREQUENCIES } from "@/store/fairwayavailability"; |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
102 import { defaultDiagramTemplate } from "@/lib/DefaultDiagramTemplate"; |
4665
c47c8085cc7e
client: translation: implement marking of diagram labels
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4598
diff
changeset
|
103 import { localeDateString } from "@/lib/datelocalization"; |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
104 |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
105 export default { |
3939
f9de2ea2706e
available_fairway_depth: leverage mixin
Thomas Junk <thomas.junk@intevation.de>
parents:
3927
diff
changeset
|
106 mixins: [diagram, pdfgen, templateLoader], |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
107 components: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
108 DiagramLegend: () => import("@/components/DiagramLegend") |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
109 }, |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
110 data() { |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
111 return { |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
112 frequencyD: null, |
4382
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
113 selectedFairwayAvailabilityFeatureD: null, |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
114 fromDate: null, |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
115 toDate: null, |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
116 depthlimit1D: null, |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
117 depthlimit2D: null, |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
118 widthlimit1D: null, |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
119 widthlimit2D: null, |
3918
1e837d86bead
available_fairway_lnwl: fixed containerID
Thomas Junk <thomas.junk@intevation.de>
parents:
3917
diff
changeset
|
120 containerId: "availablefairwaydepth-diagram-container", |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
121 resizeListenerFunction: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
122 loading: false, |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
123 scalePaddingLeft: 60, |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
124 scalePaddingRight: 0, |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
125 paddingTop: 25, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
126 pdf: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
127 doc: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
128 width: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
129 height: null |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
130 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
131 form: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
132 template: null |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
133 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
134 templateData: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
135 templates: [], |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
136 defaultTemplate: defaultDiagramTemplate, |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
137 showNumbers: false |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
138 }; |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
139 }, |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
140 created() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
141 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
|
142 window.addEventListener("resize", this.resizeListenerFunction); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
143 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
144 destroyed() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
145 window.removeEventListener("resize", this.resizeListenerFunction); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
146 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
147 mounted() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
148 // 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
|
149 // 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
|
150 // 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
|
151 // 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
|
152 // 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
|
153 // 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
|
154 // screen. |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
155 setTimeout(this.drawDiagram, 150); |
4382
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
156 this.initDiagramValues(); |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
157 this.templates[0] = this.defaultTemplate; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
158 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
|
159 this.templateData = this.form.template; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
160 HTTP.get("/templates/diagram", { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
161 headers: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
162 "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
|
163 "Content-type": "text/xml; charset=UTF-8" |
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 }) |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
166 .then(response => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
167 if (response.data.length) { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
168 this.templates = response.data; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
169 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
|
170 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
|
171 this.applyChange(); |
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 }) |
4868
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
174 .catch(error => { |
4869
6b054b91d9b2
backend not reachable as error message etd. Login adjusted
Thomas Junk <thomas.junk@intevation.de>
parents:
4868
diff
changeset
|
175 let message = "Backend not reachable"; |
4868
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
176 if (error.response) { |
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
177 const { status, data } = error.response; |
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
178 message = `${status}: ${data.message || data}`; |
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
179 } |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
180 displayError({ |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
181 title: this.$gettext("Backend Error"), |
4868
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
182 message: message |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
183 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
184 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
185 }, |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
186 computed: { |
3210
66e90b48387a
available_fairway-depth: store refactored
Thomas Junk <thomas.junk@intevation.de>
parents:
3192
diff
changeset
|
187 ...mapState("fairwayavailability", [ |
3191
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
188 "selectedFairwayAvailabilityFeature", |
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
189 "fwData", |
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
190 "from", |
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
191 "to", |
3216
ee6a4e8af766
available_fairway_depth: legend POC
Thomas Junk <thomas.junk@intevation.de>
parents:
3213
diff
changeset
|
192 "frequency", |
3476
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
193 "csv", |
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
194 "depthlimit1", |
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
195 "depthlimit2", |
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
196 "widthlimit1", |
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
197 "widthlimit2" |
3191
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
198 ]), |
3476
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
199 legend() { |
5475
791a372553a0
Client:FWA: Fix setting request parameters and legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4869
diff
changeset
|
200 const d = [this.depthlimit1D, this.depthlimit2D].sort((a, b) => a - b); |
791a372553a0
Client:FWA: Fix setting request parameters and legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4869
diff
changeset
|
201 const w = [this.widthlimit1D, this.widthlimit2D].sort((a, b) => a - b); |
4425
fe8c331760ae
client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4412
diff
changeset
|
202 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:
4412
diff
changeset
|
203 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
|
204 let result; |
5475
791a372553a0
Client:FWA: Fix setting request parameters and legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4869
diff
changeset
|
205 if ( |
791a372553a0
Client:FWA: Fix setting request parameters and legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4869
diff
changeset
|
206 this.depthlimit1D !== this.depthlimit2D || |
791a372553a0
Client:FWA: Fix setting request parameters and legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4869
diff
changeset
|
207 this.widthlimit1 !== this.widthlimit2 |
791a372553a0
Client:FWA: Fix setting request parameters and legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4869
diff
changeset
|
208 ) { |
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 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
|
210 `> LDC`, |
4425
fe8c331760ae
client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4412
diff
changeset
|
211 `>= ${upperBound} [m]`, |
fe8c331760ae
client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4412
diff
changeset
|
212 `< ${upperBound} [m]`, |
fe8c331760ae
client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4412
diff
changeset
|
213 `< ${lowerBound} [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
|
214 ]; |
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
|
215 } else { |
4425
fe8c331760ae
client: FWD: correct values for diagramlegend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4412
diff
changeset
|
216 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
|
217 } |
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
|
218 return result; |
3476
cc11f207e060
afd: omit legend generation from CSV. Legend is generated from known inputs
Thomas Junk <thomas.junk@intevation.de>
parents:
3466
diff
changeset
|
219 }, |
3437 | 220 dataLink() { |
221 return `data:text/csv;charset=utf-8, ${encodeURIComponent(this.csv)}`; | |
222 }, | |
4803
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
223 fileName() { |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
224 if (!this.frequencyD) return; |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
225 return this.downloadFilename( |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
226 this.$gettext("FairwayAvailability"), |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
227 this.featureName |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
228 ); |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
229 }, |
3437 | 230 csvFileName() { |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
231 if (!this.frequencyD) return; |
4677
fa55e48bbca1
client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4665
diff
changeset
|
232 return ( |
fa55e48bbca1
client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4665
diff
changeset
|
233 this.downloadFilename( |
fa55e48bbca1
client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4665
diff
changeset
|
234 this.$gettext("FairwayAvailability"), |
fa55e48bbca1
client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4665
diff
changeset
|
235 this.featureName |
fa55e48bbca1
client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4665
diff
changeset
|
236 ) + ".csv" |
fa55e48bbca1
client: improve filename generation for downloads
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4665
diff
changeset
|
237 ); |
3437 | 238 }, |
3327
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
239 frequencyToRange() { |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
240 if (!this.frequencyD) return; |
3327
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
241 const frequencies = { |
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
242 [FREQUENCIES.MONTHLY]: [-33, 33], |
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
243 [FREQUENCIES.QUARTERLY]: [-93, 93], |
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
244 [FREQUENCIES.YEARLY]: [-370, 370] |
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
245 }; |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
246 return frequencies[this.frequencyD]; |
3327
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
247 }, |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
248 availability() { |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
249 return this.plainAvailability; |
3184
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
250 }, |
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
251 title() { |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
252 if (!this.frequencyD) return; |
4598
96283fc7de02
client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4440
diff
changeset
|
253 return `${this.$gettext("Available Fairway Depth:")} ${ |
3191
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
254 this.featureName |
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
255 } (${filters.surveyDate(this.fromDate)} - ${filters.surveyDate( |
c0cd5dfec153
statistics: persist fields to vuex
Thomas Junk <thomas.junk@intevation.de>
parents:
3185
diff
changeset
|
256 this.toDate |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
257 )}) ${this.$gettext(this.frequencyD)}`; |
3184
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
258 }, |
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
259 featureName() { |
4382
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
260 if (this.selectedFairwayAvailabilityFeatureD == null) return ""; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
261 return this.selectedFairwayAvailabilityFeatureD.properties.name; |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
262 } |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
263 }, |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
264 methods: { |
4809
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
265 addLegendToCanvas(ctx, { width, height }) { |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
266 let x = width / 20, |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
267 y = height - 35; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
268 ctx.font = "14px sans-serif"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
269 ctx.textAlign = "start"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
270 if (this.legend[3]) { |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
271 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
272 ctx.fillStyle = this.$options.COLORS.LDC; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
273 ctx.strokeStyle = this.$options.COLORS.LDC; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
274 ctx.rect(x, y, 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
275 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
276 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
277 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
278 ctx.fillText(this.legend[0], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
279 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
280 |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
281 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
282 ctx.fillStyle = this.$options.COLORS.HIGHEST; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
283 ctx.strokeStyle = this.$options.COLORS.HIGHEST; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
284 ctx.rect(x, (y += 25), 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
285 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
286 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
287 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
288 ctx.fillText(this.legend[1], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
289 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
290 |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
291 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
292 ctx.fillStyle = this.$options.COLORS.REST[1]; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
293 ctx.strokeStyle = this.$options.COLORS.REST[1]; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
294 ctx.rect(x, (y += 25), 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
295 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
296 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
297 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
298 ctx.fillText(this.legend[2], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
299 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
300 |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
301 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
302 ctx.fillStyle = this.$options.COLORS.REST[0]; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
303 ctx.strokeStyle = this.$options.COLORS.REST[0]; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
304 ctx.rect(x, (y += 25), 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
305 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
306 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
307 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
308 ctx.fillText(this.legend[3], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
309 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
310 } else { |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
311 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
312 ctx.fillStyle = this.$options.COLORS.LDC; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
313 ctx.strokeStyle = this.$options.COLORS.LDC; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
314 ctx.rect(x, y, 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
315 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
316 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
317 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
318 ctx.fillText(this.legend[0], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
319 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
320 |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
321 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
322 ctx.fillStyle = this.$options.COLORS.HIGHEST; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
323 ctx.strokeStyle = this.$options.COLORS.HIGHEST; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
324 ctx.rect(x, (y += 25), 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
325 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
326 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
327 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
328 ctx.fillText(this.legend[1], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
329 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
330 |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
331 ctx.beginPath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
332 ctx.fillStyle = this.$options.COLORS.REST[0]; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
333 ctx.strokeStyle = this.$options.COLORS.REST[0]; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
334 ctx.rect(x, (y += 25), 35, 20); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
335 ctx.fill(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
336 ctx.stroke(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
337 ctx.fillStyle = "black"; |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
338 ctx.fillText(this.legend[2], x + 40, y + 13); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
339 ctx.closePath(); |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
340 } |
b6d8570b8480
client: image-export: add diagram legend
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4808
diff
changeset
|
341 }, |
4382
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
342 initDiagramValues() { |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
343 this.selectedFairwayAvailabilityFeatureD = this.selectedFairwayAvailabilityFeature; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
344 this.fromDate = this.from; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
345 this.toDate = this.to; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
346 this.depthlimit1D = this.depthlimit1; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
347 this.depthlimit2D = this.depthlimit2; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
348 this.widthlimit1D = this.widthlimit1; |
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
349 this.widthlimit2D = this.widthlimit2; |
4386
bad093433899
AFD: frequency decoupled
Thomas Junk <thomas.junk@intevation.de>
parents:
4382
diff
changeset
|
350 this.frequencyD = this.frequency; |
4382
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
351 }, |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
352 applyChange() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
353 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
|
354 this.templateData = this.defaultTemplate; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
355 return; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
356 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
357 if (this.form.template) { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
358 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
|
359 .then(response => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
360 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
|
361 values => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
362 values.forEach(v => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
363 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
|
364 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
365 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
|
366 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
367 ); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
368 }) |
4868
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
369 .catch(error => { |
4869
6b054b91d9b2
backend not reachable as error message etd. Login adjusted
Thomas Junk <thomas.junk@intevation.de>
parents:
4868
diff
changeset
|
370 let message = "Backend not reachable"; |
4868
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
371 if (error.response) { |
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
372 const { status, data } = error.response; |
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
373 message = `${status}: ${data.message || data}`; |
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
374 } |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
375 displayError({ |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
376 title: this.$gettext("Backend Error"), |
4868
008bc1ae8897
exception handling
Thomas Junk <thomas.junk@intevation.de>
parents:
4809
diff
changeset
|
377 message: message |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
378 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
379 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
380 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
381 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
382 downloadPDF() { |
4598
96283fc7de02
client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4440
diff
changeset
|
383 let title = `${this.$gettext("Available Fairway Depth:")} ${ |
96283fc7de02
client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4440
diff
changeset
|
384 this.featureName |
96283fc7de02
client: mark strings for translations(AFD,AFDLNWL)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4440
diff
changeset
|
385 }`; |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
386 this.generatePDF({ |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
387 templateData: this.templateData, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
388 diagramTitle: title |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
389 }); |
4803
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
390 this.pdf.doc.save(this.fileName + ".pdf"); |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
391 }, |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
392 addDiagramLegend(position, offset, color) { |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
393 let x = offset.x, |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
394 y = offset.y; |
3333
d5dbfba9faae
clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3330
diff
changeset
|
395 this.pdf.doc.setFontSize(10); |
d5dbfba9faae
clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3330
diff
changeset
|
396 let width = |
3493
da58cf951342
client: diagram-template: improve diagramlegend element (AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3484
diff
changeset
|
397 (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:
3330
diff
changeset
|
398 // 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:
3330
diff
changeset
|
399 // the size of the element |
d5dbfba9faae
clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3330
diff
changeset
|
400 if (["topright", "bottomright"].indexOf(position) !== -1) { |
d5dbfba9faae
clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3330
diff
changeset
|
401 x = this.pdf.width - offset.x - width; |
d5dbfba9faae
clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3330
diff
changeset
|
402 } |
d5dbfba9faae
clinet: pdf-template: fix positioning of diagramlegend (FairwayAvailability,AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3330
diff
changeset
|
403 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
3493
da58cf951342
client: diagram-template: improve diagramlegend element (AvailableFairwayDepth)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3484
diff
changeset
|
404 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:
3330
diff
changeset
|
405 } |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
406 |
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
|
407 if (this.legend[3]) { |
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
|
408 this.pdf.doc.setTextColor(color); |
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
|
409 this.pdf.doc.setDrawColor(this.$options.COLORS.LDC); |
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
|
410 this.pdf.doc.setFillColor(this.$options.COLORS.LDC); |
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
|
411 this.pdf.doc.roundedRect(x, y, 10, 4, 1.5, 1.5, "FD"); |
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
|
412 this.pdf.doc.text(this.legend[0], x + 12, y + 3); |
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
|
413 |
4013
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
414 this.pdf.doc.setDrawColor(this.$options.COLORS.HIGHEST); |
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
415 this.pdf.doc.setFillColor(this.$options.COLORS.HIGHEST); |
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
|
416 this.pdf.doc.roundedRect(x, y + 5, 10, 4, 1.5, 1.5, "FD"); |
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
|
417 this.pdf.doc.text(this.legend[1], x + 12, y + 8); |
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
|
418 |
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
|
419 this.pdf.doc.setDrawColor(this.$options.COLORS.REST[1]); |
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
|
420 this.pdf.doc.setFillColor(this.$options.COLORS.REST[1]); |
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
|
421 this.pdf.doc.roundedRect(x, y + 10, 10, 4, 1.5, 1.5, "FD"); |
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
|
422 this.pdf.doc.text(this.legend[2], x + 12, y + 13); |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
423 |
4013
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
424 this.pdf.doc.setDrawColor(this.$options.COLORS.REST[0]); |
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
425 this.pdf.doc.setFillColor(this.$options.COLORS.REST[0]); |
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
|
426 this.pdf.doc.roundedRect(x, y + 15, 10, 4, 1.5, 1.5, "FD"); |
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
|
427 this.pdf.doc.text(this.legend[3], x + 12, y + 18); |
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
|
428 } else { |
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
|
429 this.pdf.doc.setTextColor(color); |
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
|
430 this.pdf.doc.setDrawColor(this.$options.COLORS.LDC); |
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
|
431 this.pdf.doc.setFillColor(this.$options.COLORS.LDC); |
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
|
432 this.pdf.doc.roundedRect(x, y, 10, 4, 1.5, 1.5, "FD"); |
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
|
433 this.pdf.doc.text(this.legend[0], x + 12, y + 3); |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
434 |
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
|
435 this.pdf.doc.setDrawColor(this.$options.COLORS.HIGHEST); |
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
|
436 this.pdf.doc.setFillColor(this.$options.COLORS.HIGHEST); |
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
|
437 this.pdf.doc.roundedRect(x, y + 5, 10, 4, 1.5, 1.5, "FD"); |
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
|
438 this.pdf.doc.text(this.legend[1], x + 12, y + 8); |
4013
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
439 |
4015
009e9400bef0
legend for print fixed
Thomas Junk <thomas.junk@intevation.de>
parents:
4014
diff
changeset
|
440 this.pdf.doc.setDrawColor(this.$options.COLORS.REST[0]); |
009e9400bef0
legend for print fixed
Thomas Junk <thomas.junk@intevation.de>
parents:
4014
diff
changeset
|
441 this.pdf.doc.setFillColor(this.$options.COLORS.REST[0]); |
4013
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
442 this.pdf.doc.roundedRect(x, y + 10, 10, 4, 1.5, 1.5, "FD"); |
e9ab7c53aa19
fix avail_fwd pdf coloring of labels
Thomas Junk <thomas.junk@intevation.de>
parents:
4011
diff
changeset
|
443 this.pdf.doc.text(this.legend[2], x + 12, y + 13); |
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
|
444 } |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
445 }, |
3239
a7d44d1ae57d
available_fairway_depth: legend
Thomas Junk <thomas.junk@intevation.de>
parents:
3235
diff
changeset
|
446 legendStyle(index) { |
4440
8c4126ff03e8
client:AvailableFairwayDepth: fix comparison
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4425
diff
changeset
|
447 if (this.depthlimit1 === this.depthlimit2) { |
4014 | 448 let result = [ |
449 `background-color: ${this.$options.COLORS.LDC};`, | |
450 `background-color: ${this.$options.COLORS.HIGHEST};` | |
451 ]; | |
452 this.fwData[0].lowerLevels.forEach((e, i) => { | |
453 result.push(`background-color: ${this.$options.COLORS.REST[i]};`); | |
454 }); | |
455 return result[index]; | |
456 } | |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
457 return [ |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
458 `background-color: ${this.$options.COLORS.LDC};`, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
459 `background-color: ${this.$options.COLORS.HIGHEST};`, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
460 `background-color: ${this.$options.COLORS.REST[1]};`, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
461 `background-color: ${this.$options.COLORS.REST[0]};` |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
462 ][index]; |
3239
a7d44d1ae57d
available_fairway_depth: legend
Thomas Junk <thomas.junk@intevation.de>
parents:
3235
diff
changeset
|
463 }, |
3184
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
464 close() { |
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
465 this.$store.commit("application/paneSetup", "DEFAULT"); |
1ba2a7d22fbb
available_fairway_depth: display selected feature
Thomas Junk <thomas.junk@intevation.de>
parents:
3180
diff
changeset
|
466 }, |
4136
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
467 getPrintLayout(svgHeight, svgWidth) { |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
468 return { |
4136
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
469 main: { |
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
470 top: 0, |
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
471 right: Math.floor(svgWidth * 0.025), |
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
472 bottom: Math.floor(svgHeight * 0.17), |
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
473 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
|
474 } |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
475 }; |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
476 }, |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
477 drawDiagram() { |
4665
c47c8085cc7e
client: translation: implement marking of diagram labels
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4598
diff
changeset
|
478 d3.timeFormatDefaultLocale(localeDateString); |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
479 const elem = document.querySelector("#" + this.containerId); |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
480 const svgWidth = elem != null ? elem.clientWidth : 0; |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
481 const svgHeight = elem != null ? elem.clientHeight : 0; |
4136
630b817d12b3
fairway_availability: offsets relative to svgheight and svgwidth
Thomas Junk <thomas.junk@intevation.de>
parents:
4024
diff
changeset
|
482 const layout = this.getPrintLayout(svgHeight, svgWidth); |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
483 const dimensions = this.getDimensions({ |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
484 svgHeight, |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
485 svgWidth, |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3939
diff
changeset
|
486 ...layout |
3235
0c5a28ffe9ee
available_fairway_depth: flexible layouting options
Thomas Junk <thomas.junk@intevation.de>
parents:
3216
diff
changeset
|
487 }); |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
488 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
|
489 this.renderTo({ element: ".diagram-container", dimensions }); |
3911
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
490 }, |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
491 renderTo({ element, dimensions }) { |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
492 const diagram = d3 |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
493 .select(element) |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
494 .append("svg") |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
495 .attr("width", "100%") |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
496 .attr("height", "100%"); |
e4e496ae7974
fairway_availability: rendering to offscreen element
Thomas Junk <thomas.junk@intevation.de>
parents:
3909
diff
changeset
|
497 diagram.append("g"); |
4803
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
498 diagram |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
499 .append("g") |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
500 .append("rect") |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
501 .attr("width", "100%") |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
502 .attr("height", "100%") |
b3f65cff13e8
client: FWD,FWDVsLNWL: implement image-export
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4677
diff
changeset
|
503 .attr("fill", "#ffffff"); |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
504 const yScale = d3 |
3180
429e28295902
available_fairway_depth: implement reactivity
Thomas Junk <thomas.junk@intevation.de>
parents:
3153
diff
changeset
|
505 .scaleLinear() |
3327
7ab8a176db92
available_fairway_depth: adjust scale according to selected timerange
Thomas Junk <thomas.junk@intevation.de>
parents:
3291
diff
changeset
|
506 .domain(this.frequencyToRange) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
507 .range([dimensions.mainHeight - 30, 0]); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
508 this.drawScaleLabel({ diagram, dimensions }); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
509 this.drawScale({ diagram, dimensions, yScale }); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
510 this.drawBars({ diagram, yScale, dimensions }); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
511 this.drawTooltip(diagram); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
512 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
513 drawTooltip(diagram) { |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
514 diagram |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
515 .append("text") |
3874
7b6a74919051
client: available fairway depth diagram: rounding day numbers
Markus Kottlaender <markus@intevation.de>
parents:
3717
diff
changeset
|
516 .text("") |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
517 .attr("font-size", "0.8em") |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
518 .attr("opacity", 0) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
519 .attr("id", "tooltip"); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
520 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
521 drawBars({ diagram, yScale, dimensions }) { |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
522 const widthPerItem = Math.min( |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
523 (dimensions.width - this.scalePaddingLeft - this.scalePaddingRight) / |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
524 this.fwData.length, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
525 180 |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
526 ); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
527 const spaceBetween = widthPerItem * 0.2; |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
528 const ldcOffset = widthPerItem * 0.1; |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
529 const everyBar = diagram |
3877
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
530 .selectAll("g.bars") |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
531 .data(this.fwData) |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
532 .enter() |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
533 .append("g") |
3877
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
534 .attr("class", "bars") |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
535 .attr("transform", (d, i) => { |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
536 const dx = this.scalePaddingLeft + i * widthPerItem; |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
537 return `translate(${dx})`; |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
538 }); |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
539 this.drawSingleBars({ |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
540 everyBar, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
541 yScale, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
542 dimensions, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
543 widthPerItem, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
544 spaceBetween, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
545 ldcOffset |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
546 }); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
547 this.drawLabelPerBar({ everyBar, dimensions, widthPerItem }); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
548 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
549 drawSingleBars({ |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
550 everyBar, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
551 yScale, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
552 widthPerItem, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
553 spaceBetween, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
554 ldcOffset |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
555 }) { |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
556 this.drawLDC({ everyBar, yScale, widthPerItem, spaceBetween, ldcOffset }); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
557 this.drawHighestLevel({ |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
558 everyBar, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
559 yScale, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
560 widthPerItem, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
561 spaceBetween, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
562 ldcOffset |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
563 }); |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
564 this.drawLowerLevels({ |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
565 everyBar, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
566 yScale, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
567 widthPerItem, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
568 spaceBetween, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
569 ldcOffset |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
570 }); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
571 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
572 drawLowerLevels({ |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
573 everyBar, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
574 yScale, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
575 widthPerItem, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
576 spaceBetween, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
577 ldcOffset |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
578 }) { |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
579 everyBar |
3877
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
580 .selectAll("g.bars") |
3330
0e442b547f6d
mocking fairway_availability
Thomas Junk <thomas.junk@intevation.de>
parents:
3327
diff
changeset
|
581 .data(d => d.lowerLevels) |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
582 .enter() |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
583 .append("rect") |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
584 .on("mouseover", function() { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
585 d3.select(this).attr("opacity", "0.8"); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
586 d3.select("#tooltip").attr("opacity", 1); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
587 }) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
588 .on("mouseout", function() { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
589 d3.select(this).attr("opacity", 1); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
590 d3.select("#tooltip").attr("opacity", 0); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
591 }) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
592 .on("mousemove", function(d) { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
593 let y = d3.mouse(this)[1]; |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
594 const dy = document |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
595 .querySelector(".diagram-container") |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
596 .getBoundingClientRect().left; |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
597 d3.select("#tooltip") |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
598 .text(d.height) |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
599 .attr("y", y - 10) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
600 .attr("x", d3.event.pageX - dy); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
601 //d3.event.pageX gives coordinates relative to SVG |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
602 //dy gives offset of svg on page |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
603 }) |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
604 .attr("y", d => 2 * yScale(0) - yScale(d.translateY) + this.paddingTop) |
3128
1610d3042bbb
fairway_availability: generative code fixed
Thomas Junk <thomas.junk@intevation.de>
parents:
3125
diff
changeset
|
605 .attr("height", d => { |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
606 return yScale(0) - yScale(d.height); |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
607 }) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
608 .attr("x", ldcOffset + spaceBetween / 2) |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
609 .attr("width", widthPerItem - ldcOffset - spaceBetween) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
610 .attr("id", "lower") |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
611 .attr("fill", (d, i) => { |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
612 return this.$options.COLORS.REST[i]; |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
613 }); |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
614 if (this.showNumbers) { |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
615 everyBar |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
616 .selectAll("g.bars") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
617 .data(d => d.lowerLevels) |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
618 .enter() |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
619 .filter(d => d.height > 0) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
620 .insert("text") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
621 .attr("y", d => { |
4335
2f212f520a04
client: (minor) beautify code format
Bernhard Reiter <bernhard@intevation.de>
parents:
4334
diff
changeset
|
622 return ( |
2f212f520a04
client: (minor) beautify code format
Bernhard Reiter <bernhard@intevation.de>
parents:
4334
diff
changeset
|
623 2 * yScale(0) - |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
624 yScale(d.translateY) + |
4335
2f212f520a04
client: (minor) beautify code format
Bernhard Reiter <bernhard@intevation.de>
parents:
4334
diff
changeset
|
625 this.paddingTop + |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
626 (yScale(0) - yScale(d.height)) + |
4335
2f212f520a04
client: (minor) beautify code format
Bernhard Reiter <bernhard@intevation.de>
parents:
4334
diff
changeset
|
627 (yScale(0) - yScale(1.9)) //instead o alignment-baseline hanging |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
628 ); |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
629 }) |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
630 .attr("x", widthPerItem / 2) |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
631 .text(d => d.height) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
632 // does not work with svg2pdf .attr("alignment-baseline", "hanging") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
633 .attr("text-anchor", "middle") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
634 .attr("font-size", "8") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
635 .attr("fill", "black"); |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
636 } |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
637 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
638 fnheight({ name, yScale }) { |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
639 return d => yScale(0) - yScale(d[name]); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
640 }, |
3914
9440d2922097
client: available fairwaydepth diagram: adjust width of ldc bar, draw 0-tick line as solid line
Markus Kottlaender <markus@intevation.de>
parents:
3911
diff
changeset
|
641 drawLDC({ everyBar, yScale, widthPerItem, spaceBetween, ldcOffset }) { |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
642 const height = this.fnheight({ name: "ldc", yScale }); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
643 everyBar |
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
644 .append("rect") |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
645 .on("mouseover", function() { |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
646 d3.select(this).attr("opacity", "0.7"); |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
647 d3.select("#tooltip").attr("opacity", 1); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
648 }) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
649 .on("mouseout", function() { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
650 d3.select(this).attr("opacity", 1); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
651 d3.select("#tooltip").attr("opacity", 0); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
652 }) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
653 .on("mousemove", function(d) { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
654 let y = d3.mouse(this)[1]; |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
655 const dy = document |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
656 .querySelector(".diagram-container") |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
657 .getBoundingClientRect().left; |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
658 d3.select("#tooltip") |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
659 .text(d.ldc) |
3410 | 660 .attr("y", y - 50) |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
661 .attr("x", d3.event.pageX - dy); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
662 //d3.event.pageX gives coordinates relative to SVG |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
663 //dy gives offset of svg on page |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
664 }) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
665 .attr("y", yScale(0)) |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
666 .attr("height", height) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
667 .attr("x", spaceBetween / 2) |
3914
9440d2922097
client: available fairwaydepth diagram: adjust width of ldc bar, draw 0-tick line as solid line
Markus Kottlaender <markus@intevation.de>
parents:
3911
diff
changeset
|
668 .attr("width", widthPerItem - ldcOffset - spaceBetween) |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
669 .attr( |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
670 "transform", |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
671 d => `translate(0 ${this.paddingTop + -1 * height(d)})` |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
672 ) |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
673 .attr("fill", this.$options.COLORS.LDC) |
3216
ee6a4e8af766
available_fairway_depth: legend POC
Thomas Junk <thomas.junk@intevation.de>
parents:
3213
diff
changeset
|
674 .attr("id", "ldc"); |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
675 if (this.showNumbers) { |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
676 everyBar |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
677 .filter(d => d.ldc > 0) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
678 .append("text") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
679 .attr("y", yScale(0.5)) // some distance from the bar |
4335
2f212f520a04
client: (minor) beautify code format
Bernhard Reiter <bernhard@intevation.de>
parents:
4334
diff
changeset
|
680 .attr("x", spaceBetween / 2) |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
681 .text(d => d.ldc) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
682 .attr("text-anchor", "left") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
683 .attr("font-size", "8") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
684 .attr( |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
685 "transform", |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
686 d => `translate(0 ${this.paddingTop + -1 * height(d)})` |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
687 ) |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
688 .attr("fill", "black"); |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
689 } |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
690 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
691 drawHighestLevel({ |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
692 everyBar, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
693 yScale, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
694 widthPerItem, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
695 spaceBetween, |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
696 ldcOffset |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
697 }) { |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
698 const height = this.fnheight({ name: "highestLevel", yScale }); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
699 everyBar |
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
700 .append("rect") |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
701 .on("mouseover", function() { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
702 d3.select(this).attr("opacity", "0.8"); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
703 d3.select("#tooltip").attr("opacity", 1); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
704 }) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
705 .on("mouseout", function() { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
706 d3.select(this).attr("opacity", 1); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
707 d3.select("#tooltip").attr("opacity", 0); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
708 }) |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
709 .on("mousemove", function(d) { |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
710 let y = d3.mouse(this)[1]; |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
711 const dy = document |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
712 .querySelector(".diagram-container") |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
713 .getBoundingClientRect().left; |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
714 d3.select("#tooltip") |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
715 .text(d.highestLevel) |
3410 | 716 .attr("y", y - 50) |
3360
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
717 .attr("x", d3.event.pageX - dy); |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
718 //d3.event.pageX gives coordinates relative to SVG |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
719 //dy gives offset of svg on page |
b2ccfebd5616
available_fairway_depth: tooltips
Thomas Junk <thomas.junk@intevation.de>
parents:
3349
diff
changeset
|
720 }) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
721 .attr("y", yScale(0)) |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
722 .attr("height", height) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
723 .attr("x", ldcOffset + spaceBetween / 2) |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
724 .attr("width", widthPerItem - ldcOffset - spaceBetween) |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
725 .attr( |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
726 "transform", |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
727 d => `translate(0 ${this.paddingTop + -1 * height(d)})` |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
728 ) |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
729 .attr("fill", this.$options.COLORS.HIGHEST); |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
730 if (this.showNumbers) { |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
731 everyBar |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
732 .filter(d => d.highestLevel > 0) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
733 .append("text") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
734 .attr("y", yScale(0.5)) // some distance from the bar |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
735 .attr("x", widthPerItem / 2) |
4361
8a26225b6133
client: change AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4335
diff
changeset
|
736 .text(d => d.highestLevel) |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
737 .attr("text-anchor", "middle") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
738 .attr("font-size", "8") |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
739 .attr( |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
740 "transform", |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
741 d => `translate(0 ${this.paddingTop + -1 * height(d)})` |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
742 ) |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
743 .attr("fill", "black"); |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
744 } |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
745 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
746 drawLabelPerBar({ everyBar, dimensions, widthPerItem }) { |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
747 everyBar |
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
748 .append("text") |
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
749 .text(d => d.label) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
750 .attr("y", dimensions.mainHeight + this.paddingTop - 5) |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
751 .attr("x", widthPerItem / 2) |
3717
eab5e934c37d
client: available fairway depth diagram: decreased label font-size to avoid overlapping at least a little bit better
Markus Kottlaender <markus@intevation.de>
parents:
3716
diff
changeset
|
752 .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
|
753 .attr("font-size", 10); |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
754 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
755 drawScaleLabel({ diagram, dimensions }) { |
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
756 diagram |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
757 .append("text") |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
758 .text(this.$options.LEGEND) |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
759 .attr("text-anchor", "middle") |
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
760 .attr("x", 0) |
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
761 .attr("y", 0) |
3903
7e519a11de4e
client: available fairway depth diagram: adjusted position of y axis label
Markus Kottlaender <markus@intevation.de>
parents:
3891
diff
changeset
|
762 .attr("dy", "20") |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
763 .attr( |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
764 "transform", |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
765 `translate(2, ${(dimensions.mainHeight + this.paddingTop) / |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
766 2}), rotate(-90)` |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
767 ); |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
768 }, |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
769 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
|
770 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
|
771 .axisLeft() |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
772 .tickSizeInner( |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
773 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
|
774 ) |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
775 .tickSizeOuter(0) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
776 .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
|
777 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
|
778 .axisRight() |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
779 .tickSizeInner( |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
780 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
|
781 ) |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
782 .tickSizeOuter(0) |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
783 .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
|
784 |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
785 diagram |
3125
383720d8d98e
fairway_availability: generative code for diagram added
Thomas Junk <thomas.junk@intevation.de>
parents:
3033
diff
changeset
|
786 .append("g") |
3876
0c6ef9e655fc
client: available fairway depth diagrams: added second y-axis on the right
Markus Kottlaender <markus@intevation.de>
parents:
3874
diff
changeset
|
787 .attr( |
0c6ef9e655fc
client: available fairway depth diagrams: added second y-axis on the right
Markus Kottlaender <markus@intevation.de>
parents:
3874
diff
changeset
|
788 "transform", |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
789 `translate(${dimensions.width - this.scalePaddingRight} ${ |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
790 this.paddingTop |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
791 })` |
3876
0c6ef9e655fc
client: available fairway depth diagrams: added second y-axis on the right
Markus Kottlaender <markus@intevation.de>
parents:
3874
diff
changeset
|
792 ) |
3877
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
793 .call(yAxisLeft) |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
794 .selectAll(".tick text") |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
795 .attr("fill", "black") |
3922
32b656e77e2f
client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents:
3920
diff
changeset
|
796 .attr("font-size", 10) |
32b656e77e2f
client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents:
3920
diff
changeset
|
797 .attr("dy", 3) |
3878
1ff97bb72a24
client: available fairway depth diagrams: made more space for tick labels
Markus Kottlaender <markus@intevation.de>
parents:
3877
diff
changeset
|
798 .attr("dx", -3) |
3267
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
799 .select(function() { |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
800 return this.parentNode; |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
801 }) |
b07b4cca5e34
client: diagram-template: implement pdf-template for fairway availability diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3239
diff
changeset
|
802 .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
|
803 .attr("stroke-dasharray", 5) |
3905
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
804 .attr("stroke", "#ccc") |
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
805 .select(function() { |
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
806 return this.parentNode; |
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
807 }) |
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
808 .filter(d => d === 0) |
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
809 .selectAll(".tick line") |
3914
9440d2922097
client: available fairwaydepth diagram: adjust width of ldc bar, draw 0-tick line as solid line
Markus Kottlaender <markus@intevation.de>
parents:
3911
diff
changeset
|
810 .attr("stroke-dasharray", "none") |
3905
3c095749efb2
client: available fairwaydepth diagrams: emphasize 0-ticks
Markus Kottlaender <markus@intevation.de>
parents:
3903
diff
changeset
|
811 .attr("stroke", "#333"); |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
812 diagram |
3877
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
813 .append("g") |
3879
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
814 .attr( |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
815 "transform", |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
816 `translate(${this.scalePaddingLeft} ${this.paddingTop})` |
20be498adaf7
client: available fairway depth diagram: use available space
Markus Kottlaender <markus@intevation.de>
parents:
3878
diff
changeset
|
817 ) |
3877
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
818 .call(yAxisRight) |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
819 .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
|
820 .attr("fill", "black") |
3922
32b656e77e2f
client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents:
3920
diff
changeset
|
821 .attr("font-size", 10) |
32b656e77e2f
client: fwa diagrams: better alignment of tick labels in pdf
Markus Kottlaender <markus@intevation.de>
parents:
3920
diff
changeset
|
822 .attr("dy", 3) |
3878
1ff97bb72a24
client: available fairway depth diagrams: made more space for tick labels
Markus Kottlaender <markus@intevation.de>
parents:
3877
diff
changeset
|
823 .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
|
824 .select(function() { |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
825 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
|
826 }) |
d82b5e5868e3
client: available fairway depth diagrams: draw horizontal scale lines for better readability
Markus Kottlaender <markus@intevation.de>
parents:
3876
diff
changeset
|
827 .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
|
828 .attr("stroke", "transparent"); |
3909
2e7f191bba27
available_fairwaydepth: factor out side-effects from diagram rendering
Thomas Junk <thomas.junk@intevation.de>
parents:
3905
diff
changeset
|
829 diagram.selectAll(".domain").attr("stroke", "black"); |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
830 } |
3135 | 831 }, |
3282
707d4435aff3
redraw diagram on change of data
Thomas Junk <thomas.junk@intevation.de>
parents:
3280
diff
changeset
|
832 watch: { |
707d4435aff3
redraw diagram on change of data
Thomas Junk <thomas.junk@intevation.de>
parents:
3280
diff
changeset
|
833 fwData() { |
4382
7d9376f8a28c
Available_Fairway_Depth: decouple diagraminfo from selection
Thomas Junk <thomas.junk@intevation.de>
parents:
4361
diff
changeset
|
834 this.initDiagramValues(); |
3282
707d4435aff3
redraw diagram on change of data
Thomas Junk <thomas.junk@intevation.de>
parents:
3280
diff
changeset
|
835 this.drawDiagram(); |
4334
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
836 }, |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
837 showNumbers() { |
8ac59c8183e8
client: add showNumbers to AvailableFairwayDepth diagram
Bernhard Reiter <bernhard@intevation.de>
parents:
4319
diff
changeset
|
838 this.drawDiagram(); |
3282
707d4435aff3
redraw diagram on change of data
Thomas Junk <thomas.junk@intevation.de>
parents:
3280
diff
changeset
|
839 } |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
840 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
841 LEGEND: app.$gettext("Sum of days"), |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3965
diff
changeset
|
842 COLORS: { |
4312
8926fc81e4de
client: unify legend colors for fairway availability diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4136
diff
changeset
|
843 LDC: "aqua", |
8926fc81e4de
client: unify legend colors for fairway availability diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4136
diff
changeset
|
844 HIGHEST: "blue", |
4319
0d516bac1aae
bottleneck fairway availability: minor layout adjustments
Thomas Junk <thomas.junk@intevation.de>
parents:
4312
diff
changeset
|
845 REST: ["hotpink", "darksalmon", "#ffaaaa"] |
3153
8159bd2aaf93
fairway_depth_diagram: display of mockdata
Thomas Junk <thomas.junk@intevation.de>
parents:
3135
diff
changeset
|
846 } |
3033
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
847 }; |
c2c1e3e3af1c
Available fairway depth: rudimentary thoughts / prototype. Tbd;
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
848 </script> |