Search.../

bulkDeleteFolders( )

Temporarily deletes the specified folders from the Media Manager.

Description

The bulkDeleteFolders() function returns a Promise that resolves when the folders are deleted.

The deleted folders are moved to the Media Manager's TRASH_ROOT folder (trash bin) unless permanently deleted. To permanently delete folders, pass the permanent parameter with the value true. Permanently deleting folders isn't reversible, so make sure that the files in these folders aren't being used in a site or in any other way as the files will no longer be accessible.

Notes:

  • When a folder is deleted, the files in that folder are deleted.
  • The specified folders can be from different parent folders.
  • Moving multiple folders at once is an asynchronous action, and may take time for the changes to appear in the Media Manager.
  • Attempting to delete folders that are already in the trash bin doesn't result in an error.
  • If your site contains files from a non-permanently deleted media folder, the files still appear on your site as the deleted folder is still in the Media Manager (in the trash bin).
  • You can use the bulkRestoreFoldersFromTrashBin() function to restore folders from the Media Manager's trash bin.
Admin Method

This function requires elevated permissions to run. This function is not universal and runs only on the backend.

Syntax

function bulkDeleteFolders(folderIds: Array<string>, options: BulkDeleteFoldersOptions): Promise<void>

bulkDeleteFolders Parameters

NAME
TYPE
DESCRIPTION
folderIds
Array<
string
>

IDs of the folders to move to the Media Manager's trash bin.

options
Optional
BulkDeleteFoldersOptions

Options to use when deleting folders.

Returns

Return Type:

Promise<
void
>

Was this helpful?

Bulk delete folders (dashboard page code)

Copy Code
1import { folders } from 'wix-media.v2';
2
3/* Sample folderIds value:
4 * [
5 * '302fc049d70c41dea33fa4a27ab481ba',
6 * 's8ze556gf8wfao3us62nx25ww3lr595a'
7 * ]
8 */
9
10async function myBulkDeleteFoldersFunction(folderIds) {
11 try {
12 const deletedFolders = await folders.bulkDeleteFolders(folderIds);
13
14 console.log('Successfully moved folders to trash.');
15 return deletedFolders;
16 } catch (error) {
17 console.error(error);
18 // Handle the error
19 }
20}
21
22/* Promise resolves to void */
Bulk delete folders (export from backend code)

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { folders } from 'wix-media.v2';
3import { elevate } from 'wix-auth';
4
5/* Sample folderIds value:
6 * [
7 * '302fc049d70c41dea33fa4a27ab481ba',
8 * 's8ze556gf8wfao3us62nx25ww3lr595a'
9 * ]
10 */
11
12export const myBulkDeleteFoldersFunction = webMethod(Permissions.Anyone, async (folderIds) => {
13 try {
14 const elevatedBulkDeleteFolders = elevate(folders.bulkDeleteFolders);
15 const deletedFolders = await elevatedBulkDeleteFolders(folderIds);
16
17 console.log('Successfully moved folders to trash.');
18 return deletedFolders;
19 } catch (error) {
20 console.error(error);
21 // Handle the error
22 }
23});
24
25/* Promise resolves to void */
26
Bulk permanently delete folders

Copy Code
1import { Permissions, webMethod } from 'wix-web-module';
2import { folders } from 'wix-media.v2';
3import { elevate } from 'wix-auth';
4
5/* Sample folderIds value:
6 * [
7 * '302fc049d70c41dea33fa4a27ab481ba',
8 * 's8ze556gf8wfao3us62nx25ww3lr595a',
9 * 'c956d69906414e7faf8a0ad81117b17d'
10 * ]
11 *
12 * Sample options value:
13 * {
14 * permanent: true
15 * }
16 */
17
18export const myBulkDeleteFoldersFunction = webMethod(Permissions.Anyone, async (folderIds, options) => {
19 try {
20 const elevatedBulkDeleteFolders = elevate(folders.bulkDeleteFolders);
21 const deletedFolders = await elevatedBulkDeleteFolders(folderIds, options);
22
23 console.log('Successfully permanently deleted files.');
24 return deletedFolders;
25 } catch (error) {
26 console.error(error);
27 // Handle the error
28 }
29});
30
31/* Promise resolves to void */
Bulk delete all folders

This code is an example of a page on which a visitor chooses a folder from a dropdown list, and then deletes all folders found within that folder.

Copy Code
1/****************************************
2 * Backend code - delete-folders.web.js *
3 ***************************************/
4
5import { Permissions, webMethod } from 'wix-web-module';
6import { folders } from 'wix-media.v2';
7import { elevate } from 'wix-auth';
8
9export const deleteFolders = webMethod(Permissions.Anyone, async (folderIds) => {
10 try {
11 const elevatedBulkDeleteFolders = elevate(folders.bulkDeleteFolders);
12 const deletedFolders = await elevatedBulkDeleteFolders(folderIds);
13
14 console.log('Successfully moved folders to trash.');
15 return deletedFolders;
16 } catch (error) {
17 console.error(error);
18 }
19});
20
21export const listFolders = webMethod(Permissions.Anyone, async () => {
22 try {
23 const elevatedListFolders = elevate(folders.listFolders)
24 const foldersList = await elevatedListFolders();
25
26 return foldersList;
27 } catch (error) {
28 console.error(error);
29 }
30});
31
32export const searchFolders = webMethod(Permissions.Anyone, async (options) => {
33 try {
34 const elevatedSearchFolders = elevate(folders.searchFolders)
35 const foldersFound = await elevatedSearchFolders(options);
36
37 return foldersFound;
38 } catch (error) {
39 console.error(error);
40 }
41});
42
43
44/*************
45 * Page code *
46 ************/
47
48import { deleteFolders, listFolders, searchFolders } from 'backend/delete-folders.web';
49
50$w.onReady(async () => {
51 await populateFoldersDropdown();
52
53 $w('#bulkDelete').onClick(async () => {
54 const searchOptions = { rootFolder: $w('#foldersDropdown').value};
55
56 const foldersToDelete = await searchFolders(searchOptions);
57 const foldersIdsToDelete = foldersToDelete.map((folder) => {
58 return folder._id;
59 });
60 await deleteFolders(foldersIdsToDelete);
61
62 console.log(`Successfully deleted all folders found in ${$w('#foldersDropdown').label}.`)
63 $w('#bulkDeleteSuccessMsg').show();
64 });
65});
66
67async function populateFoldersDropdown() {
68 const folders = await listFolders();
69 const dropdownOptions = folders.map((folder) => {
70 return {
71 label: folder.displayName,
72 value: folder._id
73 };
74 });
75
76 $w('#foldersDropdown').options = dropdownOptions;
77};