diff --git a/packages/client/public/locales/en/Settings.json b/packages/client/public/locales/en/Settings.json index 8e4dfe6377..f68a4c8cf2 100644 --- a/packages/client/public/locales/en/Settings.json +++ b/packages/client/public/locales/en/Settings.json @@ -64,6 +64,7 @@ "CustomTitlesText": "Welcome Page", "CustomTitlesWelcome": "Welcome Page Settings", "DataBackup": "Data backup", + "DataImport": "Data import", "Deactivate": "Deactivate", "DeactivateOrDeletePortal": "Deactivate or delete space.", "DeleteDocSpace": "Delete DocSpace", diff --git a/packages/client/public/locales/ru/Settings.json b/packages/client/public/locales/ru/Settings.json index 43c2ebf831..9d3aa9a613 100644 --- a/packages/client/public/locales/ru/Settings.json +++ b/packages/client/public/locales/ru/Settings.json @@ -64,6 +64,7 @@ "CustomTitlesText": "странице приветствия", "CustomTitlesWelcome": "Настройки страницы приветствия", "DataBackup": "Резервное копирование данных", + "DataImport": "Перенос данных", "Deactivate": "Деактивировать", "DeactivateOrDeletePortal": "Деактивировать или удалить портал.", "DeleteDocSpace": "Удалить DocSpace", diff --git a/packages/client/src/pages/PortalSettings/Layout/Article/Body/index.js b/packages/client/src/pages/PortalSettings/Layout/Article/Body/index.js index dda679f475..96e0eb8923 100644 --- a/packages/client/src/pages/PortalSettings/Layout/Article/Body/index.js +++ b/packages/client/src/pages/PortalSettings/Layout/Article/Body/index.js @@ -57,6 +57,8 @@ const getTreeItems = (data, path, t) => { return t("SingleSignOn"); case "DeveloperTools": return t("DeveloperTools"); + case "DataImport": + return t("DataImport"); default: throw new Error("Unexpected translation key"); } @@ -173,17 +175,21 @@ const ArticleBodyContent = (props) => { setSelectedKeys(["4-0"]); } - if (location.pathname.includes("developer")) { + if (location.pathname.includes("migration")) { setSelectedKeys(["5-0"]); } - if (location.pathname.includes("delete-data")) { + if (location.pathname.includes("developer")) { setSelectedKeys(["6-0"]); } - if (location.pathname.includes("payments")) { + if (location.pathname.includes("delete-data")) { setSelectedKeys(["7-0"]); } + + if (location.pathname.includes("payments")) { + setSelectedKeys(["8-0"]); + } } }, [tReady, setIsLoadedArticleBody, location.pathname, selectedKeys]); @@ -244,6 +250,8 @@ const ArticleBodyContent = (props) => { return t("PortalDeletion"); case "DeveloperTools": return t("DeveloperTools"); + case "DataImport": + return t("DataImport"); default: throw new Error("Unexpected translation key"); } @@ -285,7 +293,7 @@ const ArticleBodyContent = (props) => { isActive={item.key === selectedKeys[0][0]} onClick={() => onSelect(item.key)} folderId={item.id} - style={{ marginTop: `${item.key.includes(7) ? "16px" : "0"}` }} + style={{ marginTop: `${item.key.includes(8) ? "16px" : "0"}` }} /> ); }); diff --git a/packages/client/src/pages/PortalSettings/categories/data-import/index.js b/packages/client/src/pages/PortalSettings/categories/data-import/index.js new file mode 100644 index 0000000000..e8b5689295 --- /dev/null +++ b/packages/client/src/pages/PortalSettings/categories/data-import/index.js @@ -0,0 +1,4 @@ +const DataImport = () => { + return
Data Import Page
; +}; +export default DataImport; diff --git a/packages/client/src/pages/PortalSettings/utils/settingsTree.js b/packages/client/src/pages/PortalSettings/utils/settingsTree.js index 4ee7be4cba..409d55d071 100644 --- a/packages/client/src/pages/PortalSettings/utils/settingsTree.js +++ b/packages/client/src/pages/PortalSettings/utils/settingsTree.js @@ -7,6 +7,7 @@ import DataManagementIconUrl from "PUBLIC_DIR/images/data-management.react.svg?u import RestoreIconUrl from "PUBLIC_DIR/images/restore.react.svg?url"; import TrashIconUrl from "PUBLIC_DIR/images/trash.react.svg?url"; import DeveloperReactSvgUrl from "PUBLIC_DIR/images/catalog.developer.react.svg?url"; +import DataImportReactSvgUrl from "PUBLIC_DIR/images/catalog.import.react.svg?url"; /** * Array for generation current settings tree. @@ -281,8 +282,26 @@ export const settingsTree = [ ], }, { - id: "portal-settings_catalog-developer-tools", + id: "portal-settings_catalog-migration", key: "5", + icon: DataImportReactSvgUrl, + link: "migration", + tKey: "DataImport", + isHeader: true, + children: [ + { + id: "portal-settings_catalog-data-migration", + key: "5-0", + icon: "", + link: "data-import", + tKey: "DataImport", + isCategory: true, + }, + ], + }, + { + id: "portal-settings_catalog-developer-tools", + key: "6", icon: DeveloperReactSvgUrl, link: "developer-tools", tKey: "DeveloperTools", @@ -290,7 +309,7 @@ export const settingsTree = [ children: [ { id: "portal-settings_catalog-javascript-sdk", - key: "5-0", + key: "6-0", icon: "", link: "javascript-sdk", tKey: "DeveloperTools", @@ -298,7 +317,7 @@ export const settingsTree = [ }, { id: "portal-settings_catalog-webhooks", - key: "5-1", + key: "6-1", icon: "", link: "webhooks", tKey: "DeveloperTools", @@ -308,21 +327,21 @@ export const settingsTree = [ }, { id: "portal-settings_catalog-delete", - key: "6", + key: "7", icon: TrashIconUrl, link: "delete-data", tKey: "PortalDeletion", isHeader: true, children: [ { - key: "6-0", + key: "7-0", icon: "", link: "deletion", tKey: "PortalDeletion", isCategory: true, }, { - key: "6-1", + key: "7-1", icon: "", link: "deactivation", tKey: "PortalDeactivation", @@ -332,7 +351,7 @@ export const settingsTree = [ }, { id: "portal-settings_catalog-payments", - key: "7", + key: "8", icon: PaymentIconUrl, link: "payments", tKey: "Common:PaymentsTitle", @@ -340,7 +359,7 @@ export const settingsTree = [ children: [ { id: "portal-settings_catalog-portal-payments", - key: "7-0", + key: "8-0", icon: "", link: "portal-payments", tKey: "Common:PaymentsTitle", diff --git a/packages/client/src/routes/portalSettings.js b/packages/client/src/routes/portalSettings.js index 09d42b06a7..8e5e38770b 100644 --- a/packages/client/src/routes/portalSettings.js +++ b/packages/client/src/routes/portalSettings.js @@ -12,65 +12,100 @@ import { generalRoutes } from "./general"; const PortalSettings = loadable(() => import("../pages/PortalSettings")); const CustomizationSettings = loadable(() => - import("../pages/PortalSettings/categories/common/index.js"), + import("../pages/PortalSettings/categories/common/index.js") ); const LanguageAndTimeZoneSettings = loadable(() => - import("../pages/PortalSettings/categories/common/Customization/language-and-time-zone"), + import( + "../pages/PortalSettings/categories/common/Customization/language-and-time-zone" + ) ); const WelcomePageSettings = loadable(() => - import("../pages/PortalSettings/categories/common/Customization/welcome-page-settings"), + import( + "../pages/PortalSettings/categories/common/Customization/welcome-page-settings" + ) ); const DNSSettings = loadable(() => - import("../pages/PortalSettings/categories/common/Customization/dns-settings"), + import("../pages/PortalSettings/categories/common/Customization/dns-settings") ); const PortalRenaming = loadable(() => - import("../pages/PortalSettings/categories/common/Customization/portal-renaming"), + import( + "../pages/PortalSettings/categories/common/Customization/portal-renaming" + ) ); const WhiteLabel = loadable(() => - import("../pages/PortalSettings/categories/common/Branding/whitelabel"), + import("../pages/PortalSettings/categories/common/Branding/whitelabel") ); const SecuritySettings = loadable(() => - import("../pages/PortalSettings/categories/security/index.js"), + import("../pages/PortalSettings/categories/security/index.js") ); const TfaPage = loadable(() => - import("../pages/PortalSettings/categories/security/access-portal/tfa"), + import("../pages/PortalSettings/categories/security/access-portal/tfa") ); const PasswordStrengthPage = loadable(() => - import("../pages/PortalSettings/categories/security/access-portal/passwordStrength"), + import( + "../pages/PortalSettings/categories/security/access-portal/passwordStrength" + ) ); const TrustedMailPage = loadable(() => - import("../pages/PortalSettings/categories/security/access-portal/trustedMail"), + import( + "../pages/PortalSettings/categories/security/access-portal/trustedMail" + ) ); const IpSecurityPage = loadable(() => - import("../pages/PortalSettings/categories/security/access-portal/ipSecurity"), + import("../pages/PortalSettings/categories/security/access-portal/ipSecurity") ); const AdminMessagePage = loadable(() => - import("../pages/PortalSettings/categories/security/access-portal/adminMessage"), + import( + "../pages/PortalSettings/categories/security/access-portal/adminMessage" + ) ); const SessionLifetimePage = loadable(() => - import("../pages/PortalSettings/categories/security/access-portal/sessionLifetime"), + import( + "../pages/PortalSettings/categories/security/access-portal/sessionLifetime" + ) +); +const Integration = loadable(() => + import("../pages/PortalSettings/categories/integration") +); +const Payments = loadable(() => + import("../pages/PortalSettings/categories/payments") ); -const Integration = loadable(() => import("../pages/PortalSettings/categories/integration")); -const Payments = loadable(() => import("../pages/PortalSettings/categories/payments")); const ThirdParty = loadable(() => - import("../pages/PortalSettings/categories/integration/ThirdPartyServicesSettings"), + import( + "../pages/PortalSettings/categories/integration/ThirdPartyServicesSettings" + ) ); const SingleSignOn = loadable(() => - import("../pages/PortalSettings/categories/integration/SingleSignOn"), + import("../pages/PortalSettings/categories/integration/SingleSignOn") ); const DeveloperTools = loadable(() => - import("../pages/PortalSettings/categories/developer-tools/index.js"), + import("../pages/PortalSettings/categories/developer-tools/index.js") ); + +const DataImport = loadable(() => + import("../pages/PortalSettings/categories/data-import/index.js") +); + const WebhookHistory = loadable(() => - import("../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookHistory"), + import( + "../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookHistory" + ) ); const WebhookDetails = loadable(() => - import("../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookEventDetails"), + import( + "../pages/PortalSettings/categories/developer-tools/Webhooks/WebhookEventDetails" + ) +); +const Backup = loadable(() => + import("../pages/PortalSettings/categories/data-management/index") +); +const DeleteDataPage = loadable(() => + import("../pages/PortalSettings/categories/delete-data") ); -const Backup = loadable(() => import("../pages/PortalSettings/categories/data-management/index")); -const DeleteDataPage = loadable(() => import("../pages/PortalSettings/categories/delete-data")); const RestoreBackup = loadable(() => - import("../pages/PortalSettings/categories/data-management/backup/restore-backup/index"), + import( + "../pages/PortalSettings/categories/data-management/backup/restore-backup/index" + ) ); const PortalSettingsRoutes = { @@ -188,6 +223,10 @@ const PortalSettingsRoutes = { path: "developer-tools/javascript-sdk", element: , }, + { + path: "migration/data-import", + element: , + }, { path: "developer-tools/webhooks", element: , diff --git a/public/images/catalog.import.react.svg b/public/images/catalog.import.react.svg new file mode 100644 index 0000000000..e7f1ff5690 --- /dev/null +++ b/public/images/catalog.import.react.svg @@ -0,0 +1,3 @@ + + +