Skip to content

Commit 60da76c

Browse files
committed
#29411: Directory Tree refactoring
1 parent 58efb76 commit 60da76c

File tree

7 files changed

+177
-244
lines changed

7 files changed

+177
-244
lines changed

app/code/Magento/MediaGallery/Model/Directory/Command/CreateByPaths.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public function execute(array $paths): void
7878
if (!empty($failedPaths)) {
7979
throw new CouldNotSaveException(
8080
__(
81-
'Could not save directories: %paths',
81+
'Could not create directories: %paths',
8282
[
8383
'paths' => implode(' ,', $failedPaths)
8484
]

app/code/Magento/MediaGalleryUi/Ui/Component/DirectoriesTree.php renamed to app/code/Magento/MediaGalleryUi/Ui/Component/DirectoryTree.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
/**
1515
* Directories tree component
1616
*/
17-
class DirectoriesTree extends Container
17+
class DirectoryTree extends Container
1818
{
1919
/**
2020
* @var UrlInterface
@@ -50,9 +50,9 @@ public function prepare(): void
5050
array_replace_recursive(
5151
(array) $this->getData('config'),
5252
[
53-
'getDirectoryTreeUrl' => $this->url->getUrl("media_gallery/directories/gettree"),
54-
'deleteDirectoryUrl' => $this->url->getUrl("media_gallery/directories/delete"),
55-
'createDirectoryUrl' => $this->url->getUrl("media_gallery/directories/create")
53+
'getDirectoryTreeUrl' => $this->url->getUrl('media_gallery/directories/gettree'),
54+
'deleteDirectoryUrl' => $this->url->getUrl('media_gallery/directories/delete'),
55+
'createDirectoryUrl' => $this->url->getUrl('media_gallery/directories/create')
5656
]
5757
)
5858
);

app/code/Magento/MediaGalleryUi/view/adminhtml/ui_component/media_gallery_listing.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
</container>
212212
</listingToolbar>
213213
<container name="media_gallery_directories"
214-
class="Magento\MediaGalleryUi\Ui\Component\DirectoriesTree"
214+
class="Magento\MediaGalleryUi\Ui\Component\DirectoryTree"
215215
template="Magento_MediaGalleryUi/grid/directories/directoryTree"
216216
component="Magento_MediaGalleryUi/js/directory/directoryTree"/>
217217
<columns name="media_gallery_columns" component="Magento_MediaGalleryUi/js/grid/masonry">

app/code/Magento/MediaGalleryUi/view/adminhtml/ui_component/standalone_media_gallery_listing.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@
198198
</container>
199199
</listingToolbar>
200200
<container name="media_gallery_directories"
201-
class="Magento\MediaGalleryUi\Ui\Component\DirectoriesTree"
201+
class="Magento\MediaGalleryUi\Ui\Component\DirectoryTree"
202202
template="Magento_MediaGalleryUi/grid/directories/directoryTree"
203203
component="Magento_MediaGalleryUi/js/directory/directoryTree"/>
204204
<columns name="media_gallery_columns" component="Magento_MediaGalleryUi/js/grid/masonry">

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

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,25 +21,24 @@ define([
2121
* @param {String} deleteImageUrl
2222
*/
2323
deleteImageAction: function (recordsIds, imageDetailsUrl, deleteImageUrl) {
24-
var confirmationContent = $t('%1 Are you sure you want to delete "%2" image(s)?')
24+
var confirmationContent = $t('%1Are you sure you want to delete "%2" image(s)?')
2525
.replace('%2', Object.keys(recordsIds).length),
2626
deferred = $.Deferred();
2727

28-
getDetails(imageDetailsUrl, recordsIds)
29-
.then(function (imageDetails) {
28+
getDetails(imageDetailsUrl, recordsIds).then(function (images) {
3029
confirmationContent = confirmationContent.replace(
3130
'%1',
32-
this.getRecordRelatedContentMessage(imageDetails)
31+
this.getRecordRelatedContentMessage(images) + ' '
3332
);
3433
}.bind(this)).fail(function () {
35-
confirmationContent = confirmationContent.replace('%1', '');
36-
}).always(function () {
37-
deleteImages(recordsIds, deleteImageUrl, confirmationContent).then(function (status) {
38-
deferred.resolve(status);
39-
}).fail(function (error) {
40-
deferred.reject(error);
41-
});
42-
});
34+
confirmationContent = confirmationContent.replace('%1', '');
35+
}).always(function () {
36+
deleteImages(recordsIds, deleteImageUrl, confirmationContent).then(function (status) {
37+
deferred.resolve(status);
38+
}).fail(function (error) {
39+
deferred.reject(error);
40+
});
41+
});
4342

4443
return deferred.promise();
4544
},

app/code/Magento/MediaGalleryUi/view/adminhtml/web/js/directory/directories.js

Lines changed: 51 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ define([
2323
deleteButtonSelector: '#delete_folder',
2424
createFolderButtonSelector: '#create_folder',
2525
messageDelay: 5,
26+
selectedFolder: null,
2627
messagesName: 'media_gallery_listing.media_gallery_listing.messages',
2728
modules: {
2829
directoryTree: '${ $.parentName }.media_gallery_directories',
@@ -47,51 +48,57 @@ define([
4748
*/
4849
initEvents: function () {
4950
$(this.deleteButtonSelector).on('delete_folder', function () {
50-
this.getConfirmationPopupDeleteFolder();
51+
this.deleteFolder();
5152
}.bind(this));
5253

5354
$(this.createFolderButtonSelector).on('create_folder', function () {
54-
this.getPrompt({
55-
title: $t('New Folder Name:'),
56-
content: '',
57-
actions: {
58-
/**
59-
* Confirm action
60-
*/
61-
confirm: function (folderName) {
62-
createDirectory(
63-
this.directoryTree().createDirectoryUrl,
64-
[this.getNewFolderPath(folderName)]
65-
).then(function () {
66-
this.directoryTree().reloadJsTree().then(function () {
67-
$(this.directoryTree().directoryTreeSelector).on('loaded.jstree', function () {
68-
this.directoryTree().locateNode(this.getNewFolderPath(folderName));
69-
}.bind(this));
70-
}.bind(this));
55+
this.createFolder();
56+
}.bind(this));
57+
},
7158

72-
}.bind(this)).fail(function (error) {
73-
uiAlert({
74-
content: error
75-
});
59+
/**
60+
* Show confirmation popup and create folder based on user input
61+
*/
62+
createFolder: function () {
63+
this.getPrompt({
64+
title: $t('New Folder Name:'),
65+
content: '',
66+
actions: {
67+
/**
68+
* Confirm action
69+
*/
70+
confirm: function (folderName) {
71+
createDirectory(
72+
this.directoryTree().createDirectoryUrl,
73+
[this.getNewFolderPath(folderName)]
74+
).then(function () {
75+
this.directoryTree().reloadJsTree().then(function () {
76+
$(this.directoryTree().directoryTreeSelector).on('loaded.jstree', function () {
77+
this.directoryTree().locateNode(this.getNewFolderPath(folderName));
78+
}.bind(this));
79+
}.bind(this));
80+
}.bind(this)).fail(function (error) {
81+
uiAlert({
82+
content: error
7683
});
77-
}.bind(this)
78-
},
79-
buttons: [{
80-
text: $t('Cancel'),
81-
class: 'action-secondary action-dismiss',
84+
});
85+
}.bind(this)
86+
},
87+
buttons: [{
88+
text: $t('Cancel'),
89+
class: 'action-secondary action-dismiss',
8290

83-
/**
84-
* Close modal
85-
*/
86-
click: function () {
87-
this.closeModal();
88-
}
89-
}, {
90-
text: $t('Confirm'),
91-
class: 'action-primary action-accept'
92-
}]
93-
});
94-
}.bind(this));
91+
/**
92+
* Close modal
93+
*/
94+
click: function () {
95+
this.closeModal();
96+
}
97+
}, {
98+
text: $t('Confirm'),
99+
class: 'action-primary action-accept'
100+
}]
101+
});
95102
},
96103

97104
/**
@@ -101,11 +108,11 @@ define([
101108
* @returns {String}
102109
*/
103110
getNewFolderPath: function (folderName) {
104-
var selectedFolder = _.isUndefined(this.selectedFolder()) ||
105-
_.isNull(this.selectedFolder()) ? '/' : this.selectedFolder(),
106-
folderToCreate = selectedFolder !== '/' ? selectedFolder + '/' + folderName : folderName;
111+
if (_.isUndefined(this.selectedFolder()) || _.isNull(this.selectedFolder())) {
112+
return folderName;
113+
}
107114

108-
return folderToCreate;
115+
return this.selectedFolder() + '/' + folderName;
109116
},
110117

111118
/**
@@ -136,7 +143,7 @@ define([
136143
/**
137144
* Confirmation popup for delete folder action.
138145
*/
139-
getConfirmationPopupDeleteFolder: function () {
146+
deleteFolder: function () {
140147
confirm({
141148
title: $t('Are you sure you want to delete this folder?'),
142149
modalClass: 'delete-folder-confirmation-popup',

0 commit comments

Comments
 (0)