Skip to content

Commit 3528a3b

Browse files
MAGETWO-70761: Show values that are duplicate in attribute error msg #10213
2 parents d1f9c82 + 488f9db commit 3528a3b

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

app/code/Magento/Catalog/Controller/Adminhtml/Product/Attribute/Validate.php

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ private function isUniqueAdminValues(array $optionsValues, array $deletedOptions
128128
}
129129
}
130130
$uniqueValues = array_unique($adminValues);
131-
return ($uniqueValues === $adminValues);
131+
return array_diff_assoc($adminValues, $uniqueValues);
132132
}
133133

134134
/**
@@ -157,10 +157,16 @@ private function checkUniqueOption(DataObject $response, array $options = null)
157157
if (is_array($options)
158158
&& !empty($options['value'])
159159
&& !empty($options['delete'])
160-
&& !$this->isUniqueAdminValues($options['value'], $options['delete'])
161160
) {
162-
$this->setMessageToResponse($response, [__("The value of Admin must be unique.")]);
163-
$response->setError(true);
161+
$duplicates = $this->isUniqueAdminValues($options['value'], $options['delete']);
162+
if ($duplicates) {
163+
$this->setMessageToResponse(
164+
$response,
165+
[__('The value of Admin must be unique. (%1)', implode(', ', $duplicates))]
166+
);
167+
168+
$response->setError(true);
169+
}
164170
}
165171
return $this;
166172
}

app/code/Magento/Catalog/i18n/en_US.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,3 +717,4 @@ none,none
717717
Overview,Overview
718718
Details,Details
719719
"The value of Admin must be unique.", "The value of Admin must be unique."
720+
"The value of Admin must be unique. (%1)", "The value of Admin must be unique. (%1)"

app/code/Magento/Catalog/view/adminhtml/web/catalog/product/attribute/unique-validate.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,17 @@ define([
1010
'use strict';
1111

1212
return function (config) {
13-
var _config = jQuery.extend({
14-
element: null,
15-
message: '',
16-
uniqueClass: 'required-unique'
17-
}, config);
13+
var msg = '',
14+
_config = jQuery.extend({
15+
element: null,
16+
message: '',
17+
uniqueClass: 'required-unique'
18+
}, config),
19+
20+
/** @inheritdoc */
21+
messager = function () {
22+
return msg;
23+
};
1824

1925
if (typeof _config.element === 'string') {
2026
jQuery.validator.addMethod(
@@ -25,21 +31,27 @@ define([
2531
.closest('table')
2632
.find('.' + _config.uniqueClass + ':visible'),
2733
valuesHash = {},
28-
isValid = true;
34+
isValid = true,
35+
duplicates = [];
2936

3037
inputs.each(function (el) {
3138
var inputValue = inputs[el].value;
3239

3340
if (typeof valuesHash[inputValue] !== 'undefined') {
3441
isValid = false;
42+
duplicates.push(inputValue);
3543
}
3644
valuesHash[inputValue] = el;
3745
});
3846

47+
if (!isValid) {
48+
msg = _config.message + ' (' + duplicates.join(', ') + ')';
49+
}
50+
3951
return isValid;
4052
},
4153

42-
_config.message
54+
messager
4355
);
4456
}
4557
};

app/code/Magento/Swatches/i18n/en_US.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,5 @@ Image,Image
3434
"Example format: 200x300.","Example format: 200x300."
3535
"Image Position","Image Position"
3636
"The value of Admin must be unique.","The value of Admin must be unique."
37+
"The value of Admin must be unique. (%1)","The value of Admin must be unique. (%1)"
3738
Description,Description

0 commit comments

Comments
 (0)