Skip to content

Commit 68eb162

Browse files
Merge pull request #604 from magento/MC-36202
Support same site
2 parents ef55838 + e1a5852 commit 68eb162

File tree

6 files changed

+75
-14
lines changed

6 files changed

+75
-14
lines changed

app/code/Magento/PageBuilder/view/adminhtml/web/js/content-type/observable-updater/attributes.js

+33-9
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/master-format/render/frame.js

+3-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/js/utils/directives.js

+13-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/content-type/observable-updater/attributes.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
* See COPYING.txt for license details.
44
*/
55

6+
import Config from "../../config";
67
import {ContentTypeConfigAppearanceElementInterface} from "../../content-type-config.types";
78
import ConverterPool from "../../converter/converter-pool";
89
import {DataObject} from "../../data-store";
@@ -29,6 +30,7 @@ export default function generate(
2930
if ("read" === attributeConfig.persistence_mode) {
3031
continue;
3132
}
33+
// @ts-ignore
3234
let value;
3335
if (!!attributeConfig.static) {
3436
value = attributeConfig.value;
@@ -39,7 +41,15 @@ export default function generate(
3941
if (converterPool.get(converter)) {
4042
value = converterPool.get(converter).toDom(attributeConfig.var, data);
4143
}
42-
attributeData[attributeConfig.name] = value;
44+
45+
// Replacing src attribute with data-src to prevent img requests in iframe during master format rendering
46+
if (attributeConfig.name === "src" && !value.indexOf("{{media url=") && Config.getMode() !== "Preview") {
47+
attributeData["data-tmp-" + attributeConfig.name] = value;
48+
// @ts-ignore
49+
Object.defineProperty(attributeData, attributeConfig.name, { get() { return value; } });
50+
} else {
51+
attributeData[attributeConfig.name] = value;
52+
}
4353
}
4454

4555
attributeData["data-element"] = elementName;

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/master-format/render/frame.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import ConfigInterface from "../../config.types";
1313
import ContentTypeCollectionInterface from "../../content-type-collection.types";
1414
import createContentType from "../../content-type-factory";
1515
import ContentTypeInterface from "../../content-type.types";
16-
import decodeAllDataUrlsInString from "../../utils/directives";
16+
import decodeAllDataUrlsInString, { replaceSrc } from "../../utils/directives";
1717
import filterHtml from "../filter-html";
1818
import { TreeItem } from "./serialize";
1919

@@ -160,7 +160,7 @@ function render(message: {stageId: string, tree: TreeItem}) {
160160
observer.disconnect();
161161
ko.cleanNode(element);
162162
const filtered: JQuery = filterHtml($(element));
163-
const output = decodeAllDataUrlsInString(filtered.html());
163+
const output = replaceSrc(decodeAllDataUrlsInString(filtered.html()));
164164
resolve(output);
165165
});
166166

app/code/Magento/PageBuilder/view/adminhtml/web/ts/js/utils/directives.ts

+13
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,16 @@ export function convertMediaDirectivesToUrls(html: string): string {
131131
}
132132
return html;
133133
}
134+
135+
/**
136+
* Replace data-src attribute with src.
137+
*
138+
* @param {string} html
139+
* @returns {string}
140+
*/
141+
export function replaceSrc(html: string): string {
142+
return html.replace(
143+
new RegExp("data-tmp-src=\"\{\{", "g"),
144+
"src=\"{{",
145+
);
146+
}

0 commit comments

Comments
 (0)