Mercurial > gemma
annotate client/src/components/fairway/Fairwayprofile.vue @ 4017:639bdb17c3f2
Fixed offset for fairway box
This was broken by
changeset: 4080:bf86f9a08733
user: Thomas Junk <thomas.junk@intevation.de>
Date: Thu Jul 18 15:04:30 2019 +0200
summary: improve fairwaydiagram printing positioning
For the record: I think the current implementation exceptionally
flawed. Instead of adding extra offset parameters to the diagram
elements the whole building block with all contained elements should
be translated in one step, that would be less cluttered and less error
prone...
author | Sascha Wilde <wilde@intevation.de> |
---|---|
date | Fri, 19 Jul 2019 16:59:25 +0200 |
parents | bf86f9a08733 |
children | a41fd26c1644 |
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" /> |
3683
4a00ff7e44f0
client: fairway profile: avoid console error spamming by properly checking properties
Markus Kottlaender <markus@intevation.de>
parents:
3682
diff
changeset
|
4 <div class="d-flex flex-fill" v-if="openLayersMap()"> |
3146
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 |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
14 :style=" |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
15 'width: 16px; height: 16px; background-color: rgba(' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
16 this.getLayerStyle(1).fillColor.join(',') + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
17 ',' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
18 this.getLayerStyle(1).fillOpacity + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
19 '); border: dotted 2px rgba(' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
20 this.getLayerStyle(1).strokeColor.join(',') + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
21 ',' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
22 this.getLayerStyle(1).strokeOpacity + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
23 '); background-clip: padding-box; box-sizing: content-box;' |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
24 " |
3323
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
25 ></span> |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
26 Fairway (LOS 1) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
27 </div> |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
28 <div class="legend"> |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
29 <span |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
30 :style=" |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
31 'width: 16px; height: 16px; background-color: rgba(' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
32 this.getLayerStyle(2).fillColor.join(',') + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
33 ',' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
34 this.getLayerStyle(2).fillOpacity + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
35 '); border: dashed 2px rgba(' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
36 this.getLayerStyle(2).strokeColor.join(',') + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
37 ',' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
38 this.getLayerStyle(2).strokeOpacity + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
39 '); background-clip: padding-box; box-sizing: content-box;' |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
40 " |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
41 ></span> |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
42 Fairway (LOS 2) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
43 </div> |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
44 <div class="legend"> |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
45 <span |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
46 :style=" |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
47 'width: 16px; height: 16px; background-color: rgba(' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
48 this.getLayerStyle(3).fillColor.join(',') + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
49 ',' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
50 this.getLayerStyle(3).fillOpacity + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
51 '); border: solid 2px rgba(' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
52 this.getLayerStyle(3).strokeColor.join(',') + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
53 ',' + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
54 this.getLayerStyle(3).strokeOpacity + |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
55 '); background-clip: padding-box; box-sizing: content-box;' |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
56 " |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
57 ></span> |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
58 Fairway (LOS 3) |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
59 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
60 <div class="legend"> |
3323
de0d0685a17b
client: improve diagram-legends style
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3285
diff
changeset
|
61 <span |
3534
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
62 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
|
63 ></span> |
3534
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
64 Sediment |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
65 </div> |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
66 <div class="legend"> |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
67 <span |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
68 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
|
69 ></span> |
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
70 Sediment (Compare) |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
71 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
72 <div> |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
73 <select |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
74 v-model="form.template" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
75 @change="applyChange" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
76 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
|
77 > |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
78 <option |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
79 v-for="template in templates" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
80 :value="template" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
81 :key="template.name" |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
82 > |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
83 {{ template.name }} |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
84 </option> |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
85 </select> |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
86 <button |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
87 @click="downloadPDF" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
88 type="button" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
89 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
|
90 > |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
91 <translate>Export to PDF</translate> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
92 </button> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
93 </div> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
94 </DiagramLegend> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
95 <div |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
96 ref="pdfContainer" |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
97 id="pdfContainer" |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
98 class="d-flex flex-fill justify-content-center align-items-center diagram-container position-relative" |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
99 > |
3644
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
100 <div class="direction-indicator"></div> |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
101 <div v-if="!fairwayData"> |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
102 <translate>No data available.</translate> |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
103 </div> |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
104 </div> |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
105 </div> |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
106 </div> |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
107 </template> |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
108 |
3644
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
109 <style lang="sass" scoped> |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
110 .direction-indicator |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
111 width: 70px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
112 height: 0 |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
113 border-top: dashed 2px #333 |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
114 position: absolute |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
115 bottom: 20px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
116 left: 115px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
117 margin-left: -35px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
118 &::after |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
119 content: "" |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
120 width: 0 |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
121 height: 0 |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
122 border-width: 10px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
123 border-top-width: 5px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
124 border-bottom-width: 5px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
125 border-style: solid |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
126 border-color: transparent |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
127 border-left-color: #333 |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
128 position: absolute |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
129 right: -20px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
130 top: -6px |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
131 </style> |
9e91b416d5bb
client: cross profile: display arrow in diagram
Markus Kottlaender <markus@intevation.de>
parents:
3590
diff
changeset
|
132 |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
133 <script> |
1362
ca33ad696594
remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents:
1361
diff
changeset
|
134 /* 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
|
135 * 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
|
136 * |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
137 * SPDX-License-Identifier: AGPL-3.0-or-later |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
138 * 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
|
139 * |
3799
f4deb4aae485
client: improve pdf generation
Bernhard Reiter <bernhard@intevation.de>
parents:
3785
diff
changeset
|
140 * Copyright (C) 2018, 2019 by via donau |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
141 * – Österreichische Wasserstraßen-Gesellschaft mbH |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
142 * 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
|
143 * |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
144 * Author(s): |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
145 * Thomas Junk <thomas.junk@intevation.de> |
2549
9bf6b767a56a
client: refactored and improved splitscreen for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
2540
diff
changeset
|
146 * 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
|
147 * Fadi Abbud <fadi.abbud@intevation.de> |
1272
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 import * as d3 from "d3"; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
150 import { mapState, mapGetters } from "vuex"; |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
151 import debounce from "debounce"; |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
152 import { diagram, pdfgen, templateLoader } from "@/lib/mixins"; |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
153 import { HTTP } from "@/lib/http"; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
154 import { displayError } from "@/lib/errors"; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
155 import { defaultDiagramTemplate } from "@/lib/DefaultDiagramTemplate"; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
156 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
157 const GROUND_COLOR = "#4A2F06"; |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
158 const WATER_COLOR = "#005DFF"; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
159 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
160 export default { |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
161 mixins: [diagram, pdfgen, templateLoader], |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
162 name: "fairwayprofile", |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
163 components: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
164 DiagramLegend: () => import("@/components/DiagramLegend") |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
165 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
166 data() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
167 return { |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
168 resizeListenerFunction: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
169 width: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
170 height: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
171 form: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
172 template: null |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
173 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
174 templates: [], |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
175 defaultTemplate: defaultDiagramTemplate, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
176 pdf: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
177 doc: null, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
178 width: 32, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
179 height: 297 |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
180 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
181 templateData: null |
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 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
184 computed: { |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
185 ...mapGetters("map", ["openLayersMap"]), |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
186 ...mapGetters("fairwayprofile", ["totalLength"]), |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
187 ...mapState("fairwayprofile", [ |
2392
0b8793a1947c
fairway_profile: calc relative depth WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2389
diff
changeset
|
188 "additionalSurvey", |
0b8793a1947c
fairway_profile: calc relative depth WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2389
diff
changeset
|
189 "currentProfile", |
2566
83b938bf4da9
client: prepared store and minimized splitscreens for multiple simultaneous diagrams
Markus Kottlaender <markus@intevation.de>
parents:
2549
diff
changeset
|
190 "startPoint", |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
191 "endPoint", |
2392
0b8793a1947c
fairway_profile: calc relative depth WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
2389
diff
changeset
|
192 "fairwayData", |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
193 "maxAlt", |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
194 "selectedWaterLevel" |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
195 ]), |
3513
ca9590be1da2
client: fairway profiles: removed more code
Markus Kottlaender <markus@intevation.de>
parents:
3512
diff
changeset
|
196 ...mapState("bottlenecks", ["selectedSurvey", "selectedBottleneck"]), |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
197 ...mapState("application", ["paneSetup"]), |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
198 title() { |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
199 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
|
200 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
|
201 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
|
202 ? 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
|
203 : "Current"; |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
204 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
|
205 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
|
206 return `${this.$gettext("Fairwayprofile")}: ${ |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
207 this.selectedBottleneck |
3576
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
208 } (${dates.join( |
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
209 ", " |
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
210 )}) WL: ${waterlevelLabel} (${this.$options.filters.waterlevel( |
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
211 this.waterlevel |
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
212 )} m)`; |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
213 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
214 currentData() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
215 if ( |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
216 !this.selectedSurvey || |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
217 !this.currentProfile.hasOwnProperty(this.selectedSurvey.date_info) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
218 ) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
219 return []; |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
220 return this.currentProfile[this.selectedSurvey.date_info].points; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
221 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
222 additionalData() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
223 if ( |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
224 !this.additionalSurvey || |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
225 !this.currentProfile.hasOwnProperty(this.additionalSurvey.date_info) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
226 ) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
227 return []; |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
228 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
|
229 }, |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
230 bottleneck() { |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
231 return this.openLayersMap() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
232 .getLayer("BOTTLENECKS") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
233 .getSource() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
234 .getFeatures() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
235 .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
|
236 }, |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
237 waterlevel() { |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
238 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
|
239 ? this.refWaterlevel |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
240 : 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
|
241 }, |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
242 refWaterlevel() { |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
243 return this.selectedSurvey.waterlevel_value; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
244 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
245 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
246 watch: { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
247 currentData() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
248 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
249 }, |
1382
8b85032ed3cd
added loading animation to profile
Markus Kottlaender <markus@intevation.de>
parents:
1372
diff
changeset
|
250 additionalData() { |
8b85032ed3cd
added loading animation to profile
Markus Kottlaender <markus@intevation.de>
parents:
1372
diff
changeset
|
251 this.drawDiagram(); |
8b85032ed3cd
added loading animation to profile
Markus Kottlaender <markus@intevation.de>
parents:
1372
diff
changeset
|
252 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
253 width() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
254 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
255 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
256 height() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
257 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
258 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
259 waterLevels() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
260 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
261 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
262 selectedWaterLevel() { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
263 this.drawDiagram(); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
264 }, |
2264
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
265 fairwayData() { |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
266 this.drawDiagram(); |
3149
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
267 }, |
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
268 selectedBottleneck() { |
a90091aaef67
client: fairwayprofile: close profile diagram when switching bottlenecks
Markus Kottlaender <markus@intevation.de>
parents:
3146
diff
changeset
|
269 this.$store.commit("application/paneSetup", "DEFAULT"); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
270 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
271 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
272 methods: { |
3146
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
273 close() { |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
274 this.$store.commit( |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
275 "application/paneSetup", |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
276 this.paneSetup === "COMPARESURVEYS_FAIRWAYPROFILE" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
277 ? "COMPARESURVEYS" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
278 : "DEFAULT" |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
279 ); |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
280 this.$store.dispatch("fairwayprofile/clearCurrentProfile"); |
b6cc4838d2c0
client: implemented pane mechanic for diagrams
Markus Kottlaender <markus@intevation.de>
parents:
3129
diff
changeset
|
281 }, |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
282 getLayerStyle(los) { |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
283 let style = this.openLayersMap() |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
284 .getLayer("FAIRWAYDIMENSIONSLOS" + los) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
285 .getStyle()()[0]; |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
286 |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
287 // use spread operator to clone arrays |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
288 let fillColor = [...style.getFill().getColor()]; |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
289 let fillOpacity = fillColor.pop(); |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
290 let strokeColor = [...style.getStroke().getColor()]; |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
291 let strokeOpacity = strokeColor.pop(); |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
292 let strokeDash = style.getStroke().getLineDash(); |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
293 |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
294 return { fillColor, fillOpacity, strokeColor, strokeOpacity, strokeDash }; |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
295 }, |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
296 applyChange() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
297 if (this.form.template.hasOwnProperty("properties")) { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
298 this.templateData = this.defaultTemplate; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
299 return; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
300 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
301 if (this.form.template) { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
302 this.loadTemplates("/templates/diagram/" + this.form.template.name) |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
303 .then(response => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
304 this.prepareImages(response.data.template_data.elements).then( |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
305 values => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
306 values.forEach(v => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
307 response.data.template_data.elements[v.index].url = v.url; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
308 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
309 this.templateData = response.data.template_data; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
310 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
311 ); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
312 }) |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
313 .catch(e => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
314 const { status, data } = e.response; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
315 displayError({ |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
316 title: this.$gettext("Backend Error"), |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
317 message: `${status}: ${data.message || data}` |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
318 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
319 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
320 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
321 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
322 downloadPDF() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
323 let fairwayInfo = |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
324 this.selectedBottleneck + " (" + this.selectedSurvey.date_info + ")"; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
325 |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
326 this.generatePDF({ |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
327 templateData: this.templateData, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
328 diagramTitle: fairwayInfo |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
329 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
330 |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
331 this.pdf.doc.save( |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
332 this.title.replace(/\s/g, "_").replace(/[():,]/g, "") + ".pdf" |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
333 ); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
334 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
335 |
3129
136b86794453
client: improve pdf-gen code for diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3061
diff
changeset
|
336 // Diagram legend |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
337 addDiagramLegend(position, offset, color) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
338 let x = offset.x, |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
339 y = offset.y; |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
340 this.pdf.doc.setFontSize(10); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
341 let width = |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
342 (this.pdf.doc.getStringUnitWidth("Sediment (Compare)") * 10) / |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
343 (72 / 25.6) + |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
344 4; |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
345 if (["topright", "bottomright"].indexOf(position) !== -1) { |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
346 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
|
347 } |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
348 if (["bottomright", "bottomleft"].indexOf(position) !== -1) { |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
349 y = this.pdf.height - offset.y - this.getTextHeight(8); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
350 } |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
351 |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
352 this.pdf.doc.setTextColor(color); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
353 this.pdf.doc.setDrawColor("#5995ff"); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
354 this.pdf.doc.setFillColor("#5995ff"); |
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
355 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
|
356 this.pdf.doc.text(x + 3, y + 1, "Water"); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
357 |
3785
0c5816af79a5
client: improve pdf generation of Fairwayprofile
Bernhard Reiter <bernhard@intevation.de>
parents:
3784
diff
changeset
|
358 this.pdf.doc.setLineDashPattern([0.8], 0); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
359 this.pdf.doc.setDrawColor("#0000ff"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
360 this.pdf.doc.setFillColor("#fcfacc"); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
361 this.pdf.doc.circle(x, y + 5, 2, "FD"); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
362 this.pdf.doc.text(x + 3, y + 6, "Fairway (LOS 1)"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
363 |
3785
0c5816af79a5
client: improve pdf generation of Fairwayprofile
Bernhard Reiter <bernhard@intevation.de>
parents:
3784
diff
changeset
|
364 this.pdf.doc.setLineDashPattern([1.8], 0); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
365 this.pdf.doc.setFillColor("#fdfce5"); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
366 this.pdf.doc.circle(x, y + 10, 2, "FD"); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
367 this.pdf.doc.text(x + 3, y + 11, "Fairway (LOS 2)"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
368 |
3784
110436ee8ed2
Fairwayprofile: dashed patterns in PDF
Thomas Junk <thomas.junk@intevation.de>
parents:
3783
diff
changeset
|
369 this.pdf.doc.setLineDashPattern([], 0); |
3590
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
370 this.pdf.doc.setFillColor("#ffffff"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
371 this.pdf.doc.circle(x, y + 15, 2, "FD"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
372 this.pdf.doc.text(x + 3, y + 16, "Fairway (LOS 3)"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
373 |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
374 this.pdf.doc.setDrawColor("black"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
375 this.pdf.doc.setFillColor("#4a2e06"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
376 this.pdf.doc.circle(x, y + 20, 2, "FD"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
377 this.pdf.doc.text(x + 3, y + 21, "Sediment"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
378 |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
379 this.pdf.doc.setDrawColor("#943007"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
380 this.pdf.doc.setFillColor("#928269"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
381 this.pdf.doc.circle(x, y + 25, 2, "FD"); |
309084558808
client: diagram-template: improve diagramlegend for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3576
diff
changeset
|
382 this.pdf.doc.text(x + 3, y + 26, "Sediment (Compare)"); |
3240
5240f5440b62
client: implemnt pdf-template for fairwayprofile diagram
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3149
diff
changeset
|
383 }, |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3936
diff
changeset
|
384 getPrintLayout() { |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3936
diff
changeset
|
385 return { |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
386 main: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
387 top: 20, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
388 right: 80, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
389 bottom: 60, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
390 left: 80 |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
391 } |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3936
diff
changeset
|
392 }; |
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3936
diff
changeset
|
393 }, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
394 drawDiagram() { |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
395 d3.select(".diagram-container svg").remove(); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
396 this.scaleFairwayProfile(); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
397 if (!this.height || !this.width) return; // do not try to render when height and width are unknown |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
398 const layout = this.getPrintLayout(this.height); |
3893
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
399 this.renderTo({ |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
400 element: ".diagram-container", |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
401 dimensions: this.getDimensions({ |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
402 svgWidth: this.width, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
403 svgHeight: this.height, |
3941
7b3935a8d9ee
refactor addDiagram to mixin and remove code duplication
Thomas Junk <thomas.junk@intevation.de>
parents:
3936
diff
changeset
|
404 ...layout |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
405 }) |
3893
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
406 }); |
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
407 }, |
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
408 renderTo({ element, dimensions }) { |
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
409 let svg = d3.select(element).append("svg"); |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
410 svg.attr("width", "100%"); |
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
411 svg.attr("height", "100%"); |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
412 const width = dimensions.width; |
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
413 const height = dimensions.mainHeight; |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
414 const offsetY = 15; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
415 const currentData = this.currentData; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
416 const additionalData = this.additionalData; |
3942
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
417 const { xScale, yScaleRight, graph } = this.generateScalesAndGraph({ |
1394
b350b0b5cb6c
refactored fairwayprofile cross cuts
Markus Kottlaender <markus@intevation.de>
parents:
1391
diff
changeset
|
418 svg, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
419 height, |
3942
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
420 width, |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
421 dimensions, |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
422 offsetY |
3942
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
423 }); |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
424 this.drawWaterlevel({ graph, xScale, yScaleRight, height, offsetY }); |
3893
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
425 this.drawLabels({ graph, dimensions }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
426 if (currentData) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
427 this.drawProfile({ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
428 graph, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
429 xScale, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
430 yScaleRight, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
431 currentData, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
432 height, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
433 color: GROUND_COLOR, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
434 strokeColor: "black", |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
435 opacity: 1, |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
436 offsetY |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
437 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
438 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
439 if (additionalData) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
440 this.drawProfile({ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
441 graph, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
442 xScale, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
443 yScaleRight, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
444 currentData: additionalData, |
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 color: GROUND_COLOR, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
447 strokeColor: "#943007", |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
448 opacity: 0.6, |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
449 offsetY |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
450 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
451 } |
4017
639bdb17c3f2
Fixed offset for fairway box
Sascha Wilde <wilde@intevation.de>
parents:
4001
diff
changeset
|
452 this.drawFairway({ graph, xScale, yScaleRight, offsetY }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
453 }, |
4017
639bdb17c3f2
Fixed offset for fairway box
Sascha Wilde <wilde@intevation.de>
parents:
4001
diff
changeset
|
454 drawFairway({ graph, xScale, yScaleRight, offsetY }) { |
2264
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
455 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
|
456 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
|
457 } |
627bfcbbf631
client: Draw fairway dimensions for all LoS and in more "cut cases".
Raimund Renkert <raimund.renkert@intevation.de>
parents:
2154
diff
changeset
|
458 for (let data of this.fairwayData) { |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
459 data.coordinates.forEach(coordinates => { |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
460 const [startPoint, endPoint, depth] = coordinates; |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
461 let fairwayArea = d3 |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
462 .area() |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
463 .x(function(d) { |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
464 return xScale(d.x); |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
465 }) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
466 .y0(yScaleRight(0)) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
467 .y1(function(d) { |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
468 return yScaleRight(d.y); |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
469 }); |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
470 graph |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
471 .append("path") |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
472 .datum([{ x: startPoint, y: depth }, { x: endPoint, y: depth }]) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
473 .attr( |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
474 "fill", |
3926
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
475 `#${this.getLayerStyle(data.los) |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
476 .fillColor.map(x => { |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
477 if (x < 10) return "0" + x.toString(16); |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
478 return x.toString(16); |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
479 }) |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
480 .join("")}` |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
481 ) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
482 .attr("fill-opacity", this.getLayerStyle(data.los).fillOpacity) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
483 .attr( |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
484 "stroke", |
3926
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
485 `#${this.getLayerStyle(data.los) |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
486 .strokeColor.map(x => { |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
487 if (x < 10) return "0" + x.toString(16); |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
488 return x.toString(16); |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
489 }) |
3ebde6dd336f
client: pdf-gen: fix rendering part of diagram (fairwayprofile)
Fadi Abbud <fadi.abbud@intevation.de>
parents:
3921
diff
changeset
|
490 .join("")}` |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
491 ) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
492 .attr("stroke-opacity", this.getLayerStyle(data.los).strokeOpacity) |
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
493 .attr("stroke-dasharray", this.getLayerStyle(data.los).strokeDash) |
4017
639bdb17c3f2
Fixed offset for fairway box
Sascha Wilde <wilde@intevation.de>
parents:
4001
diff
changeset
|
494 .attr("d", fairwayArea) |
639bdb17c3f2
Fixed offset for fairway box
Sascha Wilde <wilde@intevation.de>
parents:
4001
diff
changeset
|
495 .attr("transform", `translate(0 ${-offsetY})`); |
3571
9e296d686f16
client: cross profiles: support gabs in fairway and improved display in diagram and legend
Markus Kottlaender <markus@intevation.de>
parents:
3555
diff
changeset
|
496 }); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
497 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
498 }, |
3893
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
499 drawLabels({ graph, dimensions }) { |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
500 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
501 .append("text") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
502 .attr("transform", ["rotate(-90)"]) |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
503 .attr("y", dimensions.width + 45) |
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
504 .attr("x", -dimensions.mainHeight / 2) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
505 .attr("fill", "black") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
506 .style("text-anchor", "middle") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
507 .text("Depth [m]"); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
508 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
509 .append("text") |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
510 .attr("transform", ["rotate(-90)"]) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
511 .attr("y", -50) |
3936
d859ec6cf2f0
Fairwayprofile enhanced
Thomas Junk <thomas.junk@intevation.de>
parents:
3928
diff
changeset
|
512 .attr("x", -dimensions.mainHeight / 2) |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
513 .attr("fill", "black") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
514 .style("text-anchor", "middle") |
3576
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
515 .text("Waterlevel [m]"); |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
516 graph |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
517 .append("text") |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
518 .attr("y", 0) |
3893
9dfd225b92e8
fairwayprofile: offscreen printing
Thomas Junk <thomas.junk@intevation.de>
parents:
3819
diff
changeset
|
519 .attr("x", 0) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
520 .attr("dy", "1em") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
521 .attr("fill", "black") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
522 .style("text-anchor", "middle") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
523 .attr("transform", [ |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
524 `translate(${dimensions.width / 2} ${dimensions.mainHeight})`, |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
525 "rotate(0)" |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
526 ]) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
527 .text("Width [m]"); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
528 }, |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
529 generateScalesAndGraph({ svg, height, width, dimensions, offsetY }) { |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
530 let xScale = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
531 .scaleLinear() |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
532 .domain([0, this.totalLength]) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
533 .rangeRound([0, width]); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
534 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
535 let yScaleRight = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
536 .scaleLinear() |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
537 .domain([ |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
538 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
|
539 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
|
540 -(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
|
541 ]) |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
542 .rangeRound([height, 0]); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
543 |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
544 let yScaleLeft = d3 |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
545 .scaleLinear() |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
546 .domain([ |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
547 this.waterlevel - |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
548 (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
|
549 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
|
550 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
|
551 ]) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
552 .rangeRound([height, 0]); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
553 |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
554 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
|
555 let yAxisRight = d3.axisRight(yScaleRight); |
3576
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
556 let yAxisLeft = d3 |
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
557 .axisLeft(yScaleLeft) |
1109a38f7ff1
client: waterlevel format in diagrams changed from cm to m and localized
Markus Kottlaender <markus@intevation.de>
parents:
3571
diff
changeset
|
558 .tickFormat(d => this.$options.filters.waterlevel(d)); |
3514
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", |
3942
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
564 "translate(" + |
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
565 dimensions.mainMargin.left + |
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
566 "," + |
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
567 dimensions.mainMargin.top + |
cd8ba6599a99
fairway_profile: remove dependency on local state variable
Thomas Junk <thomas.junk@intevation.de>
parents:
3941
diff
changeset
|
568 ")" |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
569 ); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
570 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
571 .append("g") |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
572 .attr("transform", `translate(0 ${height - offsetY})`) |
3512
30a47d9fc667
client: fairway profiles: removed some old code
Markus Kottlaender <markus@intevation.de>
parents:
3408
diff
changeset
|
573 .call(xAxis) |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
574 .selectAll(".tick text") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
575 .attr("fill", "black") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
576 .select(function() { |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
577 return this.parentNode; |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
578 }) |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
579 .selectAll(".tick line") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
580 .attr("stroke", "black"); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
581 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
582 .append("g") |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
583 .attr("transform", `translate(${width} ${-offsetY})`) |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
584 .call(yAxisRight) |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
585 .selectAll(".tick text") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
586 .attr("fill", "black") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
587 .select(function() { |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
588 return this.parentNode; |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
589 }) |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
590 .selectAll(".tick line") |
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
591 .attr("stroke", "black"); |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
592 graph |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
593 .append("g") |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
594 .attr("transform", `translate(0 ${-offsetY})`) |
3514
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
595 .call(yAxisLeft) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
596 .selectAll(".tick text") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
597 .attr("fill", "black") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
598 .select(function() { |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
599 return this.parentNode; |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
600 }) |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
601 .selectAll(".tick line") |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
602 .attr("stroke", "black"); |
fcb4f3fabde8
client: fairway profiles: added second y-axis (WIP)
Markus Kottlaender <markus@intevation.de>
parents:
3513
diff
changeset
|
603 |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
604 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
|
605 return { xScale, yScaleRight, graph }; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
606 }, |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
607 drawWaterlevel({ graph, xScale, yScaleRight, height, offsetY }) { |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
608 let waterArea = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
609 .area() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
610 .x(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
611 return xScale(d.x); |
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 .y0(height) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
614 .y1(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
615 return yScaleRight(d.y); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
616 }); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
617 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
618 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
619 .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
|
620 .attr("fill-opacity", 0.65) |
2854
1b5acce6120d
client: added legend to cross profile diagram
Markus Kottlaender <markus@intevation.de>
parents:
2566
diff
changeset
|
621 .attr("fill", WATER_COLOR) |
3520
70cd7383325b
client: fairway profiles: removed strokes for sharper edges
Markus Kottlaender <markus@intevation.de>
parents:
3514
diff
changeset
|
622 .attr("stroke", "transparent") |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
623 .attr("d", waterArea) |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
624 .attr("transform", `translate(0 ${-offsetY})`); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
625 }, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
626 drawProfile({ |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
627 graph, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
628 xScale, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
629 yScaleRight, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
630 currentData, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
631 height, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
632 color, |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
633 strokeColor, |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
634 opacity, |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
635 offsetY |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
636 }) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
637 for (let part of currentData) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
638 let profileLine = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
639 .line() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
640 .x(d => { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
641 return xScale(d.x); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
642 }) |
3527
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
643 .y(d => |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
644 yScaleRight( |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
645 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
|
646 ) |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
647 ); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
648 let profileArea = d3 |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
649 .area() |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
650 .x(function(d) { |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
651 return xScale(d.x); |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
652 }) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
653 .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
|
654 .y1(d => |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
655 yScaleRight( |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
656 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
|
657 ) |
8a9ee18de13f
client: fairway profiles: implemented selection between depth reference waterlevel and current waterlevel
Markus Kottlaender <markus@intevation.de>
parents:
3522
diff
changeset
|
658 ); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
659 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
660 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
661 .datum(part) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
662 .attr("fill", color) |
3534
034657d6604f
client: fairway profiles: improved legend
Markus Kottlaender <markus@intevation.de>
parents:
3531
diff
changeset
|
663 .attr("stroke", "transparent") |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
664 .attr("fill-opacity", opacity) |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
665 .attr("d", profileArea) |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
666 .attr("transform", `translate(0 ${-offsetY})`); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
667 graph |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
668 .append("path") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
669 .datum(part) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
670 .attr("fill", "none") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
671 .attr("stroke", strokeColor) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
672 .attr("stroke-linejoin", "round") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
673 .attr("stroke-linecap", "round") |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
674 .attr("stroke-width", 3) |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
675 .attr("stroke-opacity", opacity) |
3007
792d4476d5d5
client:implemented pdf-generation for profiles diagrams
Fadi Abbud <fadi.abbud@intevation.de>
parents:
2860
diff
changeset
|
676 .attr("fill-opacity", 0) |
4001
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
677 .attr("d", profileLine) |
bf86f9a08733
improve fairwaydiagram printing positioning
Thomas Junk <thomas.junk@intevation.de>
parents:
3992
diff
changeset
|
678 .attr("transform", `translate(0 ${-offsetY})`); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
679 } |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
680 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
681 scaleFairwayProfile() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
682 if (!document.querySelector(".diagram-container")) return; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
683 const clientHeight = document.querySelector(".diagram-container") |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
684 .clientHeight; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
685 const clientWidth = document.querySelector(".diagram-container") |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
686 .clientWidth; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
687 if (!clientHeight || !clientWidth) return; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
688 this.height = clientHeight; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
689 this.width = clientWidth; |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
690 } |
3992
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
691 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
692 created() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
693 this.resizeListenerFunction = debounce(this.drawDiagram, 100); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
694 window.addEventListener("resize", this.resizeListenerFunction); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
695 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
696 mounted() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
697 // Nasty but necessary if we don't want to use the updated hook to re-draw |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
698 // the diagram because this would re-draw it also for irrelevant reasons. |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
699 // In this case we need to wait for the child component (DiagramLegend) to |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
700 // render. According to the docs (https://vuejs.org/v2/api/#mounted) this |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
701 // should be possible with $nextTick() but it doesn't work because it does |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
702 // not guarantee that the DOM is not only updated but also re-painted on the |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
703 // screen. |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
704 setTimeout(this.drawDiagram, 150); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
705 |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
706 this.templates[0] = this.defaultTemplate; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
707 this.form.template = this.templates[0]; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
708 this.templateData = this.form.template; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
709 HTTP.get("/templates/diagram", { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
710 headers: { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
711 "X-Gemma-Auth": localStorage.getItem("token"), |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
712 "Content-type": "text/xml; charset=UTF-8" |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
713 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
714 }) |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
715 .then(response => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
716 if (response.data.length) { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
717 this.templates = response.data; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
718 this.form.template = this.templates[0]; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
719 this.templates[this.templates.length] = this.defaultTemplate; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
720 this.applyChange(); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
721 } |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
722 }) |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
723 .catch(e => { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
724 const { status, data } = e.response; |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
725 displayError({ |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
726 title: this.$gettext("Backend Error"), |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
727 message: `${status}: ${data.message || data}` |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
728 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
729 }); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
730 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
731 updated() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
732 this.drawDiagram(); |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
733 }, |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
734 destroyed() { |
2f024d6189ca
Reverted merge with diagram-cleanup -- its not yet ready.
Sascha Wilde <wilde@intevation.de>
parents:
3968
diff
changeset
|
735 window.removeEventListener("resize", this.resizeListenerFunction); |
1272
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
736 } |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
737 }; |
bc55ffaeb639
cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff
changeset
|
738 </script> |