summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/App.vue10
-rw-r--r--src/assets/styles/bmc/custom/_buttons.scss4
-rw-r--r--src/assets/styles/bmc/custom/_dropdown.scss4
-rw-r--r--src/assets/styles/bmc/custom/_tables.scss4
-rw-r--r--src/components/AppHeader/AppHeader.vue10
-rw-r--r--src/components/AppNavigation/AppNavigation.vue11
-rw-r--r--src/components/Global/ButtonBackToTop.vue3
-rw-r--r--src/components/Global/FormFile.vue3
-rw-r--r--src/components/Global/InfoTooltip.vue3
-rw-r--r--src/components/Global/InputPasswordToggle.vue3
-rw-r--r--src/components/Global/LoadingBar.vue3
-rw-r--r--src/components/Global/PageContainer.vue4
-rw-r--r--src/components/Global/PageSection.vue3
-rw-r--r--src/components/Global/PageTitle.vue9
-rw-r--r--src/components/Global/Search.vue3
-rw-r--r--src/components/Global/StatusIcon.vue3
-rw-r--r--src/components/Global/TableDateFilter.vue9
-rw-r--r--src/components/Global/TableFilter.vue5
-rw-r--r--src/components/Global/TableToolbar.vue7
-rw-r--r--src/components/Mixins/BVPaginationMixin.js5
-rw-r--r--src/components/Mixins/TableRowExpandMixin.js6
-rw-r--r--src/env/assets/styles/_default.scss1
-rw-r--r--src/eventBus.js4
-rw-r--r--src/i18n.js29
-rw-r--r--src/layouts/AppLayout.vue3
-rw-r--r--src/layouts/LoginLayout.vue7
-rw-r--r--src/main.js103
-rw-r--r--src/router/routes.js60
-rw-r--r--src/store/api.js2
-rw-r--r--src/store/index.js4
-rw-r--r--src/views/ChangePassword/ChangePassword.vue13
-rw-r--r--src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue8
-rw-r--r--src/views/Login/Login.vue25
-rw-r--r--src/views/Logs/Dumps/Dumps.vue4
-rw-r--r--src/views/Logs/Dumps/DumpsForm.vue8
-rw-r--r--src/views/Logs/Dumps/DumpsModalConfirmation.vue6
-rw-r--r--src/views/Logs/EventLogs/EventLogs.vue8
-rw-r--r--src/views/Logs/PostCodeLogs/PostCodeLogs.vue4
-rw-r--r--src/views/Operations/FactoryReset/FactoryReset.vue2
-rw-r--r--src/views/Operations/Firmware/FirmwareCardsHost.vue5
-rw-r--r--src/views/Operations/Firmware/FirmwareFormUpdate.vue6
-rw-r--r--src/views/Operations/Kvm/KvmConsole.vue7
-rw-r--r--src/views/Operations/RebootBmc/RebootBmc.vue9
-rw-r--r--src/views/Operations/SerialOverLan/SerialOverLanConsole.vue5
-rw-r--r--src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue4
-rw-r--r--src/views/Operations/VirtualMedia/ModalConfigureConnection.vue8
-rw-r--r--src/views/Overview/OverviewCard.vue3
-rw-r--r--src/views/Overview/OverviewEvents.vue3
-rw-r--r--src/views/Overview/OverviewQuickLinks.vue5
-rw-r--r--src/views/ProfileSettings/ProfileSettings.vue8
-rw-r--r--src/views/ResourceManagement/Power.vue9
-rw-r--r--src/views/SecurityAndAccess/Certificates/Certificates.vue4
-rw-r--r--src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js6
-rw-r--r--src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue8
-rw-r--r--src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue8
-rw-r--r--src/views/SecurityAndAccess/Ldap/Ldap.vue12
-rw-r--r--src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue8
-rw-r--r--src/views/SecurityAndAccess/Policies/Policies.vue3
-rw-r--r--src/views/SecurityAndAccess/UserManagement/ModalSettings.vue9
-rw-r--r--src/views/SecurityAndAccess/UserManagement/ModalUser.vue10
-rw-r--r--src/views/SecurityAndAccess/UserManagement/UserManagement.vue3
-rw-r--r--src/views/Settings/DateTime/DateTime.vue12
-rw-r--r--src/views/Settings/Network/ModalDns.vue9
-rw-r--r--src/views/Settings/Network/ModalHostname.vue9
-rw-r--r--src/views/Settings/Network/ModalIpv4.vue9
-rw-r--r--src/views/Settings/Network/ModalMacAddress.vue9
-rw-r--r--src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue7
-rw-r--r--src/views/Settings/SnmpAlerts/ModalAddDestination.vue13
68 files changed, 435 insertions, 179 deletions
diff --git a/src/App.vue b/src/App.vue
index fc04b70b..35a743c7 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -9,7 +9,8 @@ export default {
name: 'App',
computed: {
assetTag() {
- return this.$store.getters['global/assetTag'];
+ return '';
+ //return this.$store.getters['global/assetTag'];
},
},
watch: {
@@ -25,12 +26,15 @@ export default {
}
},
},
+ getters: {},
created() {
- document.title = this.$route.meta.title || 'Page is missing title';
+ document.title = '';
+ //document.title = this.$route.meta.title || 'Page is missing title';
},
};
</script>
<style lang="scss">
-@import '@/assets/styles/_obmc-custom';
+//@import '@/assets/styles/_obmc-custom';
+//@import './assets/styles/bootstrap/_helpers.scss';
</style>
diff --git a/src/assets/styles/bmc/custom/_buttons.scss b/src/assets/styles/bmc/custom/_buttons.scss
index 2a7b8169..597766ce 100644
--- a/src/assets/styles/bmc/custom/_buttons.scss
+++ b/src/assets/styles/bmc/custom/_buttons.scss
@@ -1,3 +1,5 @@
+@import 'bootstrap/dist/css/bootstrap.css';
+
.btn {
padding-top: $spacer / 2;
padding-right: $spacer;
@@ -71,7 +73,7 @@
position: absolute;
right: 0;
top: 0;
- z-index: $zindex-dropdown + 1;
+ //z-index: $zindex-dropdown + 1;
}
// Contain input buttons within input
diff --git a/src/assets/styles/bmc/custom/_dropdown.scss b/src/assets/styles/bmc/custom/_dropdown.scss
index 969c4c68..56d2ace9 100644
--- a/src/assets/styles/bmc/custom/_dropdown.scss
+++ b/src/assets/styles/bmc/custom/_dropdown.scss
@@ -1,6 +1,8 @@
+@import 'bootstrap/dist/css/bootstrap.css';
+
// Make calendar visible over the table
.dropdown-menu {
- z-index: $zindex-dropdown + 1;
+ //z-index: $zindex-dropdown + 1;
padding: 0;
}
.dropdown-item {
diff --git a/src/assets/styles/bmc/custom/_tables.scss b/src/assets/styles/bmc/custom/_tables.scss
index e8b5a832..deeddc34 100644
--- a/src/assets/styles/bmc/custom/_tables.scss
+++ b/src/assets/styles/bmc/custom/_tables.scss
@@ -1,6 +1,8 @@
+@import 'bootstrap/dist/css/bootstrap.css'
+
.table {
position: relative;
- z-index: $zindex-dropdown;
+ //z-index: $zindex-dropdown;
td {
border-top: 1px solid gray("300");
diff --git a/src/components/AppHeader/AppHeader.vue b/src/components/AppHeader/AppHeader.vue
index 76c96c06..9d066807 100644
--- a/src/components/AppHeader/AppHeader.vue
+++ b/src/components/AppHeader/AppHeader.vue
@@ -246,6 +246,9 @@ export default {
</script>
<style lang="scss">
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
@mixin focus-box-shadow($padding-color: $navbar-color, $outline-color: $white) {
box-shadow:
inset 0 0 0 3px $padding-color,
@@ -256,11 +259,11 @@ export default {
position: absolute;
top: -60px;
left: 0.5rem;
- z-index: $zindex-popover;
- transition: $duration--moderate-01 $exit-easing--expressive;
+ //z-index: $zindex-popover;
+ //transition: $duration--moderate-01 $exit-easing--expressive;
&:focus {
top: 0.5rem;
- transition-timing-function: $entrance-easing--expressive;
+ //transition-timing-function: $entrance-easing--expressive;
}
}
.navbar-text,
@@ -289,6 +292,7 @@ export default {
.navbar {
padding: 0;
background-color: $navbar-color;
+
@include media-breakpoint-up($responsive-layout-bp) {
height: $header-height;
}
diff --git a/src/components/AppNavigation/AppNavigation.vue b/src/components/AppNavigation/AppNavigation.vue
index a5f81051..4c93be55 100644
--- a/src/components/AppNavigation/AppNavigation.vue
+++ b/src/components/AppNavigation/AppNavigation.vue
@@ -3,11 +3,11 @@
<div class="nav-container" :class="{ open: isNavigationOpen }">
<nav ref="nav" :aria-label="$t('appNavigation.primaryNavigation')">
<b-nav vertical class="mb-4">
- <template v-for="(navItem, index) in navigationItems">
+ <template v-for="navItem in navigationItems">
<!-- Navigation items with no children -->
<b-nav-item
v-if="!navItem.children"
- :key="index"
+ :key="navItem.index"
:to="navItem.route"
:data-test-id="`nav-item-${navItem.id}`"
>
@@ -16,7 +16,7 @@
</b-nav-item>
<!-- Navigation items with children -->
- <li v-else :key="index" class="nav-item">
+ <li v-else :key="navItem.index" class="nav-item">
<b-button
v-b-toggle="`${navItem.id}`"
variant="link"
@@ -101,7 +101,10 @@ export default {
};
</script>
-<style scoped lang="scss">
+<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
svg {
fill: currentColor;
height: 1.2rem;
diff --git a/src/components/Global/ButtonBackToTop.vue b/src/components/Global/ButtonBackToTop.vue
index 9160c7b7..3ceb6916 100644
--- a/src/components/Global/ButtonBackToTop.vue
+++ b/src/components/Global/ButtonBackToTop.vue
@@ -45,6 +45,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.btn-top {
position: fixed;
bottom: 24px;
diff --git a/src/components/Global/FormFile.vue b/src/components/Global/FormFile.vue
index 50ac9614..1eafa25f 100644
--- a/src/components/Global/FormFile.vue
+++ b/src/components/Global/FormFile.vue
@@ -82,6 +82,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.form-control-file {
opacity: 0;
height: 0;
diff --git a/src/components/Global/InfoTooltip.vue b/src/components/Global/InfoTooltip.vue
index c91109d1..0e5c3b5d 100644
--- a/src/components/Global/InfoTooltip.vue
+++ b/src/components/Global/InfoTooltip.vue
@@ -25,6 +25,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.btn-tooltip {
padding: 0;
line-height: 1em;
diff --git a/src/components/Global/InputPasswordToggle.vue b/src/components/Global/InputPasswordToggle.vue
index d2c0d4a6..cd869206 100644
--- a/src/components/Global/InputPasswordToggle.vue
+++ b/src/components/Global/InputPasswordToggle.vue
@@ -48,6 +48,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.input-password-toggle-container {
position: relative;
}
diff --git a/src/components/Global/LoadingBar.vue b/src/components/Global/LoadingBar.vue
index 0e9551b5..337aaf04 100644
--- a/src/components/Global/LoadingBar.vue
+++ b/src/components/Global/LoadingBar.vue
@@ -72,6 +72,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.progress {
position: absolute;
left: 0;
diff --git a/src/components/Global/PageContainer.vue b/src/components/Global/PageContainer.vue
index ab4adb63..0de5fe76 100644
--- a/src/components/Global/PageContainer.vue
+++ b/src/components/Global/PageContainer.vue
@@ -17,6 +17,10 @@ export default {
};
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
+@import 'bootstrap/dist/css/bootstrap.css';
main {
width: 100%;
height: 100%;
diff --git a/src/components/Global/PageSection.vue b/src/components/Global/PageSection.vue
index dd39ddd5..15aa383a 100644
--- a/src/components/Global/PageSection.vue
+++ b/src/components/Global/PageSection.vue
@@ -18,6 +18,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.page-section {
margin-bottom: $spacer * 4;
}
diff --git a/src/components/Global/PageTitle.vue b/src/components/Global/PageTitle.vue
index c3b49d80..ca7f6082 100644
--- a/src/components/Global/PageTitle.vue
+++ b/src/components/Global/PageTitle.vue
@@ -6,7 +6,7 @@
</template>
<script>
-import i18n from '@/i18n';
+//import i18n from '@/i18n';
export default {
name: 'PageTitle',
props: {
@@ -32,14 +32,17 @@ export default {
);
i++;
}
- this.title = i18n.t('appPageTitle.' + title);
- document.title = this.title;
+ //this.title = i18n.t('appPageTitle.' + title);
+ //document.title = this.title;
}
},
};
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.page-title {
margin-bottom: $spacer * 2;
}
diff --git a/src/components/Global/Search.vue b/src/components/Global/Search.vue
index ac8f9bfb..d53315b3 100644
--- a/src/components/Global/Search.vue
+++ b/src/components/Global/Search.vue
@@ -70,6 +70,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.search-input {
padding-left: ($spacer * 2);
}
diff --git a/src/components/Global/StatusIcon.vue b/src/components/Global/StatusIcon.vue
index 4552633e..6c1505e7 100644
--- a/src/components/Global/StatusIcon.vue
+++ b/src/components/Global/StatusIcon.vue
@@ -34,6 +34,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.status-icon {
vertical-align: text-bottom;
diff --git a/src/components/Global/TableDateFilter.vue b/src/components/Global/TableDateFilter.vue
index aa10cb5c..4e8c5b94 100644
--- a/src/components/Global/TableDateFilter.vue
+++ b/src/components/Global/TableDateFilter.vue
@@ -99,15 +99,20 @@
<script>
import IconCalendar from '@carbon/icons-vue/es/calendar/20';
-import { helpers } from 'vuelidate/lib/validators';
-
+import { helpers } from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
const isoDateRegex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/;
export default {
components: { IconCalendar },
mixins: [VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
fromDate: '',
diff --git a/src/components/Global/TableFilter.vue b/src/components/Global/TableFilter.vue
index f26777be..8c4f5094 100644
--- a/src/components/Global/TableFilter.vue
+++ b/src/components/Global/TableFilter.vue
@@ -109,6 +109,11 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
+@import 'bootstrap/dist/css/bootstrap.css';
+
.badge {
margin-right: $spacer / 2;
}
diff --git a/src/components/Global/TableToolbar.vue b/src/components/Global/TableToolbar.vue
index 5235feae..7c0f4906 100644
--- a/src/components/Global/TableToolbar.vue
+++ b/src/components/Global/TableToolbar.vue
@@ -69,12 +69,17 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
+@import 'bootstrap/dist/css/bootstrap.css';
+
$toolbar-height: 46px;
.toolbar-container {
width: 100%;
position: relative;
- z-index: $zindex-dropdown + 1;
+ //z-index: $zindex-dropdown + 1;
}
.toolbar-content {
diff --git a/src/components/Mixins/BVPaginationMixin.js b/src/components/Mixins/BVPaginationMixin.js
index 4ccf6f2c..0bdf3687 100644
--- a/src/components/Mixins/BVPaginationMixin.js
+++ b/src/components/Mixins/BVPaginationMixin.js
@@ -1,4 +1,4 @@
-import i18n from '@/i18n';
+//import i18n from '@/i18n';
export const currentPage = 1;
export const perPage = 20;
export const itemsPerPageOptions = [
@@ -20,7 +20,8 @@ export const itemsPerPageOptions = [
},
{
value: 0,
- text: i18n.t('global.table.viewAll'),
+ //text: i18n.$t('global.table.viewAll'),
+ text: 'global.table.viewAll',
},
];
const BVPaginationMixin = {
diff --git a/src/components/Mixins/TableRowExpandMixin.js b/src/components/Mixins/TableRowExpandMixin.js
index 7f815a46..92b2448d 100644
--- a/src/components/Mixins/TableRowExpandMixin.js
+++ b/src/components/Mixins/TableRowExpandMixin.js
@@ -1,5 +1,7 @@
-import i18n from '@/i18n';
-export const expandRowLabel = i18n.t('global.table.expandTableRow');
+//import i18n from '@/i18n';
+//export const expandRowLabel = i18n.$t('global.table.expandTableRow');
+
+export const expandRowLabel = 'expand row label TODO';
const TableRowExpandMixin = {
methods: {
diff --git a/src/env/assets/styles/_default.scss b/src/env/assets/styles/_default.scss
new file mode 100644
index 00000000..8d787286
--- /dev/null
+++ b/src/env/assets/styles/_default.scss
@@ -0,0 +1 @@
+// This file shall remain empty. \ No newline at end of file
diff --git a/src/eventBus.js b/src/eventBus.js
index c31c98a5..68c120f4 100644
--- a/src/eventBus.js
+++ b/src/eventBus.js
@@ -1,5 +1,5 @@
-import Vue from 'vue';
+import { createApp } from 'vue';
-const eventBus = new Vue();
+const eventBus = createApp();
export default eventBus;
diff --git a/src/i18n.js b/src/i18n.js
index c60573ca..8135a409 100644
--- a/src/i18n.js
+++ b/src/i18n.js
@@ -1,26 +1,17 @@
-import Vue from 'vue';
-import VueI18n from 'vue-i18n';
+import { createI18n } from 'vue-i18n';
-Vue.use(VueI18n);
+import en_us from './locales/en-US.json';
+import ru_ru from './locales/ru-RU.json';
function loadLocaleMessages() {
- const locales = require.context(
- './locales',
- true,
- /[A-Za-z0-9-_,\s]+\.json$/i,
- );
- const messages = {};
- locales.keys().forEach((key) => {
- const matched = key.match(/([A-Za-z0-9-_]+)\./i);
- if (matched && matched.length > 1) {
- const locale = matched[1];
- messages[locale] = locales(key);
- }
- });
+ const messages = {
+ 'en-US': en_us,
+ 'ru-RU': ru_ru,
+ };
return messages;
}
-export default new VueI18n({
+const i18n = createI18n({
// Get default locale from local storage
locale: window.localStorage.getItem('storedLanguage'),
// Locales that don't exist will fallback to English
@@ -29,4 +20,8 @@ export default new VueI18n({
// Silent fallback suppresses console warnings when using fallback
silentFallbackWarn: true,
messages: loadLocaleMessages(),
+ globalInjection: false,
+ legacy: true,
});
+
+export default i18n;
diff --git a/src/layouts/AppLayout.vue b/src/layouts/AppLayout.vue
index 25ba3f61..fa9c212f 100644
--- a/src/layouts/AppLayout.vue
+++ b/src/layouts/AppLayout.vue
@@ -63,6 +63,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.app-container {
display: grid;
grid-template-columns: 100%;
diff --git a/src/layouts/LoginLayout.vue b/src/layouts/LoginLayout.vue
index dba1980e..a79228fd 100644
--- a/src/layouts/LoginLayout.vue
+++ b/src/layouts/LoginLayout.vue
@@ -44,9 +44,16 @@ export default {
};
},
};
+('');
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
+@import '@/assets/styles/bmc/helpers';
+@import '@/assets/styles/bootstrap/_helpers';
+
.login-container {
background: gray('100');
display: flex;
diff --git a/src/main.js b/src/main.js
index 43d09b8c..23bfb691 100644
--- a/src/main.js
+++ b/src/main.js
@@ -1,14 +1,26 @@
-import Vue from 'vue';
+import { createApp } from 'vue';
+
import App from './App.vue';
+import i18n from './i18n';
+
import router from './router';
+//import { format } from 'date-fns-tz';
+
//Do not change store import.
//Exact match alias set to support
//dotenv customizations.
import store from './store';
import eventBus from './eventBus';
+import './assets/styles/bmc/helpers/_index.scss';
+import './assets/styles/bootstrap/_helpers.scss';
+
+import 'bootstrap/dist/css/bootstrap.css';
+import 'bootstrap-vue/dist/bootstrap-vue.css';
+
import {
+ BootstrapVue,
AlertPlugin,
BadgePlugin,
ButtonPlugin,
@@ -39,11 +51,9 @@ import {
ToastPlugin,
TooltipPlugin,
} from 'bootstrap-vue';
-import Vuelidate from 'vuelidate';
-import i18n from './i18n';
-import { format } from 'date-fns-tz';
// Filters
+/*
Vue.filter('shortTimeZone', function (value) {
const longTZ = value
.toString()
@@ -83,12 +93,24 @@ Vue.filter('formatTime', function (value) {
return format(value, pattern, { timezone }).replace('GMT', 'UTC');
}
});
+*/
+
+const app = createApp({
+ router,
+ store,
+ render: (h) => h(App),
+});
+app.use(i18n);
+
+app.use(router);
+app.use(store);
// Plugins
-Vue.use(AlertPlugin);
-Vue.use(BadgePlugin);
-Vue.use(ButtonPlugin);
-Vue.use(BVConfigPlugin, {
+app.use(BootstrapVue);
+app.use(AlertPlugin);
+app.use(BadgePlugin);
+app.use(ButtonPlugin);
+app.use(BVConfigPlugin, {
BFormText: { textVariant: 'secondary' },
BTable: {
headVariant: 'light',
@@ -102,38 +124,33 @@ Vue.use(BVConfigPlugin, {
variant: 'primary',
},
});
-Vue.use(CardPlugin);
-Vue.use(CollapsePlugin);
-Vue.use(DropdownPlugin);
-Vue.use(FormPlugin);
-Vue.use(FormCheckboxPlugin);
-Vue.use(FormDatepickerPlugin);
-Vue.use(FormFilePlugin);
-Vue.use(FormGroupPlugin);
-Vue.use(FormInputPlugin);
-Vue.use(FormRadioPlugin);
-Vue.use(FormSelectPlugin);
-Vue.use(FormTagsPlugin);
-Vue.use(InputGroupPlugin);
-Vue.use(LayoutPlugin);
-Vue.use(LayoutPlugin);
-Vue.use(LinkPlugin);
-Vue.use(ListGroupPlugin);
-Vue.use(ModalPlugin);
-Vue.use(NavbarPlugin);
-Vue.use(NavPlugin);
-Vue.use(PaginationPlugin);
-Vue.use(ProgressPlugin);
-Vue.use(TablePlugin);
-Vue.use(TabsPlugin);
-Vue.use(ToastPlugin);
-Vue.use(TooltipPlugin);
-Vue.use(Vuelidate);
-
-new Vue({
- router,
- store,
- i18n,
- render: (h) => h(App),
-}).$mount('#app');
-Vue.prototype.$eventBus = eventBus;
+
+app.use(CardPlugin);
+app.use(CollapsePlugin);
+app.use(DropdownPlugin);
+app.use(FormPlugin);
+app.use(FormCheckboxPlugin);
+app.use(FormDatepickerPlugin);
+app.use(FormFilePlugin);
+app.use(FormGroupPlugin);
+app.use(FormInputPlugin);
+app.use(FormRadioPlugin);
+app.use(FormSelectPlugin);
+app.use(FormTagsPlugin);
+app.use(InputGroupPlugin);
+app.use(LayoutPlugin);
+app.use(LayoutPlugin);
+app.use(LinkPlugin);
+app.use(ListGroupPlugin);
+app.use(ModalPlugin);
+app.use(NavbarPlugin);
+app.use(NavPlugin);
+app.use(PaginationPlugin);
+app.use(ProgressPlugin);
+app.use(TablePlugin);
+app.use(TabsPlugin);
+app.use(ToastPlugin);
+app.use(TooltipPlugin);
+
+app.mount('#app');
+app.prototype.$eventBus = eventBus;
diff --git a/src/router/routes.js b/src/router/routes.js
index 5424cab8..8b3ff178 100644
--- a/src/router/routes.js
+++ b/src/router/routes.js
@@ -30,7 +30,7 @@ import Certificates from '@/views/SecurityAndAccess/Certificates';
import VirtualMedia from '@/views/Operations/VirtualMedia';
import Power from '@/views/ResourceManagement/Power';
import SnmpAlerts from '@/views/Settings/SnmpAlerts';
-import i18n from '@/i18n';
+//import { i18n } from '@/i18n';
const roles = {
administrator: 'Administrator',
@@ -49,7 +49,7 @@ const routes = [
name: 'login',
component: Login,
meta: {
- title: i18n.t('appPageTitle.login'),
+ //title: i18n.$t('appPageTitle.login'),
},
},
{
@@ -57,7 +57,7 @@ const routes = [
name: 'change-password',
component: ChangePassword,
meta: {
- title: i18n.t('appPageTitle.changePassword'),
+ //title: i18n.$t('appPageTitle.changePassword'),
requiresAuth: true,
},
},
@@ -75,7 +75,7 @@ const routes = [
name: 'serial-over-lan-console',
component: SerialOverLanConsole,
meta: {
- title: i18n.t('appPageTitle.serialOverLan'),
+ //title: i18n.t('appPageTitle.serialOverLan'),
},
},
{
@@ -83,7 +83,7 @@ const routes = [
name: 'kvm-console',
component: KvmConsole,
meta: {
- title: i18n.t('appPageTitle.kvm'),
+ //title: i18n.t('appPageTitle.kvm'),
},
},
],
@@ -100,7 +100,7 @@ const routes = [
name: 'overview',
component: Overview,
meta: {
- title: i18n.t('appPageTitle.overview'),
+ //title: i18n.t('appPageTitle.overview'),
},
},
{
@@ -108,7 +108,7 @@ const routes = [
name: 'profile-settings',
component: ProfileSettings,
meta: {
- title: i18n.t('appPageTitle.profileSettings'),
+ //title: i18n.t('appPageTitle.profileSettings'),
},
},
{
@@ -116,7 +116,7 @@ const routes = [
name: 'event-logs',
component: EventLogs,
meta: {
- title: i18n.t('appPageTitle.eventLogs'),
+ //title: i18n.t('appPageTitle.eventLogs'),
},
},
{
@@ -124,7 +124,7 @@ const routes = [
name: 'post-code-logs',
component: PostCodeLogs,
meta: {
- title: i18n.t('appPageTitle.postCodeLogs'),
+ //title: i18n.t('appPageTitle.postCodeLogs'),
},
},
{
@@ -132,7 +132,7 @@ const routes = [
name: 'inventory',
component: Inventory,
meta: {
- title: i18n.t('appPageTitle.inventory'),
+ //title: i18n.t('appPageTitle.inventory'),
},
},
{
@@ -140,7 +140,7 @@ const routes = [
name: 'sensors',
component: Sensors,
meta: {
- title: i18n.t('appPageTitle.sensors'),
+ //title: i18n.t('appPageTitle.sensors'),
},
},
{
@@ -148,7 +148,7 @@ const routes = [
name: 'sessions',
component: Sessions,
meta: {
- title: i18n.t('appPageTitle.sessions'),
+ //title: i18n.t('appPageTitle.sessions'),
},
},
{
@@ -156,7 +156,7 @@ const routes = [
name: 'ldap',
component: Ldap,
meta: {
- title: i18n.t('appPageTitle.ldap'),
+ //title: i18n.t('appPageTitle.ldap'),
},
},
{
@@ -164,7 +164,7 @@ const routes = [
name: 'user-management',
component: UserManagement,
meta: {
- title: i18n.t('appPageTitle.userManagement'),
+ //title: i18n.t('appPageTitle.userManagement'),
},
},
{
@@ -172,7 +172,7 @@ const routes = [
name: 'policies',
component: Policies,
meta: {
- title: i18n.t('appPageTitle.policies'),
+ //title: i18n.t('appPageTitle.policies'),
},
},
{
@@ -180,7 +180,7 @@ const routes = [
name: 'certificates',
component: Certificates,
meta: {
- title: i18n.t('appPageTitle.certificates'),
+ //title: i18n.t('appPageTitle.certificates'),
},
},
{
@@ -188,7 +188,7 @@ const routes = [
name: 'date-time',
component: DateTime,
meta: {
- title: i18n.t('appPageTitle.dateTime'),
+ //title: i18n.t('appPageTitle.dateTime'),
},
},
{
@@ -196,7 +196,7 @@ const routes = [
name: 'snmp-alerts',
component: SnmpAlerts,
meta: {
- title: i18n.t('appPageTitle.snmpAlerts'),
+ //title: i18n.t('appPageTitle.snmpAlerts'),
},
},
{
@@ -204,7 +204,7 @@ const routes = [
name: 'factory-reset',
component: FactoryReset,
meta: {
- title: i18n.t('appPageTitle.factoryReset'),
+ //title: i18n.t('appPageTitle.factoryReset'),
},
},
{
@@ -212,7 +212,7 @@ const routes = [
name: 'key-clear',
component: KeyClear,
meta: {
- title: i18n.t('appPageTitle.keyClear'),
+ //title: i18n.t('appPageTitle.keyClear'),
},
},
{
@@ -220,7 +220,7 @@ const routes = [
name: 'kvm',
component: Kvm,
meta: {
- title: i18n.t('appPageTitle.kvm'),
+ //title: i18n.t('appPageTitle.kvm'),
},
},
{
@@ -228,7 +228,7 @@ const routes = [
name: 'firmware',
component: Firmware,
meta: {
- title: i18n.t('appPageTitle.firmware'),
+ //title: i18n.t('appPageTitle.firmware'),
},
},
{
@@ -236,7 +236,7 @@ const routes = [
name: 'network',
component: Network,
meta: {
- title: i18n.t('appPageTitle.network'),
+ //title: i18n.t('appPageTitle.network'),
},
},
{
@@ -244,7 +244,7 @@ const routes = [
name: 'power-restore-policy',
component: PowerRestorePolicy,
meta: {
- title: i18n.t('appPageTitle.powerRestorePolicy'),
+ //title: i18n.t('appPageTitle.powerRestorePolicy'),
},
},
{
@@ -252,7 +252,7 @@ const routes = [
name: 'power',
component: Power,
meta: {
- title: i18n.t('appPageTitle.power'),
+ //title: i18n.t('appPageTitle.power'),
},
},
{
@@ -260,7 +260,7 @@ const routes = [
name: 'reboot-bmc',
component: RebootBmc,
meta: {
- title: i18n.t('appPageTitle.rebootBmc'),
+ //title: i18n.t('appPageTitle.rebootBmc'),
},
},
{
@@ -268,7 +268,7 @@ const routes = [
name: 'serial-over-lan',
component: SerialOverLan,
meta: {
- title: i18n.t('appPageTitle.serialOverLan'),
+ //title: i18n.t('appPageTitle.serialOverLan'),
exclusiveToRoles: [roles.administrator],
},
},
@@ -277,7 +277,7 @@ const routes = [
name: 'server-power-operations',
component: ServerPowerOperations,
meta: {
- title: i18n.t('appPageTitle.serverPowerOperations'),
+ //title: i18n.t('appPageTitle.serverPowerOperations'),
},
},
{
@@ -285,7 +285,7 @@ const routes = [
name: 'virtual-media',
component: VirtualMedia,
meta: {
- title: i18n.t('appPageTitle.virtualMedia'),
+ //title: i18n.t('appPageTitle.virtualMedia'),
exclusiveToRoles: [roles.administrator],
},
},
@@ -294,7 +294,7 @@ const routes = [
name: 'page-not-found',
component: PageNotFound,
meta: {
- title: i18n.t('appPageTitle.pageNotFound'),
+ //title: i18n.t('appPageTitle.pageNotFound'),
},
},
],
diff --git a/src/store/api.js b/src/store/api.js
index 664e2b76..babed4c8 100644
--- a/src/store/api.js
+++ b/src/store/api.js
@@ -5,7 +5,7 @@ import { setupCache, buildWebStorage } from 'axios-cache-interceptor';
//Do not change store import.
//Exact match alias set to support
//dotenv customizations.
-import store from '../store';
+import store from '.';
Axios.defaults.headers.common['Accept'] = 'application/json';
Axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
diff --git a/src/store/index.js b/src/store/index.js
index 453e0f64..029df7a2 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -36,7 +36,7 @@ import VirtualMediaStore from './modules/Operations/VirtualMediaStore';
Vue.use(Vuex);
-export default new Vuex.Store({
+const store = new Vuex.Store({
state: {},
mutations: {},
actions: {},
@@ -74,3 +74,5 @@ export default new Vuex.Store({
keyClear: KeyClearStore,
},
});
+
+export default store;
diff --git a/src/views/ChangePassword/ChangePassword.vue b/src/views/ChangePassword/ChangePassword.vue
index 2440ace1..002362a9 100644
--- a/src/views/ChangePassword/ChangePassword.vue
+++ b/src/views/ChangePassword/ChangePassword.vue
@@ -72,16 +72,22 @@
</template>
<script>
-import { required, sameAs } from 'vuelidate/lib/validators';
+import { required, sameAs } from '@vuelidate/validators';
import Alert from '@/components/Global/Alert';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin';
import InputPasswordToggle from '@/components/Global/InputPasswordToggle';
import BVToastMixin from '@/components/Mixins/BVToastMixin';
+import { useVuelidate } from '@vuelidate/core';
export default {
name: 'ChangePassword',
components: { Alert, InputPasswordToggle },
mixins: [VuelidateMixin, BVToastMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
@@ -126,6 +132,11 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.change-password__form-container {
@include media-breakpoint-up('md') {
max-width: 360px;
diff --git a/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue b/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
index cf3ee2bf..8c1e50d4 100644
--- a/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
+++ b/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
@@ -88,14 +88,14 @@
<!-- BMC date and time -->
<dt>{{ $t('pageInventory.table.bmcDateTime') }}:</dt>
<dd>
- {{ item.dateTime | formatDate }}
- {{ item.dateTime | formatTime }}
+ {{ item.dateTime }}
+ {{ item.dateTime }}
</dd>
<!-- Reset date and time -->
<dt>{{ $t('pageInventory.table.lastResetTime') }}:</dt>
<dd>
- {{ item.lastResetTime | formatDate }}
- {{ item.lastResetTime | formatTime }}
+ {{ item.lastResetTime }}
+ {{ item.lastResetTime }}
</dd>
</dl>
</b-col>
diff --git a/src/views/Login/Login.vue b/src/views/Login/Login.vue
index 5e1e6ddd..cbf9f3e7 100644
--- a/src/views/Login/Login.vue
+++ b/src/views/Login/Login.vue
@@ -18,15 +18,15 @@
id="username"
v-model="userInfo.username"
aria-describedby="login-error-alert username-required"
- :state="getValidationState($v.userInfo.username)"
+ :state="getValidationState(v$.userInfo.username)"
type="text"
autofocus="autofocus"
data-test-id="login-input-username"
- @input="$v.userInfo.username.$touch()"
+ @input="v$.userInfo.username.$touch()"
>
</b-form-input>
<b-form-invalid-feedback id="username-required" role="alert">
- <template v-if="!$v.userInfo.username.required">
+ <template v-if="!v$.userInfo.username.required">
{{ $t('global.form.fieldRequired') }}
</template>
</b-form-invalid-feedback>
@@ -38,16 +38,16 @@
id="password"
v-model="userInfo.password"
aria-describedby="login-error-alert password-required"
- :state="getValidationState($v.userInfo.password)"
+ :state="getValidationState(v$.userInfo.password)"
type="password"
data-test-id="login-input-password"
class="form-control-with-button"
- @input="$v.userInfo.password.$touch()"
+ @input="v$.userInfo.password.$touch()"
>
</b-form-input>
</input-password-toggle>
<b-form-invalid-feedback id="password-required" role="alert">
- <template v-if="!$v.userInfo.password.required">
+ <template v-if="!v$.userInfo.password.required">
{{ $t('global.form.fieldRequired') }}
</template>
</b-form-invalid-feedback>
@@ -64,8 +64,10 @@
</template>
<script>
-import { required } from 'vuelidate/lib/validators';
+import { required } from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
+
import i18n from '@/i18n';
import Alert from '@/components/Global/Alert';
import InputPasswordToggle from '@/components/Global/InputPasswordToggle';
@@ -74,6 +76,11 @@ export default {
name: 'Login',
components: { Alert, InputPasswordToggle },
mixins: [VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
userInfo: {
@@ -110,8 +117,8 @@ export default {
},
methods: {
login: function () {
- this.$v.$touch();
- if (this.$v.$invalid) return;
+ this.v$.$touch();
+ if (this.v$.$invalid) return;
this.disableSubmitButton = true;
const username = this.userInfo.username;
const password = this.userInfo.password;
diff --git a/src/views/Logs/Dumps/Dumps.vue b/src/views/Logs/Dumps/Dumps.vue
index e89acd93..5a9869a4 100644
--- a/src/views/Logs/Dumps/Dumps.vue
+++ b/src/views/Logs/Dumps/Dumps.vue
@@ -84,8 +84,8 @@
<!-- Date and Time column -->
<template #cell(dateTime)="{ value }">
- <p class="mb-0">{{ value | formatDate }}</p>
- <p class="mb-0">{{ value | formatTime }}</p>
+ <p class="mb-0">{{ value }}</p>
+ <p class="mb-0">{{ value }}</p>
</template>
<!-- Size column -->
diff --git a/src/views/Logs/Dumps/DumpsForm.vue b/src/views/Logs/Dumps/DumpsForm.vue
index 0a9b0589..40cea7e3 100644
--- a/src/views/Logs/Dumps/DumpsForm.vue
+++ b/src/views/Logs/Dumps/DumpsForm.vue
@@ -33,7 +33,8 @@
</template>
<script>
-import { required } from 'vuelidate/lib/validators';
+import { useVuelidate } from '@vuelidate/core';
+import { required } from '@vuelidate/validators';
import ModalConfirmation from './DumpsModalConfirmation';
import Alert from '@/components/Global/Alert';
import BVToastMixin from '@/components/Mixins/BVToastMixin';
@@ -42,6 +43,11 @@ import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
export default {
components: { Alert, ModalConfirmation },
mixins: [BVToastMixin, VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
selectedDumpType: null,
diff --git a/src/views/Logs/Dumps/DumpsModalConfirmation.vue b/src/views/Logs/Dumps/DumpsModalConfirmation.vue
index f8e20cfd..2a1e552f 100644
--- a/src/views/Logs/Dumps/DumpsModalConfirmation.vue
+++ b/src/views/Logs/Dumps/DumpsModalConfirmation.vue
@@ -40,10 +40,16 @@
<script>
import StatusIcon from '@/components/Global/StatusIcon';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
export default {
components: { StatusIcon },
mixins: [VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
confirmed: false,
diff --git a/src/views/Logs/EventLogs/EventLogs.vue b/src/views/Logs/EventLogs/EventLogs.vue
index b48bd441..5060306e 100644
--- a/src/views/Logs/EventLogs/EventLogs.vue
+++ b/src/views/Logs/EventLogs/EventLogs.vue
@@ -144,8 +144,8 @@
<!-- Modified date -->
<dt>{{ $t('pageEventLogs.table.modifiedDate') }}:</dt>
<dd v-if="item.modifiedDate">
- {{ item.modifiedDate | formatDate }}
- {{ item.modifiedDate | formatTime }}
+ {{ item.modifiedDate }}
+ {{ item.modifiedDate }}
</dd>
<dd v-else>--</dd>
</dl>
@@ -166,8 +166,8 @@
</template>
<!-- Date column -->
<template #cell(date)="{ value }">
- <p class="mb-0">{{ value | formatDate }}</p>
- <p class="mb-0">{{ value | formatTime }}</p>
+ <p class="mb-0">{{ value }}</p>
+ <p class="mb-0">{{ value }}</p>
</template>
<!-- Status column -->
diff --git a/src/views/Logs/PostCodeLogs/PostCodeLogs.vue b/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
index 6b3030bc..ad62afce 100644
--- a/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
+++ b/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
@@ -97,8 +97,8 @@
</template>
<!-- Date column -->
<template #cell(date)="{ value }">
- <p class="mb-0">{{ value | formatDate }}</p>
- <p class="mb-0">{{ value | formatTime }}</p>
+ <p class="mb-0">{{ value }}</p>
+ <p class="mb-0">{{ value }}</p>
</template>
<!-- Actions column -->
diff --git a/src/views/Operations/FactoryReset/FactoryReset.vue b/src/views/Operations/FactoryReset/FactoryReset.vue
index 897348fc..40330b12 100644
--- a/src/views/Operations/FactoryReset/FactoryReset.vue
+++ b/src/views/Operations/FactoryReset/FactoryReset.vue
@@ -51,7 +51,7 @@
</b-form>
<!-- Modals -->
- <modal-reset :reset-type="resetOption" @okConfirm="onOkConfirm" />
+ <modal-reset :reset-type="resetOption" @ok-confirm="onOkConfirm" />
</b-container>
</template>
diff --git a/src/views/Operations/Firmware/FirmwareCardsHost.vue b/src/views/Operations/Firmware/FirmwareCardsHost.vue
index b4a8e90d..8fd0cac9 100644
--- a/src/views/Operations/Firmware/FirmwareCardsHost.vue
+++ b/src/views/Operations/Firmware/FirmwareCardsHost.vue
@@ -67,6 +67,11 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.page-section {
margin-top: -$spacer * 1.5;
}
diff --git a/src/views/Operations/Firmware/FirmwareFormUpdate.vue b/src/views/Operations/Firmware/FirmwareFormUpdate.vue
index 28d1104d..3f114a93 100644
--- a/src/views/Operations/Firmware/FirmwareFormUpdate.vue
+++ b/src/views/Operations/Firmware/FirmwareFormUpdate.vue
@@ -46,6 +46,7 @@ import { required } from 'vuelidate/lib/validators';
import BVToastMixin from '@/components/Mixins/BVToastMixin';
import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
import FormFile from '@/components/Global/FormFile';
import ModalUpdateFirmware from './FirmwareModalUpdateFirmware';
@@ -64,6 +65,11 @@ export default {
type: Boolean,
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
loading,
diff --git a/src/views/Operations/Kvm/KvmConsole.vue b/src/views/Operations/Kvm/KvmConsole.vue
index 62dd47ad..cc623e44 100644
--- a/src/views/Operations/Kvm/KvmConsole.vue
+++ b/src/views/Operations/Kvm/KvmConsole.vue
@@ -95,7 +95,7 @@ export default {
mounted() {
this.openTerminal();
},
- beforeDestroy() {
+ beforeUnmount() {
window.removeEventListener('resize', this.resizeKvmWindow);
this.closeTerminal();
},
@@ -173,7 +173,10 @@ export default {
};
</script>
-<style scoped lang="scss">
+<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.button-ctrl-alt-delete {
float: right;
}
diff --git a/src/views/Operations/RebootBmc/RebootBmc.vue b/src/views/Operations/RebootBmc/RebootBmc.vue
index fe575489..e56e968f 100644
--- a/src/views/Operations/RebootBmc/RebootBmc.vue
+++ b/src/views/Operations/RebootBmc/RebootBmc.vue
@@ -11,8 +11,8 @@
{{ $t('pageRebootBmc.lastReboot') }}
</dt>
<dd v-if="lastBmcRebootTime">
- {{ lastBmcRebootTime | formatDate }}
- {{ lastBmcRebootTime | formatTime }}
+ {{ lastBmcRebootTime }}
+ {{ lastBmcRebootTime }}
</dd>
<dd v-else>--</dd>
</dl>
@@ -81,4 +81,7 @@ export default {
};
</script>
-<style lang="scss" scoped></style>
+<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+</style>
diff --git a/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue b/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
index ca81385e..8b4cd222 100644
--- a/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
+++ b/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
@@ -86,7 +86,7 @@ export default {
mounted() {
this.openTerminal();
},
- beforeDestroy() {
+ beforeUnmount() {
window.removeEventListener('resize', this.resizeConsoleWindow);
this.closeTerminal();
},
@@ -161,6 +161,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
@import '~xterm/css/xterm.css';
#terminal {
diff --git a/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue b/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
index 281bbef4..4e26ee10 100644
--- a/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
+++ b/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
@@ -44,8 +44,8 @@
v-if="lastPowerOperationTime"
data-test-id="powerServerOps-text-lastPowerOp"
>
- {{ lastPowerOperationTime | formatDate }}
- {{ lastPowerOperationTime | formatTime }}
+ {{ lastPowerOperationTime }}
+ {{ lastPowerOperationTime }}
</dd>
<dd v-else>--</dd>
</dl>
diff --git a/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue b/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
index b0bcfb2b..61e20507 100644
--- a/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
+++ b/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
@@ -70,8 +70,9 @@
</template>
<script>
-import { required } from 'vuelidate/lib/validators';
+import { required } from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
export default {
mixins: [VuelidateMixin],
@@ -85,6 +86,11 @@ export default {
},
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/Overview/OverviewCard.vue b/src/views/Overview/OverviewCard.vue
index 4fc0a031..aa5697d6 100644
--- a/src/views/Overview/OverviewCard.vue
+++ b/src/views/Overview/OverviewCard.vue
@@ -71,6 +71,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
a {
vertical-align: middle;
font-size: 14px;
diff --git a/src/views/Overview/OverviewEvents.vue b/src/views/Overview/OverviewEvents.vue
index 73853bb5..4d85dbd6 100644
--- a/src/views/Overview/OverviewEvents.vue
+++ b/src/views/Overview/OverviewEvents.vue
@@ -85,6 +85,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.status-icon {
vertical-align: text-top;
}
diff --git a/src/views/Overview/OverviewQuickLinks.vue b/src/views/Overview/OverviewQuickLinks.vue
index bc579b03..2ab76541 100644
--- a/src/views/Overview/OverviewQuickLinks.vue
+++ b/src/views/Overview/OverviewQuickLinks.vue
@@ -5,7 +5,7 @@
<dl>
<dt>{{ $t('pageOverview.bmcTime') }}</dt>
<dd v-if="bmcTime" data-test-id="overviewQuickLinks-text-bmcTime">
- {{ bmcTime | formatDate }} {{ bmcTime | formatTime }}
+ {{ bmcTime }} {{ bmcTime }}
</dd>
<dd v-else>--</dd>
</dl>
@@ -49,6 +49,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
dd,
dl {
margin: 0;
diff --git a/src/views/ProfileSettings/ProfileSettings.vue b/src/views/ProfileSettings/ProfileSettings.vue
index 5d84ccef..aa325745 100644
--- a/src/views/ProfileSettings/ProfileSettings.vue
+++ b/src/views/ProfileSettings/ProfileSettings.vue
@@ -145,12 +145,13 @@
<script>
import BVToastMixin from '@/components/Mixins/BVToastMixin';
import InputPasswordToggle from '@/components/Global/InputPasswordToggle';
-import { maxLength, minLength, sameAs } from 'vuelidate/lib/validators';
+import { maxLength, minLength, sameAs } from '@vuelidate/validators';
import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
import LocalTimezoneLabelMixin from '@/components/Mixins/LocalTimezoneLabelMixin';
import PageTitle from '@/components/Global/PageTitle';
import PageSection from '@/components/Global/PageSection';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
export default {
name: 'ProfileSettings',
@@ -161,6 +162,11 @@ export default {
LoadingBarMixin,
VuelidateMixin,
],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/ResourceManagement/Power.vue b/src/views/ResourceManagement/Power.vue
index cc0cc993..8a9503fd 100644
--- a/src/views/ResourceManagement/Power.vue
+++ b/src/views/ResourceManagement/Power.vue
@@ -87,8 +87,10 @@
import PageTitle from '@/components/Global/PageTitle';
import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
+
import BVToastMixin from '@/components/Mixins/BVToastMixin';
-import { requiredIf, between } from 'vuelidate/lib/validators';
+import { requiredIf, between } from '@vuelidate/validators';
import { mapGetters } from 'vuex';
export default {
@@ -99,6 +101,11 @@ export default {
this.hideLoader();
next();
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
loading,
diff --git a/src/views/SecurityAndAccess/Certificates/Certificates.vue b/src/views/SecurityAndAccess/Certificates/Certificates.vue
index 35e4b819..bceab5d2 100644
--- a/src/views/SecurityAndAccess/Certificates/Certificates.vue
+++ b/src/views/SecurityAndAccess/Certificates/Certificates.vue
@@ -63,7 +63,7 @@
:empty-text="$t('global.table.emptyMessage')"
>
<template #cell(validFrom)="{ value }">
- {{ value | formatDate }}
+ {{ value }}
</template>
<template #cell(validUntil)="{ value }">
@@ -71,7 +71,7 @@
v-if="getDaysUntilExpired(value) < 31"
:status="getIconStatus(value)"
/>
- {{ value | formatDate }}
+ {{ value }}
</template>
<template #cell(actions)="{ value, item }">
diff --git a/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js b/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js
index a2d70007..8e8b213f 100644
--- a/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js
+++ b/src/views/SecurityAndAccess/Certificates/CsrCountryCodes.js
@@ -1,5 +1,7 @@
-import i18n from '@/i18n';
+//import i18n from '@/i18n';
+export const COUNTRY_LIST = [];
+/*
export const COUNTRY_LIST = [
{ name: 'Afghanistan', code: 'AF', label: i18n.t('countries.AF') },
{ name: 'Albania', code: 'AL', label: i18n.t('countries.AL') },
@@ -342,4 +344,4 @@ export const COUNTRY_LIST = [
{ name: 'Zambia', code: 'ZM', label: i18n.t('countries.ZM') },
{ name: 'Zimbabwe', code: 'ZW', label: i18n.t('countries.ZW') },
{ name: 'Ă…land Islands', code: 'AX', label: i18n.t('countries.AX') },
-];
+];*/
diff --git a/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue b/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
index 9f60d2ba..03ab8f4a 100644
--- a/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
+++ b/src/views/SecurityAndAccess/Certificates/ModalGenerateCsr.vue
@@ -363,16 +363,22 @@
import IconAdd from '@carbon/icons-vue/es/add--alt/20';
import IconCheckmark from '@carbon/icons-vue/es/checkmark/20';
-import { required, requiredIf } from 'vuelidate/lib/validators';
+import { required, requiredIf } from '@vuelidate/validators';
import { COUNTRY_LIST } from './CsrCountryCodes';
import BVToastMixin from '@/components/Mixins/BVToastMixin';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
export default {
name: 'ModalGenerateCsr',
components: { IconAdd, IconCheckmark },
mixins: [BVToastMixin, VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue b/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
index f4db7a26..60170f1b 100644
--- a/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
+++ b/src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
@@ -69,8 +69,9 @@
</template>
<script>
-import { required, requiredIf } from 'vuelidate/lib/validators';
+import { required, requiredIf } from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
import FormFile from '@/components/Global/FormFile';
@@ -90,6 +91,11 @@ export default {
},
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/SecurityAndAccess/Ldap/Ldap.vue b/src/views/SecurityAndAccess/Ldap/Ldap.vue
index a5ee4756..28d2b1cb 100644
--- a/src/views/SecurityAndAccess/Ldap/Ldap.vue
+++ b/src/views/SecurityAndAccess/Ldap/Ldap.vue
@@ -52,12 +52,12 @@
<dl>
<dt>{{ $t('pageLdap.form.caCertificateValidUntil') }}</dt>
<dd v-if="caCertificateExpiration">
- {{ caCertificateExpiration | formatDate }}
+ {{ caCertificateExpiration }}
</dd>
<dd v-else>--</dd>
<dt>{{ $t('pageLdap.form.ldapCertificateValidUntil') }}</dt>
<dd v-if="ldapCertificateExpiration">
- {{ ldapCertificateExpiration | formatDate }}
+ {{ ldapCertificateExpiration }}
</dd>
<dd v-else>--</dd>
</dl>
@@ -232,7 +232,8 @@
<script>
import { mapGetters } from 'vuex';
import { find } from 'lodash';
-import { requiredIf } from 'vuelidate/lib/validators';
+import { requiredIf } from '@vuelidate/validators';
+import { useVuelidate } from '@vuelidate/core';
import BVToastMixin from '@/components/Mixins/BVToastMixin';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin';
@@ -257,6 +258,11 @@ export default {
this.hideLoader();
next();
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue b/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
index beacf575..9b50abdc 100644
--- a/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
+++ b/src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
@@ -80,8 +80,9 @@
</template>
<script>
-import { required, requiredIf } from 'vuelidate/lib/validators';
+import { required, requiredIf } from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
export default {
mixins: [VuelidateMixin],
@@ -98,6 +99,11 @@ export default {
},
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/SecurityAndAccess/Policies/Policies.vue b/src/views/SecurityAndAccess/Policies/Policies.vue
index 3ebfee4e..fb521750 100644
--- a/src/views/SecurityAndAccess/Policies/Policies.vue
+++ b/src/views/SecurityAndAccess/Policies/Policies.vue
@@ -254,6 +254,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.setting-section {
border-bottom: 1px solid gray('300');
}
diff --git a/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue b/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
index 0f05123c..8932eb56 100644
--- a/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
+++ b/src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
@@ -123,12 +123,14 @@
<script>
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
+
import {
required,
requiredIf,
minValue,
maxValue,
-} from 'vuelidate/lib/validators';
+} from '@vuelidate/validators';
export default {
mixins: [VuelidateMixin],
@@ -138,6 +140,11 @@ export default {
required: true,
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/SecurityAndAccess/UserManagement/ModalUser.vue b/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
index 5ffb2979..dca97363 100644
--- a/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
+++ b/src/views/SecurityAndAccess/UserManagement/ModalUser.vue
@@ -27,7 +27,6 @@
v-model="form.manualUnlock"
data-test-id="userManagement-input-manualUnlock"
type="hidden"
- value="false"
/>
<b-button
variant="primary"
@@ -232,8 +231,10 @@ import {
sameAs,
helpers,
requiredIf,
-} from 'vuelidate/lib/validators';
+} from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
+
import InputPasswordToggle from '@/components/Global/InputPasswordToggle';
import Alert from '@/components/Global/Alert';
@@ -250,6 +251,11 @@ export default {
required: true,
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
originalUsername: '',
diff --git a/src/views/SecurityAndAccess/UserManagement/UserManagement.vue b/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
index 944ea258..43f3a404 100644
--- a/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
+++ b/src/views/SecurityAndAccess/UserManagement/UserManagement.vue
@@ -422,6 +422,9 @@ export default {
</script>
<style lang="scss" scoped>
+@import '@/assets/styles/bmc/helpers/_index.scss';
+@import '@/assets/styles/bootstrap/_helpers.scss';
+
.btn.collapsed {
svg {
transform: rotate(180deg);
diff --git a/src/views/Settings/DateTime/DateTime.vue b/src/views/Settings/DateTime/DateTime.vue
index a3fec362..00d7b45a 100644
--- a/src/views/Settings/DateTime/DateTime.vue
+++ b/src/views/Settings/DateTime/DateTime.vue
@@ -18,14 +18,14 @@
<b-col lg="3">
<dl>
<dt>{{ $t('pageDateTime.form.date') }}</dt>
- <dd v-if="bmcTime">{{ bmcTime | formatDate }}</dd>
+ <dd v-if="bmcTime">{{ bmcTime }}</dd>
<dd v-else>--</dd>
</dl>
</b-col>
<b-col lg="3">
<dl>
<dt>{{ $t('pageDateTime.form.time.label') }}</dt>
- <dd v-if="bmcTime">{{ bmcTime | formatTime }}</dd>
+ <dd v-if="bmcTime">{{ bmcTime }}</dd>
<dd v-else>--</dd>
</dl>
</b-col>
@@ -206,9 +206,10 @@ import BVToastMixin from '@/components/Mixins/BVToastMixin';
import LoadingBarMixin, { loading } from '@/components/Mixins/LoadingBarMixin';
import LocalTimezoneLabelMixin from '@/components/Mixins/LocalTimezoneLabelMixin';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
import { mapState } from 'vuex';
-import { requiredIf, helpers } from 'vuelidate/lib/validators';
+import { requiredIf, helpers } from '@vuelidate/validators';
const isoDateRegex = /([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))/;
const isoTimeRegex = /^(0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$/;
@@ -226,6 +227,11 @@ export default {
this.hideLoader();
next();
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
locale: this.$store.getters['global/languagePreference'],
diff --git a/src/views/Settings/Network/ModalDns.vue b/src/views/Settings/Network/ModalDns.vue
index 7f127173..8fe371ee 100644
--- a/src/views/Settings/Network/ModalDns.vue
+++ b/src/views/Settings/Network/ModalDns.vue
@@ -44,10 +44,17 @@
<script>
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
-import { ipAddress, required } from 'vuelidate/lib/validators';
+import { useVuelidate } from '@vuelidate/core';
+
+import { ipAddress, required } from '@vuelidate/validators';
export default {
mixins: [VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/Settings/Network/ModalHostname.vue b/src/views/Settings/Network/ModalHostname.vue
index f3221ec7..1b3bab1d 100644
--- a/src/views/Settings/Network/ModalHostname.vue
+++ b/src/views/Settings/Network/ModalHostname.vue
@@ -49,7 +49,9 @@
<script>
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
-import { required, helpers } from 'vuelidate/lib/validators';
+import { useVuelidate } from '@vuelidate/core';
+
+import { required, helpers } from '@vuelidate/validators';
const validateHostname = helpers.regex('validateHostname', /^\S{0,64}$/);
@@ -61,6 +63,11 @@ export default {
default: '',
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/Settings/Network/ModalIpv4.vue b/src/views/Settings/Network/ModalIpv4.vue
index dcf4a579..2c3d9e88 100644
--- a/src/views/Settings/Network/ModalIpv4.vue
+++ b/src/views/Settings/Network/ModalIpv4.vue
@@ -90,7 +90,9 @@
<script>
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
-import { ipAddress, required } from 'vuelidate/lib/validators';
+import { useVuelidate } from '@vuelidate/core';
+
+import { ipAddress, required } from '@vuelidate/validators';
export default {
mixins: [VuelidateMixin],
@@ -100,6 +102,11 @@ export default {
default: '',
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/Settings/Network/ModalMacAddress.vue b/src/views/Settings/Network/ModalMacAddress.vue
index d563f4ce..307eb8df 100644
--- a/src/views/Settings/Network/ModalMacAddress.vue
+++ b/src/views/Settings/Network/ModalMacAddress.vue
@@ -50,7 +50,9 @@
<script>
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
-import { macAddress, required } from 'vuelidate/lib/validators';
+import { useVuelidate } from '@vuelidate/core';
+
+import { macAddress, required } from '@vuelidate/validators';
export default {
mixins: [VuelidateMixin],
@@ -60,6 +62,11 @@ export default {
default: '',
},
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {
diff --git a/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue b/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
index 11870a87..dfa4865d 100644
--- a/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
+++ b/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
@@ -25,6 +25,8 @@
import PageTitle from '@/components/Global/PageTitle';
import LoadingBarMixin from '@/components/Mixins/LoadingBarMixin';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
+
import BVToastMixin from '@/components/Mixins/BVToastMixin';
export default {
@@ -35,6 +37,11 @@ export default {
this.hideLoader();
next();
},
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
policyValue: null,
diff --git a/src/views/Settings/SnmpAlerts/ModalAddDestination.vue b/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
index 9637652b..f52acd72 100644
--- a/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
+++ b/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
@@ -82,16 +82,17 @@
</template>
<script>
-import {
- required,
- ipAddress,
- minValue,
- maxValue,
-} from 'vuelidate/lib/validators';
+import { required, ipAddress, minValue, maxValue } from '@vuelidate/validators';
import VuelidateMixin from '@/components/Mixins/VuelidateMixin.js';
+import { useVuelidate } from '@vuelidate/core';
export default {
mixins: [VuelidateMixin],
+ setup() {
+ return {
+ v$: useVuelidate(),
+ };
+ },
data() {
return {
form: {