diff options
author | Vitalii Lysak <v.lysak@dunice.net> | 2022-08-26 14:50:55 +0300 |
---|---|---|
committer | Vitalii Lysak <v.lysak@dunice.net> | 2022-08-26 14:50:55 +0300 |
commit | 5463c8aec08dfa07a01f95646e44a3b4bee070fe (patch) | |
tree | dc862824cffa5284db6c57308b0445071fbd2c5e /src/views/_sila/Processors | |
parent | 81e43ed3e15e2857faafc56edaf15ea1e1f63ec0 (diff) | |
download | webui-vue-5463c8aec08dfa07a01f95646e44a3b4bee070fe.tar.xz |
optimization for dynamic
Diffstat (limited to 'src/views/_sila/Processors')
-rw-r--r-- | src/views/_sila/Processors/Dynamic/CpuPower.vue | 19 | ||||
-rw-r--r-- | src/views/_sila/Processors/Dynamic/CpuTemp.vue | 14 | ||||
-rw-r--r-- | src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue | 24 |
3 files changed, 47 insertions, 10 deletions
diff --git a/src/views/_sila/Processors/Dynamic/CpuPower.vue b/src/views/_sila/Processors/Dynamic/CpuPower.vue index fe359456..693c161d 100644 --- a/src/views/_sila/Processors/Dynamic/CpuPower.vue +++ b/src/views/_sila/Processors/Dynamic/CpuPower.vue @@ -1,7 +1,9 @@ <template> <collapse id="collapse_power" + :class="{ disabledDiv: loading && opened }" :title="$t('pageProcessors.power')" + :opened="true" @opened="onOpened" > <template #image> @@ -81,7 +83,9 @@ import Chart from '@/components/_sila/Global/Chart'; import PageSection from '@/components/Global/PageSection'; import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin'; -import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin'; +import LoadingBarMixin, { + loading, +} from '@/components/_sila/Mixins/LoadingBarMixin'; import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin'; import Collapse from '@/components/_sila/Global/Collapse'; @@ -98,9 +102,11 @@ export default { }, data() { return { + loading, warning: 66, shutdown: 88, isBusy: true, + opened: false, fields: [ { key: 'name', @@ -140,17 +146,20 @@ export default { }, watch: { timeScale() { + if (!this.opened) { + return; + } + this.loadData(); }, }, - created() { - this.loadData(); - }, + methods: { onOpened(state) { if (state) { this.loadData(); } + this.opened = state; }, loadData() { @@ -159,10 +168,12 @@ export default { payload = { lastHour: true }; } + this.$root.$emit('cpu-power', true); this.startLoader(); this.$store .dispatch('processors/getCpuPowerDynamic', payload) .finally(() => { + this.$root.$emit('cpu-power', false); this.endLoader(); this.isBusy = false; }); diff --git a/src/views/_sila/Processors/Dynamic/CpuTemp.vue b/src/views/_sila/Processors/Dynamic/CpuTemp.vue index f4e9a49f..f33b328a 100644 --- a/src/views/_sila/Processors/Dynamic/CpuTemp.vue +++ b/src/views/_sila/Processors/Dynamic/CpuTemp.vue @@ -1,7 +1,9 @@ <template> <collapse id="collapse_temp" + :class="{ disabledDiv: loading && opened }" :title="$t('pageProcessors.temperature')" + :opened="true" @opened="onOpened" > <template #image> @@ -147,6 +149,7 @@ export default { warning: null, critical: null, isBusy: true, + opened: false, fields: [ { key: 'name', @@ -251,12 +254,14 @@ export default { watch: { timeScale() { + if (!this.opened) { + return; + } + this.loadData(); }, }, - created() { - this.loadData(); - }, + methods: { saveLimit() { this.$v.$touch(); @@ -276,6 +281,7 @@ export default { if (state) { this.loadData(); } + this.opened = state; }, loadData() { @@ -284,6 +290,7 @@ export default { payload = { lastHour: true }; } + this.$root.$emit('cpu-temp', true); this.startLoader(); this.$store .dispatch('processors/getCpuTempDynamic', payload) @@ -291,6 +298,7 @@ export default { this.$store.dispatch('processors/getLimitsTemp').finally(() => { this.warning = this.warningLimit; this.critical = this.criticalLimit; + this.$root.$emit('cpu-temp', false); this.endLoader(); this.isBusy = false; }); diff --git a/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue b/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue index ff9feb2e..e92ee8fb 100644 --- a/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue +++ b/src/views/_sila/Processors/Dynamic/ProcessorsDynamicPage.vue @@ -1,7 +1,11 @@ <template> <b-container fluid="xl"> <page-title :description="$t('appPageTitle.dynamicInformation')" /> - <table-date-picker :time-scale="timeScale" @changePeriod="onChangePeriod" /> + <table-date-picker + :class="{ disabledDiv: loading }" + :time-scale="timeScale" + @changePeriod="onChangePeriod" + /> <cpu-temp :time-scale="timeScale"></cpu-temp> <cpu-power :time-scale="timeScale"></cpu-power> </b-container> @@ -11,7 +15,9 @@ import PageTitle from '@/components/_sila/Global/PageTitle'; import DataFormatterMixin from '@/components/_sila/Mixins/DataFormatterMixin'; import TableDatePicker from '@/components/_sila/Global/TableDatePicker'; -import LoadingBarMixin from '@/components/_sila/Mixins/LoadingBarMixin'; +import LoadingBarMixin, { + loading, +} from '@/components/_sila/Mixins/LoadingBarMixin'; import TableFilterMixin from '@/components/_sila/Mixins/TableFilterMixin'; import CpuPower from './CpuPower'; @@ -27,10 +33,13 @@ export default { mixins: [DataFormatterMixin, LoadingBarMixin, TableFilterMixin], data() { return { + loading, timeScale: 'hour', }; }, - + created() { + this.startProgress(); + }, methods: { resetZoom() { const resetButton = document.querySelector('.highcharts-reset-zoom'); @@ -42,8 +51,17 @@ export default { }, onChangePeriod(period) { this.timeScale = period; + this.startProgress(); this.resetZoom(); }, + startProgress() { + this.startLoader(); + this.$root.$on('cpu-temp', (loading) => this.onLoading(loading)); + this.$root.$on('cpu-power', (loading) => this.onLoading(loading)); + }, + onLoading(loading) { + loading ? this.startLoader() : this.endLoader(); + }, }, }; </script> |