Web: Files: removed redux provider from files

This commit is contained in:
Nikita Gopienko 2021-02-15 15:11:26 +03:00
parent b8db0ea2a5
commit 68910bfa04
49 changed files with 4911 additions and 3428 deletions

View File

@ -1,26 +1,26 @@
import React, { useEffect } from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import styled from "styled-components";
import { Link } from "asc-web-components";
import { history, utils } from "asc-web-common";
import { withTranslation, I18nextProvider } from "react-i18next";
import { createI18N } from "../../../helpers/i18n";
import {
getGoogleConnect,
getBoxConnect,
getDropboxConnect,
getOneDriveConnect,
getNextCloudConnect,
getWebDavConnect,
} from "../../../store/files/selectors";
import {
getOAuthToken,
openConnectWindow,
setConnectItem,
//setSelectedFolder,
//setSelectedNode,
setShowThirdPartyPanel,
} from "../../../store/files/actions";
// import {
// getGoogleConnect,
// getBoxConnect,
// getDropboxConnect,
// getOneDriveConnect,
// getNextCloudConnect,
// getWebDavConnect,
// } from "../../../store/files/selectors";
// import {
// getOAuthToken,
// openConnectWindow,
// setConnectItem,
// setSelectedFolder,
// setSelectedNode,
// setShowThirdPartyPanel,
// } from "../../../store/files/actions";
import { inject, observer } from "mobx-react";
const { changeLanguage } = utils;
@ -118,6 +118,8 @@ const PureThirdPartyListContainer = ({
setShowThirdPartyPanel,
setSelectedNode,
setSelectedFolder,
getOAuthToken,
openConnectWindow,
}) => {
const redirectAction = () => {
const thirdPartyUrl = "/products/files/settings/thirdParty";
@ -231,16 +233,16 @@ const ThirdPartyList = (props) => {
);
};
function mapStateToProps(state) {
return {
googleConnectItem: getGoogleConnect(state),
boxConnectItem: getBoxConnect(state),
dropboxConnectItem: getDropboxConnect(state),
oneDriveConnectItem: getOneDriveConnect(state),
nextCloudConnectItem: getNextCloudConnect(state),
webDavConnectItem: getWebDavConnect(state),
};
}
// function mapStateToProps(state) {
// return {
// googleConnectItem: getGoogleConnect(state),
// boxConnectItem: getBoxConnect(state),
// dropboxConnectItem: getDropboxConnect(state),
// oneDriveConnectItem: getOneDriveConnect(state),
// nextCloudConnectItem: getNextCloudConnect(state),
// webDavConnectItem: getWebDavConnect(state),
// };
// }
// export default connect(mapStateToProps, {
// setConnectItem,
@ -249,21 +251,37 @@ function mapStateToProps(state) {
// setShowThirdPartyPanel,
// })(ThirdPartyList);
export default connect(mapStateToProps, {
setConnectItem,
//setSelectedNode,
//setSelectedFolder,
setShowThirdPartyPanel,
})(
inject(({ store, mainFilesStore }) => {
const { setIsLoading, filesStore } = mainFilesStore;
const { setSelectedFolder } = filesStore.selectedFolderStore;
const { setSelectedNode } = filesStore.treeFoldersStore;
export default inject(({ mainFilesStore, thirdParty }) => {
const { setIsLoading, filesStore } = mainFilesStore;
const { setSelectedFolder } = filesStore.selectedFolderStore;
const { setSelectedNode } = filesStore.treeFoldersStore;
const {
setConnectItem,
setShowThirdPartyPanel,
googleConnectItem,
boxConnectItem,
dropboxConnectItem,
oneDriveConnectItem,
nextCloudConnectItem,
webDavConnectItem,
getOAuthToken,
openConnectWindow,
} = thirdParty;
return {
setIsLoading,
setSelectedFolder,
setSelectedNode,
};
})(observer(ThirdPartyList))
);
return {
googleConnectItem,
boxConnectItem,
dropboxConnectItem,
oneDriveConnectItem,
nextCloudConnectItem,
webDavConnectItem,
setIsLoading,
setSelectedFolder,
setSelectedNode,
setConnectItem,
setShowThirdPartyPanel,
getOAuthToken,
openConnectWindow,
};
})(observer(ThirdPartyList));

View File

@ -1,33 +1,33 @@
import React from "react";
import { TreeMenu, TreeNode, Icons } from "asc-web-components";
import styled from "styled-components";
import equal from "fast-deep-equal/react";
//import equal from "fast-deep-equal/react";
import {
api,
constants,
toastr /* store as initStore */,
} from "asc-web-common";
import { connect } from "react-redux";
import {
//setFilter,
//setTreeFolders,
//setDragItem,
//setDragging,
//setIsLoading,
setUpdateTree,
} from "../../../store/files/actions";
import {
//getTreeFolders,
//getFilter,
//getDragging,
getUpdateTree,
//getSelectedFolderId,
//getMyFolderId,
//getShareFolderId,
//getRootFolderId,
getDraggableItems,
//getIsPrivacyFolder,
} from "../../../store/files/selectors";
// import { connect } from "react-redux";
// import {
// setFilter,
// setTreeFolders,
// setDragItem,
// setDragging,
// setIsLoading,
// setUpdateTree,
// } from "../../../store/files/actions";
// import {
// getTreeFolders,
// getFilter,
// getDragging,
// getUpdateTree,
// getSelectedFolderId,
// getMyFolderId,
// getShareFolderId,
// getRootFolderId,
// getDraggableItems,
// getIsPrivacyFolder,
// } from "../../../store/files/selectors";
import { onConvertFiles } from "../../../helpers/files-converter";
import { observer, inject } from "mobx-react";
@ -67,26 +67,26 @@ class TreeFolders extends React.Component {
this.state = { treeData: data, expandedKeys, isExpand: false };
}
componentDidUpdate(prevProps) {
const { expandedKeys, data, needUpdate } = this.props;
if (
needUpdate &&
expandedKeys &&
this.state.expandedKeys.length !== expandedKeys.length
) {
this.setState({ expandedKeys });
}
// componentDidUpdate(prevProps) {
// const { expandedKeys, data, needUpdate } = this.props;
// if (
// needUpdate &&
// expandedKeys &&
// this.state.expandedKeys.length !== expandedKeys.length
// ) {
// this.setState({ expandedKeys });
// }
if (!equal(prevProps.data, data)) {
//!utils.array.isArrayEqual(prevProps.data, data)) {
this.setState({ treeData: data });
}
// if (!equal(prevProps.data, data)) {
// //!utils.array.isArrayEqual(prevProps.data, data)) {
// this.setState({ treeData: data });
// }
if (this.props.updateTree) {
this.props.setUpdateTree(false);
this.forceUpdate();
}
}
// if (this.props.updateTree) {
// this.props.setUpdateTree(false);
// this.forceUpdate();
// }
// }
onBadgeClick = (e) => {
const id = e.currentTarget.dataset.id;
@ -501,81 +501,78 @@ TreeFolders.defaultProps = {
needUpdate: true,
};
function mapStateToProps(state) {
return {
//treeFolders: getTreeFolders(state),
//filter: getFilter(state),
//myId: getMyFolderId(state),
//commonId: getShareFolderId(state),
//currentId: getSelectedFolderId(state),
//isAdmin: isAdmin(state),
//dragging: getDragging(state),
updateTree: getUpdateTree(state),
//rootFolderId: getRootFolderId(state),
draggableItems: getDraggableItems(state),
//isDesktop: isDesktopClient(state),
//isPrivacy: getIsPrivacyFolder(state),
};
}
// function mapStateToProps(state) {
// return {
// treeFolders: getTreeFolders(state),
// filter: getFilter(state),
// myId: getMyFolderId(state),
// commonId: getShareFolderId(state),
// currentId: getSelectedFolderId(state),
// isAdmin: isAdmin(state),
// dragging: getDragging(state),
// updateTree: getUpdateTree(state),
// rootFolderId: getRootFolderId(state),
// draggableItems: getDraggableItems(state),
// isDesktop: isDesktopClient(state),
// isPrivacy: getIsPrivacyFolder(state),
// };
// }
const mapDispatchToProps = (dispatch) => {
return {
//setFilter: (filter) => dispatch(setFilter(filter)),
//setTreeFolders: (treeFolders) => dispatch(setTreeFolders(treeFolders)),
//setDragItem: (dragItem) => dispatch(setDragItem(dragItem)),
//setDragging: (dragging) => dispatch(setDragging(dragging)),
//setIsLoading: (isLoading) => dispatch(setIsLoading(isLoading)),
setUpdateTree: (updateTree) => dispatch(setUpdateTree(updateTree)),
};
};
// const mapDispatchToProps = (dispatch) => {
// return {
// setFilter: (filter) => dispatch(setFilter(filter)),
// setTreeFolders: (treeFolders) => dispatch(setTreeFolders(treeFolders)),
// setDragItem: (dragItem) => dispatch(setDragItem(dragItem)),
// setDragging: (dragging) => dispatch(setDragging(dragging)),
// setIsLoading: (isLoading) => dispatch(setIsLoading(isLoading)),
// setUpdateTree: (updateTree) => dispatch(setUpdateTree(updateTree)),
// };
// };
//export default connect(mapStateToProps, mapDispatchToProps)(TreeFolders);
export default connect(
mapStateToProps,
mapDispatchToProps
)(
inject(({ store, mainFilesStore }) => {
const {
filesStore,
setIsLoading,
dragging,
setDragging,
setDragItem,
} = mainFilesStore;
const {
treeFoldersStore,
selectedFolderStore,
filter,
setFilter,
} = filesStore;
export default inject(({ store, mainFilesStore }) => {
const {
filesStore,
setIsLoading,
dragging,
setDragging,
setDragItem,
} = mainFilesStore;
const {
treeFoldersStore,
selectedFolderStore,
filter,
setFilter,
selection,
} = filesStore;
const {
treeFolders,
setTreeFolders,
myFolderId,
commonFolderId,
isPrivacyFolder,
} = treeFoldersStore;
const { pathParts, id } = selectedFolderStore;
const {
treeFolders,
setTreeFolders,
myFolderId,
commonFolderId,
isPrivacyFolder,
} = treeFoldersStore;
const { pathParts, id } = selectedFolderStore;
return {
isAdmin: store.isAdmin,
isDesktop: store.settingsStore.isDesktopClient,
dragging,
rootFolderId: pathParts,
currentId: id,
treeFolders,
myId: myFolderId,
commonId: commonFolderId,
isPrivacy: isPrivacyFolder,
filter,
return {
isAdmin: store.isAdmin,
isDesktop: store.settingsStore.isDesktopClient,
dragging,
rootFolderId: pathParts,
currentId: id,
treeFolders,
myId: myFolderId,
commonId: commonFolderId,
isPrivacy: isPrivacyFolder,
filter,
draggableItems: dragging ? selection : false,
setDragging,
setIsLoading,
setTreeFolders,
setFilter,
setDragItem,
};
})(observer(TreeFolders))
);
setDragging,
setIsLoading,
setTreeFolders,
setFilter,
setDragItem,
};
})(observer(TreeFolders));

View File

@ -1,5 +1,5 @@
import React, { useEffect } from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import { TreeMenu, TreeNode, Icons } from "asc-web-components";
import styled from "styled-components";
@ -7,20 +7,19 @@ import { history, utils /* , store as initStore */ } from "asc-web-common";
import { withTranslation, I18nextProvider } from "react-i18next";
import { createI18N } from "../../../helpers/i18n";
import {
//setSelectedNode,
setExpandSettingsTree,
getFilesSettings,
//setSelectedFolder,
//setIsLoading,
} from "../../../store/files/actions";
import {
//getIsLoading,
//getSettingsSelectedTreeNode,
getExpandedSetting,
getEnableThirdParty,
//getSelectedTreeNode,
} from "../../../store/files/selectors";
// import {
// setSelectedNode,
// setExpandSettingsTree,
// getFilesSettings,
// setSelectedFolder,
// setIsLoading,
// } from "../../../store/files/actions";
import //getIsLoading,
//getSettingsSelectedTreeNode,
//getExpandedSetting,
//getEnableThirdParty,
//getSelectedTreeNode,
"../../../store/files/selectors";
import { inject, observer } from "mobx-react";
//const { isAdmin } = initStore.auth.selectors;
@ -205,16 +204,16 @@ const TreeSettings = (props) => {
);
};
function mapStateToProps(state) {
return {
//selectedTreeNode: getSettingsSelectedTreeNode(state),
expandedSetting: getExpandedSetting(state),
enableThirdParty: getEnableThirdParty(state),
//isAdmin: isAdmin(state),
//isLoading: getIsLoading(state),
//selectedFolder: getSelectedTreeNode(state),
};
}
// function mapStateToProps(state) {
// return {
// selectedTreeNode: getSettingsSelectedTreeNode(state),
// expandedSetting: getExpandedSetting(state),
// enableThirdParty: getEnableThirdParty(state),
// isAdmin: isAdmin(state),
// isLoading: getIsLoading(state),
// selectedFolder: getSelectedTreeNode(state),
// };
// }
// export default connect(mapStateToProps, {
// setSelectedNode,
@ -224,26 +223,28 @@ function mapStateToProps(state) {
// setIsLoading,
// })(withRouter(TreeSettings));
export default connect(mapStateToProps, {
//setSelectedNode,
setExpandSettingsTree,
getFilesSettings,
//setSelectedFolder,
//setIsLoading,
})(
inject(({ store, mainFilesStore }) => {
const { setIsLoading, filesStore, isLoading } = mainFilesStore;
const { setSelectedFolder } = filesStore.selectedFolderStore;
const { selectedTreeNode, setSelectedNode } = filesStore.treeFoldersStore;
export default inject(({ store, mainFilesStore }) => {
const { setIsLoading, filesStore, isLoading } = mainFilesStore;
const { setSelectedFolder } = filesStore.selectedFolderStore;
const { selectedTreeNode, setSelectedNode } = filesStore.treeFoldersStore;
const {
getFilesSettings,
enableThirdParty,
expandedSetting,
setExpandSettingsTree,
} = filesStore.settingsTreeStore;
return {
isAdmin: store.isAdmin,
isLoading,
selectedTreeNode,
return {
isAdmin: store.isAdmin,
isLoading,
selectedTreeNode,
enableThirdParty,
expandedSetting,
setIsLoading,
setSelectedFolder,
setSelectedNode,
};
})(withRouter(observer(TreeSettings)))
);
setIsLoading,
setSelectedFolder,
setSelectedNode,
getFilesSettings,
setExpandSettingsTree,
};
})(withRouter(observer(TreeSettings)));

View File

@ -1,18 +1,18 @@
import React, { useEffect } from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import PropTypes from "prop-types";
import { withRouter } from "react-router";
import { MainButton, DropDownItem } from "asc-web-components";
import { withTranslation, I18nextProvider } from "react-i18next";
import { isMobile } from "react-device-detect";
import { /* setAction, */ startUpload } from "../../../store/files/actions";
import {
canCreate,
//getFilter,
//getSelectedFolder,
//getFirstLoad,
//getIsPrivacyFolder,
} from "../../../store/files/selectors";
//import { setAction, startUpload } from "../../../store/files/actions";
// import {
// canCreate,
// getFilter,
// getSelectedFolder,
// getFirstLoad,
// getIsPrivacyFolder,
// } from "../../../store/files/selectors";
import {
utils as commonUtils,
constants,
@ -182,31 +182,40 @@ ArticleMainButtonContent.propTypes = {
history: PropTypes.object.isRequired,
};
const mapStateToProps = (state) => {
// const mapStateToProps = (state) => {
// return {
// canCreate: canCreate(state),
// firstLoad: getFirstLoad(state),
// settings: getSettings(state),
// filter: getFilter(state),
// selectedFolder: getSelectedFolder(state),
// isPrivacy: getIsPrivacyFolder(state),
// };
// };
export default inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const {
firstLoad,
fileActionStore,
treeFoldersStore,
filter,
canCreate,
uploadDataStore,
} = filesStore;
const { isPrivacyFolder } = treeFoldersStore;
const { id } = filesStore.selectedFolderStore;
const { startUpload } = uploadDataStore;
return {
canCreate: canCreate(state),
//firstLoad: getFirstLoad(state),
//settings: getSettings(state),
//filter: getFilter(state),
//selectedFolder: getSelectedFolder(state),
//isPrivacy: getIsPrivacyFolder(state),
homepage: store.settingsStore.homepage,
firstLoad,
selectedFolderId: id,
isPrivacy: isPrivacyFolder,
filter,
canCreate,
setAction: fileActionStore.setAction,
startUpload,
};
};
export default connect(mapStateToProps, { /* setAction, */ startUpload })(
inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { firstLoad, fileActionStore, treeFoldersStore, filter } = filesStore;
const { isPrivacyFolder } = treeFoldersStore;
const { id } = filesStore.selectedFolderStore;
return {
homepage: store.settingsStore.homepage,
firstLoad,
selectedFolderId: id,
setAction: fileActionStore.setAction,
isPrivacy: isPrivacyFolder,
filter,
};
})(withRouter(observer(ArticleMainButtonContent)))
);
})(withRouter(observer(ArticleMainButtonContent)));

View File

@ -9,26 +9,26 @@ import {
toastr,
} from "asc-web-components";
import { utils as commonUtils } from "asc-web-common";
import {
fetchThirdPartyProviders,
fetchTreeFolders,
getOAuthToken,
openConnectWindow,
saveThirdParty,
//setTreeFolders,
setUpdateTree,
//fetchFiles,
} from "../../../store/files/actions";
// import {
// fetchThirdPartyProviders,
// fetchTreeFolders,
// getOAuthToken,
// openConnectWindow,
// saveThirdParty,
// setTreeFolders,
// setUpdateTree,
// fetchFiles,
// } from "../../../store/files/actions";
import {
//getTreeFolders,
loopTreeFolders,
//getMyFolderId,
//getCommonFolderId,
getThirdPartyProviders,
//getThirdPartyProviders,
//getSelectedFolder,
} from "../../../store/files/selectors";
import { withTranslation, I18nextProvider } from "react-i18next";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { createI18N } from "../../../helpers/i18n";
import { inject, observer } from "mobx-react";
@ -45,7 +45,7 @@ const PureConnectDialogContainer = (props) => {
t,
item,
treeFolders,
setUpdateTree,
//setUpdateTree,
setTreeFolders,
fetchThirdPartyProviders,
fetchTreeFolders,
@ -55,6 +55,9 @@ const PureConnectDialogContainer = (props) => {
selectedFolderId,
selectedFolderFolders,
fetchFiles,
getOAuthToken,
saveThirdParty,
openConnectWindow,
} = props;
const { corporate, title, link, token, provider_id, provider_key } = item;
@ -164,7 +167,7 @@ const PureConnectDialogContainer = (props) => {
isCorporate ? folderData : null
);
setTreeFolders(newTreeFolders);
setUpdateTree(true);
//setUpdateTree(true);
fetchThirdPartyProviders();
const newFolder =
@ -203,10 +206,11 @@ const PureConnectDialogContainer = (props) => {
selectedFolderFolders,
selectedFolderId,
setTreeFolders,
setUpdateTree,
//setUpdateTree,
showUrlField,
treeFolders,
urlValue,
saveThirdParty,
]);
const onReconnect = () => {
@ -351,15 +355,15 @@ const ConnectDialog = (props) => {
);
};
const mapStateToProps = (state) => {
return {
//treeFolders: getTreeFolders(state),
//myFolderId: getMyFolderId(state),
//commonFolderId: getCommonFolderId(state),
providers: getThirdPartyProviders(state),
//selectedFolder: getSelectedFolder(state),
};
};
// const mapStateToProps = (state) => {
// return {
// treeFolders: getTreeFolders(state),
// myFolderId: getMyFolderId(state),
// commonFolderId: getCommonFolderId(state),
// providers: getThirdPartyProviders(state),
// selectedFolder: getSelectedFolder(state),
// };
// };
// export default connect(mapStateToProps, {
// setUpdateTree,
@ -369,34 +373,40 @@ const mapStateToProps = (state) => {
// fetchFiles,
// })(ConnectDialog);
export default connect(mapStateToProps, {
setUpdateTree,
//setTreeFolders,
fetchThirdPartyProviders,
fetchTreeFolders,
//fetchFiles,
})(
inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { fetchFiles, treeFoldersStore } = filesStore;
export default inject(({ mainFilesStore, thirdParty }) => {
const { filesStore } = mainFilesStore;
const {
providers,
getOAuthToken,
saveThirdParty,
openConnectWindow,
fetchThirdPartyProviders,
} = thirdParty;
const { fetchFiles, treeFoldersStore } = filesStore;
const {
treeFolders,
setTreeFolders,
myFolderId,
commonFolderId,
} = treeFoldersStore;
const { id, folders } = filesStore.selectedFolderStore;
const {
treeFolders,
setTreeFolders,
myFolderId,
commonFolderId,
fetchTreeFolders,
} = treeFoldersStore;
const { id, folders } = filesStore.selectedFolderStore;
return {
selectedFolderId: id,
selectedFolderFolders: folders,
treeFolders,
myFolderId,
commonFolderId,
return {
selectedFolderId: id,
selectedFolderFolders: folders,
treeFolders,
myFolderId,
commonFolderId,
providers,
fetchFiles,
setTreeFolders,
};
})(observer(ConnectDialog))
);
fetchFiles,
setTreeFolders,
getOAuthToken,
saveThirdParty,
openConnectWindow,
fetchThirdPartyProviders,
fetchTreeFolders,
};
})(observer(ConnectDialog));

View File

@ -1,15 +1,15 @@
import React from "react";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
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,
setDialogVisible,
convertUploadedFiles,
} from "../../../store/files/actions";
// import {
// setTreeFolders,
// setDialogVisible,
// convertUploadedFiles,
// } from "../../../store/files/actions";
import { createI18N } from "../../../helpers/i18n";
import { inject, observer } from "mobx-react";
const i18n = createI18N({
@ -125,17 +125,14 @@ const ConvertDialog = (props) => (
// convertUploadedFiles,
// })(withRouter(ConvertDialog));
export default connect(null, {
//setTreeFolders,
setDialogVisible,
convertUploadedFiles,
})(
inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { setTreeFolders } = filesStore.treeFoldersStore;
export default inject(({ mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { setTreeFolders } = filesStore.treeFoldersStore;
const { setDialogVisible, convertUploadedFiles } = filesStore.uploadDataStore;
return {
setTreeFolders,
};
})(withRouter(observer(ConvertDialog)))
);
return {
setTreeFolders,
setDialogVisible,
convertUploadedFiles,
};
})(withRouter(observer(ConvertDialog)));

View File

@ -1,6 +1,6 @@
import React from "react";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import ModalDialogContainer from "../ModalDialogContainer";
import {
ModalDialog,
@ -11,13 +11,12 @@ import {
} from "asc-web-components";
import { withTranslation } from "react-i18next";
import { api, utils, toastr } from "asc-web-common";
import {
//fetchFiles,
//setTreeFolders,
//setSecondaryProgressBarData,
//clearSecondaryProgressData,
setUpdateTree,
} from "../../../store/files/actions";
import //fetchFiles,
//setTreeFolders,
//setSecondaryProgressBarData,
//clearSecondaryProgressData,
//setUpdateTree,
"../../../store/files/actions";
import { TIMEOUT } from "../../../helpers/constants";
import {
loopTreeFolders,
@ -27,7 +26,7 @@ import {
//getIsLoading,
//getIsRecycleBinFolder,
//getSelection,
isRootFolder,
//isRootFolder,
//getIsPrivacyFolder,
} from "../../../store/files/selectors";
import { createI18N } from "../../../helpers/i18n";
@ -82,7 +81,7 @@ class DeleteDialogComponent extends React.Component {
clearSecondaryProgressData,
t,
fetchFiles,
setUpdateTree,
//setUpdateTree,
} = this.props;
const successMessage = t("DeleteSelectedElem");
api.files
@ -114,7 +113,7 @@ class DeleteDialogComponent extends React.Component {
const folders = data.selectedFolder.folders;
const foldersCount = data.selectedFolder.foldersCount;
loopTreeFolders(path, newTreeFolders, folders, foldersCount);
setUpdateTree(true);
//setUpdateTree(true);
setTreeFolders(newTreeFolders);
}
toastr.success(successMessage);
@ -303,18 +302,18 @@ const DeleteDialog = (props) => (
<ModalDialogContainerTranslated i18n={i18n} {...props} />
);
const mapStateToProps = (state) => {
return {
//currentFolderId: getSelectedFolderId(state),
//filter: getFilter(state),
//treeFolders: getTreeFolders(state),
//isLoading: getIsLoading(state),
//isRecycleBinFolder: getIsRecycleBinFolder(state),
//isPrivacy: getIsPrivacyFolder(state),
//selection: getSelection(state),
isRootFolder: isRootFolder(state),
};
};
// const mapStateToProps = (state) => {
// return {
// currentFolderId: getSelectedFolderId(state),
// filter: getFilter(state),
// treeFolders: getTreeFolders(state),
// isLoading: getIsLoading(state),
// isRecycleBinFolder: getIsRecycleBinFolder(state),
// isPrivacy: getIsPrivacyFolder(state),
// selection: getSelection(state),
// isRootFolder: isRootFolder(state),
// };
// };
// export default connect(mapStateToProps, {
// setTreeFolders,
@ -324,49 +323,42 @@ const mapStateToProps = (state) => {
// fetchFiles,
// })(withRouter(DeleteDialog));
export default connect(mapStateToProps, {
//setTreeFolders,
//setSecondaryProgressBarData,
//clearSecondaryProgressData,
setUpdateTree,
//fetchFiles,
})(
inject(({ store, mainFilesStore }) => {
const { filesStore, isLoading } = mainFilesStore;
const {
fetchFiles,
selection,
selectedFolderStore,
treeFoldersStore,
filter,
secondaryProgressDataStore,
} = filesStore;
export default inject(({ store, mainFilesStore }) => {
const { filesStore, isLoading } = mainFilesStore;
const {
fetchFiles,
selection,
selectedFolderStore,
treeFoldersStore,
filter,
secondaryProgressDataStore,
} = filesStore;
const {
treeFolders,
setTreeFolders,
isRecycleBinFolder,
isPrivacyFolder,
} = treeFoldersStore;
const {
treeFolders,
setTreeFolders,
isRecycleBinFolder,
isPrivacyFolder,
} = treeFoldersStore;
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
return {
currentFolderId: selectedFolderStore.id,
selection,
isLoading,
treeFolders,
isRecycleBinFolder,
isPrivacy: isPrivacyFolder,
filter,
return {
currentFolderId: selectedFolderStore.id,
selection,
isLoading,
treeFolders,
isRecycleBinFolder,
isPrivacy: isPrivacyFolder,
filter,
isRootFolder: selectedFolderStore.isRootFolder,
fetchFiles,
setTreeFolders,
setSecondaryProgressBarData,
clearSecondaryProgressData,
};
})(withRouter(observer(DeleteDialog)))
);
fetchFiles,
setTreeFolders,
setSecondaryProgressBarData,
clearSecondaryProgressData,
};
})(withRouter(observer(DeleteDialog)));

View File

@ -1,18 +1,18 @@
import React from "react";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { ModalDialog, Button } from "asc-web-components";
import { withTranslation } from "react-i18next";
import { utils, toastr, api } from "asc-web-common";
// import {
// deleteThirdParty,
// setThirdPartyProviders,
// fetchFiles,
// setUpdateTree,
// setTreeFolders,
// } from "../../../store/files/actions";
import {
deleteThirdParty,
setThirdPartyProviders,
//fetchFiles,
setUpdateTree,
//setTreeFolders,
} from "../../../store/files/actions";
import {
getThirdPartyProviders,
//getThirdPartyProviders,
//getSelectedFolderId,
loopTreeFolders,
//getTreeFolders,
@ -40,13 +40,13 @@ class DeleteThirdPartyDialogComponent extends React.Component {
treeFolders,
removeItem,
setTreeFolders,
setUpdateTree,
//setUpdateTree,
} = this.props;
const newTreeFolders = treeFolders;
loopTreeFolders(path, newTreeFolders, folders, null);
setTreeFolders(newTreeFolders);
setUpdateTree(true);
//setUpdateTree(true);
toastr.success(t("SuccessDeleteThirdParty", { service: removeItem.title }));
};
@ -60,6 +60,7 @@ class DeleteThirdPartyDialogComponent extends React.Component {
currentFolderId,
commonId,
myId,
deleteThirdParty
} = this.props;
const providerItem = providers.find((x) => x.provider_id === removeItem.id);
@ -118,15 +119,15 @@ const DeleteThirdPartyDialog = (props) => (
<ModalDialogContainerTranslated i18n={i18n} {...props} />
);
const mapStateToProps = (state) => {
return {
providers: getThirdPartyProviders(state),
//currentFolderId: getSelectedFolderId(state),
//treeFolders: getTreeFolders(state),
//commonId: getCommonFolderId(state),
//myId: getMyFolderId(state),
};
};
// const mapStateToProps = (state) => {
// return {
// providers: getThirdPartyProviders(state),
// currentFolderId: getSelectedFolderId(state),
// treeFolders: getTreeFolders(state),
// commonId: getCommonFolderId(state),
// myId: getMyFolderId(state),
// };
// };
// export default connect(mapStateToProps, {
// setThirdPartyProviders,
@ -135,14 +136,9 @@ const mapStateToProps = (state) => {
// setTreeFolders,
// })(withRouter(DeleteThirdPartyDialog));
export default connect(mapStateToProps, {
setThirdPartyProviders,
//fetchFiles,
setUpdateTree,
//setTreeFolders,
})(
inject(({ store, mainFilesStore }) => {
export default inject(({ store, mainFilesStore, thirdParty }) => {
const { filesStore } = mainFilesStore;
const { providers, setThirdPartyProviders, deleteThirdParty } = thirdParty;
const { fetchFiles, treeFoldersStore } = filesStore;
const {
@ -157,9 +153,11 @@ export default connect(mapStateToProps, {
treeFolders,
myId: myFolderId,
commonId: commonFolderId,
providers,
fetchFiles,
setTreeFolders,
setThirdPartyProviders,
deleteThirdParty
};
})(withRouter(observer(DeleteThirdPartyDialog)))
);

View File

@ -1,6 +1,6 @@
import React from "react";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import ModalDialogContainer from "../ModalDialogContainer";
import {
ModalDialog,
@ -16,7 +16,7 @@ import { utils, api } from "asc-web-common";
import {
getFileIcon,
getFolderIcon,
getSortedFiles,
//getSortedFiles,
} from "../../../store/files/selectors";
// import {
// setSecondaryProgressBarData,
@ -604,29 +604,29 @@ const DownloadDialog = (props) => (
<ModalDialogContainerTranslated i18n={i18n} {...props} />
);
const mapStateToProps = (state) => {
return {
sortedFiles: getSortedFiles(state),
};
};
// const mapStateToProps = (state) => {
// return {
// sortedFiles: getSortedFiles(state),
// };
// };
// export default connect(mapStateToProps, {
// setSecondaryProgressBarData,
// clearSecondaryProgressData,
// })(withRouter(DownloadDialog));
export default connect(mapStateToProps)(
inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { secondaryProgressDataStore } = filesStore;
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
export default inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { sortedFiles, secondaryProgressDataStore } = filesStore;
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
return {
setSecondaryProgressBarData,
clearSecondaryProgressData,
};
})(withRouter(observer(DownloadDialog)))
);
return {
sortedFiles,
setSecondaryProgressBarData,
clearSecondaryProgressData,
};
})(withRouter(observer(DownloadDialog)));

View File

@ -37,8 +37,9 @@ const Panels = (props) => {
export default inject(({ mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { dialogsStore } = filesStore;
const { sharingPanelVisible, uploadPanelVisible } = dialogsStore;
const { dialogsStore, uploadDataStore } = filesStore;
const { sharingPanelVisible } = dialogsStore;
const { uploadPanelVisible } = uploadDataStore;
return {
sharingPanelVisible,

View File

@ -1,9 +1,10 @@
import React from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import styled from "styled-components";
import { Icons, Badge } from "asc-web-components";
import { canWebEdit, canConvert } from "../../../../../store/files/selectors";
//import { canWebEdit, canConvert } from "../../../../../store/files/selectors";
import { inject, observer } from "mobx-react";
const StyledBadgesFileTile = styled.div`
display: flex;
@ -92,11 +93,22 @@ class BadgesFileTile extends React.PureComponent {
}
}
const mapStateToProps = (state, props) => {
return {
canWebEdit: canWebEdit(props.item.fileExst)(state),
canConvert: canConvert(props.item.fileExst)(state),
};
};
// const mapStateToProps = (state, props) => {
// return {
// canWebEdit: canWebEdit(props.item.fileExst)(state),
// canConvert: canConvert(props.item.fileExst)(state),
// };
// };
export default connect(mapStateToProps, {})(withRouter(BadgesFileTile));
export default inject(({ mainFilesStore }, { item }) => {
const { filesStore } = mainFilesStore;
const { docserviceStore } = filesStore;
const canWebEdit = docserviceStore.canWebEdit(item.fileExst);
const canConvert = docserviceStore.canConvert(item.fileExst);
return {
canWebEdit,
canConvert,
};
})(withRouter(observer(BadgesFileTile)));

View File

@ -1,5 +1,5 @@
import React from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import { Trans, withTranslation } from "react-i18next";
import styled from "styled-components";
@ -11,24 +11,28 @@ import {
IconButton,
Badge,
} from "asc-web-components";
import { constants, api, toastr, store as initStore } from "asc-web-common";
import {
constants,
api,
toastr /* store as initStore */,
} from "asc-web-common";
import {
//clearSecondaryProgressData,
createFile,
//createFile,
createFolder,
//fetchFiles,
renameFolder,
//renameFolder,
//setIsLoading,
setNewRowItems,
//setNewRowItems,
//setSecondaryProgressBarData,
//setTreeFolders,
setUpdateTree,
updateFile,
//setUpdateTree,
//updateFile,
} from "../../../../../store/files/actions";
import { TIMEOUT } from "../../../../../helpers/constants";
import {
canConvert,
canWebEdit,
//canConvert,
//canWebEdit,
//getDragging,
//getFileAction,
//getFilter,
@ -36,28 +40,28 @@ import {
//getIsLoading,
//getIsPrivacyFolder,
//getIsRecycleBinFolder,
getNewRowItems,
//getNewRowItems,
//getPathParts,
//getSelectedFolder,
//getSelectedFolderNew,
//getSelectedFolderParentId,
getTitleWithoutExst,
//getTreeFolders,
isImage,
isSound,
isVideo,
//isImage,
//isSound,
//isVideo,
} from "../../../../../store/files/selectors";
import { NewFilesPanel } from "../../../../panels";
import { ConvertDialog } from "../../../../dialogs";
import EditingWrapperComponent from "./EditingWrapperComponent";
import { isMobile } from "react-device-detect";
import { setEncryptionAccess } from "../../../../../helpers/desktop";
//import { setEncryptionAccess } from "../../../../../helpers/desktop";
import { observer, inject } from "mobx-react";
const { FileAction } = constants;
const sideColor = "#A3A9AE";
//const { getSettings, isDesktopClient } = initStore.auth.selectors;
const { getEncryptionAccess, replaceFileStream } = initStore.auth.actions;
//const { getEncryptionAccess, replaceFileStream } = initStore.auth.actions;
const SimpleFilesRowContent = styled(RowContent)`
.badge-ext {
@ -177,6 +181,7 @@ class FilesRowContent extends React.PureComponent {
replaceFileStream,
i18n,
t,
setEncryptionAccess,
} = this.props;
const { itemTitle } = this.state;
@ -389,7 +394,7 @@ class FilesRowContent extends React.PureComponent {
selectedFolderPathParts,
newItems,
setNewRowItems,
setUpdateTree,
//setUpdateTree,
} = this.props;
if (item.fileExst) {
api.files
@ -400,7 +405,7 @@ class FilesRowContent extends React.PureComponent {
(x) => x.id === selectedFolderPathParts[0]
);
dataItem.newItems = newItems ? dataItem.newItems - 1 : 0;
setUpdateTree(true);
//setUpdateTree(true);
setTreeFolders(data);
setNewRowItems([`${item.id}`]);
})
@ -753,30 +758,29 @@ class FilesRowContent extends React.PureComponent {
}
}
function mapStateToProps(state, props) {
return {
//filter: getFilter(state),
//fileAction: getFileAction(state),
//parentFolder: getSelectedFolderParentId(state),
//isTrashFolder: getIsRecycleBinFolder(state),
//settings: getSettings(state),
//treeFolders: getTreeFolders(state),
//selectedFolderPathParts: getPathParts(state),
//newItems: getSelectedFolderNew(state),
//selectedFolder: getSelectedFolder(state),
//folders: getFolders(state),
newRowItems: getNewRowItems(state),
//isLoading: getIsLoading(state),
//isPrivacy: getIsPrivacyFolder(state),
//isDesktop: isDesktopClient(state),
canWebEdit: canWebEdit(props.item.fileExst)(state),
canConvert: canConvert(props.item.fileExst)(state),
isImage: isImage(props.item.fileExst)(state),
isSound: isSound(props.item.fileExst)(state),
isVideo: isVideo(props.item.fileExst)(state),
};
}
// function mapStateToProps(state, props) {
// return {
// filter: getFilter(state),
// fileAction: getFileAction(state),
// parentFolder: getSelectedFolderParentId(state),
// isTrashFolder: getIsRecycleBinFolder(state),
// settings: getSettings(state),
// treeFolders: getTreeFolders(state),
// selectedFolderPathParts: getPathParts(state),
// newItems: getSelectedFolderNew(state),
// selectedFolder: getSelectedFolder(state),
// folders: getFolders(state),
// newRowItems: getNewRowItems(state),
// isLoading: getIsLoading(state),
// isPrivacy: getIsPrivacyFolder(state),
// isDesktop: isDesktopClient(state),
// canWebEdit: canWebEdit(props.item.fileExst)(state),
// canConvert: canConvert(props.item.fileExst)(state),
// isImage: isImage(props.item.fileExst)(state),
// isSound: isSound(props.item.fileExst)(state),
// isVideo: isVideo(props.item.fileExst)(state),
// };
// }
// export default connect(mapStateToProps, {
// createFile,
@ -793,68 +797,81 @@ function mapStateToProps(state, props) {
// replaceFileStream,
// })(withRouter(withTranslation()(FilesRowContent)));
export default connect(mapStateToProps, {
createFile,
updateFile,
renameFolder,
//setTreeFolders,
//setSecondaryProgressBarData,
setUpdateTree,
setNewRowItems,
//setIsLoading,
//clearSecondaryProgressData,
//fetchFiles,
getEncryptionAccess,
replaceFileStream,
})(
inject(({ store, mainFilesStore }) => {
const { homepage, culture, isDesktopClient } = store.settingsStore;
const { filesStore, setIsLoading, isLoading } = mainFilesStore;
const {
folders,
fetchFiles,
treeFoldersStore,
filter,
selectedFolderStore,
secondaryProgressDataStore,
} = filesStore;
export default inject(({ store, mainFilesStore }, { item }) => {
const { replaceFileStream, getEncryptionAccess, setEncryptionAccess } = store;
const { homepage, culture, isDesktopClient } = store.settingsStore;
const { filesStore, setIsLoading, isLoading } = mainFilesStore;
const {
folders,
fetchFiles,
treeFoldersStore,
filter,
selectedFolderStore,
secondaryProgressDataStore,
docserviceStore,
mediaViewersFormatsStore,
formatsStore,
setNewRowItems,
newRowItems,
createFile,
updateFile,
renameFolder,
} = filesStore;
const {
treeFolders,
setTreeFolders,
isRecycleBinFolder,
isPrivacyFolder,
} = treeFoldersStore;
const {
treeFolders,
setTreeFolders,
isRecycleBinFolder,
isPrivacyFolder,
} = treeFoldersStore;
const { type, extension, id } = filesStore.fileActionStore;
const { type, extension, id } = filesStore.fileActionStore;
const fileAction = { type, extension, id };
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
const fileAction = { type, extension, id };
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
return {
isDesktop: isDesktopClient,
homepage,
culture,
fileAction,
folders,
selectedFolderId: selectedFolderStore.id,
selectedFolderPathParts: selectedFolderStore.pathParts,
newItems: selectedFolderStore.new,
parentFolder: selectedFolderStore.parentId,
isLoading,
treeFolders,
isTrashFolder: isRecycleBinFolder,
isPrivacy: isPrivacyFolder,
filter,
const canWebEdit = docserviceStore.canWebEdit(item.fileExst);
const canConvert = docserviceStore.canConvert(item.fileExst);
const isVideo = mediaViewersFormatsStore.isVideo(item.fileExst);
const isImage = formatsStore.isImage(item.fileExst);
const isSound = formatsStore.isSound(item.fileExst);
setIsLoading,
fetchFiles,
setTreeFolders,
setSecondaryProgressBarData,
clearSecondaryProgressData,
};
})(withRouter(withTranslation()(observer(FilesRowContent))))
);
return {
isDesktop: isDesktopClient,
homepage,
culture,
fileAction,
folders,
selectedFolderId: selectedFolderStore.id,
selectedFolderPathParts: selectedFolderStore.pathParts,
newItems: selectedFolderStore.new,
parentFolder: selectedFolderStore.parentId,
isLoading,
treeFolders,
isTrashFolder: isRecycleBinFolder,
isPrivacy: isPrivacyFolder,
filter,
canWebEdit,
canConvert,
isVideo,
isImage,
isSound,
newRowItems,
setIsLoading,
fetchFiles,
setTreeFolders,
setSecondaryProgressBarData,
clearSecondaryProgressData,
setNewRowItems,
createFile,
updateFile,
renameFolder,
replaceFileStream,
getEncryptionAccess,
setEncryptionAccess,
};
})(withRouter(withTranslation()(observer(FilesRowContent))));

View File

@ -1,35 +1,35 @@
import React from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import { Trans, withTranslation } from "react-i18next";
import styled from "styled-components";
import { Link, Text, Icons, Badge } from "asc-web-components";
import { constants, api, toastr } from "asc-web-common";
import {
createFile,
//createFile,
createFolder,
renameFolder,
updateFile,
//renameFolder,
//updateFile,
//fetchFiles,
//setTreeFolders,
//setIsLoading,
} from "../../../../../store/files/actions";
import {
canWebEdit,
//canWebEdit,
//getDragging,
//getFileAction,
//getFilter,
//getFolders,
//getIsLoading,
getNewRowItems,
//getNewRowItems,
//getSelectedFolder,
//getSelectedFolderNew,
//getSelectedFolderParentId,
getTitleWithoutExst,
//getTreeFolders,
isImage,
isSound,
isVideo,
//isImage,
//isSound,
//isVideo,
//getIsRecycleBinFolder,
//getRootFolderId,
} from "../../../../../store/files/selectors";
@ -228,6 +228,9 @@ class FilesTileContent extends React.PureComponent {
fetchFiles,
canWebEdit,
openDocEditor,
isVideo,
isImage,
isSound,
} = this.props;
if (!fileExst) {
setIsLoading(true);
@ -247,8 +250,7 @@ class FilesTileContent extends React.PureComponent {
return openDocEditor(id, providerKey);
}
const isOpenMedia =
isImage(fileExst) || isSound(fileExst) || isVideo(fileExst);
const isOpenMedia = isImage || isSound || isVideo;
if (isOpenMedia) {
onMediaFileClick(id);
@ -441,23 +443,23 @@ class FilesTileContent extends React.PureComponent {
}
}
function mapStateToProps(state, props) {
return {
//filter: getFilter(state),
//fileAction: getFileAction(state),
//parentFolder: getSelectedFolderParentId(state),
//isTrashFolder: getIsRecycleBinFolder(state),
//treeFolders: getTreeFolders(state),
//rootFolderId: getRootFolderId(state),
//newItems: getSelectedFolderNew(state),
//selectedFolder: getSelectedFolder(state),
//folders: getFolders(state),
newRowItems: getNewRowItems(state),
//dragging: getDragging(state),
//isLoading: getIsLoading(state),
canWebEdit: canWebEdit(props.item.fileExst)(state),
};
}
// function mapStateToProps(state, props) {
// return {
// filter: getFilter(state),
// fileAction: getFileAction(state),
// parentFolder: getSelectedFolderParentId(state),
// isTrashFolder: getIsRecycleBinFolder(state),
// treeFolders: getTreeFolders(state),
// rootFolderId: getRootFolderId(state),
// newItems: getSelectedFolderNew(state),
// selectedFolder: getSelectedFolder(state),
// folders: getFolders(state),
// newRowItems: getNewRowItems(state),
// dragging: getDragging(state),
// isLoading: getIsLoading(state),
// canWebEdit: canWebEdit(props.item.fileExst)(state),
// };
// }
// export default connect(mapStateToProps, {
// createFile,
@ -468,48 +470,60 @@ function mapStateToProps(state, props) {
// fetchFiles,
// })(withRouter(withTranslation()(FilesTileContent)));
export default connect(mapStateToProps, {
createFile,
updateFile,
renameFolder,
//setTreeFolders,
//setIsLoading,
//fetchFiles,
})(
inject(({ store, mainFilesStore }) => {
const { homepage, culture } = store.settingsStore;
const { filesStore, setIsLoading, isLoading, dragging } = mainFilesStore;
const { folders, fetchFiles, treeFoldersStore, filter } = filesStore;
export default inject(({ store, mainFilesStore }, { item }) => {
const { homepage, culture } = store.settingsStore;
const { filesStore, setIsLoading, isLoading, dragging } = mainFilesStore;
const {
folders,
fetchFiles,
treeFoldersStore,
filter,
docserviceStore,
mediaViewersFormatsStore,
formatsStore,
newRowItems,
createFile,
updateFile,
renameFolder,
} = filesStore;
const {
treeFolders,
setTreeFolders,
isRecycleBinFolder,
} = treeFoldersStore;
const { treeFolders, setTreeFolders, isRecycleBinFolder } = treeFoldersStore;
const { type, extension, id } = filesStore.fileActionStore;
const { type, extension, id } = filesStore.fileActionStore;
const fileAction = { type, extension, id };
const fileAction = { type, extension, id };
return {
culture,
homepage,
fileAction,
folders,
rootFolderId: filesStore.selectedFolderStore.pathParts,
selectedFolderId: filesStore.selectedFolderStore.id,
selectedFolderPathParts: filesStore.selectedFolderStore.pathParts,
newItems: filesStore.selectedFolderStore.new,
parentFolder: filesStore.selectedFolderStore.parentId,
isLoading,
treeFolders,
isTrashFolder: isRecycleBinFolder,
filter,
dragging,
const canWebEdit = docserviceStore.canWebEdit(item.fileExst);
const isVideo = mediaViewersFormatsStore.isVideo(item.fileExst);
const isImage = formatsStore.isImage(item.fileExst);
const isSound = formatsStore.isSound(item.fileExst);
setIsLoading,
fetchFiles,
setTreeFolders,
};
})(withRouter(withTranslation()(observer(FilesTileContent))))
);
return {
culture,
homepage,
fileAction,
folders,
rootFolderId: filesStore.selectedFolderStore.pathParts,
selectedFolderId: filesStore.selectedFolderStore.id,
selectedFolderPathParts: filesStore.selectedFolderStore.pathParts,
newItems: filesStore.selectedFolderStore.new,
parentFolder: filesStore.selectedFolderStore.parentId,
isLoading,
treeFolders,
isTrashFolder: isRecycleBinFolder,
filter,
dragging,
canWebEdit,
isVideo,
isImage,
isSound,
newRowItems,
setIsLoading,
fetchFiles,
setTreeFolders,
createFile,
updateFile,
renameFolder,
};
})(withRouter(withTranslation()(observer(FilesTileContent))));

View File

@ -1,6 +1,6 @@
import React from "react";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { ReactSVG } from "react-svg";
import { withTranslation, Trans } from "react-i18next";
//import equal from "fast-deep-equal/react";
@ -30,36 +30,36 @@ import {
Loaders,
//store,
} from "asc-web-common";
import {
//clearSecondaryProgressData,
loopFilesOperations,
markItemAsFavorite,
removeItemFromFavorite,
fetchFavoritesFolder,
//deselectFile,
updateFile,
//fetchFiles,
//selectFile,
//setAction,
//setDragging,
//setDragItem,
//setIsLoading,
//setMediaViewerData,
setUpdateTree,
//setSecondaryProgressBarData,
//setSelected,
//setSelection,
//setTreeFolders,
getFileInfo,
addFileToRecentlyViewed,
//setIsVerHistoryPanel,
//setVerHistoryFileId,
//setSharingPanelVisible,
//setChangeOwnerPanelVisible,
} from "../../../../../store/files/actions";
// import {
// clearSecondaryProgressData,
// loopFilesOperations,
// markItemAsFavorite,
// removeItemFromFavorite,
// fetchFavoritesFolder,
// deselectFile,
// updateFile,
// fetchFiles,
// selectFile,
// setAction,
// setDragging,
// setDragItem,
// setIsLoading,
// setMediaViewerData,
// setUpdateTree,
// setSecondaryProgressBarData,
// setSelected,
// setSelection,
// setTreeFolders,
// getFileInfo,
// addFileToRecentlyViewed,
// setIsVerHistoryPanel,
// setVerHistoryFileId,
// setSharingPanelVisible,
// setChangeOwnerPanelVisible,
// } from "../../../../../store/files/actions";
import { TIMEOUT } from "../../../../../helpers/constants";
import {
getCurrentFilesCount,
//getCurrentFilesCount,
//getDragging,
//getDragItem,
//getFileAction,
@ -80,8 +80,8 @@ import {
//getViewAs,
loopTreeFolders,
//getFilesList,
getMediaViewerImageFormats,
getMediaViewerMediaFormats,
//getMediaViewerImageFormats,
//getMediaViewerMediaFormats,
//getIsShareFolder,
//getIsCommonFolder,
//getIsRecycleBinFolder,
@ -89,14 +89,14 @@ import {
//getIsMyFolder,
//getIsFavoritesFolder,
//getMyFolderId,
getTooltipLabel,
//getTooltipLabel,
//getIsPrivacyFolder,
//getPrivacyInstructionsLink,
getIconOfDraggedFile,
//getIconOfDraggedFile,
//getSharePanelVisible,
isRootFolder,
getThirdPartyProviders,
getThirdPartyCapabilities,
//isRootFolder,
//getThirdPartyProviders,
//getThirdPartyCapabilities,
//getIsVerHistoryPanel,
} from "../../../../../store/files/selectors";
import { OperationsPanel, VersionHistoryPanel } from "../../../../panels";
@ -409,7 +409,7 @@ class SectionBodyContent extends React.Component {
setTreeFolders,
setIsLoading,
fetchFiles,
setUpdateTree,
//setUpdateTree,
setAction,
selection,
} = this.props;
@ -429,7 +429,7 @@ class SectionBodyContent extends React.Component {
const newTreeFolders = treeFolders;
const folders = data.selectedFolder.folders;
loopTreeFolders(path, newTreeFolders, folders, null, newItem);
setUpdateTree(true);
//setUpdateTree(true);
setTreeFolders(newTreeFolders);
}
})
@ -504,7 +504,7 @@ class SectionBodyContent extends React.Component {
t,
setSecondaryProgressBarData,
fetchFiles,
setUpdateTree,
//setUpdateTree,
} = this.props;
api.files.getProgress().then((res) => {
const deleteProgress = res.find((x) => x.id === id);
@ -533,7 +533,7 @@ class SectionBodyContent extends React.Component {
const folders = data.selectedFolder.folders;
const foldersCount = data.selectedFolder.foldersCount;
loopTreeFolders(path, newTreeFolders, folders, foldersCount);
setUpdateTree(true);
//setUpdateTree(true);
setTreeFolders(newTreeFolders);
}
isFolder
@ -2124,54 +2124,54 @@ SectionBodyContent.defaultProps = {
files: null,
};
const mapStateToProps = (state) => {
return {
currentFolderCount: getCurrentFilesCount(state),
//currentMediaFileId: getMediaViewerId(state),
//dragging: getDragging(state),
//dragItem: getDragItem(state),
//fileAction: getFileAction(state),
//files: getFiles(state),
//filesList: getFilesList(state)(state),
//filter: getFilter(state),
//firstLoad: getFirstLoad(state),
//folderId: getSelectedFolderId(state),
//folders: getFolders(state),
//isAdmin: isAdmin(state),
//isCommon: getIsCommonFolder(state),
//isDesktop: isDesktopClient(state),
//isEncryptionSupport: isEncryptionSupport(state),
//isFavorites: getIsFavoritesFolder(state),
//isMy: getIsMyFolder(state),
//isRecycleBin: getIsRecycleBinFolder(state),
//isRecent: getIsRecentFolder(state),
//isShare: getIsShareFolder(state),
//isPrivacy: getIsPrivacyFolder(state),
mediaViewerImageFormats: getMediaViewerImageFormats(state),
mediaViewerMediaFormats: getMediaViewerMediaFormats(state),
//mediaViewerVisible: getMediaViewerVisibility(state),
//myDocumentsId: getMyFolderId(state),
//organizationName: getOrganizationName(state),
//parentId: getSelectedFolderParentId(state),
//privacyInstructions: getPrivacyInstructionsLink(state),
//selected: getSelected(state),
//selectedFolderId: getSelectedFolderId(state),
//selection: getSelection(state),
//settings: getSettings(state),
//title: getSelectedFolderTitle(state),
//treeFolders: getTreeFolders(state),
//viewAs: getViewAs(state),
//viewer: getCurrentUser(state),
tooltipValue: getTooltipLabel(state),
iconOfDraggedFile: getIconOfDraggedFile(state)(state),
//sharingPanelVisible: getSharePanelVisible(state),
isRootFolder: isRootFolder(state),
providers: getThirdPartyProviders(state),
capabilities: getThirdPartyCapabilities(state),
//isVersionHistoryPanel: getIsVerHistoryPanel(state),
//isTabletView: getIsTabletView(state),
};
};
// const mapStateToProps = (state) => {
// return {
// currentFolderCount: getCurrentFilesCount(state),
// currentMediaFileId: getMediaViewerId(state),
// dragging: getDragging(state),
// dragItem: getDragItem(state),
// fileAction: getFileAction(state),
// files: getFiles(state),
// filesList: getFilesList(state)(state),
// filter: getFilter(state),
// firstLoad: getFirstLoad(state),
// folderId: getSelectedFolderId(state),
// folders: getFolders(state),
// isAdmin: isAdmin(state),
// isCommon: getIsCommonFolder(state),
// isDesktop: isDesktopClient(state),
// isEncryptionSupport: isEncryptionSupport(state),
// isFavorites: getIsFavoritesFolder(state),
// isMy: getIsMyFolder(state),
// isRecycleBin: getIsRecycleBinFolder(state),
// isRecent: getIsRecentFolder(state),
// isShare: getIsShareFolder(state),
// isPrivacy: getIsPrivacyFolder(state),
// mediaViewerImageFormats: getMediaViewerImageFormats(state),
// mediaViewerMediaFormats: getMediaViewerMediaFormats(state),
// mediaViewerVisible: getMediaViewerVisibility(state),
// myDocumentsId: getMyFolderId(state),
// organizationName: getOrganizationName(state),
// parentId: getSelectedFolderParentId(state),
// privacyInstructions: getPrivacyInstructionsLink(state),
// selected: getSelected(state),
// selectedFolderId: getSelectedFolderId(state),
// selection: getSelection(state),
// settings: getSettings(state),
// title: getSelectedFolderTitle(state),
// treeFolders: getTreeFolders(state),
// viewAs: getViewAs(state),
// viewer: getCurrentUser(state),
// tooltipValue: getTooltipLabel(state),
// iconOfDraggedFile: getIconOfDraggedFile(state)(state),
// sharingPanelVisible: getSharePanelVisible(state),
// isRootFolder: isRootFolder(state),
// providers: getThirdPartyProviders(state),
// capabilities: getThirdPartyCapabilities(state),
// isVersionHistoryPanel: getIsVerHistoryPanel(state),
// isTabletView: getIsTabletView(state),
// };
// };
// export default connect(mapStateToProps, {
// deselectFile,
@ -2201,159 +2201,163 @@ const mapStateToProps = (state) => {
// setChangeOwnerPanelVisible,
// })(withRouter(withTranslation()(SectionBodyContent)));
export default connect(mapStateToProps, {
//deselectFile,
updateFile,
//fetchFiles,
//selectFile,
//setTreeFolders,
//setDragItem,
//setMediaViewerData,
//setSecondaryProgressBarData,
//setSelection,
//setSelected,
setUpdateTree,
//setIsLoading,
//clearSecondaryProgressData,
markItemAsFavorite,
removeItemFromFavorite,
fetchFavoritesFolder,
getFileInfo,
addFileToRecentlyViewed,
loopFilesOperations,
//setSharingPanelVisible,
//setIsVerHistoryPanel,
//setVerHistoryFileId,
//setChangeOwnerPanelVisible,
})(
inject(({ store, mainFilesStore }) => {
const {
homepage,
culture,
isEncryptionSupport,
isTabletView,
organizationName,
isDesktopClient,
} = store.settingsStore;
const {
dragging,
setDragging,
filesStore,
setIsLoading,
viewAs,
dragItem,
setDragItem,
privacyInstructions
} = mainFilesStore;
const {
files,
folders,
selected,
setSelected,
firstLoad,
filesList,
fetchFiles,
setSelection,
selection,
selectFile,
deselectFile,
filter,
fileActionStore,
treeFoldersStore,
mediaViewerDataStore,
secondaryProgressDataStore,
dialogsStore,
versionHistoryStore,
} = filesStore;
export default inject(({ store, mainFilesStore, thirdParty }) => {
const { providers, capabilities } = thirdParty;
const {
homepage,
culture,
isEncryptionSupport,
isTabletView,
organizationName,
isDesktopClient,
} = store.settingsStore;
const {
dragging,
setDragging,
filesStore,
setIsLoading,
viewAs,
dragItem,
setDragItem,
privacyInstructions,
tooltipValue,
} = mainFilesStore;
const {
files,
folders,
selected,
setSelected,
firstLoad,
filesList,
fetchFiles,
setSelection,
selection,
selectFile,
deselectFile,
filter,
fileActionStore,
treeFoldersStore,
mediaViewerDataStore,
secondaryProgressDataStore,
dialogsStore,
versionHistoryStore,
selectedFolderStore,
mediaViewersFormatsStore,
addFileToRecentlyViewed,
updateFile,
currentFolderCount,
iconOfDraggedFile,
markItemAsFavorite,
removeItemFromFavorite,
fetchFavoritesFolder,
getFileInfo,
loopFilesOperations,
} = filesStore;
const {
treeFolders,
setTreeFolders,
myFolderId,
isMyFolder,
isRecycleBinFolder,
isShareFolder,
isFavoritesFolder,
isCommonFolder,
isRecentFolder,
isPrivacyFolder,
} = treeFoldersStore;
const {
treeFolders,
setTreeFolders,
myFolderId,
isMyFolder,
isRecycleBinFolder,
isShareFolder,
isFavoritesFolder,
isCommonFolder,
isRecentFolder,
isPrivacyFolder,
} = treeFoldersStore;
const { type, extension, id, setAction } = fileActionStore;
const { type, extension, id, setAction } = fileActionStore;
const fileAction = { type, extension, id };
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
const fileAction = { type, extension, id };
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
const {
sharingPanelVisible,
setChangeOwnerPanelVisible,
setSharingPanelVisible,
} = dialogsStore;
const {
sharingPanelVisible,
setChangeOwnerPanelVisible,
setSharingPanelVisible,
} = dialogsStore;
const {
isVisible: isVersionHistoryPanel,
setIsVerHistoryPanel,
setVerHistoryFileId,
} = versionHistoryStore;
const {
isVisible: isVersionHistoryPanel,
setIsVerHistoryPanel,
setVerHistoryFileId,
} = versionHistoryStore;
return {
isAdmin: store.isAdmin,
homepage,
culture,
isEncryptionSupport,
isTabletView,
viewer: store.userStore.user,
organizationName,
isDesktop: isDesktopClient,
dragging,
fileAction,
files,
folders,
selected,
firstLoad,
filesList,
title: filesStore.selectedFolderStore.title,
parentId: filesStore.selectedFolderStore.parentId,
selectedFolderId: filesStore.selectedFolderStore.id,
selection,
treeFolders,
isRecycleBin: isRecycleBinFolder,
myDocumentsId: myFolderId,
isShare: isShareFolder,
isFavorites: isFavoritesFolder,
isCommon: isCommonFolder,
isRecent: isRecentFolder,
isMy: isMyFolder,
isPrivacy: isPrivacyFolder,
filter,
viewAs,
dragItem,
currentMediaFileId: mediaViewerDataStore.id,
mediaViewerVisible: mediaViewerDataStore.visible,
sharingPanelVisible,
isVersionHistoryPanel,
privacyInstructions,
const { images, media } = mediaViewersFormatsStore;
setDragging,
setAction,
setSelected,
setIsLoading,
setSelection,
fetchFiles,
selectFile,
deselectFile,
setTreeFolders,
setDragItem,
setMediaViewerData: mediaViewerDataStore.setMediaViewerData,
setSecondaryProgressBarData,
setChangeOwnerPanelVisible,
setSharingPanelVisible,
clearSecondaryProgressData,
setIsVerHistoryPanel,
setVerHistoryFileId,
};
})(withRouter(withTranslation()(observer(SectionBodyContent))))
);
return {
isAdmin: store.isAdmin,
homepage,
culture,
isEncryptionSupport,
isTabletView,
viewer: store.userStore.user,
organizationName,
isDesktop: isDesktopClient,
dragging,
fileAction,
files,
folders,
selected,
firstLoad,
filesList,
title: selectedFolderStore.title,
parentId: selectedFolderStore.parentId,
selectedFolderId: selectedFolderStore.id,
selection,
treeFolders,
isRecycleBin: isRecycleBinFolder,
myDocumentsId: myFolderId,
isShare: isShareFolder,
isFavorites: isFavoritesFolder,
isCommon: isCommonFolder,
isRecent: isRecentFolder,
isMy: isMyFolder,
isPrivacy: isPrivacyFolder,
filter,
viewAs,
dragItem,
currentMediaFileId: mediaViewerDataStore.id,
mediaViewerVisible: mediaViewerDataStore.visible,
sharingPanelVisible,
isVersionHistoryPanel,
privacyInstructions,
isRootFolder: selectedFolderStore.isRootFolder,
mediaViewerImageFormats: images,
mediaViewerMediaFormats: media,
providers,
capabilities,
currentFolderCount,
iconOfDraggedFile,
tooltipValue,
setDragging,
setAction,
setSelected,
setIsLoading,
setSelection,
fetchFiles,
selectFile,
deselectFile,
setTreeFolders,
setDragItem,
setMediaViewerData: mediaViewerDataStore.setMediaViewerData,
setSecondaryProgressBarData,
setChangeOwnerPanelVisible,
setSharingPanelVisible,
clearSecondaryProgressData,
setIsVerHistoryPanel,
setVerHistoryFileId,
addFileToRecentlyViewed,
updateFile,
markItemAsFavorite,
removeItemFromFavorite,
fetchFavoritesFolder,
getFileInfo,
loopFilesOperations,
};
})(withRouter(withTranslation()(observer(SectionBodyContent))));

View File

@ -1,17 +1,17 @@
import React from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
// import {
// fetchFiles,
// setViewAs,
// setIsLoading,
// } from "../../../../../store/files/actions";
import {
//getFilter,
//getSelectedFolderId,
//getViewAs,
getFilterSelectedItem,
//getFirstLoad,
} from "../../../../../store/files/selectors";
// import {
// getFilter,
// getSelectedFolderId,
// getViewAs,
// getFilterSelectedItem,
// getFirstLoad,
// } from "../../../../../store/files/selectors";
import find from "lodash/find";
import result from "lodash/result";
import { withTranslation } from "react-i18next";
@ -331,18 +331,18 @@ class SectionFilterContent extends React.Component {
}
}
function mapStateToProps(state) {
return {
//user: getCurrentUser(state),
//customNames: getSettingsCustomNames(state),
//language: getLanguage(state),
//firstLoad: getFirstLoad(state),
//filter: getFilter(state),
//selectedFolderId: getSelectedFolderId(state),
selectedItem: getFilterSelectedItem(state),
//viewAs: getViewAs(state),
};
}
// function mapStateToProps(state) {
// return {
// user: getCurrentUser(state),
// customNames: getSettingsCustomNames(state),
// language: getLanguage(state),
// firstLoad: getFirstLoad(state),
// filter: getFilter(state),
// selectedFolderId: getSelectedFolderId(state),
// selectedItem: getFilterSelectedItem(state),
// viewAs: getViewAs(state),
// };
// }
// export default connect(mapStateToProps, {
// fetchFiles,
@ -350,31 +350,28 @@ function mapStateToProps(state) {
// setIsLoading,
// })(withRouter(withLayoutSize(withTranslation()(SectionFilterContent))));
export default connect(mapStateToProps)(
inject(({ store, mainFilesStore }) => {
const { filesStore, setIsLoading, setViewAs, viewAs } = mainFilesStore;
const { firstLoad, fetchFiles, filter, selectedFolderStore } = filesStore;
export default inject(({ store, mainFilesStore }) => {
const { filesStore, setIsLoading, setViewAs, viewAs } = mainFilesStore;
const { firstLoad, fetchFiles, filter, selectedFolderStore } = filesStore;
const { user } = store.userStore;
const { customNames, culture } = store.settingsStore;
const language = (user && user.cultureName) || culture || "en-US";
const { user } = store.userStore;
const { customNames, culture } = store.settingsStore;
const language = (user && user.cultureName) || culture || "en-US";
return {
customNames,
user,
language,
firstLoad,
selectedFolderId: selectedFolderStore.id,
filter,
viewAs,
return {
customNames,
user,
language,
firstLoad,
selectedFolderId: selectedFolderStore.id,
selectedItem: filter.selectedItem,
filter,
viewAs,
setIsLoading,
fetchFiles,
setViewAs,
};
})(
withRouter(
withLayoutSize(withTranslation()(observer(SectionFilterContent)))
)
)
setIsLoading,
fetchFiles,
setViewAs,
};
})(
withRouter(withLayoutSize(withTranslation()(observer(SectionFilterContent))))
);

View File

@ -10,7 +10,7 @@ import {
toastr,
Loaders,
} from "asc-web-common";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withTranslation } from "react-i18next";
import {
ContextMenuButton,
@ -35,27 +35,27 @@ import {
DownloadDialog,
} from "../../../../dialogs";
import { OperationsPanel } from "../../../../panels";
import {
getUserAccess,
getWebEditSelected,
//getIsRecycleBinFolder,
canCreate,
//getSelectedFolderTitle,
//getFilter,
//getSelectedFolderId,
//getSelection,
//getSelectedFolderParentId,
//getIsRootFolder,
getHeaderVisible,
getHeaderIndeterminate,
getHeaderChecked,
getAccessedSelected,
getSelectionLength,
//getSharePanelVisible,
getIsThirdPartySelection,
//getIsPrivacyFolder,
getOnlyFoldersSelected,
} from "../../../../../store/files/selectors";
// import {
// getUserAccess,
// getWebEditSelected,
// getIsRecycleBinFolder,
// canCreate,
// getSelectedFolderTitle,
// getFilter,
// getSelectedFolderId,
// getSelection,
// getSelectedFolderParentId,
// getIsRootFolder,
// getHeaderVisible,
// getHeaderIndeterminate,
// getHeaderChecked,
// getAccessedSelected,
// getSelectionLength,
// getSharePanelVisible,
// getIsThirdPartySelection,
// getIsPrivacyFolder,
// getOnlyFoldersSelected,
// } from "../../../../../store/files/selectors";
import { inject, observer } from "mobx-react";
//const { isAdmin, isDesktopClient } = store.auth.selectors;
@ -693,31 +693,31 @@ class SectionHeaderContent extends React.Component {
}
}
const mapStateToProps = (state) => {
return {
//isRootFolder: getIsRootFolder(state),
//isAdmin: isAdmin(state),
//isRecycleBin: getIsRecycleBinFolder(state),
//isPrivacy: getIsPrivacyFolder(state),
//isDesktop: isDesktopClient(state),
//parentId: getSelectedFolderParentId(state),
//selection: getSelection(state),
//title: getSelectedFolderTitle(state),
//filter: getFilter(state),
deleteDialogVisible: getUserAccess(state),
//currentFolderId: getSelectedFolderId(state),
canCreate: canCreate(state),
isWebEditSelected: getWebEditSelected(state),
isHeaderVisible: getHeaderVisible(state),
isHeaderIndeterminate: getHeaderIndeterminate(state),
isHeaderChecked: getHeaderChecked(state),
isAccessedSelected: getAccessedSelected(state),
isItemsSelected: getSelectionLength(state),
//sharingPanelVisible: getSharePanelVisible(state),
isThirdPartySelection: getIsThirdPartySelection(state),
isOnlyFoldersSelected: getOnlyFoldersSelected(state),
};
};
// const mapStateToProps = (state) => {
// return {
// isRootFolder: getIsRootFolder(state),
// isAdmin: isAdmin(state),
// isRecycleBin: getIsRecycleBinFolder(state),
// isPrivacy: getIsPrivacyFolder(state),
// isDesktop: isDesktopClient(state),
// parentId: getSelectedFolderParentId(state),
// selection: getSelection(state),
// title: getSelectedFolderTitle(state),
// filter: getFilter(state),
// deleteDialogVisible: getUserAccess(state),
// currentFolderId: getSelectedFolderId(state),
// canCreate: canCreate(state),
// isWebEditSelected: getWebEditSelected(state),
// isHeaderVisible: getHeaderVisible(state),
// isHeaderIndeterminate: getHeaderIndeterminate(state),
// isHeaderChecked: getHeaderChecked(state),
// isAccessedSelected: getAccessedSelected(state),
// isItemsSelected: getSelectionLength(state),
// sharingPanelVisible: getSharePanelVisible(state),
// isThirdPartySelection: getIsThirdPartySelection(state),
// isOnlyFoldersSelected: getOnlyFoldersSelected(state),
// };
// };
// export default connect(mapStateToProps, {
// setAction,
@ -729,48 +729,65 @@ const mapStateToProps = (state) => {
// setSharingPanelVisible,
// })(withTranslation()(withRouter(SectionHeaderContent)));
export default connect(mapStateToProps)(
inject(({ store, mainFilesStore }) => {
const { filesStore, setIsLoading } = mainFilesStore;
const {
setSelected,
fileActionStore,
fetchFiles,
selection,
selectedFolderStore,
treeFoldersStore,
filter,
secondaryProgressDataStore,
dialogsStore,
} = filesStore;
const { isRecycleBinFolder, isPrivacyFolder } = treeFoldersStore;
const { setAction } = fileActionStore;
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
const { sharingPanelVisible, setSharingPanelVisible } = dialogsStore;
export default inject(({ store, mainFilesStore }) => {
const { filesStore, setIsLoading } = mainFilesStore;
const {
setSelected,
fileActionStore,
fetchFiles,
selection,
selectedFolderStore,
treeFoldersStore,
filter,
secondaryProgressDataStore,
dialogsStore,
canCreate,
isHeaderVisible,
isHeaderIndeterminate,
isHeaderChecked,
userAccess,
isAccessedSelected,
isOnlyFoldersSelected,
isThirdPartySelection,
isWebEditSelected,
} = filesStore;
const { isRecycleBinFolder, isPrivacyFolder } = treeFoldersStore;
const { setAction } = fileActionStore;
const {
setSecondaryProgressBarData,
clearSecondaryProgressData,
} = secondaryProgressDataStore;
const { sharingPanelVisible, setSharingPanelVisible } = dialogsStore;
return {
isAdmin: store.isAdmin,
isDesktop: store.settingsStore.isDesktopClient,
isRootFolder: selectedFolderStore.parentId === 0,
title: selectedFolderStore.title,
parentId: selectedFolderStore.parentId,
currentFolderId: selectedFolderStore.id,
selection,
isRecycleBin: isRecycleBinFolder,
isPrivacy: isPrivacyFolder,
filter,
sharingPanelVisible,
return {
isAdmin: store.isAdmin,
isDesktop: store.settingsStore.isDesktopClient,
isRootFolder: selectedFolderStore.parentId === 0,
title: selectedFolderStore.title,
parentId: selectedFolderStore.parentId,
currentFolderId: selectedFolderStore.id,
selection,
isRecycleBin: isRecycleBinFolder,
isPrivacy: isPrivacyFolder,
filter,
sharingPanelVisible,
canCreate,
isItemsSelected: selection.length,
isHeaderVisible,
isHeaderIndeterminate,
isHeaderChecked,
deleteDialogVisible: userAccess,
isAccessedSelected,
isOnlyFoldersSelected,
isThirdPartySelection,
isWebEditSelected,
setSelected,
setAction,
setIsLoading,
fetchFiles,
setSecondaryProgressBarData,
setSharingPanelVisible,
clearSecondaryProgressData,
};
})(withTranslation()(withRouter(observer(SectionHeaderContent))))
);
setSelected,
setAction,
setIsLoading,
fetchFiles,
setSecondaryProgressBarData,
setSharingPanelVisible,
clearSecondaryProgressData,
};
})(withTranslation()(withRouter(observer(SectionHeaderContent))));

View File

@ -1,5 +1,5 @@
import React, { useEffect } from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import PropTypes from "prop-types";
import { withRouter } from "react-router";
import { isMobile } from "react-device-detect";
@ -17,32 +17,32 @@ import {
SectionHeaderContent,
SectionPagingContent,
} from "./Section";
import {
//fetchFiles,
//setDragging,
//setIsLoading,
//setFirstLoad,
startUpload,
setSelections,
//setUploadPanelVisible,
} from "../../../store/files/actions";
import {
//getConvertDialogVisible,
//getSelectedFolderId,
//getFileActionId,
//getFilter,
//getPrimaryProgressData,
//getSecondaryProgressData,
//getTreeFolders,
//getViewAs,
//getIsLoading,
//getDragging,
//getFirstLoad,
isSecondaryProgressFinished,
getSelectionLength,
getSelectionTitle,
//getShowOwnerChangePanel,
} from "../../../store/files/selectors";
// import {
// fetchFiles,
// setDragging,
// setIsLoading,
// setFirstLoad,
// startUpload,
// setSelections,
// setUploadPanelVisible,
// } from "../../../store/files/actions";
// import {
// getConvertDialogVisible,
// getSelectedFolderId,
// getFileActionId,
// getFilter,
// getPrimaryProgressData,
// getSecondaryProgressData,
// getTreeFolders,
// getViewAs,
// getIsLoading,
// getDragging,
// getFirstLoad,
// isSecondaryProgressFinished,
// getSelectionLength,
// getSelectionTitle,
// getShowOwnerChangePanel,
// } from "../../../store/files/selectors";
import { ConvertDialog } from "../../dialogs";
import { ChangeOwnerPanel } from "../../panels";
@ -327,40 +327,40 @@ Home.propTypes = {
history: PropTypes.object.isRequired,
};
function mapStateToProps(state, ownProps) {
return {
//convertDialogVisible: getConvertDialogVisible(state),
//currentFolderId: getSelectedFolderId(state),
//fileActionId: getFileActionId(state),
//filter: getFilter(state),
//primaryProgressData: getPrimaryProgressData(state),
//secondaryProgressData: getSecondaryProgressData(state),
//treeFolders: getTreeFolders(state),
//viewAs: getViewAs(state),
//isLoading: getIsLoading(state),
//homepage: getSettingsHomepage(state),
//dragging: getDragging(state),
//firstLoad: getFirstLoad(state),
isProgressFinished: isSecondaryProgressFinished(state),
selectionLength: getSelectionLength(state),
selectionTitle: getSelectionTitle(state),
//showOwnerChangePanel: getShowOwnerChangePanel(state),
};
}
// function mapStateToProps(state, ownProps) {
// return {
// convertDialogVisible: getConvertDialogVisible(state),
// currentFolderId: getSelectedFolderId(state),
// fileActionId: getFileActionId(state),
// filter: getFilter(state),
// primaryProgressData: getPrimaryProgressData(state),
// secondaryProgressData: getSecondaryProgressData(state),
// treeFolders: getTreeFolders(state),
// viewAs: getViewAs(state),
// isLoading: getIsLoading(state),
// homepage: getSettingsHomepage(state),
// dragging: getDragging(state),
// firstLoad: getFirstLoad(state),
// isProgressFinished: isSecondaryProgressFinished(state),
// selectionLength: getSelectionLength(state),
// selectionTitle: getSelectionTitle(state),
// showOwnerChangePanel: getShowOwnerChangePanel(state),
// };
// }
const mapDispatchToProps = (dispatch) => {
return {
//setDragging: (dragging) => dispatch(setDragging(dragging)),
startUpload: (files, folderId, t) =>
dispatch(startUpload(files, folderId, t)),
//setIsLoading: (isLoading) => dispatch(setIsLoading(isLoading)),
//setFirstLoad: (firstLoad) => dispatch(setFirstLoad(firstLoad)),
//fetchFiles: (folderId, filter) => dispatch(fetchFiles(folderId, filter)),
setSelections: (items) => dispatch(setSelections(items)),
// setUploadPanelVisible: (uploadPanelVisible) =>
// dispatch(setUploadPanelVisible(uploadPanelVisible)),
};
};
// const mapDispatchToProps = (dispatch) => {
// return {
// setDragging: (dragging) => dispatch(setDragging(dragging)),
// startUpload: (files, folderId, t) =>
// dispatch(startUpload(files, folderId, t)),
// setIsLoading: (isLoading) => dispatch(setIsLoading(isLoading)),
// setFirstLoad: (firstLoad) => dispatch(setFirstLoad(firstLoad)),
// fetchFiles: (folderId, filter) => dispatch(fetchFiles(folderId, filter)),
// setSelections: (items) => dispatch(setSelections(items)),
// setUploadPanelVisible: (uploadPanelVisible) =>
// dispatch(setUploadPanelVisible(uploadPanelVisible)),
// };
// };
export default inject(({ store, mainFilesStore }) => {
const {
@ -381,6 +381,10 @@ export default inject(({ store, mainFilesStore }) => {
primaryProgressDataStore,
secondaryProgressDataStore,
dialogsStore,
uploadDataStore,
selection,
selectionTitle,
setSelections,
} = filesStore;
const { treeFolders } = treeFoldersStore;
@ -400,9 +404,10 @@ export default inject(({ store, mainFilesStore }) => {
const {
convertDialogVisible,
ownerPanelVisible: showOwnerChangePanel,
setUploadPanelVisible,
} = dialogsStore;
const { setUploadPanelVisible, startUpload } = uploadDataStore;
return {
homepage: store.settingsStore.homepage,
firstLoad,
@ -417,11 +422,16 @@ export default inject(({ store, mainFilesStore }) => {
secondaryProgressData,
convertDialogVisible,
showOwnerChangePanel,
selectionLength: selection.length,
isProgressFinished: secondaryProgressDataStore.isSecondaryProgressFinished,
selectionTitle,
setFirstLoad,
setDragging,
setIsLoading,
fetchFiles,
setUploadPanelVisible,
setSelections,
startUpload,
};
})(withRouter(observer(Home)));

View File

@ -1,5 +1,5 @@
import React from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import styled from "styled-components";
import {
Box,
@ -16,33 +16,32 @@ import { withTranslation } from "react-i18next";
import EmptyFolderContainer from "../../../Home/Section/Body/EmptyFolderContainer";
import { createI18N } from "../../../../../helpers/i18n";
import { Trans } from "react-i18next";
import {
getOAuthToken,
openConnectWindow,
setConnectItem,
setShowThirdPartyPanel,
//fetchFiles,
//setSelectedNode,
} from "../../../../../store/files/actions";
import {
getThirdPartyCapabilities,
getGoogleConnect,
getBoxConnect,
getDropboxConnect,
getOneDriveConnect,
getNextCloudConnect,
getSharePointConnect,
getkDriveConnect,
getYandexConnect,
getOwnCloudConnect,
getWebDavConnect,
getConnectItem,
getShowThirdPartyPanel,
getThirdPartyProviders,
getMyDirectoryFolders,
getCommonDirectoryFolders,
//getFilter,
} from "../../../../../store/files/selectors";
// import {
// getOAuthToken,
// openConnectWindow,
// setConnectItem,
// setShowThirdPartyPanel,
// fetchFiles,
// setSelectedNode,
// } from "../../../../../store/files/actions";
import //getThirdPartyCapabilities,
//getGoogleConnect,
//getBoxConnect,
//getDropboxConnect,
//getOneDriveConnect,
// getNextCloudConnect,
// getSharePointConnect,
// getkDriveConnect,
// getYandexConnect,
// getOwnCloudConnect,
// getWebDavConnect,
//getConnectItem,
//getShowThirdPartyPanel,
//getThirdPartyProviders,
//getMyDirectoryFolders,
//getCommonDirectoryFolders,
//getFilter,
"../../../../../store/files/selectors";
import { DeleteThirdPartyDialog, ConnectDialog } from "../../../../dialogs";
import { inject, observer } from "mobx-react";
@ -161,11 +160,13 @@ class ConnectClouds extends React.Component {
"Authorization",
"height=600, width=1020"
);
openConnectWindow(selectedServiceData.title, authModal).then((modal) =>
getOAuthToken(modal).then((token) =>
this.showOAuthModal(token, selectedServiceData)
)
);
this.props
.openConnectWindow(selectedServiceData.title, authModal)
.then((modal) =>
this.props
.getOAuthToken(modal)
.then((token) => this.showOAuthModal(token, selectedServiceData))
);
}
this.setState({
@ -543,28 +544,28 @@ class ConnectClouds extends React.Component {
}
}
function mapStateToProps(state) {
return {
//isAdmin: isAdmin(state),
capabilities: getThirdPartyCapabilities(state),
googleConnectItem: getGoogleConnect(state),
boxConnectItem: getBoxConnect(state),
dropboxConnectItem: getDropboxConnect(state),
oneDriveConnectItem: getOneDriveConnect(state),
nextCloudConnectItem: getNextCloudConnect(state),
sharePointConnectItem: getSharePointConnect(state),
kDriveConnectItem: getkDriveConnect(state),
yandexConnectItem: getYandexConnect(state),
ownCloudConnectItem: getOwnCloudConnect(state),
webDavConnectItem: getWebDavConnect(state),
connectItem: getConnectItem(state),
showThirdPartyPanel: getShowThirdPartyPanel(state),
providers: getThirdPartyProviders(state),
myDirectoryFolders: getMyDirectoryFolders(state),
commonDirectoryFolders: getCommonDirectoryFolders(state),
//filter: getFilter(state),
};
}
// function mapStateToProps(state) {
// return {
// isAdmin: isAdmin(state),
// capabilities: getThirdPartyCapabilities(state),
// googleConnectItem: getGoogleConnect(state),
// boxConnectItem: getBoxConnect(state),
// dropboxConnectItem: getDropboxConnect(state),
// oneDriveConnectItem: getOneDriveConnect(state),
// nextCloudConnectItem: getNextCloudConnect(state),
// sharePointConnectItem: getSharePointConnect(state),
// kDriveConnectItem: getkDriveConnect(state),
// yandexConnectItem: getYandexConnect(state),
// ownCloudConnectItem: getOwnCloudConnect(state),
// webDavConnectItem: getWebDavConnect(state),
// connectItem: getConnectItem(state),
// showThirdPartyPanel: getShowThirdPartyPanel(state),
// providers: getThirdPartyProviders(state),
// myDirectoryFolders: getMyDirectoryFolders(state),
// commonDirectoryFolders: getCommonDirectoryFolders(state),
// filter: getFilter(state),
// };
// }
// export default connect(mapStateToProps, {
// setConnectItem,
@ -573,23 +574,54 @@ function mapStateToProps(state) {
// setSelectedNode,
// })(withTranslation()(ConnectClouds));
export default connect(mapStateToProps, {
setConnectItem,
setShowThirdPartyPanel,
//fetchFiles,
//setSelectedNode,
})(
inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { fetchFiles, treeFoldersStore, filter } = filesStore;
const { setSelectedNode } = treeFoldersStore;
export default inject(({ store, mainFilesStore, thirdParty }) => {
const { filesStore } = mainFilesStore;
const {
providers,
connectItem,
capabilities,
setConnectItem,
showThirdPartyPanel,
setShowThirdPartyPanel,
googleConnectItem,
boxConnectItem,
dropboxConnectItem,
oneDriveConnectItem,
nextCloudConnectItem,
kDriveConnectItem,
yandexConnectItem,
ownCloudConnectItem,
webDavConnectItem,
getOAuthToken,
openConnectWindow,
} = thirdParty;
const { fetchFiles, treeFoldersStore, filter } = filesStore;
const { setSelectedNode, myFolder, commonFolder } = treeFoldersStore;
return {
isAdmin: store.isAdmin,
filter,
return {
isAdmin: store.isAdmin,
filter,
providers,
showThirdPartyPanel,
connectItem,
capabilities,
googleConnectItem,
boxConnectItem,
dropboxConnectItem,
oneDriveConnectItem,
nextCloudConnectItem,
kDriveConnectItem,
yandexConnectItem,
ownCloudConnectItem,
webDavConnectItem,
myDirectoryFolders: myFolder && myFolder.folders,
commonDirectoryFolders: commonFolder && commonFolder.folders,
fetchFiles,
setSelectedNode,
};
})(withTranslation()(observer(ConnectClouds)))
);
fetchFiles,
setSelectedNode,
setConnectItem,
setShowThirdPartyPanel,
getOAuthToken,
openConnectWindow,
};
})(withTranslation()(observer(ConnectClouds)));

View File

@ -1,27 +1,27 @@
import React from "react";
import styled from "styled-components";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { Heading, ToggleButton } from "asc-web-components";
import { Error403, Error520 /* store */ } from "asc-web-common";
import {
setUpdateIfExist,
setStoreOriginal,
setEnableThirdParty,
setConfirmDelete,
setStoreForceSave,
setForceSave,
} from "../../../../../store/files/actions";
import {
//getIsLoading,
//getSettingsSelectedTreeNode,
getSettingsTreeStoreOriginalFiles,
getSettingsTreeConfirmDelete,
getSettingsTreeUpdateIfExist,
getSettingsTreeForceSave,
getSettingsTreeStoreForceSave,
getSettingsTreeEnableThirdParty,
getSettingsTree,
} from "../../../../../store/files/selectors";
// import {
// setUpdateIfExist,
// setStoreOriginal,
// setEnableThirdParty,
// setConfirmDelete,
// setStoreForceSave,
// setForceSave,
// } from "../../../../../store/files/actions";
// import {
// getIsLoading,
// getSettingsSelectedTreeNode,
// getSettingsTreeStoreOriginalFiles,
// getSettingsTreeConfirmDelete,
// getSettingsTreeUpdateIfExist,
// getSettingsTreeForceSave,
// getSettingsTreeStoreForceSave,
// getSettingsTreeEnableThirdParty,
// getSettingsTree,
// } from "../../../../../store/files/selectors";
import ConnectClouds from "./ConnectedClouds";
import { inject, observer } from "mobx-react";
@ -180,20 +180,20 @@ const SectionBodyContent = ({
);
};
function mapStateToProps(state) {
return {
//isAdmin: isAdmin(state),
//selectedTreeNode: getSettingsSelectedTreeNode(state),
storeOriginalFiles: getSettingsTreeStoreOriginalFiles(state),
confirmDelete: getSettingsTreeConfirmDelete(state),
updateIfExist: getSettingsTreeUpdateIfExist(state),
forceSave: getSettingsTreeForceSave(state),
storeForceSave: getSettingsTreeStoreForceSave(state),
enableThirdParty: getSettingsTreeEnableThirdParty(state),
//isLoading: getIsLoading(state),
settingsTree: getSettingsTree(state),
};
}
// function mapStateToProps(state) {
// return {
// isAdmin: isAdmin(state),
// selectedTreeNode: getSettingsSelectedTreeNode(state),
// storeOriginalFiles: getSettingsTreeStoreOriginalFiles(state),
// confirmDelete: getSettingsTreeConfirmDelete(state),
// updateIfExist: getSettingsTreeUpdateIfExist(state),
// forceSave: getSettingsTreeForceSave(state),
// storeForceSave: getSettingsTreeStoreForceSave(state),
// enableThirdParty: getSettingsTreeEnableThirdParty(state),
// isLoading: getIsLoading(state),
// settingsTree: getSettingsTree(state),
// };
// }
// export default connect(mapStateToProps, {
// setUpdateIfExist,
@ -204,22 +204,45 @@ function mapStateToProps(state) {
// setForceSave,
// })(SectionBodyContent);
export default connect(mapStateToProps, {
setUpdateIfExist,
setStoreOriginal,
setEnableThirdParty,
setConfirmDelete,
setStoreForceSave,
setForceSave,
})(
inject(({ store, mainFilesStore }) => {
const { isLoading, filesStore } = mainFilesStore;
const { selectedTreeNode } = filesStore.treeFoldersStore;
export default inject(({ store, mainFilesStore }) => {
const { isLoading, filesStore } = mainFilesStore;
const { treeFoldersStore, settingsTreeStore } = filesStore;
const { selectedTreeNode } = treeFoldersStore;
const {
settingsTree: settings,
storeOriginalFiles,
confirmDelete,
updateIfExist,
forcesave,
storeForcesave,
enableThirdParty,
setUpdateIfExist,
setStoreOriginal,
setEnableThirdParty,
setConfirmDelete,
setStoreForceSave,
setForceSave,
} = settingsTreeStore;
return {
isAdmin: store.isAdmin,
isLoading,
selectedTreeNode,
};
})(observer(SectionBodyContent))
);
const settingsTree = Object.keys(settings).length !== 0 ? settings : {};
return {
isAdmin: store.isAdmin,
isLoading,
selectedTreeNode,
settingsTree,
storeOriginalFiles,
confirmDelete,
updateIfExist,
forceSave: forcesave,
storeForceSave: storeForcesave,
enableThirdParty,
setUpdateIfExist,
setStoreOriginal,
setEnableThirdParty,
setConfirmDelete,
setStoreForceSave,
setForceSave,
};
})(observer(SectionBodyContent));

View File

@ -1,5 +1,5 @@
import React, { useEffect, useState } from "react";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import { PageLayout, utils, Loaders } from "asc-web-common";
import {
@ -10,14 +10,12 @@ import {
import { SectionHeaderContent, SectionBodyContent } from "./Section";
import { withTranslation, I18nextProvider } from "react-i18next";
import { createI18N } from "../../../helpers/i18n";
import {
getFilesSettings,
//setFirstLoad,
//setSelectedNode,
} from "../../../store/files/actions";
import {
getSettingsTree /* getIsLoading */,
} from "../../../store/files/selectors";
// import {
// getFilesSettings,
// setFirstLoad,
// setSelectedNode,
// } from "../../../store/files/actions";
//import { getSettingsTree, getIsLoading } from "../../../store/files/selectors";
import { setDocumentTitle } from "../../../helpers/utils";
import { inject, observer } from "mobx-react";
@ -129,40 +127,40 @@ const Settings = (props) => {
);
};
function mapStateToProps(state) {
return {
//isLoading: getIsLoading(state),
settingsTree: getSettingsTree(state),
};
}
// function mapStateToProps(state) {
// return {
// isLoading: getIsLoading(state),
// settingsTree: getSettingsTree(state),
// };
// }
const mapDispatchToProps = (dispatch) => {
return {
getFilesSettings: () => dispatch(getFilesSettings()),
//setFirstLoad: (firstLoad) => dispatch(setFirstLoad(firstLoad)),
//setSelectedNode: (node) => dispatch(setSelectedNode(node)),
};
};
// const mapDispatchToProps = (dispatch) => {
// return {
// getFilesSettings: () => dispatch(getFilesSettings()),
// setFirstLoad: (firstLoad) => dispatch(setFirstLoad(firstLoad)),
// setSelectedNode: (node) => dispatch(setSelectedNode(node)),
// };
// };
// export default connect(
// mapStateToProps,
// mapDispatchToProps
// )(withRouter(Settings));
export default connect(
mapStateToProps,
mapDispatchToProps
)(
inject(({ store, mainFilesStore }) => {
const { filesStore, isLoading } = mainFilesStore;
const { setFirstLoad, treeFoldersStore } = filesStore;
const { setSelectedNode } = treeFoldersStore;
export default inject(({ mainFilesStore }) => {
const { filesStore, isLoading } = mainFilesStore;
const { setFirstLoad, treeFoldersStore, settingsTreeStore } = filesStore;
const { setSelectedNode } = treeFoldersStore;
const { getFilesSettings, settingsTree: settings } = settingsTreeStore;
return {
isLoading,
const settingsTree = Object.keys(settings).length !== 0 ? settings : {};
setFirstLoad,
setSelectedNode,
};
})(withRouter(observer(Settings)))
);
return {
isLoading,
settingsTree,
setFirstLoad,
setSelectedNode,
getFilesSettings,
};
})(withRouter(observer(Settings)));

View File

@ -10,13 +10,13 @@ import {
} from "asc-web-components";
import { withTranslation } from "react-i18next";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { toastr /* store */ } from "asc-web-common";
import {
markAsVersion,
restoreVersion,
updateCommentVersion,
} from "../../../../../store/files/actions";
// import {
// markAsVersion,
// restoreVersion,
// updateCommentVersion,
// } from "../../../../../store/files/actions";
import VersionBadge from "./VersionBadge";
import StyledVersionRow from "./StyledVersionRow";
import { inject, observer } from "mobx-react";
@ -240,32 +240,37 @@ const VersionRow = (props) => {
// };
// };
const mapDispatchToProps = (dispatch) => {
return {
markAsVersion: (id, isVersion, version) =>
dispatch(markAsVersion(id, isVersion, version)),
restoreVersion: (id, version) => dispatch(restoreVersion(id, version)),
updateCommentVersion: (id, comment, version) =>
dispatch(updateCommentVersion(id, comment, version)),
};
};
// const mapDispatchToProps = (dispatch) => {
// return {
// markAsVersion: (id, isVersion, version) =>
// dispatch(markAsVersion(id, isVersion, version)),
// restoreVersion: (id, version) => dispatch(restoreVersion(id, version)),
// updateCommentVersion: (id, comment, version) =>
// dispatch(updateCommentVersion(id, comment, version)),
// };
// };
// export default connect(
// mapStateToProps,
// mapDispatchToProps
// )(withRouter(withTranslation()(VersionRow)));
export default connect(
null,
mapDispatchToProps
)(
inject(({ store, mainFilesStore }) => {
const { user } = store.userStore;
const { culture } = store.settingsStore;
const language = (user && user.cultureName) || culture || "en-US";
export default inject(({ store, mainFilesStore }) => {
const { user } = store.userStore;
const { culture } = store.settingsStore;
const language = (user && user.cultureName) || culture || "en-US";
return {
culture: language,
};
})(withRouter(withTranslation()(observer(VersionRow))))
);
const {
markAsVersion,
restoreVersion,
updateCommentVersion,
} = mainFilesStore.filesStore.versionHistoryStore;
return {
culture: language,
markAsVersion,
restoreVersion,
updateCommentVersion,
};
})(withRouter(withTranslation()(observer(VersionRow))));

View File

@ -1,6 +1,6 @@
import React from "react";
import { withRouter } from "react-router";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import {
Button,
Heading,
@ -11,13 +11,13 @@ import {
} from "asc-web-components";
import { withTranslation } from "react-i18next";
import { utils, /* store, */ toastr } from "asc-web-common";
import {
//setIsLoading,
setFilesOwner,
setFiles,
setFolders,
//setChangeOwnerPanelVisible,
} from "../../../store/files/actions";
// import {
// setIsLoading,
// setFilesOwner,
// setFiles,
// setFolders,
// setChangeOwnerPanelVisible,
// } from "../../../store/files/actions";
// import {
// getSelection,
// getIsLoading,
@ -85,6 +85,7 @@ class ChangeOwnerComponent extends React.Component {
setFolders,
setFiles,
setIsLoading,
setFilesOwner,
} = this.props;
const folderIds = [];
const fileIds = [];
@ -219,16 +220,17 @@ const ChangeOwnerPanel = (props) => (
// setChangeOwnerPanelVisible,
// })(withRouter(ChangeOwnerPanel));
export default connect(null, {
//setIsLoading,
setFiles,
setFolders,
//setChangeOwnerPanelVisible,
});
inject(({ store, mainFilesStore }) => {
export default inject(({ store, mainFilesStore }) => {
const { filesStore, setIsLoading, isLoading } = mainFilesStore;
const { files, folders, selection, dialogsStore } = filesStore;
const {
files,
folders,
selection,
dialogsStore,
setFiles,
setFolders,
setFilesOwner,
} = filesStore;
const { ownerPanelVisible, setChangeOwnerPanelVisible } = dialogsStore;
return {
@ -239,7 +241,10 @@ inject(({ store, mainFilesStore }) => {
isLoading,
visible: ownerPanelVisible,
setFiles,
setFolders,
setIsLoading,
setChangeOwnerPanelVisible,
setFilesOwner,
};
})(withRouter(observer(ChangeOwnerPanel)));

View File

@ -1,6 +1,6 @@
import React from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import {
Backdrop,
@ -32,15 +32,15 @@ import {
//getSelectedFolder,
//getIsPrivacyFolder,
} from "../../../store/files/selectors";
import {
//fetchFiles,
//setMediaViewerData,
//setTreeFolders,
setUpdateTree,
setNewRowItems,
//setIsLoading,
addFileToRecentlyViewed,
} from "../../../store/files/actions";
// import {
// fetchFiles,
// setMediaViewerData,
// setTreeFolders,
// setUpdateTree,
// setNewRowItems,
// setIsLoading,
// addFileToRecentlyViewed,
// } from "../../../store/files/actions";
import { createI18N } from "../../../helpers/i18n";
import { inject, observer } from "mobx-react";
const i18n = createI18N({
@ -125,7 +125,7 @@ class NewFilesPanelComponent extends React.Component {
api.files
.markAsRead(folderIds, fileId)
.then(() => {
this.props.setUpdateTree(true);
//this.props.setUpdateTree(true);
this.setNewFilesCount(folderId, false, item);
this.onFilesClick(item);
})
@ -174,7 +174,7 @@ class NewFilesPanelComponent extends React.Component {
setTreeFolders,
folders,
files,
setUpdateTree,
//setUpdateTree,
} = this.props;
const data = treeFolders;
@ -223,7 +223,7 @@ class NewFilesPanelComponent extends React.Component {
}
}
setUpdateTree(true);
//setUpdateTree(true);
setTreeFolders(data);
};
@ -332,17 +332,7 @@ const NewFilesPanel = (props) => (
// setIsLoading,
// })(withRouter(NewFilesPanel));
export default connect(null, {
//setMediaViewerData,
//setTreeFolders,
setUpdateTree,
setNewRowItems,
//fetchFiles,
addFileToRecentlyViewed,
//setIsLoading,
});
inject(({ store, mainFilesStore }) => {
export default inject(({ store, mainFilesStore }) => {
const { filesStore, setIsLoading } = mainFilesStore;
const {
files,
@ -351,6 +341,8 @@ inject(({ store, mainFilesStore }) => {
treeFoldersStore,
filter,
mediaViewerDataStore,
addFileToRecentlyViewed,
setNewRowItems,
} = filesStore;
const { treeFolders, setTreeFolders, isPrivacyFolder } = treeFoldersStore;
const { setMediaViewerData } = mediaViewerDataStore;
@ -366,5 +358,7 @@ inject(({ store, mainFilesStore }) => {
fetchFiles,
setTreeFolders,
setMediaViewerData,
addFileToRecentlyViewed,
setNewRowItems,
};
})(withRouter(observer(NewFilesPanel)));

View File

@ -1,24 +1,24 @@
import React from "react";
import PropTypes from "prop-types";
import { connect } from "react-redux";
//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 { StyledAsidePanel } from "../StyledPanels";
import TreeFolders from "../../Article/Body/TreeFolders";
import {
//setSecondaryProgressBarData,
itemOperationToFolder,
} from "../../../store/files/actions";
import {
//getFilter,
//getSelection,
//getPathParts,
//getSelectedFolderId,
//getIsRecycleBinFolder,
getOperationsFolders,
} from "../../../store/files/selectors";
// import {
// setSecondaryProgressBarData,
// itemOperationToFolder,
// } from "../../../store/files/actions";
// import {
// getFilter,
// getSelection,
// getPathParts,
// getSelectedFolderId,
// getIsRecycleBinFolder,
// getOperationsFolders,
// } from "../../../store/files/selectors";
import { ThirdPartyMoveDialog } from "../../dialogs";
import { createI18N } from "../../../helpers/i18n";
import { inject, observer } from "mobx-react";
@ -206,46 +206,44 @@ const OperationsPanel = (props) => (
<OperationsPanelContainerTranslated i18n={i18n} {...props} />
);
const mapStateToProps = (state) => {
return {
//filter: getFilter(state),
//selection: getSelection(state),
//expandedKeys: getPathParts(state),
//currentFolderId: getSelectedFolderId(state),
//isRecycleBin: getIsRecycleBinFolder(state),
operationsFolders: getOperationsFolders(state),
};
};
// const mapStateToProps = (state) => {
// return {
// filter: getFilter(state),
// selection: getSelection(state),
// expandedKeys: getPathParts(state),
// currentFolderId: getSelectedFolderId(state),
// isRecycleBin: getIsRecycleBinFolder(state),
// operationsFolders: getOperationsFolders(state),
// };
// };
// export default connect(mapStateToProps, {
// setSecondaryProgressBarData,
// itemOperationToFolder,
// })(withRouter(OperationsPanel));
export default connect(mapStateToProps, {
//setSecondaryProgressBarData,
itemOperationToFolder,
})(
inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const {
selection,
selectedFolderStore,
treeFoldersStore,
filter,
secondaryProgressDataStore,
} = filesStore;
const { isRecycleBinFolder } = treeFoldersStore;
const { setSecondaryProgressBarData } = secondaryProgressDataStore;
export default inject(({ store, mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const {
selection,
selectedFolderStore,
treeFoldersStore,
filter,
secondaryProgressDataStore,
itemOperationToFolder,
} = filesStore;
const { isRecycleBinFolder, operationsFolders } = treeFoldersStore;
const { setSecondaryProgressBarData } = secondaryProgressDataStore;
return {
expandedKeys: selectedFolderStore.pathParts,
currentFolderId: selectedFolderStore.id,
selection,
isRecycleBin: isRecycleBinFolder,
filter,
return {
expandedKeys: selectedFolderStore.pathParts,
currentFolderId: selectedFolderStore.id,
selection,
isRecycleBin: isRecycleBinFolder,
filter,
operationsFolders,
setSecondaryProgressBarData,
};
})(withRouter(observer(OperationsPanel)))
);
setSecondaryProgressBarData,
itemOperationToFolder,
};
})(withRouter(observer(OperationsPanel)));

View File

@ -10,32 +10,36 @@ import {
DropDownItem,
Textarea,
} from "asc-web-components";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withRouter } from "react-router";
import { withTranslation, Trans } from "react-i18next";
import { utils as commonUtils, constants, toastr, store } from "asc-web-common";
import {
getShareUsers,
setShareFiles,
//setSharingPanelVisible,
//setIsLoading,
setFiles,
setFolders,
//selectUploadedFile,
updateUploadedItem,
} from "../../../store/files/actions";
import {
getAccessOption,
getExternalAccessOption,
//getSelection,
//getSharePanelVisible,
getCanShareOwnerChange,
//getIsLoading,
//getFiles,
//getFolders,
//getIsPrivacyFolder,
//getUploadSelection,
} from "../../../store/files/selectors";
utils as commonUtils,
constants,
toastr /* store */,
} from "asc-web-common";
// import {
// getShareUsers,
// setShareFiles,
// setSharingPanelVisible,
// setIsLoading,
// setFiles,
// setFolders,
// selectUploadedFile,
// updateUploadedItem,
// } from "../../../store/files/actions";
// import {
// getAccessOption,
// getExternalAccessOption,
// getSelection,
// getSharePanelVisible,
// getCanShareOwnerChange,
// getIsLoading,
// getFiles,
// getFolders,
// getIsPrivacyFolder,
// getUploadSelection,
// } from "../../../store/files/selectors";
import {
StyledAsidePanel,
StyledContent,
@ -46,7 +50,7 @@ import {
import { AddUsersPanel, AddGroupsPanel, EmbeddingPanel } from "../index";
import SharingRow from "./SharingRow";
import { createI18N } from "../../../helpers/i18n";
import { setEncryptionAccess } from "../../../helpers/desktop";
//import { setEncryptionAccess } from "../../../helpers/desktop";
import { inject, observer } from "mobx-react";
const i18n = createI18N({
page: "SharingPanel",
@ -54,7 +58,7 @@ const i18n = createI18N({
});
const { changeLanguage } = commonUtils;
const { ShareAccessRights } = constants;
const { replaceFileStream } = store.auth.actions;
//const { replaceFileStream } = store.auth.actions;
// const {
// getCurrentUserId,
// getSettingsCustomNamesGroupsCaption,
@ -152,6 +156,8 @@ class SharingPanelComponent extends React.Component {
updateUploadedItem,
uploadSelection,
isDesktop,
setEncryptionAccess,
setShareFiles,
} = this.props;
const folderIds = [];
@ -307,6 +313,7 @@ class SharingPanelComponent extends React.Component {
getExternalAccessOption,
selection,
setIsLoading,
getShareUsers,
} = this.props;
if (folderId.length !== 0 || fileId.length !== 0) {
@ -620,31 +627,31 @@ const SharingPanel = (props) => (
<SharingPanelContainerTranslated i18n={i18n} {...props} />
);
const mapStateToProps = (state, ownProps) => {
//const selection = getSelection(state);
//const uploadSelection = getUploadSelection(state);
// const selectedFile = ownProps.uploadPanelVisible
// ? uploadSelection
// : selection; // TODO: take out this implementation from this component
// const mapStateToProps = (state, ownProps) => {
// const selection = getSelection(state);
// const uploadSelection = getUploadSelection(state);
// const selectedFile = ownProps.uploadPanelVisible
// ? uploadSelection
// : selection; // TODO: take out this implementation from this component
return {
getAccessOption: (selection) => getAccessOption(state, selection),
getExternalAccessOption: (selection) =>
getExternalAccessOption(state, selection),
//isMyId: getCurrentUserId(state),
//selection: selectedFile,
//isPrivacy: getIsPrivacyFolder(state),
//isDesktop: isDesktopClient(state),
//groupsCaption: getSettingsCustomNamesGroupsCaption(state),
//sharingPanelVisible: getSharePanelVisible(state),
canShareOwnerChange: getCanShareOwnerChange(state),
//isLoading: getIsLoading(state),
//files: getFiles(state),
//folders: getFolders(state),
//settings: getSettings(state),
//uploadSelection,
};
};
// return {
// getAccessOption: (selection) => getAccessOption(state, selection),
// getExternalAccessOption: (selection) =>
// getExternalAccessOption(state, selection),
// isMyId: getCurrentUserId(state),
// selection: selectedFile,
// isPrivacy: getIsPrivacyFolder(state),
// isDesktop: isDesktopClient(state),
// groupsCaption: getSettingsCustomNamesGroupsCaption(state),
// sharingPanelVisible: getSharePanelVisible(state),
// canShareOwnerChange: getCanShareOwnerChange(state),
// isLoading: getIsLoading(state),
// files: getFiles(state),
// folders: getFolders(state),
// settings: getSettings(state),
// uploadSelection,
// };
// };
// export default connect(mapStateToProps, {
// replaceFileStream,
@ -656,46 +663,58 @@ const mapStateToProps = (state, ownProps) => {
// updateUploadedItem,
// })(withRouter(SharingPanel));
export default connect(mapStateToProps, {
replaceFileStream,
//setSharingPanelVisible,
//setIsLoading,
setFiles,
setFolders,
//selectUploadedFile,
updateUploadedItem,
})(
inject(({ store, mainFilesStore }, { uploadPanelVisible }) => {
const { customNames, isDesktopClient, homepage } = store.settingsStore;
const { filesStore, setIsLoading, isLoading } = mainFilesStore;
const {
files,
folders,
selection,
treeFoldersStore,
dialogsStore,
uploadDataStore,
} = filesStore;
const { isPrivacyFolder } = treeFoldersStore;
const { sharingPanelVisible, setSharingPanelVisible } = dialogsStore;
const { uploadSelection, selectUploadedFile } = uploadDataStore;
export default inject(({ store, mainFilesStore }, { uploadPanelVisible }) => {
const { replaceFileStream, setEncryptionAccess } = store;
const { customNames, isDesktopClient, homepage } = store.settingsStore;
const { filesStore, setIsLoading, isLoading } = mainFilesStore;
const {
files,
folders,
selection,
treeFoldersStore,
dialogsStore,
uploadDataStore,
canShareOwnerChange,
getAccessOption,
getExternalAccessOption,
setFiles,
setFolders,
getShareUsers,
setShareFiles,
} = filesStore;
const { isPrivacyFolder } = treeFoldersStore;
const { sharingPanelVisible, setSharingPanelVisible } = dialogsStore;
const {
uploadSelection,
selectUploadedFile,
updateUploadedItem,
} = uploadDataStore;
return {
isMyId: store.userStore.user.id,
groupsCaption: customNames.groupsCaption,
isDesktop: isDesktopClient,
homepage,
files,
folders,
selection: uploadPanelVisible ? uploadSelection : selection,
isLoading,
isPrivacy: isPrivacyFolder,
sharingPanelVisible,
uploadSelection,
return {
isMyId: store.userStore.user.id,
groupsCaption: customNames.groupsCaption,
isDesktop: isDesktopClient,
homepage,
files,
folders,
selection: uploadPanelVisible ? uploadSelection : selection,
isLoading,
isPrivacy: isPrivacyFolder,
sharingPanelVisible,
uploadSelection,
canShareOwnerChange,
setIsLoading,
setSharingPanelVisible,
selectUploadedFile,
};
})(withRouter(observer(SharingPanel)))
);
setIsLoading,
setSharingPanelVisible,
selectUploadedFile,
updateUploadedItem,
replaceFileStream,
setEncryptionAccess,
getAccessOption,
getExternalAccessOption,
setFiles,
setFolders,
getShareUsers,
setShareFiles,
};
})(withRouter(observer(SharingPanel)));

View File

@ -3,14 +3,14 @@ import styled from "styled-components";
import { Row, Text, Icons, Tooltip, Link } from "asc-web-components";
import LoadingButton from "./LoadingButton";
import { connect } from "react-redux";
import { cancelCurrentUpload } from "../../../store/files/actions";
import {
getLoadingFile,
//isUploaded,
isMediaOrImage,
getIconSrc,
} from "../../../store/files/selectors";
//import { connect } from "react-redux";
//import { cancelCurrentUpload } from "../../../store/files/actions";
// import {
// getLoadingFile,
// isUploaded,
// isMediaOrImage,
// getIconSrc,
// } from "../../../store/files/selectors";
import ShareButton from "./ShareButton";
import { inject, observer } from "mobx-react";
@ -73,7 +73,6 @@ const FileRow = (props) => {
isMedia,
ext,
name,
uniqueId,
} = props;
const onCancelCurrentUpload = (e) => {
@ -134,7 +133,7 @@ const FileRow = (props) => {
<></>
)}
{item.fileId ? (
<ShareButton uniqueId={uniqueId} />
<ShareButton uniqueId={item.uniqueId} />
) : item.error || (!item.fileId && uploaded) ? (
<div className="upload_panel-icon">
{" "}
@ -167,11 +166,40 @@ const FileRow = (props) => {
</>
);
};
const mapStateToProps = (state, ownProps) => {
const loadingFile = getLoadingFile(state);
// const mapStateToProps = (state, ownProps) => {
// const loadingFile = getLoadingFile(state);
const { item } = ownProps;
// const { item } = ownProps;
// let ext;
// let name;
// let splitted;
// if (item.file) {
// splitted = item.file.name.split(".");
// ext = splitted.length > 1 ? "." + splitted.pop() : "";
// name = splitted[0];
// } else {
// ext = item.fileInfo.fileExst;
// splitted = item.fileInfo.title.split(".");
// name = splitted[0];
// }
// const { uniqueId } = item;
// return {
// currentFileUploadProgress:
// loadingFile && loadingFile.uniqueId === uniqueId
// ? loadingFile.percent
// : null,
// uploaded: isUploaded(state),
// isMedia: isMediaOrImage(ext)(state),
// fileIcon: getIconSrc(ext, 24)(state),
// ext,
// name,
// };
// };
export default inject(({ mainFilesStore }, { item }) => {
let ext;
let name;
let splitted;
@ -185,33 +213,33 @@ const mapStateToProps = (state, ownProps) => {
name = splitted[0];
}
const { uniqueId } = item;
const { filesStore } = mainFilesStore;
const {
uploadDataStore,
mediaViewersFormatsStore,
formatsStore,
cancelCurrentUpload,
primaryProgressDataStore,
} = filesStore;
const { uploaded } = uploadDataStore;
const { loadingFile } = primaryProgressDataStore;
const isMedia = mediaViewersFormatsStore.isMediaOrImage(ext);
const fileIcon = formatsStore.getIconSrc(ext, 24);
const currentFileUploadProgress =
loadingFile && loadingFile.uniqueId === item.uniqueId
? loadingFile.percent
: null;
return {
currentFileUploadProgress:
loadingFile && loadingFile.uniqueId === uniqueId
? loadingFile.percent
: null,
//uploaded: isUploaded(state),
isMedia: isMediaOrImage(ext)(state),
fileIcon: getIconSrc(ext, 24)(state),
currentFileUploadProgress,
uploaded,
isMedia,
fileIcon,
ext,
name,
uniqueId,
};
};
loadingFile,
export default connect(mapStateToProps, {
cancelCurrentUpload,
// setMediaViewerData,
});
inject(({ mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { uploadDataStore } = filesStore;
const { uploaded } = uploadDataStore;
return {
uploaded,
cancelCurrentUpload,
};
})(observer(FileRow));

View File

@ -1,14 +1,14 @@
import React from "react";
import { IconButton } from "asc-web-components";
import { connect } from "react-redux";
// import { connect } from "react-redux";
// import {
// setSharingPanelVisible,
// selectUploadedFile,
// } from "../../../store/files/actions";
import {
//getSharePanelVisible,
getUploadedFile,
} from "../../../store/files/selectors";
// import {
// getSharePanelVisible,
// getUploadedFile,
// } from "../../../store/files/selectors";
import { inject, observer } from "mobx-react";
const ShareButton = (props) => {
@ -44,27 +44,28 @@ const ShareButton = (props) => {
);
};
const mapStateToProps = (state, ownProps) => {
const uniqueId = ownProps.uniqueId;
// const mapStateToProps = (state, ownProps) => {
// const uniqueId = ownProps.uniqueId;
// return {
// sharingPanelVisible: getSharePanelVisible(state),
// uploadedFile: getUploadedFile(uniqueId)(state),
// };
// };
export default inject(({ mainFilesStore }, { uniqueId }) => {
const { filesStore } = mainFilesStore;
const { dialogsStore, uploadDataStore } = filesStore;
const { sharingPanelVisible, setSharingPanelVisible } = dialogsStore;
const { selectUploadedFile, getUploadedFile } = uploadDataStore;
const uploadedFile = getUploadedFile(uniqueId);
return {
//sharingPanelVisible: getSharePanelVisible(state),
uploadedFile: getUploadedFile(uniqueId)(state),
sharingPanelVisible,
uploadedFile,
setSharingPanelVisible,
selectUploadedFile,
};
};
export default connect(mapStateToProps)(
inject(({ mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { dialogsStore, uploadDataStore } = filesStore;
const { sharingPanelVisible, setSharingPanelVisible } = dialogsStore;
const { selectUploadedFile } = uploadDataStore;
return {
sharingPanelVisible,
setSharingPanelVisible,
selectUploadedFile,
};
})(observer(ShareButton))
);
})(observer(ShareButton));

View File

@ -1,13 +1,13 @@
import React from "react";
import { Backdrop, Heading, Aside, IconButton } from "asc-web-components";
import { connect } from "react-redux";
//import { connect } from "react-redux";
import { withTranslation } from "react-i18next";
import { utils as commonUtils } from "asc-web-common";
import {
//setUploadPanelVisible,
cancelUpload,
clearUploadData,
} from "../../../store/files/actions";
// import {
// setUploadPanelVisible,
// cancelUpload,
// clearUploadData,
// } from "../../../store/files/actions";
// import {
// getUploadPanelVisible,
// getSharePanelVisible,
@ -153,28 +153,26 @@ const UploadPanel = (props) => (
// };
// };
export default connect(null, {
//setUploadPanelVisible,
cancelUpload,
clearUploadData,
})(
inject(({ mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { dialogsStore, uploadDataStore } = filesStore;
const {
sharingPanelVisible,
uploadPanelVisible,
setUploadPanelVisible,
} = dialogsStore;
export default inject(({ mainFilesStore }) => {
const { filesStore } = mainFilesStore;
const { dialogsStore, uploadDataStore } = filesStore;
const { sharingPanelVisible } = dialogsStore;
const { uploaded } = uploadDataStore;
const {
uploaded,
clearUploadData,
cancelUpload,
uploadPanelVisible,
setUploadPanelVisible,
} = uploadDataStore;
return {
sharingPanelVisible,
uploadPanelVisible,
uploaded,
return {
sharingPanelVisible,
uploadPanelVisible,
uploaded,
setUploadPanelVisible,
};
})(observer(UploadPanel))
);
setUploadPanelVisible,
clearUploadData,
cancelUpload,
};
})(observer(UploadPanel));

View File

@ -1,9 +1,9 @@
import store from "../store/store";
import { store as commonStore } from "asc-web-common";
//import { store as commonStore } from "asc-web-common";
import { getEncryptedFormats } from "../store/files/selectors";
import { desktopConstants } from "asc-web-common";
const { getEncryptionAccess } = commonStore.auth.actions;
//const { getEncryptionAccess } = commonStore.auth.actions;
export function encryptionUploadDialog(callback) {
const state = store.getState();
@ -27,31 +27,31 @@ export function encryptionUploadDialog(callback) {
});
}
export function setEncryptionAccess(file) {
return getEncryptionAccess(file.id).then((keys) => {
let promise = new Promise((resolve, reject) => {
try {
window.AscDesktopEditor.cloudCryptoCommand(
"share",
{
"cryptoEngineId": desktopConstants.guid,
"file": [file.viewUrl],
"keys": keys,
},
(obj) => {
let file = null;
if (obj.isCrypto) {
let bytes = obj.bytes;
let filename = "temp_name";
file = new File([bytes], filename);
}
resolve(file);
}
);
} catch (e) {
reject(e);
}
});
return promise;
});
}
// export function setEncryptionAccess(file) {
// return getEncryptionAccess(file.id).then((keys) => {
// let promise = new Promise((resolve, reject) => {
// try {
// window.AscDesktopEditor.cloudCryptoCommand(
// "share",
// {
// "cryptoEngineId": desktopConstants.guid,
// "file": [file.viewUrl],
// "keys": keys,
// },
// (obj) => {
// let file = null;
// if (obj.isCrypto) {
// let bytes = obj.bytes;
// let filename = "temp_name";
// file = new File([bytes], filename);
// }
// resolve(file);
// }
// );
// } catch (e) {
// reject(e);
// }
// });
// return promise;
// });
// }

View File

@ -2,9 +2,9 @@
import React from "react";
import ReactDOM from "react-dom";
import { Provider } from "react-redux";
//import { Provider } from "react-redux";
import store from "./store/store";
//import store from "./store/store";
import "./custom.scss";
import App from "./App";
@ -12,17 +12,22 @@ import * as serviceWorker from "./serviceWorker";
import { ErrorBoundary, store as commonStore } from "asc-web-common";
import { Provider as MobxProvider } from "mobx-react";
import mainFilesStore from "./store/MainFilesStore";
import ThirdPartyStore from "./store/ThirdPartyStore";
const thirdPartyStore = new ThirdPartyStore();
const { authStore } = commonStore;
ReactDOM.render(
<Provider store={store}>
<MobxProvider store={authStore} mainFilesStore={mainFilesStore}>
<ErrorBoundary>
<App />
</ErrorBoundary>
</MobxProvider>
</Provider>,
<MobxProvider
store={authStore}
mainFilesStore={mainFilesStore}
thirdParty={thirdPartyStore}
>
<ErrorBoundary>
<App />
</ErrorBoundary>
</MobxProvider>,
document.getElementById("root")
);

View File

@ -1,37 +1,24 @@
import { makeObservable, action, observable } from "mobx";
class DialogsStore {
convertDialogVisible = false;
sharingPanelVisible = false;
uploadPanelVisible = false;
ownerPanelVisible = false;
constructor() {
makeObservable(this, {
convertDialogVisible: observable,
sharingPanelVisible: observable,
uploadPanelVisible: observable,
ownerPanelVisible: observable,
setConvertDialogVisible: action,
setSharingPanelVisible: action,
setUploadPanelVisible: action,
setChangeOwnerPanelVisible: action,
});
}
setConvertDialogVisible = (convertDialogVisible) => {
this.convertDialogVisible = convertDialogVisible;
};
setSharingPanelVisible = (sharingPanelVisible) => {
this.sharingPanelVisible = sharingPanelVisible;
};
setUploadPanelVisible = (uploadPanelVisible) => {
this.uploadPanelVisible = uploadPanelVisible;
};
setChangeOwnerPanelVisible = (ownerPanelVisible) => {
this.ownerPanelVisible = ownerPanelVisible;
};

View File

@ -125,18 +125,18 @@ class DocserviceStore {
makeObservable(this, {});
}
canWebEdit = (extension) => {
presentInArray(this.editedDocs, extension);
};
canWebEdit = (extension) => presentInArray(this.editedDocs, extension);
getWebEditSelected = (selection, editedFormats) => {
//getSelection,
//getEditedFormats,
return selection.some((selected) => {
if (selected.isFolder === true || !selected.fileExst) return false;
return editedFormats.find((format) => selected.fileExst === format);
});
};
canConvert = (extension) => presentInArray(this.convertDocs, extension);
canWebComment = (extension) => presentInArray(this.commentedDocs, extension);
canWebReview = (extension) => presentInArray(this.reviewedDocs, extension);
canFormFillingDocs = (extension) =>
presentInArray(this.formfillingDocs, extension);
canWebFilterEditing = (extension) =>
presentInArray(this.customfilterDocs, extension);
}
export default DocserviceStore;

View File

@ -1,5 +1,6 @@
import { makeObservable, action, observable, computed } from "mobx";
import { api, constants, store } from "asc-web-common";
import axios from "axios";
import FileActionStore from "./FileActionStore";
import SelectedFolderStore from "./SelectedFolderStore";
import TreeFoldersStore from "./TreeFoldersStore";
@ -12,11 +13,14 @@ import SecondaryProgressDataStore from "./SecondaryProgressDataStore";
import DialogsStore from "./DialogsStore";
import VersionHistoryStore from "./VersionHistoryStore";
import UploadDataStore from "./UploadDataStore";
import SettingsTreeStore from "./SettingsTreeStore";
import { createTreeFolders } from "./files/selectors";
const { FilesFilter } = api;
const { FolderType } = constants;
const { authStore } = store;
const { settingsStore, userStore, isAdmin } = authStore;
const { isEncryptionSupport, isDesktopClient } = settingsStore;
class FilesStore {
fileActionStore = null;
@ -31,6 +35,7 @@ class FilesStore {
dialogsStore = null;
versionHistoryStore = null;
uploadDataStore = null;
settingsTreeStore = null;
firstLoad = true;
files = [];
@ -39,6 +44,7 @@ class FilesStore {
selection = [];
selected = "close";
filter = FilesFilter.getDefault(); //TODO: FILTER
newRowItems = [];
constructor() {
makeObservable(this, {
@ -54,6 +60,7 @@ class FilesStore {
dialogsStore: observable, //TODO: MainFiles?
versionHistoryStore: observable, //TODO: MainFiles?
uploadDataStore: observable, //TODO: MainFiles?
settingsTreeStore: observable, //TODO: MainFiles?
firstLoad: observable,
files: observable,
@ -61,8 +68,22 @@ class FilesStore {
selected: observable,
filter: observable, //TODO: FILTER
selection: observable,
newRowItems: observable,
filesList: computed,
sortedFiles: computed,
canCreate: computed,
isHeaderVisible: computed,
isHeaderIndeterminate: computed,
isHeaderChecked: computed,
userAccess: computed,
isAccessedSelected: computed,
isOnlyFoldersSelected: computed,
isThirdPartySelection: computed,
isWebEditSelected: computed,
canShareOwnerChange: computed,
selectionTitle: computed,
currentFilesCount: computed,
setFirstLoad: action,
setFiles: action,
@ -70,9 +91,25 @@ class FilesStore {
setSelected: action,
setFilesFilter: action, //TODO: FILTER
setSelection: action,
setNewRowItems: action,
setFilesOwner: action,
fetchFiles: action,
selectFile: action,
deselectFile: action,
addFileToRecentlyViewed: action,
createFile: action,
updateFile: action,
getAccessOption: action,
getExternalAccessOption: action,
setSelections: action,
getShareUsers: action,
setShareFiles: action,
itemOperationToFolder: action,
markItemAsFavorite: action,
removeItemFromFavorite: action,
fetchFavoritesFolder: action,
getFileInfo: action,
loopFilesOperations: action,
});
this.fileActionStore = new FileActionStore();
@ -87,6 +124,7 @@ class FilesStore {
this.dialogsStore = new DialogsStore();
this.versionHistoryStore = new VersionHistoryStore();
this.uploadDataStore = new UploadDataStore();
this.settingsTreeStore = new SettingsTreeStore();
}
setFirstLoad = (firstLoad) => {
@ -119,6 +157,14 @@ class FilesStore {
this.filter = filter;
};
setNewRowItems = (newRowItems) => {
this.newRowItems = newRowItems;
};
setFilesOwner = (folderIds, fileIds, ownerId) => {
return api.files.setFileOwner(folderIds, fileIds, ownerId);
};
/*setFilterUrl = (filter) => {
const defaultFilter = FilesFilter.getDefault();
const params = [];
@ -164,9 +210,7 @@ class FilesStore {
const { privacyFolder } = this.treeFoldersStore;
if (privacyFolder && privacyFolder.id === +folderId) {
const isEncryptionSupported = authStore.settingsStore.isEncryptionSupport;
if (!isEncryptionSupported) {
if (!isEncryptionSupport) {
filterData.treeFolders = createTreeFolders(
privacyFolder.pathParts,
filterData
@ -191,7 +235,6 @@ class FilesStore {
}
return api.files.getFolder(folderId, filter).then((data) => {
const isEncryptionSupport = authStore.settingsStore.isEncryptionSupport;
const isPrivacyFolder =
data.current.rootFolderType === FolderType.Privacy;
@ -243,9 +286,7 @@ class FilesStore {
isCanShare = () => {
const folderType = this.selectedFolderStore.rootFolderType;
const isAdmin = authStore.isAdmin;
const isVisitor =
(authStore.userStore.user && authStore.userStore.user.isVisitor) || false;
const isVisitor = (userStore.user && userStore.user.isVisitor) || false;
if (isVisitor) {
return false;
@ -280,18 +321,13 @@ class FilesStore {
} = this.treeFoldersStore;
const options = [];
const isVisitor =
(authStore.userStore.user && authStore.userStore.user.isVisitor) || false;
const canChangeOwner = this.getCanShareOwnerChange();
const haveAccess = this.getUserAccess();
const isRootFolder =
this.selectedFolderStore.pathParts &&
this.selectedFolderStore.pathParts.length <= 1;
const isVisitor = (userStore.user && userStore.user.isVisitor) || false;
const isFile = !!item.fileExst;
const isFavorite = item.fileStatus === 32;
const isFullAccess = item.access < 2;
const isThirdPartyFolder = item.providerKey && isRootFolder;
const isThirdPartyFolder =
item.providerKey && this.selectedFolderStore.isRootFolder;
if (item.id <= 0) return [];
@ -330,7 +366,7 @@ class FilesStore {
options.push("send-by-email");
}
canChangeOwner && options.push("owner-change");
this.canShareOwnerChange && options.push("owner-change");
options.push("link-for-portal-users");
if (!isVisitor) {
@ -367,19 +403,19 @@ class FilesStore {
}
if (!isVisitor) {
!isThirdPartyFolder && haveAccess && options.push("move");
!isThirdPartyFolder && this.userAccess && options.push("move");
options.push("copy");
if (isFile) {
options.push("duplicate");
}
haveAccess && options.push("rename");
this.userAccess && options.push("rename");
isThirdPartyFolder &&
haveAccess &&
this.userAccess &&
options.push("change-thirdparty-info");
options.push("separator3");
haveAccess && options.push("delete");
this.userAccess && options.push("delete");
} else {
options.push("copy");
}
@ -392,33 +428,80 @@ class FilesStore {
return options;
};
getUserAccess = () => {
switch (this.selectedFolderStore.rootFolderType) {
case FolderType.USER:
return true;
case FolderType.SHARE:
return false;
case FolderType.COMMON:
return (
authStore.isAdmin ||
this.selection.some((x) => x.access === 0 || x.access === 1)
);
case FolderType.Privacy:
return true;
case FolderType.TRASH:
return true;
default:
return false;
}
addFileToRecentlyViewed = (fileId, isPrivacy) => {
if (isPrivacy) return Promise.resolve();
return api.files.addFileToRecentlyViewed(fileId);
};
getCanShareOwnerChange = () => {
createFile = (folderId, title) => {
return api.files.createFile(folderId, title).then((file) => {
return Promise.resolve(file);
});
};
//TODO: action?
setFile = (file) => {
const fileIndex = this.files.findIndex((f) => f.id === file.id);
if (fileIndex !== -1) this.files[fileIndex] = file;
};
//TODO: action?
setFolder = (folder) => {
const folderIndex = this.folders.findIndex((f) => f.id === folder.id);
if (folderIndex !== -1) this.folders[folderIndex] = folder;
};
updateFile = (fileId, title) => {
return api.files
.updateFile(fileId, title)
.then((file) => this.setFile(file));
};
renameFolder = (folderId, title) => {
return api.files.renameFolder(folderId, title).then((folder) => {
this.setFolder(folder);
});
};
getFilesCount = () => {
const { filesCount, foldersCount } = this.selectedFolderStore;
return filesCount + this.folders ? this.folders.length : foldersCount;
};
getServiceFilesCount = () => {
const filesLength = this.files ? this.files.length : 0;
const foldersLength = this.folders ? this.folders.length : 0;
return filesLength + foldersLength;
};
get currentFilesCount() {
const serviceFilesCount = this.getServiceFilesCount();
const filesCount = this.getFilesCount();
return this.selectedFolderStore.providerItem
? serviceFilesCount
: filesCount;
}
get iconOfDraggedFile() {
if (this.selection.length === 1) {
const icon = this.formatsStore.getIcon(
24,
this.selection[0].fileExst,
this.selection[0].providerKey
);
return icon;
}
return null;
}
get canShareOwnerChange() {
const { commonFolder } = this.treeFoldersStore;
const pathParts = this.selectedFolderStore.pathParts;
const userId = authStore.userStore.user.id;
const userId = userStore.user.id;
return (
(authStore.isAdmin ||
(isAdmin ||
(this.selection.length && this.selection[0].createdBy.id === userId)) &&
pathParts &&
commonFolder &&
@ -426,7 +509,42 @@ class FilesStore {
this.selection.length &&
!this.selection[0].providerKey
);
};
}
get isHeaderVisible() {
return this.selection.length > 0 || this.selected !== "close";
}
get isHeaderIndeterminate() {
const items = [...this.files, ...this.folders];
return this.isHeaderVisible && this.selection.length
? this.selection.length < items.length
: false;
}
get isHeaderChecked() {
const items = [...this.files, ...this.folders];
return this.isHeaderVisible && this.selection.length === items.length;
}
get canCreate() {
switch (this.selectedFolderStore.rootFolderType) {
case FolderType.USER:
return true;
case FolderType.SHARE:
const canCreateInSharedFolder = this.selectedFolderStore.access === 1;
return (
!this.selectedFolderStore.isRootFolder && canCreateInSharedFolder
);
case FolderType.Privacy:
return isDesktopClient && isEncryptionSupport;
case FolderType.COMMON:
return isAdmin;
case FolderType.TRASH:
default:
return false;
}
}
get filesList() {
const items =
@ -537,6 +655,474 @@ class FilesStore {
};
});
}
get sortedFiles() {
const formatKeys = Object.freeze({
OriginalFormat: 0,
});
let sortedFiles = {
documents: [],
spreadsheets: [],
presentations: [],
other: [],
};
const { isSpreadsheet, isPresentation } = this.formatsStore;
const { canWebEdit } = this.docserviceStore;
for (let item of this.selection) {
item.checked = true;
item.format = formatKeys.OriginalFormat;
if (item.fileExst) {
if (isSpreadsheet(item.fileExst)) {
sortedFiles.spreadsheets.push(item);
} else if (isPresentation(item.fileExst)) {
sortedFiles.presentations.push(item);
} else if (item.fileExst !== ".pdf" && canWebEdit(item.fileExst)) {
sortedFiles.documents.push(item);
} else {
sortedFiles.other.push(item);
}
} else {
sortedFiles.other.push(item);
}
}
return sortedFiles;
}
get userAccess() {
switch (this.selectedFolderStore.rootFolderType) {
case FolderType.USER:
return true;
case FolderType.SHARE:
return false;
case FolderType.COMMON:
return (
isAdmin ||
this.selection.some((x) => x.access === 0 || x.access === 1)
);
case FolderType.Privacy:
return true;
case FolderType.TRASH:
return true;
default:
return false;
}
}
get isAccessedSelected() {
return (
this.selection.length &&
isAdmin &&
this.selection.every((x) => x.access === 1 || x.access === 0)
);
}
get isOnlyFoldersSelected() {
return this.selection.every((selected) => selected.isFolder === true);
}
get isThirdPartySelection() {
const withProvider = this.selection.find((x) => !x.providerKey);
return !withProvider && this.selectedFolderStore.isRootFolder;
}
get isWebEditSelected() {
return this.selection.some((selected) => {
if (selected.isFolder === true || !selected.fileExst) return false;
return this.docserviceStore.editedDocs.find(
(format) => selected.fileExst === format
);
});
}
get selectionTitle() {
if (this.selection.length === 0) return null;
return this.selection.find((el) => el.title).title;
}
getOptions = (selection, externalAccess = false) => {
const {
canWebEdit,
canWebComment,
canWebReview,
canFormFillingDocs,
canWebFilterEditing,
} = this.docserviceStore;
const webEdit = selection.find((x) => canWebEdit(x.fileExst));
const webComment = selection.find((x) => canWebComment(x.fileExst));
const webReview = selection.find((x) => canWebReview(x.fileExst));
const formFillingDocs = selection.find((x) =>
canFormFillingDocs(x.fileExst)
);
const webFilter = selection.find((x) => canWebFilterEditing(x.fileExst));
let AccessOptions = [];
if (webEdit || !externalAccess) AccessOptions.push("FullAccess");
AccessOptions.push("ReadOnly", "DenyAccess");
if (webComment) AccessOptions.push("Comment");
if (webReview) AccessOptions.push("Review");
if (formFillingDocs) AccessOptions.push("FormFilling");
if (webFilter) AccessOptions.push("FilterEditing");
return AccessOptions;
};
getAccessOption = (selection) => {
return this.getOptions(selection);
};
getExternalAccessOption = (selection) => {
return this.getOptions(selection, true);
};
convertSplitItem = (item) => {
let splitItem = item.split("_");
const fileExst = splitItem[0];
splitItem.splice(0, 1);
if (splitItem[splitItem.length - 1] === "draggable") {
splitItem.splice(-1, 1);
}
splitItem = splitItem.join("_");
return [fileExst, splitItem];
};
setSelections = (items) => {
if (this.selection.length > items.length) {
//Delete selection
const newSelection = [];
let newFile = null;
for (let item of items) {
if (!item) break; // temporary fall protection selection tile
item = this.convertSplitItem(item);
if (item[0] === "folder") {
newFile = this.selection.find(
(x) => x.id + "" === item[1] && !x.fileExst
);
} else if (item[0] === "file") {
newFile = this.selection.find(
(x) => x.id + "" === item[1] && x.fileExst
);
}
if (newFile) {
newSelection.push(newFile);
}
}
for (let item of this.selection) {
const element = newSelection.find(
(x) => x.id === item.id && x.fileExst === item.fileExst
);
if (!element) {
this.deselectFile(item);
}
}
} else if (this.selection.length < items.length) {
//Add selection
for (let item of items) {
if (!item) break; // temporary fall protection selection tile
let newFile = null;
item = this.convertSplitItem(item);
if (item[0] === "folder") {
newFile = this.folders.find(
(x) => x.id + "" === item[1] && !x.fileExst
);
} else if (item[0] === "file") {
newFile = this.files.find((x) => x.id + "" === item[1] && x.fileExst);
}
if (newFile && this.fileActionStore.id !== newFile.id) {
const existItem = this.selection.find(
(x) => x.id === newFile.id && x.fileExst === newFile.fileExst
);
if (!existItem) {
this.selectFile(newFile);
this.selected !== "none" && this.setSelected("none");
}
}
}
} else if (this.selection.length === items.length && items.length === 1) {
const item = this.convertSplitItem(items[0]);
if (item[1] !== this.selection[0].id) {
let addFile = null;
let delFile = null;
const newSelection = [];
if (item[0] === "folder") {
delFile = this.selection.find(
(x) => x.id + "" === item[1] && !x.fileExst
);
addFile = this.folders.find(
(x) => x.id + "" === item[1] && !x.fileExst
);
} else if (item[0] === "file") {
delFile = this.selection.find(
(x) => x.id + "" === item[1] && x.fileExst
);
addFile = this.files.find((x) => x.id + "" === item[1] && x.fileExst);
}
const existItem = this.selection.find(
(x) => x.id === addFile.id && x.fileExst === addFile.fileExst
);
if (!existItem) {
this.selectFile(addFile);
this.selected !== "none" && this.setSelected("none");
}
if (delFile) {
newSelection.push(delFile);
}
for (let item of this.selection) {
const element = newSelection.find(
(x) => x.id === item.id && x.fileExst === item.fileExst
);
if (!element) {
this.deselectFile(item);
}
}
} else {
return;
}
} else {
return;
}
};
getShareUsers(folderIds, fileIds) {
return api.files.getShareFiles(fileIds, folderIds);
}
setShareFiles = (
folderIds,
fileIds,
share,
notify,
sharingMessage,
externalAccess,
ownerId
) => {
let externalAccessRequest = [];
if (fileIds.length === 1 && externalAccess !== null) {
externalAccessRequest = fileIds.map((id) =>
api.files.setExternalAccess(id, externalAccess)
);
}
const ownerChangeRequest = ownerId
? [this.setFilesOwner(folderIds, fileIds, ownerId)]
: [];
const shareRequest = !!share.length
? [
api.files.setShareFiles(
fileIds,
folderIds,
share,
notify,
sharingMessage
),
]
: [];
const requests = [
...ownerChangeRequest,
...shareRequest,
...externalAccessRequest,
];
return axios.all(requests);
};
itemOperationToFolder = (
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter,
isCopy
) => {
/*return dispatch(
selectItemOperation(
destFolderId,
folderIds,
fileIds,
conflictResolveType,
deleteAfter,
isCopy
)
)
.then((res) => {
const id = res[0] && res[0].id ? res[0].id : null;
dispatch(loopFilesOperations(id, destFolderId, isCopy));
})
.catch((err) => {
dispatch(
setPrimaryProgressBarData({
visible: true,
alert: true,
})
);
//toastr.error(err);
setTimeout(() => dispatch(clearPrimaryProgressData()), TIMEOUT);
setTimeout(() => dispatch(clearSecondaryProgressData()), TIMEOUT);
});*/
};
markItemAsFavorite = (id) => api.files.markAsFavorite(id);
removeItemFromFavorite = (id) => api.files.removeFromFavorite(id);
fetchFavoritesFolder = async (folderId) => {
const favoritesFolder = await api.files.getFolder(folderId);
this.setFolders(favoritesFolder.folders);
this.setFiles(favoritesFolder.files);
this.selectedFolderStore.setSelectedFolder({
folders: favoritesFolder.folders,
...favoritesFolder.current,
pathParts: favoritesFolder.pathParts,
});
};
getFileInfo = async (id) => {
const fileInfo = await api.files.getFileInfo(id);
this.setFile(fileInfo);
};
loopFilesOperations = (id, destFolderId, isCopy) => {
/*const { isRecycleBinFolder } = this.treeFoldersStore;
const progressData = getSecondaryProgressData(state);
const treeFolders = getTreeFolders(state);
const loopOperation = () => {
api.files
.getProgress()
.then((res) => {
const currentItem = res.find((x) => x.id === id);
if (currentItem && currentItem.progress !== 100) {
dispatch(
setSecondaryProgressBarData({
icon: isCopy ? "duplicate" : "move",
label: progressData.label,
percent: currentItem.progress,
visible: true,
alert: false,
})
);
setTimeout(() => loopOperation(), 1000);
} else {
dispatch(
setSecondaryProgressBarData({
icon: isCopy ? "duplicate" : "move",
label: progressData.label,
percent: 100,
visible: true,
alert: false,
})
);
api.files
.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) {
dispatch(fetchFiles(this.selectedFolderStore.id, this.filter))
.then((data) => {
if (!isRecycleBinFolder) {
newTreeFolders = treeFolders;
path = data.selectedFolder.pathParts.slice(0);
folders = data.selectedFolder.folders;
foldersCount = data.selectedFolder.foldersCount;
loopTreeFolders(
path,
newTreeFolders,
folders,
foldersCount
);
//dispatch(setUpdateTree(true));
dispatch(setTreeFolders(newTreeFolders));
}
})
.catch((err) => {
dispatch(
setPrimaryProgressBarData({
visible: true,
alert: true,
})
);
//toastr.error(err);
setTimeout(
() => dispatch(clearSecondaryProgressData()),
TIMEOUT
);
})
.finally(() => {
setTimeout(
() => dispatch(clearSecondaryProgressData()),
TIMEOUT
);
});
} else {
dispatch(
setSecondaryProgressBarData({
icon: "duplicate",
label: progressData.label,
percent: 100,
visible: true,
alert: false,
})
);
setTimeout(
() => dispatch(clearSecondaryProgressData()),
TIMEOUT
);
//dispatch(setUpdateTree(true));
dispatch(setTreeFolders(newTreeFolders));
}
})
.catch((err) => {
dispatch(
setSecondaryProgressBarData({
visible: true,
alert: true,
})
);
//toastr.error(err);
setTimeout(
() => dispatch(clearSecondaryProgressData()),
TIMEOUT
);
});
}
})
.catch((err) => {
dispatch(
setSecondaryProgressBarData({
visible: true,
alert: true,
})
);
//toastr.error(err);
setTimeout(() => dispatch(clearSecondaryProgressData()), TIMEOUT);
});
};
loopOperation();*/
};
}
export default FilesStore;

View File

@ -386,6 +386,90 @@ class FormatsStore {
return `${folderPath}/file.svg`;
}
};
getIconSrc = (ext, size = 24) => {
const folderPath = `images/icons/${size}`;
if (presentInArray(this.archive, ext, true))
return `${folderPath}/file_archive.svg`;
if (presentInArray(this.image, ext, true)) return `${folderPath}/image.svg`;
if (presentInArray(this.sound, ext, true)) return `${folderPath}/sound.svg`;
if (presentInArray(this.html, ext, true)) return `${folderPath}/html.svg`;
const extension = ext.toLowerCase();
switch (extension) {
case ".avi":
return `${folderPath}/avi.svg`;
case ".csv":
return `${folderPath}/csv.svg`;
case ".djvu":
return `${folderPath}/djvu.svg`;
case ".doc":
return `${folderPath}/doc.svg`;
case ".docx":
return `${folderPath}/docx.svg`;
case ".dvd":
return `${folderPath}/dvd.svg`;
case ".epub":
return `${folderPath}/epub.svg`;
case ".pb2":
return `${folderPath}/fb2.svg`;
case ".flv":
return `${folderPath}/flv.svg`;
case ".iaf":
return `${folderPath}/iaf.svg`;
case ".m2ts":
return `${folderPath}/m2ts.svg`;
case ".mht":
return `${folderPath}/mht.svg`;
case ".mkv":
return `${folderPath}/mkv.svg`;
case ".mov":
return `${folderPath}/mov.svg`;
case ".mp4":
return `${folderPath}/mp4.svg`;
case ".mpg":
return `${folderPath}/mpg.svg`;
case ".odp":
return `${folderPath}/odp.svg`;
case ".ods":
return `${folderPath}/ods.svg`;
case ".odt":
return `${folderPath}/odt.svg`;
case ".pdf":
return `${folderPath}/pdf.svg`;
case ".pps":
return `${folderPath}/pps.svg`;
case ".ppsx":
return `${folderPath}/ppsx.svg`;
case ".ppt":
return `${folderPath}/ppt.svg`;
case ".pptx":
return `${folderPath}/pptx.svg`;
case ".rtf":
return `${folderPath}/rtf.svg`;
case ".svg":
return `${folderPath}/svg.svg`;
case ".txt":
return `${folderPath}/txt.svg`;
case ".webm":
return `${folderPath}/webm.svg`;
case ".xls":
return `${folderPath}/xls.svg`;
case ".xlsx":
return `${folderPath}/xlsx.svg`;
case ".xps":
return `${folderPath}/xps.svg`;
case ".xml":
return `${folderPath}/xml.svg`;
default:
return `${folderPath}/file.svg`;
}
};
}
export default FormatsStore;

View File

@ -1,9 +1,10 @@
import { makeObservable, action, observable } from "mobx";
import { makeObservable, action, observable, computed } from "mobx";
import { store, utils } from "asc-web-common";
import FilesStore from "./FilesStore";
import config from "../../package.json";
const { authStore } = store;
const { isAdmin } = authStore;
class MainFilesStore {
isLoaded = false;
@ -30,6 +31,8 @@ class MainFilesStore {
dragItem: observable,
privacyInstructions: observable,
tooltipValue: computed,
initFiles: action,
setIsLoaded: action,
setIsLoading: action,
@ -59,6 +62,34 @@ class MainFilesStore {
this.dragItem = dragItem;
};
get tooltipValue() {
if (!this.dragging) return null;
const selectionLength = this.filesStore.selection.length;
const elementTitle = selectionLength && this.filesStore.selection[0].title;
const singleElement = selectionLength === 1;
const filesCount = singleElement ? elementTitle : selectionLength;
const { isShareFolder, isCommonFolder } = this.filesStore.treeFoldersStore;
let operationName;
if (isAdmin && isShareFolder) {
operationName = "copy";
} else if (!isAdmin && (isShareFolder || isCommonFolder)) {
operationName = "copy";
} else {
operationName = "move";
}
return operationName === "copy"
? singleElement
? { label: "TooltipElementCopyMessage", filesCount }
: { label: "TooltipElementsCopyMessage", filesCount }
: singleElement
? { label: "TooltipElementMoveMessage", filesCount }
: { label: "TooltipElementsMoveMessage", filesCount };
}
initFiles = () => {
const isAuthenticated = authStore.isAuthenticated;
const {

View File

@ -1,4 +1,5 @@
import { makeObservable } from "mobx";
import { makeObservable, observable } from "mobx";
import { presentInArray } from "../store/files/selectors";
class MediaViewersFormatsStore {
images = [
@ -33,9 +34,16 @@ class MediaViewersFormatsStore {
];
constructor() {
makeObservable(this, {});
makeObservable(this, {
images: observable,
media: observable,
});
}
isVideo = (extension) => {
return presentInArray(this.media, extension);
};
isMediaOrImage = (fileExst) => {
if (this.media.includes(fileExst) || this.images.includes(fileExst)) {
return true;

View File

@ -1,4 +1,4 @@
import { makeObservable, action, observable } from "mobx";
import { makeObservable, action, observable, computed } from "mobx";
class PrimaryProgressDataStore {
percent = 0;
@ -15,6 +15,8 @@ class PrimaryProgressDataStore {
icon: observable,
alert: observable,
loadingFile: computed,
setPrimaryProgressBarData: action,
});
}
@ -27,6 +29,11 @@ class PrimaryProgressDataStore {
}
}
};
//TODO: loadingFile
get loadingFile() {
if (!this.loadingFile || !this.loadingFile.uniqueId) return null;
return this.loadingFile;
}
}
export default PrimaryProgressDataStore;

View File

@ -1,4 +1,4 @@
import { makeObservable, action, observable } from "mobx";
import { makeObservable, action, observable, computed } from "mobx";
class SecondaryProgressDataStore {
percent = 0;
@ -15,6 +15,8 @@ class SecondaryProgressDataStore {
icon: observable,
alert: observable,
isSecondaryProgressFinished: computed,
setSecondaryProgressBarData: action,
clearSecondaryProgressData: action,
});
@ -36,6 +38,10 @@ class SecondaryProgressDataStore {
this.icon = "";
this.alert = false;
};
get isSecondaryProgressFinished() {
return this.percent === 100;
}
}
export default SecondaryProgressDataStore;

View File

@ -1,4 +1,4 @@
import { makeObservable, action, observable } from "mobx";
import { makeObservable, action, observable, computed } from "mobx";
import FileActionStore from "./FileActionStore";
class SelectedFolderStore {
@ -18,6 +18,7 @@ class SelectedFolderStore {
updatedBy = null;
rootFolderType = null;
pathParts = [];
providerItem = null;
constructor() {
makeObservable(this, {
@ -37,6 +38,9 @@ class SelectedFolderStore {
updatedBy: observable,
rootFolderType: observable,
pathParts: observable,
providerItem: observable,
isRootFolder: computed,
setSelectedFolder: action,
});
@ -44,6 +48,10 @@ class SelectedFolderStore {
this.fileActionStore = new FileActionStore();
}
get isRootFolder() {
return this.pathParts && this.pathParts.length <= 1;
}
setSelectedFolder = (selectedFolder) => {
const selectedFolderItems = Object.keys(selectedFolder);
for (let key of selectedFolderItems) {

View File

@ -0,0 +1,96 @@
import { makeObservable, action, observable } from "mobx";
import { api } from "asc-web-common";
import axios from "axios";
class SettingsTreeStore {
settingsTree = {};
constructor() {
makeObservable(this, {
settingsTree: observable,
getFilesSettings: action,
setExpandSettingsTree: action,
});
}
setFilesSettings = (settings) => {
const settingsItems = Object.keys(settings);
for (let key of settingsItems) {
this.settingsTree[key] = settings[key];
}
//forceSave: forcesave,
//storeForceSave: storeForcesave,
};
setIsErrorSettings = (isError) => {
this.settingsTree.isErrorSettings = isError;
};
setExpandSettingsTree = (expandedSetting) => {
this.settingsTree.expandedSetting = expandedSetting;
};
getFilesSettings = () => {
if (Object.keys(this.settingsTree).length === 0) {
return api.files
.getSettingsFiles()
.then((settings) => {
this.setFilesSettings(settings);
if (settings.enableThirdParty) {
return axios
.all([
api.files.getThirdPartyCapabilities(),
api.files.getThirdPartyList(),
])
.then(([capabilities, providers]) => {
for (let item of capabilities) {
item.splice(1, 1);
}
//setThirdPartyCapabilities(capabilities);
//setThirdPartyProviders(providers);
});
}
})
.catch(() => this.setIsErrorSettings(true));
} else {
return Promise.resolve(this.settingsTree);
}
};
setFilesSetting = (setting, val) => {
this.settingsTree[setting] = val;
};
setUpdateIfExist = (data, setting) =>
api.files
.updateIfExist(data)
.then((res) => this.setFilesSetting(setting, res));
setStoreOriginal = (data, setting) =>
api.files
.storeOriginal(data)
.then((res) => this.setFilesSetting(setting, res));
setConfirmDelete = (data, setting) =>
api.files
.changeDeleteConfirm(data)
.then((res) => this.setFilesSetting(setting, res));
setStoreForceSave = (data, setting) =>
api.files
.storeForceSave(data)
.then((res) => this.setFilesSetting(setting, res));
setEnableThirdParty = (data, setting) =>
api.files
.thirdParty(data)
.then((res) => this.setFilesSetting(setting, res));
setForceSave = (data, setting) =>
api.files.forceSave(data).then((res) => this.setFilesSetting(setting, res));
}
export default SettingsTreeStore;

View File

@ -0,0 +1,177 @@
import { makeObservable, action, observable, computed } from "mobx";
import { api } from "asc-web-common";
class ThirdPartyStore {
capabilities = [];
providers = [];
connectItem = null;
showThirdPartyPanel = false; //TODO: move to panel?
constructor() {
makeObservable(this, {
capabilities: observable,
providers: observable,
connectItem: observable,
googleConnectItem: computed,
boxConnectItem: computed,
dropboxConnectItem: computed,
oneDriveConnectItem: computed,
sharePointConnectItem: computed,
kDriveConnectItem: computed,
yandexConnectItem: computed,
webDavConnectItem: computed,
nextCloudConnectItem: computed,
ownCloudConnectItem: computed,
setThirdPartyProviders: action,
fetchThirdPartyProviders: action,
deleteThirdParty: action,
setConnectItem: action,
setShowThirdPartyPanel: action,
getOAuthToken: action,
openConnectWindow: action,
});
}
setThirdPartyProviders = (providers) => {
this.providers = providers;
};
deleteThirdParty = (id) => api.files.deleteThirdParty(id);
setConnectItem = (connectItem) => {
this.connectItem = connectItem;
};
setShowThirdPartyPanel = (showThirdPartyPanel) => {
this.showThirdPartyPanel = showThirdPartyPanel;
};
fetchThirdPartyProviders = async () => {
this.providers = await api.files.getThirdPartyList();
};
saveThirdParty = (
url,
login,
password,
token,
isCorporate,
customerTitle,
providerKey,
providerId
) =>
api.files.saveThirdParty(
url,
login,
password,
token,
isCorporate,
customerTitle,
providerKey,
providerId
);
getOAuthToken = () => {
return new Promise((resolve) => {
localStorage.removeItem("code");
const interval = setInterval(() => {
try {
const code = localStorage.getItem("code");
if (code) {
localStorage.removeItem("code");
clearInterval(interval);
resolve(code);
}
} catch {
return;
}
}, 500);
});
};
convertServiceName = (serviceName) => {
//Docusign, OneDrive, Wordpress
switch (serviceName) {
case "GoogleDrive":
return "google";
case "Box":
return "box";
case "DropboxV2":
return "dropbox";
case "OneDrive":
return "onedrive";
default:
return "";
}
};
oAuthPopup = (url, modal) => {
let newWindow = modal;
if (modal) {
newWindow.location = url;
}
try {
let params =
"height=600,width=1020,resizable=0,status=0,toolbar=0,menubar=0,location=1";
newWindow = modal ? newWindow : window.open(url, "Authorization", params);
} catch (err) {
newWindow = modal ? newWindow : window.open(url, "Authorization");
}
return newWindow;
};
openConnectWindow = (serviceName, modal) => {
const service = this.convertServiceName(serviceName);
return api.files.openConnectWindow(service).then((link) => {
return this.oAuthPopup(link, modal);
});
};
get googleConnectItem() {
return this.capabilities.find((x) => x[0] === "GoogleDrive");
}
get boxConnectItem() {
return this.capabilities.find((x) => x[0] === "Box");
}
get dropboxConnectItem() {
return this.capabilities.find((x) => x[0] === "DropboxV2");
}
get oneDriveConnectItem() {
return this.capabilities.find((x) => x[0] === "OneDrive");
}
get sharePointConnectItem() {
return this.capabilities.find((x) => x[0] === "SharePoint");
}
get kDriveConnectItem() {
return this.capabilities.find((x) => x[0] === "kDrive");
}
get yandexConnectItem() {
return this.capabilities.find((x) => x[0] === "Yandex");
}
get webDavConnectItem() {
return this.capabilities.find((x) => x[0] === "WebDav");
}
// TODO: remove WebDav get NextCloud
get nextCloudConnectItem() {
return this.capabilities.find((x) => x[0] === "WebDav");
}
// TODO:remove WebDav get OwnCloud
get ownCloudConnectItem() {
return this.capabilities.find((x) => x[0] === "WebDav");
}
}
export default ThirdPartyStore;

View File

@ -160,22 +160,22 @@ class TreeFoldersStore {
this.selectedFolderStore.id === this.recycleBinFolder.id
);
}
get operationsFolders() {
if (this.isPrivacyFolder) {
return this.treeFolders.filter(
(folder) => folder.rootFolderType === FolderType.Privacy && folder
);
} else {
return this.treeFolders.filter(
(folder) =>
(folder.rootFolderType === FolderType.USER ||
folder.rootFolderType === FolderType.COMMON ||
folder.rootFolderType === FolderType.Projects) &&
folder
);
}
}
}
export default TreeFoldersStore;
/*
export const getMyDirectoryFolders = createSelector(getMyFolder, (myFolder) => {
if (myFolder) return myFolder.folders;
});
export const getCommonDirectoryFolders = createSelector(
getCommonFolder,
(commonFolder) => {
if (commonFolder) return commonFolder.folders;
}
);
*/

View File

@ -1,4 +1,6 @@
import { makeObservable, action, observable } from "mobx";
import { api } from "asc-web-common";
import uniqueid from "lodash/uniqueId";
class UploadDataStore {
files = [];
@ -11,6 +13,9 @@ class UploadDataStore {
percent = 0;
uploaded = true;
uploadPanelVisible = false;
convertDialogVisible = false;
selectedUploadFile = [];
constructor() {
@ -25,31 +30,240 @@ class UploadDataStore {
percent: observable,
uploaded: observable,
selectedUploadFile: observable,
uploadPanelVisible: observable,
convertDialogVisible: observable,
selectUploadedFile: action,
setUploadPanelVisible: action,
clearUploadData: action,
cancelUpload: action,
setUploadData: action,
updateUploadedItem: action,
setConvertDialogVisible: action,
});
}
/*export function setUploadData(uploadData) {
return {
type: SET_UPLOAD_DATA,
uploadData,
};
}*/
/*
export function updateUploadedFile(id, info) {
return {
type: UPDATE_UPLOADED_FILE,
id,
info,
};
}
*/
selectUploadedFile = (file) => {
this.selectedUploadFile = file;
};
setUploadPanelVisible = (uploadPanelVisible) => {
this.uploadPanelVisible = uploadPanelVisible;
};
setUploadData = (uploadData) => {
const uploadDataItems = Object.keys(uploadData);
for (let key of uploadDataItems) {
if (key in this) {
this[key] = uploadData[key];
}
}
};
updateUploadedFile = (id, info) => {
const files = this.files.map((file) =>
file.fileId === id ? { ...file, fileInfo: info } : file
);
this.files = files;
};
updateUploadedItem = async (id) => {
const uploadedFileData = await api.files.getFileInfo(id);
this.updateUploadedFile(id, uploadedFileData);
};
clearUploadData = () => {
this.files = [];
this.filesSize = 0;
this.uploadStatus = null;
this.uploadedFiles = 0;
this.percent = 0;
this.uploaded = true;
};
getUploadedFile = (id) => {
return this.files.filter((f) => f.uniqueId === id);
};
cancelUpload = () => {
let newFiles = [];
for (let i = 0; i < this.files.length; i++) {
if (this.files[i].fileId) {
newFiles.push(this.files[i]);
}
}
const newUploadData = {
files: newFiles,
filesSize: this.filesSize,
uploadedFiles: this.uploadedFiles,
percent: 100,
uploaded: true,
};
if (newUploadData.files.length === 0) this.setUploadPanelVisible(false);
this.setUploadData(newUploadData);
};
cancelCurrentUpload = (id) => {
const newFiles = this.files.filter((el) => el.uniqueId !== id);
const newUploadData = {
files: newFiles,
filesSize: this.filesSize,
uploadedFiles: this.uploadedFiles,
percent: this.percent,
uploaded: false,
};
this.setUploadData(newUploadData);
};
setConvertDialogVisible = (convertDialogVisible) => {
this.convertDialogVisible = convertDialogVisible;
};
setDialogVisible = (t) => {
/*return (dispatch, getState) => {
const { uploadData } = getState().files;
const { files, uploadStatus, uploadedFiles, percent } = uploadData;
this.setConvertDialogVisible(false);
const label = t("UploadingLabel", {
file: uploadedFiles,
totalFiles: files.length,
});
if (uploadStatus === null) {
dispatch(
setPrimaryProgressBarData({
icon: "upload",
label,
percent: 100,
visible: true,
alert: false,
})
);
uploadData.uploadedFiles = 0;
uploadData.percent = 0;
dispatch(setUploadData(uploadData));
} else if (!files.length) {
dispatch(clearPrimaryProgressData());
} else {
dispatch(
setPrimaryProgressBarData({
icon: "upload",
label,
percent,
visible: true,
alert: false,
})
);
uploadData.uploadStatus = "cancel";
dispatch(setUploadData(uploadData));
}
};*/
};
convertUploadedFiles = (t) => {
/*return (dispatch, getState) => {
const state = getState();
const { uploadData } = state.files;
const filesToConvert = getFilesToConvert(uploadData.files);
if (filesToConvert.length > 0) {
startConvertFiles(filesToConvert, t, dispatch, getState).then(() =>
finishUploadFiles(getState, dispatch)
);
} else {
finishUploadFiles(getState, dispatch);
}
};*/
};
startUpload = (uploadFiles, folderId, t) => {
/*let newFiles = this.files;
let filesSize = 0;
for (let index of Object.keys(uploadFiles)) {
const file = uploadFiles[index];
const parts = file.name.split(".");
const ext = parts.length > 1 ? "." + parts.pop() : "";
const needConvert = canConvert(ext)(state);
newFiles.push({
file: file,
uniqueId: uniqueid("download_row-key_"),
fileId: null,
toFolderId: folderId,
action: needConvert ? "convert" : "upload",
error: file.size ? null : t("EmptyFile"),
fileInfo: null,
cancel: false,
});
filesSize += file.size;
}
//const showConvertDialog = uploadStatus === "pending";
const newUploadData = {
files: newFiles,
filesSize,
uploadedFiles: this.uploadedFiles,
percent: this.percent,
uploaded: false,
};
this.setUploadData(newUploadData);
if (this.uploaded) {
startUploadFiles(t, dispatch, getState);
}*/
};
// startUploadFiles = async (t, dispatch, getState) => {
// let state = getState();
// let { files, percent, filesSize } = state.files.uploadData;
// if (files.length === 0 || filesSize === 0)
// return finishUploadFiles(getState, dispatch);
// const progressData = {
// visible: true,
// percent,
// icon: "upload",
// alert: false,
// };
// dispatch(setPrimaryProgressBarData(progressData));
// let index = 0;
// let len = files.length;
// while (index < len) {
// await startSessionFunc(index, t, dispatch, getState);
// index++;
// state = getState();
// files = state.files.uploadData.files;
// len = files.length;
// }
// //TODO: Uncomment after fix conversation
// /*const filesToConvert = getFilesToConvert(files);
// if (filesToConvert.length > 0) {
// // Ask to convert options
// return dispatch(setConvertDialogVisible(true));
// }*/
// // All files has been uploaded and nothing to convert
// finishUploadFiles(getState, dispatch);
// };
}
export default UploadDataStore;

View File

@ -15,6 +15,9 @@ class VersionHistoryStore {
setIsVerHistoryPanel: action,
setVerHistoryFileId: action,
setVerHistoryFileVersions: action,
markAsVersion: action,
restoreVersion: action,
updateCommentVersion: action,
});
}
@ -41,6 +44,35 @@ class VersionHistoryStore {
return Promise.resolve(this.versions);
}
};
markAsVersion = (id, isVersion, version) => {
return api.files
.markAsVersion(id, isVersion, version)
.then((versions) => this.setVerHistoryFileVersions(versions));
};
restoreVersion = (id, version) => {
return api.files.versionRestore(id, version).then((newVersion) => {
const updatedVersions = this.versions.slice();
updatedVersions.splice(1, 0, newVersion);
this.setVerHistoryFileVersions(updatedVersions);
});
};
updateCommentVersion = (id, comment, version) => {
return api.files
.versionEditComment(id, comment, version)
.then((updatedComment) => {
const copyVersions = this.versions.slice();
const updatedVersions = copyVersions.map((item) => {
if (item.version === version) {
item.comment = updatedComment;
}
return item;
});
this.setVerHistoryFileVersions(updatedVersions);
});
};
}
export default VersionHistoryStore;

File diff suppressed because it is too large Load Diff

View File

@ -5,14 +5,14 @@ import {
SET_FILES,
SET_FILTER,
SET_VIEW_AS,
SET_FOLDER,
//SET_FOLDER,
SET_FOLDERS,
SET_TREE_FOLDERS,
SET_SELECTED_FOLDER,
SET_SELECTED,
SET_SELECTION,
SELECT_FILE,
DESELECT_FILE,
//SELECT_FILE,
//DESELECT_FILE,
SET_DRAGGING,
SET_DRAG_ITEM,
SET_MEDIA_VIEWER_VISIBLE,
@ -21,30 +21,32 @@ import {
SET_CONVERT_DIALOG_VISIBLE,
SET_SHARING_PANEL_VISIBLE,
SET_UPLOAD_PANEL_VISIBLE,
SET_UPDATE_TREE,
SET_NEW_ROW_ITEMS,
//SET_UPDATE_TREE,
//SET_NEW_ROW_ITEMS,
SET_SELECTED_NODE,
SET_EXPAND_SETTINGS_TREE,
//SET_EXPAND_SETTINGS_TREE,
SET_IS_LOADING,
SET_THIRD_PARTY,
SET_FILES_SETTINGS,
SET_FILES_SETTING,
SET_IS_ERROR_SETTINGS,
//SET_FILES_SETTING,
//SET_IS_ERROR_SETTINGS,
SET_FIRST_LOAD,
SET_UPLOAD_DATA,
SET_THIRDPARTY_CAPABILITIES,
SET_THIRDPARTY_PROVIDERS,
SET_CONNECT_ITEM,
//SET_THIRDPARTY_CAPABILITIES,
//SET_THIRDPARTY_PROVIDERS,
//SET_CONNECT_ITEM,
SET_SHOW_THIRDPARTY_PANEL,
SET_IS_VER_HISTORY_PANEL,
SET_VER_HISTORY_FILE_ID,
SET_FILE_VERSIONS,
//SET_FILE_VERSIONS,
SET_CHANGE_OWNER_VISIBLE,
SELECT_UPLOADED_FILE,
UPDATE_UPLOADED_FILE,
} from "./actions";
import { api } from "asc-web-common";
import { isFileSelected, skipFile, getFilesBySelected } from "./selectors";
import {
/* isFileSelected, skipFile, */ getFilesBySelected,
} from "./selectors";
const { FilesFilter } = api;
const initialState = {
@ -79,8 +81,8 @@ const initialState = {
convertDialogVisible: false,
sharingPanelVisible: false,
uploadPanelVisible: false,
updateTree: false,
newRowItems: [],
//updateTree: false,
//newRowItems: [],
selectedTreeNode: [],
isLoading: false,
firstLoad: true,
@ -400,26 +402,26 @@ const initialState = {
],
},
privacyInstructions: "https://www.onlyoffice.com/private-rooms.aspx",
capabilities: [],
providers: [],
connectItem: null,
showThirdPartyPanel: false,
versionHistory: {
isVisible: false,
fileId: null,
versions: null,
},
//capabilities: [],
//providers: [],
//connectItem: null,
//showThirdPartyPanel: false,
// versionHistory: {
// isVisible: false,
// fileId: null,
// versions: null,
// },
ownerPanelVisible: false,
};
const filesReducer = (state = initialState, action) => {
switch (action.type) {
case SET_FOLDER:
return Object.assign({}, state, {
folders: state.folders.map((folder) =>
folder.id === action.folder.id ? action.folder : folder
),
});
// case SET_FOLDER:
// return Object.assign({}, state, {
// folders: state.folders.map((folder) =>
// folder.id === action.folder.id ? action.folder : folder
// ),
// });
case SET_FOLDERS:
return Object.assign({}, state, {
folders: action.folders,
@ -466,22 +468,22 @@ const filesReducer = (state = initialState, action) => {
return Object.assign({}, state, {
filter: action.filter,
});
case SELECT_FILE:
if (
!isFileSelected(state.selection, action.file.id, action.file.parentId)
) {
return Object.assign({}, state, {
selection: [...state.selection, action.file],
});
} else return state;
case DESELECT_FILE:
if (
isFileSelected(state.selection, action.file.id, action.file.parentId)
) {
return Object.assign({}, state, {
selection: skipFile(state.selection, action.file.id),
});
} else return state;
// case SELECT_FILE:
// if (
// !isFileSelected(state.selection, action.file.id, action.file.parentId)
// ) {
// return Object.assign({}, state, {
// selection: [...state.selection, action.file],
// });
// } else return state;
// case DESELECT_FILE:
// if (
// isFileSelected(state.selection, action.file.id, action.file.parentId)
// ) {
// return Object.assign({}, state, {
// selection: skipFile(state.selection, action.file.id),
// });
// } else return state;
case SET_ACTION:
return Object.assign({}, state, {
fileAction: action.fileAction,
@ -518,14 +520,14 @@ const filesReducer = (state = initialState, action) => {
return Object.assign({}, state, {
uploadPanelVisible: action.uploadPanelVisible,
});
case SET_UPDATE_TREE:
return Object.assign({}, state, {
updateTree: action.updateTree,
});
case SET_NEW_ROW_ITEMS:
return Object.assign({}, state, {
newRowItems: action.newRowItems,
});
// case SET_UPDATE_TREE:
// return Object.assign({}, state, {
// updateTree: action.updateTree,
// });
// case SET_NEW_ROW_ITEMS:
// return Object.assign({}, state, {
// newRowItems: action.newRowItems,
// });
case SET_SELECTED_NODE:
if (action.node[0]) {
return Object.assign({}, state, {
@ -534,13 +536,13 @@ const filesReducer = (state = initialState, action) => {
} else {
return state;
}
case SET_EXPAND_SETTINGS_TREE:
return Object.assign({}, state, {
settingsTree: {
...state.settingsTree,
expandedSetting: action.setting,
},
});
// case SET_EXPAND_SETTINGS_TREE:
// return Object.assign({}, state, {
// settingsTree: {
// ...state.settingsTree,
// expandedSetting: action.setting,
// },
// });
case SET_IS_LOADING:
return Object.assign({}, state, {
isLoading: action.isLoading,
@ -569,21 +571,21 @@ const filesReducer = (state = initialState, action) => {
enableThirdParty,
},
});
case SET_FILES_SETTING:
const { setting, val } = action;
return Object.assign({}, state, {
settingsTree: {
...state.settingsTree,
[setting]: val,
},
});
case SET_IS_ERROR_SETTINGS:
return Object.assign({}, state, {
settingsTree: {
...state.settingsTree,
isErrorSettings: action.isError,
},
});
// case SET_FILES_SETTING:
// const { setting, val } = action;
// return Object.assign({}, state, {
// settingsTree: {
// ...state.settingsTree,
// [setting]: val,
// },
// });
// case SET_IS_ERROR_SETTINGS:
// return Object.assign({}, state, {
// settingsTree: {
// ...state.settingsTree,
// isErrorSettings: action.isError,
// },
// });
case SET_FIRST_LOAD:
return Object.assign({}, state, {
firstLoad: action.firstLoad,
@ -592,18 +594,18 @@ const filesReducer = (state = initialState, action) => {
return Object.assign({}, state, {
uploadData: action.uploadData,
});
case SET_THIRDPARTY_CAPABILITIES:
return Object.assign({}, state, {
capabilities: action.capabilities,
});
case SET_THIRDPARTY_PROVIDERS:
return Object.assign({}, state, {
providers: action.providers,
});
case SET_CONNECT_ITEM:
return Object.assign({}, state, {
connectItem: action.connectItem,
});
// case SET_THIRDPARTY_CAPABILITIES:
// return Object.assign({}, state, {
// capabilities: action.capabilities,
// });
// case SET_THIRDPARTY_PROVIDERS:
// return Object.assign({}, state, {
// providers: action.providers,
// });
// case SET_CONNECT_ITEM:
// return Object.assign({}, state, {
// connectItem: action.connectItem,
// });
case SET_SHOW_THIRDPARTY_PANEL:
return Object.assign({}, state, {
showThirdPartyPanel: action.showThirdPartyPanel,
@ -624,14 +626,14 @@ const filesReducer = (state = initialState, action) => {
},
});
}
case SET_FILE_VERSIONS: {
return Object.assign({}, state, {
versionHistory: {
...state.versionHistory,
versions: action.versions,
},
});
}
// case SET_FILE_VERSIONS: {
// return Object.assign({}, state, {
// versionHistory: {
// ...state.versionHistory,
// versions: action.versions,
// },
// });
// }
case SET_CHANGE_OWNER_VISIBLE: {
return Object.assign({}, state, {
ownerPanelVisible: action.ownerPanelVisible,

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,7 @@ import history from "../history";
import ModuleStore from "./ModuleStore";
import SettingsStore from "./SettingsStore";
import UserStore from "./UserStore";
import { logout as logoutDesktop } from "../desktop";
import { logout as logoutDesktop, desktopConstants } from "../desktop";
class AuthStore {
userStore = null;
@ -36,6 +36,9 @@ class AuthStore {
setUserStore: action,
setModuleStore: action,
setSettingsStore: action,
replaceFileStream: action,
getEncryptionAccess: action,
setEncryptionAccess: action,
});
}
@ -169,6 +172,48 @@ class AuthStore {
setSettingsStore = (store) => {
this.settingsStore = store;
};
getEncryptionAccess = (fileId) => {
return api.files
.getEncryptionAccess(fileId)
.then((keys) => {
return Promise.resolve(keys);
})
.catch((err) => console.error(err));
};
replaceFileStream = (fileId, file, encrypted, forcesave) => {
return api.files.updateFileStream(file, fileId, encrypted, forcesave);
};
setEncryptionAccess = (file) => {
return this.getEncryptionAccess(file.id).then((keys) => {
let promise = new Promise((resolve, reject) => {
try {
window.AscDesktopEditor.cloudCryptoCommand(
"share",
{
cryptoEngineId: desktopConstants.guid,
file: [file.viewUrl],
keys: keys,
},
(obj) => {
let file = null;
if (obj.isCrypto) {
let bytes = obj.bytes;
let filename = "temp_name";
file = new File([bytes], filename);
}
resolve(file);
}
);
} catch (e) {
reject(e);
}
});
return promise;
});
};
}
export default new AuthStore();

View File

@ -292,14 +292,14 @@ export function getEncryptionKeys(dispatch) {
.catch((err) => console.error(err));
}
export function getEncryptionAccess(fileId) {
return api.files
.getEncryptionAccess(fileId)
.then((keys) => {
return Promise.resolve(keys);
})
.catch((err) => console.error(err));
}
// export function getEncryptionAccess(fileId) {
// return api.files
// .getEncryptionAccess(fileId)
// .then((keys) => {
// return Promise.resolve(keys);
// })
// .catch((err) => console.error(err));
// }
export function getIsEncryptionSupport(dispatch) {
return api.files
@ -308,8 +308,8 @@ export function getIsEncryptionSupport(dispatch) {
.catch((err) => console.error(err));
}
export function replaceFileStream(fileId, file, encrypted, forcesave) {
return (dispatch) => {
return api.files.updateFileStream(file, fileId, encrypted, forcesave);
};
}
// export function replaceFileStream(fileId, file, encrypted, forcesave) {
// return (dispatch) => {
// return api.files.updateFileStream(file, fileId, encrypted, forcesave);
// };
// }