20ce44a5 | 02-Dec-2024 |
Shubhi Garg <shgarg@nvidia.com> |
refresh notifications upon "refresh" button click
Problem: Clicking on Refresh button present on UI top panel does not refresh active notifications or toast messages. Only success notifications gets
refresh notifications upon "refresh" button click
Problem: Clicking on Refresh button present on UI top panel does not refresh active notifications or toast messages. Only success notifications gets hidden automatically after 10s, error, info notifications remains active on UI even after refresh webui.
Solution: Clear all types of active toast messages upon refresh click.
Changes: In refresh method, using querySelectorAll on document object and for each toast currently active, call bvToast.hide to clear.
Change-Id: I47ba416a6b8e8e9872b4b4867abf96bbbef7c0f1 Signed-off-by: Shubhi Garg <shgarg@nvidia.com>
show more ...
|
c1567299 | 07-Sep-2024 |
jason westover <jwestover@nvidia.com> |
Update to api function for MessageID
Update to api function for MessageIDs - PaswordChangeRequired
This patch is just a small tweak while still assuming the current X.Y.Z version format. When searc
Update to api function for MessageID
Update to api function for MessageIDs - PaswordChangeRequired
This patch is just a small tweak while still assuming the current X.Y.Z version format. When searching for a standard Registry string from @Message.ExtendedInfo -which is an array of Message objects-, we should stick to the default namespace. For example, if someone added OpenBMC.0.5.0.PaswordChangeRequired it could be erroneous to assume that it has the same meaning, since semantically it is a different message. For our use, trying to do something useful with version portion seems problematic, so I am fine with ignoring them as already done with code being updated here.
The search function has been made generic to allow reuse, and some IntelliSense sugar was added.
Tested, as Paul documented: Tested: logging in, navigating, logging out with non-expired password. Logging in, navigating, then running `passwd -e <accountname>` via ssh leads to functional password change page on the next request and then navigating proceeds normally, and logging out too. If password is expired before logging in the user gets redirected to the password change page automatically after logging in.
Change-Id: I306ace2024efea13f25e24528a048d0955b2f95b Signed-off-by: j-westover <jwestover@nvidia.com>
show more ...
|
b4498672 | 16-Nov-2024 |
HuyLe <hule@amperecomputing.com> |
Fix the KVM terminal screen not displaying
During the upgrade to Vue 3 [1], the initialization of the selector, including the definitions of height, display type, background, overflow, etc., was ign
Fix the KVM terminal screen not displaying
During the upgrade to Vue 3 [1], the initialization of the selector, including the definitions of height, display type, background, overflow, etc., was ignored, resulting in the KVM screen not displaying the terminal interface. This commit helps to import these properties for the KVM from the _kvm.scss file to fix bug [2].
Tested: 1. Go to the OBMC web page. 2. Go to the KVM page and check that it works normally 3. By minifying and zooming in on the web browser, the KVM screen adjusts automatically. 4. Switch between different pages. 5. Return to the KVM page and check that it works normally.
[1]. https://github.com/openbmc/webui-vue/blob/master/src/App.vue#L38 [2]. Bug: https://github.com/openbmc/webui-vue/issues/128
Change-Id: I1842c914e27dd5c68fe20f49999712b68c1e93a5 Signed-off-by: Huy Le Anh <hule@amperecomputing.com>
show more ...
|
ce7db82c | 05-Jul-2024 |
Paul Fertser <fercerpav@gmail.com> |
Retrieve role information the Redfish standard way
Currently webui-vue has a hardcoded list of pages and sidebar menu items restricted to a specific Redfish role (from a predefined default set). To
Retrieve role information the Redfish standard way
Currently webui-vue has a hardcoded list of pages and sidebar menu items restricted to a specific Redfish role (from a predefined default set). To disallow navigating to restricted pages and to hide disallowed menu items the application needs to know the roles assigned to the session.
bmcweb only implements a single role identity per session so the Roles array returned within a Session object always has just one element.
This patch changes the mechanism used to retrieve the current role from buggy direct query to AccountService (which can only return information about BMC local users) to extracting it from standard Redfish Session object.
In case the role is not available (e.g. when backend implementation predates #Session.v1_7_0.Session) the application assumes Administrator role which is meant as a best effort to continue working given the circumstances. This doesn't pose a security risk because all validation is always performed by the backend itself, so the worst that can happen is end user getting error messages trying to access something without enough privileges.
Tested: logging in and out of accounts with different roles without reloading the page, observing the list of queries made, the role variable assignments and presence of the menu items depending on account, navigating to different pages. Also tested reloading the page and confirmed the correct role was retrieved without going through login again. Also tested deleting and mangling localStorage variable sessionURI prior to doing page reload, in those cases redirect to login page was observed.
Change-Id: I8b6c84060a987489cc1d35c46c1b00618a88b607 Signed-off-by: Paul Fertser <fercerpav@gmail.com>
show more ...
|
918526f2 | 19-Sep-2024 |
Shubhi Garg <shgarg@nvidia.com> |
Fix power operations as per DMTF redfish spec
[Problem Description]:
1) Power Operations page uses "Orderly" and "Immediate" strings for "Graceful reboot/shutdown" and "Force reboot/shutdown". Thes
Fix power operations as per DMTF redfish spec
[Problem Description]:
1) Power Operations page uses "Orderly" and "Immediate" strings for "Graceful reboot/shutdown" and "Force reboot/shutdown". These names do not align according to redfish spec and causes user confusion.
2) For boot settings, if "BootSourceOverrideEnabled" flag is false, WebUI allows to modify boot options.
[Changes]:
1) Changed reboot/shutdown naming convention as per DMTF redfish spec to view correct names on WebUI.
2) Added info-tooltip to give detailed information on Reboot/Shutdown options. Information is referenced from: https://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/ResetType
3) Added "oneTimeBootEnabled" condition check to render BootSettings if condition is true. "oneTimeBootEnabled" checks BootSourceOverrideEnabled flag, if true then BootSettings will be able to modify boot options.
[Testing]: 1) Load WebUI with the changes and go to Power operations page. 2) Check reboot shutdown names have changes to Graceful reboot/shutdown" and "Force reboot/shutdown". 3) Check if BootSettings template renders as expected.
Change-Id: I5a86e05ee03167ebb93ffd381af3a47c277990fd Signed-off-by: Shubhi Garg <shgarg@nvidia.com>
show more ...
|
825059ac | 04-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 ...
|
1b89e594 | 25-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Date and time page helper issue
Invalid feedback element if condition change, Helper import change in date time page and table date filter global component.
Change-Id: I1f01943229b78d4dff36f3905fe3
Date and time page helper issue
Invalid feedback element if condition change, Helper import change in date time page and table date filter global component.
Change-Id: I1f01943229b78d4dff36f3905fe3781ba696d528 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
69be824a | 23-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 ...
|
1a814b9f | 23-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 ...
|
f1ccca3f | 23-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Factory reset modal popup and validation issue
In vue3 i18n is not return the object value from the locale, so unable to do the for loop in Setting list. Remove the for loop and implement the separa
Factory reset modal popup and validation issue
In vue3 i18n is not return the object value from the locale, so unable to do the for loop in Setting list. Remove the for loop and implement the separate list for reset bios and reset to default. And implement the useVuelidate in the factory reset page.
Change-Id: I10833742475b90f7c5349a5b995ff04e93c306de Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
4b89b043 | 19-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Locale gets undefined in the login page
While use i18n.locale it is undefined so those pages use the storedLanguage that page gets failed to load.
Change-Id: I11b45f42d06bb355f561d5c1e93f7516775b1c
Locale gets undefined in the login page
While use i18n.locale it is undefined so those pages use the storedLanguage that page gets failed to load.
Change-Id: I11b45f42d06bb355f561d5c1e93f7516775b1c81 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
4626aec4 | 19-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Network page validation and i18n issue fix
In network page invalid if condition changed, added validations and i18n function changed based on the vue 3 support.
Change-Id: If5b9c00f6da722984f1c568c
Network page validation and i18n issue fix
In network page invalid if condition changed, added validations and i18n function changed based on the vue 3 support.
Change-Id: If5b9c00f6da722984f1c568cfbcb6b34537c3df1 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
00355b65 | 12-Sep-2024 |
Surya Venkatesan <suryav@ami.com> |
Firmware page vuelidate and form file error fix
While add a file in the form file vuelidate error occurs and global component form file not return a file, by emit the $event in form file fix the iss
Firmware page vuelidate and form file error fix
While add a file in the form file vuelidate error occurs and global component form file not return a file, by emit the $event in form file fix the issue.
Change-Id: Icbeddc7a3faa262f12e85268206ae70950f37905 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
6923c46d | 05-Jul-2024 |
Paul Fertser <fercerpav@gmail.com> |
Handle expired passwords Redfish standard way
A password can expire at any moment during session lifetime and bmcweb starts returning 403 Forbidden errors to the requests made after that. The respon
Handle expired passwords Redfish standard way
A password can expire at any moment during session lifetime and bmcweb starts returning 403 Forbidden errors to the requests made after that. The response contains clear indication of the condition in the standard `@Message.ExtendedInfo` attribute which is an array of Message objects.
Previously the code was trying to detect this condition by querying AccountService after logging in but this approach doesn't work when password expires mid-session. Also it was limited to BMC-managed accounts and used hardcoded account URIs in violation of Redfish spec.
This patch adds to the interceptor of 403 error so that the user is automatically redirected to the password change page as soon as the condition is detected.
The same message is also present in the session creation POST response 201 if the password expired before the log in attempt, in this case the session is created as usual but the user is automatically redirected to password change page before any further requests are made.
Tested: logging in, navigating, logging out with non-expired password. Logging in, navigating, then running `passwd -e <accountname>` via ssh leads to functional password change page on the next request and then navigating proceeds normally, and logging out too. If password is expired before logging in the user gets redirected to the password change page automatically after logging in.
Fixes: https://github.com/openbmc/webui-vue/issues/118 Change-Id: I03f5ee2526a4bb1d35d3bbea1142fea077d6bfed Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
90300e9f | 01-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 ...
|
47bf8551 | 11-Jun-2024 |
Nikhil Ashoka <a.nikhil@ibm.com> |
Removed TFTP code update option
- Removed TFTP server firmware update ability in the UI.
Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com> Signed-off-by: Surya Venkatesan <suryav@ami.com> Change-Id:
Removed TFTP code update option
- Removed TFTP server firmware update ability in the UI.
Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com> Signed-off-by: Surya Venkatesan <suryav@ami.com> Change-Id: Icbeddc7a3faa262f12e85268206ae70850f37905
show more ...
|
a6c682cb | 17-Jul-2024 |
Ed Tanous <etanous@nvidia.com> |
Update vue.config.js for vue3
Vue3 has deprecated "hash" and recommends moving to contenthash. Also remove source maps when not in development mode, so the build fits on the bmc again.
Change-Id:
Update vue.config.js for vue3
Vue3 has deprecated "hash" and recommends moving to contenthash. Also remove source maps when not in development mode, so the build fits on the bmc again.
Change-Id: I55b480d9b722c22b3670b19ec699a76fce07d1a5 Signed-off-by: Ed Tanous <etanous@nvidia.com>
show more ...
|
f74cbab0 | 17-Jul-2024 |
Ed Tanous <etanous@nvidia.com> |
Rebase vue3 to latest master
Ipv6 got added. Make the updates to make it build for vue3.
Change-Id: Ifaa4b8e46200a8431c5d9ca9b8e3e279cc868f26 Signed-off-by: Ed Tanous <etanous@nvidia.com> |
de23ea23 | 11-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 ...
|
883a0d59 | 23-Mar-2024 |
Ed Tanous <ed@tanous.net> |
i18n, vue-router and vuex upgrade
1. Configuration of i18n legacy as false. 2. Translation function t is called using the useI18n. 3. Used the i18n.global.t() function from i18n instead of this.$t()
i18n, vue-router and vuex upgrade
1. Configuration of i18n legacy as false. 2. Translation function t is called using the useI18n. 3. Used the i18n.global.t() function from i18n instead of this.$t() 4. Event bus error that occurred during logout. 5. Implemented vue-router 4.4.0 and vuex upgrade to 4.1.0
Change-Id: I9464d82c76dcc1445ce271983ea3ab9d7b03d265 Signed-off-by: Surya Venkatesan <suryav@ami.com>
show more ...
|
7d6b44cb | 23-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 ...
|
41303975 | 30-Sep-2024 |
Nikhil Ashoka <a.nikhil@ibm.com> |
Updated Power restore policy URI
- Previously, we used to get the values for power restore policy page from“JsonSchemas/ComputerSystem/ComputerSystem.json”. Now we have removed the hardcoded API
Updated Power restore policy URI
- Previously, we used to get the values for power restore policy page from“JsonSchemas/ComputerSystem/ComputerSystem.json”. Now we have removed the hardcoded API call and are fetching the values from the JsonSchemas/ComputerSystem’s URI because we would have versioned ComputerSystem.json in the redfish response.
Change-Id: I1a25cbbb3dfc536485a6f71a359ae32c6eadf5f7 Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
show more ...
|
51feb353 | 27-Sep-2024 |
Sean Zhang <xiazhang@nvidia.com> |
Fix event entry download
Event entry should be downloaded with specific http header of "Accept: application/octet-stream" or "*/*", but the default http header is set to "Accept: application/json",
Fix event entry download
Event entry should be downloaded with specific http header of "Accept: application/octet-stream" or "*/*", but the default http header is set to "Accept: application/json", so need to specify the header for event downloading.
Refer: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/40136
Tested: Event entry data can be downloaded with the fix.
Change-Id: Ia45123340da79a54fc4229470e6822206b8df808 Signed-off-by: Sean Zhang <xiazhang@nvidia.com>
show more ...
|
f4e79739 | 17-Sep-2024 |
Nikhil Ashoka <a.nikhil@ibm.com> |
Updated Dumps card in overview page
- The Dumps count in the overview page is not displaying the count of all
the entries. Updated to display count of all entries. - The registration of Dumps stor
Updated Dumps card in overview page
- The Dumps count in the overview page is not displaying the count of all
the entries. Updated to display count of all entries. - The registration of Dumps store is in multiple locations, store -> index.js and env -> store -> ibm.js. Causing error in IBM machines because of duplicate
registration. Removed from env folder.
Change-Id: Idc57a85db090d1b1d3211c01e658b181a7fc1177 Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
show more ...
|
ccf5c5c8 | 12-Sep-2024 |
jason westover <jwestover@nvidia.com> |
Add default Target to MultipartHttpPush
When no targets are provided, webui will now default to the BMC: i.e. "/redfish/v1/Managers/bmc"
The current version of bmcweb requires the Targets parameter
Add default Target to MultipartHttpPush
When no targets are provided, webui will now default to the BMC: i.e. "/redfish/v1/Managers/bmc"
The current version of bmcweb requires the Targets parameter. bmcweb will be updated for multipart to match the behavior of simpleupdate: if Targets is empty or missing, default to the BMC.
Also, the fwupdate page will be updated soon to allow the selection of Targets from the FirmwareInventory list.
This should be a temp webui fix until we are comfortable with the upcoming changes to bmcweb.
Change-Id: I630dcb40068b98aad8e1d276d17fe9af4793e788 Signed-off-by: jason westover <jwestover@nvidia.com>
show more ...
|