summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVitalii Lysak <v.lysak@dunice.net>2022-09-22 10:44:35 +0300
committerVitalii Lysak <v.lysak@dunice.net>2022-09-22 10:44:35 +0300
commitc2d624cace23e834238649ee1f96e71854d2bc63 (patch)
treeac4557e73b7fddb4cf322cdd195f270c9d08032e
parent3731ececbd603859fe83b49a2b19f33c2c3e43ec (diff)
downloadwebui-vue-c2d624cace23e834238649ee1f96e71854d2bc63.tar.xz
SILABMC-316: upd date and time by time zone
-rw-r--r--src/components/_sila/Mixins/TableFilterMixin.js12
-rw-r--r--src/main.js46
-rw-r--r--src/store/modules/GlobalStore.js11
-rw-r--r--src/utilities/_sila/convertTimeZone.js11
-rw-r--r--src/views/_sila/Overview/DateTime/DateTime.vue8
-rw-r--r--src/views/_sila/Overview/OverviewQuickLinks.vue4
-rw-r--r--src/views/_sila/ProfileSettings/ProfileSettings.vue2
7 files changed, 72 insertions, 22 deletions
diff --git a/src/components/_sila/Mixins/TableFilterMixin.js b/src/components/_sila/Mixins/TableFilterMixin.js
index 295ca7e5..3295bc34 100644
--- a/src/components/_sila/Mixins/TableFilterMixin.js
+++ b/src/components/_sila/Mixins/TableFilterMixin.js
@@ -31,17 +31,23 @@ const TableFilterMixin = {
let startDateInMs = startDate ? startDate.getTime() : 0;
let endDateInMs = endDate ? endDate.getTime() : Number.POSITIVE_INFINITY;
- const isUtcDisplay = this.$store.getters['global/isUtcDisplay'];
+ // const isUtcDisplay = this.$store.getters['global/isUtcDisplay'];
//Offset preference selected
- if (!isUtcDisplay) {
+ /*if (!isUtcDisplay) {
startDateInMs = startDate
? startDate.getTime() + startDate.getTimezoneOffset() * 60000
: 0;
endDateInMs = endDate
? endDate.getTime() + endDate.getTimezoneOffset() * 60000
: Number.POSITIVE_INFINITY;
- }
+ }*/
+ startDateInMs = startDate
+ ? startDate.getTime() + startDate.getTimezoneOffset() * 60000
+ : 0;
+ endDateInMs = endDate
+ ? endDate.getTime() + endDate.getTimezoneOffset() * 60000
+ : Number.POSITIVE_INFINITY;
return tableData.filter((row) => {
const date = row[propertyKey];
diff --git a/src/main.js b/src/main.js
index e00d8868..df8fd65e 100644
--- a/src/main.js
+++ b/src/main.js
@@ -40,11 +40,11 @@ import {
} from 'bootstrap-vue';
import Vuelidate from 'vuelidate';
import i18n from './i18n';
-import { format } from 'date-fns-tz';
import HighchartsVue from 'highcharts-vue';
import VueRandomColor from 'vue-randomcolor';
+import { getDateByTimeZone } from '@/utilities/_sila/convertTimeZone';
-Vue.filter('formatDate', function (value) {
+/*Vue.filter('formatDate', function (value) {
const isUtcDisplay = store.getters['global/isUtcDisplay'];
if (value instanceof Date && !isNaN(value)) {
@@ -55,9 +55,27 @@ Vue.filter('formatDate', function (value) {
const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
return format(value, pattern, { timezone });
}
+});*/
+
+Vue.filter('formatDate', function (value) {
+ let timeZone = store.getters['global/timeZone'].split(' ')[1];
+ let bmcDate = getDateByTimeZone(value, timeZone);
+
+ if (!bmcDate) {
+ return;
+ }
+
+ let year = bmcDate.getFullYear();
+ let month = bmcDate.getMonth() + 1;
+ let day = bmcDate.getDate();
+ if (month < 10) {
+ month = '0' + month;
+ }
+
+ return `${year}-${month}-${day}`;
});
-Vue.filter('formatTime', function (value) {
+/*Vue.filter('formatTime', function (value) {
const isUtcDisplay = store.getters['global/isUtcDisplay'];
if (value instanceof Date) {
@@ -72,6 +90,28 @@ Vue.filter('formatTime', function (value) {
const pattern = `HH:mm:ss O`;
return format(value, pattern, { timezone }).replace('GMT', 'UTC');
}
+});*/
+
+Vue.filter('formatTime', function (value) {
+ let utcOffset = store.getters['global/timeZone'].split(' ')[0];
+ let timeZone = store.getters['global/timeZone'].split(' ')[1];
+ let bmcDate = getDateByTimeZone(value, timeZone);
+
+ if (!bmcDate) {
+ return;
+ }
+
+ let hours = bmcDate.getHours();
+ let minutes = bmcDate.getMinutes();
+ let sec = bmcDate.getSeconds();
+ if (minutes < 10) {
+ minutes = '0' + minutes;
+ }
+ if (sec < 10) {
+ sec = '0' + sec;
+ }
+
+ return `${hours}:${minutes}:${sec} ${utcOffset}`;
});
Vue.filter('truncate', function (text, length, suffix) {
diff --git a/src/store/modules/GlobalStore.js b/src/store/modules/GlobalStore.js
index 14c10b7c..3dcbe040 100644
--- a/src/store/modules/GlobalStore.js
+++ b/src/store/modules/GlobalStore.js
@@ -1,4 +1,5 @@
import api from '@/store/api';
+import { getDateByTimeZone } from '@/utilities/_sila/convertTimeZone';
const HOST_STATE = {
on: 'xyz.openbmc_project.State.Host.HostState.Running',
@@ -7,14 +8,6 @@ const HOST_STATE = {
diagnosticMode: 'xyz.openbmc_project.State.Host.HostState.DiagnosticMode',
};
-const convertTZ = (date, tzString) => {
- return new Date(
- (typeof date === 'string' ? new Date(date) : date).toLocaleString('en-US', {
- timeZone: tzString,
- })
- );
-};
-
const serverStateMapper = (hostState) => {
switch (hostState) {
case HOST_STATE.on:
@@ -146,7 +139,7 @@ const GlobalStore = {
const bmcDateTime = response.data.DateTime;
const date = new Date(bmcDateTime);
const timeZone = getters.timeZone.split(' ')[1];
- commit('setBmcTime', convertTZ(date, timeZone));
+ commit('setBmcTime', getDateByTimeZone(date, timeZone));
dispatch('initLiveClock');
})
.catch((error) => console.log(error));
diff --git a/src/utilities/_sila/convertTimeZone.js b/src/utilities/_sila/convertTimeZone.js
new file mode 100644
index 00000000..67a1d106
--- /dev/null
+++ b/src/utilities/_sila/convertTimeZone.js
@@ -0,0 +1,11 @@
+export function getDateByTimeZone(date, tzString) {
+ if (!date || !tzString) {
+ return;
+ }
+
+ return new Date(
+ (typeof date === 'string' ? new Date(date) : date).toLocaleString('en-US', {
+ timeZone: tzString,
+ })
+ );
+}
diff --git a/src/views/_sila/Overview/DateTime/DateTime.vue b/src/views/_sila/Overview/DateTime/DateTime.vue
index 5d985ebe..8cb27fc8 100644
--- a/src/views/_sila/Overview/DateTime/DateTime.vue
+++ b/src/views/_sila/Overview/DateTime/DateTime.vue
@@ -348,15 +348,15 @@ export default {
manualOptionSelected() {
return this.form.configurationSelected === 'manual';
},
- isUtcDisplay() {
+ /*isUtcDisplay() {
return this.$store.getters['global/isUtcDisplay'];
- },
- timezone() {
+ },*/
+ /*timezone() {
if (this.isUtcDisplay) {
return 'UTC';
}
return this.localOffset();
- },
+ },*/
},
watch: {
ntpServers() {
diff --git a/src/views/_sila/Overview/OverviewQuickLinks.vue b/src/views/_sila/Overview/OverviewQuickLinks.vue
index e7b6b03e..9c4afab6 100644
--- a/src/views/_sila/Overview/OverviewQuickLinks.vue
+++ b/src/views/_sila/Overview/OverviewQuickLinks.vue
@@ -64,9 +64,9 @@ export default {
timezone() {
return this.localOffset();
},
- isUtcDisplay() {
+ /*isUtcDisplay() {
return this.$store.getters['global/isUtcDisplay'];
- },
+ },*/
},
created() {
Promise.all([this.$store.dispatch('global/getBmcTime')]).finally(() => {
diff --git a/src/views/_sila/ProfileSettings/ProfileSettings.vue b/src/views/_sila/ProfileSettings/ProfileSettings.vue
index 95636299..06057bb1 100644
--- a/src/views/_sila/ProfileSettings/ProfileSettings.vue
+++ b/src/views/_sila/ProfileSettings/ProfileSettings.vue
@@ -151,7 +151,7 @@ export default {
form: {
newPassword: '',
confirmPassword: '',
- isUtcDisplay: this.$store.getters['global/isUtcDisplay'],
+ // isUtcDisplay: this.$store.getters['global/isUtcDisplay'],
},
};
},