Skip to content

Commit af7ef0e

Browse files
committed
Merge remote-tracking branch 'tier4/ACP2E-2957' into PR-Tier3-04-29-2024-olga
2 parents b27c865 + d90e095 commit af7ef0e

File tree

6 files changed

+91
-8
lines changed

6 files changed

+91
-8
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!--
3+
/************************************************************************
4+
*
5+
* Copyright 2024 Adobe
6+
* All Rights Reserved.
7+
*
8+
* NOTICE: All information contained herein is, and remains
9+
* the property of Adobe and its suppliers, if any. The intellectual
10+
* and technical concepts contained herein are proprietary to Adobe
11+
* and its suppliers and are protected by all applicable intellectual
12+
* property laws, including trade secret and copyright laws.
13+
* Dissemination of this information or reproduction of this material
14+
* is strictly forbidden unless prior written permission is obtained
15+
* from Adobe.
16+
* ************************************************************************
17+
*/
18+
-->
19+
20+
<actionGroups xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
21+
xsi:noNamespaceSchemaLocation="urn:magento:mftf:Test/etc/actionGroupSchema.xsd">
22+
<!--Insert image from Media Gallery -->
23+
<actionGroup name="InsertImageFromMediaGalleryFromCmsActionGroup">
24+
<arguments>
25+
<argument name="imageFileName" defaultValue="magento.jpg" type="string"/>
26+
<argument name="imageFilePath" defaultValue="magento.jpg" type="string"/>
27+
</arguments>
28+
<!--Insert image-->
29+
<waitForElementVisible selector="{{MediaGallerySection.UploadImageSelector}}" stepKey="waitAttacheButton"/>
30+
<attachFile selector="{{MediaGallerySection.UploadImageWithUploaderId}}" userInput="{{imageFilePath}}" stepKey="attachFile"/>
31+
<waitForPageLoad stepKey="waitFileUpload"/>
32+
<waitForElementVisible selector="{{MediaGallerySection.imageBlockByName(imageFileName)}}" stepKey="waitImage"/>
33+
<conditionalClick selector="{{MediaGallerySection.imageBlockByName(imageFileName)}}" dependentSelector="{{MediaGallerySection.imageSelected(imageFileName)}}" visible="false" stepKey="clickOnImage"/>
34+
<waitForElementVisible selector="{{MediaGallerySection.InsertFile}}" stepKey="waitForAddSelectButton"/>
35+
<click selector="{{MediaGallerySection.InsertFile}}" stepKey="clickSelectImage"/>
36+
<waitForPageLoad time="30" stepKey="waitForPageLoad"/>
37+
</actionGroup>
38+
</actionGroups>

app/code/Magento/MediaGalleryUi/view/adminhtml/web/js/action/deleteImages.js

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,16 @@ define([
88
'mage/url',
99
'Magento_MediaGalleryUi/js/grid/messages',
1010
'Magento_Ui/js/modal/confirm',
11-
'mage/translate'
11+
'mage/translate',
12+
'jquery/jquery-storageapi'
1213
], function ($, _, urlBuilder, messages, confirmation, $t) {
1314
'use strict';
1415

1516
return function (ids, deleteUrl, confirmationContent) {
1617
var deferred = $.Deferred(),
17-
title = $t('Delete assets'),
18-
cancelText = $t('Cancel'),
19-
deleteImageText = $t('Delete');
18+
title = $t('Delete assets'),
19+
cancelText = $t('Cancel'),
20+
deleteImageText = $t('Delete');
2021

2122
/**
2223
* Send deletion request with redords ids
@@ -25,6 +26,17 @@ define([
2526
* @param {String} serviceUrl
2627
*/
2728
function sendRequest(recordIds, serviceUrl) {
29+
let imageLinks = [];
30+
31+
Object.values(recordIds).forEach(function (recordId) {
32+
if (typeof recordId === 'string') {
33+
let imageUrl = new URL(
34+
$('div[data-id=' + recordId + ']').find('img').attr('src').replace('.thumbs', '')
35+
);
36+
37+
imageLinks.push(imageUrl.pathname);
38+
}
39+
});
2840

2941
$.ajax({
3042
type: 'POST',
@@ -63,6 +75,11 @@ define([
6375
code: 'success'
6476
});
6577
deferred.resolve(message);
78+
79+
if ($.localStorage.get('deleted_images')) {
80+
imageLinks = imageLinks.concat($.localStorage.get('deleted_images'));
81+
}
82+
$.localStorage.set('deleted_images', [...new Set(imageLinks)]);
6683
},
6784

6885
/**

app/code/Magento/Ui/view/base/web/js/form/element/file-uploader.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ define([
307307
file.previewType = this.getFilePreviewType(file);
308308

309309
if (!file.id && file.name) {
310-
file.id = Base64.mageEncode(file.name);
310+
file.id = Base64.idEncode(file.name);
311311
}
312312

313313
this.observe.call(file, true, [
@@ -400,6 +400,11 @@ define([
400400
return 'document';
401401
}
402402

403+
if (file.name.indexOf('?rand') !== -1 && file.type.indexOf('?rand') !== -1) {
404+
file.name = file.name.split('?')[0];
405+
file.type = file.type.split('?')[0];
406+
}
407+
403408
type = file.type.split('/')[0];
404409

405410
return type !== 'image' && type !== 'video' ? 'document' : type;
@@ -620,6 +625,11 @@ define([
620625
onPreviewLoad: function (file, event) {
621626
var img = event.currentTarget;
622627

628+
if (img.alt === file.name && /gif|png|jpe?g|webp/.test(file.url) && file.url.indexOf('?rand') === -1) {
629+
file.url += '?rand=' + Date.now();
630+
img.src = file.url;
631+
}
632+
623633
file.previewWidth = img.naturalWidth;
624634
file.previewHeight = img.naturalHeight;
625635
},

app/code/Magento/Ui/view/base/web/js/form/element/image-uploader.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ define([
1111
'Magento_Ui/js/modal/alert',
1212
'Magento_Ui/js/lib/validation/validator',
1313
'Magento_Ui/js/form/element/file-uploader',
14-
'mage/adminhtml/browser'
14+
'mage/adminhtml/browser',
15+
'jquery/jquery-storageapi'
1516
], function ($, _, utils, uiAlert, validator, Element, browser) {
1617
'use strict';
1718

@@ -54,7 +55,13 @@ define([
5455
fileSize = $buttonEl.data('size'),
5556
fileMimeType = $buttonEl.data('mime-type'),
5657
filePathname = $buttonEl.val(),
57-
fileBasename = filePathname.split('/').pop();
58+
fileBasename = filePathname.split('/').pop(),
59+
deletedFiles = $.localStorage.get('deleted_images');
60+
61+
if (deletedFiles && deletedFiles.indexOf(filePathname) !== -1) {
62+
$.localStorage.set('deleted_images', deletedFiles.splice(deletedFiles.indexOf(filePathname), 1));
63+
filePathname += '?rand=' + Date.now();
64+
}
5865

5966
this.addFile({
6067
type: fileMimeType,
Loading

lib/web/mage/adminhtml/browser.js

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ define([
1515
'Magento_Ui/js/modal/modal',
1616
'jquery/ui',
1717
'jquery/jstree/jquery.jstree',
18-
'mage/mage'
18+
'mage/mage',
19+
'jquery/jquery-storageapi'
1920
], function ($, wysiwyg, prompt, confirm, alert, _) {
2021
window.MediabrowserUtility = {
2122
windowId: 'modal_dialog_message',
@@ -467,6 +468,11 @@ define([
467468
var selectedFiles = self.element.find('[data-row=file].selected'),
468469
ids = selectedFiles.map(function () {
469470
return $(this).attr('id');
471+
}).toArray(),
472+
imageLinks = selectedFiles.find('img').map(function () {
473+
let imageUrl = new URL($(this).attr('src').replace('.thumbs', ''));
474+
475+
return imageUrl.pathname;
470476
}).toArray();
471477

472478
return $.ajax({
@@ -489,6 +495,11 @@ define([
489495
self.options.hidden, true
490496
);
491497

498+
if ($.localStorage.get('deleted_images')) {
499+
imageLinks = imageLinks.concat($.localStorage.get('deleted_images'));
500+
}
501+
$.localStorage.set('deleted_images', [...new Set(imageLinks)]);
502+
492503
$(window).trigger('fileDeleted.mediabrowser', {
493504
ids: ids
494505
});

0 commit comments

Comments
 (0)