MCPcopy Create free account
hub / github.com/error311/FileRise / loadCopyMoveFolderListForModal

Function loadCopyMoveFolderListForModal

public/js/fileActions.js:1033–1102  ·  view source on GitHub ↗
(dropdownId, preferredFolder = "", sourceId = "")

Source from the content-addressed store, hash-verified

1031}
1032
1033export async function loadCopyMoveFolderListForModal(dropdownId, preferredFolder = "", sourceId = "") {
1034 const folderSelect = document.getElementById(dropdownId);
1035 if (!folderSelect) return;
1036 folderSelect.innerHTML = "";
1037
1038 if (window.userFolderOnly) {
1039 const username = localStorage.getItem("username") || "root";
1040 try {
1041 const url = withBase("/api/folder/getFolderList.php")
1042 + "?restricted=1&counts=0"
1043 + (sourceId ? `&sourceId=${encodeURIComponent(sourceId)}` : "");
1044 const response = await fetch(url);
1045 let folders = await response.json();
1046 if (Array.isArray(folders) && folders.length && typeof folders[0] === "object" && folders[0].folder) {
1047 folders = folders.map(item => item.folder);
1048 }
1049 folders = folders.filter(folder =>
1050 folder.toLowerCase() !== "trash" &&
1051 (folder === username || folder.indexOf(username + "/") === 0)
1052 );
1053
1054 const rootOption = document.createElement("option");
1055 rootOption.value = username;
1056 rootOption.textContent = formatFolderName(username);
1057 folderSelect.appendChild(rootOption);
1058
1059 folders.forEach(folder => {
1060 if (folder !== username) {
1061 const option = document.createElement("option");
1062 option.value = folder;
1063 option.textContent = formatFolderName(folder);
1064 folderSelect.appendChild(option);
1065 }
1066 });
1067 selectPreferredFolderOption(folderSelect, preferredFolder);
1068 } catch (error) {
1069 console.error("Error loading folder list for modal:", error);
1070 }
1071 return;
1072 }
1073
1074 try {
1075 const url = withBase("/api/folder/getFolderList.php")
1076 + "?counts=0"
1077 + (sourceId ? `&sourceId=${encodeURIComponent(sourceId)}` : "");
1078 const response = await fetch(url);
1079 let folders = await response.json();
1080 if (Array.isArray(folders) && folders.length && typeof folders[0] === "object" && folders[0].folder) {
1081 folders = folders.map(item => item.folder);
1082 }
1083 folders = folders.filter(folder => folder !== "root" && folder.toLowerCase() !== "trash");
1084
1085 const rootOption = document.createElement("option");
1086 rootOption.value = "root";
1087 rootOption.textContent = getRootLabel(sourceId);
1088 folderSelect.appendChild(rootOption);
1089
1090 if (Array.isArray(folders) && folders.length > 0) {

Callers 1

initCopyMoveSourceSelectFunction · 0.85

Calls 4

withBaseFunction · 0.85
formatFolderNameFunction · 0.70
getRootLabelFunction · 0.70

Tested by

no test coverage detected