Broadleaf Microservices
  • v1.0.0-latest-prod

Unified Admin Release Notes for 1.10.4

Important Updates

  • Now supports Node 18. Node 14 has reached end-of-life and we recommend upgrading to Node 18 as soon as possible since Node 16 reaches end of life in September 2023.

    • Upgrading Node is not required to use this update.

Features & Enhancements

  • Added a Catalog Selector to Lookup Fields that can be displayed if the lookup entity is Catalog-trackable.

    • The selector is only displayed in the Tenant context and is not needed in the Application context to read Catalog entities.

    • The selector can be displayed as a sibling to the Lookup Field using .catalogSelector() or removed using .removeCatalogSelector(). Default is to display it except in rule builders.

    • The selector is always displayed in the Modal. To enable the modal use .modalSearch(UnaryOperator<LookupFieldModal<?>> fn) in metadata

  • Enhanced Variants Grid component on Product forms

    • Now allows setting the display order for the variant option fields (e.g., the selectors for options like color and size) using metadata instead of hardcoding it.

      • Use variantOptionsOrder(int), default order is 3000 so that they display after the name and SKU fields.

    • Added the ability to display an unsaved-changes prompt before closing the Variant update modal form.

      • Use displayUnsavedChangesPrompt(boolean) in the metadata.

      • Default is true.

  • Enhanced DerivedField component

    • Now allows deriving values other than strings.

      • Use .fieldType(String) to specify.

      • Default is DerivedField.SupportedFieldTypes.STRING.

      • Supports: Boolean, Color Picker, Date, Decimal, HTML, Integer, Long, Money, String Array, and Text Area

    • Allow specifying more transformation types for strings

      • Upper, lower, start, and pascal case and capitalize

    • Allow specifying if a derived field’s value should actually be persisted or if the derived value should only be displayed in the UI. This is used in the case of Variants where they inherit prices and name from the Product when not set explicitly.

      • Use .persist(boolean).

      • Default is true.

    • Display derived fields as read-only while they are deriving their value with an edit button to allow overriding the value explicitly.

    • Display a "reset" button next to a modified field to re-derive the value (essentially unsetting the override).

  • Introduced Derived Column component

    • Takes a source and columnType similar to DerivedField

    • Can set deriveIfNull(boolean) to allow deriving the value if the column’s value is null.

      • Default is false.

    • Does not support transformations like DerivedField

  • Added .env property to enable or disable display of navigation filter

  • Added an Application Selector to be displayed in a modal if the lookup field is application-discriminated

    • Added a footer component for decorated lookup fields, where the ModalToggle is displayed when the modalToggleAtFooter metadata attribute is true

  • Added Product Business Types

    • Represents the first step in creating a product. A product cannot change its business type.

    • Product Business Types provide a base set of attributes for products when they are created — for example, the type Clothing would have attributes such as Color, Size. Creating a product under this type would assign these attributes to the product.

Bug Fixes

  • Fixed list grid header z-index when scrolling since it’s sticky

  • Fixed $0 order total appearing blank in order list grid

  • Fixed issue where form values within collapsible groups in modals disappeared when closing and reopening the modal.

    • Remove unnecessary cleanup function, clearValuesForDescendFields.

  • Fixed Admin language dropdown options overflow display issue by updating styles to render options list to full width

  • Fixed dropdown menu changing position when hovering over options by updating react-select dependency version

  • Fixed application selector input text color being unreadable

  • Fixed custom query builder filters being ignored in export maintenance view when creating a new export and filtering what entities to include, e.g., when filtering which Products to include in an export.

  • Fixed implicit filter and custom query builder filters not working together. Either cq or query_builder param names now work for both in many places around Admin, e.g., when adding new catalogs or profiles to an Application.

  • Fixed catalog selector paging issues

  • Fixed allowed locale resolution and export important Provider and Gateway components as components

    • Fixed VITE_ALLOWED_LOCALES property not being honored by Environment service

    • AdminProvider component now takes the same arguments as I18nProvider

      export interface AdminProviderProps {
        /** the allowed locales for the I18nProvider  */
        allowedLocales?: Array<string>;
        /** the default locale for the I18nProvider  */
        defaultLocale?: string;
        /**
         * The set of {@link GatewayComponent} that this provider is responsible for rendering.
         */
        gatewayComponents: Array<Function | object>;
        /** the messages for the I18nProvider  */
        messages?: object;
      }
    • TenantGateway, I18nProvider, GlobalProviders, GatewayProvider, ComponentRouter, and AuthGateway components should now be exported from the component module: import { components } from '@broadleaf/admin-components';

      • These are components that are used to compose AdminProvider.

      • These were formerly only exported as "unstable" but have been moved to "components".

  • Fixed DatePicker time display issue found for MacOs Monterey

  • Fixed issue with the display of delete change summaries

  • Fixed issue where regex logic for Allowed Values value fields was not evaluating using passed flags — regex logic now extracts flags from regex string if present to use them for matching