From 16454af1c08c1b736ecd487c7072d811521a4d4a Mon Sep 17 00:00:00 2001 From: Jens L Date: Tue, 13 Jun 2023 15:41:48 +0200 Subject: [PATCH] web/admin: theme adjustments (#5944) * web/admin: theme adjustments Signed-off-by: Jens Langhammer * update locale Signed-off-by: Jens Langhammer --------- Signed-off-by: Jens Langhammer --- locale/en/LC_MESSAGES/django.po | 131 +++++++++++++++------------- web/src/admin/AdminInterface.ts | 20 +++-- web/src/elements/Base.ts | 1 + web/src/elements/sidebar/Sidebar.ts | 10 ++- web/xliff/de.xlf | 6 ++ web/xliff/en.xlf | 6 ++ web/xliff/es.xlf | 6 ++ web/xliff/fr_FR.xlf | 6 ++ web/xliff/pl.xlf | 6 ++ web/xliff/pseudo-LOCALE.xlf | 6 ++ web/xliff/tr.xlf | 6 ++ web/xliff/zh-Hans.xlf | 6 ++ web/xliff/zh-Hant.xlf | 6 ++ web/xliff/zh_TW.xlf | 6 ++ 14 files changed, 151 insertions(+), 71 deletions(-) diff --git a/locale/en/LC_MESSAGES/django.po b/locale/en/LC_MESSAGES/django.po index a8e43fce6..44b6ccb85 100644 --- a/locale/en/LC_MESSAGES/django.po +++ b/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-06-12 12:11+0000\n" +"POT-Creation-Date: 2023-06-13 11:23+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -102,7 +102,7 @@ msgstr "" msgid "User's display name." msgstr "" -#: authentik/core/models.py:243 authentik/providers/oauth2/models.py:287 +#: authentik/core/models.py:243 authentik/providers/oauth2/models.py:294 msgid "User" msgstr "" @@ -662,33 +662,40 @@ msgid "Dummy Policies" msgstr "" #: authentik/policies/event_matcher/api.py:20 -#: authentik/policies/event_matcher/models.py:37 +#: authentik/policies/event_matcher/models.py:55 msgid "" "Match events created by selected application. When left empty, all " "applications are matched." msgstr "" -#: authentik/policies/event_matcher/api.py:27 +#: authentik/policies/event_matcher/api.py:29 +#: authentik/policies/event_matcher/models.py:63 +msgid "" +"Match events created by selected model. When left empty, all models are " +"matched. When an app is selected, all the application's models are matched." +msgstr "" + +#: authentik/policies/event_matcher/api.py:42 msgid "At least one criteria must be set." msgstr "" -#: authentik/policies/event_matcher/models.py:29 +#: authentik/policies/event_matcher/models.py:47 msgid "" "Match created events with this action type. When left empty, all action " "types will be matched." msgstr "" -#: authentik/policies/event_matcher/models.py:44 +#: authentik/policies/event_matcher/models.py:71 msgid "" "Matches Event's Client IP (strict matching, for network matching use an " "Expression Policy)" msgstr "" -#: authentik/policies/event_matcher/models.py:72 +#: authentik/policies/event_matcher/models.py:141 msgid "Event Matcher Policy" msgstr "" -#: authentik/policies/event_matcher/models.py:73 +#: authentik/policies/event_matcher/models.py:142 msgid "Event Matcher Policies" msgstr "" @@ -901,212 +908,212 @@ msgid "" "this method only if you have different UPN and Mail domains." msgstr "" -#: authentik/providers/oauth2/models.py:39 +#: authentik/providers/oauth2/models.py:42 msgid "Confidential" msgstr "" -#: authentik/providers/oauth2/models.py:40 +#: authentik/providers/oauth2/models.py:43 msgid "Public" msgstr "" -#: authentik/providers/oauth2/models.py:62 +#: authentik/providers/oauth2/models.py:65 msgid "Same identifier is used for all providers" msgstr "" -#: authentik/providers/oauth2/models.py:64 +#: authentik/providers/oauth2/models.py:67 msgid "Each provider has a different issuer, based on the application slug." msgstr "" -#: authentik/providers/oauth2/models.py:71 +#: authentik/providers/oauth2/models.py:74 msgid "code (Authorization Code Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:72 +#: authentik/providers/oauth2/models.py:75 msgid "id_token (Implicit Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:73 +#: authentik/providers/oauth2/models.py:76 msgid "id_token token (Implicit Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:74 +#: authentik/providers/oauth2/models.py:77 msgid "code token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:75 +#: authentik/providers/oauth2/models.py:78 msgid "code id_token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:76 +#: authentik/providers/oauth2/models.py:79 msgid "code id_token token (Hybrid Flow)" msgstr "" -#: authentik/providers/oauth2/models.py:82 +#: authentik/providers/oauth2/models.py:85 msgid "HS256 (Symmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:83 +#: authentik/providers/oauth2/models.py:86 msgid "RS256 (Asymmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:84 +#: authentik/providers/oauth2/models.py:87 msgid "ES256 (Asymmetric Encryption)" msgstr "" -#: authentik/providers/oauth2/models.py:90 +#: authentik/providers/oauth2/models.py:93 msgid "Scope used by the client" msgstr "" -#: authentik/providers/oauth2/models.py:94 +#: authentik/providers/oauth2/models.py:97 msgid "" "Description shown to the user when consenting. If left empty, the user won't " "be informed." msgstr "" -#: authentik/providers/oauth2/models.py:113 +#: authentik/providers/oauth2/models.py:116 msgid "Scope Mapping" msgstr "" -#: authentik/providers/oauth2/models.py:114 +#: authentik/providers/oauth2/models.py:117 msgid "Scope Mappings" msgstr "" -#: authentik/providers/oauth2/models.py:124 +#: authentik/providers/oauth2/models.py:127 msgid "Client Type" msgstr "" -#: authentik/providers/oauth2/models.py:126 +#: authentik/providers/oauth2/models.py:129 msgid "" "Confidential clients are capable of maintaining the confidentiality of their " "credentials. Public clients are incapable" msgstr "" -#: authentik/providers/oauth2/models.py:133 +#: authentik/providers/oauth2/models.py:136 msgid "Client ID" msgstr "" -#: authentik/providers/oauth2/models.py:139 +#: authentik/providers/oauth2/models.py:142 msgid "Client Secret" msgstr "" -#: authentik/providers/oauth2/models.py:145 +#: authentik/providers/oauth2/models.py:148 msgid "Redirect URIs" msgstr "" -#: authentik/providers/oauth2/models.py:146 +#: authentik/providers/oauth2/models.py:149 msgid "Enter each URI on a new line." msgstr "" -#: authentik/providers/oauth2/models.py:151 +#: authentik/providers/oauth2/models.py:154 msgid "Include claims in id_token" msgstr "" -#: authentik/providers/oauth2/models.py:153 +#: authentik/providers/oauth2/models.py:156 msgid "" "Include User claims from scopes in the id_token, for applications that don't " "access the userinfo endpoint." msgstr "" -#: authentik/providers/oauth2/models.py:162 +#: authentik/providers/oauth2/models.py:165 msgid "" "Access codes not valid on or after current time + this value (Format: " "hours=1;minutes=2;seconds=3)." msgstr "" -#: authentik/providers/oauth2/models.py:170 -#: authentik/providers/oauth2/models.py:178 +#: authentik/providers/oauth2/models.py:173 +#: authentik/providers/oauth2/models.py:181 msgid "" "Tokens not valid on or after current time + this value (Format: hours=1;" "minutes=2;seconds=3)." msgstr "" -#: authentik/providers/oauth2/models.py:187 +#: authentik/providers/oauth2/models.py:190 msgid "" "Configure what data should be used as unique User Identifier. For most " "cases, the default should be fine." msgstr "" -#: authentik/providers/oauth2/models.py:194 +#: authentik/providers/oauth2/models.py:197 msgid "Configure how the issuer field of the ID Token should be filled." msgstr "" -#: authentik/providers/oauth2/models.py:199 +#: authentik/providers/oauth2/models.py:202 msgid "Signing Key" msgstr "" -#: authentik/providers/oauth2/models.py:203 +#: authentik/providers/oauth2/models.py:206 msgid "" "Key used to sign the tokens. Only required when JWT Algorithm is set to " "RS256." msgstr "" -#: authentik/providers/oauth2/models.py:210 +#: authentik/providers/oauth2/models.py:213 msgid "" "Any JWT signed by the JWK of the selected source can be used to authenticate." msgstr "" -#: authentik/providers/oauth2/models.py:279 +#: authentik/providers/oauth2/models.py:286 msgid "OAuth2/OpenID Provider" msgstr "" -#: authentik/providers/oauth2/models.py:280 +#: authentik/providers/oauth2/models.py:287 msgid "OAuth2/OpenID Providers" msgstr "" -#: authentik/providers/oauth2/models.py:289 -#: authentik/providers/oauth2/models.py:421 +#: authentik/providers/oauth2/models.py:296 +#: authentik/providers/oauth2/models.py:428 msgid "Scopes" msgstr "" -#: authentik/providers/oauth2/models.py:308 +#: authentik/providers/oauth2/models.py:315 msgid "Code" msgstr "" -#: authentik/providers/oauth2/models.py:309 +#: authentik/providers/oauth2/models.py:316 msgid "Nonce" msgstr "" -#: authentik/providers/oauth2/models.py:310 +#: authentik/providers/oauth2/models.py:317 msgid "Code Challenge" msgstr "" -#: authentik/providers/oauth2/models.py:312 +#: authentik/providers/oauth2/models.py:319 msgid "Code Challenge Method" msgstr "" -#: authentik/providers/oauth2/models.py:332 +#: authentik/providers/oauth2/models.py:339 msgid "Authorization Code" msgstr "" -#: authentik/providers/oauth2/models.py:333 +#: authentik/providers/oauth2/models.py:340 msgid "Authorization Codes" msgstr "" -#: authentik/providers/oauth2/models.py:375 +#: authentik/providers/oauth2/models.py:382 msgid "OAuth2 Access Token" msgstr "" -#: authentik/providers/oauth2/models.py:376 +#: authentik/providers/oauth2/models.py:383 msgid "OAuth2 Access Tokens" msgstr "" -#: authentik/providers/oauth2/models.py:386 +#: authentik/providers/oauth2/models.py:393 msgid "ID Token" msgstr "" -#: authentik/providers/oauth2/models.py:405 +#: authentik/providers/oauth2/models.py:412 msgid "OAuth2 Refresh Token" msgstr "" -#: authentik/providers/oauth2/models.py:406 +#: authentik/providers/oauth2/models.py:413 msgid "OAuth2 Refresh Tokens" msgstr "" -#: authentik/providers/oauth2/models.py:433 +#: authentik/providers/oauth2/models.py:440 msgid "Device Token" msgstr "" -#: authentik/providers/oauth2/models.py:434 +#: authentik/providers/oauth2/models.py:441 msgid "Device Tokens" msgstr "" @@ -1495,19 +1502,19 @@ msgid "" "enabled on a single LDAP source." msgstr "" -#: authentik/sources/ldap/models.py:188 +#: authentik/sources/ldap/models.py:190 msgid "LDAP Source" msgstr "" -#: authentik/sources/ldap/models.py:189 +#: authentik/sources/ldap/models.py:191 msgid "LDAP Sources" msgstr "" -#: authentik/sources/ldap/models.py:211 +#: authentik/sources/ldap/models.py:213 msgid "LDAP Property Mapping" msgstr "" -#: authentik/sources/ldap/models.py:212 +#: authentik/sources/ldap/models.py:214 msgid "LDAP Property Mappings" msgstr "" diff --git a/web/src/admin/AdminInterface.ts b/web/src/admin/AdminInterface.ts index 87a1394c6..d6b19cc7f 100644 --- a/web/src/admin/AdminInterface.ts +++ b/web/src/admin/AdminInterface.ts @@ -30,7 +30,7 @@ import PFDrawer from "@patternfly/patternfly/components/Drawer/drawer.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; -import { AdminApi, SessionUser, Version } from "@goauthentik/api"; +import { AdminApi, SessionUser, UiThemeEnum, Version } from "@goauthentik/api"; autoDetectLanguage(); @@ -116,7 +116,11 @@ export class AdminInterface extends Interface { render(): TemplateResult { return html`
${this.renderSidebarItems()} @@ -203,18 +207,18 @@ export class AdminInterface extends Interface { ${msg("Applications")} - ${SLUG_REGEX})$`]} - > - ${msg("Applications")} - ${ID_REGEX})$`]} > ${msg("Providers")} + ${SLUG_REGEX})$`]} + > + ${msg("Applications")} + ${msg("Outposts")} diff --git a/web/src/elements/Base.ts b/web/src/elements/Base.ts index be1b23aa6..8ffbbf3dc 100644 --- a/web/src/elements/Base.ts +++ b/web/src/elements/Base.ts @@ -160,6 +160,7 @@ export class AKElement extends LitElement { root.adoptedStyleSheets = root.adoptedStyleSheets.filter((v) => v !== oldStylesheet); } this._activeTheme = theme; + this.requestUpdate(); } disconnectedCallback() { diff --git a/web/src/elements/sidebar/Sidebar.ts b/web/src/elements/sidebar/Sidebar.ts index 4ffd84cf9..69604b13f 100644 --- a/web/src/elements/sidebar/Sidebar.ts +++ b/web/src/elements/sidebar/Sidebar.ts @@ -9,6 +9,8 @@ import PFNav from "@patternfly/patternfly/components/Nav/nav.css"; import PFPage from "@patternfly/patternfly/components/Page/page.css"; import PFBase from "@patternfly/patternfly/patternfly-base.css"; +import { UiThemeEnum } from "@goauthentik/api"; + @customElement("ak-sidebar") export class Sidebar extends AKElement { static get styles(): CSSResult[] { @@ -25,6 +27,9 @@ export class Sidebar extends AKElement { .pf-c-nav__item.pf-m-current:not(.pf-m-expanded) .pf-c-nav__link::after { --pf-c-nav__link--m-current--after--BorderColor: #fd4b2d; } + :host([theme="light"]) { + border-right-color: transparent !important; + } .pf-c-nav__section + .pf-c-nav__section { --pf-c-nav__section--section--MarginTop: var(--pf-global--spacer--sm); @@ -61,7 +66,10 @@ export class Sidebar extends AKElement { } render(): TemplateResult { - return html`