Web: Files: Fix delete folder by socket

This commit is contained in:
Alexey Safronov 2022-01-28 16:28:40 +03:00
parent 36b4b64f3a
commit 413b5373a2
2 changed files with 17 additions and 6 deletions

View File

@ -72,6 +72,9 @@ class FilesStore {
socketHelper.on("s:modify-folder", async (opt) => { socketHelper.on("s:modify-folder", async (opt) => {
console.log("Call s:modify-folder", opt); console.log("Call s:modify-folder", opt);
if (this.isLoading) return;
//selectedFolderStore.id === folderId && this.fetchFiles(folderId); //selectedFolderStore.id === folderId && this.fetchFiles(folderId);
switch (opt?.cmd) { switch (opt?.cmd) {
case "create": case "create":
@ -79,9 +82,8 @@ class FilesStore {
const foundIndex = this.files.findIndex((x) => x.id === opt?.id); const foundIndex = this.files.findIndex((x) => x.id === opt?.id);
if (foundIndex > -1) return; if (foundIndex > -1) return;
const file = opt?.data const file = JSON.parse(opt?.data);
? JSON.parse(opt?.data)
: await api.files.getFileInfo(opt?.id);
this.setFiles([file, ...this.files]); this.setFiles([file, ...this.files]);
} else if (opt?.type == "folder" && opt?.id) { } else if (opt?.type == "folder" && opt?.id) {
const foundIndex = this.files.findIndex((x) => x.id === opt?.id); const foundIndex = this.files.findIndex((x) => x.id === opt?.id);
@ -98,7 +100,16 @@ class FilesStore {
if (foundIndex == -1) return; if (foundIndex == -1) return;
this.setFiles( this.setFiles(
this.files.filter((value, index) => { this.files.filter((_, index) => {
return index !== foundIndex;
})
);
} else if (opt?.type == "folder" && opt?.id) {
const foundIndex = this.folders.findIndex((x) => x.id === opt?.id);
if (foundIndex == -1) return;
this.setFolders(
this.folders.filter((_, index) => {
return index !== foundIndex; return index !== foundIndex;
}) })
); );

View File

@ -178,7 +178,7 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
FolderDao.DeleteFolder(folder.ID); FolderDao.DeleteFolder(folder.ID);
filesMessageService.Send(folder, _headers, MessageAction.FolderDeleted, folder.Title); filesMessageService.Send(folder, _headers, MessageAction.FolderDeleted, folder.Title);
var room = documentServiceHelper.GetSocketRoom(folderId); var room = documentServiceHelper.GetSocketRoom(folder.RootFolderId);
socketManager.DeleteFolder(folder.ID, room); socketManager.DeleteFolder(folder.ID, room);
ProcessedFolder(folderId); ProcessedFolder(folderId);
@ -204,7 +204,7 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
filesMessageService.Send(folder, _headers, MessageAction.FolderMovedToTrash, folder.Title); filesMessageService.Send(folder, _headers, MessageAction.FolderMovedToTrash, folder.Title);
} }
var room = documentServiceHelper.GetSocketRoom(folderId); var room = documentServiceHelper.GetSocketRoom(folder.RootFolderId);
socketManager.DeleteFolder(folder.ID, room); socketManager.DeleteFolder(folder.ID, room);
ProcessedFolder(folderId); ProcessedFolder(folderId);