summaryrefslogtreecommitdiff
path: root/src/views/Overview
AgeCommit message (Collapse)AuthorFilesLines
3 daysAdd asset tag edit functionality to overview pageHEADmasterNishant Tiwari2-1/+165
Implemented the ability to view and edit the system asset tag directly from the Overview page, including a modal dialog for editing, Vuex store action for saving, and truncation in the app header. Changes: - Added ModalAssetTag.vue component with: - Form input for editing the asset tag value - Vuelidate validation requiring a non-empty tag - Updated OverviewServer.vue to: - Display asset tag in the system information section - Add inline edit button using Carbon edit icon - Dispatch saveAssetTag store action with toast feedback - Refresh global system info after a successful save - Added saveAssetTag action to SystemStore.js using PATCH against the system path endpoint - Updated AppHeader.vue to truncate asset tags longer than 30 characters with an ellipsis, preserving full value in the title attribute for accessibility - Added translation keys for asset tag label, modal title, and success/error toast messages in en-US, ka-GE, and ru-RU locale files Testing: - Verified asset tag displays correctly in system info section - Verified modal opens, validates, and submits correctly - Verified PATCH request updates asset tag on the server - Validated success and error toast notifications display - Confirmed long asset tags are truncated in the header Change-Id: I6ac51dfc24b9d40986b74e9220cff955b029d659 Signed-off-by: Nishant Tiwari <tiwari.nishant@ibm.com>
2026-06-09Implemented Power page with VueQuery and Composition APINikhil Ashoka1-22/+55
This change switches power control to the EnvironmentMetrics-based Redfish endpoint, derives minimum and maximum power cap values dynamically from Redfish data, and updates ControlMode and SetPoint handling to align with the latest schema. Key changes: 1. Power control API and Redfish types: - Removes src/api/services/powerControlService.ts; fetching and PATCH are handled in the composable using shared Redfish utilities - Adds EnvironmentMetrics and PowerLimitWatts types in src/api/types/redfish.ts with proper ControlMode enum ('Automatic' | 'Disabled' | 'Manual' | 'Override') - Chassis gains an EnvironmentMetrics link - Composable resolves the Chassis collection via useRedfishCollection<Chassis>('/redfish/v1/Chassis'), picks the first chassis with EnvironmentMetrics, and fetches that resource with useQuery; mutation sends PATCH and invalidates queries to refetch fresh server state (returns Promise<void>; view owns user-facing messages) 2. Power control composable (src/components/Composables/usePowerControl.ts): - Replaces Vuex PowerControlStore with a Composition API-based composable - Uses useRedfishRoot() and useRedfishCollection for cached ServiceRoot and Chassis; uses TanStack Query to load and cache EnvironmentMetrics power data - Configures staleTime (30s freshness window) and refetchInterval (30s automatic polling when tab visible) for live power consumption updates - Note: Only controls the first Chassis with EnvironmentMetrics in multi-chassis systems (intentional for current use case) - Forwards AbortSignal to API calls for proper request cancellation - Reuses shouldRetry function from useAllSubResources - Derives dynamic min and max power cap values from Redfish PowerLimitWatts.AllowableMin/Max - Provides a mutation for submitting updated SetPoint and ControlMode; omits SetPoint when disabling to avoid sending invalid values - Handles all ControlMode enum values (Automatic, Disabled, Manual, Override); UI sets Automatic/Disabled but preserves Manual/Override when read from server - Type-safe parameters (number | null instead of string coercion) 3. Toast composable and global plugin: - useToast.ts (renamed from .js) uses bootstrap-vue-next useToast() with TypeScript types; keeps successToast/errorToast API with i18n titles - Type restricted to string for simplicity; includes TODO for potential VNode support expansion if needed - src/plugins/toast.js continues to expose global $toast for Options API - BVToastMixin.js updated to use modelValue and extract VNode content for consistency with bootstrap-vue-next 0.40.8 - Both implementations use isStatus: true for consistent toast styling with status icons 4. Views modernization: - Refactors src/views/ResourceManagement/Power.vue to use <script setup>, usePowerControl(), and the new toast composable; submitForm uses try/catch and t('pageServerPowerOperations.toast.*') for success/error toasts - Implements value caching to preserve user's typed input when toggling power cap checkbox on/off - Guards form sync watcher with v$.value?.$dirty check to prevent overwriting in-progress edits during background refetch - Loader semantics: show on first load (isLoading) and mutations, but render cached data instantly on subsequent visits with silent background refetch (avoids flicker) - Renamed validator from 'between' to 'withinPowerCapRange' to avoid confusion with Vuelidate's built-in validator - Handles all ControlMode values (Automatic, Disabled, Manual, Override) in form state synchronization - Refactors src/views/Overview/OverviewPower.vue to read from the power control composable instead of Vuex; implements settled computed to emit overview-power-complete only when chassis collection is fetched AND either no EnvironmentMetrics exists or metrics query has completed (prevents premature completion) - Shows power cap for all active control modes (Automatic, Manual, Override) - Removes mapState/mapActions usage and related Vuex wiring 5. Store cleanup and typing: - Deletes src/store/modules/ResourceManagement/PowerControlStore.js - Removes PowerControlStore registration from src/store/index.js - Updates src/store/api.d.ts to match actual implementation (set_auth_token with snake_case, accepts string | null | undefined) - Adds src/i18n.d.ts to provide basic typing for the shared api Tested-by: Manual testing on development server - Power consumption and cap values load correctly from EnvironmentMetrics with automatic 30-second polling (refetchInterval) when tab is visible - Min and max power cap values reflect dynamic limits from Redfish - Updating the power cap and enable state sends correct SetPoint and ControlMode values; SetPoint is omitted when disabling - All ControlMode values (Automatic, Disabled, Manual, Override) are handled correctly - User's typed values are preserved when toggling power cap checkbox - Form edits are not overwritten by background refetch (dirty state guard) - Success/error toasts show localized messages with consistent modelValue-based timing and status icons - Overview power card reflects updated power state; overview loader waits for both chassis and metrics queries to settle before completing - Request cancellation works properly on component unmount Change-Id: Ic61631efd8790150a5e2914822f1dd25bd77305a Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com>
2026-03-05Implemented styling changesVedangi Mittal1-1/+3
- Implemented styling changes to restore UI appearance, behavior, margins, and sizing consistent with Vue 2. - Fixed broken styling across the search bar, filters, buttons, pagination, app navigation, cards, badges, and toast messages. Change-Id: If4aa37635136d94ebd3ad0a7533260bd788c2436 Signed-off-by: Vedangi Mittal <vedangimittal3004@gmail.com>
2026-01-20Migrate build system from Vue-CLI to ViteJason Westover1-1/+1
"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>
2026-01-14Fix Unit tests and useI18n() misusejason westover10-56/+0
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>
2025-12-18Fix Vue 3 @change event bindings for formsJason Westover1-1/+1
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>
2025-11-22Migrate to Bootstrap 5 and remove Vue compat pluginjason westover10-31/+123
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>
2025-04-08fix: Update date formatting to use formatTimesuryav97241-1/+1
Show the Time and Timezone in the overview page instead of showing date twice. Format the date using the formatTime filters to display the proper date and time in the overview page. Before it shows date twice, In the place of time it shows date. Change-Id: Ibd8211530750091c03f788106bfb78097be2b2d8 Signed-off-by: Surya Venkatesan <suryav@ami.com>
2025-03-26style: add Sass configuration for Vue 3suryav97243-9/+0
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>
2024-10-03Vuelidate, I18n, and filter are upgraded to vue3Surya V1-1/+2
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>
2024-10-03i18n, vue-router and vuex upgradeEd Tanous10-0/+56
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>
2024-10-03Upgrade vue3 and all dependenciesEd Tanous3-1/+10
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>
2024-09-24Updated Dumps card in overview pageNikhil Ashoka1-1/+1
- 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>
2024-05-21Added toast notification for identify LEDsNikhil Ashoka1-0/+3
- Added success toast notification messages for identify LEDs present at Inventory and LEDs page and Overview. - Import of Toast was not present in Overview's Inventory card and DIMM slot table, fixed it. Signed-off-by: Nikhil Ashoka <a.nikhil@ibm.com> Change-Id: If9ad84e66f6f15616cb8af51b1e84d8d06b1afd0
2024-03-05Reformat files with new linterEd Tanous2-3/+3
All changes should be whitespace, and were done using npm run-script lint. Change-Id: I943c6b435c5c872841af5affc1e89910468b5ca6 Signed-off-by: Ed Tanous <ed@tanous.net>
2023-04-12Don't count solved problems in OverviewGlukhov Mikhail1-2/+8
At the moment, the Overview page shows the total number of log errors and warnings, even if they are marked as "resolved". After the patch, only unresolved errors and warnings are counted. Test: Created an error event and a warning event in the log. The Overview page displays 1 and 1. Marked them as resolved. The Overview page displays 0 and 0. Change-Id: I8ee1122bbec3e678d33edfbd2035d02553fb64ea Signed-off-by: Glukhov Mikhail <mikl@greenfil.ru>
2023-02-10Fix bug in Overview endless loadingKonstantin1-3/+4
Bug description: Before this commit there was an endless loading on blue bar when user entering to the Overview. Problem was missing `if` statement after what that promise wasn't be able to finish. Test: Step1. Launch webui on browser and see Overview page. Step2. Wait a while. Blue loading bar finished pulsing. Change-Id: I2ea3b6f125ca24fcefeea8020c4a903ea018f4f7 Signed-off-by: Konstantin Maskov <sulwirld@gmail.com>
2022-09-26Server manufacturer and Firmware version on Overview tabMichalX Szopinski2-14/+36
Add "Server manufacturer" and "Firmware version" to "Server information" card in Overview tab. Signed-off-by: MichalX Szopinski <michalx.szopinski@intel.com> Change-Id: If02516b1b721920f83c5fe42a7c5e79fbb1825ca
2022-01-07Fixed vuex dumps errorsKenneth1-2/+2
Refactored getters and dispatch names were not matching the getters and actions strings, which made dumps not work. Made the getters and dispatch names match the vuex getters and actions strings to the refactored codebase. Signed-off-by: Kenneth Fullbright <kennyneedsmilky@gmail.com> Change-Id: I414a7f85ef70c270785b825b3b14f9dfb27a33a7
2021-12-01Fix DHCPv4 displayKonstantin Aladyshev1-1/+3
Currently UI DHCPv4 element shows list of DHCP address dictionaries. Instead of showing the whole object as it is, display only the address of the first element in the list. Signed-off-by: Konstantin Aladyshev <aladyshev22@gmail.com> Change-Id: Ifc1d8a2400f5eafba435355c3884c35392f73d74
2021-11-09Fix overview errorDixsie Wolmers2-40/+13
Console errors were related to the power and network card components from https://gerrit.openbmc-project.xyz/c/openbmc/webui-vue/+/46511 Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Ib967229b74462ed8d5c28cbac24c2a2fbfc834c2
2021-09-24Rename TableDataFormatter mixin to DataFormatterDixsie Wolmers6-25/+25
Mixin was renamed to reflect usage on all components, not only tables. Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Ic962ba879fffa39b9f6f93446771fbf6f67915d0
2021-09-24Update overview layoutDixsie Wolmers10-335/+575
Layout updates uses bootstrap vue cards to display general information. View more links and download or export ability has been added to the overview page. Network settings displays the hostname and the first IP address for the first ethernet interface. Link status was also added. TODO: Add idle power and power mode properties in seperate commit for each story. Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Iaf0720d76b2a9416f068a1e779ede59bffda9727
2021-08-10IA update: Update configuration to settingsSandeepa Singh2-3/+3
This is the fourth update to information architecture changes and has the following changes: - The configuration section is updated to settings - The date and time settings page is updated to date and time - The network settings page is updated to network - The power restore policy page in operations section is moved to settings section Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com> Change-Id: I6f5ab25f5227530be430bd39a4d9629b3bf09d8b
2021-08-10IA update: Update control section to operationsSandeepa Singh1-2/+1
This is the third update to the information architecture changes and has the following changes: - The control section has been updated to operations - The server led page has been removed - The firmware page is moved to operations section Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com> Change-Id: I2e23da447890d7bee51892e1f782d5f2db6dded4
2021-08-10IA update: Add logs and update overview iconDerick Montague1-1/+1
This is the first patchset of the information architecture changes. These changes are the result of several months of design research with users to improve the existing information architecture (IA). More information can we found in the Github story. This patchset will add a Logs section and move event logs and dumps from the Health section to the new Logs section. It will also update the icon used for the Overview page. Github story: https://github.com/openbmc/webui-vue/issues/56 Testing: 1. IBM build: - Logs contained Event logs and dumps - Both pages rendered when clicking link 2. Intel build - Logs contained Event logs only - Logs page rendered when clicking link 3. Tested default build - Logs contained Event logs only - Logs page rendered when clicking link Signed-off-by: Derick Montague <derick.montague@ibm.com> Change-Id: I4621837202cf5ad3469d6ea460d9a5bdc79c8816
2021-03-01Update the default firmware pageYoshie Muranaka1-17/+11
- Minor updates made to the general layout and styles - Changes to some page copy - Moves update firmware form to bottom of page - Adds dynamic TFTP upload option - Adds dynamic card layout for BMC and host firmwre - 2 cards for combined - 4 cards for separate - Removes FirmwareSingleImage components that were used for IBM builds Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: Ib5465ecc30dd1505824bf41c82d33b7655d5e598
2021-02-08Add test hook for overview pageSandeepa Singh1-1/+1
Signed-off-by: Sandeepa Singh <sandeepa.singh@ibm.com> Change-Id: I76f8abe6e28714a9c5e8af85e6f4d854146db7b2
2021-01-11Removed truncated style from overview pageSurenNeware2-16/+7
- Removed truncated style from network information section. Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: I11339a1c6099a733b07979dd26b13a0b400de19a
2020-12-02Fix server LED switch value on errorYoshie Muranaka1-3/+1
Add error state handling in the ServerLed store to make sure the UI accurately reflects the state if there is an error. Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: I7f3647df9f5a32e241005eb7058a7cda1e0ba36a
2020-12-02Refactor server LED indicator variable namingDerick Montague1-8/+13
- Make name consistent between both Overview and Server LED views Signed-off-by: Derick Montague <derick.montague@ibm.com> Change-Id: I36601b603bfeb4e9f2b782641dd2813882466c21
2020-12-01Update indicator LED switch using another propertySurenNeware1-3/+1
- Update indicator LED redfish endpoint based on 'LocationIndicatorActive' property. - Updated both ServerLED and Overview page. Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: Id47133e4834b658d49911be87d93f7985519a6d2
2020-11-13Align button iconsDixsie Wolmers1-2/+2
- Fixes button icon and text alignment - App header buttons to be addressed separately - Button documentation will be addressed in separate commit - Aligns form input buttons: datepicker, clear search, and password toggle - Moves title from icon to button for icon only buttons - Aligns validation icon with form input buttons Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Ie28d7d7dd7303ab6bf1897d1fa569e1580cc2f9d
2020-11-12Resolve custom-event-name-casing lint warningsSukanya Pandey4-6/+6
Signed-off-by: Sukanya Pandey <sukapan1@in.ibm.com> Change-Id: I9eea4eac3b8cacc216fc9ad1011e51622622e75f
2020-11-03Update linting packages to use latestDerick Montague4-35/+32
- 99% of changes were small syntax changes that were changed by the lint command. There were a couple of small manual changes to meet the property order patterns established as part of the vue:recommended guidelines. There are rules that were set from errors to warnings and new stories are being opened to address those issues. Testing: - Successfully ran npm run serve - Successfully ran npm run lint - Verified functionality works as expected, e.g. success and failure use cases - Resolved any JavaScript errors thrown to the console Signed-off-by: Derick Montague <derick.montague@ibm.com> Change-Id: Ie082f31c73ccbe8a60afa8f88a9ef6dbf33d9fd2
2020-10-30Add two file firmware updateYoshie Muranaka1-22/+37
Adds the ability to upload separate Host and BMC firmware images through the GUI. By default, the two file firmware update page will be shown. Changes to the .env configurations will enable the single file upload page. The IBM env is configured to allow single file firmware update. Two file upload features: - File upload through local workstation or tftp server - Reboot from backup BMC image - Does not have ability to reboot from backup host image - Does not implement checks in GUI for host status, which is the same as what we have in phosphor-webui Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: Ibf2a2d9ffc3952dd5a5454c723350c61d9f91c3e
2020-10-26Make copy of single file firmware uploadYoshie Muranaka1-1/+1
Make a copy of single file firmware upload component and store in env directory. Update IBM router to use copied single file firmware components. Update IBM store module to use copied single file firmware store. Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: I046ce6c69a02b90400058866295b84c5435f5a4b
2020-10-19Update relative path imports to use '@' aliasSurenNeware1-2/+2
- Add '@/' instead of '../../../' Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: Ida1dc26f2bd62f38914a74b729ee8fd143c360ac
2020-10-07Add updated table stylesSukanya Pandey1-0/+1
- Refer below link for styles: https://ibm.invisionapp.com/share/D8O06PPE32B#/screens Signed-off-by: Sukanya Pandey <sukapan1@in.ibm.com> Change-Id: I6dcc3b8d0fb7ef19388b5bfeaf87fce78725b638
2020-10-06Add stacked table style for small screenSurenNeware1-0/+1
- Add style to the stacked table type for small screen only. Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: I79fb44b20c8436df5734f89e60c98966c9c6a591
2020-09-11Change overview page critical event sort orderDerick Montague1-1/+1
- Set the table to sort by id rather than date to resolve confusion if date stamps are identical. In this use case, the id column will not be sorted correctly based on limitations in the framework. Signed-off-by: Derick Montague <derick.montague@ibm.com> Change-Id: I51ad712d34aea7da2a4152dfb695c16b5f94b453
2020-08-26Format date and time in event log tablesDixsie Wolmers1-1/+2
- Adds line break to format date and time in Event Logs and Overview event log table Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Ib277a88b80115753bc74dc6dd21bf6a49eef101f
2020-08-21Add default empty table stateSurenNeware1-29/+26
-Add empty table state to High priority events table in Overview page and Processors table in Hardware status page. Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: I68b613cc181c2423c9a8769d26f218ff89a0c834
2020-08-13Add Firmware pageYoshie Muranaka1-2/+2
Adds ability to upload a fimware image by local workstation or TFTP. Also adds ability to reboot BMC from the backup image. - Add route definition, component view, and store for Firmware page - Get ActiveSoftwareImage location at /redfish/v1/Managers/bmc - Get backup by checking for an image id that is not the same as the active image /redfish/v1/UpdateService/FirmwareInventory - Switch running firmware image by making PATCH request to /redfish/v1/Managers/bmc Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: I04450e5a170d374122908c4c0349ba3b6e93ed2c
2020-08-04Remove unnecessary style block from overview pageSurenNeware1-7/+4
- Remove text-transform from Overview Network style block. - This commit will not change the original state of value getting from backend by text transform. Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: I91db237cc0753e2dc477b2d324d745ea1e387c2b
2020-07-28Update Interface colorsDixsie Wolmers1-2/+1
Components affected by style guide gray pallete changes were updated from gray200 to gray100. Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: Ib5b2cca55f2c7d1d6be49e8e64a10db6ef5e4524
2020-07-27Add ability to customize theme stylesYoshie Muranaka2-3/+0
Showcases how different themes/styles can be supported using .env variables. If an environemnt name is specified during the build process, an overrides file will be pulled in to allow modifications to color and font definitions. This commit includes possible style modifications with the openpower env name as an example. To see the openpower changes, add the variable definition VUE_APP_NAME="openpower" to your .env.development.local file or build using 'npm run build -- --mode openpower' - Moves helper imports into vue config to allow for specific import order - Removed helper imports in SFCs Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: Iaf7a59c24fda06a7b74e23f2f042fb3300cb2056
2020-07-24Add table responsive layout and fix search icon visibilitySurenNeware1-2/+2
-Add responsive layout for all the tables. -Fix search icon visibility in search component. Signed-off-by: Suren Neware <sneware9@in.ibm.com> Change-Id: Ibb4f77cf322aeb3699b13ab6cbbdb6cc38efbdc4
2020-07-23Update global typographyDixsie Wolmers1-2/+2
Updated the following body, label, and heading styles to match new style guide: - Font sizes - Font weight - Line height - Color Signed-off-by: Dixsie Wolmers <dixsie@ibm.com> Change-Id: I014c968f6542b697fec8c3b9af781e64ac10794d
2020-07-21Update use of Sass variables for better themingYoshie Muranaka1-1/+1
Use Bootstrap color functions for theme-colors and grays instead of directly referencing Sass variable to allow more flexible theming. Signed-off-by: Yoshie Muranaka <yoshiemuranaka@gmail.com> Change-Id: Id08b77ff6df3bdf99400dcdfe964853706f1070f