Web: Files: Added opportunity to react on move/delete file on socket.io

This commit is contained in:
Alexey Safronov 2022-01-25 15:45:01 +03:00
parent e810605a4d
commit 6d17e0a37d
3 changed files with 25 additions and 5 deletions

View File

@ -90,8 +90,11 @@ class FilesStore {
const foundIndex = this.files.findIndex((x) => x.id === opt?.id);
if (foundIndex == -1) return;
const file = await api.files.getFileInfo(opt?.id);
this.setFiles(this.files.splice(foundIndex, 1));
this.setFiles(
this.files.filter((value, index) => {
return index !== foundIndex;
})
);
}
break;
}

View File

@ -35,6 +35,7 @@ using ASC.Files.Core;
using ASC.Files.Core.Resources;
using ASC.MessagingSystem;
using ASC.Web.Files.Helpers;
using ASC.Web.Files.Services.DocumentService;
using ASC.Web.Files.Utils;
using Microsoft.Extensions.DependencyInjection;
@ -209,7 +210,10 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
private void DeleteFiles(IEnumerable<T> fileIds, IServiceScope scope)
{
var scopeClass = scope.ServiceProvider.GetService<FileDeleteOperationScope>();
var scopeClass = scope.ServiceProvider.GetService<FileDeleteOperationScope>();
var documentServiceHelper = scope.ServiceProvider.GetService<DocumentServiceHelper>();
var socketManager = scope.ServiceProvider.GetService<SocketManager>();
var (fileMarker, filesMessageService) = scopeClass;
foreach (var fileId in fileIds)
{
@ -236,14 +240,20 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
{
file.ThumbnailStatus = Thumbnail.NotRequired;
FileDao.SaveThumbnail(file, null);
}
}
var roomFile = documentServiceHelper.GetSocketRoom(file, false);
socketManager.DeleteFile(file.ID, roomFile);
}
else
{
try
{
FileDao.DeleteFile(file.ID);
filesMessageService.Send(file, _headers, MessageAction.FileDeleted, file.Title);
filesMessageService.Send(file, _headers, MessageAction.FileDeleted, file.Title);
var roomFile = documentServiceHelper.GetSocketRoom(file, false);
socketManager.DeleteFile(file.ID, roomFile);
}
catch (Exception ex)
{

View File

@ -37,6 +37,7 @@ using ASC.MessagingSystem;
using ASC.Web.Core.Files;
using ASC.Web.Files.Classes;
using ASC.Web.Files.Helpers;
using ASC.Web.Files.Services.DocumentService;
using ASC.Web.Files.Utils;
using Microsoft.Extensions.DependencyInjection;
@ -477,6 +478,12 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
{
needToMark.Add(newFile);
}
var documentServiceHelper = scope.ServiceProvider.GetService<DocumentServiceHelper>();
var socketManager = scope.ServiceProvider.GetService<SocketManager>();
var roomFile = documentServiceHelper.GetSocketRoom(file, false);
socketManager.DeleteFile(file.ID, roomFile);
if (ProcessedFile(fileId))
{