Broadleaf Microservices
  • v1.0.0-latest-prod

Unified Admin Release Notes for 1.10.11

Features & Enhancements

Product Assets Management

Introduced a new drag-and-drop component for Product Assets. Note: This feature is disabled by default, as assets need a predefined sort order to display correctly. For more information, see CatalogServices Release Notes.

Product Characteristics Management

Introduced new components for managing characteristics on products. See: CatalogServices Release Notes.

Slide-Over Forms Support

Added support for slide-over update and create forms: * UPDATE_VIEW as a row action * CREATE_VIEW as a grid action

New Field Type: SELECT_LIST

Added a SELECT_LIST field type to allow users to choose from a list of options (e.g., variants when creating a product).

Time Zone Preferences

Admin users can now change and save their default time zone.

Content Item Enhancements

  • The Content Item form now includes a Base URI field, displaying the model’s URI if accessible.

  • When cloning a content item, the cloned item now automatically opens for editing (unless marked as embedded).

  • Added a modal for selecting the content model when creating a new nested content item, replacing the previous dropdown selection.

Admin User Enhancements

  • The create/edit form now includes a default application field, used for pre-selecting an application on user sign-in. Note: This is only relevant if the user has assigned applications.

  • A new "My Profile" option was added to the user drop-down menu, allowing users to update their email, phone, and default application.

Session Management Enhancements

Support for the new Remember-Me Login feature: * useKeepSessionAlive now silently extends the session when a remember-me cookie is available. * If the maximum session expiry date is reached, a modal prompts the user to log out or restart the session. * If no action is taken, the user is logged back in automatically. * New configurable settings: - VITE_AUTH_PROVIDER_OAUTH_REMEMBERMEURL (default: /auth/remember-me-continuation) - VITE_AUTH_PROVIDER_OAUTH_HEADERS_REMEMBERMEAVAILABLE (default: X-Remember-Me-Available)

Field & Grid Enhancements

  • Added "Data Driven Enums" as a field type for entity creation.

  • Enhancements to FieldArrayGrid:

    • Introduced drag-and-drop reordering.

    • Improved UX for adding new items.

  • Added a save/discard prompt before promoting changes.

  • Enhanced pagination details for admin grids.

  • Added custom CSS support for admin grids.

  • Introduced a new action type (INLINE_GRID_SELECT) that renders a select box and fires an endpoint when the value changes.

  • All field components now save their label from metadata as the custom field label.

  • TextAreas in the admin are now resizable.

  • Updated ActionListGridFormRowAction initial value mapping to allow row data to be used as the root for the initial values object used in the context request and the ModalFormAction for the row.

    • This is enabled by adding the useRowAsRootInitialValues attribute via metadata and having its value be true.

    • Tracking info is also added to the context request when the useRowAsRootInitialValues attribute is true.

  • Registered a new FORM secondary action component for entity views named EntityModalFormAction that simply renders a form configured via metadata and allows submitting to an endpoint.

  • Add changes to allow helptext and hints on select grids and pass along filtering information which should be used when determining inclusions/exclusions.

  • Fixed ListGridRow so selected rows can correctly be highlighted in a grid, improving visibility of user’s actions.

Change Highlight Enhancements

Introduced dirty state tracking for form fields in FieldDecorations and CollectionField components. This includes determining if a field’s current value differs from its initial value and providing a method to revert changes. * Fields that are changed from their initial value are immediately highlighted and marked as "Unsaved" * Each field highlight has a Revert icon that allows users to click it to revert the change

Audit History

Introduced a new Audit History modal that tracks entity changes.

UI & UX Enhancements

  • Introduced an ActionGroup concept to allow grouping of actions on admin grids.

  • Facet label translations are now visible in the admin.

  • Added support for SVG file uploads in the asset dropzone.

Business Type Enhancements

  • Implemented exponential polling for metadata changes when loading BusinessTypeFields component.

    • Exponential polling increases the delay between poll requests at an exponential rate — after each failed request, the next request delays by a multiple of the previous attempt time, and so increases with each failure.

Order Fulfillment Workflow Views

  • Implemented Workflow sub-views for Order Fulillment

    • Registered existing blFulfillmentViewBody as FULFILLMENT_SUMMARY view to allow it to be used as a view in metadata

    • Use new blFulfillmentViewSection component to render sub-views for FulfillmentView like blOrderViewSection does for OrderView.

      • Enabled via an attribute on FulfillmentView, supportViewsForBody, or else the old behavior with no sub-views is used

    • Added blFulfillmentViewNav sub-component of blFulfillmentViewHeader to allow navigating between FulfillmentViewSections

    • Added new FulfillmentWorkflowViewSection, registered as FULFILLMENT_WORKFLOW, to support viewing and managing an external Workflow for a Fulfillment.

      • Supports polling and form components

      • Establishes form state with following shape (reference Workflow documentation for detailed properties)

interface FormState extends Workflow {
  history?: WorkflowHistory;
  orchestrationMap?: SimpleOrchestrationMap;
  tracking: Tracking;
}
  • Introduced actions to issue commands to the workflow update endpoint that are expected to be rendered on the RESIDENT_GRID representing the SimpleOrchestrationMap:

    • WORKFLOW_COMMAND as a ROW positioned action

    • WORKFLOW_COMMAND as a GRID positioned action

    • These actions will have access to:

      • the React.Dispatch for managing the Workflow’s state with the following state actions:

        • queueFetch to queue fetching the full workflow, fetching history and the orchestration map will happen automatically after fetching the workflow.

        • startFetch to indicate the fetch for the Workflow is taking place

        • startFetchHistory for History

        • startFetchOrchestrationMap for the SimpleOrchestrationMap

        • successFetch to indicate the Workflow was successfully fetched, the Workflow is passed as an argument

        • successFetchHistory for History

        • successFetchOrchestrationMap for the SimpleOrchestrationMap

        • failureFetch to indicate the Workflow was not successfully fetched, the Error is passed as an argument

        • failureFetchHistory for History

        • failureFetchOrchestrationMap for the SimpleOrchestrationMap

      • ContextParams with the following shape, users can use this to determine what template variables are available, e.g., ${workflowId} in /workflows/${workflowId}

interface IFulfillmentContextParams {
  tracking: Tracking;
  id?: string;
  parent?: OrderFulfillment;
  fulfillment?: OrderFulfillment;
  fulfillmentId?: string;
  orderId?: string;
  workflowId?: string;
  workflow?: Workflow;
}
  • Each takes the following attributes via metadata

    • iconColor: The color of the icon, primary, secondary, danger, and default

    • iconName: The name of the icon to render for the command if any. See new reference in Developer Settings modal for options.

    • commandType: The command to issue against the Workflow such as GOTO, PAUSE, RESUME, or CANCEL

      • EnumSwitchField is undeprecated

        • Added displaySingle attribute to allow a better read-only experience. In this case, only the current value is rendered. This allows the configured color for the value to render instead of being greyed-out.

      • Fixed warning about formik state missing for TimeZoneSelector field in Admin header.

      • Added support for rendering GRID positioned actions on all list grids conditionally

      • Added section to Developer Settings modal to show the list of all icons supported by the SVG component. This renders a collapsible group with the icon displayed next to its key. The key is used to actually render the icon. This supports users who want to create their own components that use icons as well as as a reference for existing components that support setting the icon name as an attribute like the new WORKFLOW_COMMAND actions.

<SVG name="dots-horizontal-triple" />
  • Improved rendering of JSON_PAYLOAD fields so that their label styles match other Field type components'. Before they were always extra large and bold, which is only appropriate when the JSON_PAYLOAD field is used to represent the payload for the entire entity not just a single field.

    • To render with the bold style requires that the field name is jsonPayload. This is generally only applicable when EntityForm#showPayload attribute is true

  • Enabled overrides for the following OMS components to make extending easier:

    • OrderViewLayout: blOrderViewLayout

    • OrderViewHeader: blOrderViewHeader

Subscription Workflow Views

  • Implemented Workflow sub-views for Subscription.

    • Registered new component WorkflowDetailView as WORKFLOW_ENTITY_FORM view to allow it to be used as a view in metadata

    • Use new WorkflowDetailView component to render generic Workflow sub-views for any view or entity.

      • This component is leveraged to display Workflow details in a slide-over component for Subscription Workflows, and are displayed when the details button is clicked for an entry in the Subscription Workflow grid in the Subscription Update form.

    • Updates were made to EntityView components such as Entity, Content, Layout, Header, and TitleBar in order to pass in nested, nestedCallback, and nestedCancelCallback props in order to display the proper type of exit button in the TitleBar when the Entity is nested or not.

      • By default, nested is false and will have a BackButton displayed in the TitleBar which when clicked will signal to the React Router to go back to the indicated location in the state. If the Entity is nested, a CloseButton is displayed in the TitleBar that when clicked will merely close the nested view component that is overlaid over the main view component.

Column Enhancements

  • Enabled MoneyColumn to be able to support simple amount values.

CSR Enhancements

  • Added support for CSRs to be able to add Offers to existing Subscriptions.

Miscellaneous Enhancements

  • Aliased Workflow entity to data field in form state.


Bug Fixes

Entity & Grid Fixes

  • Fixed how collections are handled in the entity creation flow.

  • Fixed reordering on grids when implicitFilters are absent.

  • Grids now determine their initial state correctly.

  • Fixed dropdown field display within nested content items.

  • Fixed an issue where conditionally hidden list grid columns still occupied space.

Content & Model Fixes

  • Fixed an issue where cloning content with an empty URI field set the value to undefined-copied.

  • Fixed deeply nested content items not being tied to the correct parent in sandboxing.

  • Fixed an issue where changing a content model’s field to a collection could break existing content.

Admin UI Fixes

  • Fixed styling for help texts.

  • Fixed z-index issues with select dropdowns and HTML editor tools.

  • Fixed display issues with the settings dropdown.

Session & Authentication Fixes

  • Fixed 403 Unauthorized errors caused by incorrect cache values.

  • The page now fully reloads when changing the admin’s time zone.

Permissions & Visibility Fixes

  • The Deploy button is now hidden when the user lacks deployment permissions.

  • Fixed an issue where the Promote action was not visible after product option generation.

  • Fixed an issue where Product Types appeared editable when they were not.

Order & Inventory Fixes

  • Fixed a crash on the order details page due to an undefined total.

  • Inventory checks in the fulfillment status change modal now only run when the status is PENDING_INVENTORY.

Filtering & Searching Fixes

  • Fixed an issue where filtering by a boolean field did not apply correctly.

  • Fixed an issue with product faceting when facet values contained a % character.

  • Fixed issues with exports when grid filters were applied.

  • Fixed an error when using the filtering with Non-Latin script, such as Arabic.

Characteristic Translation Fixes

  • Fixed an issue where translations were allowed to be made for characteristics with no values and numeric or boolean type characteristics, which causes an exception

Miscellaneous Fixes

  • Fixed integer fields not being cleared when a default value was set.

  • Fixed issues with the ToggleSwitch component’s tab index, improving keyboard navigation.

  • Fixed case sensitivity in admin routes.

  • Fixed an issue in ExternalAssetCollection to inform the component to use the asset’s contentUrl instead of its url when viewing an asset’s details.

  • Fixed an issue where Business Type Modify and Create forms were being fetched before they were created.

  • Fixed an issue where the Quantity Selector in Fulfillment Workflow modals was being styled incorrectly due to undefined class names being passed into the component.

  • Fixed issue where Subscriptions were being marked as non-mutable by removing application data from context parameters when the applicationDiscriminated attribute is explicitly false for EntityGrid and EntityLongView components.