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.
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
IDs of the folders to move to the Media Manager's trash bin.
Options to use when deleting folders.
Returns
Return Type:
Was this helpful?
1import { folders } from 'wix-media.v2';23/* Sample folderIds value:4 * [5 * '302fc049d70c41dea33fa4a27ab481ba',6 * 's8ze556gf8wfao3us62nx25ww3lr595a'7 * ]8 */910async function myBulkDeleteFoldersFunction(folderIds) {11 try {12 const deletedFolders = await folders.bulkDeleteFolders(folderIds);1314 console.log('Successfully moved folders to trash.');15 return deletedFolders;16 } catch (error) {17 console.error(error);18 // Handle the error19 }20}2122/* Promise resolves to void */
1import { Permissions, webMethod } from 'wix-web-module';2import { folders } from 'wix-media.v2';3import { elevate } from 'wix-auth';45/* Sample folderIds value:6 * [7 * '302fc049d70c41dea33fa4a27ab481ba',8 * 's8ze556gf8wfao3us62nx25ww3lr595a'9 * ]10 */1112export const myBulkDeleteFoldersFunction = webMethod(Permissions.Anyone, async (folderIds) => {13 try {14 const elevatedBulkDeleteFolders = elevate(folders.bulkDeleteFolders);15 const deletedFolders = await elevatedBulkDeleteFolders(folderIds);1617 console.log('Successfully moved folders to trash.');18 return deletedFolders;19 } catch (error) {20 console.error(error);21 // Handle the error22 }23});2425/* Promise resolves to void */26
1import { Permissions, webMethod } from 'wix-web-module';2import { folders } from 'wix-media.v2';3import { elevate } from 'wix-auth';45/* Sample folderIds value:6 * [7 * '302fc049d70c41dea33fa4a27ab481ba',8 * 's8ze556gf8wfao3us62nx25ww3lr595a',9 * 'c956d69906414e7faf8a0ad81117b17d'10 * ]11 *12 * Sample options value:13 * {14 * permanent: true15 * }16 */1718export const myBulkDeleteFoldersFunction = webMethod(Permissions.Anyone, async (folderIds, options) => {19 try {20 const elevatedBulkDeleteFolders = elevate(folders.bulkDeleteFolders);21 const deletedFolders = await elevatedBulkDeleteFolders(folderIds, options);2223 console.log('Successfully permanently deleted files.');24 return deletedFolders;25 } catch (error) {26 console.error(error);27 // Handle the error28 }29});3031/* Promise resolves to void */
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.
1/****************************************2 * Backend code - delete-folders.web.js *3 ***************************************/45import { Permissions, webMethod } from 'wix-web-module';6import { folders } from 'wix-media.v2';7import { elevate } from 'wix-auth';89export const deleteFolders = webMethod(Permissions.Anyone, async (folderIds) => {10 try {11 const elevatedBulkDeleteFolders = elevate(folders.bulkDeleteFolders);12 const deletedFolders = await elevatedBulkDeleteFolders(folderIds);1314 console.log('Successfully moved folders to trash.');15 return deletedFolders;16 } catch (error) {17 console.error(error);18 }19});2021export const listFolders = webMethod(Permissions.Anyone, async () => {22 try {23 const elevatedListFolders = elevate(folders.listFolders)24 const foldersList = await elevatedListFolders();2526 return foldersList;27 } catch (error) {28 console.error(error);29 }30});3132export const searchFolders = webMethod(Permissions.Anyone, async (options) => {33 try {34 const elevatedSearchFolders = elevate(folders.searchFolders)35 const foldersFound = await elevatedSearchFolders(options);3637 return foldersFound;38 } catch (error) {39 console.error(error);40 }41});424344/*************45 * Page code *46 ************/4748import { deleteFolders, listFolders, searchFolders } from 'backend/delete-folders.web';4950$w.onReady(async () => {51 await populateFoldersDropdown();5253 $w('#bulkDelete').onClick(async () => {54 const searchOptions = { rootFolder: $w('#foldersDropdown').value};5556 const foldersToDelete = await searchFolders(searchOptions);57 const foldersIdsToDelete = foldersToDelete.map((folder) => {58 return folder._id;59 });60 await deleteFolders(foldersIdsToDelete);6162 console.log(`Successfully deleted all folders found in ${$w('#foldersDropdown').label}.`)63 $w('#bulkDeleteSuccessMsg').show();64 });65});6667async function populateFoldersDropdown() {68 const folders = await listFolders();69 const dropdownOptions = folders.map((folder) => {70 return {71 label: folder.displayName,72 value: folder._id73 };74 });7576 $w('#foldersDropdown').options = dropdownOptions;77};