Merge branch 'feature/files' of https://github.com/ONLYOFFICE/CommunityServer-AspNetCore into feature/files
This commit is contained in:
commit
b08e9f83c4
@ -94,28 +94,28 @@ class SectionBodyContent extends React.PureComponent {
|
||||
});
|
||||
}
|
||||
|
||||
onClickDelete = (item) => {
|
||||
item.fileExst
|
||||
? this.onDeleteFile(item.id, item.folderId)
|
||||
: this.onDeleteFolder(item.id, item.parentId);
|
||||
}
|
||||
|
||||
onDeleteFile = (fileId, currentFolderId) => {
|
||||
const { deleteFile } = this.props;
|
||||
|
||||
deleteFile(fileId)
|
||||
.catch(err => toastr.error(err))
|
||||
.then(() => fetchFolder(currentFolderId, store.dispatch));
|
||||
.then(() => fetchFolder(currentFolderId, store.dispatch))
|
||||
.then(() => toastr.success(`File moved to recycle bin`));
|
||||
}
|
||||
|
||||
onDeleteFolder = (folderId, currentFolderId) => {
|
||||
toastr.warning('development');
|
||||
/* const { deleteFolder } = this.props;
|
||||
const { deleteFolder } = this.props;
|
||||
|
||||
deleteFolder(folderId)
|
||||
.catch(err => toastr.error(err))
|
||||
.then(() => fetchFolder(currentFolderId, store.dispatch)); */
|
||||
}
|
||||
|
||||
onClickDelete = (item) => {
|
||||
|
||||
item.fileExst
|
||||
? this.onDeleteFile(item.id, item.folderId)
|
||||
: this.onDeleteFolder(item.id, item.parentId);
|
||||
.then(() => fetchFolder(currentFolderId, store.dispatch))
|
||||
.then(() => toastr.success(`Folder moved to recycle bin`));
|
||||
}
|
||||
|
||||
onClickLinkForPortal = (folderId) => {
|
||||
|
@ -313,9 +313,15 @@ export function deleteFile(fileId, deleteAfter, immediately) {
|
||||
}
|
||||
}
|
||||
|
||||
export function deleteFolder(fileId, deleteAfter, immediately) {
|
||||
return dispatch => {
|
||||
return files.deleteFolder(fileId, deleteAfter, immediately)
|
||||
export function deleteFolder(folderId, deleteAfter, immediately) {
|
||||
return (dispatch, getState) => {
|
||||
const { files } = getState();
|
||||
const { folders } = files;
|
||||
|
||||
return api.files.deleteFolder(folderId, deleteAfter, immediately)
|
||||
.then(res => {
|
||||
return dispatch(setFolder(folders.filter(f => f.id !== folderId)));
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -730,9 +730,9 @@ namespace ASC.Api.Documents
|
||||
/// <param name="title">Title of new folder</param>
|
||||
/// <returns>New folder contents</returns>
|
||||
[Create("folder/{folderId}")]
|
||||
public FolderWrapper CreateFolder(string folderId, string title)
|
||||
public FolderWrapper CreateFolder(string folderId, FolderModel folderModel)
|
||||
{
|
||||
var folder = FileStorageService.CreateNewFolder(folderId, title);
|
||||
var folder = FileStorageService.CreateNewFolder(folderId, folderModel.Title);
|
||||
return FolderWrapperHelper.Get(folder);
|
||||
}
|
||||
|
||||
@ -777,9 +777,9 @@ namespace ASC.Api.Documents
|
||||
/// <param name="title">New title</param>
|
||||
/// <returns>Folder contents</returns>
|
||||
[Update("folder/{folderId}")]
|
||||
public FolderWrapper RenameFolder(string folderId, string title)
|
||||
public FolderWrapper RenameFolder(string folderId, FolderModel folderModel)
|
||||
{
|
||||
var folder = FileStorageService.FolderRename(folderId, title);
|
||||
var folder = FileStorageService.FolderRename(folderId, folderModel.Title);
|
||||
return FolderWrapperHelper.Get(folder);
|
||||
}
|
||||
|
||||
@ -832,13 +832,13 @@ namespace ASC.Api.Documents
|
||||
/// <param name="lastVersion">File last version number</param>
|
||||
/// <returns>File info</returns>
|
||||
[Update("file/{fileId}")]
|
||||
public FileWrapper UpdateFile(string fileId, string title, int lastVersion)
|
||||
public FileWrapper UpdateFile(string fileId, [FromBody]FileModelFull model)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(title))
|
||||
FileStorageService.FileRename(fileId.ToString(CultureInfo.InvariantCulture), title);
|
||||
if (!string.IsNullOrEmpty(model.Title))
|
||||
FileStorageService.FileRename(fileId.ToString(CultureInfo.InvariantCulture), model.Title);
|
||||
|
||||
if (lastVersion > 0)
|
||||
FileStorageService.UpdateToVersion(fileId.ToString(CultureInfo.InvariantCulture), lastVersion);
|
||||
if (model.Version > 0)
|
||||
FileStorageService.UpdateToVersion(fileId.ToString(CultureInfo.InvariantCulture), model.Version);
|
||||
|
||||
return GetFileInfo(fileId);
|
||||
}
|
||||
|
13
products/ASC.Files/Server/Model/FileModelFull.cs
Normal file
13
products/ASC.Files/Server/Model/FileModelFull.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using ASC.Files.Core.Security;
|
||||
|
||||
namespace ASC.Files.Model
|
||||
{
|
||||
public class FileModelFull
|
||||
{
|
||||
public string FileId { get; set; }
|
||||
public string ParentId { get; set; }
|
||||
public string Title { get; set; }
|
||||
public int Version { get; set; } = -1;
|
||||
public FileShare Share { get; set; }
|
||||
}
|
||||
}
|
7
products/ASC.Files/Server/Model/FolderModel.cs
Normal file
7
products/ASC.Files/Server/Model/FolderModel.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace ASC.Files.Model
|
||||
{
|
||||
public class FolderModel
|
||||
{
|
||||
public string Title { get; set; }
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "asc-web-common",
|
||||
"version": "1.0.108",
|
||||
"version": "1.0.110",
|
||||
"description": "Ascensio System SIA common components and solutions library",
|
||||
"license": "AGPL-3.0",
|
||||
"files": [
|
||||
|
@ -3,119 +3,207 @@ import { request } from "../client";
|
||||
import Filter from "./filter";
|
||||
import * as fakeFiles from "./fake";
|
||||
|
||||
export function getFolder(folderId, filter = Filter.getDefault(), fake = false) {
|
||||
export function getFolderInfo(folderId) {
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/folder/${folderId}`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getFolderPath(folderId) {
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/folder/${folderId}/path`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getFolder(folderId, filter = Filter.getDefault(), fake = false) {
|
||||
if (fake) {
|
||||
return fakeFiles.getFakeElements(filter, "Fake folder");
|
||||
}
|
||||
|
||||
return request({
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/${folderId}.json`
|
||||
});
|
||||
}
|
||||
url: `/files/${folderId}`
|
||||
};
|
||||
|
||||
export function getFolderInfo(folderId) {
|
||||
|
||||
return request({
|
||||
method: "get",
|
||||
url: `/files/folder/${folderId}`
|
||||
});
|
||||
}
|
||||
|
||||
export function getFolderPath(folderId) {
|
||||
|
||||
return request({
|
||||
method: "get",
|
||||
url: `/files/folder/${folderId}/path`
|
||||
});
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getMyFolderList(filter = Filter.getDefault(), fake = false) {
|
||||
|
||||
if (fake) {
|
||||
return fakeFiles.getFakeElements(filter, "My Documents");
|
||||
}
|
||||
|
||||
return request({
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/@my.json`
|
||||
});
|
||||
url: `/files/@my`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getCommonFolderList(filter = Filter.getDefault(), fake = false) {
|
||||
|
||||
if (fake) {
|
||||
return fakeFiles.getFakeElements(filter, "Common Documents");
|
||||
}
|
||||
|
||||
return request({
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/@common.json`
|
||||
});
|
||||
url: `/files/@common`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getProjectsFolderList(filter = Filter.getDefault(), fake = false) {
|
||||
|
||||
if (fake) {
|
||||
return fakeFiles.getFakeElements(filter, "Project Documents");
|
||||
}
|
||||
|
||||
return request({
|
||||
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/@projects.json`
|
||||
});
|
||||
url: `/files/@projects`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getTrashFolderList(filter = Filter.getDefault(), fake = false) {
|
||||
|
||||
if (fake) {
|
||||
return fakeFiles.getFakeElements(filter, "Recycle Bin");
|
||||
}
|
||||
|
||||
return request({
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/@trash.json`
|
||||
});
|
||||
url: `/files/@trash`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function getSharedFolderList(filter = Filter.getDefault(), fake = false) {
|
||||
|
||||
if (fake) {
|
||||
return fakeFiles.getFakeElements(filter, "Shared with Me");
|
||||
}
|
||||
|
||||
return request({
|
||||
const options = {
|
||||
method: "get",
|
||||
url: `/files/@share.json`
|
||||
});
|
||||
url: `/files/@share`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createFolder(parentFolderId, title) {
|
||||
const data = { title };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: `/files/folder/${parentFolderId}`,
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function renameFolder(folderId, title) {
|
||||
const data = { title };
|
||||
const options = {
|
||||
method: "put",
|
||||
url: `/files/folder/${folderId}`,
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function deleteFolder(folderId, deleteAfter, immediately) {
|
||||
const data = { deleteAfter, immediately };
|
||||
const options = {
|
||||
method: "delete",
|
||||
url: `/files/folder/${folderId}`,
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createFile(folderId, title) {
|
||||
const data = { title };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: `/files/${folderId}/file`,
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createTextFile(folderId, title, content) {
|
||||
const data = { title, content };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: `/files/${folderId}/text`,
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createTextFileInMy(title) {
|
||||
const data = { title };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: "/files/@my/file",
|
||||
data: { title }
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createTextFileInCommon(title) {
|
||||
const data = { title };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: "/files/@common/file",
|
||||
data: { title }
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createTextFile(folderId, title) {
|
||||
export function createHtmlFile(folderId, title, content) {
|
||||
const data = { title, content };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: `/files/${folderId}/file`,
|
||||
data: { title }
|
||||
url: `/files/${folderId}/html`,
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createHtmlFileInMy(title, content) {
|
||||
const data = { title, content };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: "/files/@my/html",
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createHtmlFileInCommon(title, content) {
|
||||
const data = { title, content };
|
||||
const options = {
|
||||
method: "post",
|
||||
url: "/files/@common/html",
|
||||
data
|
||||
};
|
||||
|
||||
return request(options);
|
||||
@ -131,49 +219,23 @@ export function getFileInfo(fileId) {
|
||||
}
|
||||
|
||||
export function updateFile(fileId, title, lastVersion) {
|
||||
|
||||
const data = { title, lastVersion };
|
||||
const options = {
|
||||
method: "put",
|
||||
url: `/files/file/${fileId}?title=${title}${lastVersion ? `lastVersion=${lastVersion}` : ``}`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function createFolder(parentFolderId, title) {
|
||||
const options = {
|
||||
method: "post",
|
||||
url: `/files/folder/${parentFolderId}?title=${title}`,
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function renameFolder(folderId, title) {
|
||||
const options = {
|
||||
method: "put",
|
||||
url: `/files/folder/${folderId}?title=${title}`
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function deleteFolder(folderId, deleteAfter, immediately) {
|
||||
const data = { deleteAfter, immediately };
|
||||
|
||||
return request({
|
||||
method: "delete",
|
||||
url: `/files/folder/${folderId}`,
|
||||
url: `/files/file/${fileId}`,
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
||||
|
||||
export function deleteFile(fileId, deleteAfter, immediately) {
|
||||
const data = { deleteAfter, immediately };
|
||||
|
||||
return request({
|
||||
const options = {
|
||||
method: "delete",
|
||||
url: `/files/file/${fileId}`,
|
||||
url: `/files/file/${fileId}`,
|
||||
data
|
||||
});
|
||||
};
|
||||
|
||||
return request(options);
|
||||
}
|
Loading…
Reference in New Issue
Block a user