Web: Files: removed redux provider from files
This commit is contained in:
parent
b8db0ea2a5
commit
68910bfa04
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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)));
|
||||
|
@ -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)));
|
||||
|
@ -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));
|
||||
|
@ -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)));
|
||||
|
@ -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)));
|
||||
|
@ -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)))
|
||||
);
|
||||
|
@ -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)));
|
||||
|
@ -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,
|
||||
|
@ -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)));
|
||||
|
@ -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))));
|
||||
|
@ -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))));
|
||||
|
@ -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))));
|
||||
|
@ -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))))
|
||||
);
|
||||
|
@ -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))));
|
||||
|
@ -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)));
|
||||
|
@ -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)));
|
||||
|
@ -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));
|
||||
|
@ -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)));
|
||||
|
@ -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))));
|
||||
|
@ -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)));
|
||||
|
@ -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)));
|
||||
|
@ -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)));
|
||||
|
@ -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)));
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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));
|
||||
|
@ -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;
|
||||
// });
|
||||
// }
|
||||
|
@ -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")
|
||||
);
|
||||
|
||||
|
@ -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;
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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 {
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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) {
|
||||
|
96
products/ASC.Files/Client/src/store/SettingsTreeStore.js
Normal file
96
products/ASC.Files/Client/src/store/SettingsTreeStore.js
Normal 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;
|
177
products/ASC.Files/Client/src/store/ThirdPartyStore.js
Normal file
177
products/ASC.Files/Client/src/store/ThirdPartyStore.js
Normal 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;
|
@ -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;
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
*/
|
||||
|
@ -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;
|
||||
|
@ -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
@ -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
@ -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();
|
||||
|
@ -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);
|
||||
// };
|
||||
// }
|
||||
|
Loading…
Reference in New Issue
Block a user