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