Mercurial > gemma
annotate client/src/application/Topbar.vue @ 779:8ba1be486833
client: improve search
* Add display of searchResults as list-group.
author | Bernhard Reiter <bernhard@intevation.de> |
---|---|
date | Wed, 26 Sep 2018 13:46:18 +0200 |
parents | bb3558142b18 |
children | f6a6ce90a1b5 |
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> |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
12 <input v-if="!searchbarCollapsed" id="search" v-model="searchQuery" type="text" class="form-control ui-element search searchbar"> |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
13 <ul v-if="!searchbarCollapsed && searchResults !== null " class="list-group"> |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
14 <li v-for="entry of searchResults" :key="entry.name" |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
15 class="list-group-item"> |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
16 {{entry.name}} |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
17 </li> |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
18 </ul> |
621
b17a4482d07d
feat: UI adaptation of 4 slots
Thomas Junk <thomas.junk@intevation.de>
parents:
593
diff
changeset
|
19 </div> |
713
badbc0207418
feat: systeminformation feature added
Thomas Junk <thomas.junk@intevation.de>
parents:
668
diff
changeset
|
20 <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
|
21 <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
|
22 </div> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
23 <div class=""> |
713
badbc0207418
feat: systeminformation feature added
Thomas Junk <thomas.junk@intevation.de>
parents:
668
diff
changeset
|
24 <Layers v-if="routeName == 'mainview'"></Layers> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
25 </div> |
770
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
26 <div class=""> |
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
27 <Identify v-if="routeName == 'mainview'"></Identify> |
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
28 </div> |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
29 </div> |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
30 </template> |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
31 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
32 <style lang="scss"> |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
33 .splitbutton { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
34 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
35 } |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
36 .splitscreen { |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
37 background-color: white; |
632
f2097d2aa048
fix: adjusted icon sizes
Thomas Junk <thomas.junk@intevation.de>
parents:
630
diff
changeset
|
38 padding: $small-offset; |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
39 margin-right: $small-offset; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
40 margin-left: $offset; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
41 border-radius: $border-radius; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
42 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
43 width: $icon-width; |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
44 } |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
45 |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
46 .menubutton { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
47 background-color: white; |
632
f2097d2aa048
fix: adjusted icon sizes
Thomas Junk <thomas.junk@intevation.de>
parents:
630
diff
changeset
|
48 padding: $small-offset; |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
49 border-radius: $border-radius; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
50 margin-left: $offset; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
51 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
52 width: $icon-width; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
53 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
54 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
55 .searchcontainer { |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
56 height: $icon-height; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
57 border-radius: 0.25rem; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
58 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
59 |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
60 .searchbar-expanded { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
61 margin-left: 22vw; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
62 margin-right: auto; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
63 width: $searchbar-width !important; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
64 } |
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 .searchbar-collapsed { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
67 margin-left: auto; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
68 margin-right: $small-offset; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
69 width: $icon-width !important; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
70 transition: $transition-fast; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
71 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
72 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
73 .searchbar { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
74 margin-left: auto; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
75 margin-right: auto; |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
76 height: $icon-height !important; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
77 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
78 |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
79 .searchlabel { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
80 background-color: white !important; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
81 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
82 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
83 .topbar { |
638
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
84 padding-top: $offset; |
c2f040dba57f
feat: collapsible layer selection
Thomas Junk <thomas.junk@intevation.de>
parents:
632
diff
changeset
|
85 margin-right: $offset; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
86 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
87 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
88 .logout { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
89 font-size: x-large; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
90 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
91 </style> |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
92 |
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 <script> |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
95 import debounce from "lodash.debounce"; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
96 |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
97 import { displayError } from "../application/lib/errors.js"; |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
98 import { HTTP } from "../application/lib/http"; |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
99 import Identify from "../layers/Identify"; |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
100 import Layers from "../layers/Layers"; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
101 |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
102 export default { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
103 name: "topbar", |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
104 components: { |
770
c12ec7fde3f2
client: add simple identify top area box
Bernhard Reiter <bernhard@intevation.de>
parents:
713
diff
changeset
|
105 Identify: Identify, |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
106 Layers: Layers |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
107 }, |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
108 data() { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
109 return { |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
110 searchbarCollapsed: true, |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
111 searchQuery: "", |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
112 searchQueryIsDirty: false, |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
113 searchResults: null, |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
114 isSearching: false |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
115 }; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
116 }, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
117 computed: { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
118 searchIndicator: function() { |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
119 if (this.isSearching) { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
120 return "⟳"; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
121 } else if (this.searchQueryIsDirty) { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
122 return ""; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
123 } else { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
124 return "✓"; |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
125 } |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
126 }, |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
127 searchbarContainerStyle() { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
128 return { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
129 "input-group": true, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
130 searchcontainer: true, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
131 "searchbar-collapsed": this.searchbarCollapsed, |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
132 "searchbar-expanded": !this.searchbarCollapsed |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
133 }; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
134 } |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
135 }, |
649
83081ba6c9c1
feat: Linetool added
Thomas Junk <thomas.junk@intevation.de>
parents:
638
diff
changeset
|
136 props: ["routeName"], |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
137 watch: { |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
138 searchQuery: function() { |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
139 this.searchQueryIsDirty = true; |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
140 this.triggerSearch(); |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
141 } |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
142 }, |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
143 methods: { |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
144 doSearch() { |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
145 this.isCalculating = true; |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
146 this.searchResults = null; |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
147 |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
148 if (this.searchQuery == "") { |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
149 return; |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
150 } |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
151 |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
152 HTTP.post( |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
153 "/search", |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
154 { string: this.searchQuery }, |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
155 { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
156 headers: { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
157 "X-Gemma-Auth": localStorage.getItem("token"), |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
158 "Content-type": "text/xml; charset=UTF-8" |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
159 } |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
160 } |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
161 ) |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
162 .then(response => { |
779
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
163 // console.log("got:", response.data); |
8ba1be486833
client: improve search
Bernhard Reiter <bernhard@intevation.de>
parents:
776
diff
changeset
|
164 this.searchResults = response.data; |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
165 }) |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
166 .catch(error => { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
167 const { status, data } = error.response; |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
168 displayError({ |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
169 title: "Backend Error", |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
170 message: `${status}: ${data.message || data}` |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
171 }); |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
172 }); |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
173 |
773
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
174 this.isCalculating = false; |
22c3acea700d
client: add to search processing
Bernhard Reiter <bernhard@intevation.de>
parents:
770
diff
changeset
|
175 this.searchQueryIsDirty = false; |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
176 }, |
668
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
177 toggleSearchbar() { |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
178 this.searchbarCollapsed = !this.searchbarCollapsed; |
3e2eeb215d0e
feat: searchbar collapsible
Thomas Junk <thomas.junk@intevation.de>
parents:
649
diff
changeset
|
179 }, |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
180 toggleSidebar() { |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
181 this.$store.commit("application/toggleSidebar"); |
593
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
182 }, |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
183 splitScreen() { |
c4a4dc612191
feat: Toggleable fairway profile
Thomas Junk <thomas.junk@intevation.de>
parents:
587
diff
changeset
|
184 this.$store.commit("application/toggleSplitScreen"); |
776
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
185 }, |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
186 triggerSearch: debounce(function() { |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
187 this.doSearch(); |
bb3558142b18
client: add backendrequest to search
Bernhard Reiter <bernhard@intevation.de>
parents:
773
diff
changeset
|
188 }, 500) |
585
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
189 } |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
190 }; |
ef307bd6b5d8
refac: restructured client application
Thomas Junk <thomas.junk@intevation.de>
parents:
diff
changeset
|
191 </script> |