Skip to content

Commit 148b935

Browse files
committed
Merge branch 'v3' of https://github.com/craftcms/cms into develop
# Conflicts: # src/web/assets/cp/dist/cp.js # src/web/assets/cp/dist/cp.js.map # src/web/assets/cp/src/js/BaseElementIndex.js
2 parents ebe7027 + 4a7e104 commit 148b935

File tree

5 files changed

+35
-13
lines changed

5 files changed

+35
-13
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
- The “Port” setting on the SMTP mailer transporter is no longer required. It will default to 465 or 25 depending on whether OpenSSL is installed.
99
- Fixed field status badge styling in some contexts. ([#12403](https://github.com/craftcms/cms/issues/12403))
1010
- Fixed a bug where exporting elements with multiple field layouts as a CSV file using the “Expanded” export type would result in mismatched column values.
11+
- Fixed a bug where cancelling a conflicting volume folder move would result in the moved folder getting deleted.
1112
- Deprecated `craft\helpers\DateTimeHelper::timeZoneAbbreviation()`.
1213
- Deprecated `craft\helpers\DateTimeHelper::timeZoneOffset()`.
1314

src/web/assets/cp/dist/cp.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/web/assets/cp/dist/cp.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/web/assets/cp/src/js/AssetIndex.js

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,7 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
416416

417417
// Get the old folder IDs, and sort them so that we're moving the most-nested folders first
418418
var folderIds = [];
419+
const folderIdsToDelete = [];
419420

420421
for (var i = 0; i < this._folderDrag.$draggee.length; i++) {
421422
var $a = this._folderDrag.$draggee.eq(i).children('a'),
@@ -479,12 +480,12 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
479480

480481
// Loop trough all the responses
481482
for (var i = 0; i < responseArray.length; i++) {
482-
var data = responseArray[i];
483+
const data = responseArray[i];
483484

484485
// If successful and have data, then update
485486
if (data.success) {
486487
if (data.transferList) {
487-
fileMoveList = data.transferList;
488+
fileMoveList.push(...data.transferList);
488489
}
489490

490491
if (data.newFolderId) {
@@ -493,6 +494,8 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
493494
'/folder:' +
494495
data.newFolderUid;
495496
}
497+
498+
folderIdsToDelete.push(data.request.params.folderId);
496499
}
497500

498501
// Push prompt into prompt array
@@ -520,15 +523,17 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
520523
var params = {};
521524
// Loop trough all returned data and prepare a new request array
522525
for (var i = 0; i < returnData.length; i++) {
523-
if (returnData[i].choice === 'cancel') {
526+
const data = returnData[i];
527+
528+
if (data.choice === 'cancel') {
524529
continue;
525530
}
526531

527-
if (returnData[i].choice === 'replace') {
532+
if (data.choice === 'replace') {
528533
params.force = true;
529534
}
530535

531-
if (returnData[i].choice === 'merge') {
536+
if (data.choice === 'merge') {
532537
params.merge = true;
533538
}
534539

@@ -545,7 +550,7 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
545550
if (newParameterArray.length === 0) {
546551
this._performActualFolderMove(
547552
fileMoveList,
548-
folderIds,
553+
folderIdsToDelete,
549554
newSourceKey
550555
);
551556
} else {
@@ -568,7 +573,7 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
568573
} else {
569574
this._performActualFolderMove(
570575
fileMoveList,
571-
folderIds,
576+
folderIdsToDelete,
572577
newSourceKey
573578
);
574579
}
@@ -604,6 +609,17 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
604609
this.progressBar.showProgressBar();
605610

606611
var moveCallback = (folderDeleteList) => {
612+
if (!folderDeleteList.length) {
613+
this.setIndexAvailable();
614+
this.progressBar.hideProgressBar();
615+
this._folderDrag.returnHelpersToDraggees();
616+
if (newSourceKey) {
617+
this.setInstanceState('selectedSource', newSourceKey);
618+
}
619+
this.refreshSources();
620+
return;
621+
}
622+
607623
// Delete the old folders
608624
var counter = 0;
609625
var limit = folderDeleteList.length;
@@ -617,7 +633,9 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
617633
this.setIndexAvailable();
618634
this.progressBar.hideProgressBar();
619635
this._folderDrag.returnHelpersToDraggees();
620-
this.setInstanceState('selectedSource', newSourceKey);
636+
if (newSourceKey) {
637+
this.setInstanceState('selectedSource', newSourceKey);
638+
}
621639
this.refreshSources();
622640
}
623641
}
@@ -1613,7 +1631,11 @@ Craft.AssetIndex = Craft.BaseElementIndex.extend({
16131631
data: parameters.params,
16141632
})
16151633
.then((response) => {
1616-
responseArray.push(response.data);
1634+
responseArray.push(
1635+
Object.assign({}, response.data, {
1636+
request: parameters,
1637+
})
1638+
);
16171639
})
16181640
.finally(() => {
16191641
this.progressBar.incrementProcessedItemCount(1);

src/web/assets/cp/src/js/BaseElementIndex.js

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1940,6 +1940,7 @@ Craft.BaseElementIndex = Garnish.Base.extend(
19401940
var $option = $(ev.selectedOption).addClass('sel');
19411941
this.$siteMenuBtn.html($option.html());
19421942
this._setSite($option.data('site-id'));
1943+
this.updateElements();
19431944
this.onSelectSite();
19441945
},
19451946

@@ -1977,8 +1978,6 @@ Craft.BaseElementIndex = Garnish.Base.extend(
19771978
Craft.cp.setSiteId(siteId);
19781979
}
19791980

1980-
// Update the elements
1981-
this.updateElements();
19821981
this.updateFilterBtn();
19831982
}
19841983
},

0 commit comments

Comments
 (0)