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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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>