From 9dcff71504cafeae8a1d6432dbfa758830ec1909 Mon Sep 17 00:00:00 2001 From: Artem Tarasov Date: Mon, 25 Jul 2022 14:52:18 +0300 Subject: [PATCH] Web: Doceditor/Client: fixed share settings request (ssr) --- .../Client/src/components/panels/SharingDialog/index.js | 5 ++++- web/ASC.Web.Editor/src/client/helpers/withDialogs.js | 4 ++-- web/ASC.Web.Editor/src/server/lib/helpers/index.js | 8 +++++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/products/ASC.Files/Client/src/components/panels/SharingDialog/index.js b/products/ASC.Files/Client/src/components/panels/SharingDialog/index.js index b98d54cde3..58f8745e72 100644 --- a/products/ASC.Files/Client/src/components/panels/SharingDialog/index.js +++ b/products/ASC.Files/Client/src/components/panels/SharingDialog/index.js @@ -55,7 +55,10 @@ const SharingDialogWrapper = inject(({ dialogsStore, filesStore }) => { })(observer(SharingDialog)); class SharingModal extends React.Component { - static getSharingSettings = (fileId) => { + static getSharingSettings = (fileId, sharingSettings = null) => { + if (sharingSettings) + return Promise.resolve(SharingPanel.convertSharingUsers(sharingSettings)); + return getShareFiles([+fileId], []).then((users) => SharingPanel.convertSharingUsers(users) ); diff --git a/web/ASC.Web.Editor/src/client/helpers/withDialogs.js b/web/ASC.Web.Editor/src/client/helpers/withDialogs.js index a23f92e016..e1fb5c2f26 100644 --- a/web/ASC.Web.Editor/src/client/helpers/withDialogs.js +++ b/web/ASC.Web.Editor/src/client/helpers/withDialogs.js @@ -29,7 +29,7 @@ const withDialogs = (WrappedComponent) => { const { t } = useTranslation(["Editor", "Common"]); - const { config, fileId, mfReady } = props; + const { config, fileId, mfReady, sharingSettings } = props; const { file: fileInfo } = config; useEffect(() => { @@ -60,7 +60,7 @@ const withDialogs = (WrappedComponent) => { }; const loadUsersRightsList = () => { - window.SharingDialog.getSharingSettings(fileId).then( + window.SharingDialog.getSharingSettings(fileId, sharingSettings).then( (sharingSettings) => { window.docEditor.setSharingSettings({ sharingSettings, diff --git a/web/ASC.Web.Editor/src/server/lib/helpers/index.js b/web/ASC.Web.Editor/src/server/lib/helpers/index.js index 8563514724..61f442ab73 100644 --- a/web/ASC.Web.Editor/src/server/lib/helpers/index.js +++ b/web/ASC.Web.Editor/src/server/lib/helpers/index.js @@ -5,7 +5,11 @@ import { getUser } from "@appserver/common/api/people"; import { getSettings } from "@appserver/common/api/settings"; import combineUrl from "@appserver/common/utils/combineUrl"; import { AppServerConfig } from "@appserver/common/constants"; -import { openEdit, getSettingsFiles } from "@appserver/common/api/files"; +import { + openEdit, + getSettingsFiles, + getShareFiles, +} from "@appserver/common/api/files"; import pkg from "../../../../package.json"; export const getFavicon = (documentType) => { @@ -77,6 +81,7 @@ export const initDocEditor = async (req) => { const config = await openEdit(fileId, fileVersion, doc, view); + const sharingSettings = await getShareFiles([+fileId], []); const isSharingAccess = config?.file && config?.file?.canShare; if (view) { @@ -98,6 +103,7 @@ export const initDocEditor = async (req) => { fileId, view, filesSettings, + sharingSettings, }; } catch (err) { error = { errorMessage: typeof err === "string" ? err : err.message };