Mercurial > gemma
annotate client/src/application/Topbar.vue @ 860:38b682eaa7b1
client: add updateing of bottleneck filter
* Add a watcher on the selectedMorph to trigger the update of the bottleneck
filter.
* Reverse the parameter to updateBottleneckFilter() to the order that was
mostly used.
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Fri, 28 Sep 2018 17:19:08 +0200 |
parents | 9b982e50e938 |
children | 2e2ac0b88af9 |
rev | line source |
---|---|
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
1 <template> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
2 <div class="topbar d-flex flex-row"> |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
3 <div @click="toggleSidebar"> |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
4 <i class="ui-element menubutton fa fa-bars"></i> |
621
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
5 </div> |
713
badbc0207418
feat: systeminformation feature added
Thomas Junk <thomas.junk@intevation.de>
parents:
668
diff
changeset
|
6 <div v-if="routeName == 'mainview'" :class="searchbarContainerStyle"> |
621
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
7 <div class="input-group-prepend shadow"> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
8 <span @click="toggleSearchbar" class="ui-element input-group-text searchlabel" for="search"> |
621
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
9 <i class="fa fa-search"></i> |
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
10 </span> |
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
11 </div> |
794
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
12 <div class="searchgroup"> |
802
327aa4a18a1c
Fairway profile WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
794
diff
changeset
|
13 <input @keyup.enter="takeFirstSearchresult" v-if="!searchbarCollapsed" id="search" v-model="searchQuery" type="text" class="form-control ui-element search searchbar"> |
794
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
14 <ul v-if="!searchbarCollapsed && searchResults !== null " class="list-group"> |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
15 <li v-for="entry of searchResults" :key="entry.name" class="list-group-item"> |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
16 <a href="#" @click.prevent="moveToSearchResult(entry)">{{entry.name}}</a> |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
17 </li> |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
18 </ul> |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
19 </div> |
621
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
20 </div> |
713
badbc0207418
feat: systeminformation feature added
Thomas Junk <thomas.junk@intevation.de>
parents:
668
diff
changeset
|
21 <div v-if="routeName == 'mainview'" class="splitbutton"> |
621
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
22 <i @click="splitScreen" class="ui-element splitscreen fa fa-window-restore shadow"></i> |
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
23 </div> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
24 <div class=""> |
713
badbc0207418
feat: systeminformation feature added
Thomas Junk <thomas.junk@intevation.de>
parents:
668
diff
changeset
|
25 <Layers v-if="routeName == 'mainview'"></Layers> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
26 </div> |
770
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
27 <div class=""> |
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
28 <Identify v-if="routeName == 'mainview'"></Identify> |
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
29 </div> |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
30 </div> |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
31 </template> |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
32 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
33 <style lang="scss"> |
794
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
34 .searchgroup { |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
35 width: 90%; |
afe62d1ce01c
fix: searchresults below searchbar
Thomas Junk <thomas.junk@intevation.de>
parents:
783
diff
changeset
|
36 } |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
37 .splitbutton { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
38 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
39 } |
781
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
40 .list-group { |
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
41 pointer-events: auto; |
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
42 } |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
43 .splitscreen { |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
44 background-color: white; |
632
f2097d2aa048
fix: adjusted icon sizes
Thomas Junk <thomas.junk@intevation.de>
parents:
630
diff
changeset
|
45 padding: $small-offset; |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
46 margin-right: $small-offset; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
47 margin-left: $offset; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
48 border-radius: $border-radius; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
49 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
50 width: $icon-width; |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
51 } |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
52 |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
53 .menubutton { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
54 background-color: white; |
632
f2097d2aa048
fix: adjusted icon sizes
Thomas Junk <thomas.junk@intevation.de>
parents:
630
diff
changeset
|
55 padding: $small-offset; |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
56 border-radius: $border-radius; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
57 margin-left: $offset; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
58 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
59 width: $icon-width; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
60 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
61 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
62 .searchcontainer { |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
63 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
64 border-radius: 0.25rem; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
65 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
66 |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
67 .searchbar-expanded { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
68 margin-left: 22vw; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
69 margin-right: auto; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
70 width: $searchbar-width !important; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
71 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
72 |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
73 .searchbar-collapsed { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
74 margin-left: auto; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
75 margin-right: $small-offset; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
76 width: $icon-width !important; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
77 transition: $transition-fast; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
78 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
79 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
80 .searchbar { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
81 margin-left: auto; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
82 margin-right: auto; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
83 height: $icon-height !important; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
84 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
85 |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
86 .searchlabel { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
87 background-color: white !important; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
88 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
89 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
90 .topbar { |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
91 padding-top: $offset; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
92 margin-right: $offset; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
93 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
94 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
95 .logout { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
96 font-size: x-large; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
97 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
98 </style> |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
99 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
100 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
101 <script> |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
102 import debounce from "lodash.debounce"; |
783
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
103 import { fromLonLat } from "ol/proj"; |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
104 import { mapState } from "vuex"; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
105 |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
106 import { displayError } from "../application/lib/errors.js"; |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
107 import { HTTP } from "../application/lib/http"; |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
108 import Identify from "../layers/Identify"; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
109 import Layers from "../layers/Layers"; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
110 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
111 export default { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
112 name: "topbar", |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
113 components: { |
770
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
114 Identify: Identify, |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
115 Layers: Layers |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
116 }, |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
117 data() { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
118 return { |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
119 searchbarCollapsed: true, |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
120 searchQuery: "", |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
121 searchQueryIsDirty: false, |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
122 searchResults: null, |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
123 isSearching: false |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
124 }; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
125 }, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
126 computed: { |
783
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
127 ...mapState("mapstore", ["openLayersMap"]), |
811
9b982e50e938
split only with data
Thomas Junk <thomas.junk@intevation.de>
parents:
802
diff
changeset
|
128 ...mapState("fairwayprofile", ["currentProfile"]), |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
129 searchIndicator: function() { |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
130 if (this.isSearching) { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
131 return "⟳"; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
132 } else if (this.searchQueryIsDirty) { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
133 return ""; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
134 } else { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
135 return "✓"; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
136 } |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
137 }, |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
138 searchbarContainerStyle() { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
139 return { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
140 "input-group": true, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
141 searchcontainer: true, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
142 "searchbar-collapsed": this.searchbarCollapsed, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
143 "searchbar-expanded": !this.searchbarCollapsed |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
144 }; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
145 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
146 }, |
649
83081ba6c9c1
feat: Linetool added
Thomas Junk <thomas.junk@intevation.de>
parents:
638
diff
changeset
|
147 props: ["routeName"], |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
148 watch: { |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
149 searchQuery: function() { |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
150 this.searchQueryIsDirty = true; |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
151 this.triggerSearch(); |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
152 } |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
153 }, |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
154 methods: { |
802
327aa4a18a1c
Fairway profile WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
794
diff
changeset
|
155 takeFirstSearchresult() { |
327aa4a18a1c
Fairway profile WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
794
diff
changeset
|
156 if (!this.searchResults || this.searchResults.length != 1) return; |
327aa4a18a1c
Fairway profile WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
794
diff
changeset
|
157 this.moveToSearchResult(this.searchResults[0]); |
327aa4a18a1c
Fairway profile WIP
Thomas Junk <thomas.junk@intevation.de>
parents:
794
diff
changeset
|
158 }, |
781
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
159 triggerSearch: debounce(function() { |
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
160 this.doSearch(); |
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
161 }, 500), |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
162 doSearch() { |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
163 this.isCalculating = true; |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
164 this.searchResults = null; |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
165 |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
166 if (this.searchQuery == "") { |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
167 return; |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
168 } |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
169 |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
170 HTTP.post( |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
171 "/search", |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
172 { string: this.searchQuery }, |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
173 { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
174 headers: { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
175 "X-Gemma-Auth": localStorage.getItem("token"), |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
176 "Content-type": "text/xml; charset=UTF-8" |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
177 } |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
178 } |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
179 ) |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
180 .then(response => { |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
181 // console.log("got:", response.data); |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
182 this.searchResults = response.data; |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
183 }) |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
184 .catch(error => { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
185 const { status, data } = error.response; |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
186 displayError({ |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
187 title: "Backend Error", |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
188 message: `${status}: ${data.message || data}` |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
189 }); |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
190 }); |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
191 |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
192 this.isCalculating = false; |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
193 this.searchQueryIsDirty = false; |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
194 }, |
781
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
195 moveToSearchResult(resultEntry) { |
783
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
196 // DEBUG console.log("Moving to", resultEntry); |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
197 if (resultEntry.geom.type == "Point") { |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
198 let view = this.openLayersMap.getView(); |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
199 view.animate( |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
200 { |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
201 center: fromLonLat( |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
202 resultEntry.geom.coordinates, |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
203 view.getProjection() |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
204 ) |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
205 }, |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
206 700 |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
207 ); |
781
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
208 } |
783
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
209 // this.searchQuery = ""; // clear search query again |
ab9604a46075
client: add move after clicking search result
Bernhard Reiter <bernhard@intevation.de>
parents:
781
diff
changeset
|
210 this.toggleSearchbar(); |
781
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
211 }, |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
212 toggleSearchbar() { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
213 this.searchbarCollapsed = !this.searchbarCollapsed; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
214 }, |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
215 toggleSidebar() { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
216 this.$store.commit("application/toggleSidebar"); |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
217 }, |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
218 splitScreen() { |
811
9b982e50e938
split only with data
Thomas Junk <thomas.junk@intevation.de>
parents:
802
diff
changeset
|
219 if (this.currentProfile.length == 0) return; |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
220 this.$store.commit("application/toggleSplitScreen"); |
781
f6a6ce90a1b5
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
779
diff
changeset
|
221 } |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
222 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
223 }; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
224 </script> |