Skip to content

Commit f4b6e18

Browse files
author
Hwashiang Yu
committed
MC-5184: Missing validation message when uploading big image
- Updated configuration to show max file size from ini - Updated documentation code - Added uploader data provider
1 parent de61a63 commit f4b6e18

File tree

9 files changed

+59
-16
lines changed

9 files changed

+59
-16
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?php
2+
/**
3+
* Copyright © Magento, Inc. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
declare(strict_types=1);
8+
9+
namespace Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader;
10+
11+
use Magento\PageBuilder\Model\Config\ContentType\AdditionalData\ProviderInterface;
12+
use Magento\Framework\File\Size;
13+
14+
/**
15+
* Provides save URL for uploader
16+
*/
17+
class GetMaxFileSize implements ProviderInterface
18+
{
19+
/**
20+
* @var Size
21+
*/
22+
private $fileSize;
23+
24+
/**
25+
* @param Size $fileSize
26+
*/
27+
public function __construct(Size $fileSize)
28+
{
29+
$this->fileSize = $fileSize;}
30+
31+
/**
32+
* @inheritdoc
33+
*/
34+
public function getData(string $itemName) : array
35+
{
36+
return [
37+
$itemName => $this->fileSize->getMaxFileSize()
38+
];
39+
}
40+
}

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/banner.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@
284284
<item name="uploaderConfig" xsi:type="array">
285285
<item name="isShowImageUploadInstructions" xsi:type="boolean">false</item>
286286
<item name="isShowImageUploadOptions" xsi:type="boolean">true</item>
287-
<item name="maxFileSize" xsi:type="string">4194304</item>
287+
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\GetMaxFileSize</item>
288288
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
289289
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
290290
<item name="componentType" xsi:type="string">imageUploader</item>

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/image.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
</appearances>
7979
<additional_data>
8080
<item name="uploaderConfig" xsi:type="array">
81-
<item name="maxFileSize" xsi:type="string">4194304</item>
81+
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\GetMaxFileSize</item>
8282
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
8383
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
8484
<item name="componentType" xsi:type="string">imageUploader</item>

app/code/Magento/PageBuilder/view/adminhtml/pagebuilder/content_type/slide.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,7 @@
284284
<item name="uploaderConfig" xsi:type="array">
285285
<item name="isShowImageUploadInstructions" xsi:type="boolean">false</item>
286286
<item name="isShowImageUploadOptions" xsi:type="boolean">true</item>
287-
<item name="maxFileSize" xsi:type="string">4194304</item>
287+
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\GetMaxFileSize</item>
288288
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
289289
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
290290
<item name="componentType" xsi:type="string">imageUploader</item>

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
<imageUploader>
4747
<settings>
4848
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
49-
<maxFileSize>4194304</maxFileSize>
5049
<uploaderConfig>
5150
<param xsi:type="string" name="url">pagebuilder/contenttype/image_upload</param>
5251
</uploaderConfig>
@@ -64,7 +63,6 @@
6463
<imageUploader>
6564
<settings>
6665
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
67-
<maxFileSize>2097152</maxFileSize>
6866
<uploaderConfig>
6967
<param xsi:type="string" name="url">pagebuilder/contenttype/image_upload</param>
7068
</uploaderConfig>

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@
8282
<imageUploader>
8383
<settings>
8484
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
85-
<maxFileSize>4194304</maxFileSize>
8685
<uploaderConfig>
8786
<param xsi:type="string" name="url">pagebuilder/contenttype/image_upload</param>
8887
</uploaderConfig>
@@ -100,7 +99,7 @@
10099
<imageUploader>
101100
<settings>
102101
<allowedExtensions>jpg jpeg gif png</allowedExtensions>
103-
<maxFileSize>2097152</maxFileSize>
102+
104103
<uploaderConfig>
105104
<param xsi:type="string" name="url">pagebuilder/contenttype/image_upload</param>
106105
</uploaderConfig>

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

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ define([
4141
*/
4242
function validateIsUrl(href) {
4343

44-
return (/^(http|https|ftp):\/\/(([A-Z0-9]([A-Z0-9_-]*[A-Z0-9]|))(\.[A-Z0-9]([A-Z0-9_-]*[A-Z0-9]|))*)(:(\d+))?(\/[A-Z0-9~](([A-Z0-9_~-]|\.)*[A-Z0-9~]|))*\/?(.*)?$/i).test(href)//eslint-disable-line max-len);
44+
return (/^(http|https|ftp):\/\/(([A-Z0-9]([A-Z0-9_-]*[A-Z0-9]|))(\.[A-Z0-9]([A-Z0-9_-]*[A-Z0-9]|))*)(:(\d+))?(\/[A-Z0-9~](([A-Z0-9_~-]|\.)*[A-Z0-9~]|))*\/?(.*)?$/i).test(href);//eslint-disable-line max-len
4545
}
4646

4747
/**
@@ -61,9 +61,11 @@ define([
6161
return rule.handler(value, params);
6262
}
6363

64-
_.flatten(_.map(value, _.values)).forEach(function(val) {
64+
_.flatten(_.map(value, _.values)).forEach(function (val) {
6565
if (!rule.handler(val, params)) {
66-
return allNumbers = false;
66+
allNumbers = false;
67+
68+
return allNumbers;
6769
}
6870
});
6971

@@ -127,13 +129,17 @@ define([
127129
validator.addRule(
128130
'required-entry',
129131
function (value) {
132+
var allFilled;
133+
130134
// Validation only for margins and paddings
131135
if (typeof value === 'object' && !!(value.padding || value.margin)) {
132-
var allFilled = true;
136+
allFilled = true;
133137

134-
_.flatten(_.map(value, _.values)).forEach(function(val) {
138+
_.flatten(_.map(value, _.values)).forEach(function (val) {
135139
if (utils.isEmpty(val)) {
136-
return allFilled = false;
140+
allFilled = false;
141+
142+
return allFilled;
137143
}
138144
});
139145

docs/configurations/additional-configurations.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ Use `additional_data` in your `Vendor/ModuleName/view/adminhtml/pagebuilder/cont
2525
``` xml
2626
<additional_data>
2727
<item name="uploaderConfig" xsi:type="array">
28-
<item name="maxFileSize" xsi:type="string">4194304</item>
28+
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\GetMaxFileSize</item>
2929
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
3030
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
3131
<item name="componentType" xsi:type="string">imageUploader</item>
@@ -112,4 +112,4 @@ this.uploader = new Uploader(
112112
);
113113
```
114114

115-
<!-- {% endraw %} -->
115+
<!-- {% endraw %} -->

docs/how-to/how-to-use-image-uploader.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ Use `additional_data` in your `<YourModule>/view/base/pagebuilder/content_type/<
2323
<item name="uploaderConfig" xsi:type="array">
2424
<item name="isShowImageUploadInstructions" xsi:type="boolean">false</item>
2525
<item name="isShowImageUploadOptions" xsi:type="boolean">true</item>
26-
<item name="maxFileSize" xsi:type="string">4194304</item>
26+
<item name="maxFileSize" xsi:type="object">Magento\PageBuilder\Model\Config\ContentType\AdditionalData\Provider\Uploader\GetMaxFileSize</item>
2727
<item name="allowedExtensions" xsi:type="string">jpg jpeg gif png</item>
2828
<item name="component" xsi:type="string">Magento_PageBuilder/js/form/element/image-uploader</item>
2929
<item name="componentType" xsi:type="string">imageUploader</item>

0 commit comments

Comments
 (0)