Mercurial > gemma
annotate client/src/components/fairway/BottleneckDialogue.vue @ 4488:bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
* Check if the bottleneck is in the current view to add its info to the exported pdf and the pdf filename, this avoid wrong filename and wrong info in pdf in case view has been changed to another location.
* Set the bottleneck to print after moving to it in map.
author | Fadi Abbud <fadi.abbud@intevation.de> |
---|---|
date | Fri, 27 Sep 2019 11:15:02 +0200 |
parents | 2d2c9f98360a |
children | 4c3851391b6d |
rev | line source |
---|---|
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
1 <template> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
2 <div |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
3 :class="[ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
4 'box ui-element rounded bg-white text-nowrap', |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
5 { expanded: showProfiles } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
6 ]" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
7 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
8 <div style="width: 18rem"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
9 <UIBoxHeader |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
10 icon="chart-area" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
11 :title="profilesLable" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
12 :closeCallback="close" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
13 /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
14 <div class="box-body"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
15 <UISpinnerOverlay v-if="surveysLoading || profileLoading" /> |
4479
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
16 <div class="d-flex flex-row"> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
17 <select |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
18 v-model="selectedBottleneck" |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
19 class="form-control font-weight-bold" |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
20 > |
4479
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
21 <option :value="null"> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
22 <translate>Select Bottleneck</translate> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
23 </option> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
24 <optgroup |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
25 v-for="(bottlenecksForCountry, cc) in orderedBottlenecks" |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
26 :key="cc" |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
27 :label="cc" |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
28 > |
4479
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
29 <option |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
30 v-for="bn in bottlenecksForCountry" |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
31 :key="bn.properties.id" |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
32 :value="bn.properties.name" |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
33 > |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
34 {{ bn.properties.name }} |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
35 </option> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
36 </optgroup> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
37 </select> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
38 <button @click="takeMeThere" class="btn btn-sm btn-info"> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
39 <font-awesome-icon icon="crosshairs" /> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
40 </button> |
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
41 </div> |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
42 <div v-if="selectedBottleneck"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
43 <div class="d-flex flex-column mt-2"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
44 <div class="flex-fill"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
45 <small class="text-muted"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
46 <translate>Waterlevel</translate>: |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
47 </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
48 <select |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
49 v-model="selectedWaterLevel" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
50 class="form-control form-control-sm small" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
51 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
52 <option value="ref"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
53 <translate>Depth Reference</translate> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
54 <template v-if="selectedSurvey"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
55 ({{ selectedSurvey.depth_reference }}/{{ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
56 $options.filters.waterlevel( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
57 selectedSurvey.waterlevel_value |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
58 ) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
59 }} |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
60 m) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
61 </template> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
62 </option> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
63 <option value="current"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
64 <translate>Current Waterlevel</translate> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
65 <template v-if="bottleneck"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
66 ({{ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
67 $options.filters.waterlevel( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
68 bottleneck.get("gm_waterlevel") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
69 ) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
70 }} |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
71 m) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
72 </template> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
73 </option> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
74 </select> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
75 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
76 <div class="flex-fill"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
77 <small class="text-muted"> <translate>Survey</translate>: </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
78 <div class="d-flex"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
79 <select |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
80 v-model="selectedSurvey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
81 class="form-control form-control-sm small" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
82 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
83 <option |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
84 v-for="survey in surveys" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
85 :key="survey.date_info" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
86 :value="survey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
87 >{{ survey.date_info | surveyDate }}</option |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
88 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
89 </select> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
90 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
91 class="btn btn-dark btn-xs ml-2" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
92 @click="deleteSelectedSurvey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
93 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
94 <font-awesome-icon icon="trash" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
95 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
96 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
97 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
98 <div class="flex-fill" v-if="selectedSurvey && surveys.length > 1"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
99 <small class="text-muted mt-1"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
100 <translate>Compare with</translate>: |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
101 </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
102 <select |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
103 v-model="additionalSurvey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
104 class="form-control form-control-sm small" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
105 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
106 <option :value="null">None</option> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
107 <option |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
108 v-for="survey in additionalSurveys" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
109 :key="survey.date_info" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
110 :value="survey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
111 >{{ survey.date_info | surveyDate }}</option |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
112 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
113 </select> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
114 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
115 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
116 <div class="mt-2 d-flex" v-if="additionalSurvey"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
117 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
118 v-if="differencesLoading" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
119 class="btn btn-info btn-xs flex-fill" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
120 disabled |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
121 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
122 <font-awesome-icon icon="spinner" spin class="mr-1" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
123 <translate>Calculating differences</translate> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
124 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
125 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
126 class="btn btn-info btn-xs flex-fill" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
127 @click="differencesVisible ? showSurvey() : showDifferences()" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
128 v-else |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
129 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
130 <translate v-if="differencesVisible" key="showsurvey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
131 >Show survey</translate |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
132 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
133 <translate v-else key="showdifferences" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
134 >Show differences</translate |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
135 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
136 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
137 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
138 v-if="!paneSetup.includes('FAIRWAYPROFILE')" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
139 class="btn btn-info btn-xs ml-2" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
140 @click="$store.commit('application/paneRotate')" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
141 v-tooltip="rotatePanesTooltip" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
142 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
143 <font-awesome-icon icon="redo" fixed-width /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
144 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
145 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
146 class="btn btn-info btn-xs ml-2" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
147 @click="toggleSyncMaps()" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
148 v-tooltip="syncMapsTooltip" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
149 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
150 <font-awesome-icon |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
151 :icon="mapsAreSynced ? 'unlink' : 'link'" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
152 fixed-width |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
153 /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
154 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
155 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
156 <hr class="w-100 mb-0" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
157 <small class="text-muted d-block mt-2"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
158 <translate>Saved cross profiles</translate>: |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
159 </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
160 <div class="d-flex"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
161 <select |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
162 :class="[ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
163 'form-control form-control-sm flex-fill', |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
164 { 'rounded-left-only': selectedCut } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
165 ]" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
166 v-model="selectedCut" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
167 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
168 <option></option> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
169 <option |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
170 v-for="(cut, index) in previousCuts" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
171 :value="cut" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
172 :key="index" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
173 >{{ cut.label }}</option |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
174 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
175 </select> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
176 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
177 class="btn btn-xs btn-dark ml-2" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
178 @click="deleteSelectedCut(selectedCut)" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
179 v-if="selectedCut" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
180 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
181 <font-awesome-icon icon="trash" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
182 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
183 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
184 <small class="text-muted d-block mt-2"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
185 <translate>Enter coordinates manually</translate>: |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
186 </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
187 <div class="position-relative"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
188 <input |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
189 class="form-control form-control-sm pr-5" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
190 placeholder="Lat,Lon,Lat,Lon" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
191 v-model="coordinatesInput" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
192 /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
193 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
194 class="btn btn-sm btn-info position-absolute input-button-right" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
195 @click="applyManualCoordinates" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
196 style="top: 0; right: 0;" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
197 v-if="coordinatesInputIsValid" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
198 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
199 <font-awesome-icon icon="check" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
200 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
201 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
202 <small class="d-flex text-left mt-2" v-if="startPoint && endPoint"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
203 <div class="text-nowrap mr-3"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
204 <b> <translate>Start</translate>: </b> <br /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
205 Lat: {{ startPoint[1] }} <br /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
206 Lon: {{ startPoint[0] }} |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
207 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
208 <div class="text-nowrap"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
209 <b>End:</b> <br /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
210 Lat: {{ endPoint[1] }} <br /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
211 Lon: {{ endPoint[0] }} |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
212 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
213 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
214 v-clipboard:copy="coordinatesForClipboard" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
215 v-clipboard:success="onCopyCoordinates" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
216 class="btn btn-info btn-sm ml-auto mt-auto" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
217 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
218 <font-awesome-icon icon="copy" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
219 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
220 </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
221 <div class="d-flex mt-3"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
222 <div |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
223 class="pr-3 w-50" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
224 v-if="startPoint && endPoint && !selectedCut" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
225 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
226 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
227 class="btn btn-info btn-sm w-100" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
228 @click="showLabelInput = !showLabelInput" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
229 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
230 <font-awesome-icon :icon="showLabelInput ? 'times' : 'check'" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
231 {{ showLabelInput ? "Cancel" : "Save" }} |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
232 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
233 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
234 <div |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
235 :class="startPoint && endPoint && !selectedCut ? 'w-50' : 'w-100'" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
236 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
237 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
238 class="btn btn-info btn-sm w-100" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
239 @click="toggleCutTool" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
240 :disabled="!selectedSurvey" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
241 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
242 <font-awesome-icon :icon="cutToolEnabled ? 'times' : 'plus'" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
243 {{ cutToolEnabled ? "Cancel" : "New" }} |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
244 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
245 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
246 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
247 <div v-if="showLabelInput" class="mt-2"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
248 <small class="text-muted"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
249 <translate>Enter label for cross profile</translate>: |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
250 </small> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
251 <div class="position-relative"> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
252 <input |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
253 class="form-control form-control-sm pr-5" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
254 v-model="cutLabel" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
255 /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
256 <button |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
257 class="btn btn-sm btn-info position-absolute input-button-right" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
258 @click="saveCut" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
259 v-if="cutLabel" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
260 style="top: 0; right: 0;" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
261 > |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
262 <font-awesome-icon icon="check" /> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
263 </button> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
264 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
265 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
266 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
267 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
268 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
269 </div> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
270 </template> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
271 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
272 <style lang="scss" scoped> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
273 .input-button-right { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
274 border-top-right-radius: $border-radius; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
275 border-bottom-right-radius: $border-radius; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
276 border-top-left-radius: 0 !important; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
277 border-bottom-left-radius: 0 !important; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
278 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
279 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
280 .rounded-left-only { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
281 border-top-right-radius: 0 !important; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
282 border-bottom-right-radius: 0 !important; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
283 border-top-left-radius: $border-radius; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
284 border-bottom-left-radius: $border-radius; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
285 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
286 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
287 input, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
288 select { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
289 font-size: 0.8em; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
290 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
291 </style> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
292 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
293 <script> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
294 /* This is Free Software under GNU Affero General Public License v >= 3.0 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
295 * without warranty, see README.md and license for details. |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
296 * |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
297 * SPDX-License-Identifier: AGPL-3.0-or-later |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
298 * License-Filename: LICENSES/AGPL-3.0.txt |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
299 * |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
300 * Copyright (C) 2018 by via donau |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
301 * – Österreichische Wasserstraßen-Gesellschaft mbH |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
302 * Software engineering by Intevation GmbH |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
303 * |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
304 * Author(s): |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
305 * Markus Kottländer <markus.kottlaender@intevation.de> |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
306 */ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
307 import { mapState, mapGetters } from "vuex"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
308 import Feature from "ol/Feature"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
309 import LineString from "ol/geom/LineString"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
310 import { displayError, displayInfo } from "@/lib/errors"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
311 import { HTTP } from "@/lib/http"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
312 import { COMPARESURVEYS } from "@/components/paneSetups"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
313 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
314 export default { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
315 name: "profiles", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
316 data() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
317 return { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
318 coordinatesInput: "", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
319 cutLabel: "", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
320 showLabelInput: false |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
321 }; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
322 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
323 computed: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
324 ...mapState("application", ["showProfiles", "paneSetup"]), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
325 ...mapState("map", ["openLayersMaps", "syncedMaps", "cutToolEnabled"]), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
326 ...mapState("bottlenecks", [ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
327 "bottlenecksList", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
328 "surveys", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
329 "surveysLoading" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
330 ]), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
331 ...mapState("fairwayprofile", [ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
332 "previousCuts", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
333 "startPoint", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
334 "endPoint", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
335 "profileLoading", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
336 "differencesLoading", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
337 "waterLevels", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
338 "currentProfile" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
339 ]), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
340 ...mapGetters("map", ["openLayersMap"]), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
341 ...mapGetters("bottlenecks", ["orderedBottlenecks"]), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
342 profilesLable() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
343 return this.$gettext("Bottleneck Surveys"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
344 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
345 selectedBottleneck: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
346 get() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
347 return this.$store.state.bottlenecks.selectedBottleneck; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
348 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
349 set(name) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
350 this.$store.dispatch("bottlenecks/setSelectedBottleneck", name); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
351 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
352 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
353 selectedWaterLevel: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
354 get() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
355 return this.$store.state.fairwayprofile.selectedWaterLevel; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
356 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
357 set(value) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
358 this.$store.commit("fairwayprofile/setSelectedWaterLevel", value); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
359 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
360 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
361 selectedSurvey: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
362 get() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
363 return this.$store.state.bottlenecks.selectedSurvey; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
364 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
365 set(survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
366 this.$store.commit("fairwayprofile/additionalSurvey", null); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
367 this.$store.commit("bottlenecks/selectedSurvey", survey); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
368 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
369 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
370 additionalSurvey: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
371 get() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
372 return this.$store.state.fairwayprofile.additionalSurvey; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
373 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
374 set(survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
375 this.$store.commit("fairwayprofile/additionalSurvey", survey); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
376 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
377 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
378 selectedCut: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
379 get() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
380 return this.$store.state.fairwayprofile.selectedCut; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
381 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
382 set(cut) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
383 this.$store.commit("fairwayprofile/selectedCut", cut); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
384 if (!cut) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
385 this.$store.commit("fairwayprofile/clearCurrentProfile"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
386 this.openLayersMaps.forEach(m => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
387 m.getLayer("CUTTOOL") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
388 .getSource() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
389 .clear(); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
390 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
391 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
392 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
393 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
394 additionalSurveys() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
395 return this.surveys.filter( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
396 survey => survey.date_info !== this.selectedSurvey.date_info |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
397 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
398 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
399 coordinatesForClipboard() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
400 return ( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
401 this.startPoint[1] + |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
402 "," + |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
403 this.startPoint[0] + |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
404 "," + |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
405 this.endPoint[1] + |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
406 "," + |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
407 this.endPoint[0] |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
408 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
409 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
410 coordinatesInputIsValid() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
411 const coordinates = this.coordinatesInput |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
412 .split(",") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
413 .map(coord => parseFloat(coord.trim())) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
414 .filter(c => Number(c) === c); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
415 return coordinates.length === 4; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
416 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
417 differencesVisible() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
418 return ( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
419 this.openLayersMap(COMPARESURVEYS.compare.id) && |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
420 !this.openLayersMap(COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
421 .getLayer("BOTTLENECKISOLINE") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
422 .getVisible() && |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
423 this.openLayersMap(COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
424 .getLayer("DIFFERENCES") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
425 .getVisible() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
426 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
427 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
428 rotatePanesTooltip() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
429 return this.$gettext("Rotate Maps"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
430 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
431 syncMapsTooltip() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
432 return this.$gettext( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
433 this.mapsAreSynced ? "Unsynchronize Maps" : "Synchronize Maps" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
434 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
435 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
436 mapsAreSynced() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
437 return this.syncedMaps.includes(COMPARESURVEYS.compare.id); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
438 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
439 bottleneck() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
440 return this.openLayersMap() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
441 ? this.openLayersMap() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
442 .getLayer("BOTTLENECKS") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
443 .getSource() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
444 .getFeatures() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
445 .find(f => f.get("objnam") === this.selectedBottleneck) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
446 : null; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
447 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
448 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
449 watch: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
450 selectedBottleneck() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
451 this.$store.dispatch("fairwayprofile/previousCuts"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
452 this.cutLabel = |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
453 this.selectedBottleneck + " (" + new Date().toISOString() + ")"; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
454 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
455 selectedSurvey(survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
456 this.loadProfile(survey); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
457 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
458 additionalSurvey(survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
459 if (survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
460 this.loadDifferences(); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
461 this.$store.commit( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
462 "application/paneSetup", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
463 Object.keys(this.currentProfile).length |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
464 ? "COMPARESURVEYS_FAIRWAYPROFILE" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
465 : "COMPARESURVEYS" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
466 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
467 this.$store.commit("map/syncedMaps", [COMPARESURVEYS.compare.id]); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
468 } else { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
469 this.$store.commit( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
470 "application/paneSetup", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
471 Object.keys(this.currentProfile).length ? "FAIRWAYPROFILE" : "DEFAULT" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
472 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
473 this.$store.commit("map/syncedMaps", []); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
474 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
475 this.loadProfile(survey); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
476 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
477 selectedCut(cut) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
478 if (cut) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
479 this.applyCoordinates(cut.coordinates); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
480 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
481 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
482 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
483 methods: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
484 toggleSyncMaps() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
485 if (this.mapsAreSynced) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
486 this.$store.commit( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
487 "map/syncedMaps", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
488 this.syncedMaps.filter(m => m !== COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
489 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
490 } else { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
491 this.$store.commit("map/syncedMaps", [COMPARESURVEYS.compare.id]); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
492 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
493 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
494 loadDifferences() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
495 this.$store.commit("fairwayprofile/setDifferencesLoading", true); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
496 HTTP.post( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
497 "/diff", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
498 { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
499 bottleneck: this.selectedSurvey.bottleneck_id, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
500 minuend: this.selectedSurvey.date_info, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
501 subtrahend: this.additionalSurvey.date_info |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
502 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
503 { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
504 headers: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
505 "X-Gemma-Auth": localStorage.getItem("token") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
506 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
507 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
508 ) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
509 .then() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
510 .catch(error => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
511 let status, data, message; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
512 if (error.response) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
513 status = error.response.status; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
514 data = error.response.data; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
515 message = `${status}: ${data.message || data}`; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
516 } else { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
517 message = error; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
518 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
519 displayError({ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
520 title: this.$gettext("Backend Error"), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
521 message: message |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
522 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
523 }) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
524 .finally(() => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
525 this.$store.commit("fairwayprofile/setDifferencesLoading", false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
526 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
527 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
528 showDifferences() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
529 this.openLayersMap(COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
530 .getLayer("BOTTLENECKISOLINE") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
531 .setVisible(false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
532 this.openLayersMap(COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
533 .getLayer("DIFFERENCES") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
534 .setVisible(true); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
535 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
536 showSurvey() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
537 this.openLayersMap(COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
538 .getLayer("BOTTLENECKISOLINE") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
539 .setVisible(true); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
540 this.openLayersMap(COMPARESURVEYS.compare.id) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
541 .getLayer("DIFFERENCES") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
542 .setVisible(false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
543 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
544 close() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
545 this.$store.commit("application/showProfiles", false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
546 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
547 loadProfile(survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
548 if (survey) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
549 this.$store.commit("fairwayprofile/profileLoading", true); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
550 this.$store |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
551 .dispatch("fairwayprofile/loadProfile", survey) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
552 .finally(() => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
553 this.$store.commit("fairwayprofile/profileLoading", false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
554 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
555 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
556 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
557 toggleCutTool() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
558 this.$store.commit("map/cutToolEnabled", !this.cutToolEnabled); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
559 this.$store.commit("map/lineToolEnabled", false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
560 this.$store.commit("map/polygonToolEnabled", false); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
561 this.$store.commit("map/setCurrentMeasurement", null); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
562 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
563 onCopyCoordinates() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
564 displayInfo({ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
565 message: this.$gettext("Coordinates copied to clipboard!") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
566 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
567 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
568 applyManualCoordinates() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
569 const coordinates = this.coordinatesInput |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
570 .split(",") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
571 .map(coord => parseFloat(coord.trim())); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
572 this.selectedCut = null; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
573 this.coordinatesInput = ""; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
574 this.applyCoordinates([ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
575 coordinates[1], |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
576 coordinates[0], |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
577 coordinates[3], |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
578 coordinates[2] |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
579 ]); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
580 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
581 applyCoordinates(coordinates) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
582 // allow only numbers |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
583 coordinates = coordinates.filter(c => Number(c) === c); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
584 if (coordinates.length === 4) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
585 // draw line on map |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
586 this.openLayersMaps.forEach(m => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
587 m.getLayer("CUTTOOL") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
588 .getSource() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
589 .clear(); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
590 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
591 const cut = new Feature({ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
592 geometry: new LineString([ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
593 [coordinates[0], coordinates[1]], |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
594 [coordinates[2], coordinates[3]] |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
595 ]).transform("EPSG:4326", "EPSG:3857") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
596 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
597 this.openLayersMaps.forEach(m => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
598 m.getLayer("CUTTOOL") |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
599 .getSource() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
600 .addFeature(cut); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
601 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
602 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
603 // draw diagram |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
604 this.$store.dispatch("fairwayprofile/cut", cut); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
605 } else { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
606 displayError({ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
607 title: this.$gettext("Invalid input"), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
608 message: this.$gettext( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
609 "Please enter correct coordinates in the format: Lat,Lon,Lat,Lon" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
610 ) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
611 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
612 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
613 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
614 saveCut() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
615 const previousCuts = |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
616 JSON.parse(localStorage.getItem("previousCuts")) || []; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
617 const newEntry = { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
618 label: this.cutLabel, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
619 bottleneckName: this.selectedBottleneck, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
620 coordinates: [...this.startPoint, ...this.endPoint], |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
621 timestamp: new Date().getTime() |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
622 }; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
623 const existingEntry = previousCuts.find(cut => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
624 return JSON.stringify(cut) === JSON.stringify(newEntry); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
625 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
626 if (!existingEntry) previousCuts.push(newEntry); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
627 if (previousCuts.length > 100) previousCuts.shift(); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
628 localStorage.setItem("previousCuts", JSON.stringify(previousCuts)); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
629 this.$store.dispatch("fairwayprofile/previousCuts"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
630 |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
631 this.showLabelInput = false; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
632 displayInfo({ |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
633 title: this.$gettext("Profile saved!"), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
634 message: this.$gettext( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
635 'You can now select these coordinates from the "Saved cross profiles" menu to restore this cross profile.' |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
636 ) |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
637 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
638 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
639 deleteSelectedSurvey() { |
4402
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
640 HTTP.post( |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
641 "/imports/dsr", |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
642 { |
4406
d336a78985ad
bottleneck_dialogue: send correct bottleneck_id
Thomas Junk <thomas.junk@intevation.de>
parents:
4402
diff
changeset
|
643 "bottleneck-id": this.selectedSurvey.bottleneck_id, |
4402
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
644 "date-info": this.selectedSurvey.date_info |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
645 }, |
4402
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
646 { |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
647 headers: { "X-Gemma-Auth": localStorage.getItem("token") } |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
648 } |
4402
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
649 ) |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
650 .then(() => { |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
651 displayInfo({ |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
652 title: this.$gettext("Survey"), |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
653 message: |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
654 this.$gettext("Deleting ") + |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
655 `${this.selectedBottleneck}: ${this.selectedSurvey.date_info}` |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
656 }); |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
657 }) |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
658 .catch(error => { |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
659 const { status, data } = error.response; |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
660 displayError({ |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
661 title: this.$gettext("Backend Error"), |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
662 message: `${status}: ${data.message || data}` |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
663 }); |
5e894e680e0d
dsr implemented in frontend
Thomas Junk <thomas.junk@intevation.de>
parents:
4324
diff
changeset
|
664 }); |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
665 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
666 deleteSelectedCut(cut) { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
667 this.$store.commit("application/popup", { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
668 icon: "trash", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
669 title: this.$gettext("Delete cross profile"), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
670 content: |
4324
36d384326407
BottleneckDialogue: Prototype for delete of surveys implemented
Thomas Junk <thomas.junk@intevation.de>
parents:
4322
diff
changeset
|
671 `<small><b>` + |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
672 this.$gettext("Do you really want to delete the cross profile:") + |
4324
36d384326407
BottleneckDialogue: Prototype for delete of surveys implemented
Thomas Junk <thomas.junk@intevation.de>
parents:
4322
diff
changeset
|
673 `</b><br> |
36d384326407
BottleneckDialogue: Prototype for delete of surveys implemented
Thomas Junk <thomas.junk@intevation.de>
parents:
4322
diff
changeset
|
674 ${cut.label}</small>`, |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
675 confirm: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
676 label: this.$gettext("Delete"), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
677 icon: "trash", |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
678 callback: () => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
679 let previousCuts = |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
680 JSON.parse(localStorage.getItem("previousCuts")) || []; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
681 previousCuts = previousCuts.filter(cut => { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
682 return JSON.stringify(cut) !== JSON.stringify(this.selectedCut); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
683 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
684 localStorage.setItem("previousCuts", JSON.stringify(previousCuts)); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
685 this.$store.commit("fairwayprofile/selectedCut", null); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
686 this.$store.dispatch("fairwayprofile/previousCuts"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
687 displayInfo({ title: this.$gettext("Profile deleted!") }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
688 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
689 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
690 cancel: { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
691 label: this.$gettext("Cancel"), |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
692 icon: "times" |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
693 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
694 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
695 }, |
4479
2d2c9f98360a
Bottlenecks: Instead of dynamically scroll use crosshairs button
Thomas Junk <thomas.junk@intevation.de>
parents:
4406
diff
changeset
|
696 takeMeThere() { |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
697 const bottleneck = this.bottlenecksList.find( |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
698 bn => bn.properties.name === this.selectedBottleneck |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
699 ); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
700 if (!bottleneck) return; |
4488
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4479
diff
changeset
|
701 this.$store.commit( |
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4479
diff
changeset
|
702 "bottlenecks/setBottleneckForPrint", |
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4479
diff
changeset
|
703 this.selectedBottleneck |
bff6c5c1db4f
client: pdf-gen: improve adding bottleneck info to pdf
Fadi Abbud <fadi.abbud@intevation.de>
parents:
4479
diff
changeset
|
704 ); |
4322
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
705 this.$store.dispatch("map/moveToFeauture", { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
706 feature: bottleneck, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
707 zoom: 17, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
708 preventZoomOut: true |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
709 }); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
710 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
711 }, |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
712 mounted() { |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
713 this.$store.dispatch("bottlenecks/loadBottlenecksList"); |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
714 } |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
715 }; |
fabe67e204e7
bottleneckDialogue added
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
716 </script> |