diff --git a/src/App.vue b/src/App.vue
index 8644f51..f819f22 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -121,6 +121,14 @@
});
break;
}
+ 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 dd0cda8..e3dc587 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;
+ }
+ });
+ },
},
};