interface FormState extends Workflow {
history?: WorkflowHistory;
orchestrationMap?: SimpleOrchestrationMap;
tracking: Tracking;
}
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.
Introduced new components for managing characteristics on products. See: CatalogServices Release Notes.
Added support for slide-over update and create forms:
* UPDATE_VIEW
as a row action
* CREATE_VIEW
as a grid action
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).
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.
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.
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
)
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.
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
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.
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
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.
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.
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.
Fixed styling for help texts.
Fixed z-index issues with select dropdowns and HTML editor tools.
Fixed display issues with the settings dropdown.
Fixed 403 Unauthorized
errors caused by incorrect cache values.
The page now fully reloads when changing the admin’s time zone.
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.
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
.
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.
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
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.