History log of /openbmc/webui-vue/src/views/SecurityAndAccess/ (Results 1 – 25 of 40)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
063a8e0e08-Jan-2026 Jason Westover <jwestover@nvidia.com>

Migrate build system from Vue-CLI to Vite

"Vue CLI is in Maintenance Mode!" https://cli.vuejs.org/

Vite is created by Vue's creator and is the recommended build tool
for Vue 3. It supports most of

Migrate build system from Vue-CLI to Vite

"Vue CLI is in Maintenance Mode!" https://cli.vuejs.org/

Vite is created by Vue's creator and is the recommended build tool
for Vue 3. It supports most of the configured conventions in Vue CLI.
Dev Server startup is 60X faster and HMR is noticeably faster ~50ms.
Better Tree-shaking support and modern ESM support.

This migration preserves all existing functionality while eliminating
Vue 2 legacy dependencies.

Build Output Comparison (gzipped):
Master (Webpack) Vite Delta
CSS: 39 KB 45 KB +6 KB (+15%)
JS: 505 KB 483 KB -22 KB (-4.4%)
Total dist: 556 KB 544 KB -12 KB (-2.2%)
Build time: ~29s ~7s ~4x faster

Build System Changes:
- Replace vue.config.js with vite.config.js
- Remove babel.config.js (Vite uses esbuild)
- Remove postcss.config.js (Vite handles PostCSS internally)
- Add index.html to project root with ESM module entry point
- Add custom Vite plugin for directory import resolution
- Rename .eslintrc.js to .eslintrc.cjs (ESM compatibility)

Dependency Updates:
- Remove @vue/cli-* packages and webpack-related dependencies
- Add vite, @vitejs/plugin-vue, @vitejs/plugin-basic-ssl
- Add vite-svg-loader, vite-plugin-compression
- Upgrade Bootstrap to 5.3.8
- Upgrade Sass to 1.97.2 (supports quietDeps option)
- Upgrade xterm to @xterm/xterm v6 (new package name)
- Upgrade xterm-addon-* to @xterm/addon-* packages
- Upgrade vue-i18n to v11
- Upgrade eslint to 8.57.1
- Upgrade axios-cache-interceptor to latest

Environment Variable Migration:
- Change VUE_APP_* prefix to VITE_* (Vite convention)
- Replace process.env with import.meta.env in source files
- Update .env.ibm, .env.intel example files
- Update documentation with new variable names

ESM Module Compatibility:
- Replace require('@/eventBus') with ESM imports (~23 files)
- Ensure event bus listeners are registered/unregistered with stable
handler references to prevent leaks
- Replace require.context with import.meta.glob in i18n.js
- Convert SVG inline loader to vite-svg-loader component imports

SCSS/Sass Updates:
- Remove tilde (~) prefix from node_modules imports
- Add silenceDeprecations and quietDeps for Bootstrap warnings
- Fix color() function syntax for Sass 2.0 compatibility

xterm.js v6 Migration:
- Update imports to @xterm/xterm, @xterm/addon-attach, @xterm/addon-fit
- Replace deprecated setOption() with constructor options
- Add CSS fix for helper textarea visibility

Dev Server:
- Configure HTTPS with @vitejs/plugin-basic-ssl
- Preserve proxy configuration for BMC backend
- Add WebSocket proxy auth token forwarding for /console, /kvm, /vm
- Configure HMR on separate WebSocket path (/ws_hmr)

X-Auth-Token Persistence (opt-in):
- Add VITE_STORE_SESSION env flag for non-cookie auth backends
- Persist X-Auth-Token to session cookie when enabled
- Enables direct browser navigation to Redfish endpoints

Follow-on: CI/testing updates (unit test runner + run-ci alignment)
Some Jest config changes skipped here since this follow-on commit
switches to Vitest.
follow-up change is here:
https://gerrit.openbmc.org/c/openbmc/webui-vue/+/86511

Tested: Sanity tested most navigational screens in the default UI,
including many different types of API calls.
Tested most build options.
Tested the new i18n:report and it is working correctly.

Change-Id: Ie84d1ed6121ffe7d2ddb379084d833b8d5a6fccf
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...


/openbmc/webui-vue/.env.ibm
/openbmc/webui-vue/.env.intel
/openbmc/webui-vue/.eslintrc.cjs
/openbmc/webui-vue/docs/.vuepress/config.js
/openbmc/webui-vue/docs/customization/build.md
/openbmc/webui-vue/index.html
/openbmc/webui-vue/jest.config.js
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/assets/styles/bmc/custom/_pagination.scss
/openbmc/webui-vue/src/assets/styles/bootstrap/_helpers.scss
/openbmc/webui-vue/src/assets/styles/bootstrap/_index.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/Global/ConfirmModal.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Mixins/BVToastMixin.js
/openbmc/webui-vue/src/components/Mixins/LoadingBarMixin.js
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/store/api.js
/openbmc/webui-vue/src/store/modules/Authentication/AuthenticanStore.js
/openbmc/webui-vue/src/store/modules/Operations/VirtualMediaStore.js
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Operations/Firmware/Firmware.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/Overview.vue
Policies/Policies.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv6.vue
/openbmc/webui-vue/vite.config.js
313d15cf18-Aug-2025 jason westover <jwestover@nvidia.com>

Fix Unit tests and useI18n() misuse

Vue 3's vue-i18n requires useI18n() to be called within setup()
or reactive contexts. Calling it in Options API data() creates
disconnected i18n instances that ca

Fix Unit tests and useI18n() misuse

Vue 3's vue-i18n requires useI18n() to be called within setup()
or reactive contexts. Calling it in Options API data() creates
disconnected i18n instances that cannot resolve linked messages.

Component fixes:
- Enable globalInjection in i18n.js for automatic $t injection
- Remove explicit useI18n() imports from 84 components that
incorrectly called useI18n().t in their data() functions

Unit test fixes:
- Mock @/i18n module in jest.setup.js because Webpack's
require.context() does not work in Jest, leaving the real
module with no locale messages loaded
- Re-export real createI18nInstance so i18n unit tests work
- Update snapshots to reflect real translated text instead
of raw translation keys
- Fix b-form-radio/checkbox stubs to wrap content in div for
proper data-test-id attribute inheritance
- Remove duplicate i18n plugin installations from individual
test files that caused 'already registered' warnings
- Suppress expected missing-key warning in vendor overlay test

Tested:
- Sanity testing on webui, ensured translations work.
- All Unit tests pass (19/19) with no Errors or Warnings.

Change-Id: I9789acd823261eccc7affde0957dd22e8fec06b1
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...


/openbmc/webui-vue/jest.config.js
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/TableCellCount.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableRowAction.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/components/Global/TableToolbarExport.vue
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/store/modules/Operations/BootSettingsStore.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/HardwareStatus/Sensors/Sensors.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryReset.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/Firmware.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareAlertServerPower.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBios.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalSwitchToRunning.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
/openbmc/webui-vue/src/views/Operations/KeyClear/KeyClear.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLan.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/Overview.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewDumps.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewFirmware.vue
/openbmc/webui-vue/src/views/Overview/OverviewInventory.vue
/openbmc/webui-vue/src/views/Overview/OverviewNetwork.vue
/openbmc/webui-vue/src/views/Overview/OverviewPower.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/Overview/OverviewServer.vue
/openbmc/webui-vue/src/views/PageNotFound/PageNotFound.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
Certificates/Certificates.vue
Ldap/Ldap.vue
Ldap/TableRoleGroups.vue
Policies/Policies.vue
Sessions/Sessions.vue
UserManagement/ModalSettings.vue
UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDefaultGateway.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv6.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv6.vue
/openbmc/webui-vue/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
/openbmc/webui-vue/tests/jest.setup.js
/openbmc/webui-vue/tests/unit/AppHeader.spec.js
/openbmc/webui-vue/tests/unit/AppNavigation.spec.js
/openbmc/webui-vue/tests/unit/Global/PageTitle.spec.js
/openbmc/webui-vue/tests/unit/Global/Search.spec.js
/openbmc/webui-vue/tests/unit/Global/TableDateFilter.spec.js
/openbmc/webui-vue/tests/unit/Global/__snapshots__/InfoTooltip.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/InputPasswordToggle.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/LoadingBar.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/PageContainer.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/PageTitle.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/Search.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/TableCellCount.spec.js.snap
/openbmc/webui-vue/tests/unit/Global/__snapshots__/TableToolbar.spec.js.snap
/openbmc/webui-vue/tests/unit/__snapshots__/AppHeader.spec.js.snap
/openbmc/webui-vue/tests/unit/__snapshots__/AppNavigation.spec.js.snap
/openbmc/webui-vue/tests/unit/i18n.locale-alias.spec.js
/openbmc/webui-vue/tests/unit/i18n.vendor.spec.js
/openbmc/webui-vue/tests/unit/testUtils.js
/openbmc/webui-vue/tests/unit/views/SecurityAndAccess/UserManagement/ModalUser.spec.js
/openbmc/webui-vue/tests/unit/views/Settings/Network/ModalHostname.spec.js
/openbmc/webui-vue/tests/unit/views/Settings/Network/ModalMacAddress.spec.js
75b0203921-Dec-2025 Jason Westover <jwestover@nvidia.com>

Migrate Vuelidate from v1 to v2 API

Complete the migration from Vuelidate v1 (vuelidate 0.7.7) to v2
(@vuelidate/core 2.0.3 and @vuelidate/validators 2.0.4).

Changes include:
- Replace imports from

Migrate Vuelidate from v1 to v2 API

Complete the migration from Vuelidate v1 (vuelidate 0.7.7) to v2
(@vuelidate/core 2.0.3 and @vuelidate/validators 2.0.4).

Changes include:
- Replace imports from 'vuelidate/lib/validators' with
'@vuelidate/validators'
- Convert static 'validations:' objects to 'validations()' methods
which return the validation rules object
- Update helpers.regex() syntax from v1 two-arg format
helpers.regex('name', pattern) to v2 single-arg
helpers.regex(pattern)
- Create custom macAddress validator using regex since macAddress
is not included in @vuelidate/validators v2
- Remove deprecated vuelidate 0.7.7 package from dependencies
- Add unit tests for Vuelidate v2 migration verification
- Fix DateTime store to continue with DateTime update even if NTP
settings update fails
- Fix Network Table components (IPv4, IPv6, DNS) missing @ok event
handlers for Add modal dialogs
- Fix CSR country dropdown by restoring COUNTRY_LIST data and
moving useI18n() call to setup() function
- Fix disconnected modals in Network page by using eventBus to
communicate between child components and parent (hostname,
MAC address, default gateway edit buttons)

Tested:
- npm run build completes successfully
- npm run test:unit passes 66 new Vuelidate validation tests:
- VuelidateMixin.spec.js: getValidationState method tests
- TableDateFilter.spec.js: Date range validation tests
- ModalHostname.spec.js: Hostname validation tests
- ModalMacAddress.spec.js: MAC address validation tests
- ModalUser.spec.js: User form validation tests
- Manual testing performed:
- User Management: Create/edit user with password confirmation
- LDAP: Enable/disable with conditional field requirements
- Date/Time: Switch between NTP and manual modes
- Factory Reset: Confirm checkbox validation when server is on
- Network Settings: Add IPv4, IPv6, DNS addresses via modals
- Network Settings: Edit hostname, MAC address, default gateway
- Certificates: Generate CSR with country dropdown working

Change-Id: I0f6b5d89d1791b36977f1a3c16cbd10bca6a484a
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...


/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/store/modules/Settings/DateTimeStore.js
/openbmc/webui-vue/src/utilities/NBDServer.js
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
Certificates/CsrCountryCodes.js
Certificates/ModalGenerateCsr.vue
Ldap/Ldap.vue
UserManagement/ModalSettings.vue
UserManagement/ModalUser.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDefaultGateway.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv6.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv6.vue
/openbmc/webui-vue/tests/unit/Global/TableDateFilter.spec.js
/openbmc/webui-vue/tests/unit/Mixins/VuelidateMixin.spec.js
/openbmc/webui-vue/tests/unit/testUtils.js
/openbmc/webui-vue/tests/unit/views/SecurityAndAccess/UserManagement/ModalUser.spec.js
/openbmc/webui-vue/tests/unit/views/Settings/Network/ModalHostname.spec.js
/openbmc/webui-vue/tests/unit/views/Settings/Network/ModalMacAddress.spec.js
60d5c9eb12-Dec-2025 Jason Westover <jwestover@nvidia.com>

Fix Vue 3 @change event bindings for forms

In Bootstrap-Vue-Next (Vue 3), the @change event on BFormCheckbox
and BFormRadio passes an Event object instead of the boolean value.
This caused malformed

Fix Vue 3 @change event bindings for forms

In Bootstrap-Vue-Next (Vue 3), the @change event on BFormCheckbox
and BFormRadio passes an Event object instead of the boolean value.
This caused malformed API payloads like:

{"LocationIndicatorActive":
{"isTrusted": true, "_vts": 1765562875420}}

instead of:

{"LocationIndicatorActive": true}

Replace @change with @update:model-value which correctly passes the
new value in Vue 3/Bootstrap-Vue-Next.

Components fixed:
- OverviewInventory.vue: LED toggle
- InventoryServiceIndicator.vue: LED toggle
- InventoryTableSystem.vue: LED toggle
- NetworkGlobalSettings.vue: 6 network switches
- Policies.vue: 4 policy switches (SSH, IPMI, vTPM, RTAD)
- TableIpv4.vue: DHCP switch
- TableIpv6.vue: DHCPv6 switch
- Ldap.vue: LDAP auth and service type controls

Also adds safety net in api.js:
- Request interceptor to strip Vue reactivity from payloads
- Detects and warns about Event objects in API payloads
- Improved response error handling with null safety
- Conditional debug logging (development mode only)

Change-Id: I180d9143087284e28c5066a6ffc141cd7f7038c6
Signed-off-by: jason westover <jwestover@nvidia.com>

show more ...

741a3f3011-Dec-2025 Jason Westover <jwestover@nvidia.com>

Fix Vue 3 v-model and form event handling

Add proper Vue 3 v-model support to components that are used with
v-model bindings from parent components:

- FormFile: Add modelValue prop with computed ge

Fix Vue 3 v-model and form event handling

Add proper Vue 3 v-model support to components that are used with
v-model bindings from parent components:

- FormFile: Add modelValue prop with computed getter/setter, emit both
update:modelValue and input events for backward compatibility,
maintain internal state when parent uses @input instead of v-model

- Modal components: Add modelValue prop and isModalVisible computed
property for proper two-way binding with bootstrap-vue-next

Fix form validation event handling by changing @input to @change for
select, radio, and checkbox elements. In Vue 3 with bootstrap-vue-next,
these elements do not fire @input correctly on first selection.

Components updated:
- FormFile.vue
- ModalConfigureConnection.vue
- ModalAddDestination.vue
- ModalUser.vue
- ModalSettings.vue
- ModalAddRoleGroup.vue
- FirmwareModalUpdateFirmware.vue
- FactoryResetModal.vue
- ModalGenerateCsr.vue
- ModalUploadCertificate.vue
- DumpsModalConfirmation.vue

Change-Id: Ib7376fdff8e9ab5e764f5fae80ac05a761b70312
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...

757550f919-Nov-2025 Hariharan Rangasamy <hariharanr@ami.com>

Fix typo in CSR form validation

correct typo in ModalGenerateCsr.vue to restore
keyCurveId/keyBitLength requiredIf rules

Change-Id: Ied25a53c7b188956925f22fea90f47708055333f
Signed-off-by: Harihara

Fix typo in CSR form validation

correct typo in ModalGenerateCsr.vue to restore
keyCurveId/keyBitLength requiredIf rules

Change-Id: Ied25a53c7b188956925f22fea90f47708055333f
Signed-off-by: Hariharan Rangasamy <hariharanr@ami.com>

show more ...

d36ac8a803-Nov-2025 jason westover <jwestover@nvidia.com>

Migrate to Bootstrap 5 and remove Vue compat plugin

Complete migration from Bootstrap 4 (bootstrap-vue) to Bootstrap 5
(bootstrap-vue-next) and remove the @vue/compat plugin to finalize
the Vue 3 mi

Migrate to Bootstrap 5 and remove Vue compat plugin

Complete migration from Bootstrap 4 (bootstrap-vue) to Bootstrap 5
(bootstrap-vue-next) and remove the @vue/compat plugin to finalize
the Vue 3 migration.

Bundle size impact:
- Before (Bootstrap 4 + bootstrap-vue): 535 KiB gzipped
- After (Bootstrap 5 + bootstrap-vue-next): 511 KiB gzipped
- Reduction: 24 KiB (4.5% smaller)

Package updates:
- Update bootstrap 4.6.2 -> 5.3.8
- Update bootstrap-vue 2.23.1 -> bootstrap-vue-next 0.40.8
- Remove @vue/compat plugin
- Update vue 3.4.29 -> 3.5.24 and related packages
- Add mitt 3.0.1 for global event bus
- Add vue-demi 0.14.10 for library compatibility

Bootstrap 5 CSS updates:
- Replace directional classes: ml/mr/pl/pr -> ms/me/ps/pe
- Replace text-left/right -> text-start/end
- Replace sr-only -> visually-hidden / visually-hidden-focusable
- Update media breakpoint xs -> sm (Bootstrap 5 removed xs)
- Update color functions: gray("700") -> $gray-700
- Add form-switch border-radius for curved toggles
- Update alert, table, toast, form, and button styles

Bootstrap-Vue-Next API changes:
- Use createBootstrap() for plugin registration
- Update modal footer slots: #modal-footer -> #footer
- Fix form select events: @change -> @update:model-value
- Add v-model bindings to modals instead of manual show()/hide()
- Update toast system with custom plugin wrapping useToast()
- Register components and directives explicitly

Vue 3 specific updates:
- Replace $root.$emit with mitt event bus (eventBus.js)
- Update render function from h(App) to createApp(App)
- Add emits option to components
- Use h() instead of $createElement in mixins
- Add Vue 3 compile-time feature flags with documentation
- Update event listeners: $on/$off to eventBus methods
- Add beforeUnmount cleanup for event listeners

New components and significant additions:
- src/plugins/toast.js - Custom toast plugin wrapping useToast() for
Options API compatibility
- src/components/Global/ConfirmModal.vue - Global confirmation dialog
shim to replace Bootstrap 4's removed bvModal.msgBoxConfirm
- src/eventBus.js - mitt-based event bus with Vue 2-compatible API
- Navigation state preservation on page refresh implemented

Critical fixes:
- Add global API interceptor to strip Vue reactivity from payloads
- Preserve binary data (File, Blob, FormData) in API requests
- Fix Generate CSR modal v-model binding for proper open/close
- Remove debug logging and fix jest configuration
- Fix responsive text visibility in AppHeader
- Update BVTableSelectableMixin for proper row selection
- Fix BVToastMixin VNode rendering for Vue 3

Vue 3 modal fixes (lazy-loaded components):
- Add v-model support to network modals (ModalIpv4, ModalIpv6, ModalDns,
ModalHostname, ModalMacAddress, ModalDefaultGateway) by adding
modelValue prop, watcher on modelValue that triggers show(), and
update:modelValue emit in resetForm
- Remove lazy loading from TableIpv4, TableIpv6, TableDns to ensure
modal component refs are available when v-model triggers
- Fix modal title accessibility by adding title prop to modals
(ModalAddDestination, ModalUser, ModalAddRoleGroup, etc.)

i18n fixes (computed properties):
- Fix computed properties using i18n translations in ModalAddRoleGroup,
ModalUser, and ModalUploadCertificate
- Move useI18n() call from data() to setup() and return i18n object
- Use i18n.t() instead of $t in computed properties and templates
- Prevents "this.$t is not a function" and "_ctx.$t is not a function"
errors in Vue 3

Toast notification fixes:
- Fix toast progress bar visibility by setting progressProps to
undefined (documented way to opt-out) instead of false
- Change modelValue prop to interval for auto-dismiss timing
- Remove temporary CSS display:none hack from _toasts.scss

Network settings fixes:
- Fix checkbox @change event sending Vue reactive proxy object instead
of boolean by casting with !! operator in changeDomainNameState and
related methods in NetworkGlobalSettings.vue
- Ensures API receives plain boolean values in PATCH requests

Navigation fixes:
- Fix nav-link styling for navigation items without children by
replacing b-nav-item with router-link in AppNavigation.vue
- Prevents blue font color from .nav-link CSS class

Configuration updates:
- Remove vue-compat webpack configuration
- Add Vue 3 feature flags (__VUE_OPTIONS_API__, etc.)
- Add .cursor to .gitignore

Accessibility improvements:
- Add autocomplete attributes to password and credential inputs
- Add modal title props for screen reader support

Build completes successfully and UI behavior matches pre-migration.

Extracted features (to be submitted in follow-up PRs):
The following features were removed from this migration PR to keep it
focused on the Bootstrap 5 upgrade. They will be submitted separately:
1. UnresponsiveModal - Server connectivity watchdog with auto-retry
2. Auth token persistence - sessionStorage support for X-Auth-Token
3. Hardware store error handling - try/catch, dynamic discovery
4. Login page connecting indicator - Backend polling with spinner
5. Test updates - Jest setup and snapshot updates for
Bootstrap-Vue-Next
6. Documentation updates - Vue 3 and Vue I18n v9+ API documentation
7. Enhanced ConfirmModal - Feature-rich confirmation dialog with
custom actions

Change-Id: Ib76a58f324b3c926cf536e6e4626e4271639de38
Signed-off-by: Jason Westover <jwestover@nvidia.com>

show more ...


/openbmc/webui-vue/.gitignore
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/public/index.html
/openbmc/webui-vue/src/App.vue
/openbmc/webui-vue/src/assets/styles/_obmc-custom.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_alert.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_badge.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_base.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_bootstrap-grid.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_buttons.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_dropdown.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_forms.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_modal.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_pagination.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_section-divider.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_tables.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_toasts.scss
/openbmc/webui-vue/src/assets/styles/bmc/helpers/_colors.scss
/openbmc/webui-vue/src/assets/styles/bmc/helpers/_functions.scss
/openbmc/webui-vue/src/assets/styles/bootstrap/_index.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/Global/Alert.vue
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/ConfirmModal.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/StatusIcon.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableRowAction.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/components/Mixins/BVPaginationMixin.js
/openbmc/webui-vue/src/components/Mixins/BVTableSelectableMixin.js
/openbmc/webui-vue/src/components/Mixins/BVToastMixin.js
/openbmc/webui-vue/src/components/Mixins/LoadingBarMixin.js
/openbmc/webui-vue/src/components/Mixins/TableRowExpandMixin.js
/openbmc/webui-vue/src/components/Mixins/VuelidateMixin.js
/openbmc/webui-vue/src/eventBus.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/locales/en-US.json
/openbmc/webui-vue/src/locales/ka-GE.json
/openbmc/webui-vue/src/locales/ru-RU.json
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/plugins/toast.js
/openbmc/webui-vue/src/store/index.js
/openbmc/webui-vue/src/store/modules/GlobalStore.js
/openbmc/webui-vue/src/store/modules/Operations/BootSettingsStore.js
/openbmc/webui-vue/src/store/modules/ResourceManagement/PowerControlStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/LdapStore.js
/openbmc/webui-vue/src/store/modules/Settings/NetworkStore.js
/openbmc/webui-vue/src/utilities/NBDServer.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/HardwareStatus/Sensors/Sensors.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryReset.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBios.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/KeyClear/KeyClear.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/Overview.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewDumps.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewFirmware.vue
/openbmc/webui-vue/src/views/Overview/OverviewInventory.vue
/openbmc/webui-vue/src/views/Overview/OverviewNetwork.vue
/openbmc/webui-vue/src/views/Overview/OverviewPower.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/Overview/OverviewServer.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
Certificates/Certificates.vue
Certificates/ModalGenerateCsr.vue
Certificates/ModalUploadCertificate.vue
Ldap/Ldap.vue
Ldap/ModalAddRoleGroup.vue
Ldap/TableRoleGroups.vue
Policies/Policies.vue
Sessions/Sessions.vue
UserManagement/ModalSettings.vue
UserManagement/ModalUser.vue
UserManagement/TableRoles.vue
UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDefaultGateway.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv6.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv6.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
/openbmc/webui-vue/vue.config.js
c5d60f5231-Oct-2025 Hariharan Rangasamy <hariharanr@ami.com>

Fixed linter warning messages

Warnings:
src/components/AppHeader/AppHeader.vue
235:18 warning The "refresh" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

Fixed linter warning messages

Warnings:
src/components/AppHeader/AppHeader.vue
235:18 warning The "refresh" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/components/Global/FormFile.vue
11:23 warning The "input" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/components/Global/Search.vue
64:18 warning The "change-search" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
68:18 warning The "clear-search" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/components/Global/TableDateFilter.vue
165:18 warning The "change" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/components/Global/TableFilter.vue
107:18 warning The "filter-change" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/components/Global/TableRowAction.vue
47:21 warning The "click-table-action" event has been triggered but
not declared on `emits` option vue/require-explicit-emits

src/components/Global/TableToolbar.vue
16:27 warning The "batch-action" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
23:27 warning The "clear-selected" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Logs/Dumps/DumpsModalConfirmation.vue
85:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Operations/FactoryReset/FactoryResetModal.vue
122:18 warning The "okConfirm" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Operations/Firmware/FirmwareFormUpdate.vue
6:9 warning `<template>` require directive vue/no-lone-template

src/views/Operations/Firmware/FirmwareModalSwitchToRunning.vue
7:16 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
7:16 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
127:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/SecurityAndAccess/Certificates/ModalUploadCertificate.vue
147:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/SecurityAndAccess/Ldap/ModalAddRoleGroup.vue
147:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
163:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/SecurityAndAccess/UserManagement/ModalSettings.vue
200:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/SecurityAndAccess/UserManagement/ModalUser.vue
370:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
386:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/DateTime/DateTime.vue
328:18 warning The "change" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/Network/ModalDefaultGateway.vue
103:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
114:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/Network/ModalDns.vue
81:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
92:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/Network/ModalHostname.vue
99:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
110:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/Network/ModalIpv4.vue
148:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
165:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/Network/ModalIpv6.vue
120:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
135:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/Network/ModalMacAddress.vue
98:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
109:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

src/views/Settings/SnmpAlerts/ModalAddDestination.vue
124:18 warning The "ok" event has been triggered but not
declared on `emits` option vue/require-explicit-emits
139:18 warning The "hidden" event has been triggered but not
declared on `emits` option vue/require-explicit-emits

Change-Id: I66fb82679cc12003ad435c5c73bb67c2d70b3658
Signed-off-by: Hariharan Rangasamy <hariharanr@ami.com>

show more ...


/openbmc/webui-vue/docs/guide/guidelines/internationalization.md
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableRowAction.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/env/locales/README.md
/openbmc/webui-vue/src/env/locales/nvidia/en-US.json
/openbmc/webui-vue/src/env/locales/nvidia/ka-GE.json
/openbmc/webui-vue/src/env/locales/nvidia/ru-RU.json
/openbmc/webui-vue/src/env/locales/nvidia/zh-CN.json
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/locales/en-US.json
/openbmc/webui-vue/src/locales/ka-GE.json
/openbmc/webui-vue/src/locales/ru-RU.json
/openbmc/webui-vue/src/store/modules/GlobalStore.js
/openbmc/webui-vue/src/utilities/objectUtils.js
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalSwitchToRunning.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
Certificates/ModalUploadCertificate.vue
Ldap/ModalAddRoleGroup.vue
UserManagement/ModalSettings.vue
UserManagement/ModalUser.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDefaultGateway.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv6.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/tests/unit/i18n.locale-alias.spec.js
/openbmc/webui-vue/tests/unit/i18n.vendor.spec.js
0c7f684905-Aug-2025 aravinths1 <aravinths@ami.com>

Remove NoAccess references from privilege roles

The NoAccess privilege is not supported according to the Redfish
schema, yet residual UI privilege role definitions still referenced it.
This commit c

Remove NoAccess references from privilege roles

The NoAccess privilege is not supported according to the Redfish
schema, yet residual UI privilege role definitions still referenced it.
This commit cleans up remaining code fragments that displayed
NoAccess-related descriptions in the web UI.

Resolves discrepancies between schema and UI by aligning privilege
role displays with Redfish standards, reducing user confusion.

Change-Id: I1f21630019407e9b2bf223d2336bc110a6bfafab
Signed-off-by: Aravinth Sri Krishna Raja Raghavan <aravinths@ami.com>

show more ...

24b377db24-Jan-2025 suryav9724 <suryav@ami.com>

style: add Sass configuration for Vue 3

Configure sass in the vue.config.js file and remove the
import of the scss file from each page. The styles are
handled by the css loaderOptions in the config

style: add Sass configuration for Vue 3

Configure sass in the vue.config.js file and remove the
import of the scss file from each page. The styles are
handled by the css loaderOptions in the config file.
Every component and page has the appropriate style applied.
The appearance adjusts to the openBmc webui in Vue 2.

Change-Id: I3773c063646185b80b7bd61d05aa80a993cbd121
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...


/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/App.vue
/openbmc/webui-vue/src/assets/styles/bmc/custom/_buttons.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_dropdown.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_tables.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigationMixin.js
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Global/PageSection.vue
/openbmc/webui-vue/src/components/Global/PageTitle.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/StatusIcon.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/locales/en-US.json
/openbmc/webui-vue/src/locales/ru-RU.json
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/router/index.js
/openbmc/webui-vue/src/router/routes.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/BmcStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/SystemStore.js
/openbmc/webui-vue/src/store/modules/Operations/FirmwareStore.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Operations/Firmware/Firmware.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBios.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
Policies/Policies.vue
UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/tests/unit/Global/__snapshots__/InputPasswordToggle.spec.js.snap
/openbmc/webui-vue/vue.config.js
ee728e6926-Dec-2024 suryav9724 <suryav@ami.com>

Timeout duration error in account policy setting

On user management page fix the error while save the account policy
settings with the automatic after timeout.

while changing the timeout duration t

Timeout duration error in account policy setting

On user management page fix the error while save the account policy
settings with the automatic after timeout.

while changing the timeout duration the value is in string but the
payload should be integer.

Add the parseInt in the timeout duration value while save the account
policy settings with the automatic after timeout.

Change-Id: I69ab13af3fd34e4128d3f01b71b0ffd092fe9a06
Signed-off-by: suryav9724 <suryav@ami.com>

show more ...

825059ac04-Oct-2024 Surya Venkatesan <suryav@ami.com>

i18n fix after vue3 merge to master

Fix i18n issue in the Power restore policy, Inventory LEDs, and User
management page.

After merge the vue3 code to master the i18n Power restore policy,
Inventor

i18n fix after vue3 merge to master

Fix i18n issue in the Power restore policy, Inventory LEDs, and User
management page.

After merge the vue3 code to master the i18n Power restore policy,
Inventory LEDs, and User management page got conflicts and old code
retrieved in master. So unable to render the Power restore policy,
Inventory LEDs and unable to disable the user in user management page

change the i18n.t method to i18n.global.t for the vue3 support.

Change-Id: I46f3f56632308ceaee321dd896e16e922d964b60
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

69be824a23-Sep-2024 Surya Venkatesan <suryav@ami.com>

Invalid feedback if condition change

For required, invalid format, minlength, maxlength, date, pattern
validation if condition change in the few components

Change-Id: Id8eebc140301e48dde833a604ca92

Invalid feedback if condition change

For required, invalid format, minlength, maxlength, date, pattern
validation if condition change in the few components

Change-Id: Id8eebc140301e48dde833a604ca92426ebf77c9c
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

1a814b9f23-Sep-2024 Surya Venkatesan <suryav@ami.com>

LDAP and server power operation page fix

In LDAP loading declare outside the form, form validation condition
change, server power operation page validation added and i18n method
changed in the event

LDAP and server power operation page fix

In LDAP loading declare outside the form, form validation condition
change, server power operation page validation added and i18n method
changed in the event log store.

Change-Id: I903b4dec7da1a5a2cc8441c65693c57201405d70
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

90300e9f01-Aug-2024 Surya Venkatesan <suryav@ami.com>

Add user validation in user management page

helpers and sameAs validations are not working in vue3 so the helpers
and sameAS are imported from vuelidate/lib/validators. Invalid
validation field like

Add user validation in user management page

helpers and sameAs validations are not working in vue3 so the helpers
and sameAS are imported from vuelidate/lib/validators. Invalid
validation field like required are not show so the if condition for
invalid feedback alert field changed. Add user and delete user are
working in the user management page.

Change-Id: I0133e02357048ffbc6206382b2a0a5c162e2384d
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...

de23ea2311-Jul-2024 Surya V <suryav@ami.com>

Vuelidate, I18n, and filter are upgraded to vue3

While navigating to the pages i18n, vuelidate, and filters errors
occurred. i18n, and vuelidate code changes in each page adapted to
vue3. Filter glo

Vuelidate, I18n, and filter are upgraded to vue3

While navigating to the pages i18n, vuelidate, and filters errors
occurred. i18n, and vuelidate code changes in each page adapted to
vue3. Filter global function for date and time format implemented
in the main.js file and those files which as called the filter
functions.

Change-Id: If1a2ee22d47750faef1c35ef2c263299067d9a20
Signed-off-by: Surya Venkatesan <suryav@ami.com>

show more ...


/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigationMixin.js
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/TableCellCount.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableRowAction.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/components/Global/TableToolbarExport.vue
/openbmc/webui-vue/src/components/Mixins/BVPaginationMixin.js
/openbmc/webui-vue/src/components/Mixins/BVToastMixin.js
/openbmc/webui-vue/src/components/Mixins/LocalTimezoneLabelMixin.js
/openbmc/webui-vue/src/components/Mixins/TableRowExpandMixin.js
/openbmc/webui-vue/src/env/components/AppNavigation/ibm.js
/openbmc/webui-vue/src/env/components/AppNavigation/intel.js
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/router/index.js
/openbmc/webui-vue/src/router/routes.js
/openbmc/webui-vue/src/store/modules/GlobalStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/AssemblyStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/BmcStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/ChassisStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/MemoryStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/ProcessorStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/ServerLedStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/SystemStore.js
/openbmc/webui-vue/src/store/modules/Logs/DumpsStore.js
/openbmc/webui-vue/src/store/modules/Logs/EventLogStore.js
/openbmc/webui-vue/src/store/modules/Logs/PostCodeLogsStore.js
/openbmc/webui-vue/src/store/modules/Operations/BootSettingsStore.js
/openbmc/webui-vue/src/store/modules/Operations/ControlStore.js
/openbmc/webui-vue/src/store/modules/Operations/FactoryResetStore.js
/openbmc/webui-vue/src/store/modules/Operations/FirmwareStore.js
/openbmc/webui-vue/src/store/modules/Operations/KeyClearStore.js
/openbmc/webui-vue/src/store/modules/Operations/VirtualMediaStore.js
/openbmc/webui-vue/src/store/modules/ResourceManagement/PowerControlStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/CertificatesStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/LdapStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/PoliciesStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/SessionsStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/UserManagementStore.js
/openbmc/webui-vue/src/store/modules/Settings/DateTimeStore.js
/openbmc/webui-vue/src/store/modules/Settings/NetworkStore.js
/openbmc/webui-vue/src/store/modules/Settings/PowerPolicyStore.js
/openbmc/webui-vue/src/store/modules/Settings/SnmpAlertsStore.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryServiceIndicator.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableAssembly.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableChassis.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableProcessors.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/HardwareStatus/Sensors/Sensors.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryReset.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/Firmware.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareAlertServerPower.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsHost.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalSwitchToRunning.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareModalUpdateFirmware.vue
/openbmc/webui-vue/src/views/Operations/KeyClear/KeyClear.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLan.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/Overview.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewDumps.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewFirmware.vue
/openbmc/webui-vue/src/views/Overview/OverviewInventory.vue
/openbmc/webui-vue/src/views/Overview/OverviewNetwork.vue
/openbmc/webui-vue/src/views/Overview/OverviewPower.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/Overview/OverviewServer.vue
/openbmc/webui-vue/src/views/PageNotFound/PageNotFound.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
Certificates/Certificates.vue
Certificates/ModalGenerateCsr.vue
Certificates/ModalUploadCertificate.vue
Ldap/Ldap.vue
Ldap/ModalAddRoleGroup.vue
Ldap/TableRoleGroups.vue
Policies/Policies.vue
Sessions/Sessions.vue
UserManagement/ModalSettings.vue
UserManagement/ModalUser.vue
UserManagement/TableRoles.vue
UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkGlobalSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/NetworkInterfaceSettings.vue
/openbmc/webui-vue/src/views/Settings/Network/TableDns.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
7d6b44cb23-Mar-2024 Ed Tanous <ed@tanous.net>

Upgrade vue3 and all dependencies

Start the process of porting everything to Vue 3. I have most things
working. npm run-scripts build works, npm install works. prettier
passes. Styles load, logi

Upgrade vue3 and all dependencies

Start the process of porting everything to Vue 3. I have most things
working. npm run-scripts build works, npm install works. prettier
passes. Styles load, login works, webui loads.

This was primarily done using the linked documents below. It makes the
following design decisions:
1. Vue is put in compat 2 mode, which allows most of the components to
work as-is.
2. Bootstrap v4 is used along with bootstrap-vue to keep our components
working.
3. Minor changes are made to load the latest versions of vue-router,
vuex, and vue-i18n.

I suspect this patchset is good enough to start with, and we can clean
up the broken things one patchset at a time. The things that need to
happen are:

1. Get remaining features working again. This primiarily is vue-i18n
for mixins, and non vue components. This likely needs to be done by
not pulling in i18n into the non vue components, then using the .Vue
files to do the internationalization in the component context, NOT in
the mixin context. Alternatively, we could drop MixIns alltogether.
2. Get custom styles working again. Previously, we used some path
hackery in vue.config.js to optionally pre-load styles. This stops
working now that we're required to @import our modules. Likely we
need some rearangement of the paths such that custom styles are a
complete replacement (possibly importing the original) rather than
additive with overrides. That's a guess, but I don't really see
anyone else doing customization the way we've defined it here.
3. Bootstrap 5 no longer requires ANY custom vue modules, as it has
dropped the jquery dependency. We won't be able to pull in bootstrap
5 all at once, so pull in bootstrap 5 under an alias, like
"bootstrap5" that we can optionally import 5 or 4.
4. One at a time, start porting components over to Vue3 syntax and
bootstrap 5. This will be the bulk of the manual work and review.

The only thing I think left is getting unit tests passing, which I
commented out the pre-commit hook to make this PR.

Tested: Code builds. Needs better testing.

[1] https://router.vuejs.org/guide/migration/
[2] https://vue-i18n.intlify.dev/guide/migration/vue3
[3] https://vuelidate-next.netlify.app/migration_guide.html#package-name-and-imports

Change-Id: I5bb3187b9efbf2e4ff63e57994bc528756e2a981
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


/openbmc/webui-vue/.eslintrc.js
/openbmc/webui-vue/OWNERS
/openbmc/webui-vue/babel.config.js
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/postcss.config.js
/openbmc/webui-vue/src/App.vue
/openbmc/webui-vue/src/assets/styles/bmc/custom/_buttons.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_dropdown.scss
/openbmc/webui-vue/src/assets/styles/bmc/custom/_tables.scss
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigation.vue
/openbmc/webui-vue/src/components/Global/ButtonBackToTop.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/InfoTooltip.vue
/openbmc/webui-vue/src/components/Global/InputPasswordToggle.vue
/openbmc/webui-vue/src/components/Global/LoadingBar.vue
/openbmc/webui-vue/src/components/Global/PageContainer.vue
/openbmc/webui-vue/src/components/Global/PageSection.vue
/openbmc/webui-vue/src/components/Global/PageTitle.vue
/openbmc/webui-vue/src/components/Global/Search.vue
/openbmc/webui-vue/src/components/Global/StatusIcon.vue
/openbmc/webui-vue/src/components/Global/TableDateFilter.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Global/TableToolbar.vue
/openbmc/webui-vue/src/components/Mixins/BVPaginationMixin.js
/openbmc/webui-vue/src/components/Mixins/TableRowExpandMixin.js
/openbmc/webui-vue/src/env/assets/styles/_default.scss
/openbmc/webui-vue/src/env/store/ibm.js
/openbmc/webui-vue/src/eventBus.js
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/layouts/AppLayout.vue
/openbmc/webui-vue/src/layouts/LoginLayout.vue
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/router/routes.js
/openbmc/webui-vue/src/store/api.js
/openbmc/webui-vue/src/store/index.js
/openbmc/webui-vue/src/store/modules/Authentication/AuthenticanStore.js
/openbmc/webui-vue/src/store/modules/Logs/EventLogStore.js
/openbmc/webui-vue/src/store/modules/Operations/FirmwareStore.js
/openbmc/webui-vue/src/store/modules/Settings/PowerPolicyStore.js
/openbmc/webui-vue/src/views/ChangePassword/ChangePassword.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableBmcManager.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTablePowerSupplies.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsModalConfirmation.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryReset.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsHost.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareFormUpdate.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/RebootBmc/RebootBmc.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/ModalConfigureConnection.vue
/openbmc/webui-vue/src/views/Overview/OverviewCard.vue
/openbmc/webui-vue/src/views/Overview/OverviewDumps.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewQuickLinks.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
/openbmc/webui-vue/src/views/ResourceManagement/Power.vue
Certificates/Certificates.vue
Certificates/CsrCountryCodes.js
Certificates/ModalGenerateCsr.vue
Certificates/ModalUploadCertificate.vue
Ldap/Ldap.vue
Ldap/ModalAddRoleGroup.vue
Policies/Policies.vue
UserManagement/ModalSettings.vue
UserManagement/ModalUser.vue
UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalDns.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalHostname.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalIpv4.vue
/openbmc/webui-vue/src/views/Settings/Network/ModalMacAddress.vue
/openbmc/webui-vue/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/tests/unit/AppHeader.spec.js
/openbmc/webui-vue/tests/unit/AppNavigation.spec.js
/openbmc/webui-vue/tests/unit/Global/InfoTooltip.spec.js
/openbmc/webui-vue/tests/unit/Global/InputPasswordToggle.spec.js
/openbmc/webui-vue/tests/unit/Global/LoadingBar.spec.js
/openbmc/webui-vue/tests/unit/Global/PageContainer.spec.js
/openbmc/webui-vue/tests/unit/Global/PageSection.spec.js
/openbmc/webui-vue/tests/unit/Global/PageTitle.spec.js
/openbmc/webui-vue/tests/unit/Global/Search.spec.js
/openbmc/webui-vue/tests/unit/Global/StatusIcon.spec.js
/openbmc/webui-vue/tests/unit/Global/TableCellCount.spec.js
/openbmc/webui-vue/tests/unit/Global/TableToolbar.spec.js
/openbmc/webui-vue/tests/unit/Global/__snapshots__/PageSection.spec.js.snap
/openbmc/webui-vue/vue.config.js
b2acbcaa08-Jul-2024 Farah Rasheed <Farah.Rasheed1@dell.com>

Add a confirmation modal for disabling users

Add a confirmation modal in the user management table when users
are disabled.

Change-Id: I06bb1c96abdc7fa895aec2fe2025e9039577ae1d
Signed-off-by: Farah

Add a confirmation modal for disabling users

Add a confirmation modal in the user management table when users
are disabled.

Change-Id: I06bb1c96abdc7fa895aec2fe2025e9039577ae1d
Signed-off-by: Farah Rasheed <Farah.Rasheed1@dell.com>

show more ...

8e1ed79505-Jul-2024 Farah Rasheed <Farah.Rasheed1@dell.com>

Fix word-break for group name in edit role group

Apply 'word-break: break-all' style for the group name field in the
Edit role group modal to ensure long group names wrap properly within
their conta

Fix word-break for group name in edit role group

Apply 'word-break: break-all' style for the group name field in the
Edit role group modal to ensure long group names wrap properly within
their container.

The change improves the readability and layout consistency of the
group name display in the modal even if it contains long text.
Fixes #111

Change-Id: Ia424fadc1630bbf28726a7064ff9b14764877d2b
Signed-off-by: Farah Rasheed <Farah.Rasheed1@dell.com>

show more ...

8841b7d415-Jun-2024 Sean Zhang <xiazhang@nvidia.com>

Replace fixed paths with response from API

Currently, the Redfish request used fixed URIs, modify the code to use
the BMC and System paths got from response of API calls.
For CertificateStore, since

Replace fixed paths with response from API

Currently, the Redfish request used fixed URIs, modify the code to use
the BMC and System paths got from response of API calls.
For CertificateStore, since it was using the URL for constant variable
assignment, changed the constant CERTIFICATE_TYPES to method call.

Change-Id: I330b7272083e3e6993aae5705aae170b8e9a4659
Signed-off-by: Sean Zhang <xiazhang@nvidia.com>

show more ...

2b02103f22-May-2024 aravinths1 <aravinths@ami.com>

Disabled the privilege dropdown for root user

By allowing root user privilege changes to Operator or Read Only,
after login with root user seeing privilege access issues in some
pages and not possi

Disabled the privilege dropdown for root user

By allowing root user privilege changes to Operator or Read Only,
after login with root user seeing privilege access issues in some
pages and not possible to change administrator again.

Allowed root user to change password alone and disabled
the privilege changes

Change-Id: I2be93060fb30e1f08dc2ea20a30fb998dc83ee0f
Signed-off-by: aravinths1 <aravinths@ami.com>

show more ...

dfba4e5423-Apr-2024 Vedangi Mittal <vedangimittal@vedangis-mbp.in.ibm.com>

Removed Challenge password option from Generate CSR panel

- Unable to generate Certificate Signing Request (CSR) when filling
optional field-Challenge password values on Certificate page.
- Hence,

Removed Challenge password option from Generate CSR panel

- Unable to generate Certificate Signing Request (CSR) when filling
optional field-Challenge password values on Certificate page.
- Hence, removed the Challenge password option from the Generate
CSR panel.

Change-Id: I862f024de84f34738be5e5cd22701b63c2309152
Signed-off-by: Vedangi Mittal <vedangimittal3004@gmail.com>

show more ...

d1ef18e606-Apr-2024 Paul Fertser <fercerpav@gmail.com>

Focus default action in modal windows

Users of common WIMP GUIs (as opposed to interfaces primarily meant for
touch input) expect dialog boxes to have keyboard focus set on the
button for default ac

Focus default action in modal windows

Users of common WIMP GUIs (as opposed to interfaces primarily meant for
touch input) expect dialog boxes to have keyboard focus set on the
button for default action so that it can be executed by a single key
press. Usually that is chosen to proceed with the operation but in cases
where that leads to data loss the UI designers often pre-select Cancel
as a precaution.

This patch adds suitable property to all invocations of msgBoxConfirm()
method of `this.$bvModal` BootstrapVue object. For regular actions the
confirmation button is selected and can be activated by Enter or Space
bar. For actions deemed dangerous Cancel is focused instead so it takes
two key presses (first being Tab to shift the focus) to prooceed.

This also improves accessibility following the Web Content Accessibility
Guidelines (WCAG) published by W3C.

Tested: manually verified that modals are consistently shown with the
specified button focused, Enter and Space bar key presses produce the
same effect as left pointer button click: when Cancel is focused it just
closes the window, when OK is focused it sends the corresponding request
to the Redfish endpoint.

Change-Id: I66bfd02e48e08dc18994b11bbdd5d6b3ea27047f
Signed-off-by: Paul Fertser <fercerpav@gmail.com>

show more ...

8132399c27-Feb-2024 Ed Tanous <ed@tanous.net>

Reformat files with new linter

All changes should be whitespace, and were done using npm run-script
lint.

Change-Id: I943c6b435c5c872841af5affc1e89910468b5ca6
Signed-off-by: Ed Tanous <ed@tanous.ne

Reformat files with new linter

All changes should be whitespace, and were done using npm run-script
lint.

Change-Id: I943c6b435c5c872841af5affc1e89910468b5ca6
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


/openbmc/webui-vue/.eslintrc.js
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/package.json
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/Global/FormFile.vue
/openbmc/webui-vue/src/components/Global/PageTitle.vue
/openbmc/webui-vue/src/components/Global/TableFilter.vue
/openbmc/webui-vue/src/components/Mixins/BVToastMixin.js
/openbmc/webui-vue/src/components/Mixins/TableFilterMixin.js
/openbmc/webui-vue/src/i18n.js
/openbmc/webui-vue/src/store/modules/GlobalStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/AssemblyStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/BmcStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/ChassisStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/FanStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/MemoryStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/PowerSupplyStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/ProcessorStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/SensorsStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/ServerLedStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/SystemStore.js
/openbmc/webui-vue/src/store/modules/Logs/DumpsStore.js
/openbmc/webui-vue/src/store/modules/Logs/EventLogStore.js
/openbmc/webui-vue/src/store/modules/Logs/PostCodeLogsStore.js
/openbmc/webui-vue/src/store/modules/Operations/BootSettingsStore.js
/openbmc/webui-vue/src/store/modules/Operations/ControlStore.js
/openbmc/webui-vue/src/store/modules/Operations/FactoryResetStore.js
/openbmc/webui-vue/src/store/modules/Operations/FirmwareStore.js
/openbmc/webui-vue/src/store/modules/Operations/KeyClearStore.js
/openbmc/webui-vue/src/store/modules/Operations/VirtualMediaStore.js
/openbmc/webui-vue/src/store/modules/ResourceManagement/PowerControlStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/CertificatesStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/LdapStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/SessionsStore.js
/openbmc/webui-vue/src/store/modules/SecurityAndAccess/UserManagementStore.js
/openbmc/webui-vue/src/store/modules/Settings/NetworkStore.js
/openbmc/webui-vue/src/store/modules/Settings/PowerPolicyStore.js
/openbmc/webui-vue/src/store/modules/Settings/SnmpAlertsStore.js
/openbmc/webui-vue/src/utilities/NBDServer.js
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/Inventory.vue
/openbmc/webui-vue/src/views/Logs/Dumps/Dumps.vue
/openbmc/webui-vue/src/views/Logs/Dumps/DumpsForm.vue
/openbmc/webui-vue/src/views/Logs/EventLogs/EventLogs.vue
/openbmc/webui-vue/src/views/Logs/PostCodeLogs/PostCodeLogs.vue
/openbmc/webui-vue/src/views/Operations/FactoryReset/FactoryResetModal.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/BootSettings.vue
/openbmc/webui-vue/src/views/Operations/ServerPowerOperations/ServerPowerOperations.vue
/openbmc/webui-vue/src/views/Operations/VirtualMedia/VirtualMedia.vue
/openbmc/webui-vue/src/views/Overview/OverviewEvents.vue
/openbmc/webui-vue/src/views/Overview/OverviewNetwork.vue
/openbmc/webui-vue/src/views/ProfileSettings/ProfileSettings.vue
Certificates/Certificates.vue
Ldap/Ldap.vue
Ldap/TableRoleGroups.vue
Sessions/Sessions.vue
UserManagement/ModalUser.vue
UserManagement/TableRoles.vue
UserManagement/UserManagement.vue
/openbmc/webui-vue/src/views/Settings/DateTime/DateTime.vue
/openbmc/webui-vue/src/views/Settings/Network/Network.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/PowerRestorePolicy/PowerRestorePolicy.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
/openbmc/webui-vue/vue.config.js
4700907527-Feb-2024 Ed Tanous <ed@tanous.net>

Fix useless class in Sessions

New versions of the vue linter flag that this class has no effect. It
isn't clear what the intent was, so remove it so the linter can pass.

Tested: Upgraded linter no

Fix useless class in Sessions

New versions of the vue linter flag that this class has no effect. It
isn't clear what the intent was, so remove it so the linter can pass.

Tested: Upgraded linter now passes.
Change-Id: Icccc4d57714be313c958023c74e9d8508afed4ce
Signed-off-by: Ed Tanous <ed@tanous.net>

show more ...


/openbmc/webui-vue/.env.ibm
/openbmc/webui-vue/.env.intel
/openbmc/webui-vue/OWNERS
/openbmc/webui-vue/docs/guide/components/page-section/index.md
/openbmc/webui-vue/format-code.sh
/openbmc/webui-vue/package-lock.json
/openbmc/webui-vue/run-ci
/openbmc/webui-vue/src/components/AppHeader/AppHeader.vue
/openbmc/webui-vue/src/components/AppNavigation/AppNavigationMixin.js
/openbmc/webui-vue/src/eventBus.js
/openbmc/webui-vue/src/locales/en-US.json
/openbmc/webui-vue/src/locales/ru-RU.json
/openbmc/webui-vue/src/main.js
/openbmc/webui-vue/src/router/routes.js
/openbmc/webui-vue/src/store/api.js
/openbmc/webui-vue/src/store/index.js
/openbmc/webui-vue/src/store/modules/Authentication/AuthenticanStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/FanStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/MemoryStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/SensorsStore.js
/openbmc/webui-vue/src/store/modules/HardwareStatus/SystemStore.js
/openbmc/webui-vue/src/store/modules/Settings/SnmpAlertsStore.js
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableDimmSlot.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableFans.vue
/openbmc/webui-vue/src/views/HardwareStatus/Inventory/InventoryTableSystem.vue
/openbmc/webui-vue/src/views/Login/Login.vue
/openbmc/webui-vue/src/views/Operations/Firmware/Firmware.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareAlertServerPower.vue
/openbmc/webui-vue/src/views/Operations/Firmware/FirmwareCardsBmc.vue
/openbmc/webui-vue/src/views/Operations/Kvm/KvmConsole.vue
/openbmc/webui-vue/src/views/Operations/SerialOverLan/SerialOverLanConsole.vue
Sessions/Sessions.vue
/openbmc/webui-vue/src/views/Settings/Network/TableIpv4.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/ModalAddDestination.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/SnmpAlerts.vue
/openbmc/webui-vue/src/views/Settings/SnmpAlerts/index.js
/openbmc/webui-vue/tests/unit/AppHeader.spec.js
/openbmc/webui-vue/tests/unit/__snapshots__/AppNavigation.spec.js.snap

12