Index: components/ProductDetailsMerchandising/ProductDetailsMerchandising.helpers.tsx =================================================================== diff -u -r10dcd49f75a84ff929a0852025e6e2e6787cbcfe -rb9a8767d4659b3e0ec7467f25b4a53c7598a82fe --- components/ProductDetailsMerchandising/ProductDetailsMerchandising.helpers.tsx (.../ProductDetailsMerchandising.helpers.tsx) (revision 10dcd49f75a84ff929a0852025e6e2e6787cbcfe) +++ components/ProductDetailsMerchandising/ProductDetailsMerchandising.helpers.tsx (.../ProductDetailsMerchandising.helpers.tsx) (revision b9a8767d4659b3e0ec7467f25b4a53c7598a82fe) @@ -5,7 +5,7 @@ import { featureToggle } from 'lemans-dashboard-common/libs/featureToggle'; import { permissionCheck } from 'lemans-uac'; -const [CanExcludeForSplit] = permissionCheck(['ds.product.merchandising.excludeforSplit']); +const [CanExcludeForSplit, CantExcludeForSplit] = permissionCheck(['ds.product.merchandising.excludeforSplit']); export const getTableScroll = () => { const navBar = '46px'; @@ -91,16 +91,26 @@ /> - - - + + +
- +
-
-
+ + + +
+ +
+
+ ; Index: components/ProductSplitValidator/ProductSplitValidator.component.tsx =================================================================== diff -u -rc9ac16c365bb8ed527371e5694d9b24a56959a80 -rb9a8767d4659b3e0ec7467f25b4a53c7598a82fe --- components/ProductSplitValidator/ProductSplitValidator.component.tsx (.../ProductSplitValidator.component.tsx) (revision c9ac16c365bb8ed527371e5694d9b24a56959a80) +++ components/ProductSplitValidator/ProductSplitValidator.component.tsx (.../ProductSplitValidator.component.tsx) (revision b9a8767d4659b3e0ec7467f25b4a53c7598a82fe) @@ -4,6 +4,7 @@ import './ProductSplitValidator.styles.less'; import { ProductSplitValidatorProps } from './ProductSplitValidator.types'; import { ProductValidatorTable } from './ProductValidatorTable'; +import { service } from "lemans-dashboard-common"; export const ProductSplitValidatorComponent = ({ @@ -13,8 +14,23 @@ partNumbers = [], ...props }:ProductSplitValidatorProps) => { + const [excludedAttributes, setExcludedAttributes] = React.useState([]); + const fetchAttributes = () => { + service.product.attributes(+props.productId) + .then(attributes => { + const excluded = attributes + .filter(attr => attr.isExcludedForSplit) + .map(attr => attr.attributeName); + setExcludedAttributes(excluded); + }); + } + React.useEffect( () => { + fetchAttributes(); + }, []); + + React.useEffect( () => { props.runValidation(); }, [props.productId]); @@ -55,6 +71,22 @@ type={'success'} /> } + { status === 'active' && excludedAttributes.length > 0 && <> + +
The following attributes are excluded from split validation:
+ + + } + type={'info'} + />
+ } { status === 'active' && data.length > 0 &&