Skip to content

Commit 10d928b

Browse files
ENGCOM-2998: Adding trimming sku value function to sku backend model. #18019
- Merge Pull Request #18019 from bartoszkubicki/magento2:trim-sku-value - Merged commits: 1. 6c168dd
2 parents 56eae2a + 6c168dd commit 10d928b

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
@@ -361,7 +361,8 @@ protected function customizeNameListeners(array $meta)
361361
$skuPath . static::META_CONFIG_PATH,
362362
$meta,
363363
[
364-
'autoImportIfEmpty' => true
364+
'autoImportIfEmpty' => true,
365+
'validation' => ['no-marginal-whitespace' => true]
365366
]
366367
);
367368

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
@@ -116,6 +116,12 @@ define([
116116
},
117117
$.mage.__('No white space please')
118118
],
119+
'no-marginal-whitespace': [
120+
function (value) {
121+
return !/^\s+|\s+$/i.test(value);
122+
},
123+
$.mage.__('No marginal white space please')
124+
],
119125
'zip-range': [
120126
function (value) {
121127
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)