Skip to content

Commit 55897b4

Browse files
author
Hwashiang Yu
committed
MC-412: Advanced tab in content types required validation
- Added validation for complex type - Added validation styling to margins and padding
1 parent 59b1ad7 commit 55897b4

File tree

3 files changed

+48
-5
lines changed

3 files changed

+48
-5
lines changed

app/code/Magento/PageBuilder/view/adminhtml/ui_component/pagebuilder_row_form.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,11 @@
344344
<item name="default" xsi:type="string">{"margin":{"bottom":"10","left":"0","right":"0","top":"0"},"padding":{"bottom":"10","left":"10","right":"10","top":"10"}}</item>
345345
</item>
346346
</argument>
347+
<settings>
348+
<validation>
349+
<rule name="required-entry" xsi:type="boolean">true</rule>
350+
</validation>
351+
</settings>
347352
</field>
348353
</fieldset>
349354
</form>

app/code/Magento/PageBuilder/view/adminhtml/web/css/source/_config.less

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,30 @@
1414
margin-bottom: 15px;
1515
margin-top: 15px;
1616
}
17+
18+
.admin__field {
19+
&._error {
20+
.admin__field-control > .admin__field-design-options > .layout-onion {
21+
border: 1px solid @field-error-control__border-color;
22+
overflow: hidden;
23+
}
24+
}
25+
}
26+
27+
._required {
28+
> .admin__field-label {
29+
> label:after {
30+
color: #e22626;
31+
content: '*';
32+
display: inline-block;
33+
font-size: 1.6rem;
34+
font-weight: 500;
35+
line-height: 1;
36+
margin-left: 10px;
37+
margin-top: .2rem;
38+
position: absolute;
39+
z-index: 1;
40+
}
41+
}
42+
}
1743
}

app/code/Magento/PageBuilder/view/adminhtml/web/js/form/element/validator-rules-mixin.js

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55

66
define([
77
'jquery',
8+
'underscore',
89
'Magento_Ui/js/lib/validation/utils'
9-
], function ($, utils) {
10+
], function ($, _, utils) {
1011
'use strict';
1112

1213
/**
@@ -44,23 +45,23 @@ define([
4445
}
4546

4647
return function (validator) {
47-
var requiredInputRuleHandler = validator.getRule('required-entry').handler;
48+
var requiredInputRule = validator.getRule('required-entry');
4849

4950
validator.addRule(
5051
'required-entry-location-name',
51-
requiredInputRuleHandler,
52+
requiredInputRule.handler,
5253
$.mage.__('Please enter the location name.')
5354
);
5455

5556
validator.addRule(
5657
'required-entry-latitude',
57-
requiredInputRuleHandler,
58+
requiredInputRule.handler,
5859
$.mage.__('Enter latitude')
5960
);
6061

6162
validator.addRule(
6263
'required-entry-longitude',
63-
requiredInputRuleHandler,
64+
requiredInputRule.handler,
6465
$.mage.__('Enter longitude')
6566
);
6667

@@ -94,6 +95,17 @@ define([
9495
$.mage.__('Please enter a valid video URL.')
9596
);
9697

98+
validator.addRule(
99+
'required-entry',
100+
function (value) {
101+
if (typeof value !== 'object') {
102+
return requiredInputRule.handler(value);
103+
}
104+
return !_.contains(_.flatten(_.map(value, _.values)), "");
105+
},
106+
$.mage.__(requiredInputRule.message)
107+
);
108+
97109
return validator;
98110
};
99111
});

0 commit comments

Comments
 (0)