allow changing of refresh interval for task manager

This commit is contained in:
wh1te909 2020-11-26 01:54:20 +00:00
parent 6fca60261e
commit 9c9a46499a
1 changed files with 36 additions and 1 deletions

View File

@ -15,6 +15,25 @@
<template v-slot:top> <template v-slot:top>
<q-btn v-if="poll" dense flat push @click="stopPoll" icon="stop" label="Stop Live Refresh" /> <q-btn v-if="poll" dense flat push @click="stopPoll" icon="stop" label="Stop Live Refresh" />
<q-btn v-else dense flat push @click="startPoll" icon="play_arrow" label="Resume Live Refresh" /> <q-btn v-else dense flat push @click="startPoll" icon="play_arrow" label="Resume Live Refresh" />
<q-space />
<div class="q-pa-md q-gutter-sm">
<q-btn dense push icon="add" color="primary" @click="intervalChanged('add')" />
<q-btn
:disable="pollInterval === 1"
dense
@click="intervalChanged('subtract')"
push
icon="remove"
color="negative"
/>
</div>
<div class="text-overline">
<q-badge align="middle" class="text-h6" color="blue" :label="pollInterval" />
Refresh interval (seconds)
</div>
<q-space /> <q-space />
<q-input v-model="filter" outlined label="Search" dense clearable> <q-input v-model="filter" outlined label="Search" dense clearable>
<template v-slot:prepend> <template v-slot:prepend>
@ -58,6 +77,7 @@ export default {
data() { data() {
return { return {
polling: null, polling: null,
pollInterval: 2,
mem: null, mem: null,
poll: true, poll: true,
procs: [], procs: [],
@ -81,6 +101,7 @@ export default {
field: "cpu_percent", field: "cpu_percent",
align: "left", align: "left",
sortable: true, sortable: true,
sort: (a, b, rowA, rowB) => parseInt(b) < parseInt(a),
}, },
{ {
name: "memory_percent", name: "memory_percent",
@ -134,7 +155,7 @@ export default {
.get(`/agents/${this.pk}/getprocs/`) .get(`/agents/${this.pk}/getprocs/`)
.then(r => (this.procs = r.data)) .then(r => (this.procs = r.data))
.catch(() => console.log("Unable to contact the agent")); .catch(() => console.log("Unable to contact the agent"));
}, 2 * 1000); }, this.pollInterval * 1000);
}, },
killProc(pid, name) { killProc(pid, name) {
this.$q.loading.show({ message: `Attempting to kill process ${name}` }); this.$q.loading.show({ message: `Attempting to kill process ${name}` });
@ -153,6 +174,20 @@ export default {
this.poll = false; this.poll = false;
clearInterval(this.polling); clearInterval(this.polling);
}, },
intervalChanged(action) {
if (action === "subtract" && this.pollInterval <= 1) {
this.stopPoll();
this.startPoll();
return;
}
if (action === "add") {
this.pollInterval++;
} else {
this.pollInterval--;
}
this.stopPoll();
this.startPoll();
},
startPoll() { startPoll() {
this.poll = true; this.poll = true;
this.$axios.get(`/agents/${this.pk}/getprocs/`).then(r => (this.procs = r.data)); this.$axios.get(`/agents/${this.pk}/getprocs/`).then(r => (this.procs = r.data));