annotate client/src/components/Search.vue @ 3760:aea53775a3a7

client: search: set item from sidebar for sections/stretches
author Markus Kottlaender <markus@intevation.de>
date Tue, 25 Jun 2019 13:44:10 +0200
parents 78ba9b2574ff
children 33180c25bd87
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
1 <template>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
2 <div :class="searchbarContainerStyle">
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
3 <div class="input-group-prepend m-0 d-print-none">
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
4 <span @click="toggleSearchbar" :class="searchButtonStyle" for="search">
2919
6c5364ff0abb client: removed a lot of unnecessary closing tags
Markus Kottlaender <markus@intevation.de>
parents: 2871
diff changeset
5 <font-awesome-icon icon="search" />
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
6 </span>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
7 </div>
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
8 <div
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
9 :class="[
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
10 'searchgroup',
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
11 {
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
12 'searchgroup-collapsed': !showSearchbar,
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
13 big:
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
14 showContextBox &&
1797
67340ceecc5f feat: define sections and stretches etd
Thomas Junk <thomas.junk@intevation.de>
parents: 1670
diff changeset
15 ['bottlenecks', 'staging', 'stretches'].indexOf(
67340ceecc5f feat: define sections and stretches etd
Thomas Junk <thomas.junk@intevation.de>
parents: 1670
diff changeset
16 contextBoxContent
67340ceecc5f feat: define sections and stretches etd
Thomas Junk <thomas.junk@intevation.de>
parents: 1670
diff changeset
17 ) !== -1
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
18 }
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
19 ]"
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
20 >
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
21 <input
2753
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
22 @keyup.enter="triggerEnter"
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
23 id="search"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
24 v-model="searchQuery"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
25 type="text"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
26 :class="searchInputStyle"
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
27 />
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
28 </div>
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
29 <div
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
30 v-if="showSearchbar && searchResults !== null && !showContextBox"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
31 class="searchresults border-top ui-element bg-white rounded-bottom d-print-none position-absolute"
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
32 >
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
33 <div
3575
818cc2deff98 search: fix index issue
Thomas Junk <thomas.junk@intevation.de>
parents: 3391
diff changeset
34 v-for="(entry, index) of searchResults"
818cc2deff98 search: fix index issue
Thomas Junk <thomas.junk@intevation.de>
parents: 3391
diff changeset
35 :key="index"
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
36 class="border-top text-left"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
37 >
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
38 <a
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
39 href="#"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
40 @click.prevent="moveToSearchResult(entry)"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
41 class="p-2 d-block text-nowrap"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
42 >
1441
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
43 <font-awesome-icon
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
44 icon="ship"
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
45 v-if="entry.type === 'bottleneck'"
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
46 class="mr-1"
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
47 fixed-width
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
48 />
1480
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
49 <font-awesome-icon
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
50 icon="water"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
51 v-if="entry.type === 'rhm'"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
52 class="mr-1"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
53 fixed-width
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
54 />
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
55 <font-awesome-icon
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
56 icon="city"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
57 v-if="entry.type === 'city'"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
58 class="mr-1"
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
59 fixed-width
9b81ac91a43e fix: linting
Thomas Junk <thomas.junk@intevation.de>
parents: 1449
diff changeset
60 />
2454
219c5b57ef5b Added icon to gouges in search result.
Sascha Wilde <wilde@intevation.de>
parents: 2440
diff changeset
61 <font-awesome-icon
2464
bc0f1771497a Use better suited icon for gauges in search results.
Sascha Wilde <wilde@intevation.de>
parents: 2454
diff changeset
62 icon="ruler-vertical"
2454
219c5b57ef5b Added icon to gouges in search result.
Sascha Wilde <wilde@intevation.de>
parents: 2440
diff changeset
63 v-if="entry.type === 'gauge'"
219c5b57ef5b Added icon to gouges in search result.
Sascha Wilde <wilde@intevation.de>
parents: 2440
diff changeset
64 class="mr-1"
219c5b57ef5b Added icon to gouges in search result.
Sascha Wilde <wilde@intevation.de>
parents: 2440
diff changeset
65 fixed-width
219c5b57ef5b Added icon to gouges in search result.
Sascha Wilde <wilde@intevation.de>
parents: 2440
diff changeset
66 />
3391
11379474a1b1 Added preliminary icon for sections in search.
Sascha Wilde <wilde@intevation.de>
parents: 3074
diff changeset
67 <font-awesome-icon
3760
aea53775a3a7 client: search: set item from sidebar for sections/stretches
Markus Kottlaender <markus@intevation.de>
parents: 3753
diff changeset
68 icon="road"
aea53775a3a7 client: search: set item from sidebar for sections/stretches
Markus Kottlaender <markus@intevation.de>
parents: 3753
diff changeset
69 v-if="['stretch', 'section'].includes(entry.type)"
3391
11379474a1b1 Added preliminary icon for sections in search.
Sascha Wilde <wilde@intevation.de>
parents: 3074
diff changeset
70 class="mr-1"
11379474a1b1 Added preliminary icon for sections in search.
Sascha Wilde <wilde@intevation.de>
parents: 3074
diff changeset
71 fixed-width
11379474a1b1 Added preliminary icon for sections in search.
Sascha Wilde <wilde@intevation.de>
parents: 3074
diff changeset
72 />
3584
7b15a6dd4ae5 search: replace commata via SQL
Thomas Junk <thomas.junk@intevation.de>
parents: 3579
diff changeset
73 {{ entry.name }} {{ entry.locationcode }}
1399
8e2c9e518440 improved search style
Markus Kottlaender <markus@intevation.de>
parents: 1398
diff changeset
74 </a>
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
75 </div>
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
76 </div>
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
77 </div>
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
78 </template>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
79
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
80 <style lang="scss" scoped>
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
81 .searchcontainer {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
82 opacity: 0.96;
3012
802fcb50c484 search, contextbox: increased available area
Thomas Junk <thomas.junk@intevation.de>
parents: 2985
diff changeset
83 width: 668px;
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
84 }
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
85
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
86 .searchcontainer .searchbar {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
87 border-top-left-radius: 0 !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
88 border-bottom-left-radius: 0 !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
89 }
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
90
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
91 .searchgroup {
3012
802fcb50c484 search, contextbox: increased available area
Thomas Junk <thomas.junk@intevation.de>
parents: 2985
diff changeset
92 width: 635px;
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
93 overflow: hidden;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
94 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
95
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
96 .searchgroup-collapsed {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
97 width: 0;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
98 }
1286
ac6edfb83cf1 improved contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1282
diff changeset
99
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
100 .searchbar {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
101 height: 2rem !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
102 box-shadow: none !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
103 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
104
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
105 .searchbar.rounded-top-right {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
106 border-radius: 0 !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
107 border-top-right-radius: 0.25rem !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
108 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
109
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
110 .searchlabel.rounded-top-left {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
111 border-radius: 0 !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
112 border-top-left-radius: 0.25rem !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
113 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
114
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
115 .input-group-text {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
116 height: 2rem;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
117 width: 2rem;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
118 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
119
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
120 .input-group-prepend svg path {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
121 fill: #666;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
122 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
123
1449
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
124 .searchresults {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
125 box-shadow: 0 0.1rem 0.5rem rgba(0, 0, 0, 0.2);
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
126 top: 2rem;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
127 left: 0;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
128 right: 0;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
129 max-height: 24rem;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
130 overflow: auto;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
131 }
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
132
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
133 .searchresults > div:first-child {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
134 border-top: 0 !important;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
135 }
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
136
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
137 .searchresults a {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
138 text-decoration: none;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
139 }
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
140
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
141 .searchresults a:hover {
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
142 background: #f8f8f8;
bb47531bdd22 sass to scss
Thomas Junk <thomas.junk@intevation.de>
parents: 1441
diff changeset
143 }
2283
1169f18a0f11 make room for searchbar
Thomas Junk <thomas.junk@intevation.de>
parents: 2136
diff changeset
144
1169f18a0f11 make room for searchbar
Thomas Junk <thomas.junk@intevation.de>
parents: 2136
diff changeset
145 .smallbox {
1169f18a0f11 make room for searchbar
Thomas Junk <thomas.junk@intevation.de>
parents: 2136
diff changeset
146 width: 2rem;
1169f18a0f11 make room for searchbar
Thomas Junk <thomas.junk@intevation.de>
parents: 2136
diff changeset
147 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
148 </style>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
149
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
150 <script>
1362
ca33ad696594 remove the first empyty lines
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1361
diff changeset
151 /* This is Free Software under GNU Affero General Public License v >= 3.0
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
152 * without warranty, see README.md and license for details.
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
153 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
154 * SPDX-License-Identifier: AGPL-3.0-or-later
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
155 * License-Filename: LICENSES/AGPL-3.0.txt
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
156 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
157 * Copyright (C) 2018 by via donau
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
158 * – Österreichische Wasserstraßen-Gesellschaft mbH
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
159 * Software engineering by Intevation GmbH
1361
ea3a89a1813a remove trailing whitespace, add headers for Makefile, add the missed authors
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1299
diff changeset
160 *
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
161 * Author(s):
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
162 * Markus Kottländer <markus.kottlaender@intevation.de>
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
163 */
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
164 import debounce from "lodash.debounce";
2753
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
165 import { mapState, mapGetters } from "vuex";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
166
2985
1b8bb4f89227 client: removed .js and .vue extention from imports
Markus Kottlaender <markus@intevation.de>
parents: 2919
diff changeset
167 import { displayError } from "@/lib/errors";
1613
f2d24dceecc7 refac: cleanup import paths
Thomas Junk <thomas.junk@intevation.de>
parents: 1558
diff changeset
168 import { HTTP } from "@/lib/http";
2753
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
169 import { format } from "date-fns";
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
170
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
171 const setFocus = () => document.querySelector("#search").focus();
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
172
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
173 export default {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
174 name: "search",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
175 data() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
176 return {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
177 searchQueryIsDirty: false,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
178 searchResults: null,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
179 isSearching: false
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
180 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
181 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
182 computed: {
1282
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
183 ...mapState("application", [
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
184 "showSearchbar",
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
185 "showContextBox",
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
186 "contextBoxContent"
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
187 ]),
2753
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
188 ...mapState("imports", ["startDate", "endDate"]),
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
189 ...mapGetters("imports", ["filters"]),
3749
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
190 ...mapGetters("map", ["openLayersMap"]),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
191 searchQuery: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
192 get() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
193 return this.$store.state.application.searchQuery;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
194 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
195 set(value) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
196 this.$store.commit("application/searchQuery", value);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
197 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
198 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
199 searchIndicator: function() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
200 if (this.isSearching) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
201 return "⟳";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
202 } else if (this.searchQueryIsDirty) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
203 return "";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
204 } else {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
205 return "✓";
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
206 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
207 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
208 searchbarContainerStyle() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
209 return [
3074
85f7f8981a71 client: search: fixed rounded corners
Markus Kottlaender <markus@intevation.de>
parents: 3044
diff changeset
210 "input-group searchcontainer shadow-xs rounded",
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
211 {
1282
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
212 "d-flex": this.contextBoxContent !== "imports",
2283
1169f18a0f11 make room for searchbar
Thomas Junk <thomas.junk@intevation.de>
parents: 2136
diff changeset
213 "d-none": this.contextBoxContent === "imports" && this.showContextBox,
1169f18a0f11 make room for searchbar
Thomas Junk <thomas.junk@intevation.de>
parents: 2136
diff changeset
214 smallbox: !this.showSearchbar
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
215 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
216 ];
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
217 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
218 searchInputStyle() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
219 return [
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
220 "form-control ui-element search searchbar d-print-none border-0",
1282
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
221 { "rounded-top-right": this.showContextBox || this.searchResults }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
222 ];
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
223 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
224 searchButtonStyle() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
225 return [
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
226 "ui-element input-group-text p-0 d-flex border-0 justify-content-center searchlabel bg-white d-print-none",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
227 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
228 rounded: !this.showSearchbar,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
229 "rounded-left": this.showSearchbar,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
230 "rounded-top-left":
1282
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
231 this.showSearchbar && (this.showContextBox || this.searchResults)
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
232 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
233 ];
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
234 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
235 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
236 watch: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
237 searchQuery: function() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
238 this.searchQueryIsDirty = true;
2750
6446bf6d2a89 search: use global search only in global context
Thomas Junk <thomas.junk@intevation.de>
parents: 2464
diff changeset
239 if (!this.showContextBox) this.triggerSearch();
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
240 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
241 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
242 methods: {
2753
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
243 loadLogs() {
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
244 this.$store
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
245 .dispatch("imports/getImports", {
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
246 filter: this.filters,
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
247 from: format(this.startDate, "YYYY-MM-DDTHH:mm:ss.SSS"),
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
248 to: format(this.endDate, "YYYY-MM-DDTHH:mm:ss.SSS"),
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
249 query: this.searchQuery
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
250 })
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
251 .then(() => {})
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
252 .catch(error => {
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
253 const { status, data } = error.response;
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
254 displayError({
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
255 title: this.$gettext("Backend Error"),
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
256 message: `${status}: ${data.message || data}`
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
257 });
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
258 });
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
259 },
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
260 triggerEnter() {
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
261 if (this.showContextBox && this.contextBoxContent === "importoverview") {
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
262 this.loadLogs();
2aa1620ffd9e search: in context of importoverview pressing enter triggers a request for and updated dataset
Thomas Junk <thomas.junk@intevation.de>
parents: 2750
diff changeset
263 }
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
264 if (!this.searchResults || this.searchResults.length != 1) return;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
265 this.moveToSearchResult(this.searchResults[0]);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
266 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
267 triggerSearch: debounce(function() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
268 this.doSearch();
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
269 }, 500),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
270 doSearch() {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
271 this.isCalculating = true;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
272 this.searchResults = null;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
273
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
274 if (this.searchQuery == "") {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
275 return;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
276 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
277
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
278 HTTP.post(
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
279 "/search",
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
280 { string: this.searchQuery },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
281 {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
282 headers: {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
283 "X-Gemma-Auth": localStorage.getItem("token"),
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
284 "Content-type": "text/xml; charset=UTF-8"
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
285 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
286 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
287 )
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
288 .then(response => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
289 this.searchResults = response.data;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
290 })
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
291 .catch(error => {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
292 const { status, data } = error.response;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
293 displayError({
1441
a4554e942954 Client: add a set of marked translations
Fadi Abbud <fadi.abbud@intevation.de>
parents: 1425
diff changeset
294 title: this.$gettext("Backend Error"),
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
295 message: `${status}: ${data.message || data}`
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
296 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
297 });
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
298
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
299 this.isCalculating = false;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
300 this.searchQueryIsDirty = false;
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
301 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
302 moveToSearchResult(resultEntry) {
3749
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
303 let zoom = 16;
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
304 if (resultEntry.type === "bottleneck") {
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
305 this.openLayersMap()
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
306 .getLayer("BOTTLENECKS")
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
307 .setVisible(true);
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
308 }
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
309 if (resultEntry.type === "rhm") {
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
310 this.openLayersMap()
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
311 .getLayer("DISTANCEMARKSAXIS")
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
312 .setVisible(true);
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
313 }
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
314 if (resultEntry.type === "gauge") {
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
315 this.openLayersMap()
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
316 .getLayer("GAUGES")
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
317 .setVisible(true);
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
318 }
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
319 if (resultEntry.type === "stretch") {
3753
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
320 this.$store.commit(
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
321 "imports/selectedStretchId",
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
322 "stretches_geoserver." + resultEntry.id
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
323 );
3749
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
324 this.openLayersMap()
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
325 .getLayer("STRETCHES")
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
326 .setVisible(true);
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
327 }
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
328 if (resultEntry.type === "section") {
3753
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
329 this.$store.commit(
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
330 "imports/selectedSectionId",
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
331 "sections_geoserver." + resultEntry.id
78ba9b2574ff search: include id in search result to mark sections/stretches as selected
Markus Kottlaender <markus@intevation.de>
parents: 3749
diff changeset
332 );
3749
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
333 this.openLayersMap()
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
334 .getLayer("SECTIONS")
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
335 .setVisible(true);
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
336 }
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
337 if (resultEntry.type === "city") zoom = 13;
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
338
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
339 if (resultEntry.geom.type == "Point") {
3044
c71373594719 client: map: prepared store to hold multiple map objects
Markus Kottlaender <markus@intevation.de>
parents: 3012
diff changeset
340 this.$store.dispatch("map/moveMap", {
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
341 coordinates: resultEntry.geom.coordinates,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
342 zoom,
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
343 preventZoomOut: true
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
344 });
3749
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
345 } else if (resultEntry.geom.type == "Polygon") {
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
346 const boundingBox = [
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
347 Math.min(...resultEntry.geom.coordinates[0].map(c => c[0])),
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
348 Math.min(...resultEntry.geom.coordinates[0].map(c => c[1])),
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
349 Math.max(...resultEntry.geom.coordinates[0].map(c => c[0])),
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
350 Math.max(...resultEntry.geom.coordinates[0].map(c => c[1]))
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
351 ];
f20bd1aee549 client: search: zoom to bounding box if feature has one
Markus Kottlaender <markus@intevation.de>
parents: 3584
diff changeset
352 this.$store.dispatch("map/moveToBoundingBox", { boundingBox, zoom });
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
353 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
354 // this.searchQuery = ""; // clear search query again
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
355 this.toggleSearchbar();
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
356 },
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
357 toggleSearchbar() {
1282
a7dd8a3356fc fixed contextBox animations
Markus Kottlaender <markus@intevation.de>
parents: 1272
diff changeset
358 if (!this.showContextBox) {
1272
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
359 if (!this.showSearchbar) {
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
360 setTimeout(setFocus, 300);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
361 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
362 this.$store.commit("application/showSearchbar", !this.showSearchbar);
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
363 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
364 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
365 }
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
366 };
bc55ffaeb639 cleaned up client/src directory
Markus Kottlaender <markus@intevation.de>
parents:
diff changeset
367 </script>