Web: Files: removed useless actions, fixed clearProgressData

This commit is contained in:
Nikita Gopienko 2020-09-29 18:24:49 +03:00
parent 4b302d1634
commit 4ac2767afb
11 changed files with 75 additions and 157 deletions

View File

@ -5,7 +5,7 @@ import ModalDialogContainer from "../ModalDialogContainer";
import { ModalDialog, Button, Text, Checkbox } from "asc-web-components";
import { withTranslation } from "react-i18next";
import { utils } from "asc-web-common";
import { setTreeFolders, getProgress } from "../../../store/files/actions";
import { setTreeFolders } from "../../../store/files/actions";
import { createI18N } from "../../../helpers/i18n";
const i18n = createI18N({
page: "ConvertDialog",
@ -115,7 +115,4 @@ const mapStateToProps = state => {
return {};
};
export default connect(
mapStateToProps,
{ setTreeFolders, getProgress }
)(withRouter(ConvertDialog));
export default connect(mapStateToProps, { setTreeFolders })(withRouter(ConvertDialog));

View File

@ -14,7 +14,6 @@ import { api, utils, toastr } from "asc-web-common";
import {
fetchFiles,
setTreeFolders,
getProgress,
setProgressBarData,
clearProgressData,
setNewTreeFilesBadge
@ -60,12 +59,12 @@ class DeleteDialogComponent extends React.Component {
treeFolders,
setTreeFolders,
isRecycleBinFolder,
getProgress,
setProgressBarData,
clearProgressData,
t
} = this.props;
const successMessage = "Files and folders was deleted";
getProgress()
api.files.getProgress()
.then(res => {
const currentProcess = res.find(x => x.id === id);
if (currentProcess && currentProcess.progress !== 100) {
@ -81,7 +80,7 @@ class DeleteDialogComponent extends React.Component {
label: t("DeleteOperation"),
visible: true
});
setTimeout(() => clearProgressData(store.dispatch), 5000);
setTimeout(() => clearProgressData(), 5000);
fetchFiles(currentFolderId, filter, store.dispatch).then(data => {
if (!isRecycleBinFolder) {
const path = data.selectedFolder.pathParts.slice(0);
@ -98,12 +97,12 @@ class DeleteDialogComponent extends React.Component {
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
};
onDelete = () => {
const { isRecycleBinFolder, onClose, t, setProgressBarData } = this.props;
const { isRecycleBinFolder, onClose, t, setProgressBarData, clearProgressData } = this.props;
const { selection } = this.state;
const deleteAfter = true; //Delete after finished
@ -138,7 +137,7 @@ class DeleteDialogComponent extends React.Component {
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
}
};
@ -273,5 +272,5 @@ const mapStateToProps = state => {
export default connect(
mapStateToProps,
{ setTreeFolders, getProgress, setProgressBarData, setNewTreeFilesBadge }
{ setTreeFolders, setProgressBarData, clearProgressData, setNewTreeFilesBadge }
)(withRouter(DeleteDialog));

View File

@ -25,7 +25,6 @@ import {
clearProgressData
} from "../../../store/files/actions";
import DownloadContent from "./DownloadContent";
import store from "../../../store/store";
import { createI18N } from "../../../helpers/i18n";
const i18n = createI18N({
page: "DownloadDialog",
@ -174,7 +173,7 @@ class DownloadDialogComponent extends React.Component {
};
onDownload = () => {
const { onDownloadProgress, onClose, t, setProgressBarData } = this.props;
const { onDownloadProgress, onClose, t, setProgressBarData, clearProgressData } = this.props;
const downloadItems = this.getDownloadItems();
const fileConvertIds = downloadItems[0];
@ -194,7 +193,7 @@ class DownloadDialogComponent extends React.Component {
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
}
};
@ -623,5 +622,5 @@ const mapStateToProps = state => {
export default connect(
mapStateToProps,
{ setProgressBarData }
{ setProgressBarData, clearProgressData }
)(withRouter(DownloadDialog));

View File

@ -3,7 +3,7 @@ import ModalDialogContainer from "../ModalDialogContainer";
import { ModalDialog, Button, Text } from "asc-web-components";
import { withTranslation } from "react-i18next";
import { api, utils, toastr } from "asc-web-common";
import { fetchFiles, clearProgressData } from "../../../store/files/actions";
import { fetchFiles } from "../../../store/files/actions";
import store from "../../../store/store";
import { createI18N } from "../../../helpers/i18n";
@ -23,8 +23,8 @@ const EmptyTrashDialogComponent = props => {
filter,
currentFolderId,
setProgressBarData,
getProgress,
isLoading
isLoading,
clearProgressData
} = props;
useEffect(() => {
@ -34,7 +34,7 @@ const EmptyTrashDialogComponent = props => {
const loopEmptyTrash = useCallback(
id => {
const successMessage = "Success empty recycle bin";
getProgress()
api.files.getProgress()
.then(res => {
const currentProcess = res.find(x => x.id === id);
if (currentProcess && currentProcess.progress !== 100) {
@ -53,21 +53,21 @@ const EmptyTrashDialogComponent = props => {
percent: 100,
label: t("DeleteOperation")
});
setTimeout(() => clearProgressData(store.dispatch), 5000);
setTimeout(() => clearProgressData(), 5000);
toastr.success(successMessage);
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
}
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
},
[t, currentFolderId, filter, getProgress, setProgressBarData]
[t, currentFolderId, filter, setProgressBarData, clearProgressData]
);
const onEmptyTrash = useCallback(() => {
@ -86,9 +86,9 @@ const EmptyTrashDialogComponent = props => {
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
}, [onClose, loopEmptyTrash, setProgressBarData, t]);
}, [onClose, loopEmptyTrash, setProgressBarData, t, clearProgressData]);
return (
<ModalDialogContainer>
@ -97,7 +97,6 @@ const EmptyTrashDialogComponent = props => {
<ModalDialog.Body>
<Text>{t("EmptyTrashDialogQuestion")}</Text>
<Text>{t("EmptyTrashDialogMessage")}</Text>
<Text>{t("EmptyTrashDialogWarning")}</Text>
</ModalDialog.Body>
<ModalDialog.Footer>
<Button

View File

@ -5,6 +5,5 @@
"EmptyTrashDialogQuestion": "Вы уверены, что хотите очистить корзину?",
"EmptyTrashDialogMessage": "Замечание: Это действие не может быть отменено.",
"EmptyTrashDialogWarning": "Внимание: удаление из Вашего аккаунта будет нельзя отменить.",
"DeleteOperation": "Удаление"
}

View File

@ -264,7 +264,7 @@ class FilesRowContent extends React.PureComponent {
this.setState({ showConvertDialog: !this.state.showConvertDialog });
getConvertProgress = fileId => {
const { selectedFolder, filter, setIsLoading, setProgressBarData, t } = this.props;
const { selectedFolder, filter, setIsLoading, setProgressBarData, t, clearProgressData } = this.props;
api.files.getConvertFile(fileId).then(res => {
if (res && res[0] && res[0].progress !== 100) {
setProgressBarData({ visible: true, percent: res[0].progress, label: t("Convert") });
@ -272,7 +272,7 @@ class FilesRowContent extends React.PureComponent {
} else {
if (res[0].error) {
toastr.error(res[0].error);
clearProgressData(store.dispatch);
clearProgressData();
} else {
setProgressBarData({ visible: true, percent: 100, label: t("Convert") });
setTimeout(() => clearProgressData(), 5000)
@ -535,6 +535,15 @@ function mapStateToProps(state) {
}
}
export default connect(mapStateToProps, { createFile, createFolder, updateFile, renameFolder, setTreeFolders, setProgressBarData, setNewTreeFilesBadge, setNewRowItems, setIsLoading })(
withRouter(withTranslation()(FilesRowContent))
);
export default connect(mapStateToProps, {
createFile,
createFolder,
updateFile,
renameFolder,
setTreeFolders,
setProgressBarData,
setNewTreeFilesBadge,
setNewRowItems,
setIsLoading,
clearProgressData
})(withRouter(withTranslation()(FilesRowContent)));

View File

@ -22,16 +22,11 @@ import Tile from "./Tile";
import { api, constants, MediaViewer, toastr, Loaders } from "asc-web-common";
import {
deleteFile,
deleteFolder,
deselectFile,
fetchFiles,
selectFile,
setAction,
setTreeFolders,
moveToFolder,
copyToFolder,
getProgress,
setDragging,
setDragItem,
setMediaViewerData,
@ -285,20 +280,20 @@ class SectionBodyContent extends React.Component {
};
onDeleteFile = (fileId, currentFolderId) => {
const { deleteFile, t, setProgressBarData } = this.props;
const { t, setProgressBarData, clearProgressData } = this.props;
setProgressBarData({
visible: true,
percent: 0,
label: t("DeleteOperation"),
});
deleteFile(fileId)
api.files.deleteFile(fileId)
.then((res) => {
const id = res[0] && res[0].id ? res[0].id : null;
this.loopDeleteProgress(id, currentFolderId, false);
})
.catch((err) => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
};
@ -308,11 +303,10 @@ class SectionBodyContent extends React.Component {
treeFolders,
setTreeFolders,
currentFolderType,
getProgress,
t,
setProgressBarData,
} = this.props;
getProgress().then((res) => {
api.files.getProgress().then((res) => {
const deleteProgress = res.find((x) => x.id === id);
if (deleteProgress && deleteProgress.progress !== 100) {
setProgressBarData({
@ -344,27 +338,27 @@ class SectionBodyContent extends React.Component {
})
.catch((err) => {
toastr.error(err);
clearProgressData(store.dispatch);
this.props.clearProgressData();
})
.finally(() =>
setTimeout(() => clearProgressData(store.dispatch), 5000)
setTimeout(() => this.props.clearProgressData(), 5000)
);
}
});
};
onDeleteFolder = (folderId, currentFolderId) => {
const { deleteFolder, t, setProgressBarData } = this.props;
const { t, setProgressBarData, clearProgressData } = this.props;
const progressLabel = t("DeleteOperation");
setProgressBarData({ visible: true, percent: 0, label: progressLabel });
deleteFolder(folderId, currentFolderId)
api.files.deleteFolder(folderId, currentFolderId)
.then((res) => {
const id = res[0] && res[0].id ? res[0].id : null;
this.loopDeleteProgress(id, currentFolderId, true);
})
.catch((err) => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
};
@ -1194,9 +1188,9 @@ class SectionBodyContent extends React.Component {
conflictResolveType,
deleteAfter
) => {
const { copyToFolder, loopFilesOperations } = this.props;
const { loopFilesOperations, clearProgressData } = this.props;
copyToFolder(
api.files.copyToFolder(
destFolderId,
folderIds,
fileIds,
@ -1209,7 +1203,7 @@ class SectionBodyContent extends React.Component {
})
.catch((err) => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
};
@ -1220,9 +1214,9 @@ class SectionBodyContent extends React.Component {
conflictResolveType,
deleteAfter
) => {
const { moveToFolder, loopFilesOperations } = this.props;
const { loopFilesOperations, clearProgressData } = this.props;
moveToFolder(
api.files.moveToFolder(
destFolderId,
folderIds,
fileIds,
@ -1235,7 +1229,7 @@ class SectionBodyContent extends React.Component {
})
.catch((err) => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
};
@ -1630,17 +1624,11 @@ const mapStateToProps = (state) => {
};
export default connect(mapStateToProps, {
deleteFile,
deleteFolder,
deselectFile,
fetchFiles,
//fetchRootFolders,
selectFile,
setAction,
setTreeFolders,
moveToFolder,
copyToFolder,
getProgress,
setDragging,
setDragItem,
setMediaViewerData,
@ -1649,4 +1637,5 @@ export default connect(mapStateToProps, {
setSelected,
setNewTreeFilesBadge,
setIsLoading,
clearProgressData
})(withRouter(withTranslation()(SectionBodyContent)));

View File

@ -15,7 +15,6 @@ import {
import {
fetchFiles,
setAction,
getProgress,
setProgressBarData,
clearProgressData,
setIsLoading,
@ -200,7 +199,7 @@ class SectionHeaderContent extends React.Component {
this.setState({ showCopyPanel: !this.state.showCopyPanel });
loop = (url) => {
this.props
api.files
.getProgress()
.then((res) => {
if (!url) {
@ -211,18 +210,18 @@ class SectionHeaderContent extends React.Component {
});
setTimeout(() => this.loop(res[0].url), 1000);
} else {
setTimeout(() => clearProgressData(filesStore.dispatch), 5000);
setTimeout(() => this.props.clearProgressData(filesStore.dispatch), 5000);
return window.open(url, "_blank");
}
})
.catch((err) => {
toastr.error(err);
clearProgressData(filesStore.dispatch);
this.props.clearProgressData(filesStore.dispatch);
});
};
downloadAction = () => {
const { t, selection, setProgressBarData } = this.props;
const { t, selection, setProgressBarData, clearProgressData } = this.props;
const fileIds = [];
const folderIds = [];
const items = [];
@ -349,10 +348,10 @@ class SectionHeaderContent extends React.Component {
currentFolderId,
setIsLoading,
isLoading,
getProgress,
loopFilesOperations,
setProgressBarData,
isCanCreate,
clearProgressData
} = this.props;
const {
@ -575,7 +574,7 @@ class SectionHeaderContent extends React.Component {
<EmptyTrashDialog
{...operationsPanelProps}
setProgressBarData={setProgressBarData}
getProgress={getProgress}
clearProgressData={clearProgressData}
currentFolderId={currentFolderId}
visible={showEmptyTrashDialog}
onClose={this.onEmptyTrashAction}
@ -650,7 +649,7 @@ const mapStateToProps = (state) => {
export default connect(mapStateToProps, {
setAction,
getProgress,
setProgressBarData,
setIsLoading,
clearProgressData
})(withTranslation()(withRouter(SectionHeaderContent)));

View File

@ -21,8 +21,6 @@ import {
clearProgressData,
deselectFile,
fetchFiles,
getFolder,
getProgress,
selectFile,
setDragging,
setFilter,
@ -241,20 +239,20 @@ class PureHome extends React.Component {
};
loopFilesOperations = (id, destFolderId, isCopy) => {
console.log("loopFilesOperations");
const {
currentFolderId,
filter,
getFolder,
getProgress,
isRecycleBinFolder,
progressData,
setNewTreeFilesBadge,
setProgressBarData,
treeFolders,
fetchFiles,
clearProgressData
} = this.props;
getProgress()
api.files.getProgress()
.then((res) => {
const currentItem = res.find((x) => x.id === id);
if (currentItem && currentItem.progress !== 100) {
@ -273,7 +271,7 @@ class PureHome extends React.Component {
percent: 100,
visible: true,
});
getFolder(destFolderId)
api.files.getFolder(destFolderId)
.then((data) => {
let newTreeFolders = treeFolders;
let path = data.pathParts.slice(0);
@ -583,8 +581,6 @@ function mapStateToProps(state) {
const mapDispatchToProps = (dispatch) => {
return {
deselectFile: (file) => dispatch(deselectFile(file)),
getFolder: () => dispatch(getFolder()),
getProgress: () => dispatch(getProgress()),
selectFile: (file) => dispatch(selectFile(file)),
setDragging: (dragging) => dispatch(setDragging(dragging)),
setFilter: (filter) => dispatch(setFilter(filter)),
@ -598,7 +594,7 @@ const mapDispatchToProps = (dispatch) => {
setIsLoading: (isLoading) => dispatch(setIsLoading(isLoading)),
setFirstLoad: (firstLoad) => dispatch(setFirstLoad(firstLoad)),
fetchFiles: (folderId, filter) => fetchFiles(folderId, filter, dispatch),
clearProgressData: () => clearProgressData(dispatch),
clearProgressData: () => dispatch(clearProgressData())
};
};

View File

@ -4,17 +4,14 @@ import { connect } from "react-redux";
import { withRouter } from "react-router";
import { ModalDialog } from "asc-web-components";
import { withTranslation } from "react-i18next";
import { utils as commonUtils, toastr } from "asc-web-common";
import { utils as commonUtils, toastr, api } from "asc-web-common";
import { StyledAsidePanel } from "../StyledPanels";
import TreeFolders from "../../Article/Body/TreeFolders";
import {
copyToFolder,
moveToFolder,
setProgressBarData,
clearProgressData
} from "../../../store/files/actions";
import { checkFolderType } from "../../../store/files/selectors";
import store from "../../../store/store";
import { createI18N } from "../../../helpers/i18n";
const i18n = createI18N({
page: "OperationsPanel",
@ -35,10 +32,9 @@ class OperationsPanelComponent extends React.Component {
t,
isCopy,
selection,
copyToFolder,
moveToFolder,
loopFilesOperations,
setProgressBarData
setProgressBarData,
clearProgressData
} = this.props;
const destFolderId = Number(e);
@ -64,7 +60,7 @@ class OperationsPanelComponent extends React.Component {
percent: 0,
label: t("CopyOperation")
});
copyToFolder(
api.files.copyToFolder(
destFolderId,
folderIds,
fileIds,
@ -77,7 +73,7 @@ class OperationsPanelComponent extends React.Component {
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
} else {
setProgressBarData({
@ -85,7 +81,7 @@ class OperationsPanelComponent extends React.Component {
percent: 0,
label: t("MoveToOperation")
});
moveToFolder(
api.files.moveToFolder(
destFolderId,
folderIds,
fileIds,
@ -98,7 +94,7 @@ class OperationsPanelComponent extends React.Component {
})
.catch(err => {
toastr.error(err);
clearProgressData(store.dispatch);
clearProgressData();
});
}
};
@ -172,11 +168,4 @@ const mapStateToProps = state => {
};
};
export default connect(
mapStateToProps,
{
copyToFolder,
moveToFolder,
setProgressBarData
}
)(withRouter(OperationsPanel));
export default connect(mapStateToProps, { setProgressBarData, clearProgressData })(withRouter(OperationsPanel));

View File

@ -334,12 +334,6 @@ export function fetchMyFolder(dispatch) {
});
}
export function getFolder(folderId) {
return dispatch => {
return files.getFolder(folderId);
};
}
export function fetchTrashFolder(dispatch) {
return files.getTrashFolderList().then(data => {
dispatch(setFiles(data.files));
@ -427,16 +421,6 @@ export function renameFolder(folderId, title) {
};
}
export function deleteFile(fileId, deleteAfter, immediately) {
return dispatch => {
return files.deleteFile(fileId, deleteAfter, immediately);
};
}
export function deleteFolder(folderId, deleteAfter, immediately) {
return dispatch => api.files.deleteFolder(folderId, deleteAfter, immediately);
}
export function setShareFiles(
folderIds,
fileIds,
@ -466,51 +450,10 @@ export function getShareUsers(folderIds, fileIds) {
return axios.all(requests).then(res => res);
}
export function getProgress() {
export function clearProgressData() {
return dispatch => {
return files.getProgress();
};
}
export function copyToFolder(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter
) {
return dispatch => {
return files.copyToFolder(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter
);
};
}
export function moveToFolder(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter
) {
return dispatch => {
return files.moveToFolder(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter
);
};
}
export function clearProgressData(dispatch) {
const emptyProgressData = { visible: false, percent: 0, label: "" };
dispatch(setProgressBarData(emptyProgressData));
dispatch(setProgressBarData({ visible: false, percent: 0, label: "" }));
}
}
/*export function deleteGroup(id) {