Merge branch 'release/1.0.0' of github.com:ONLYOFFICE/AppServer into release/1.0.0

This commit is contained in:
Viktor Fomin 2021-09-10 12:55:01 +03:00
commit 0312904acd
6 changed files with 94 additions and 84 deletions

View File

@ -66,7 +66,9 @@ export const request = function (options) {
if (response.data.hasOwnProperty("total"))
return { total: +response.data.total, items: response.data.response };
return response.data.response || response.data;
if (response.request.responseType === "text") return response.data;
return response.data.response;
};
const onError = function (error) {

View File

@ -10,6 +10,8 @@ const HeaderStyles = css`
`;
const StyledTableContainer = styled.div`
-moz-user-select: none;
width: 100%;
max-width: 100%;
margin-top: -18px;

View File

@ -211,7 +211,7 @@ const PureTreeSettings = ({
};
const TreeSettings = withTranslation(["Settings", "Common"])(
withRouter(withLoader(PureTreeSettings)(<Loaders.TreeSettingsLoader />))
withRouter(withLoader(PureTreeSettings)(<></>))
);
export default inject(

View File

@ -8,6 +8,7 @@ import Text from "@appserver/components/text";
import { withTranslation } from "react-i18next";
import { inject, observer } from "mobx-react";
import { ConflictResolveType } from "@appserver/common/constants";
import toastr from "studio/toastr";
const ConflictResolveDialog = (props) => {
const {
@ -49,7 +50,7 @@ const ConflictResolveDialog = (props) => {
}
};
const onAcceptType = () => {
const onAcceptType = async () => {
const conflictResolveType = getResolveType();
let newFileIds = fileIds;
@ -72,7 +73,11 @@ const ConflictResolveDialog = (props) => {
};
onClose();
itemOperationToFolder(data);
try {
await itemOperationToFolder(data);
} catch (error) {
toastr.error(error.message);
}
};
const radioOptions = [

View File

@ -643,8 +643,7 @@ class FilesActionStore {
try {
conflicts = await checkFileConflicts(destFolderId, folderIds, fileIds);
} catch (err) {
toastr.error(err);
return;
return toastr.error(err.message);
}
if (conflicts.length) {
@ -652,7 +651,11 @@ class FilesActionStore {
setConflictResolveDialogData(operationData);
setConflictResolveDialogVisible(true);
} else {
this.uploadDataStore.itemOperationToFolder(operationData);
try {
await this.uploadDataStore.itemOperationToFolder(operationData);
} catch (err) {
return toastr.error(err.message);
}
}
};

View File

@ -5,7 +5,6 @@ import uniqueid from "lodash/uniqueId";
import throttle from "lodash/throttle";
import sumBy from "lodash/sumBy";
import { ConflictResolveType } from "@appserver/common/constants";
//import toastr from "studio/toastr";
import {
getFolder,
getFileInfo,
@ -754,8 +753,8 @@ class UploadDataStore {
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
clearPrimaryProgressData,
} = this.secondaryProgressDataStore;
const { clearPrimaryProgressData } = this.primaryProgressDataStore;
return copyToFolder(
destFolderId,
@ -765,17 +764,19 @@ class UploadDataStore {
deleteAfter
)
.then((res) => {
if (res[0]?.error) return Promise.reject(res[0].error);
const id = res[0] && res[0].id ? res[0].id : null;
this.loopFilesOperations(id, destFolderId, true);
return this.loopFilesOperations(id, destFolderId, true);
})
.catch((err) => {
setSecondaryProgressBarData({
visible: true,
alert: true,
});
//toastr.error(err);
setTimeout(() => clearPrimaryProgressData(), TIMEOUT);
setTimeout(() => clearSecondaryProgressData(), TIMEOUT);
return Promise.reject(err);
});
};
@ -808,9 +809,9 @@ class UploadDataStore {
visible: true,
alert: true,
});
//toastr.error(err);
setTimeout(() => clearPrimaryProgressData(), TIMEOUT);
setTimeout(() => clearSecondaryProgressData(), TIMEOUT);
return Promise.reject(err);
});
};
@ -835,7 +836,7 @@ class UploadDataStore {
alert: false,
});
isCopy
return isCopy
? this.copyToAction(
destFolderId,
folderIds,
@ -861,81 +862,78 @@ class UploadDataStore {
setSecondaryProgressBarData,
} = this.secondaryProgressDataStore;
const loopOperation = () => {
getProgress()
.then((res) => {
const currentItem = res.find((x) => x.id === id);
if (currentItem && currentItem.progress !== 100) {
this.secondaryProgressDataStore.setSecondaryProgressBarData({
icon: isCopy ? "duplicate" : "move",
label,
percent: currentItem.progress,
visible: true,
alert: false,
});
setTimeout(() => loopOperation(), 1000);
} else {
this.secondaryProgressDataStore.setSecondaryProgressBarData({
icon: isCopy ? "duplicate" : "move",
label,
percent: 100,
visible: true,
alert: false,
});
getFolder(destFolderId).then((data) => {
let newTreeFolders = treeFolders;
let path = data.pathParts.slice(0);
let folders = data.folders;
let foldersCount = data.current.foldersCount;
loopTreeFolders(path, newTreeFolders, folders, foldersCount);
if (!isCopy || destFolderId === this.selectedFolderStore.id) {
this.filesStore
.fetchFiles(
this.selectedFolderStore.id,
this.filesStore.filter,
true,
true
)
.finally(() => {
setTimeout(
() =>
this.secondaryProgressDataStore.clearSecondaryProgressData(),
TIMEOUT
);
});
} else {
this.secondaryProgressDataStore.setSecondaryProgressBarData({
icon: "duplicate",
label,
percent: 100,
visible: true,
alert: false,
});
setTimeout(
() =>
this.secondaryProgressDataStore.clearSecondaryProgressData(),
TIMEOUT
);
this.treeFoldersStore.setTreeFolders(newTreeFolders);
}
});
}
})
.catch((err) => {
return this.getOperationProgress(id)
.then((item) => {
if (item && item.progress !== 100) {
setSecondaryProgressBarData({
icon: isCopy ? "duplicate" : "move",
label,
percent: item.progress,
visible: true,
alert: true,
alert: false,
});
} else {
setSecondaryProgressBarData({
icon: isCopy ? "duplicate" : "move",
label,
percent: 100,
visible: true,
alert: false,
});
//toastr.error(err);
setTimeout(() => clearSecondaryProgressData(), TIMEOUT);
});
};
loopOperation();
getFolder(destFolderId).then((data) => {
let newTreeFolders = treeFolders;
let path = data.pathParts.slice(0);
let folders = data.folders;
let foldersCount = data.current.foldersCount;
loopTreeFolders(path, newTreeFolders, folders, foldersCount);
if (!isCopy || destFolderId === this.selectedFolderStore.id) {
this.filesStore
.fetchFiles(
this.selectedFolderStore.id,
this.filesStore.filter,
true,
true
)
.finally(() => {
setTimeout(() => clearSecondaryProgressData(), TIMEOUT);
});
} else {
setSecondaryProgressBarData({
icon: "duplicate",
label,
percent: 100,
visible: true,
alert: false,
});
setTimeout(() => clearSecondaryProgressData(), TIMEOUT);
this.treeFoldersStore.setTreeFolders(newTreeFolders);
}
});
}
})
.catch((err) => Promise.reject(err));
};
getOperationProgress = async (id) => {
const promise = new Promise((resolve, reject) => {
setTimeout(() => {
try {
getProgress().then((res) => {
const currentItem = res.find((x) => x.id === id);
if (currentItem?.error) {
return reject(currentItem.error);
}
resolve(currentItem);
});
} catch (error) {
reject(error);
}
}, 1000);
});
return promise;
};
}