diff --git a/src/components/Services.vue b/src/components/Services.vue index 7d7cb71..2a20e1d 100644 --- a/src/components/Services.vue +++ b/src/components/Services.vue @@ -12,18 +12,37 @@ hide-bottom > - + - + - + - + Restart - + Service Details - + {{ props.row.display_name }} - {{ props.row.start_type }} - {{ props.row.pid }} - {{ props.row.status }} - {{ props.row.username }} + {{ props.row.start_type }} + {{ props.row.pid }} + {{ props.row.status }} + {{ props.row.username }} @@ -83,7 +121,10 @@ Description: - {{ serviceData.Description }} + {{ serviceData.Description }} @@ -145,7 +186,10 @@ - + - + @@ -168,7 +217,8 @@ import mixins from "@/mixins/mixins"; export default { name: "Services", props: ["pk"], - data() { + mixins: [mixins], + data () { return { servicesData: [], serviceDetailsModal: false, @@ -228,7 +278,7 @@ export default { }; }, methods: { - changeStartupType(startuptype, name) { + changeStartupType (startuptype, name) { let changed; switch (startuptype) { case "Automatic (Delayed Start)": @@ -251,21 +301,24 @@ export default { sv_name: name, edit_action: changed }; + this.serviceDetailVisible = true; axios .post("/services/editservice/", data) .then(r => { + this.serviceDetailVisible = false; this.serviceDetailsModal = false; this.refreshServices(); this.notifySuccess(`Service ${name} was edited!`); }) .catch(err => { + this.serviceDetailVisible = false; this.notifyError(err.response.data.error); }); }, - startupTypeChanged() { + startupTypeChanged () { this.saveServiceDetailButton = false; }, - editService(name) { + editService (name) { this.saveServiceDetailButton = true; this.serviceDetailsModal = true; this.serviceDetailVisible = true; @@ -294,7 +347,7 @@ export default { this.notifyError(err.response.data.error); }); }, - serviceAction(name, action, fullname) { + serviceAction (name, action, fullname) { let msg, status; switch (action) { case "start": @@ -330,15 +383,15 @@ export default { this.notifyError(err.response.data.error); }); }, - async getServices() { + async getServices () { try { let r = await axios.get(`/services/${this.pk}/services/`); this.servicesData = [r.data][0].services; - } catch(e) { + } catch (e) { console.log(`ERROR!: ${e}`) } }, - refreshServices() { + refreshServices () { this.$q.loading.show({ message: "Reloading services..." }); axios .get(`/services/${this.pk}/refreshedservices/`) @@ -352,7 +405,7 @@ export default { }); } }, - created() { + created () { this.getServices(); } }; diff --git a/src/components/SummaryTab.vue b/src/components/SummaryTab.vue index 70025f6..54c73e3 100644 --- a/src/components/SummaryTab.vue +++ b/src/components/SummaryTab.vue @@ -14,13 +14,13 @@ - {{ makeModel }} + {{ summary.make_model }} - {{ cpuModel }} + {{ summary.cpu_model }} @@ -30,7 +30,10 @@ - + @@ -46,7 +49,7 @@ - LAN IP: {{ localIPs }} + LAN IP: {{ summary.local_ips }} @@ -54,7 +57,10 @@ Disks - + {{ disk.device }} ({{ disk.fstype }}) export default { name: "SummaryTab", - data() { + data () { return {}; }, methods: { - bytesToGB(bytes) { - return Math.round(parseInt(bytes) / 1073741824); - }, - validateIPv4(ip) { - const rx = /^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$/; - if (rx.test(ip)) { - return true; - } - return false; - } }, computed: { - summary() { + summary () { return this.$store.state.agentSummary; }, - disks() { + disks () { const entries = Object.entries(this.summary.disks); const ret = []; for (let [k, v] of entries) { ret.push(v); } return ret; - }, - makeModel() { - const comp_sys = this.summary.wmi_detail.comp_sys[0]; - const comp_sys_prod = this.summary.wmi_detail.comp_sys_prod[0]; - let make = comp_sys_prod.filter(k => k.Vendor).map(k => k.Vendor)[0]; - let model = comp_sys.filter(k => k.SystemFamily).map(k => k.SystemFamily)[0]; - - if (!model || !make) { - return comp_sys_prod.filter(k => k.Version).map(k => k.Version)[0]; - } else { - return `${make} ${model}`; - } - }, - physicalDisks() { - const ret = this.summary.wmi_detail.disk; - const phys = []; - ret.forEach(disk => { - const model = disk.filter(k => k.Caption).map(k => k.Caption)[0]; - const size = disk.filter(k => k.Size).map(k => k.Size)[0]; - const interfaceType = disk - .filter(k => k.InterfaceType) - .map(k => k.InterfaceType)[0]; - - phys.push({ - model: model, - size: this.bytesToGB(size), - interfaceType: interfaceType - }); - }); - - return phys; - }, - localIPs() { - const ret = this.summary.wmi_detail.network_config; - const ips = []; - ret.forEach(ip => { - const x = ip.filter(k => k.IPAddress).map(k => k.IPAddress)[0]; - if (x !== undefined) { - x.forEach(i => { - if (this.validateIPv4(i)) { - ips.push(i); - } - }); - } - }); - return (ips.length === 1 ? ips[0] : ips.join(", ")) - }, - cpuModel() { - const cpu = this.summary.wmi_detail.cpu[0]; - return cpu.filter(k => k.Name).map(k => k.Name)[0]; } } }; diff --git a/src/components/modals/agents/EditAgent.vue b/src/components/modals/agents/EditAgent.vue index 9870e7f..75ab1b7 100644 --- a/src/components/modals/agents/EditAgent.vue +++ b/src/components/modals/agents/EditAgent.vue @@ -1,10 +1,24 @@ - + - - - + + + @@ -12,9 +26,18 @@ Edit {{ agent.hostname }} - + - + Site: - + Type: @@ -95,8 +124,14 @@ /> - - + + @@ -282,8 +317,15 @@ - - + + @@ -299,7 +341,7 @@ import { scheduledTimes } from "@/mixins/data"; export default { name: "EditAgent", mixins: [mixins], - data() { + data () { return { agentLoaded: false, clientsLoaded: false, @@ -324,22 +366,21 @@ export default { }; }, methods: { - getAgentInfo() { + getAgentInfo () { axios.get(`/agents/${this.selectedAgentPk}/agentdetail/`).then(r => { this.agent = r.data; this.agentLoaded = true; }); }, - getClientsSites() { + getClientsSites () { axios.get("/clients/loadclients/").then(r => { this.tree = r.data; this.clientsLoaded = true; }); }, - editAgent() { + editAgent () { let data = this.agent; delete data.services; - delete data.wmi_detail; delete data.disks; delete data.local_ip; @@ -355,13 +396,13 @@ export default { }, computed: { ...mapGetters(["selectedAgentPk"]), - sites() { + sites () { if (this.agentLoaded && this.clientsLoaded) { return this.tree[this.agent.client]; } } }, - created() { + created () { this.getAgentInfo(); this.getClientsSites(); }