Client: PortalSettings: JavascriptSDK: Added requestToken usage for editor and viewer presets

This commit is contained in:
Ilya Oleshko 2024-03-19 10:50:05 +03:00
parent 5b307ab0bd
commit 6bd07be292
2 changed files with 50 additions and 20 deletions

View File

@ -1,25 +1,25 @@
// (c) Copyright Ascensio System SIA 2010-2024
//
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
@ -69,7 +69,7 @@ import {
} from "./StyledPresets";
const Editor = (props) => {
const { t, setDocumentTitle } = props;
const { t, setDocumentTitle, getFilePrimaryLink } = props;
setDocumentTitle(t("JavascriptSdk"));
@ -148,9 +148,22 @@ const Editor = (props) => {
setHeight(e.target.value);
};
const onChangeFileId = (file) => {
const onChangeFileId = async (file) => {
const newConfig = {
id: file.id,
init: true,
requestToken: null,
};
if (file.inPublic) {
const link = await getFilePrimaryLink(file.id);
const { requestToken } = link.sharedTo;
newConfig.requestToken = requestToken;
}
setConfig((config) => {
return { ...config, id: file.id, init: true };
return { ...config, ...newConfig };
});
};
@ -391,13 +404,15 @@ const Editor = (props) => {
);
};
export default inject(({ authStore, settingsStore }) => {
export default inject(({ authStore, settingsStore, filesStore }) => {
const { setDocumentTitle } = authStore;
const { theme } = settingsStore;
const { getFilePrimaryLink } = filesStore;
return {
theme,
setDocumentTitle,
getFilePrimaryLink,
};
})(
withTranslation(["JavascriptSdk", "Files", "EmbeddingPanel", "Common"])(

View File

@ -1,25 +1,25 @@
// (c) Copyright Ascensio System SIA 2010-2024
//
//
// This program is a free software product.
// You can redistribute it and/or modify it under the terms
// of the GNU Affero General Public License (AGPL) version 3 as published by the Free Software
// Foundation. In accordance with Section 7(a) of the GNU AGPL its Section 15 shall be amended
// to the effect that Ascensio System SIA expressly excludes the warranty of non-infringement of
// any third-party rights.
//
//
// This program is distributed WITHOUT ANY WARRANTY, without even the implied warranty
// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, see
// the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
//
//
// You can contact Ascensio System SIA at Lubanas st. 125a-25, Riga, Latvia, EU, LV-1021.
//
//
// The interactive user interfaces in modified source and object code versions of the Program must
// display Appropriate Legal Notices, as required under Section 5 of the GNU AGPL version 3.
//
//
// Pursuant to Section 7(b) of the License you must retain the original Product logo when
// distributing the program. Pursuant to Section 7(e) we decline to grant you any rights under
// trademark law for use of our trademarks.
//
//
// All the Product's GUI elements, including illustrations and icon sets, as well as technical writing
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
@ -71,7 +71,7 @@ import {
} from "./StyledPresets";
const Viewer = (props) => {
const { t, setDocumentTitle } = props;
const { t, setDocumentTitle, getFilePrimaryLink } = props;
setDocumentTitle(t("JavascriptSdk"));
@ -151,9 +151,22 @@ const Viewer = (props) => {
setHeight(e.target.value);
};
const onChangeFileId = (file) => {
const onChangeFileId = async (file) => {
const newConfig = {
id: file.id,
init: true,
requestToken: null,
};
if (file.inPublic) {
const link = await getFilePrimaryLink(file.id);
const { requestToken } = link.sharedTo;
newConfig.requestToken = requestToken;
}
setConfig((config) => {
return { ...config, id: file.id, init: true };
return { ...config, ...newConfig };
});
};
@ -433,13 +446,15 @@ const Viewer = (props) => {
);
};
export default inject(({ authStore, settingsStore }) => {
export default inject(({ authStore, settingsStore, filesStore }) => {
const { setDocumentTitle } = authStore;
const { theme } = settingsStore;
const { getFilePrimaryLink } = filesStore;
return {
theme,
setDocumentTitle,
getFilePrimaryLink,
};
})(
withTranslation([