diff options
author | Vitalii Lysak <v.lysak@dunice.net> | 2022-07-15 11:21:31 +0300 |
---|---|---|
committer | Vitalii Lysak <v.lysak@dunice.net> | 2022-07-15 11:21:31 +0300 |
commit | 320ee47927752c8e029b0e32bbcf69bfafb4d2f3 (patch) | |
tree | 3d0d077d7e19b6509a5396f9ef062fad9c1ae329 /src | |
parent | 230a2682abc6d4838c0ad2838d4d7d6ffd87d277 (diff) | |
download | webui-vue-320ee47927752c8e029b0e32bbcf69bfafb4d2f3.tar.xz |
add navigate from notification
Diffstat (limited to 'src')
-rw-r--r-- | src/components/AppHeader/AppHeader.vue | 6 | ||||
-rw-r--r-- | src/components/Global/Search.vue | 32 |
2 files changed, 37 insertions, 1 deletions
diff --git a/src/components/AppHeader/AppHeader.vue b/src/components/AppHeader/AppHeader.vue index d4f3a2e9..45318120 100644 --- a/src/components/AppHeader/AppHeader.vue +++ b/src/components/AppHeader/AppHeader.vue @@ -143,6 +143,7 @@ <b-dropdown-item v-for="(log, index) in logs('Critical')" :key="index" + :to="logsPage(log.id)" > <img class="status-icon" @@ -171,6 +172,7 @@ <b-dropdown-item v-for="(log, index) in logs('Warning')" :key="index" + :to="logsPage(log.id)" > <img class="status-icon" @@ -199,6 +201,7 @@ <b-dropdown-item v-for="(log, index) in logs('OK')" :key="index" + :to="logsPage(log.id)" > <img class="status-icon" @@ -358,6 +361,9 @@ export default { ); }, methods: { + logsPage(id) { + return `/logs/event-logs?search=${id}`; + }, logs(type) { let logs = this.$store.getters['eventLog/allEvents'].filter((log) => { return log.severity === type; diff --git a/src/components/Global/Search.vue b/src/components/Global/Search.vue index ce097fcb..3ae48c58 100644 --- a/src/components/Global/Search.vue +++ b/src/components/Global/Search.vue @@ -4,7 +4,7 @@ :label="$t('global.form.search')" :label-for="`searchInput-${_uid}`" label-class="invisible" - class="mb-2" + class="mb-2" >--> <b-form-group> <b-input-group size="md" class="align-items-center"> @@ -57,12 +57,42 @@ export default { filter: null, }; }, + computed: { + params() { + const hash = window.location.hash; + + if (!hash || hash.indexOf('?') === -1) { + return; + } + + const paramsString = window.location.hash.split('?')[1]; + return new URLSearchParams(paramsString); + }, + }, + created() { + this.search(); + }, methods: { + removeSearchParam() { + window.location.href = '/#/logs/event-logs'; + }, + search() { + if (!this.params) { + return; + } + + let search = this.params.get('search'); + if (search) { + this.filter = search; + this.onChangeInput(); + } + }, onChangeInput() { this.$emit('change-search', this.filter); }, onClearSearch() { this.filter = ''; + this.removeSearchParam(); this.$emit('clear-search'); this.$refs.searchInput.focus(); }, |