mirror of
https://github.com/Av0idD4rk/packmate.git
synced 2026-10-25 09:09:25 +00:00
Рефакторинг
This commit is contained in:
parent
c3f8cb0091
commit
be26ea5bce
41
src/App.vue
41
src/App.vue
@ -1,6 +1,6 @@
|
|||||||
<template>
|
<template>
|
||||||
<div id="app">
|
<div id="app">
|
||||||
<Navbar ref="navbar"/>
|
<Navbar/>
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<transition name="fade" mode="out-in">
|
<transition name="fade" mode="out-in">
|
||||||
@ -90,19 +90,19 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'SAVE_SERVICE': {
|
case 'SAVE_SERVICE': {
|
||||||
this.$refs.navbar.addServiceFromWs(parsed.value);
|
this.addServiceFromWs(parsed.value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'DELETE_SERVICE': {
|
case 'DELETE_SERVICE': {
|
||||||
this.$refs.navbar.deleteServiceFromWs(parsed.value);
|
this.deleteServiceFromWs(parsed.value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'SAVE_PATTERN': {
|
case 'SAVE_PATTERN': {
|
||||||
this.$refs.navbar.$refs.patternsDropdown.addPatternFromWs(parsed.value);
|
this.addPatternFromWs(parsed.value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'DELETE_PATTERN': {
|
case 'DELETE_PATTERN': {
|
||||||
this.$refs.navbar.$refs.patternsDropdown.deletePatternFromWs(parsed.value);
|
this.deletePatternFromWs(parsed.value);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'COUNTERS_UPDATE': {
|
case 'COUNTERS_UPDATE': {
|
||||||
@ -123,11 +123,11 @@
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'ENABLE_PATTERN': {
|
case 'ENABLE_PATTERN': {
|
||||||
this.$refs.navbar.$refs.patternsDropdown.togglePatternFromWs(parsed.value, true);
|
this.togglePatternFromWs(parsed.value, true);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'DISABLE_PATTERN': {
|
case 'DISABLE_PATTERN': {
|
||||||
this.$refs.navbar.$refs.patternsDropdown.togglePatternFromWs(parsed.value, false);
|
this.togglePatternFromWs(parsed.value, false);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'PCAP_STARTED': {
|
case 'PCAP_STARTED': {
|
||||||
@ -166,6 +166,33 @@
|
|||||||
this.websocket.onerror = (ev) => {
|
this.websocket.onerror = (ev) => {
|
||||||
console.warn('[WS] Error', ev);
|
console.warn('[WS] Error', ev);
|
||||||
};
|
};
|
||||||
|
},
|
||||||
|
addPatternFromWs(pattern) {
|
||||||
|
this.$store.commit('addPattern', pattern);
|
||||||
|
},
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
addServiceFromWs(service) {
|
||||||
|
const foundIndex = this.$store.state.services.findIndex(el => el.port === service.port);
|
||||||
|
if (foundIndex === -1) {
|
||||||
|
this.$store.commit('addService', service);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let newServices = this.$store.state.services.slice();
|
||||||
|
newServices.splice(foundIndex, 1, service);
|
||||||
|
this.$store.commit('setServices', newServices);
|
||||||
|
},
|
||||||
|
deleteServiceFromWs(port) {
|
||||||
|
this.$store.commit('setServices', this.$store.state.services.filter(o => o.port !== port));
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
|
|||||||
@ -7,7 +7,7 @@
|
|||||||
<li class="nav-item text-nowrap">
|
<li class="nav-item text-nowrap">
|
||||||
<router-link class="nav-link" to="/" exact>All</router-link>
|
<router-link class="nav-link" to="/" exact>All</router-link>
|
||||||
</li>
|
</li>
|
||||||
<template v-for="service in services">
|
<template v-for="service in this.$store.state.services">
|
||||||
<router-link :key="service.name" tag="li" class="nav-item text-nowrap edit-button"
|
<router-link :key="service.name" tag="li" class="nav-item text-nowrap edit-button"
|
||||||
:to="{name:'stream', params: {servicePort: service.port}, query: $route.query}">
|
:to="{name:'stream', params: {servicePort: service.port}, query: $route.query}">
|
||||||
<a class="nav-link">{{service.name}} #{{service.port}}</a>
|
<a class="nav-link">{{service.name}} #{{service.port}}</a>
|
||||||
@ -43,8 +43,6 @@
|
|||||||
name: 'Navbar',
|
name: 'Navbar',
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
services: Array(),
|
|
||||||
|
|
||||||
serviceModalIsCreating: true,
|
serviceModalIsCreating: true,
|
||||||
serviceModalEditingService: {},
|
serviceModalEditingService: {},
|
||||||
};
|
};
|
||||||
@ -73,7 +71,7 @@
|
|||||||
},
|
},
|
||||||
updateServices() {
|
updateServices() {
|
||||||
this.$http.get('service/')
|
this.$http.get('service/')
|
||||||
.then(r => this.services = r.data)
|
.then(r => this.$store.commit('setServices', r.data))
|
||||||
.catch(e => {
|
.catch(e => {
|
||||||
this.$bvToast.toast(`Failed to load services: ${e}`, {
|
this.$bvToast.toast(`Failed to load services: ${e}`, {
|
||||||
title: 'Error',
|
title: 'Error',
|
||||||
@ -82,17 +80,6 @@
|
|||||||
console.error('Failed to load services:', e);
|
console.error('Failed to load services:', e);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
addServiceFromWs(service) {
|
|
||||||
const foundIndex = this.services.findIndex(el => el.port === service.port);
|
|
||||||
if (foundIndex === -1) {
|
|
||||||
this.services.push(service);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.services.splice(foundIndex, 1, service);
|
|
||||||
},
|
|
||||||
deleteServiceFromWs(port) {
|
|
||||||
this.services = this.services.filter(o => o.port !== port);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
ServiceModal,
|
ServiceModal,
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
<b-dropdown no-flip text="Patterns" block variant="dark" class="col-sm-2 mr-0 p-0">
|
<b-dropdown no-flip text="Patterns" block variant="dark" class="col-sm-2 mr-0 p-0">
|
||||||
<li role="presentation" style="padding-left: 0.5em; padding-right: 0.5em;">
|
<li role="presentation" style="padding-left: 0.5em; padding-right: 0.5em;">
|
||||||
<button role="menuitem" type="button" class="btn btn-sm btn-primary btn-block"
|
<button role="menuitem" type="button" class="btn btn-sm btn-primary btn-block"
|
||||||
@click.stop.prevent="showAddService">
|
@click.stop.prevent="showAddPattern">
|
||||||
<i class="fas fa-plus"/>
|
<i class="fas fa-plus"/>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
@ -66,7 +66,7 @@
|
|||||||
return `color: inherit;`;
|
return `color: inherit;`;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
showAddService() {
|
showAddPattern() {
|
||||||
this.$bvModal.show('addPatternModal');
|
this.$bvModal.show('addPatternModal');
|
||||||
},
|
},
|
||||||
showLookBack(pattern) {
|
showLookBack(pattern) {
|
||||||
@ -124,19 +124,6 @@
|
|||||||
console.error('Failed to toggle pattern', e);
|
console.error('Failed to toggle pattern', e);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
addPatternFromWs(pattern) {
|
|
||||||
this.$store.commit('addPattern', pattern);
|
|
||||||
},
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@ -21,6 +21,7 @@ export default new Vuex.Store({
|
|||||||
serviceModalId: 0,
|
serviceModalId: 0,
|
||||||
|
|
||||||
patterns: [],
|
patterns: [],
|
||||||
|
services: [],
|
||||||
},
|
},
|
||||||
mutations: {
|
mutations: {
|
||||||
setHexdumpBlockSize: (s, p) => s.hexdumpBlockSize = p,
|
setHexdumpBlockSize: (s, p) => s.hexdumpBlockSize = p,
|
||||||
@ -40,6 +41,9 @@ export default new Vuex.Store({
|
|||||||
|
|
||||||
setPatterns: (s, p) => s.patterns = p,
|
setPatterns: (s, p) => s.patterns = p,
|
||||||
addPattern: (s, p) => s.patterns.push(p),
|
addPattern: (s, p) => s.patterns.push(p),
|
||||||
|
|
||||||
|
setServices: (s, p) => s.services = p,
|
||||||
|
addService: (s, p) => s.services.push(p),
|
||||||
},
|
},
|
||||||
actions: {},
|
actions: {},
|
||||||
plugins: [
|
plugins: [
|
||||||
@ -56,7 +60,9 @@ export default new Vuex.Store({
|
|||||||
&& mName !== 'startPcap'
|
&& mName !== 'startPcap'
|
||||||
&& mName !== 'toggleHexdumpMode'
|
&& mName !== 'toggleHexdumpMode'
|
||||||
&& mName !== 'setPatterns'
|
&& mName !== 'setPatterns'
|
||||||
&& mName !== 'addPattern';
|
&& mName !== 'addPattern'
|
||||||
|
&& mName !== 'setServices'
|
||||||
|
&& mName !== 'addService';
|
||||||
console.debug('Processing?', process);
|
console.debug('Processing?', process);
|
||||||
return process;
|
return process;
|
||||||
},
|
},
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user