Mercurial > gemma
annotate client/src/components/fairway/Fairwayprofile.vue @ 3534:034657d6604f waterlevel-in-crossprofile
client: fairway profiles: improved legend
author | Markus Kottlaender <markus@intevation.de> |
---|---|
date | Wed, 29 May 2019 18:20:53 +0200 |
parents | 804df080c826 |
children | 067ad32fba69 |
rev | line source |
---|---|
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
1 <template> |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
2 <div class="d-flex flex-column flex-fill"> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
3 <UIBoxHeader icon="chart-area" :title="title" :closeCallback="close" /> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
4 <div class="d-flex flex-fill"> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
5 <DiagramLegend> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
6 <div class="legend"> |
3323
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
7 <span |
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
8 style="background-color: #5995ff; width: 20px; height: 20px;" |
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
9 ></span> |
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
10 Water |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
11 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
12 <div class="legend"> |
3323
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
13 <span |
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
14 style="background-color: #1f4fff; width: 20px; height: 20px;" |
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
15 ></span> |
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
16 Fairway |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
17 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
18 <div class="legend"> |
3323
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
19 <span |
3534
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
20 style="width: 14px; height: 14px; background-color: #4a2f06; border: solid 3px black; background-clip: padding-box; box-sizing: content-box;" |
3323
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
21 ></span> |
3534
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
22 Sediment |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
23 </div> |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
24 <div class="legend"> |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
25 <span |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
26 style="width: 14px; height: 14px; background-color: rgba(74, 47, 6, 0.6); border: solid 3px #943007; background-clip: padding-box; box-sizing: content-box;" |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
27 ></span> |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
28 Sediment (Compare) |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
29 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
30 <div> |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
31 <select |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
32 v-model="form.template" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
33 @change="applyChange" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
34 class="form-control d-block custom-select-sm w-100" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
35 > |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
36 <option |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
37 v-for="template in templates" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
38 :value="template" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
39 :key="template.name" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
40 > |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
41 {{ template.name }} |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
42 </option> |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
43 </select> |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
44 <button |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
45 @click="downloadPDF" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
46 type="button" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
47 class="btn btn-sm btn-info d-block w-100 mt-2" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
48 > |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
49 <translate>Export to PDF</translate> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
50 </button> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
51 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
52 </DiagramLegend> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
53 <div |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
54 ref="diagramContainer" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
55 class="d-flex flex-fill justify-content-center align-items-center diagram-container" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
56 > |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
57 <div v-if="!fairwayData"> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
58 <translate>No data available.</translate> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
59 </div> |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
60 </div> |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
61 </div> |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
62 </div> |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
63 </template> |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
64 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
65 <script> |
1362
ca33ad696594
remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1361
diff
changeset
|
66 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
67 * without warranty, see README.md and license for details. |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1313
diff
changeset
|
68 * |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
69 * SPDX-License-Identifier: AGPL-3.0-or-later |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
70 * License-Filename: LICENSES/AGPL-3.0.txt |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1313
diff
changeset
|
71 * |
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1313
diff
changeset
|
72 * Copyright (C) 2018 by via donau |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
73 * – Österreichische Wasserstraßen-Gesellschaft mbH |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
74 * Software engineering by Intevation GmbH |
1361
ea3a89a1813a
remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1313
diff
changeset
|
75 * |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
76 * Author(s): |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
77 * Thomas Junk <thomas.junk@intevation.de> |
2549
9bf6b767a56a
client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
2540
diff
changeset
|
78 * Markus Kottländer <markus.kottlaender@intevation.de> |
3285
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
79 * Fadi Abbud <fadi.abbud@intevation.de> |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
80 */ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
81 import * as d3 from "d3"; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
82 import { mapState, mapGetters } from "vuex"; |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
83 import debounce from "debounce"; |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
84 import jsPDF from "jspdf"; |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
85 import canvg from "canvg"; |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
86 import { pdfgen } from "@/lib/mixins"; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
87 import { HTTP } from "@/lib/http"; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
88 import { displayError } from "@/lib/errors"; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
89 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
90 const GROUND_COLOR = "#4A2F06"; |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
91 const WATER_COLOR = "#005DFF"; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
92 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
93 export default { |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
94 mixins: [pdfgen], |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
95 name: "fairwayprofile", |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
96 components: { |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
97 DiagramLegend: () => import("@/components/DiagramLegend") |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
98 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
99 data() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
100 return { |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
101 width: null, |
1372
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1362
diff
changeset
|
102 height: null, |
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1362
diff
changeset
|
103 margin: { |
553aadd97087
new cross profile workflow (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
1362
diff
changeset
|
104 top: 20, |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
105 right: 80, |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
106 bottom: 60, |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
107 left: 80 |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
108 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
109 form: { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
110 template: null |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
111 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
112 templates: [], |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
113 defaultTemplate: { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
114 name: "default", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
115 properties: { |
3350
8da2f7b9a04b
client: diagram-template:remove unnecessary template properties and typo
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3323
diff
changeset
|
116 paperSize: "a4" |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
117 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
118 elements: [ |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
119 { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
120 type: "diagram", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
121 position: "topleft", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
122 offset: { x: 20, y: 60 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
123 width: 290, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
124 height: 100 |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
125 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
126 { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
127 type: "diagramtitle", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
128 position: "topleft", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
129 offset: { x: 90, y: 30 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
130 fontsize: 22, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
131 color: "steelblue" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
132 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
133 { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
134 type: "diagramlegend", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
135 position: "topleft", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
136 offset: { x: 30, y: 160 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
137 color: "black" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
138 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
139 ] |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
140 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
141 pdf: { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
142 doc: null, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
143 width: 32, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
144 height: 297 |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
145 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
146 templateData: null |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
147 }; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
148 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
149 computed: { |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
150 ...mapGetters("map", ["openLayersMap"]), |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
151 ...mapGetters("fairwayprofile", ["totalLength"]), |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
152 ...mapState("fairwayprofile", [ |
2392
0b8793a1947c
fairway_profile: calc relative depth WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2389
diff
changeset
|
153 "additionalSurvey", |
0b8793a1947c
fairway_profile: calc relative depth WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2389
diff
changeset
|
154 "currentProfile", |
2566
83b938bf4da9
client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents:
2549
diff
changeset
|
155 "startPoint", |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
156 "endPoint", |
2392
0b8793a1947c
fairway_profile: calc relative depth WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2389
diff
changeset
|
157 "fairwayData", |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
158 "maxAlt", |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
159 "selectedWaterLevel" |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
160 ]), |
3513
ca9590be1da2
client: fairway profiles: removed more code
Markus Kottlaender <markus@intevation.de>
parents:
3512
diff
changeset
|
161 ...mapState("bottlenecks", ["selectedSurvey", "selectedBottleneck"]), |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
162 ...mapState("application", ["paneSetup"]), |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
163 title() { |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
164 let dates = [this.selectedSurvey.date_info]; |
3531
804df080c826
client: fairway profiles: added waterlevel to title and used title as pdf filename
Markus Kottlaender <markus@intevation.de>
parents:
3527
diff
changeset
|
165 let waterlevelLabel = |
804df080c826
client: fairway profiles: added waterlevel to title and used title as pdf filename
Markus Kottlaender <markus@intevation.de>
parents:
3527
diff
changeset
|
166 this.selectedWaterLevel === "ref" |
804df080c826
client: fairway profiles: added waterlevel to title and used title as pdf filename
Markus Kottlaender <markus@intevation.de>
parents:
3527
diff
changeset
|
167 ? this.selectedSurvey.depth_reference |
804df080c826
client: fairway profiles: added waterlevel to title and used title as pdf filename
Markus Kottlaender <markus@intevation.de>
parents:
3527
diff
changeset
|
168 : "Current"; |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
169 if (this.additionalSurvey) dates.push(this.additionalSurvey.date_info); |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
170 dates.map(d => this.$options.filters.dateTime(d, true)); |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
171 return `${this.$gettext("Fairwayprofile")}: ${ |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
172 this.selectedBottleneck |
3531
804df080c826
client: fairway profiles: added waterlevel to title and used title as pdf filename
Markus Kottlaender <markus@intevation.de>
parents:
3527
diff
changeset
|
173 } (${dates.join(", ")}) WL: ${waterlevelLabel} (${this.waterlevel} cm)`; |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
174 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
175 currentData() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
176 if ( |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
177 !this.selectedSurvey || |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
178 !this.currentProfile.hasOwnProperty(this.selectedSurvey.date_info) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
179 ) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
180 return []; |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
181 return this.currentProfile[this.selectedSurvey.date_info].points; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
182 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
183 additionalData() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
184 if ( |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
185 !this.additionalSurvey || |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
186 !this.currentProfile.hasOwnProperty(this.additionalSurvey.date_info) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
187 ) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
188 return []; |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
189 return this.currentProfile[this.additionalSurvey.date_info].points; |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
190 }, |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
191 bottleneck() { |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
192 return this.openLayersMap() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
193 .getLayer("BOTTLENECKS") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
194 .getSource() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
195 .getFeatures() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
196 .find(f => f.get("objnam") === this.selectedBottleneck); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
197 }, |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
198 waterlevel() { |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
199 return this.selectedWaterLevel === "ref" |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
200 ? this.refWaterlevel |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
201 : this.bottleneck.get("gm_waterlevel"); |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
202 }, |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
203 refWaterlevel() { |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
204 return this.selectedSurvey.waterlevel_value; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
205 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
206 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
207 watch: { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
208 currentData() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
209 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
210 }, |
1382
8b85032ed3cd
added loading animation to profile
Markus Kottlaender <markus@intevation.de>
parents:
1372
diff
changeset
|
211 additionalData() { |
8b85032ed3cd
added loading animation to profile
Markus Kottlaender <markus@intevation.de>
parents:
1372
diff
changeset
|
212 this.drawDiagram(); |
8b85032ed3cd
added loading animation to profile
Markus Kottlaender <markus@intevation.de>
parents:
1372
diff
changeset
|
213 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
214 width() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
215 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
216 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
217 height() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
218 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
219 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
220 waterLevels() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
221 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
222 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
223 selectedWaterLevel() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
224 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
225 }, |
2264
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
226 fairwayData() { |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
227 this.drawDiagram(); |
3149
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
228 }, |
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
229 selectedBottleneck() { |
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
230 this.$store.commit("application/paneSetup", "DEFAULT"); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
231 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
232 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
233 methods: { |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
234 close() { |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
235 this.$store.commit( |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
236 "application/paneSetup", |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
237 this.paneSetup === "COMPARESURVEYS_FAIRWAYPROFILE" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
238 ? "COMPARESURVEYS" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
239 : "DEFAULT" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
240 ); |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
241 this.$store.dispatch("fairwayprofile/clearCurrentProfile"); |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
242 }, |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
243 applyChange() { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
244 if (this.form.template.hasOwnProperty("properties")) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
245 this.templateData = this.defaultTemplate; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
246 return; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
247 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
248 if (this.form.template) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
249 HTTP.get("/templates/diagram/" + this.form.template.name, { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
250 headers: { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
251 "X-Gemma-Auth": localStorage.getItem("token"), |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
252 "Content-type": "text/xml; charset=UTF-8" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
253 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
254 }) |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
255 .then(response => { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
256 this.templateData = response.data.template_data; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
257 }) |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
258 .catch(e => { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
259 const { status, data } = e.response; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
260 displayError({ |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
261 title: this.$gettext("Backend Error"), |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
262 message: `${status}: ${data.message || data}` |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
263 }); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
264 }); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
265 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
266 }, |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
267 downloadPDF() { |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
268 if (this.templateData) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
269 this.pdf.doc = new jsPDF( |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
270 "l", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
271 "mm", |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
272 this.templateData.properties.paperSize |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
273 ); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
274 // pdf width and height in millimeter (landscape) |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
275 this.pdf.width = |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
276 this.templateData.properties.paperSize === "a3" ? 420 : 297; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
277 this.pdf.height = |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
278 this.templateData.properties.paperSize === "a3" ? 297 : 210; |
3241
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
279 // default values if some are missing in template |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
280 let defaultFontSize = 11, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
281 defaultWidth = 70, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
282 defaultTextColor = "black", |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
283 defaultBorderColor = "white", |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
284 defaultBgColor = "white", |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
285 defaultRounding = 2, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
286 defaultPadding = 2, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
287 defaultOffset = { x: 0, y: 0 }; |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
288 this.templateData.elements.forEach(e => { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
289 switch (e.type) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
290 case "diagram": { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
291 this.addDiagram( |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
292 e.position, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
293 e.offset || defaultOffset, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
294 e.width, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
295 e.height |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
296 ); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
297 break; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
298 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
299 case "diagramlegend": { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
300 this.addDiagramLegend( |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
301 e.position, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
302 e.offset || defaultOffset, |
3241
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
303 e.color || defaultTextColor |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
304 ); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
305 break; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
306 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
307 case "diagramtitle": { |
3285
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
308 let fairwayInfo = |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
309 this.selectedBottleneck + |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
310 " (" + |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
311 this.selectedSurvey.date_info + |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
312 ")"; |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
313 this.addDiagramTitle( |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
314 e.position, |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
315 e.offset, |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
316 e.fontsize, |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
317 e.color, |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
318 fairwayInfo |
aac1ca73e92a
client: diagram-template:(cleanup) move reusable pdf-functions to mixins.js
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3250
diff
changeset
|
319 ); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
320 break; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
321 } |
3241
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
322 case "image": { |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
323 this.addImage( |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
324 e.url, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
325 e.format, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
326 e.position, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
327 e.offset || defaultOffset, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
328 e.width, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
329 e.height |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
330 ); |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
331 break; |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
332 } |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
333 case "text": { |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
334 this.addText( |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
335 e.position, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
336 e.offset || defaultOffset, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
337 e.width || defaultWidth, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
338 e.fontsize || defaultFontSize, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
339 e.color || defaultTextColor, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
340 e.text |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
341 ); |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
342 break; |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
343 } |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
344 case "box": { |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
345 this.addBox( |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
346 e.position, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
347 e.offset, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
348 e.width, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
349 e.height, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
350 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
351 e.color || defaultBgColor, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
352 e.brcolor || defaultBorderColor |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
353 ); |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
354 break; |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
355 } |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
356 case "textbox": { |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
357 this.addTextBox( |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
358 e.position, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
359 e.offset || defaultOffset, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
360 e.width, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
361 e.height, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
362 e.rounding === 0 || e.rounding ? e.rounding : defaultRounding, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
363 e.padding || defaultPadding, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
364 e.fontsize || defaultFontSize, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
365 e.color || defaultTextColor, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
366 e.background || defaultBgColor, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
367 e.text, |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
368 e.brcolor || defaultBorderColor |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
369 ); |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
370 break; |
ecfa09241437
client: pdf-template: add a set of template-elements (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3240
diff
changeset
|
371 } |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
372 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
373 }); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
374 } |
3531
804df080c826
client: fairway profiles: added waterlevel to title and used title as pdf filename
Markus Kottlaender <markus@intevation.de>
parents:
3527
diff
changeset
|
375 this.pdf.doc.save(this.title.replace(/\s/g, "_").replace(/[():,]/g, "")); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
376 }, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
377 addDiagram(position, offset, width, height) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
378 let x = offset.x, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
379 y = offset.y; |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
380 var svg = this.$refs.diagramContainer.innerHTML; |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
381 if (svg) { |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
382 svg = svg.replace(/\r?\n|\r/g, "").trim(); |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
383 } |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
384 // landscape format is used for both a3,a4 papersize |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
385 if (!width) { |
3250
246754028bf4
client: cleanup code (fairwayprofile diagram)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3241
diff
changeset
|
386 width = this.templateData.properties.paperSize === "a3" ? 380 : 290; |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
387 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
388 if (!height) { |
3250
246754028bf4
client: cleanup code (fairwayprofile diagram)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3241
diff
changeset
|
389 height = this.templateData.properties.paperSize === "a3" ? 130 : 100; |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
390 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
391 if (["topright", "bottomright"].indexOf(position) !== -1) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
392 x = this.pdf.width - offset.x - width; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
393 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
394 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
395 y = this.pdf.height - offset.y - height; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
396 } |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
397 var canvas = document.createElement("canvas"); |
3018
42d1e31de844
client:give the generated pdf name and improve canvas size
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3007
diff
changeset
|
398 canvas.width = window.innerWidth; |
3020 | 399 canvas.height = window.innerHeight / 2; |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
400 canvg(canvas, svg, { |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
401 ignoreMouse: true, |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
402 ignoreAnimation: true, |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
403 ignoreDimensions: true |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
404 }); |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
405 var imgData = canvas.toDataURL("image/png"); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
406 this.pdf.doc.addImage(imgData, "PNG", x, y, width, height); |
3129
136b86794453
client: improve pdf-gen code for diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3061
diff
changeset
|
407 }, |
136b86794453
client: improve pdf-gen code for diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3061
diff
changeset
|
408 // Diagram legend |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
409 addDiagramLegend(position, offset, color) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
410 let x = offset.x, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
411 y = offset.y; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
412 let width = |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
413 (this.pdf.doc.getStringUnitWidth("Ground") * 10) / (72 / 25.6) + 5; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
414 if (["topright", "bottomright"].indexOf(position) !== -1) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
415 x = this.pdf.width - offset.x - width; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
416 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
417 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
418 y = this.pdf.height - offset.y - this.getTextHeight(3); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
419 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
420 this.pdf.doc.setFontSize(10); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
421 this.pdf.doc.setTextColor(color); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
422 this.pdf.doc.setDrawColor("white"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
423 this.pdf.doc.setFillColor("#5995ff"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
424 this.pdf.doc.circle(x, y, 2, "FD"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
425 this.pdf.doc.text(x + 3, y + 1, "Water"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
426 this.pdf.doc.setFillColor("#1f4fff"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
427 this.pdf.doc.circle(x, y + 5, 2, "FD"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
428 this.pdf.doc.text(x + 3, y + 6, "Fairway"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
429 this.pdf.doc.setFillColor("#4a2f06"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
430 this.pdf.doc.circle(x, y + 10, 2, "FD"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
431 this.pdf.doc.text(x + 3, y + 11, "Ground"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
432 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
433 drawDiagram() { |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
434 d3.select(".diagram-container svg").remove(); |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
435 this.scaleFairwayProfile(); |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
436 let svg = d3.select(".diagram-container").append("svg"); |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
437 svg.attr("width", "100%"); |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
438 svg.attr("height", "100%"); |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
439 const width = this.width - this.margin.right - this.margin.left; |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
440 const height = this.height - this.margin.top - this.margin.bottom; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
441 const currentData = this.currentData; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
442 const additionalData = this.additionalData; |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
443 const { xScale, yScaleRight, graph } = this.generateScalesAndGraph( |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
444 svg, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
445 height, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
446 width |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
447 ); |
1588
2888bfacd331
fairwayprofile: do not try to render fairwayprofile without dimensions
Thomas Junk <thomas.junk@intevation.de>
parents:
1558
diff
changeset
|
448 if (!this.height || !this.width) return; // do not try to render when height and width are unknown |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
449 this.drawWaterlevel({ graph, xScale, yScaleRight, height }); |
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
450 this.drawLabels({ graph, height }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
451 if (currentData) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
452 this.drawProfile({ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
453 graph, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
454 xScale, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
455 yScaleRight, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
456 currentData, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
457 height, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
458 color: GROUND_COLOR, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
459 strokeColor: "black", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
460 opacity: 1 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
461 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
462 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
463 if (additionalData) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
464 this.drawProfile({ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
465 graph, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
466 xScale, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
467 yScaleRight, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
468 currentData: additionalData, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
469 height, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
470 color: GROUND_COLOR, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
471 strokeColor: "#943007", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
472 opacity: 0.6 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
473 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
474 } |
2358
da75385887b9
fairway_profile: render riverbed on layer behind LOS
Thomas Junk <thomas.junk@intevation.de>
parents:
2265
diff
changeset
|
475 this.drawFairway({ graph, xScale, yScaleRight }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
476 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
477 drawFairway({ graph, xScale, yScaleRight }) { |
2264
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
478 if (this.fairwayData === undefined) { |
2265
940ae7c20326
client: pdf-gen: use default template when backend does not provide any
Markus Kottlaender <markus@intevation.de>
parents:
2264
diff
changeset
|
479 return; |
2264
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
480 } |
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
481 for (let data of this.fairwayData) { |
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
482 const [startPoint, endPoint, depth] = data.coordinates[0]; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
483 let fairwayArea = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
484 .area() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
485 .x(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
486 return xScale(d.x); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
487 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
488 .y0(yScaleRight(0)) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
489 .y1(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
490 return yScaleRight(d.y); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
491 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
492 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
493 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
494 .datum([{ x: startPoint, y: depth }, { x: endPoint, y: depth }]) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
495 .attr("fill", "#002AFF") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
496 .attr("fill-opacity", 0.65) |
3520
70cd7383325b
client: fairway profiles: removed strokes for sharper edges
Markus Kottlaender <markus@intevation.de>
parents:
3514
diff
changeset
|
497 .attr("stroke", "transparent") |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
498 .attr("d", fairwayArea); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
499 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
500 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
501 drawLabels({ graph, height }) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
502 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
503 .append("text") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
504 .attr("transform", ["rotate(-90)"]) |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
505 .attr("y", this.width - 100) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
506 .attr("x", -(this.height - this.margin.top - this.margin.bottom) / 2) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
507 .attr("fill", "black") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
508 .style("text-anchor", "middle") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
509 .text("Depth [m]"); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
510 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
511 .append("text") |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
512 .attr("transform", ["rotate(-90)"]) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
513 .attr("y", -50) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
514 .attr("x", -(this.height - this.margin.top - this.margin.bottom) / 2) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
515 .attr("fill", "black") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
516 .style("text-anchor", "middle") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
517 .text("Waterlevel [cm]"); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
518 graph |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
519 .append("text") |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
520 .attr("y", -50) |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
521 .attr("x", -(height / 4)) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
522 .attr("dy", "1em") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
523 .attr("fill", "black") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
524 .style("text-anchor", "middle") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
525 .attr("transform", [ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
526 "translate(" + this.width / 2 + "," + this.height + ")", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
527 "rotate(0)" |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
528 ]) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
529 .text("Width [m]"); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
530 }, |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
531 generateScalesAndGraph(svg, height, width) { |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
532 let xScale = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
533 .scaleLinear() |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
534 .domain([0, this.totalLength]) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
535 .rangeRound([0, width]); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
536 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
537 let yScaleRight = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
538 .scaleLinear() |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
539 .domain([ |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
540 this.maxAlt * 1.1 + |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
541 Math.abs(this.waterlevel - this.refWaterlevel) / 100, |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
542 -(this.maxAlt * 0.1) |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
543 ]) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
544 .rangeRound([height, 0]); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
545 |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
546 let yScaleLeft = d3 |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
547 .scaleLinear() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
548 .domain([ |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
549 this.waterlevel - |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
550 (this.maxAlt * 100 + |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
551 Math.abs(this.waterlevel - this.refWaterlevel)), |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
552 this.waterlevel + this.maxAlt * 0.1 * 100 |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
553 ]) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
554 .rangeRound([height, 0]); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
555 |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
556 let xAxis = d3.axisBottom(xScale).ticks(5); |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
557 let yAxisRight = d3.axisRight(yScaleRight); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
558 let yAxisLeft = d3.axisLeft(yScaleLeft); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
559 |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
560 let graph = svg |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
561 .append("g") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
562 .attr( |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
563 "transform", |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
564 "translate(" + this.margin.left + "," + this.margin.top + ")" |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
565 ); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
566 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
567 .append("g") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
568 .attr("transform", "translate(0," + height + ")") |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
569 .call(xAxis) |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
570 .selectAll(".tick text") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
571 .attr("fill", "black") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
572 .select(function() { |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
573 return this.parentNode; |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
574 }) |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
575 .selectAll(".tick line") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
576 .attr("stroke", "black"); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
577 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
578 .append("g") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
579 .attr("transform", "translate(" + width + ",0)") |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
580 .call(yAxisRight) |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
581 .selectAll(".tick text") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
582 .attr("fill", "black") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
583 .select(function() { |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
584 return this.parentNode; |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
585 }) |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
586 .selectAll(".tick line") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
587 .attr("stroke", "black"); |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
588 graph |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
589 .append("g") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
590 .attr("transform", "translate(0 0)") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
591 .call(yAxisLeft) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
592 .selectAll(".tick text") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
593 .attr("fill", "black") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
594 .select(function() { |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
595 return this.parentNode; |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
596 }) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
597 .selectAll(".tick line") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
598 .attr("stroke", "black"); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
599 |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
600 graph.selectAll(".domain").attr("stroke", "black"); |
2368
96b0314f2bd6
fairway_profile: consuming the offered waterlevel WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2358
diff
changeset
|
601 return { xScale, yScaleRight, graph }; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
602 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
603 drawWaterlevel({ graph, xScale, yScaleRight, height }) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
604 let waterArea = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
605 .area() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
606 .x(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
607 return xScale(d.x); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
608 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
609 .y0(height) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
610 .y1(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
611 return yScaleRight(d.y); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
612 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
613 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
614 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
615 .datum([{ x: 0, y: 0 }, { x: this.totalLength, y: 0 }]) |
2264
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
616 .attr("fill-opacity", 0.65) |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
617 .attr("fill", WATER_COLOR) |
3520
70cd7383325b
client: fairway profiles: removed strokes for sharper edges
Markus Kottlaender <markus@intevation.de>
parents:
3514
diff
changeset
|
618 .attr("stroke", "transparent") |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
619 .attr("d", waterArea); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
620 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
621 drawProfile({ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
622 graph, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
623 xScale, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
624 yScaleRight, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
625 currentData, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
626 height, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
627 color, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
628 strokeColor, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
629 opacity |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
630 }) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
631 for (let part of currentData) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
632 let profileLine = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
633 .line() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
634 .x(d => { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
635 return xScale(d.x); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
636 }) |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
637 .y(d => |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
638 yScaleRight( |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
639 d.y + Math.abs(this.waterlevel - this.refWaterlevel) / 100 |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
640 ) |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
641 ); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
642 let profileArea = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
643 .area() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
644 .x(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
645 return xScale(d.x); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
646 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
647 .y0(height) |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
648 .y1(d => |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
649 yScaleRight( |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
650 d.y + Math.abs(this.waterlevel - this.refWaterlevel) / 100 |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
651 ) |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
652 ); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
653 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
654 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
655 .datum(part) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
656 .attr("fill", color) |
3534
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
657 .attr("stroke", "transparent") |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
658 .attr("fill-opacity", opacity) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
659 .attr("d", profileArea); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
660 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
661 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
662 .datum(part) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
663 .attr("fill", "none") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
664 .attr("stroke", strokeColor) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
665 .attr("stroke-linejoin", "round") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
666 .attr("stroke-linecap", "round") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
667 .attr("stroke-width", 3) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
668 .attr("stroke-opacity", opacity) |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
669 .attr("fill-opacity", 0) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
670 .attr("d", profileLine); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
671 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
672 }, |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
673 scaleFairwayProfile() { |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
674 if (!document.querySelector(".diagram-container")) return; |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
675 const clientHeight = document.querySelector(".diagram-container") |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
676 .clientHeight; |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
677 const clientWidth = document.querySelector(".diagram-container") |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
678 .clientWidth; |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
679 if (!clientHeight || !clientWidth) return; |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
680 this.height = clientHeight; |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
681 this.width = clientWidth; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
682 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
683 }, |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
684 created() { |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
685 window.addEventListener("resize", debounce(this.drawDiagram), 100); |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
686 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
687 mounted() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
688 this.drawDiagram(); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
689 this.templates[0] = this.defaultTemplate; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
690 this.form.template = this.templates[0]; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
691 this.templateData = this.form.template; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
692 HTTP.get("/templates/diagram", { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
693 headers: { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
694 "X-Gemma-Auth": localStorage.getItem("token"), |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
695 "Content-type": "text/xml; charset=UTF-8" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
696 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
697 }) |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
698 .then(response => { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
699 if (response.data.length) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
700 this.templates = response.data; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
701 this.form.template = this.templates[0]; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
702 this.templates[this.templates.length] = this.defaultTemplate; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
703 this.applyChange(); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
704 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
705 }) |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
706 .catch(e => { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
707 const { status, data } = e.response; |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
708 displayError({ |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
709 title: this.$gettext("Backend Error"), |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
710 message: `${status}: ${data.message || data}` |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
711 }); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
712 }); |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
713 }, |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
714 updated() { |
2860
dbc799261811
client: fairway profile: removed old code
Markus Kottlaender <markus@intevation.de>
parents:
2854
diff
changeset
|
715 this.drawDiagram(); |
1312
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
716 }, |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
717 destroyed() { |
3c37017f5eb8
fixed cross profile diagram after switching to to admin context and back and it's responsive behavior
Markus Kottlaender <markus@intevation.de>
parents:
1305
diff
changeset
|
718 window.removeEventListener("resize", debounce(this.drawDiagram)); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
719 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
720 }; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
721 </script> |