Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
3f437a8
CXSPA-14146: Display container related info message
Larisa-Staroverova Aug 24, 2026
6db3623
CXSPA-14146: Display container related failed validation messages
Larisa-Staroverova Aug 24, 2026
f08d155
Display container item related messages
Larisa-Staroverova Aug 24, 2026
51a9958
CXSPA-14145 enhance message banner component
ChristophHi Aug 24, 2026
bbdeba9
Merge branch 'epic/cpq-containers' into feature/CXSPA-14080-display-m…
Larisa-Staroverova Aug 24, 2026
284cb81
Review feedback
Larisa-Staroverova Aug 24, 2026
e6c4883
CXSPA-14151 count issues
ChristophHi Aug 25, 2026
483d2fe
CXSPA-14151 fix counting on root level
ChristophHi Aug 25, 2026
8cff244
CXSPA-14151 fix sonar issues
ChristophHi Aug 25, 2026
1db9735
CXSPA-14147: Review feedback
Larisa-Staroverova Aug 25, 2026
b7037c3
CXSPA-14080: Fix some issues
Larisa-Staroverova Aug 25, 2026
75d27b7
CXSPA-14080 extend comment
ChristophHi Aug 26, 2026
f96b60c
CXSPA-14080 prettify
ChristophHi Aug 26, 2026
e361cd8
CXSPA-14145 adjust banner component to new model
ChristophHi Aug 26, 2026
a3e1fc4
CXSPA-14161: Create a new configurator-message
Larisa-Staroverova Aug 26, 2026
4f1cf2c
Remove comment
Larisa-Staroverova Aug 26, 2026
d43f6d0
CXSPA-14145 handling of messages on root level
ChristophHi Aug 26, 2026
3707dcd
CXSPA-14151 fix counting of issues on root level
ChristophHi Aug 26, 2026
c75adf5
fix: Calculation of the attribute container's completeness and displa…
Larisa-Staroverova Aug 27, 2026
a5be247
Refactor attribute header. Make description for container attribute m…
Larisa-Staroverova Aug 27, 2026
c2c577d
CXSPA-14152 enhance issue navigation
ChristophHi Aug 27, 2026
3ce89f6
CXSPA-14080 remove wrong deprecations
ChristophHi Aug 27, 2026
6e727f3
CXSPA-14152 container messages
ChristophHi Aug 27, 2026
d9d2289
Refactoring of configurator-message component and all calling it
Larisa-Staroverova Aug 28, 2026
5a114a9
Review feedback I
Larisa-Staroverova Aug 28, 2026
ee12c44
Review feedback II
Larisa-Staroverova Aug 28, 2026
f2fffa3
Review feedback III
Larisa-Staroverova Aug 28, 2026
ad4b8a0
CXSPA-14080 fix message banner and prettify
ChristophHi Aug 28, 2026
b1cfe75
Review feedback IV
Larisa-Staroverova Aug 28, 2026
3319532
Review feedback V
Larisa-Staroverova Aug 28, 2026
b8c708c
CXSPA-14170 issue navigation for root messages
ChristophHi Aug 31, 2026
60411ca
Review feedback VI
Larisa-Staroverova Sep 1, 2026
d43b598
Make sonar happy
Larisa-Staroverova Sep 1, 2026
aca8d1b
CXSPA-14171: 'Add 1 more product' is shown too often
Larisa-Staroverova Sep 1, 2026
9ccf314
Handle group completeness and attribute incompleteness
Larisa-Staroverova Sep 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -707,9 +707,12 @@ export interface FeatureTogglesInterface {
* Nested container products
* are also reflected in the configurator product title (slash-separated
* path) and in the product-title details.
* When a CPQ configuration has `hasFullConfigurationState`, root-level
* conflict and error messages are taken from the typed `messages` list.
*
* Affects: `ConfiguratorAttributeProductCardComponent`,
* `ConfiguratorProductTitleComponent`
* `ConfiguratorProductTitleComponent`,
* `ConfiguratorConflictAndErrorMessagesComponent`
*/
productConfiguratorCPQContainer?: boolean;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@
"singleSelectRequiredMessage": "Select a value",
"singleSelectAdditionalRequiredMessage": "Select or enter a value",
"multiSelectRequiredMessage": "Select one or more values",
"containerRequiredMessage": "Add {{count}} more product",
"containerRequiredMessage_other": "Add {{count}} more products",
"wrongNumericFormat": "Wrong format, this numerical attribute should be entered according to pattern {{pattern}}",
"wrongNumericFormatMessage": "Enter the number in the following format: {{pattern}}",
"wrongIntervalFormat": "Enter a value within the indicated boundaries",
Expand All @@ -60,7 +62,14 @@
"availableProducts": "Available Products ({{count}})",
"selectAvailableProducts": "Select products",
"searchAvailableProducts": "Search",
"noAvailableProductsFound": "No results found"
"noAvailableProductsFound": "No results found",
"containerMinMaxRows": "Select {{minRows}} to {{maxRows}} products",
"containerMinRows": "Select at least {{count}} product",
"containerMinRows_other": "Select at least {{count}} products",
"containerMaxRows": "Select up to {{count}} product",
"containerMaxRows_other": "Select up to {{count}} products",
"containerExactRows": "Select {{count}} product",
"containerExactRows_other": "Select {{count}} products"
},
"button": {
"previous": "Previous",
Expand Down
3 changes: 2 additions & 1 deletion feature-libs/product-configurator/rulebased/_index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ $configurator-rulebased-components:
cx-required-error-msg, cx-configurator-footer-container,
cx-configurator-footer-container-item, cx-configurator-form-group,
cx-configurator-attribute-input-field, cx-configurator-attribute-radio-button,
cx-configurator-show-more, cx-configurator-attribute-product-card,
cx-configurator-show-more, cx-configurator-message,
cx-configurator-attribute-product-card,
cx-configurator-attribute-single-selection-bundle-dropdown,
cx-configurator-attribute-single-selection-bundle,
cx-configurator-attribute-multi-selection-bundle,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@
[productName]="getLabel(expMode, attribute.label, attribute.name)"
[tabIndex]="0"
></cx-configurator-show-more>
<cx-configurator-message
*ngFor="
let group of getMessageGroups(
(showRequiredMessageForDomainAttribute$ | async) ?? false
)
"
[messages]="group.messages"
[messageClass]="group.messageClass"
[iconType]="group.iconType"
[showIcon]="group.showIcon"
[role]="group.role"
[idPrefix]="
createAttributeUiKey('attribute-msg', attribute.name) +
'-' +
group.uiKeyPrefix
"
/>
<div
*ngIf="attribute.hasConflicts"
class="cx-conflict-msg"
Expand Down Expand Up @@ -73,15 +90,6 @@
</ng-container>
</ng-container>
</div>
<div
*ngIf="showRequiredMessageForDomainAttribute$ | async"
class="cx-required-error-msg"
id="{{ createAttributeUiKey('attribute-msg', attribute.name) }}"
[attr.aria-label]="getRequiredMessageKey() | cxTranslate"
>
<cx-icon [type]="iconTypes.ERROR"></cx-icon>
{{ getRequiredMessageKey() | cxTranslate }}
</div>
<img
*ngIf="hasImage"
class="cx-attribute-img"
Expand Down
Loading
Loading