Merge branch 'release/1.0.0' of github.com:ONLYOFFICE/AppServer into release/1.0.0
This commit is contained in:
commit
0312904acd
@ -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) {
|
||||
|
@ -10,6 +10,8 @@ const HeaderStyles = css`
|
||||
`;
|
||||
|
||||
const StyledTableContainer = styled.div`
|
||||
-moz-user-select: none;
|
||||
|
||||
width: 100%;
|
||||
max-width: 100%;
|
||||
margin-top: -18px;
|
||||
|
@ -211,7 +211,7 @@ const PureTreeSettings = ({
|
||||
};
|
||||
|
||||
const TreeSettings = withTranslation(["Settings", "Common"])(
|
||||
withRouter(withLoader(PureTreeSettings)(<Loaders.TreeSettingsLoader />))
|
||||
withRouter(withLoader(PureTreeSettings)(<></>))
|
||||
);
|
||||
|
||||
export default inject(
|
||||
|
@ -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 = [
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user