diff --git a/app/controllers/api/v1/accounts/portals_controller.rb b/app/controllers/api/v1/accounts/portals_controller.rb index 27c4126a6..770018e3c 100644 --- a/app/controllers/api/v1/accounts/portals_controller.rb +++ b/app/controllers/api/v1/accounts/portals_controller.rb @@ -78,7 +78,9 @@ class Api::V1::Accounts::PortalsController < Api::V1::Accounts::BaseController def portal_params params.require(:portal).permit( :id, :color, :custom_domain, :header_text, :homepage_link, - :name, :page_title, :slug, :archived, { config: [:default_locale, { allowed_locales: [] }, { draft_locales: [] }] } + :name, :page_title, :slug, :archived, + { config: [:default_locale, :layout, { allowed_locales: [] }, { draft_locales: [] }, + { social_profiles: %i[facebook x instagram linkedin youtube tiktok github whatsapp] }] } ) end diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalLayoutContentSettings.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalLayoutContentSettings.vue new file mode 100644 index 000000000..20016dfc1 --- /dev/null +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalLayoutContentSettings.vue @@ -0,0 +1,290 @@ + + + diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalSettings.vue b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalSettings.vue index 83800e002..eccf988cc 100644 --- a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalSettings.vue +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalSettings.vue @@ -7,6 +7,7 @@ import { useMapGetter } from 'dashboard/composables/store.js'; import HelpCenterLayout from 'dashboard/components-next/HelpCenter/HelpCenterLayout.vue'; import PortalBaseSettings from 'dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/PortalBaseSettings.vue'; import PortalConfigurationSettings from './PortalConfigurationSettings.vue'; +import PortalLayoutContentSettings from './PortalLayoutContentSettings.vue'; import ConfirmDeletePortalDialog from 'dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/ConfirmDeletePortalDialog.vue'; import Spinner from 'dashboard/components-next/spinner/Spinner.vue'; import Button from 'dashboard/components-next/button/Button.vue'; @@ -102,6 +103,12 @@ const handleDeletePortal = () => { @send-cname-instructions="handleSendCnameInstructions" />
+ +
diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/classic-layout-preview.svg b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/classic-layout-preview.svg new file mode 100644 index 000000000..d9fe9078a --- /dev/null +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/classic-layout-preview.svg @@ -0,0 +1,10 @@ + diff --git a/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/documentation-layout-preview.svg b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/documentation-layout-preview.svg new file mode 100644 index 000000000..efda93a6a --- /dev/null +++ b/app/javascript/dashboard/components-next/HelpCenter/Pages/PortalSettingsPage/documentation-layout-preview.svg @@ -0,0 +1,18 @@ + diff --git a/app/javascript/dashboard/components-next/radioCard/RadioCard.vue b/app/javascript/dashboard/components-next/radioCard/RadioCard.vue index 182325ed8..1f5398b15 100644 --- a/app/javascript/dashboard/components-next/radioCard/RadioCard.vue +++ b/app/javascript/dashboard/components-next/radioCard/RadioCard.vue @@ -1,4 +1,5 @@ diff --git a/app/javascript/dashboard/i18n/locale/en/helpCenter.json b/app/javascript/dashboard/i18n/locale/en/helpCenter.json index 9ae849d25..758bb1dca 100644 --- a/app/javascript/dashboard/i18n/locale/en/helpCenter.json +++ b/app/javascript/dashboard/i18n/locale/en/helpCenter.json @@ -866,6 +866,28 @@ }, "EDIT_CONFIGURATION": "Edit configuration" }, + "LAYOUT_CONTENT": { + "HEADER": "Appearance", + "DESCRIPTION": "Pick the layout that fits how your visitors read.", + "LAYOUT": { + "CLASSIC": { + "TITLE": "Classic", + "DESCRIPTION": "A welcoming home page with search and featured topics." + }, + "SIDEBAR": { + "TITLE": "Documentation", + "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away." + } + }, + "SOCIAL_LINKS": { + "HEADER": "Social links", + "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.", + "PLACEHOLDER": "handle", + "ADD": "Add social link", + "REMOVE": "Remove" + }, + "SAVE": "Save changes" + }, "API": { "CREATE_PORTAL": { "SUCCESS_MESSAGE": "Portal created successfully", diff --git a/app/javascript/dashboard/routes/dashboard/settings/inbox/components/LockToSingleConversationPreview.vue b/app/javascript/dashboard/routes/dashboard/settings/inbox/components/LockToSingleConversationPreview.vue index 77cbc2216..d2109ba9c 100644 --- a/app/javascript/dashboard/routes/dashboard/settings/inbox/components/LockToSingleConversationPreview.vue +++ b/app/javascript/dashboard/routes/dashboard/settings/inbox/components/LockToSingleConversationPreview.vue @@ -13,7 +13,7 @@ defineEmits(['update']);