Merge branch 'feature/thirdparty-integrations' of https://github.com/ONLYOFFICE/CommunityServer-AspNetCore into feature/thirdparty-integrations
This commit is contained in:
commit
dcccb1180f
@ -14,10 +14,11 @@ import {
|
||||
getWebDavConnect,
|
||||
} from "../../../store/files/selectors";
|
||||
import {
|
||||
getOAuthToken,
|
||||
openConnectWindow,
|
||||
setConnectItem,
|
||||
setSelectedNode,
|
||||
setSelectedFolder,
|
||||
setSelectedNode,
|
||||
setShowThirdPartyPanel,
|
||||
} from "../../../store/files/actions";
|
||||
|
||||
@ -128,37 +129,20 @@ const PureThirdPartyListContainer = ({
|
||||
}
|
||||
};
|
||||
|
||||
const getOAuthToken = (modal, serviceData) => {
|
||||
let t = setInterval(() => {
|
||||
try {
|
||||
if (modal.json) {
|
||||
clearInterval(t);
|
||||
const token = modal.json.response;
|
||||
if (token) {
|
||||
modal.close();
|
||||
|
||||
const data = {
|
||||
title: serviceData.title,
|
||||
provider_key: serviceData.title,
|
||||
link: serviceData.link,
|
||||
token,
|
||||
};
|
||||
|
||||
setConnectItem(data);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
const onConnect = (e) => {
|
||||
const data = e.currentTarget.dataset;
|
||||
|
||||
data.link
|
||||
? openConnectWindow(data.title).then((modal) =>
|
||||
getOAuthToken(modal, data)
|
||||
getOAuthToken(modal).then((token) => {
|
||||
const serviceData = {
|
||||
title: data.title,
|
||||
provider_key: data.title,
|
||||
link: data.link,
|
||||
token,
|
||||
};
|
||||
setConnectItem(serviceData);
|
||||
})
|
||||
)
|
||||
: setConnectItem(data);
|
||||
|
||||
|
@ -11,15 +11,16 @@ import {
|
||||
} from "asc-web-components";
|
||||
import { utils as commonUtils, toastr } from "asc-web-common";
|
||||
import {
|
||||
saveThirdParty,
|
||||
openConnectWindow,
|
||||
fetchFiles,
|
||||
setUpdateTree,
|
||||
setTreeFolders,
|
||||
fetchThirdPartyProviders,
|
||||
fetchTreeFolders,
|
||||
getOAuthToken,
|
||||
openConnectWindow,
|
||||
saveThirdParty,
|
||||
setIsLoading,
|
||||
setSelectedNode,
|
||||
setTreeFolders,
|
||||
setUpdateTree,
|
||||
} from "../../../store/files/actions";
|
||||
import {
|
||||
getTreeFolders,
|
||||
@ -90,6 +91,7 @@ const PureConnectDialogContainer = (props) => {
|
||||
const [passwordValue, setPasswordValue] = useState("");
|
||||
const [customerTitle, setCustomerTitleValue] = useState(title);
|
||||
const [isCorporate, setMakeShared] = useState(!!corporate);
|
||||
const [oAuthToken, setToken] = useState(token);
|
||||
|
||||
const onChangeUrl = (e) => setUrlValue(e.target.value);
|
||||
const onChangeLogin = (e) => setLoginValue(e.target.value);
|
||||
@ -104,7 +106,7 @@ const PureConnectDialogContainer = (props) => {
|
||||
urlValue,
|
||||
loginValue,
|
||||
passwordValue,
|
||||
token,
|
||||
oAuthToken,
|
||||
isCorporate,
|
||||
customerTitle,
|
||||
provider_key,
|
||||
@ -131,7 +133,9 @@ const PureConnectDialogContainer = (props) => {
|
||||
};
|
||||
|
||||
const onReconnect = () => {
|
||||
openConnectWindow(title);
|
||||
openConnectWindow(title).then((modal) =>
|
||||
getOAuthToken(modal).then((token) => setToken(token))
|
||||
);
|
||||
};
|
||||
|
||||
const isAccount = !!link;
|
||||
|
@ -16,6 +16,7 @@ import EmptyFolderContainer from "../../../Home/Section/Body/EmptyFolderContaine
|
||||
import { createI18N } from "../../../../../helpers/i18n";
|
||||
import { Trans } from "react-i18next";
|
||||
import {
|
||||
getOAuthToken,
|
||||
openConnectWindow,
|
||||
setConnectItem,
|
||||
setShowThirdPartyPanel,
|
||||
@ -145,29 +146,14 @@ class ConnectClouds extends React.Component {
|
||||
});
|
||||
};
|
||||
|
||||
getOAuthToken = (modal, serviceData) => {
|
||||
let t = setInterval(() => {
|
||||
try {
|
||||
if (modal.json) {
|
||||
clearInterval(t);
|
||||
const token = modal.json.response;
|
||||
if (token) {
|
||||
modal.close();
|
||||
this.showOAuthModal(token, serviceData);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
}, 1000);
|
||||
};
|
||||
|
||||
onShowService = (e) => {
|
||||
const selectedServiceData = e.currentTarget.dataset;
|
||||
const showAccountSettingDialog = !e.currentTarget.dataset.link;
|
||||
!showAccountSettingDialog &&
|
||||
openConnectWindow(selectedServiceData.title).then((modal) =>
|
||||
this.getOAuthToken(modal, selectedServiceData)
|
||||
getOAuthToken(modal).then((token) =>
|
||||
this.showOAuthModal(token, selectedServiceData)
|
||||
)
|
||||
);
|
||||
|
||||
this.setState({
|
||||
|
@ -1390,6 +1390,25 @@ const convertServiceName = (serviceName) => {
|
||||
}
|
||||
};
|
||||
|
||||
export function getOAuthToken(modal) {
|
||||
return new Promise((resolve) => {
|
||||
const interval = setInterval(() => {
|
||||
try {
|
||||
if (modal.json) {
|
||||
clearInterval(interval);
|
||||
const token = modal.json.response;
|
||||
if (token) {
|
||||
modal.close();
|
||||
return resolve(token);
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
return;
|
||||
}
|
||||
}, 500);
|
||||
});
|
||||
}
|
||||
|
||||
export function openConnectWindow(serviceName) {
|
||||
const service = convertServiceName(serviceName);
|
||||
return api.files.openConnectWindow(service).then((link) => {
|
||||
|
Loading…
Reference in New Issue
Block a user