From ac1b85aef3078aec69216ef6c262d1bcd2039bc2 Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Mon, 5 Aug 2024 13:24:25 +0400 Subject: [PATCH 01/26] Confirm: OAuth user creation fix (add header) --- .../src/pages/Confirm/sub-components/createUser.js | 4 +++- packages/shared/api/people/index.ts | 10 +++++++--- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/packages/client/src/pages/Confirm/sub-components/createUser.js b/packages/client/src/pages/Confirm/sub-components/createUser.js index 0db86fc8c9..560928f164 100644 --- a/packages/client/src/pages/Confirm/sub-components/createUser.js +++ b/packages/client/src/pages/Confirm/sub-components/createUser.js @@ -320,7 +320,9 @@ const CreateUserForm = (props) => { culture: currentCultureName, }; - signupOAuth(signupAccount) + const confirmKey = linkData.confirmHeader; + + signupOAuth(signupAccount, confirmKey) .then(() => { const url = roomData.roomId ? `/rooms/shared/${roomData.roomId}/filter?folder=${roomData.roomId}/` diff --git a/packages/shared/api/people/index.ts b/packages/shared/api/people/index.ts index b64cfcf53f..2a994e3f1c 100644 --- a/packages/shared/api/people/index.ts +++ b/packages/shared/api/people/index.ts @@ -346,12 +346,16 @@ export function linkOAuth(serializedProfile) { }); } -export function signupOAuth(signupAccount) { - return request({ +export function signupOAuth(signupAccount, confirmKey = null) { + const options = { method: "post", url: "people/thirdparty/signup", data: signupAccount, - }); + }; + + if (confirmKey) options.headers = { confirm: confirmKey }; + + return request(options); } export function unlinkOAuth(provider) { From 1e344808cdfccfbbb934cc9e6b9d926f7bdcafc0 Mon Sep 17 00:00:00 2001 From: Viktor Fomin Date: Mon, 5 Aug 2024 13:53:45 +0300 Subject: [PATCH 02/26] Fix Bug 69554 Layout Recent tab is broken --- .../src/pages/Home/Section/Body/TableView/TableHeader.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js b/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js index 76b188ceb9..2e65b2b9eb 100644 --- a/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js +++ b/packages/client/src/pages/Home/Section/Body/TableView/TableHeader.js @@ -379,6 +379,7 @@ class FilesTableHeader extends React.Component { columnInfoPanelStorageName, sortBy, sortOrder, + isRecentTab, }); } else { this.state = { @@ -388,6 +389,7 @@ class FilesTableHeader extends React.Component { columnInfoPanelStorageName, sortBy, sortOrder, + isRecentTab, }; } }; @@ -447,7 +449,7 @@ class FilesTableHeader extends React.Component { isTrashFolder !== prevProps.isTrashFolder || columnStorageName !== prevProps.columnStorageName || columnInfoPanelStorageName !== prevProps.columnInfoPanelStorageName || - isRecentTab !== prevProps.isRecentTab || + isRecentTab !== this.state.isRecentTab || showStorageInfo !== prevProps.showStorageInfo || sortBy !== this.state.sortBy || sortOrder !== this.state.sortOrder From 888cbebce422c55367a1db39d9c05cb45bebbf66 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Mon, 5 Aug 2024 14:00:08 +0300 Subject: [PATCH 03/26] Shared:Selectors: fix types --- packages/shared/components/selector/Selector.styled.ts | 2 +- packages/shared/components/selector/Selector.types.ts | 2 +- packages/shared/selectors/Files/index.tsx | 9 ++++++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/shared/components/selector/Selector.styled.ts b/packages/shared/components/selector/Selector.styled.ts index 244fa9c175..a98ff30cfc 100644 --- a/packages/shared/components/selector/Selector.styled.ts +++ b/packages/shared/components/selector/Selector.styled.ts @@ -63,7 +63,7 @@ const StyledSelector = styled.div` overflow: hidden; `; -const StyledHeader = styled.div<{ withoutBorder: boolean }>` +const StyledHeader = styled.div<{ withoutBorder?: boolean }>` width: calc(100% - 32px); min-height: 53px; height: 53px; diff --git a/packages/shared/components/selector/Selector.types.ts b/packages/shared/components/selector/Selector.types.ts index 298c2b7b3a..29bfd0a026 100644 --- a/packages/shared/components/selector/Selector.types.ts +++ b/packages/shared/components/selector/Selector.types.ts @@ -47,7 +47,7 @@ type THeaderBackButton = | { onBackClick?: undefined; withoutBackButton?: undefined; - withoutBorder: undefined; + withoutBorder?: undefined; }; export type TInfoBarData = { diff --git a/packages/shared/selectors/Files/index.tsx b/packages/shared/selectors/Files/index.tsx index 1c601c5d96..85ee313afd 100644 --- a/packages/shared/selectors/Files/index.tsx +++ b/packages/shared/selectors/Files/index.tsx @@ -445,7 +445,14 @@ const FilesSelectorComponent = ({ selectedFileInfo, ); }, - [breadCrumbs, selectedFileInfo, selectedItemId, selectedTreeNode, onSubmit], + [ + breadCrumbs, + rootFolderType, + onSubmit, + selectedItemId, + selectedTreeNode, + selectedFileInfo, + ], ); React.useEffect(() => { From e6ae3e1a32b16cd75bc99538d2af261a3ed2c982 Mon Sep 17 00:00:00 2001 From: Viktor Fomin Date: Mon, 5 Aug 2024 14:49:42 +0300 Subject: [PATCH 04/26] Fix Bug 60425 Add select user email --- .../pages/Home/Section/AccountsBody/People/TableView/TableRow.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableRow.js b/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableRow.js index f8ba2d2ee6..45c74f06fc 100644 --- a/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableRow.js +++ b/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableRow.js @@ -605,6 +605,7 @@ const PeopleTableRow = (props) => { onClick={onEmailClick} isTextOverflow dir="auto" + enableUserSelect > {email} From d12608648f5fb627966296c3141bd3056c13ef6e Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Mon, 5 Aug 2024 15:35:22 +0300 Subject: [PATCH 05/26] Fix Bug 69476 - Fixed links for HelpCenter. --- .../src/pages/Bonus/sub-components/OfficialDocumentation.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/pages/Bonus/sub-components/OfficialDocumentation.js b/packages/client/src/pages/Bonus/sub-components/OfficialDocumentation.js index 77ce2661ab..8e77e20437 100644 --- a/packages/client/src/pages/Bonus/sub-components/OfficialDocumentation.js +++ b/packages/client/src/pages/Bonus/sub-components/OfficialDocumentation.js @@ -37,9 +37,9 @@ const OfficialDocumentation = ({ dataBackupUrl }) => { const { t } = useTranslation("PaymentsEnterprise"); const dockerLink = - "https://helpcenter.onlyoffice.com/installation/docspace-enterprise-install-docker.aspx"; + "https://helpcenter.onlyoffice.com/installation/docspace-enterprise-install-script.aspx"; const linuxDocker = - "https://helpcenter.onlyoffice.com/installation/docspace-enterprise-install-linux.aspx"; + "https://helpcenter.onlyoffice.com/installation/docspace-enterprise-install-script.aspx"; const windowsDocker = "https://helpcenter.onlyoffice.com/installation/docspace-enterprise-install-windows.aspx"; From 1f3621627832340424c443ba90b201c1f6fd03e2 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Mon, 5 Aug 2024 15:58:57 +0300 Subject: [PATCH 06/26] Shared:Selectors:Files: add timer to showing list loader --- .../selectors/Files/hooks/useLoadersHelper.ts | 13 ++++++++++--- packages/shared/selectors/Files/index.tsx | 6 +++--- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/shared/selectors/Files/hooks/useLoadersHelper.ts b/packages/shared/selectors/Files/hooks/useLoadersHelper.ts index 19f75c3174..94cc0d4a25 100644 --- a/packages/shared/selectors/Files/hooks/useLoadersHelper.ts +++ b/packages/shared/selectors/Files/hooks/useLoadersHelper.ts @@ -44,6 +44,7 @@ const useLoadersHelper = () => { const [isFirstLoad, setIsFirstLoad] = React.useState(true); const startLoader = React.useRef(new Date()); + const loaderTimeout = React.useRef(null); const breadCrumbsLoaderTimeout = React.useRef(null); const breadCrumbsStartLoader = React.useRef(new Date()); @@ -59,9 +60,10 @@ const useLoadersHelper = () => { const calculateLoader = React.useCallback(() => { if (isFirstLoad) { - setShowLoader(true); - - startLoader.current = new Date(); + loaderTimeout.current = setTimeout(() => { + startLoader.current = new Date(); + if (isMount.current) setShowLoader(true); + }, SHOW_LOADER_TIMER); } else if (startLoader.current) { const currentDate = new Date(); @@ -80,6 +82,11 @@ const useLoadersHelper = () => { setShowLoader(false); } }, MIN_LOADER_TIMER - ms); + + loaderTimeout.current = null; + } else if (loaderTimeout.current) { + clearTimeout(loaderTimeout.current); + loaderTimeout.current = null; } }, [isFirstLoad]); diff --git a/packages/shared/selectors/Files/index.tsx b/packages/shared/selectors/Files/index.tsx index 85ee313afd..ddcd246312 100644 --- a/packages/shared/selectors/Files/index.tsx +++ b/packages/shared/selectors/Files/index.tsx @@ -238,7 +238,7 @@ const FilesSelectorComponent = ({ setSelectedItemType(undefined); getRootData(); } else { - setItems([]); + // setItems([]); setBreadCrumbs((bc) => { const idx = bc.findIndex( @@ -302,7 +302,7 @@ const FilesSelectorComponent = ({ if (item.isFolder) { setIsFirstLoad(true); - setItems([]); + // setItems([]); setBreadCrumbs((value) => [ ...value, { @@ -506,7 +506,7 @@ const FilesSelectorComponent = ({ submitButtonLabel, submitButtonId, disableSubmitButton: getIsDisabled( - isFirstLoad, + isFirstLoad && showLoader, isSelectedParentFolder, selectedItemId, selectedItemType, From 23f4d60d9657f7666cd6b5b0a51524f40258db7e Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Mon, 5 Aug 2024 16:05:57 +0300 Subject: [PATCH 07/26] Fix Bug 69385 - Added border for language combobox. --- .../src/pages/Confirm/sub-components/LanguageCombobox.tsx | 2 +- packages/login/src/components/LanguageCombobox/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/client/src/pages/Confirm/sub-components/LanguageCombobox.tsx b/packages/client/src/pages/Confirm/sub-components/LanguageCombobox.tsx index e69c84a573..0379f3104c 100644 --- a/packages/client/src/pages/Confirm/sub-components/LanguageCombobox.tsx +++ b/packages/client/src/pages/Confirm/sub-components/LanguageCombobox.tsx @@ -55,7 +55,7 @@ const LanguageComboboxWrapper = (props: TLanguageCombobox) => { onSelectLanguage={onLanguageSelect} cultures={cultures} selectedCulture={currentCultureName} - withBorder={false} + withBorder={!isMobileView} /> ); }; diff --git a/packages/login/src/components/LanguageCombobox/index.tsx b/packages/login/src/components/LanguageCombobox/index.tsx index aff0a09439..723bc795f1 100644 --- a/packages/login/src/components/LanguageCombobox/index.tsx +++ b/packages/login/src/components/LanguageCombobox/index.tsx @@ -70,7 +70,7 @@ const LanguageComboboxWrapper = () => { onSelectLanguage={onLanguageSelect} cultures={cultures} selectedCulture={currentCulture} - withBorder={false} + withBorder={!isMobileView} isMobileView={isMobileView} /> ); From 80c598a4e8d17445d7191973c225a8b12a801749 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Mon, 5 Aug 2024 17:13:41 +0300 Subject: [PATCH 08/26] Client:Helpers:Plugins: fix enum for user type --- packages/client/src/helpers/plugins/enums.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/helpers/plugins/enums.ts b/packages/client/src/helpers/plugins/enums.ts index a6c59382e7..cd68835609 100644 --- a/packages/client/src/helpers/plugins/enums.ts +++ b/packages/client/src/helpers/plugins/enums.ts @@ -110,7 +110,7 @@ export const enum PluginComponents { export const enum PluginUsersType { owner = "Owner", - docSpaceAdmin = "DocspaceAdmin", + docSpaceAdmin = "DocSpaceAdmin", roomAdmin = "RoomAdmin", collaborator = "Collaborator", user = "User", From 6601566913e8b00874caa7fcdd2bb60010f9e779 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Mon, 5 Aug 2024 17:58:59 +0300 Subject: [PATCH 09/26] Shared: Api: People: Added loginEventId to user type --- packages/shared/api/people/types.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/shared/api/people/types.ts b/packages/shared/api/people/types.ts index d211f6de1a..d74b09c9b2 100644 --- a/packages/shared/api/people/types.ts +++ b/packages/shared/api/people/types.ts @@ -71,6 +71,7 @@ export type TUser = { cultureName?: string; groups?: TUserGroup[]; shared?: boolean; + loginEventId?: number; }; export type TGetUserList = { From ff9e0d3c0d4ab8f542c7cb1d53b1ec05a35a862c Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Mon, 5 Aug 2024 18:01:14 +0300 Subject: [PATCH 10/26] Fixed bug 66037: Settings: Active Sessions: When active sessions end, document opened for editing in another user session does not close. --- packages/client/src/Shell.jsx | 21 +++++++++++++++- packages/doceditor/src/components/Root.tsx | 1 + .../doceditor/src/hooks/useSocketHelper.ts | 25 +++++++++++++++++-- packages/doceditor/src/types/index.ts | 1 + 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/packages/client/src/Shell.jsx b/packages/client/src/Shell.jsx index bf0165745d..4de18fa557 100644 --- a/packages/client/src/Shell.jsx +++ b/packages/client/src/Shell.jsx @@ -43,6 +43,7 @@ import { DeviceType, IndexedDBStores } from "@docspace/shared/enums"; import indexedDbHelper from "@docspace/shared/utils/indexedDBHelper"; import { useThemeDetector } from "@docspace/shared/hooks/useThemeDetector"; import { sendToastReport } from "@docspace/shared/utils/crashReport"; +import { combineUrl } from "@docspace/shared/utils/combineUrl"; import config from "PACKAGE_FILE"; @@ -77,6 +78,7 @@ const Shell = ({ items = [], page = "home", ...rest }) => { userTheme, //user, userId, + userLoginEventId, currentDeviceType, timezone, showArticleLoader, @@ -134,6 +136,7 @@ const Shell = ({ items = [], page = "home", ...rest }) => { command: "subscribe", data: { roomParts: "backup-restore" }, }); + socketHelper.on("restore-backup", () => { getRestoreProgress() .then((response) => { @@ -159,7 +162,22 @@ const Shell = ({ items = [], page = "home", ...rest }) => { command: "subscribe", data: { roomParts: "QUOTA", individual: true }, }); - }, [socketHelper]); + + socketHelper.emit({ + command: "subscribe", + data: { roomParts: "66faa6e4-f133-11ea-b126-00ffeec8b4ef" }, + }); + + socketHelper.on("s:logout-session", (loginEventId) => { + console.log(`[WS] "logout-session"`, loginEventId, userLoginEventId); + + if (userLoginEventId === loginEventId) { + window.location.replace( + combineUrl(window.ClientConfig?.proxy?.url, "/login"), + ); + } + }); + }, [socketHelper, userLoginEventId, setPreparationPortalDialogVisible]); const { t, ready } = useTranslation(["Common"]); //TODO: if enable banner ["Common", "SmartBanner"] @@ -533,6 +551,7 @@ const ShellWrapper = inject( setSnackbarExist, userTheme: isFrame ? frameConfig?.theme : userTheme, userId: userStore?.user?.id, + userLoginEventId: userStore?.user?.loginEventId, currentDeviceType, showArticleLoader: clientLoadingStore.showArticleLoader, setPortalTariff, diff --git a/packages/doceditor/src/components/Root.tsx b/packages/doceditor/src/components/Root.tsx index 7928e29e0e..378b9aac04 100644 --- a/packages/doceditor/src/components/Root.tsx +++ b/packages/doceditor/src/components/Root.tsx @@ -103,6 +103,7 @@ const Root = ({ const { filesSettings } = useFilesSettings({}); const { socketHelper } = useSocketHelper({ socketUrl: user ? settings?.socketUrl ?? "" : "", + user, }); const { onSDKRequestSaveAs, diff --git a/packages/doceditor/src/hooks/useSocketHelper.ts b/packages/doceditor/src/hooks/useSocketHelper.ts index 048796ead8..dbf4caad4e 100644 --- a/packages/doceditor/src/hooks/useSocketHelper.ts +++ b/packages/doceditor/src/hooks/useSocketHelper.ts @@ -29,12 +29,14 @@ import React from "react"; import SocketIOHelper from "@docspace/shared/utils/socket"; +import { combineUrl } from "@docspace/shared/utils/combineUrl"; import { getRestoreProgress } from "@docspace/shared/api/portal"; +import { getUser } from "@docspace/shared/api/people"; import { EDITOR_ID } from "@docspace/shared/constants"; import { UseSocketHelperProps } from "@/types"; -const useSocketHelper = ({ socketUrl }: UseSocketHelperProps) => { +const useSocketHelper = ({ socketUrl, user }: UseSocketHelperProps) => { const [socketHelper, setSocketHelper] = React.useState( null, ); @@ -48,6 +50,11 @@ const useSocketHelper = ({ socketUrl }: UseSocketHelperProps) => { data: { roomParts: "backup-restore" }, }); + socketIOHelper.emit({ + command: "subscribe", + data: { roomParts: user?.id || "" }, + }); + socketIOHelper.on("restore-backup", async () => { try { const response = await getRestoreProgress(); @@ -69,6 +76,21 @@ const useSocketHelper = ({ socketUrl }: UseSocketHelperProps) => { } }); + socketIOHelper.on("s:logout-session", async (loginEventId) => { + console.log(`[WS] "logout-session"`, loginEventId, user?.loginEventId); + + if (Number(loginEventId) === user?.loginEventId) { + const docEditor = + typeof window !== "undefined" && + window.DocEditor?.instances[EDITOR_ID]; + + docEditor?.requestClose(); + window.location.replace( + combineUrl(window.ClientConfig?.proxy?.url, "/login"), + ); + } + }); + setSocketHelper(socketIOHelper); }, [socketHelper, socketUrl]); @@ -76,4 +98,3 @@ const useSocketHelper = ({ socketUrl }: UseSocketHelperProps) => { }; export default useSocketHelper; - diff --git a/packages/doceditor/src/types/index.ts b/packages/doceditor/src/types/index.ts index 1446d3e59a..739282d2e6 100644 --- a/packages/doceditor/src/types/index.ts +++ b/packages/doceditor/src/types/index.ts @@ -334,6 +334,7 @@ export interface SelectFileDialogProps { export interface UseSocketHelperProps { socketUrl: string; + user?: TUser; } export interface UseEventsProps { From 61cd9c0d5dfe5bfc317d2ef056a6e824f3666fe8 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Mon, 5 Aug 2024 18:07:19 +0300 Subject: [PATCH 11/26] Client: Shell: Added missing userId for socket subscribe --- packages/client/src/Shell.jsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/client/src/Shell.jsx b/packages/client/src/Shell.jsx index 4de18fa557..86658d0fd2 100644 --- a/packages/client/src/Shell.jsx +++ b/packages/client/src/Shell.jsx @@ -165,7 +165,7 @@ const Shell = ({ items = [], page = "home", ...rest }) => { socketHelper.emit({ command: "subscribe", - data: { roomParts: "66faa6e4-f133-11ea-b126-00ffeec8b4ef" }, + data: { roomParts: userId }, }); socketHelper.on("s:logout-session", (loginEventId) => { @@ -177,7 +177,12 @@ const Shell = ({ items = [], page = "home", ...rest }) => { ); } }); - }, [socketHelper, userLoginEventId, setPreparationPortalDialogVisible]); + }, [ + socketHelper, + userLoginEventId, + setPreparationPortalDialogVisible, + userId, + ]); const { t, ready } = useTranslation(["Common"]); //TODO: if enable banner ["Common", "SmartBanner"] From f7cbe7719c5e1d8e38b5a464d2ea1ca97e008490 Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Tue, 6 Aug 2024 10:12:20 +0300 Subject: [PATCH 12/26] Fixed Bug 69520 - Accounts. The direction of the sort arrow on the Name field does not match before and after the click --- .../People/TableView/TableHeader.js | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableHeader.js b/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableHeader.js index d7f14b4263..9a9e0001c9 100644 --- a/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableHeader.js +++ b/packages/client/src/pages/Home/Section/AccountsBody/People/TableView/TableHeader.js @@ -141,25 +141,17 @@ class PeopleTableHeader extends React.Component { const { filter, setFilter, setIsLoading, navigate, location } = this.props; const newFilter = filter.clone(); - if (newFilter.sortBy === sortBy && sortBy !== "AZ") { + if ( + newFilter.sortBy === sortBy || + (sortBy === "AZ" && newFilter.sortBy === "firstname") + ) { newFilter.sortOrder = newFilter.sortOrder === "ascending" ? "descending" : "ascending"; } else { newFilter.sortBy = sortBy; if (sortBy === "AZ") { - if ( - newFilter.sortBy !== "lastname" && - newFilter.sortBy !== "firstname" - ) { - newFilter.sortBy = "firstname"; - } else if (newFilter.sortBy === "lastname") { - newFilter.sortBy = "firstname"; - } else { - newFilter.sortBy = "lastname"; - } - newFilter.sortOrder = - newFilter.sortOrder === "ascending" ? "descending" : "ascending"; + newFilter.sortBy = "firstname"; } } From 3fdd6cfc5a7694182c0b927cf6fd516324282754 Mon Sep 17 00:00:00 2001 From: Akmal Isomadinov Date: Tue, 6 Aug 2024 14:50:52 +0500 Subject: [PATCH 13/26] Shared:MediaViewer Added handling for image loading interruptions --- .../media-viewer/sub-components/ImageViewer/index.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx b/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx index a3a5e5c049..9aa9ae0e8a 100644 --- a/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx +++ b/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx @@ -951,6 +951,16 @@ export const ImageViewer = ({ }; }, []); + useLayoutEffect(() => { + return () => { + if (imgRef.current) { + // abort img loading + // eslint-disable-next-line react-hooks/exhaustive-deps + imgRef.current.src = ""; + } + }; + }, []); + return ( <> {isMobile && !backgroundBlack && mobileDetails} From 0ddcfd8b62bd4115338371daefe636fd6f12eb8d Mon Sep 17 00:00:00 2001 From: gopienkonikita Date: Tue, 6 Aug 2024 14:34:33 +0300 Subject: [PATCH 14/26] Web: Components: InfiniteLoader: added skeleton when quickly scrolling the list, added skeleton for room tiles --- .../TilesView/sub-components/InfiniteGrid.js | 1 + .../infinite-loader/InfiniteLoader.styled.ts | 43 +++++++++- .../infinite-loader/InfiniteLoader.tsx | 45 +++++++++- .../infinite-loader/InfiniteLoader.types.ts | 1 + .../infinite-loader/sub-components/Grid.tsx | 46 +++++++++- .../infinite-loader/sub-components/List.tsx | 11 ++- packages/shared/skeletons/tiles/Tile.tsx | 83 ++++++++++++++++++- .../shared/skeletons/tiles/Tiles.styled.ts | 23 +++++ .../shared/skeletons/tiles/Tiles.types.ts | 1 + packages/shared/utils/device.ts | 1 + 10 files changed, 245 insertions(+), 10 deletions(-) diff --git a/packages/client/src/pages/Home/Section/Body/TilesView/sub-components/InfiniteGrid.js b/packages/client/src/pages/Home/Section/Body/TilesView/sub-components/InfiniteGrid.js index f3104c9907..625170db8e 100644 --- a/packages/client/src/pages/Home/Section/Body/TilesView/sub-components/InfiniteGrid.js +++ b/packages/client/src/pages/Home/Section/Body/TilesView/sub-components/InfiniteGrid.js @@ -196,6 +196,7 @@ const InfiniteGrid = (props) => { key={key} className={`tiles-loader ${type}`} isFolder={type === "isFolder"} + isRoom={type === "isRoom"} />, ); } diff --git a/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts b/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts index 0fe163a976..e297c56f4f 100644 --- a/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts +++ b/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts @@ -28,7 +28,7 @@ import { List } from "react-virtualized"; import styled, { css } from "styled-components"; import { Base } from "../../themes"; -import { mobile, tablet } from "../../utils"; +import { desktop, mobile, tablet } from "../../utils"; import { TViewAs } from "../../types"; const StyledScroll = styled.div` @@ -157,4 +157,43 @@ StyledScroll.defaultProps = { theme: Base, }; -export { StyledScroll, StyledList }; +const paddingCss = css` + @media ${desktop} { + ${(props) => + props.theme.interfaceDirection === "rtl" + ? css` + margin-right: 1px; + padding-left: 0px; + ` + : css` + margin-left: 1px; + padding-right: 0px; + `} + } + + @media ${tablet} { + ${(props) => + props.theme.interfaceDirection === "rtl" + ? css` + margin-right: -1px; + ` + : css` + margin-left: -1px; + `} + } +`; + +const StyledItem = styled.div` + display: grid; + grid-template-columns: repeat(auto-fill, minmax(216px, 1fr)); + gap: 14px 16px; + width: 100%; + + @media ${tablet} { + gap: 14px; + } + + ${paddingCss}; +`; + +export { StyledScroll, StyledList, StyledItem }; diff --git a/packages/shared/components/infinite-loader/InfiniteLoader.tsx b/packages/shared/components/infinite-loader/InfiniteLoader.tsx index bae74b22fe..85708e28f5 100644 --- a/packages/shared/components/infinite-loader/InfiniteLoader.tsx +++ b/packages/shared/components/infinite-loader/InfiniteLoader.tsx @@ -24,27 +24,66 @@ // 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 from "react"; +import { useState, useEffect } from "react"; import { isMobile } from "../../utils"; import ListComponent from "./sub-components/List"; import GridComponent from "./sub-components/Grid"; import { InfiniteLoaderProps } from "./InfiniteLoader.types"; +import { MAX_INFINITE_LOADER_SHIFT } from "../../utils/device"; const InfiniteLoaderComponent = (props: InfiniteLoaderProps) => { const { viewAs, isLoading } = props; + const [scrollTop, setScrollTop] = useState(0); + const [showSkeleton, setShowSkeleton] = useState(false); + const scroll = isMobile() ? document.querySelector("#customScrollBar .scroll-wrapper > .scroller") : document.querySelector("#sectionScroll .scroll-wrapper > .scroller"); + const onScroll = (e: Event) => { + const eventTarget = e.target as HTMLElement; + const currentScrollTop = eventTarget.scrollTop; + + setScrollTop(currentScrollTop ?? 0); + + const scrollShift = scrollTop - currentScrollTop; + + if ( + scrollShift > MAX_INFINITE_LOADER_SHIFT || + scrollShift < -MAX_INFINITE_LOADER_SHIFT + ) { + setShowSkeleton(true); + setTimeout(() => { + setShowSkeleton(false); + }, 200); + } + }; + + useEffect(() => { + if (scroll) scroll.addEventListener("scroll", onScroll); + + return () => { + if (scroll) scroll.removeEventListener("scroll", onScroll); + }; + }); + if (isLoading) return null; return viewAs === "tile" ? ( - + ) : ( - + ); }; diff --git a/packages/shared/components/infinite-loader/InfiniteLoader.types.ts b/packages/shared/components/infinite-loader/InfiniteLoader.types.ts index d1203bddf7..673cbff85d 100644 --- a/packages/shared/components/infinite-loader/InfiniteLoader.types.ts +++ b/packages/shared/components/infinite-loader/InfiniteLoader.types.ts @@ -42,6 +42,7 @@ export interface InfiniteLoaderProps { className?: string; infoPanelVisible?: boolean; countTilesInRow?: number; + showSkeleton?: boolean; } export interface ListComponentProps extends InfiniteLoaderProps { diff --git a/packages/shared/components/infinite-loader/sub-components/Grid.tsx b/packages/shared/components/infinite-loader/sub-components/Grid.tsx index 5d50bfa67f..6b872a04e3 100644 --- a/packages/shared/components/infinite-loader/sub-components/Grid.tsx +++ b/packages/shared/components/infinite-loader/sub-components/Grid.tsx @@ -26,8 +26,10 @@ import React, { useCallback, useEffect, useRef } from "react"; import { InfiniteLoader, WindowScroller, List } from "react-virtualized"; -import { StyledList } from "../InfiniteLoader.styled"; +import { StyledItem, StyledList } from "../InfiniteLoader.styled"; import { GridComponentProps } from "../InfiniteLoader.types"; +import { TileSkeleton } from "../../../skeletons/tiles"; +import { RectangleSkeleton } from "../../../skeletons"; const GridComponent = ({ hasMoreFiles, @@ -39,12 +41,13 @@ const GridComponent = ({ children, className, scroll, + showSkeleton, }: GridComponentProps) => { const loaderRef = useRef(null); const listRef = useRef(null); useEffect(() => { - listRef?.current?.recomputeRowHeights(); + // listRef?.current?.recomputeRowHeights(); //TODO: return there will be problems with the height of the tile when clicking on the backspace }); const isItemLoaded = useCallback( @@ -58,11 +61,50 @@ const GridComponent = ({ index, style, key, + isScrolling, }: { index: number; style: React.CSSProperties; key: string; + isScrolling: boolean; }) => { + const elem = children[index] as React.ReactElement; + const itemClassNames = elem.props?.className; + + const isFolder = itemClassNames?.includes("isFolder"); + const isRoom = itemClassNames?.includes("isRoom"); + const isHeader = + itemClassNames?.includes("folder_header") || + itemClassNames?.includes("files_header"); + + if (isScrolling && showSkeleton) { + const list = []; + let i = 0; + + if (isHeader) { + return ( +
+ + + +
+ ); + } + + while (i < countTilesInRow) { + list.push( + , + ); + i += 1; + } + + return ( +
+ {list.map((item) => item)} +
+ ); + } + return (
{children[index]} diff --git a/packages/shared/components/infinite-loader/sub-components/List.tsx b/packages/shared/components/infinite-loader/sub-components/List.tsx index add98587e6..ed70f0b2b6 100644 --- a/packages/shared/components/infinite-loader/sub-components/List.tsx +++ b/packages/shared/components/infinite-loader/sub-components/List.tsx @@ -47,6 +47,7 @@ const ListComponent = ({ className, scroll, infoPanelVisible, + showSkeleton, }: ListComponentProps) => { const loaderRef = useRef(null); const listRef = useRef(null); @@ -89,13 +90,16 @@ const ListComponent = ({ key, index, style, + isScrolling, }: { key: string; index: number; style: React.CSSProperties; + isScrolling: boolean; }) => { const isLoaded = isItemLoaded({ index }); - if (!isLoaded) return getLoader(style, key); + if (!isLoaded || (isScrolling && showSkeleton)) + return getLoader(style, key); return (
@@ -108,10 +112,12 @@ const ListComponent = ({ index, style, key, + isScrolling, }: { index: number; style: React.CSSProperties; key: string; + isScrolling: boolean; }) => { if (!columnInfoPanelStorageName || !columnStorageName) { throw new Error("columnStorageName is required for a table view"); @@ -122,7 +128,8 @@ const ListComponent = ({ : localStorage.getItem(columnStorageName); const isLoaded = isItemLoaded({ index }); - if (!isLoaded) return getLoader(style, key); + if (!isLoaded || (isScrolling && showSkeleton)) + return getLoader(style, key); return (
+ ) : isRoom ? ( + + + + + + + + + + + + + ) : ( diff --git a/packages/shared/skeletons/tiles/Tiles.styled.ts b/packages/shared/skeletons/tiles/Tiles.styled.ts index f3ac12fa81..871cc6e965 100644 --- a/packages/shared/skeletons/tiles/Tiles.styled.ts +++ b/packages/shared/skeletons/tiles/Tiles.styled.ts @@ -120,3 +120,26 @@ export const StyledTilesWrapper = styled.div` grid-template-columns: 1fr; grid-gap: 16px; `; + +export const StyledRoomTile = styled.div` + border: ${(props) => props.theme.filesSection.tilesView.tile.border}; + border-radius: 6px; + height: 120px; +`; + +export const StyledRoomTileTopContent = styled.div` + display: grid; + grid-template-columns: 32px 1fr 24px; + gap: 8px; + align-items: center; + height: 61px; + border-bottom: ${(props) => props.theme.filesSection.tilesView.tile.border}; + padding: 0 8px 0 16px; +`; + +export const StyledRoomTileBottomContent = styled.div` + display: flex; + align-items: center; + padding: 16px; + gap: 4px; +`; diff --git a/packages/shared/skeletons/tiles/Tiles.types.ts b/packages/shared/skeletons/tiles/Tiles.types.ts index 2881313070..982ab305bc 100644 --- a/packages/shared/skeletons/tiles/Tiles.types.ts +++ b/packages/shared/skeletons/tiles/Tiles.types.ts @@ -38,4 +38,5 @@ export interface StyledBottomProps { export interface TileSkeletonProps extends RectangleSkeletonProps { isFolder?: boolean; + isRoom?: boolean; } diff --git a/packages/shared/utils/device.ts b/packages/shared/utils/device.ts index 1900a6a3cf..5ca02c86ce 100644 --- a/packages/shared/utils/device.ts +++ b/packages/shared/utils/device.ts @@ -26,6 +26,7 @@ export const INFO_PANEL_WIDTH = 400; export const TABLE_HEADER_HEIGHT = 40; +export const MAX_INFINITE_LOADER_SHIFT = 800; export function checkIsSSR() { return typeof window === "undefined"; From 5d76ca49fcdf8bd2b098e685b321e96839ea6193 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Tue, 6 Aug 2024 14:42:09 +0300 Subject: [PATCH 15/26] Client: Fixed s:logout-session socket event --- packages/client/src/Shell.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/client/src/Shell.jsx b/packages/client/src/Shell.jsx index 86658d0fd2..9523d6901a 100644 --- a/packages/client/src/Shell.jsx +++ b/packages/client/src/Shell.jsx @@ -171,7 +171,7 @@ const Shell = ({ items = [], page = "home", ...rest }) => { socketHelper.on("s:logout-session", (loginEventId) => { console.log(`[WS] "logout-session"`, loginEventId, userLoginEventId); - if (userLoginEventId === loginEventId) { + if (userLoginEventId === loginEventId || loginEventId === 0) { window.location.replace( combineUrl(window.ClientConfig?.proxy?.url, "/login"), ); From 1bd273f058fb1472e32283d51d78ec9457d0d316 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Tue, 6 Aug 2024 14:42:27 +0300 Subject: [PATCH 16/26] Editor: Fixed s:logout-session socket event --- packages/doceditor/src/hooks/useSocketHelper.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/doceditor/src/hooks/useSocketHelper.ts b/packages/doceditor/src/hooks/useSocketHelper.ts index dbf4caad4e..9eeb1a98b7 100644 --- a/packages/doceditor/src/hooks/useSocketHelper.ts +++ b/packages/doceditor/src/hooks/useSocketHelper.ts @@ -79,7 +79,10 @@ const useSocketHelper = ({ socketUrl, user }: UseSocketHelperProps) => { socketIOHelper.on("s:logout-session", async (loginEventId) => { console.log(`[WS] "logout-session"`, loginEventId, user?.loginEventId); - if (Number(loginEventId) === user?.loginEventId) { + if ( + Number(loginEventId) === user?.loginEventId || + Number(loginEventId) === 0 + ) { const docEditor = typeof window !== "undefined" && window.DocEditor?.instances[EDITOR_ID]; From f1ef00783e251992ec0c64b8cdda74729a5a6366 Mon Sep 17 00:00:00 2001 From: gopienkonikita Date: Tue, 6 Aug 2024 16:10:07 +0300 Subject: [PATCH 17/26] Web: Files: fixed onClickBack action --- packages/client/src/store/FilesActionsStore.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/client/src/store/FilesActionsStore.js b/packages/client/src/store/FilesActionsStore.js index 4ef3e4d9d3..11fc69fd0c 100644 --- a/packages/client/src/store/FilesActionsStore.js +++ b/packages/client/src/store/FilesActionsStore.js @@ -2504,6 +2504,9 @@ class FilesActionStore { const { clearFiles, setBufferSelection } = this.filesStore; const { clearInsideGroup, insideGroupBackUrl } = this.peopleStore.groupsStore; + const { isLoading } = this.clientLoadingStore; + + if (isLoading) return; setBufferSelection(null); From b90902f46128c631a63f80e1b7ca303f9b54bbd2 Mon Sep 17 00:00:00 2001 From: gopienkonikita Date: Tue, 6 Aug 2024 16:48:19 +0300 Subject: [PATCH 18/26] Web: Components: LinkRow: fixed Combobox --- 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 662800eb0e..bf05ee7c76 100644 --- a/packages/shared/components/share/sub-components/LinkRow.tsx +++ b/packages/shared/components/share/sub-components/LinkRow.tsx @@ -154,6 +154,7 @@ const LinkRow = ({ type="onlyIcon" isDisabled={isExpiredLink || isLoaded} manualWidth="fit-content" + withBackdrop={false} />
From 0df04bfda6d28dce176033f3a11523bc78c563c5 Mon Sep 17 00:00:00 2001 From: Akmal Isomadinov Date: Tue, 6 Aug 2024 19:11:14 +0500 Subject: [PATCH 19/26] Shared:MediaViewer: Fixed Load original image if thumbnail is unavailable --- .../sub-components/ImageViewer/index.tsx | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx b/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx index 9aa9ae0e8a..388e668fae 100644 --- a/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx +++ b/packages/shared/components/media-viewer/sub-components/ImageViewer/index.tsx @@ -111,6 +111,7 @@ export const ImageViewer = ({ const toolbarRef = useRef(null); const [scale, setScale] = useState(1); + const [showOriginSrc, setShowOriginSrc] = useState(false); const [isError, setIsError] = useState(false); const [isLoading, setIsLoading] = useState(false); const [backgroundBlack, setBackgroundBlack] = useState(() => false); @@ -854,18 +855,19 @@ export const ImageViewer = ({ } }; - const onError = useCallback( - (e: SyntheticEvent) => { - if (window.ClientConfig?.imageThumbnails && thumbnailSrc && src) { - // if thumbnailSrc is unavailable, try to load original image - e.currentTarget.src = src; - return; - } + const onError = useCallback(() => { + if ( + window.ClientConfig?.imageThumbnails && + thumbnailSrc && + (src || isTiff) + ) { + // if thumbnailSrc is unavailable, try to load original image + setShowOriginSrc(true); + return; + } - setIsError(true); - }, - [src, thumbnailSrc], - ); + setIsError(true); + }, [src, thumbnailSrc, isTiff]); const model = React.useMemo(() => contextModel(true), [contextModel]); @@ -983,7 +985,9 @@ export const ImageViewer = ({ Date: Tue, 6 Aug 2024 17:33:52 +0300 Subject: [PATCH 20/26] Web: Components: InfiniteLoader: fixed StyledItem styles --- .../infinite-loader/InfiniteLoader.styled.ts | 21 +++---------------- 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts b/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts index e297c56f4f..398dd9166a 100644 --- a/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts +++ b/packages/shared/components/infinite-loader/InfiniteLoader.styled.ts @@ -159,27 +159,12 @@ StyledScroll.defaultProps = { const paddingCss = css` @media ${desktop} { - ${(props) => - props.theme.interfaceDirection === "rtl" - ? css` - margin-right: 1px; - padding-left: 0px; - ` - : css` - margin-left: 1px; - padding-right: 0px; - `} + margin-inline-start: 1px; + padding-inline-end: 0; } @media ${tablet} { - ${(props) => - props.theme.interfaceDirection === "rtl" - ? css` - margin-right: -1px; - ` - : css` - margin-left: -1px; - `} + margin-inline-start: -1px; } `; From fb7e0671c9560a00001c628bb782301dc87a43ec Mon Sep 17 00:00:00 2001 From: Akmal Isomadinov Date: Tue, 6 Aug 2024 20:44:15 +0500 Subject: [PATCH 21/26] Client:EmptyScreen Fixed Description and Title --- .../EmptyViewContainer.helpers.tsx | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx index 5ecece938a..a0d86182e1 100644 --- a/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx +++ b/packages/client/src/components/EmptyContainer/sub-components/EmptyViewContainer/EmptyViewContainer.helpers.tsx @@ -75,19 +75,16 @@ export const getDescription = ( if (isFolder) { return match([parentRoomType, folderType, access]) .with([P._, FolderType.Done, P._], () => - t("Files:EmptyFormFolderDoneHeaderText"), + t("Files:EmptyFormFolderDoneDescriptionText"), ) - .with([P._, FolderType.InProgress, P._], () => - t("Files:EmptyFormFolderProgressHeaderText"), + t("Files:EmptyFormFolderProgressDescriptionText"), ) - .with( - [ - P._, - P.union(FolderType.SubFolderDone, FolderType.SubFolderInProgress), - P._, - ], - () => t("Files:EmptyFormSubFolderHeaderText"), + .with([P._, FolderType.SubFolderDone, P._], () => + t("Files:EmptyFormSubFolderDoneDescriptionText"), + ) + .with([P._, FolderType.SubFolderInProgress, P._], () => + t("Files:EmptyFormSubFolderProgressDescriptionText"), ) .with( [ @@ -130,16 +127,19 @@ export const getTitle = ( if (isFolder) { return match([parentRoomType, folderType, access]) .with([P._, FolderType.Done, P._], () => - t("Files:EmptyFormFolderDoneDescriptionText"), + t("Files:EmptyFormFolderDoneHeaderText"), ) + .with([P._, FolderType.InProgress, P._], () => - t("Files:EmptyFormFolderProgressDescriptionText"), + t("Files:EmptyFormFolderProgressHeaderText"), ) - .with([P._, FolderType.SubFolderDone, P._], () => - t("Files:EmptyFormSubFolderDoneDescriptionText"), - ) - .with([P._, FolderType.SubFolderInProgress, P._], () => - t("Files:EmptyFormSubFolderProgressDescriptionText"), + .with( + [ + P._, + P.union(FolderType.SubFolderDone, FolderType.SubFolderInProgress), + P._, + ], + () => t("Files:EmptyFormSubFolderHeaderText"), ) .with( [ From 03509c1e99f6007e92bd795ee1d4e911404d2304 Mon Sep 17 00:00:00 2001 From: gopienkonikita Date: Wed, 7 Aug 2024 12:23:07 +0300 Subject: [PATCH 22/26] Fix Bug 69590 - Rooms.Public. Fixed file-password styles --- .../file-password/FilePassword.styled.ts | 12 ++ .../src/components/file-password/index.tsx | 158 +++++++++--------- 2 files changed, 92 insertions(+), 78 deletions(-) diff --git a/packages/doceditor/src/components/file-password/FilePassword.styled.ts b/packages/doceditor/src/components/file-password/FilePassword.styled.ts index 9173ea5248..5c714e4962 100644 --- a/packages/doceditor/src/components/file-password/FilePassword.styled.ts +++ b/packages/doceditor/src/components/file-password/FilePassword.styled.ts @@ -43,6 +43,7 @@ export const StyledPage = styled.div` .logo-wrapper { display: block; + padding-bottom: 64px; } @media ${mobile} { @@ -85,6 +86,17 @@ export const StyledPage = styled.div` margin-bottom: 32px; } + .public-room_content-wrapper { + display: flex; + flex-direction: column; + -webkit-box-align: center; + align-items: center; + margin: 0px auto; + max-width: 960px; + box-sizing: border-box; + height: 100%; + } + .public-room-content { padding-top: 9%; justify-content: unset; diff --git a/packages/doceditor/src/components/file-password/index.tsx b/packages/doceditor/src/components/file-password/index.tsx index 231ae0d68b..275ed417f2 100644 --- a/packages/doceditor/src/components/file-password/index.tsx +++ b/packages/doceditor/src/components/file-password/index.tsx @@ -111,7 +111,7 @@ const FilesPassword = ({ shareKey, title, entryTitle }: FilePasswordProps) => { return ( <> - + { /> - - - icon +
+ + + icon - -
- - {t("Common:PasswordRequired")} - - - - }} - /> - -
- - - {title} + +
+ + {t("Common:PasswordRequired")} + + + }} + /> + +
+ + + {title} + +
+ + + +
- - - -
- -
); From d92d72061c0570f1c2b17a837cdc84c36182751c Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Wed, 7 Aug 2024 12:46:30 +0300 Subject: [PATCH 23/26] Fixed Bug 69551 - Files.Info.History: Fixed "Documents" type in info panel --- packages/client/public/locales/en/InfoPanel.json | 1 + .../History/HistoryBlockContent/MainTextFolderInfo.tsx | 10 +++++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/client/public/locales/en/InfoPanel.json b/packages/client/public/locales/en/InfoPanel.json index 105dbdb5c1..f295708b17 100644 --- a/packages/client/public/locales/en/InfoPanel.json +++ b/packages/client/public/locales/en/InfoPanel.json @@ -12,6 +12,7 @@ "FeedLocationLabel": "Folder «{{folderTitle}}»", "FeedLocationLabelFrom": "from «{{folderTitle}}»", "FeedLocationRoomLabel": "Room «{{folderTitle}}»", + "FeedLocationSectionLabel": "Section «{{folderTitle}}»", "FileConverted": "File converted.", "FileCopied": "Files copied.", "FileCopiedTo": "Files copied to «{{folderTitle}}»", diff --git a/packages/client/src/pages/Home/InfoPanel/Body/views/History/HistoryBlockContent/MainTextFolderInfo.tsx b/packages/client/src/pages/Home/InfoPanel/Body/views/History/HistoryBlockContent/MainTextFolderInfo.tsx index 05a4f70a4d..2355bca26a 100644 --- a/packages/client/src/pages/Home/InfoPanel/Body/views/History/HistoryBlockContent/MainTextFolderInfo.tsx +++ b/packages/client/src/pages/Home/InfoPanel/Body/views/History/HistoryBlockContent/MainTextFolderInfo.tsx @@ -27,6 +27,7 @@ import { withTranslation } from "react-i18next"; import { inject, observer } from "mobx-react"; import { TTranslation } from "@docspace/shared/types"; +import { FolderType } from "@docspace/shared/enums"; import { StyledHistoryBlockMessage } from "../../../styles/history"; type HistoryMainTextFolderInfoProps = { @@ -54,12 +55,15 @@ const HistoryMainTextFolderInfo = ({ if (!parentTitle) return null; - const isFolder = parentType === 0; - const isFromFolder = fromParentType === 0; + const isSection = parentType === FolderType.USER; + const isFolder = parentType === FolderType.DEFAULT; + const isFromFolder = fromParentType === FolderType.DEFAULT; const destination = isFolder ? t("FeedLocationLabel", { folderTitle: parentTitle }) - : t("FeedLocationRoomLabel", { folderTitle: parentTitle }); + : isSection + ? t("FeedLocationSectionLabel", { folderTitle: parentTitle }) + : t("FeedLocationRoomLabel", { folderTitle: parentTitle }); const sourceDestination = isFromFolder ? t("FeedLocationLabelFrom", { folderTitle: fromParentTitle }) From 49d1cb06b2addeae008d5b707ec6a2562c28c434 Mon Sep 17 00:00:00 2001 From: Ilya Oleshko Date: Wed, 7 Aug 2024 13:33:34 +0300 Subject: [PATCH 24/26] Editor: Components: FilePassword: Fixed component name --- packages/doceditor/src/components/file-password/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/doceditor/src/components/file-password/index.tsx b/packages/doceditor/src/components/file-password/index.tsx index 275ed417f2..08b8ecadbf 100644 --- a/packages/doceditor/src/components/file-password/index.tsx +++ b/packages/doceditor/src/components/file-password/index.tsx @@ -54,7 +54,7 @@ import { ValidationStatus, WhiteLabelLogoType } from "@docspace/shared/enums"; import { validatePublicRoomPassword } from "@docspace/shared/api/rooms"; import Image from "next/image"; -const FilesPassword = ({ shareKey, title, entryTitle }: FilePasswordProps) => { +const FilePassword = ({ shareKey, title, entryTitle }: FilePasswordProps) => { const { t } = useTranslation(["Common"]); const theme = useTheme(); @@ -210,4 +210,4 @@ const FilesPassword = ({ shareKey, title, entryTitle }: FilePasswordProps) => { ); }; -export default FilesPassword; +export default FilePassword; From d4dd33f4534d58ee0cf5a4aea830f2adce16756d Mon Sep 17 00:00:00 2001 From: Elyor Djalilov Date: Wed, 7 Aug 2024 16:51:39 +0500 Subject: [PATCH 25/26] Web: Client: Profile. ActiveSessions: fixed styles --- .../src/components/dialogs/LogoutAllSessionDialog/index.js | 7 +++---- packages/client/src/store/SettingsSetupStore.js | 1 - 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/client/src/components/dialogs/LogoutAllSessionDialog/index.js b/packages/client/src/components/dialogs/LogoutAllSessionDialog/index.js index 64186f2809..1b2245c8c2 100644 --- a/packages/client/src/components/dialogs/LogoutAllSessionDialog/index.js +++ b/packages/client/src/components/dialogs/LogoutAllSessionDialog/index.js @@ -56,10 +56,9 @@ const LogoutAllSessionDialog = ({ visible={visible} onClose={onClose} displayType="modal" + autoMaxHeight > - - {t("Profile:LogoutAllActiveConnections")} - + {t("Common:LogoutButton")} {t("Profile:LogoutDescription")} @@ -70,8 +69,8 @@ const LogoutAllSessionDialog = ({ className="change-password" isChecked={isChecked} onChange={onChangeCheckbox} + label={t("Profile:ChangePasswordAfterLoggingOut")} /> - {t("Profile:ChangePasswordAfterLoggingOut")} diff --git a/packages/client/src/store/SettingsSetupStore.js b/packages/client/src/store/SettingsSetupStore.js index c42fdce4da..cc8c06f14a 100644 --- a/packages/client/src/store/SettingsSetupStore.js +++ b/packages/client/src/store/SettingsSetupStore.js @@ -586,7 +586,6 @@ class SettingsSetupStore { }; getSessions = () => { - if (this.sessionsIsInit) return; this.getAllSessions().then((res) => { this.setSessions(res.items); this.currentSession = res.loginEvent; From 26900a97c2b23650f50d585c5f2457b1b240c31f Mon Sep 17 00:00:00 2001 From: Alexey Safronov Date: Wed, 7 Aug 2024 16:05:56 +0400 Subject: [PATCH 26/26] Translations: fix UselessTranslationKeysTest issue --- i18next/client.babel | 264 +++++++++--------- .../client/public/locales/ar-SA/Profile.json | 1 - .../client/public/locales/az/Profile.json | 1 - .../client/public/locales/bg/Profile.json | 1 - .../client/public/locales/cs/Profile.json | 1 - .../client/public/locales/de/Profile.json | 1 - .../client/public/locales/el-GR/Profile.json | 1 - .../client/public/locales/en/Profile.json | 1 - .../client/public/locales/es/Profile.json | 1 - .../client/public/locales/fi/Profile.json | 1 - .../client/public/locales/fr/Profile.json | 1 - .../client/public/locales/hy-AM/Profile.json | 1 - .../client/public/locales/it/Profile.json | 1 - .../client/public/locales/ja-JP/Profile.json | 1 - .../client/public/locales/ko-KR/Profile.json | 1 - .../client/public/locales/lo-LA/Profile.json | 1 - .../client/public/locales/lv/Profile.json | 1 - .../client/public/locales/nl/Profile.json | 1 - .../client/public/locales/pl/Profile.json | 1 - .../client/public/locales/pt-BR/Profile.json | 1 - .../client/public/locales/pt/Profile.json | 1 - .../client/public/locales/ro/Profile.json | 1 - .../client/public/locales/ru/Profile.json | 1 - .../client/public/locales/si/Profile.json | 1 - .../client/public/locales/sk/Profile.json | 1 - .../client/public/locales/sl/Profile.json | 1 - .../public/locales/sr-Cyrl-RS/Profile.json | 1 - .../public/locales/sr-Latn-RS/Profile.json | 1 - .../client/public/locales/tr/Profile.json | 1 - .../client/public/locales/uk-UA/Profile.json | 1 - .../client/public/locales/vi/Profile.json | 1 - .../locales/zh-CN/ChangePortalOwner.json | 8 +- .../locales/zh-CN/ChangeUserTypeDialog.json | 2 +- .../client/public/locales/zh-CN/Confirm.json | 2 +- .../client/public/locales/zh-CN/Profile.json | 1 - 35 files changed, 138 insertions(+), 169 deletions(-) diff --git a/i18next/client.babel b/i18next/client.babel index 12dca0fa6e..e2ce01c4f3 100644 --- a/i18next/client.babel +++ b/i18next/client.babel @@ -67771,6 +67771,138 @@ + + FeedLocationSectionLabel + + + + + + ar-SA + false + + + az-Latn-AZ + false + + + bg-BG + false + + + cs-CZ + false + + + de-DE + false + + + el-GR + false + + + en-US + false + + + es-ES + false + + + fi-FI + false + + + fr-FR + false + + + hy-AM + false + + + it-IT + false + + + ja-JP + false + + + ko-KR + false + + + lo-LA + false + + + lv-LV + false + + + nl-NL + false + + + pl-PL + false + + + pt-BR + false + + + pt-PT + false + + + ro-RO + false + + + ru-RU + false + + + si-SI + false + + + sk-SK + false + + + sl-SI + false + + + sr-Cyrl-RS + false + + + sr-Latn-RS + false + + + tr-TR + false + + + uk-UA + false + + + vi-VN + false + + + zh-CN + false + + + FileConverted @@ -122626,138 +122758,6 @@ - - LogoutAllActiveConnections - - - - - - ar-SA - false - - - az-Latn-AZ - false - - - bg-BG - false - - - cs-CZ - false - - - de-DE - false - - - el-GR - false - - - en-US - false - - - es-ES - false - - - fi-FI - false - - - fr-FR - false - - - hy-AM - false - - - it-IT - false - - - ja-JP - false - - - ko-KR - false - - - lo-LA - false - - - lv-LV - false - - - nl-NL - false - - - pl-PL - false - - - pt-BR - false - - - pt-PT - false - - - ro-RO - false - - - ru-RU - false - - - si-SI - false - - - sk-SK - false - - - sl-SI - false - - - sr-Cyrl-RS - false - - - sr-Latn-RS - false - - - tr-TR - false - - - uk-UA - false - - - vi-VN - false - - - zh-CN - false - - - LogoutAllActiveSessionsDescription diff --git a/packages/client/public/locales/ar-SA/Profile.json b/packages/client/public/locales/ar-SA/Profile.json index 482eb6e749..06bb781268 100644 --- a/packages/client/public/locales/ar-SA/Profile.json +++ b/packages/client/public/locales/ar-SA/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "واجهة المستخدم", "LightTheme": "الوضع النهاري", "LogoutActiveConnection": "تسجيل الخروج من الاتصال النشط", - "LogoutAllActiveConnections": "تسجيل الخروج من جميع الاتصالات النشطة", "LogoutAllActiveSessionsDescription": "سيتم تسجيل الخروج من جميع الاتصالات النشطة باستثناء هذا الاتصال، حيث أنه قيد الاستخدام حاليًا.", "LogoutBtn": "تسجيل الخروج", "LogoutDescription": "ملحوظة. سيتم تسجيل خروج جميع الاتصالات النشطة باستثناء هذا الاتصال ، حيث إنه قيد الاستخدام حاليًا.", diff --git a/packages/client/public/locales/az/Profile.json b/packages/client/public/locales/az/Profile.json index f01a7fba64..a5a088febc 100644 --- a/packages/client/public/locales/az/Profile.json +++ b/packages/client/public/locales/az/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "İnterfeys mövzusu", "LightTheme": "İşıqlı tema", "LogoutActiveConnection": "Aktiv bağlantıdan çıxın", - "LogoutAllActiveConnections": "Bütün aktiv bağlantılardan çıxın", "LogoutAllActiveSessionsDescription": "Bundan başqa bütün aktiv bağlantılar hazırda istifadə edildiyi üçün sistemdən çıxacaq.", "LogoutBtn": "Çıxış", "LogoutDescription": "Qeyd. Bundan başqa bütün aktiv bağlantılar hazırda istifadə edildiyi üçün sistemdən çıxacaq.", diff --git a/packages/client/public/locales/bg/Profile.json b/packages/client/public/locales/bg/Profile.json index 2c5278966e..ed64fafdc3 100644 --- a/packages/client/public/locales/bg/Profile.json +++ b/packages/client/public/locales/bg/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Тема на интерфейса", "LightTheme": "Светла тема", "LogoutActiveConnection": "Изход от активната връзка", - "LogoutAllActiveConnections": "Изход от всички активни сесии", "LogoutAllActiveSessionsDescription": "Всички активни връзки с изключение на тази ще бъдат отписани, тъй като тази връзка се използва в момента.", "LogoutBtn": "Изход", "LogoutDescription": "Забележка. Всички активни връзки с изключение на тази ще бъдат отписани, тъй като тази връзка се използва в момента.", diff --git a/packages/client/public/locales/cs/Profile.json b/packages/client/public/locales/cs/Profile.json index 8bdb35ce84..dcae0d647b 100644 --- a/packages/client/public/locales/cs/Profile.json +++ b/packages/client/public/locales/cs/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Vzhled prostředí", "LightTheme": "Světlý motiv", "LogoutActiveConnection": "Odhlášení z aktivního připojení", - "LogoutAllActiveConnections": "Odhlášení ze všech aktivních připojení", "LogoutAllActiveSessionsDescription": "Všechna aktivní připojení kromě tohoto připojení budou odhlášena, protože jsou právě používána.", "LogoutBtn": "Odhlášení", "LogoutDescription": "Poznámka. Všechna aktivní připojení kromě tohoto připojení budou odhlášena, protože jsou právě používána.", diff --git a/packages/client/public/locales/de/Profile.json b/packages/client/public/locales/de/Profile.json index 137ad7bca2..a29496fd8e 100644 --- a/packages/client/public/locales/de/Profile.json +++ b/packages/client/public/locales/de/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Thema der Benutzeroberfläche", "LightTheme": "Heller Modus", "LogoutActiveConnection": "Abmelden von der aktiven Verbindung", - "LogoutAllActiveConnections": "Abmelden von allen aktiven Verbindungen", "LogoutAllActiveSessionsDescription": "Alle aktiven Verbindungen mit Ausnahme dieser Verbindung werden abgemeldet, da sie gerade in Gebrauch ist.", "LogoutBtn": "Abmelden", "LogoutDescription": "Hinweis. Alle aktiven Verbindungen mit Ausnahme dieser Verbindung werden abgemeldet, da sie gerade in Gebrauch ist.", diff --git a/packages/client/public/locales/el-GR/Profile.json b/packages/client/public/locales/el-GR/Profile.json index 330df2559c..7e13329e80 100644 --- a/packages/client/public/locales/el-GR/Profile.json +++ b/packages/client/public/locales/el-GR/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Θέμα διεπαφής", "LightTheme": "Ανοιχτό θέμα", "LogoutActiveConnection": "Αποσύνδεση από ενεργή σύνδεση", - "LogoutAllActiveConnections": "Αποσύνδεση από όλες τις ενεργές συνδέσεις", "LogoutAllActiveSessionsDescription": "Όλες οι ενεργές συνδέσεις θα τερματιστούν, εκτός από αυτήν τη σύνδεση, καθώς χρησιμοποιείται αυτήν τη στιγμή.", "LogoutBtn": "Αποσύνδεση", "LogoutDescription": "Σημείωση. Όλες οι ενεργές συνδέσεις θα τερματιστούν, εκτός από αυτήν τη σύνδεση, καθώς χρησιμοποιείται αυτήν τη στιγμή.", diff --git a/packages/client/public/locales/en/Profile.json b/packages/client/public/locales/en/Profile.json index 177aa02241..8762559a74 100644 --- a/packages/client/public/locales/en/Profile.json +++ b/packages/client/public/locales/en/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Interface theme", "LightTheme": "Light theme", "LogoutActiveConnection": "Log out from active connection", - "LogoutAllActiveConnections": "Log out from all active connections", "LogoutAllActiveSessionsDescription": "All active connections except this connection will be logged out, as it is currently in use.", "LogoutBtn": "Log out", "LogoutDescription": "Note. All active connections except this connection will be logged out, as it is currently in use.", diff --git a/packages/client/public/locales/es/Profile.json b/packages/client/public/locales/es/Profile.json index 72306f8440..ce4f8ea296 100644 --- a/packages/client/public/locales/es/Profile.json +++ b/packages/client/public/locales/es/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema de interfaz", "LightTheme": "Tema claro", "LogoutActiveConnection": "Salir de la conexión activa", - "LogoutAllActiveConnections": "Salir de todas las conexiones activas", "LogoutAllActiveSessionsDescription": "Todas las conexiones activas excepto esta conexión se desconectarán, ya que está actualmente en uso.", "LogoutBtn": "Cerrar sesión", "LogoutDescription": "Aviso. Todas las conexiones activas excepto esta conexión se desconectarán, ya que está actualmente en uso.", diff --git a/packages/client/public/locales/fi/Profile.json b/packages/client/public/locales/fi/Profile.json index c1c42aeeae..d6bf3d4c85 100644 --- a/packages/client/public/locales/fi/Profile.json +++ b/packages/client/public/locales/fi/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Käyttöliittymän teema", "LightTheme": "Kevyt teema", "LogoutActiveConnection": "Kirjaudu ulos aktiivisesta yhteydestä", - "LogoutAllActiveConnections": "Kirjaudu ulos aktiivisista yhteyksistä", "LogoutAllActiveSessionsDescription": "Kaikki aktiiviset yhteydet paitsi tämä yhteys kirjataan ulos, koska se on tällä hetkellä käytössä oleva.", "LogoutBtn": "Kirjaudu ulos", "LogoutDescription": "Huom. Kaikki aktiiviset yhteydet paitsi tämä yhteys kirjataan ulos, koska se on tällä hetkellä käytössä oleva.", diff --git a/packages/client/public/locales/fr/Profile.json b/packages/client/public/locales/fr/Profile.json index 7be5a8059d..9f4073a6c6 100644 --- a/packages/client/public/locales/fr/Profile.json +++ b/packages/client/public/locales/fr/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Thème d'interface", "LightTheme": "Thème clair", "LogoutActiveConnection": "Déconnexion de la connexion active", - "LogoutAllActiveConnections": "Déconnexion de toutes les connexions actives", "LogoutAllActiveSessionsDescription": "Toutes les connexions actives seront désactivées, à l’exception de cette connexion, car elle est en cours d’utilisation.", "LogoutBtn": "Se déconnecter", "LogoutDescription": "Remarque : toutes les connexions actives seront désactivées, à l’exception de cette connexion, car elle est en cours d’utilisation.", diff --git a/packages/client/public/locales/hy-AM/Profile.json b/packages/client/public/locales/hy-AM/Profile.json index 897ef0063b..fb18391bf7 100644 --- a/packages/client/public/locales/hy-AM/Profile.json +++ b/packages/client/public/locales/hy-AM/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Միջերեսի ոճ", "LightTheme": "Բաց ոճ", "LogoutActiveConnection": "Դուրս եկեք ակտիվ կապից", - "LogoutAllActiveConnections": "Դուրս եկեք բոլոր ակտիվ կապերից", "LogoutAllActiveSessionsDescription": "Բոլոր ակտիվ կապերը, բացի այս կապից, դուրս կգրվեն, քանի որ այն ներկայումս օգտագործվում է:", "LogoutBtn": "Դուրս գալ", "LogoutDescription": "Նշում. Բոլոր ակտիվ կապերը, բացի այս կապից, դուրս կգրվեն, քանի որ այն ներկայումս օգտագործվում է:", diff --git a/packages/client/public/locales/it/Profile.json b/packages/client/public/locales/it/Profile.json index 9124cce716..c173783f3c 100644 --- a/packages/client/public/locales/it/Profile.json +++ b/packages/client/public/locales/it/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema dell'interfaccia", "LightTheme": "Tema chiaro", "LogoutActiveConnection": "Esci dalla connessione attiva", - "LogoutAllActiveConnections": "Esci da tutte le connessioni attive", "LogoutAllActiveSessionsDescription": "Tutte le connessioni attive tranne questa che è attualmente in uso, verranno disconnesse.", "LogoutBtn": "Esci", "LogoutDescription": "Ti preghiamo di notare. Tutte le connessioni attive tranne questa connessione verranno disconnesse, poiché è attualmente in uso.", diff --git a/packages/client/public/locales/ja-JP/Profile.json b/packages/client/public/locales/ja-JP/Profile.json index cb05ef22cb..850472d0bd 100644 --- a/packages/client/public/locales/ja-JP/Profile.json +++ b/packages/client/public/locales/ja-JP/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "インターフェイスのテーマ", "LightTheme": "ライトのテーマ", "LogoutActiveConnection": "アクティブな接続からログアウトする", - "LogoutAllActiveConnections": "すべてのアクティブな接続からログアウトする", "LogoutAllActiveSessionsDescription": "この接続以外の接続は、現在使用中のため、ログアウトされます。", "LogoutBtn": "ログアウト", "LogoutDescription": "ご注意:この接続以外の接続は、現在使用中のため、ログアウトされます。", diff --git a/packages/client/public/locales/ko-KR/Profile.json b/packages/client/public/locales/ko-KR/Profile.json index eeb104c55a..3661d4e1e5 100644 --- a/packages/client/public/locales/ko-KR/Profile.json +++ b/packages/client/public/locales/ko-KR/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "인터페이스 테마", "LightTheme": "라이트 테마", "LogoutActiveConnection": "활성 연결에서 로그아웃", - "LogoutAllActiveConnections": "모든 활성 연결에서 로그아웃", "LogoutAllActiveSessionsDescription": "현재 사용 중이므로 이 연결을 제외한 모든 활성 연결이 로그아웃됩니다.", "LogoutBtn": "로그아웃", "LogoutDescription": "참고. 현재 사용 중이므로 이 연결을 제외한 모든 활성 연결이 로그아웃됩니다.", diff --git a/packages/client/public/locales/lo-LA/Profile.json b/packages/client/public/locales/lo-LA/Profile.json index 1e5280b248..abf2e9e7c1 100644 --- a/packages/client/public/locales/lo-LA/Profile.json +++ b/packages/client/public/locales/lo-LA/Profile.json @@ -14,7 +14,6 @@ "InterfaceTheme": "ການໂຕ້ຕອບ ຫົວ​ຂໍ້", "LightTheme": "ແສງສະຫວ່າງ ຫົວ​ຂໍ້", "LogoutActiveConnection": "ອອກຈາກລະບົບການເຊື່ອມຕໍ່ທີ່ໃຊ້ງານ", - "LogoutAllActiveConnections": "ອອກຈາກລະບົບການເຊື່ອມຕໍ່ທັງໝົດ", "LogoutAllActiveSessionsDescription": "ການ​ເຊື່ອມ​ຕໍ່​ທີ່​ໃຊ້​ງານ​ທັງ​ຫມົດ​ຍົກ​ເວັ້ນ​ການ​ເຊື່ອມ​ຕໍ່​ນີ້​ຈະ​ຖືກ​ອອກ​ຈາກ​ລະ​ບົບ​, ເນື່ອງ​ຈາກ​ວ່າ​ມັນ​ກໍາ​ລັງ​ໃຊ້​ໃນ​ປັດ​ຈຸ​ບັນ​", "LogoutBtn": "ອອກ​ຈາກ​ລະ​ບົບ", "LogoutDescription": "ຫມາຍ​ເຫດ​. ການ​ເຊື່ອມ​ຕໍ່​ທີ່​ໃຊ້​ງານ​ທັງ​ຫມົດ​ຍົກ​ເວັ້ນ​ການ​ເຊື່ອມ​ຕໍ່​ນີ້​ຈະ​ຖືກ​ອອກ​ຈາກ​ລະ​ບົບ​, ເນື່ອງ​ຈາກ​ວ່າ​ມັນ​ກໍາ​ລັງ​ໃຊ້​ໃນ​ປັດ​ຈຸ​ບັນ​.", diff --git a/packages/client/public/locales/lv/Profile.json b/packages/client/public/locales/lv/Profile.json index dab5586054..e5d82eb1ad 100644 --- a/packages/client/public/locales/lv/Profile.json +++ b/packages/client/public/locales/lv/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Interfeisa dizains", "LightTheme": "Gaišs dizains", "LogoutActiveConnection": "Izrakstīties no aktīvā savienojuma", - "LogoutAllActiveConnections": "Izrakstīties no visiem aktīvajiem savienojumiem", "LogoutAllActiveSessionsDescription": "Visi aktīvie savienojumi, izņemot šo savienojumu, tiks izrakstīti, jo tas pašlaik tiek lietots.", "LogoutBtn": "Izrakstīties", "LogoutDescription": "Piezīme. Visi aktīvie savienojumi, izņemot šo savienojumu, tiks izrakstīti, jo tas pašlaik tiek lietots.", diff --git a/packages/client/public/locales/nl/Profile.json b/packages/client/public/locales/nl/Profile.json index bcb2eeee04..c7ff45573f 100644 --- a/packages/client/public/locales/nl/Profile.json +++ b/packages/client/public/locales/nl/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Interface thema", "LightTheme": "Licht thema", "LogoutActiveConnection": "Uitloggen van actieve verbinding", - "LogoutAllActiveConnections": "Uitloggen bij alle actieve verbindingen", "LogoutAllActiveSessionsDescription": "Alle actieve verbindingen behalve deze verbinding worden uitgelogd, omdat deze momenteel in gebruik is.", "LogoutBtn": "Uitloggen", "LogoutDescription": "Opmerking. Alle actieve verbindingen behalve deze verbinding worden uitgelogd, omdat deze momenteel in gebruik is.", diff --git a/packages/client/public/locales/pl/Profile.json b/packages/client/public/locales/pl/Profile.json index 43376580e3..e8943b2d84 100644 --- a/packages/client/public/locales/pl/Profile.json +++ b/packages/client/public/locales/pl/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Motyw interfejsu", "LightTheme": "Motyw jasny", "LogoutActiveConnection": "Wyloguj z aktywnego połączenia", - "LogoutAllActiveConnections": "Wyloguj ze wszystkich aktywnych połączeń", "LogoutAllActiveSessionsDescription": "Wszystkie aktywne połączenia, oprócz niniejszego zostaną wylogowane, ponieważ jest ono obecnie w użyciu.", "LogoutBtn": "Wyloguj", "LogoutDescription": "Uwaga. Wszystkie aktywne połączenia, oprócz niniejszego zostaną wylogowane, ponieważ jest ono obecnie w użyciu.", diff --git a/packages/client/public/locales/pt-BR/Profile.json b/packages/client/public/locales/pt-BR/Profile.json index 155ddb57d1..147b05839b 100644 --- a/packages/client/public/locales/pt-BR/Profile.json +++ b/packages/client/public/locales/pt-BR/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema de interface", "LightTheme": "Tema claro", "LogoutActiveConnection": "Sair da conexão ativa", - "LogoutAllActiveConnections": "Sair de todas as conexões ativas", "LogoutAllActiveSessionsDescription": "Todas as conexões ativas, exceto esta conexão, serão desconectadas, pois estão em uso no momento.", "LogoutBtn": "Sair", "LogoutDescription": "Observação. Todas as conexões ativas, exceto esta conexão, serão desconectadas, pois estão em uso no momento.", diff --git a/packages/client/public/locales/pt/Profile.json b/packages/client/public/locales/pt/Profile.json index acc601f1dd..762e5542d0 100644 --- a/packages/client/public/locales/pt/Profile.json +++ b/packages/client/public/locales/pt/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema da interface", "LightTheme": "Tema claro", "LogoutActiveConnection": "Terminar a sessão na conexão ativa", - "LogoutAllActiveConnections": "Terminar a sessão em todas as conexões ativas", "LogoutAllActiveSessionsDescription": "Todas as ligações ativas exceto esta ligação terão a sua sessão terminada, tal como está configurado atualmente.", "LogoutBtn": "Terminar sessão", "LogoutDescription": "Nota. Todas as ligações ativas exceto esta ligação terão a sua sessão terminada, tal como está configurado atualmente.", diff --git a/packages/client/public/locales/ro/Profile.json b/packages/client/public/locales/ro/Profile.json index e80c51b0bc..61a349ba95 100644 --- a/packages/client/public/locales/ro/Profile.json +++ b/packages/client/public/locales/ro/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema interfeței", "LightTheme": "Tema luminoasă", "LogoutActiveConnection": "Deconectează conexiunea activă", - "LogoutAllActiveConnections": "Deconectează toate conexiuni active", "LogoutAllActiveSessionsDescription": "Toate conexiunile active vor fi deconectate, cu excepţia acestei conexiuni, deoarece ea este în curs de utilizare.", "LogoutBtn": "Deconectare", "LogoutDescription": "Menţiune. Toate conexiunile active vor fi deconectate, cu excepţia acestei conexiuni, deoarece ea este în curs de utilizare.", diff --git a/packages/client/public/locales/ru/Profile.json b/packages/client/public/locales/ru/Profile.json index e7606095fb..f3fcfdac61 100644 --- a/packages/client/public/locales/ru/Profile.json +++ b/packages/client/public/locales/ru/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Тема интерфейса", "LightTheme": "Светлая тема", "LogoutActiveConnection": "Выйти из активного подключения", - "LogoutAllActiveConnections": "Выйти из всех активных подключений", "LogoutAllActiveSessionsDescription": "Все активные подключения, кроме этого подключения, будут отключены, так как оно используется в данный момент.", "LogoutBtn": "Выйти", "LogoutDescription": "Внимание. Все активные подключения, кроме этого, будут отключены, так как оно используется в данный момент.", diff --git a/packages/client/public/locales/si/Profile.json b/packages/client/public/locales/si/Profile.json index 0a5895ca5a..93ec942034 100644 --- a/packages/client/public/locales/si/Profile.json +++ b/packages/client/public/locales/si/Profile.json @@ -14,7 +14,6 @@ "InterfaceTheme": "අතුරු මුහුණතේ තේමාව", "LightTheme": "දීප්ත තේමාව", "LogoutActiveConnection": "සක්‍රිය සම්බන්ධතාවයෙන් නික්මෙන්න", - "LogoutAllActiveConnections": "සියළුම සක්‍රිය සම්බන්ධතා වලින් නික්මෙන්න", "LogoutAllActiveSessionsDescription": "මෙම සම්බන්ධතාවය හැර අනෙකුත් සියළුම සක්‍රිය සම්බන්ධතා නික්මවනු ඇත.", "LogoutBtn": "නික්මෙන්න", "LogoutDescription": "සටහන: මෙම සම්බන්ධතාවය හැර අනෙකුත් සියළුම සක්‍රිය සම්බන්ධතා නික්මවනු ඇත.", diff --git a/packages/client/public/locales/sk/Profile.json b/packages/client/public/locales/sk/Profile.json index 40ca375787..bb7b491a9c 100644 --- a/packages/client/public/locales/sk/Profile.json +++ b/packages/client/public/locales/sk/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Vzhľad prostredia", "LightTheme": "Svetlá téma", "LogoutActiveConnection": "Odhlásiť sa z aktívneho pripojenia", - "LogoutAllActiveConnections": "Odhlásiť sa zo všetkých aktívnych pripojení", "LogoutAllActiveSessionsDescription": "Budú odhlásené všetky aktívne pripojenia okrem tohto pripojenia, keďže sa práve používa.", "LogoutBtn": "Odhlásiť sa", "LogoutDescription": "Poznámka. Budú odhlásené všetky aktívne pripojenia okrem tohto pripojenia, keďže sa práve používa.", diff --git a/packages/client/public/locales/sl/Profile.json b/packages/client/public/locales/sl/Profile.json index b8157c216d..61b82147ed 100644 --- a/packages/client/public/locales/sl/Profile.json +++ b/packages/client/public/locales/sl/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema vmesnika", "LightTheme": "Svetla tema", "LogoutActiveConnection": "Odjava iz aktivne povezave", - "LogoutAllActiveConnections": "Odjava iz vseh aktivnih povezav", "LogoutAllActiveSessionsDescription": "Vse aktivne povezave bodo odjavljene, razen te, ki je trenutno v uporabi.", "LogoutBtn": "Odjava", "LogoutDescription": "Opomba. Vse aktivne povezave bodo odjavljene, razen te, ki je trenutno v uporabi.", diff --git a/packages/client/public/locales/sr-Cyrl-RS/Profile.json b/packages/client/public/locales/sr-Cyrl-RS/Profile.json index 19d9f64edb..e5c278c93c 100644 --- a/packages/client/public/locales/sr-Cyrl-RS/Profile.json +++ b/packages/client/public/locales/sr-Cyrl-RS/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Тема интерфејса", "LightTheme": "Светла тема", "LogoutActiveConnection": "Одјави се са активних конекција", - "LogoutAllActiveConnections": "Одјави се са свих активних конекција", "LogoutAllActiveSessionsDescription": "Све активне конекције осим ове конекције ће бити одјављене, зато што је тренутно у употреби.", "LogoutBtn": "Одјави се", "LogoutDescription": "Обратите пажњу. Све активне конекције осим ове конекције ће бити одјављене, зато што је тренутно у употреби.", diff --git a/packages/client/public/locales/sr-Latn-RS/Profile.json b/packages/client/public/locales/sr-Latn-RS/Profile.json index 92cf8a056e..014e6b63ef 100644 --- a/packages/client/public/locales/sr-Latn-RS/Profile.json +++ b/packages/client/public/locales/sr-Latn-RS/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Tema interfejsa", "LightTheme": "Svetla tema", "LogoutActiveConnection": "Odjavi se sa aktivnih konekcija", - "LogoutAllActiveConnections": "Odjavi se sa svih aktivnih konekcija", "LogoutAllActiveSessionsDescription": "Sve aktivne konekcije osim ove konekcije će biti odjavljene, zato što je trenutno u upotrebi.", "LogoutBtn": "Odjavi se", "LogoutDescription": "Obratite pažnju. Sve aktivne konekcije osim ove konekcije će biti odjavljene, zato što je trenutno u upotrebi.", diff --git a/packages/client/public/locales/tr/Profile.json b/packages/client/public/locales/tr/Profile.json index 1f05b51191..9e92f64cd4 100644 --- a/packages/client/public/locales/tr/Profile.json +++ b/packages/client/public/locales/tr/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Arayüz teması", "LightTheme": "Açık tema", "LogoutActiveConnection": "Aktif bağlantıdan çıkış yap", - "LogoutAllActiveConnections": "Tüm aktif bağlantılardan çıkış yap", "LogoutAllActiveSessionsDescription": "Şu anda kullanımda olduğundan, bu bağlantı dışındaki tüm aktif bağlantıların oturumu kapatılacaktır.", "LogoutBtn": "Çıkış Yap", "LogoutDescription": "Not. Şu anda kullanımda olduğundan, bu bağlantı dışındaki tüm aktif bağlantıların oturumu kapatılacaktır.", diff --git a/packages/client/public/locales/uk-UA/Profile.json b/packages/client/public/locales/uk-UA/Profile.json index 0cc5913124..716013c817 100644 --- a/packages/client/public/locales/uk-UA/Profile.json +++ b/packages/client/public/locales/uk-UA/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Тема інтерфейсу", "LightTheme": "Світла тема", "LogoutActiveConnection": "Вийти з активного з’єднання", - "LogoutAllActiveConnections": "Вийти з усіх активних з’єднань", "LogoutAllActiveSessionsDescription": "Для всіх активних з’єднань, окрім цього, яке зараз використовується, буде здійснено вихід із системи.", "LogoutBtn": "Вийти", "LogoutDescription": "Примітка. Для всіх активних з’єднань, окрім цього, яке зараз використовується, буде здійснено вихід із системи.", diff --git a/packages/client/public/locales/vi/Profile.json b/packages/client/public/locales/vi/Profile.json index 4472ade0af..66a7bbd2aa 100644 --- a/packages/client/public/locales/vi/Profile.json +++ b/packages/client/public/locales/vi/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "Chủ đề giao diện\"", "LightTheme": "Nền sáng", "LogoutActiveConnection": "Đăng xuất khỏi kết nối đang hoạt động", - "LogoutAllActiveConnections": "Đăng xuất khỏi tất cả các kết nối đang hoạt động", "LogoutAllActiveSessionsDescription": "Tất cả các kết nối đang hoạt động ngoại trừ kết nối này sẽ được đăng xuất, vì nó hiện đang được sử dụng.", "LogoutBtn": "Đăng xuất", "LogoutDescription": "Lưu ý. Tất cả các kết nối đang hoạt động ngoại trừ kết nối này sẽ được đăng xuất, vì nó hiện đang được sử dụng.", diff --git a/packages/client/public/locales/zh-CN/ChangePortalOwner.json b/packages/client/public/locales/zh-CN/ChangePortalOwner.json index 8af208760c..f27f433bee 100644 --- a/packages/client/public/locales/zh-CN/ChangePortalOwner.json +++ b/packages/client/public/locales/zh-CN/ChangePortalOwner.json @@ -1,14 +1,14 @@ { "AppointAdmin": "预约管理员", "BackupPortal": " 备份{{productName}}数据", - "ChangeInstruction": " 要更改{{productName}}所有者,请在下面选择新所有者的姓名。", - "ChangeOwner": " 更改{{productName}}所有者", + "ChangeInstruction": " 要更改{{productName}}所有者,请在下面选择新所有者的姓名。", + "ChangeOwner": " 更改{{productName}}所有者", "ChangeUser": "变更用户", "DeactivateOrDeletePortal": "停用或删除{{productName}}", "DoTheSame": "与管理员进行相同操作", "ManagePortal": " 管理{{productName}}配置", "ManageUser": "管理用户账户", - "NewPortalOwner": " 新{{productName}}所有者", - "PortalOwnerCan": " {{productName}}所有者可以:", + "NewPortalOwner": " 新{{productName}}所有者", + "PortalOwnerCan": " {{productName}}所有者可以:", "SetAccessRights": "设置访问权限" } diff --git a/packages/client/public/locales/zh-CN/ChangeUserTypeDialog.json b/packages/client/public/locales/zh-CN/ChangeUserTypeDialog.json index 36fb110cff..7966d85630 100644 --- a/packages/client/public/locales/zh-CN/ChangeUserTypeDialog.json +++ b/packages/client/public/locales/zh-CN/ChangeUserTypeDialog.json @@ -3,6 +3,6 @@ "ChangeUserTypeHeader": "变更用户类型", "ChangeUserTypeMessage": "‘{{ firstType }}’类型的用户将被移动至‘{{ secondType }}’类型。", "ChangeUserTypeMessageMulti": "选择的用户将被移动至'{{ secondType }}'类型。", - "ChangeUserTypeMessageWarning": " 您无法更改{{productName}}管理员和您自己的类型。", + "ChangeUserTypeMessageWarning": " 您无法更改{{productName}}管理员和您自己的类型。", "SuccessChangeUserType": "用户类型已成功变更" } diff --git a/packages/client/public/locales/zh-CN/Confirm.json b/packages/client/public/locales/zh-CN/Confirm.json index 11aebb8276..cebcd803cf 100644 --- a/packages/client/public/locales/zh-CN/Confirm.json +++ b/packages/client/public/locales/zh-CN/Confirm.json @@ -1,7 +1,7 @@ { "AccountWillBeCreated": " 将为 <1>{{email}}创建{{productName}}帐户。请完成您的注册:", "ChangePasswordSuccess": "密码已成功更改", - "ConfirmOwnerPortalSuccessMessage": " {{productName}}所有者已成功更改。您将于 10 秒后被重定向。", + "ConfirmOwnerPortalSuccessMessage": " {{productName}}所有者已成功更改。您将于 10 秒后被重定向。", "ConfirmOwnerPortalTitle": "请确认您要将{{productName}}所有者更改为{{newOwner}}。", "CurrentNumber": "您目前的手机号码", "DeleteProfileBtn": "删除我的账户", diff --git a/packages/client/public/locales/zh-CN/Profile.json b/packages/client/public/locales/zh-CN/Profile.json index 0a30146de0..932a944e58 100644 --- a/packages/client/public/locales/zh-CN/Profile.json +++ b/packages/client/public/locales/zh-CN/Profile.json @@ -15,7 +15,6 @@ "InterfaceTheme": "界面主題", "LightTheme": "浅色主题", "LogoutActiveConnection": "从活动连接中注销", - "LogoutAllActiveConnections": "从所有活动连接中注销", "LogoutAllActiveSessionsDescription": "由于此连接当前正在使用,故除此之外的所有活动连接都将被注销。", "LogoutBtn": "注销", "LogoutDescription": "注意,由于此连接当前正在使用,故除此之外的所有活动连接都将被注销。",