Skip to content

Commit 280add3

Browse files
author
Stanislav Idolov
authored
ENGCOM-3317: [Backport] Adding trimming sku value function to sku backend model. #18862
2 parents 79a09c9 + af9b14b commit 280add3

File tree

6 files changed

+30
-1
lines changed

6 files changed

+30
-1
lines changed

app/code/Magento/Catalog/Model/Product/Attribute/Backend/Sku.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ protected function _generateUniqueSku($object)
9797
public function beforeSave($object)
9898
{
9999
$this->_generateUniqueSku($object);
100+
$this->trimValue($object);
100101
return parent::beforeSave($object);
101102
}
102103

@@ -127,4 +128,17 @@ protected function _getLastSimilarAttributeValueIncrement($attribute, $object)
127128
$data = $connection->fetchOne($select, $bind);
128129
return abs((int)str_replace($value, '', $data));
129130
}
131+
132+
/**
133+
* @param Product $object
134+
* @return void
135+
*/
136+
private function trimValue($object)
137+
{
138+
$attrCode = $this->getAttribute()->getAttributeCode();
139+
$value = $object->getData($attrCode);
140+
if ($value) {
141+
$object->setData($attrCode, trim($value));
142+
}
143+
}
130144
}

app/code/Magento/Catalog/Ui/DataProvider/Product/Form/Modifier/General.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,8 @@ protected function customizeNameListeners(array $meta)
373373
$skuPath . static::META_CONFIG_PATH,
374374
$meta,
375375
[
376-
'autoImportIfEmpty' => true
376+
'autoImportIfEmpty' => true,
377+
'validation' => ['no-marginal-whitespace' => true]
377378
]
378379
);
379380

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ Keyword,Keyword
5858
"Letters, numbers, spaces or underscores only please","Letters, numbers, spaces or underscores only please"
5959
"Letters only please","Letters only please"
6060
"No white space please","No white space please"
61+
"No marginal white space please","No marginal white space please"
6162
"Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx","Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx"
6263
"A positive or negative non-decimal number please","A positive or negative non-decimal number please"
6364
"The specified vehicle identification number (VIN) is invalid.","The specified vehicle identification number (VIN) is invalid."

app/code/Magento/Ui/view/base/web/js/lib/validation/rules.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,12 @@ define([
115115
},
116116
$.mage.__('No white space please')
117117
],
118+
'no-marginal-whitespace': [
119+
function (value) {
120+
return !/^\s+|\s+$/i.test(value);
121+
},
122+
$.mage.__('No marginal white space please')
123+
],
118124
'zip-range': [
119125
function (value) {
120126
return utils.isEmpty(value) || /^90[2-5]-\d{2}-\d{4}$/.test(value);

lib/web/i18n/en_US.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Submit,Submit
2727
"Letters, numbers, spaces or underscores only please","Letters, numbers, spaces or underscores only please"
2828
"Letters only please","Letters only please"
2929
"No white space please","No white space please"
30+
"No marginal white space please","No marginal white space please"
3031
"Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx","Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx"
3132
"A positive or negative non-decimal number please","A positive or negative non-decimal number please"
3233
"The specified vehicle identification number (VIN) is invalid.","The specified vehicle identification number (VIN) is invalid."

lib/web/mage/validation.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,12 @@
253253
},
254254
$.mage.__('No white space please')
255255
],
256+
'no-marginal-whitespace': [
257+
function (value, element) {
258+
return this.optional(element) || !/^\s+|\s+$/i.test(value);
259+
},
260+
$.mage.__('No marginal white space please')
261+
],
256262
'zip-range': [
257263
function (value, element) {
258264
return this.optional(element) || /^90[2-5]-\d{2}-\d{4}$/.test(value);

0 commit comments

Comments
 (0)