Merge branch 'hotfix/v0.1.7' of https://github.com/ONLYOFFICE/AppServer into hotfix/v0.1.7

This commit is contained in:
Nikita Gopienko 2021-04-23 16:16:07 +03:00
commit 70aef7aefa
4 changed files with 61 additions and 32 deletions

View File

@ -154,11 +154,15 @@ class ContextMenuSub extends Component {
<ArrowIcon className={submenuIconClassName} />
);
const submenu = this.renderSubmenu(item);
const dataKeys = Object.fromEntries(
Object.entries(item).filter((el) => el[0].indexOf("data-") === 0)
);
let content = (
<a
href={item.url || "#"}
className={linkClassName}
target={item.target}
{...dataKeys}
onClick={(event) => this.onItemClick(event, item, index)}
role="menuitem"
>

View File

@ -106,10 +106,11 @@ const ThirdPartyDialog = (props) => {
openConnectWindow(item.title, authModal).then((modal) =>
getOAuthToken(modal).then((token) => {
showOAuthModal(token, item);
setConnectItem(item);
setConnectDialogVisible(true);
})
);
} else {
setConnectItem(item);
setConnectDialogVisible(true);
}
setThirdPartyDialogVisible(false);

View File

@ -20,6 +20,10 @@ import WebDavIcon from "../../../../../../public/images/icon_webdav.react.svg";
import YandexDiskIcon from "../../../../../../public/images/icon_yandex_disk.react.svg";
import commonIconsStyles from "@appserver/components/utils/common-icons-style";
import { inject, observer } from "mobx-react";
import combineUrl from "@appserver/common/utils/combineUrl";
import AppServerConfig from "@appserver/common/constants/AppServerConfig";
import config from "../../../../../../package.json";
import { withRouter } from "react-router";
const StyledBoxIcon = styled(BoxIcon)`
${commonIconsStyles}
@ -77,18 +81,21 @@ class ConnectClouds extends React.Component {
};
onDeleteThirdParty = (e) => {
const { id, title } = e.currentTarget.dataset;
const { dataset } = (e.originalEvent || e).currentTarget;
const { id, title } = dataset;
this.props.setDeleteThirdPartyDialogVisible(true);
this.props.setRemoveItem({ id, title });
};
onChangeThirdPartyInfo = (e) => {
const key = e.currentTarget.dataset.key;
const capabilitiesItem = this.props.capabilities.find((x) => x[0] === key);
const providerItem = this.props.providers.find(
(x) => x.provider_key === key
const { dataset } = (e.originalEvent || e).currentTarget;
const { provider_key } = dataset;
const capabilitiesItem = this.props.capabilities.find(
(x) => x[0] === provider_key
);
const providerItem = this.props.providers.find(
(x) => x.provider_key === provider_key
);
const { corporate, provider_id, customer_title } = providerItem;
const item = {
@ -96,7 +103,7 @@ class ConnectClouds extends React.Component {
link: capabilitiesItem ? capabilitiesItem[1] : " ",
corporate: corporate,
provider_id: provider_id,
provider_key: key,
provider_key: provider_key,
};
this.props.setConnectItem(item);
@ -138,10 +145,11 @@ class ConnectClouds extends React.Component {
myDirectoryFolders,
commonDirectoryFolders,
filter,
fetchFiles,
setSelectedNode,
providers,
homepage,
history,
} = this.props;
const provider = e.currentTarget.dataset.providerKey;
const isCorporate =
!!providers.length &&
@ -151,7 +159,35 @@ class ConnectClouds extends React.Component {
.filter((f) => f.providerKey === provider)
.map((f) => f.id)
.join();
return fetchFiles(id, filter).then(() => setSelectedNode([id]));
const newFilter = filter.clone();
newFilter.page = 0;
newFilter.startIndex = 0;
newFilter.folder = id;
const urlFilter = newFilter.toUrlParams();
history.push(
combineUrl(AppServerConfig.proxyURL, homepage, `/filter?${urlFilter}`)
);
};
getContextOptions = (item, index) => {
const { t } = this.props;
return [
{
key: `${index}_change`,
"data-provider_key": item.provider_key,
label: t("ThirdPartyInfo"),
onClick: this.onChangeThirdPartyInfo,
},
{
key: `${index}_delete`,
"data-id": item.provider_id,
"data-title": item.customer_title,
label: t("DeleteThirdParty"),
onClick: this.onDeleteThirdParty,
},
];
};
render() {
@ -174,21 +210,7 @@ class ConnectClouds extends React.Component {
<Row
key={index}
element={element}
contextOptions={[
{
key: `${index}_change`,
"data-key": item.provider_key,
label: t("ThirdPartyInfo"),
onClick: this.onChangeThirdPartyInfo,
},
{
key: `${index}_delete`,
"data-id": item.provider_id,
"data-title": item.customer_title,
label: t("DeleteThirdParty"),
onClick: this.onDeleteThirdParty,
},
]}
contextOptions={this.getContextOptions(item, index)}
>
<Box
containerMinWidth="200px"
@ -258,8 +280,8 @@ class ConnectClouds extends React.Component {
export default inject(
({ filesStore, settingsStore, treeFoldersStore, dialogsStore }) => {
const { providers, capabilities } = settingsStore.thirdPartyStore;
const { fetchFiles, filter } = filesStore;
const { setSelectedNode, myFolder, commonFolder } = treeFoldersStore;
const { filter } = filesStore;
const { myFolder, commonFolder } = treeFoldersStore;
const {
setConnectItem,
setThirdPartyDialogVisible,
@ -275,13 +297,13 @@ export default inject(
myDirectoryFolders: myFolder && myFolder.folders,
commonDirectoryFolders: commonFolder && commonFolder.folders,
fetchFiles,
setSelectedNode,
setThirdPartyDialogVisible,
setConnectDialogVisible,
setConnectItem,
setDeleteThirdPartyDialogVisible,
setRemoveItem,
homepage: config.homepage,
};
}
)(withTranslation("Settings")(observer(ConnectClouds)));
)(withTranslation("Settings")(observer(withRouter(ConnectClouds))));

View File

@ -510,6 +510,8 @@ class FilesStore {
fileOptions = this.removeOptions(fileOptions, [
"open",
"open-location",
"view",
"preview",
"edit",
"link-for-portal-users",
"sharing-settings",