Replace portal title with entity name

Store a short entity name instead of the full home
heading so orgs can brand portals for sub-entities.
Restore hero i18n composition and keep the English
document title composed from the entity name.

Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
Émile Ré
2026-07-21 19:06:55 +02:00
parent 0fe814cfe4
commit 0d832508c9
46 changed files with 148 additions and 97 deletions

View File

@@ -49,7 +49,7 @@ type (
NonDisclosureAgreementFileID *gid.GID `db:"non_disclosure_agreement_file_id"`
DefaultDomainID *gid.GID `db:"default_domain_id"`
CustomDomainID *gid.GID `db:"custom_domain_id"`
Title string `db:"title"`
EntityName string `db:"entity_name"`
Description *string `db:"description"`
WebsiteURL *string `db:"website_url"`
Email *string `db:"email"`
@@ -129,7 +129,7 @@ SELECT
non_disclosure_agreement_file_id,
default_domain_id,
custom_domain_id,
title,
entity_name,
description,
website_url,
email,
@@ -188,7 +188,7 @@ SELECT
non_disclosure_agreement_file_id,
default_domain_id,
custom_domain_id,
title,
entity_name,
description,
website_url,
email,
@@ -247,7 +247,7 @@ SELECT
non_disclosure_agreement_file_id,
default_domain_id,
custom_domain_id,
title,
entity_name,
description,
website_url,
email,
@@ -306,7 +306,7 @@ SELECT
non_disclosure_agreement_file_id,
default_domain_id,
custom_domain_id,
title,
entity_name,
description,
website_url,
email,
@@ -365,7 +365,7 @@ SELECT
non_disclosure_agreement_file_id,
default_domain_id,
custom_domain_id,
title,
entity_name,
description,
website_url,
email,
@@ -420,7 +420,7 @@ INSERT INTO trust_centers (
non_disclosure_agreement_file_id,
default_domain_id,
custom_domain_id,
title,
entity_name,
description,
website_url,
email,
@@ -440,7 +440,7 @@ INSERT INTO trust_centers (
@non_disclosure_agreement_file_id,
@default_domain_id,
@custom_domain_id,
@title,
@entity_name,
@description,
@website_url,
@email,
@@ -463,7 +463,7 @@ INSERT INTO trust_centers (
"non_disclosure_agreement_file_id": tc.NonDisclosureAgreementFileID,
"default_domain_id": tc.DefaultDomainID,
"custom_domain_id": tc.CustomDomainID,
"title": tc.Title,
"entity_name": tc.EntityName,
"description": tc.Description,
"website_url": tc.WebsiteURL,
"email": tc.Email,
@@ -502,7 +502,7 @@ SET
non_disclosure_agreement_file_id = @non_disclosure_agreement_file_id,
default_domain_id = @default_domain_id,
custom_domain_id = @custom_domain_id,
title = @title,
entity_name = @entity_name,
description = @description,
website_url = @website_url,
email = @email,
@@ -525,7 +525,7 @@ WHERE
"non_disclosure_agreement_file_id": tc.NonDisclosureAgreementFileID,
"default_domain_id": tc.DefaultDomainID,
"custom_domain_id": tc.CustomDomainID,
"title": tc.Title,
"entity_name": tc.EntityName,
"description": tc.Description,
"website_url": tc.WebsiteURL,
"email": tc.Email,

View File

@@ -0,0 +1,36 @@
-- Copyright (c) 2026 Probo Inc <hello@probo.com>.
--
-- Permission is hereby granted, free of charge, to any person obtaining a copy
-- of this software and associated documentation files (the "Software"), to deal
-- in the Software without restriction, including without limitation the rights
-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-- copies of the Software, and to permit persons to whom the Software is
-- furnished to do so, subject to the following conditions:
--
-- The above copyright notice and this permission notice shall be included in
-- all copies or substantial portions of the Software.
--
-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-- SOFTWARE.
-- entity_name is the short name shown in the hero ("Compliance at {{name}}.")
-- and TopBar brand. Prefill from the organization so existing portals keep a
-- sensible default; customized full titles in the old title column are dropped.
ALTER TABLE trust_centers
ADD COLUMN entity_name TEXT NOT NULL DEFAULT '';
UPDATE trust_centers tc
SET entity_name = o.name
FROM organizations o
WHERE tc.organization_id = o.id;
ALTER TABLE trust_centers
ALTER COLUMN entity_name DROP DEFAULT;
ALTER TABLE trust_centers
DROP COLUMN title;