mirror of
https://github.com/zitadel/zitadel.git
synced 2024-12-12 11:04:25 +00:00
03a38fbf1c
* feat: add get custom message text to admin api * feat: read custom message texts from files * feat: get languages in apis * feat: get languages in apis * feat: get languages in apis * feat: pr feedback * feat: docs * feat: merge main
86 lines
3.1 KiB
Go
86 lines
3.1 KiB
Go
package templates
|
|
|
|
import (
|
|
"fmt"
|
|
"html"
|
|
"strings"
|
|
|
|
"github.com/caos/zitadel/internal/domain"
|
|
"github.com/caos/zitadel/internal/i18n"
|
|
iam_model "github.com/caos/zitadel/internal/iam/model"
|
|
)
|
|
|
|
const (
|
|
defaultFont = "http://fonts.googleapis.com/css?family=Lato:200,300,400,600"
|
|
defaultFontFamily = "-apple-system, BlinkMacSystemFont, Segoe UI, Lato, Arial, Helvetica, sans-serif"
|
|
defaultLogo = "https://static.zitadel.ch/zitadel-logo-dark@3x.png"
|
|
defaultFontColor = "#22292f"
|
|
defaultBackgroundColor = "#fafafa"
|
|
defaultPrimaryColor = "#5282C1"
|
|
)
|
|
|
|
type TemplateData struct {
|
|
Title string
|
|
PreHeader string
|
|
Subject string
|
|
Greeting string
|
|
Text string
|
|
Href string
|
|
ButtonText string
|
|
PrimaryColor string
|
|
BackgroundColor string
|
|
FontColor string
|
|
LogoURL string
|
|
FontURL string
|
|
FontFamily string
|
|
|
|
IncludeFooter bool
|
|
FooterText string
|
|
}
|
|
|
|
func (data *TemplateData) Translate(translator *i18n.Translator, msgType string, args map[string]interface{}, langs ...string) {
|
|
data.Title = translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessageTitle), args, langs...)
|
|
data.PreHeader = translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessagePreHeader), args, langs...)
|
|
data.Subject = translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessageSubject), args, langs...)
|
|
data.Greeting = translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessageGreeting), args, langs...)
|
|
data.Text = html.UnescapeString(translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessageText), args, langs...))
|
|
data.ButtonText = translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessageButtonText), args, langs...)
|
|
data.FooterText = translator.Localize(fmt.Sprintf("%s.%s", msgType, domain.MessageFooterText), args, langs...)
|
|
}
|
|
|
|
func GetTemplateData(translator *i18n.Translator, translateArgs map[string]interface{}, apiDomain, href, msgType, lang string, policy *iam_model.LabelPolicyView) TemplateData {
|
|
templateData := TemplateData{
|
|
Href: href,
|
|
PrimaryColor: defaultPrimaryColor,
|
|
BackgroundColor: defaultBackgroundColor,
|
|
FontColor: defaultFontColor,
|
|
LogoURL: defaultLogo,
|
|
FontURL: defaultFont,
|
|
FontFamily: defaultFontFamily,
|
|
IncludeFooter: false,
|
|
}
|
|
templateData.Translate(translator, msgType, translateArgs, lang)
|
|
if policy.PrimaryColor != "" {
|
|
templateData.PrimaryColor = policy.PrimaryColor
|
|
}
|
|
if policy.BackgroundColor != "" {
|
|
templateData.BackgroundColor = policy.BackgroundColor
|
|
}
|
|
if policy.FontColor != "" {
|
|
templateData.FontColor = policy.FontColor
|
|
}
|
|
if apiDomain == "" {
|
|
return templateData
|
|
}
|
|
templateData.LogoURL = ""
|
|
if policy.LogoURL != "" {
|
|
templateData.LogoURL = fmt.Sprintf("%s/assets/v1/%s/%s", apiDomain, policy.AggregateID, policy.LogoURL)
|
|
}
|
|
if policy.FontURL != "" {
|
|
split := strings.Split(policy.FontURL, "/")
|
|
templateData.FontFamily = split[len(split)-1] + "," + defaultFontFamily
|
|
templateData.FontURL = fmt.Sprintf("%s/assets/v1/%s/%s", apiDomain, policy.AggregateID, policy.FontURL)
|
|
}
|
|
return templateData
|
|
}
|