From 9a5bad43f00c373b7bd98ebb5e6467d79c1e1c93 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Thu, 11 Jul 2024 11:46:23 +0300 Subject: [PATCH 01/10] Shared:Utils:NextSSRHelper: fix sharelink headers --- packages/shared/utils/next-ssr-helper.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/shared/utils/next-ssr-helper.ts b/packages/shared/utils/next-ssr-helper.ts index be1b349730..acdaf158d5 100644 --- a/packages/shared/utils/next-ssr-helper.ts +++ b/packages/shared/utils/next-ssr-helper.ts @@ -70,21 +70,21 @@ export const createRequest = ( if (authToken) hdrs.set("Authorization", authToken); - const allCookie = cookieStore.getAll(); - - const sharedLink = allCookie + cookieStore + .getAll() .map((c) => { - if (c.name.includes("sharedlink")) { + if (c.name.includes("sharelink")) { return c; } return false; }) - .filter((v) => !!v); + .filter((v) => !!v) + .forEach((value) => { + hdrs.set(value.name, value.value); - if (sharedLink[0]) { - hdrs.set(sharedLink[0].name, sharedLink[0].value); - } + return value; + }); const urls = paths.map((path) => `${apiURL}${path}`); From 4ad9ec29dd7fa3e9c301a10ebcf3e348a62836aa Mon Sep 17 00:00:00 2001 From: DmitrySychugov Date: Thu, 11 Jul 2024 14:28:20 +0500 Subject: [PATCH 02/10] Fix bug 69144 - Client: InfoPanel: fixed tag transfer --- .../src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js b/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js index 3aa44b2349..dc9c4a75d4 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js +++ b/packages/client/src/pages/Home/InfoPanel/Body/helpers/DetailsHelper.js @@ -70,7 +70,7 @@ const tagList = (tags, selectTag) => ( key={i} className="property-tag" label={tag} - onClick={() => selectTag(tag)} + onClick={() => selectTag({ label: tag })} /> ))} From 32767a060a03e825b6a5bd3aabf909ba57487993 Mon Sep 17 00:00:00 2001 From: DmitrySychugov Date: Thu, 11 Jul 2024 14:38:56 +0500 Subject: [PATCH 03/10] Fix bug 69139 - Client: PortalSettings: displayed label headers for Brute Force Protection --- .../categories/security/access-portal/bruteForceProtection.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/client/src/pages/PortalSettings/categories/security/access-portal/bruteForceProtection.js b/packages/client/src/pages/PortalSettings/categories/security/access-portal/bruteForceProtection.js index dcf00b7cfa..f51113e1f2 100644 --- a/packages/client/src/pages/PortalSettings/categories/security/access-portal/bruteForceProtection.js +++ b/packages/client/src/pages/PortalSettings/categories/security/access-portal/bruteForceProtection.js @@ -265,6 +265,7 @@ const BruteForceProtection = (props) => { { { Date: Thu, 11 Jul 2024 14:40:20 +0500 Subject: [PATCH 04/10] Client:Fixed bug 69070 the PDF form editor opens in different modes when creating --- packages/client/src/pages/Home/Hooks/useFiles.js | 1 + packages/client/src/store/DialogsStore.js | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/client/src/pages/Home/Hooks/useFiles.js b/packages/client/src/pages/Home/Hooks/useFiles.js index d8dff898a2..7001aee8e0 100644 --- a/packages/client/src/pages/Home/Hooks/useFiles.js +++ b/packages/client/src/pages/Home/Hooks/useFiles.js @@ -314,6 +314,7 @@ const useFiles = ({ fromTemplate: true, title: gallerySelected.attributes.name_form, openEditor: !isFormRoom, + edit: true, }; event.payload = payload; diff --git a/packages/client/src/store/DialogsStore.js b/packages/client/src/store/DialogsStore.js index 4dfde86c1e..dfffcae5c9 100644 --- a/packages/client/src/store/DialogsStore.js +++ b/packages/client/src/store/DialogsStore.js @@ -402,6 +402,7 @@ class DialogsStore { templateId: fileInfo.id, withoutDialog, preview, + edit: true, }; event.payload = payload; From 46cb6274757d2545cf04821ecf561287b6428c47 Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Thu, 11 Jul 2024 13:28:03 +0300 Subject: [PATCH 05/10] Fixed translation. --- .../Stepper/SelectUsersTypeStep/AccountsTable/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/pages/PortalSettings/categories/data-import/NextCloudWorkspace/Stepper/SelectUsersTypeStep/AccountsTable/index.js b/packages/client/src/pages/PortalSettings/categories/data-import/NextCloudWorkspace/Stepper/SelectUsersTypeStep/AccountsTable/index.js index ccd107b2b7..c63bcf72e5 100644 --- a/packages/client/src/pages/PortalSettings/categories/data-import/NextCloudWorkspace/Stepper/SelectUsersTypeStep/AccountsTable/index.js +++ b/packages/client/src/pages/PortalSettings/categories/data-import/NextCloudWorkspace/Stepper/SelectUsersTypeStep/AccountsTable/index.js @@ -67,7 +67,7 @@ const AccountsTable = (props) => { }, { key: UserTypes.RoomAdmin, - label: t(`Common:${UserTypes.RoomAdmin}`), + label: t("Common:RoomAdmin"), onClick: setTypeRoomAdmin, }, { From 1d5a36359eabc8718b5a4ba62550b3193ba15c61 Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Thu, 11 Jul 2024 14:23:32 +0300 Subject: [PATCH 06/10] Shared: Components: Share: Fixed dropdown width. --- packages/shared/components/share/sub-components/LinkRow.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/shared/components/share/sub-components/LinkRow.tsx b/packages/shared/components/share/sub-components/LinkRow.tsx index 6b36ac4b63..662800eb0e 100644 --- a/packages/shared/components/share/sub-components/LinkRow.tsx +++ b/packages/shared/components/share/sub-components/LinkRow.tsx @@ -153,6 +153,7 @@ const LinkRow = ({ modernView type="onlyIcon" isDisabled={isExpiredLink || isLoaded} + manualWidth="fit-content" /> From 42c91b285f058cb0fbe014246b3a01624db89f1f Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Thu, 11 Jul 2024 14:57:06 +0300 Subject: [PATCH 07/10] Fixed Bug 67886: Fixed close property for editor config --- packages/doceditor/src/components/Editor.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/doceditor/src/components/Editor.tsx b/packages/doceditor/src/components/Editor.tsx index 86ab9d5a64..3f54f34e7a 100644 --- a/packages/doceditor/src/components/Editor.tsx +++ b/packages/doceditor/src/components/Editor.tsx @@ -189,21 +189,29 @@ const Editor = ({ } const customization = new URLSearchParams(search).get("customization"); + const sdkCustomization: NonNullable< IConfig["editorConfig"] >["customization"] = JSON.parse(customization || "{}"); const theme = sdkCustomization?.uiTheme || user?.theme; - if (newConfig.editorConfig) + if (newConfig.editorConfig) { newConfig.editorConfig.customization = { ...newConfig.editorConfig.customization, ...sdkCustomization, goback: { ...goBack }, - close: { visible: SHOW_CLOSE, text: t("Common:CloseButton") }, uiTheme: getEditorTheme(theme as ThemeKeys), }; + if (SHOW_CLOSE) { + newConfig.editorConfig.customization.close = { + visible: SHOW_CLOSE, + text: t("Common:CloseButton"), + }; + } + } + //if (newConfig.document && newConfig.document.info) // newConfig.document.info.favorite = false; From 586e40ca1febaf4e486e2be8808e0c07171e277b Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Thu, 11 Jul 2024 15:03:01 +0300 Subject: [PATCH 08/10] Shared:Components:Tabs: fix RTL scroll to selected tab --- packages/shared/components/tabs/Tabs.tsx | 45 +++++++++++++++++++----- 1 file changed, 36 insertions(+), 9 deletions(-) diff --git a/packages/shared/components/tabs/Tabs.tsx b/packages/shared/components/tabs/Tabs.tsx index e4fe6603a8..045c0e9d09 100644 --- a/packages/shared/components/tabs/Tabs.tsx +++ b/packages/shared/components/tabs/Tabs.tsx @@ -25,6 +25,7 @@ // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode import React, { useState, useRef, useEffect } from "react"; +import { useTheme } from "styled-components"; import { Scrollbar as ScrollbarType } from "../scrollbar/custom-scrollbar"; @@ -51,6 +52,8 @@ const Tabs = (props: TabsProps) => { ...rest } = props; + const theme = useTheme(); + let selectedItemIndex = items.findIndex((item) => item.id === selectedItemId); if (selectedItemIndex === INDEX_NOT_FOUND) { selectedItemIndex = 0; @@ -80,16 +83,39 @@ const Tabs = (props: TabsProps) => { const containerWidth = containerElement.offsetWidth; const tabWidth = tabElement?.offsetWidth; - const tabOffsetLeft = tabElement.offsetLeft; + const tabOffsetLeft = tabElement?.offsetLeft; - if (tabOffsetLeft - OFFSET_LEFT < containerElement.scrollLeft) { - scrollRef.current.scrollTo(tabOffsetLeft - OFFSET_LEFT); - } else if ( - tabOffsetLeft + tabWidth > - containerElement.scrollLeft + containerWidth - ) { + if (theme.interfaceDirection === "ltr") { + if (tabOffsetLeft - OFFSET_LEFT < containerElement.scrollLeft) { + scrollRef.current.scrollTo(tabOffsetLeft - OFFSET_LEFT); + } else if ( + tabOffsetLeft + tabWidth > + containerElement.scrollLeft + containerWidth + ) { + scrollRef.current.scrollTo( + tabOffsetLeft - containerWidth + tabWidth + OFFSET_RIGHT, + ); + } + + return; + } + + const rect = tabElement?.getBoundingClientRect(); + + if (rect.left - OFFSET_LEFT < 0) { scrollRef.current.scrollTo( - tabOffsetLeft - containerWidth + tabWidth + OFFSET_RIGHT, + -( + Math.abs(rect.left) + + OFFSET_LEFT + + Math.abs(containerElement.scrollLeft) + ), + ); + } else if (rect.right > containerWidth && !!containerElement.scrollLeft) { + scrollRef.current.scrollTo( + rect.right - + containerWidth + + containerElement.scrollLeft + + OFFSET_RIGHT, ); } }; @@ -116,7 +142,8 @@ const Tabs = (props: TabsProps) => { $type={type} onClick={() => { item.onClick?.(); - setSelectedItem(item, index); + + return setSelectedItem(item, index); }} > {item.name} From fd6365bf17a22cd9602fa68287650a8118f4dee3 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Thu, 11 Jul 2024 15:03:17 +0300 Subject: [PATCH 09/10] Shared:Components:Tabs: fix RTL blur styles --- .../shared/components/tabs/Tabs.styled.ts | 36 +++++++++++++++---- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/packages/shared/components/tabs/Tabs.styled.ts b/packages/shared/components/tabs/Tabs.styled.ts index d9526bd0f2..627140cfd7 100644 --- a/packages/shared/components/tabs/Tabs.styled.ts +++ b/packages/shared/components/tabs/Tabs.styled.ts @@ -57,11 +57,18 @@ export const StyledTabs = styled.div<{ width: 60px; pointer-events: none; - background: linear-gradient( + background: ${(props) => + props.theme.interfaceDirection === "ltr" + ? `linear-gradient( 90deg, rgba(255, 255, 255, 0) 20.48%, - ${(props) => props.theme.tabs.gradientColor} 100% - ); + ${props.theme.tabs.gradientColor} 100% + )` + : `linear-gradient( + 270deg, + rgba(255, 255, 255, 0) 20.48%, + ${props.theme.tabs.gradientColor} 100%)`}; + transform: matrix(-1, 0, 0, 1, 0, 0); z-index: 1; @@ -71,14 +78,29 @@ export const StyledTabs = styled.div<{ position: absolute; height: 32px; width: 60px; - right: 0; + pointer-events: none; - background: linear-gradient( + ${(props) => + props.theme.interfaceDirection === "ltr" + ? css` + right: 0; + ` + : css` + left: 0; + `} + + background: ${(props) => + props.theme.interfaceDirection === "ltr" + ? `linear-gradient( 90deg, rgba(255, 255, 255, 0) 20.48%, - ${(props) => props.theme.tabs.gradientColor} 100% - ); + ${props.theme.tabs.gradientColor} 100% + )` + : `linear-gradient( + 270deg, + rgba(255, 255, 255, 0) 20.48%, + ${props.theme.tabs.gradientColor} 100%)`}; z-index: 1; } From 48478d33dfb417ea539804ff71e883d1bebbf751 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Thu, 11 Jul 2024 15:08:17 +0300 Subject: [PATCH 10/10] Shared:Components:Tabs: fix scroll to selected tab after for first render --- packages/shared/components/tabs/Tabs.tsx | 88 +++++++++++++----------- 1 file changed, 46 insertions(+), 42 deletions(-) diff --git a/packages/shared/components/tabs/Tabs.tsx b/packages/shared/components/tabs/Tabs.tsx index 045c0e9d09..8cf4d30c4b 100644 --- a/packages/shared/components/tabs/Tabs.tsx +++ b/packages/shared/components/tabs/Tabs.tsx @@ -24,7 +24,7 @@ // 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 -import React, { useState, useRef, useEffect } from "react"; +import React, { useState, useRef, useEffect, useCallback } from "react"; import { useTheme } from "styled-components"; import { Scrollbar as ScrollbarType } from "../scrollbar/custom-scrollbar"; @@ -69,56 +69,60 @@ const Tabs = (props: TabsProps) => { const isViewFirstTab = useViewTab(scrollRef, tabsRef, 0); const isViewLastTab = useViewTab(scrollRef, tabsRef, items.length - 1); - useEffect(() => { - setCurrentItem(items[selectedItemIndex]); - }, [selectedItemIndex, items]); + const scrollToTab = useCallback( + (index: number): void => { + if (!scrollRef.current || !tabsRef.current) return; - const scrollToTab = (index: number): void => { - if (!scrollRef.current || !tabsRef.current) return; + const containerElement = scrollRef.current.scrollerElement; + const tabElement = tabsRef.current.children[index] as HTMLDivElement; - const containerElement = scrollRef.current.scrollerElement; - const tabElement = tabsRef.current.children[index] as HTMLDivElement; + if (!containerElement || !tabElement) return; - if (!containerElement || !tabElement) return; + const containerWidth = containerElement.offsetWidth; + const tabWidth = tabElement?.offsetWidth; + const tabOffsetLeft = tabElement?.offsetLeft; - const containerWidth = containerElement.offsetWidth; - const tabWidth = tabElement?.offsetWidth; - const tabOffsetLeft = tabElement?.offsetLeft; + if (theme.interfaceDirection === "ltr") { + if (tabOffsetLeft - OFFSET_LEFT < containerElement.scrollLeft) { + scrollRef.current.scrollTo(tabOffsetLeft - OFFSET_LEFT); + } else if ( + tabOffsetLeft + tabWidth > + containerElement.scrollLeft + containerWidth + ) { + scrollRef.current.scrollTo( + tabOffsetLeft - containerWidth + tabWidth + OFFSET_RIGHT, + ); + } - if (theme.interfaceDirection === "ltr") { - if (tabOffsetLeft - OFFSET_LEFT < containerElement.scrollLeft) { - scrollRef.current.scrollTo(tabOffsetLeft - OFFSET_LEFT); - } else if ( - tabOffsetLeft + tabWidth > - containerElement.scrollLeft + containerWidth - ) { - scrollRef.current.scrollTo( - tabOffsetLeft - containerWidth + tabWidth + OFFSET_RIGHT, - ); + return; } - return; - } + const rect = tabElement?.getBoundingClientRect(); - const rect = tabElement?.getBoundingClientRect(); + if (rect.left - OFFSET_LEFT < 0) { + scrollRef.current.scrollTo( + -( + Math.abs(rect.left) + + OFFSET_LEFT + + Math.abs(containerElement.scrollLeft) + ), + ); + } else if (rect.right > containerWidth && !!containerElement.scrollLeft) { + scrollRef.current.scrollTo( + rect.right - + containerWidth + + containerElement.scrollLeft + + OFFSET_RIGHT, + ); + } + }, + [theme.interfaceDirection], + ); - if (rect.left - OFFSET_LEFT < 0) { - scrollRef.current.scrollTo( - -( - Math.abs(rect.left) + - OFFSET_LEFT + - Math.abs(containerElement.scrollLeft) - ), - ); - } else if (rect.right > containerWidth && !!containerElement.scrollLeft) { - scrollRef.current.scrollTo( - rect.right - - containerWidth + - containerElement.scrollLeft + - OFFSET_RIGHT, - ); - } - }; + useEffect(() => { + setCurrentItem(items[selectedItemIndex]); + scrollToTab(selectedItemIndex); + }, [selectedItemIndex, items, scrollToTab]); const setSelectedItem = (selectedTabItem: TTabItem, index: number): void => { setCurrentItem(selectedTabItem);