summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorVitalii Lysak <v.lysak@dunice.net>2022-07-15 11:21:31 +0300
committerVitalii Lysak <v.lysak@dunice.net>2022-07-15 11:21:31 +0300
commit320ee47927752c8e029b0e32bbcf69bfafb4d2f3 (patch)
tree3d0d077d7e19b6509a5396f9ef062fad9c1ae329 /src
parent230a2682abc6d4838c0ad2838d4d7d6ffd87d277 (diff)
downloadwebui-vue-320ee47927752c8e029b0e32bbcf69bfafb4d2f3.tar.xz
add navigate from notification
Diffstat (limited to 'src')
-rw-r--r--src/components/AppHeader/AppHeader.vue6
-rw-r--r--src/components/Global/Search.vue32
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();
},