diff --git a/src/App.vue b/src/App.vue
index a48c866..951da22 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -81,6 +81,14 @@
case 'COUNTERS_UPDATE': {
break; //TODO implement
}
+ case 'ENABLE_PATTERN': {
+ this.$refs.navbar.$refs.patternsDropdown.togglePatternFromWs(parsed.value, true);
+ break;
+ }
+ case 'DISABLE_PATTERN': {
+ this.$refs.navbar.$refs.patternsDropdown.togglePatternFromWs(parsed.value, false);
+ break;
+ }
default: {
console.error('[WS] Event is not implemented!', parsed);
break;
diff --git a/src/components/PatternsDropdown.vue b/src/components/PatternsDropdown.vue
index 3c818fc..af415f4 100644
--- a/src/components/PatternsDropdown.vue
+++ b/src/components/PatternsDropdown.vue
@@ -9,16 +9,21 @@
- {{ pattern.name }}:
+ {{ pattern.name }}
+ {{ pattern.name }}:
{{ getSearchTypeValue(pattern.searchType, pattern.value) }};
search
anywhere
in request
in response
-
@@ -63,19 +68,24 @@
query: {pattern: patternId,},
});
},
- deletePattern(patternId) {
- console.debug('Deleting pattern w/ id', patternId);
- this.$http.delete(`pattern/${patternId}`)
+ togglePattern(pattern) {
+ const enabled = !pattern.enabled;
+ console.debug('Toggling pattern', pattern);
+ this.$http.post(`pattern/${pattern.id}/`, null, {
+ params: {
+ enabled,
+ },
+ })
.then(response => {
const data = response.data;
- console.debug('Done deleting pattern', data);
+ console.debug('Done toggling pattern', data);
this.$emit('patternAddComplete');
}).catch(e => {
- this.$bvToast.toast(`Failed to delete pattern: ${e}`, {
+ this.$bvToast.toast(`Failed to toggle pattern: ${e}`, {
title: 'Error',
variant: 'danger',
});
- console.error('Failed to delete pattern', e);
+ console.error('Failed to toggle pattern', e);
});
},
@@ -86,6 +96,14 @@
deletePatternFromWs(id) {
this.$store.commit('setPatterns', this.$store.state.patterns.filter(o => o.id !== id));
},
+
+ togglePatternFromWs(id, enabled) {
+ this.$store.state.patterns.forEach(pattern => {
+ if (pattern.id === id) {
+ pattern.enabled = enabled;
+ }
+ });
+ },
},
};