Skip to content

Commit 6c168dd

Browse files
author
Bartosz Kubicki
committed
Adding trimming sku value function to sku backend model.
Adding trimming sku value function to sku backend model. Adding frontend validation for sku field.
1 parent 1a752a5 commit 6c168dd

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 /^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)