web: dark/light theme fixes (#7872)

* web: fix css for user tree-view

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix unrelated things

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix header button colors

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* fix missing fallback not showing default slant

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

* move global theme-dark css to only use for SSR rendered pages

Signed-off-by: Jens Langhammer <jens@goauthentik.io>

---------

Signed-off-by: Jens Langhammer <jens@goauthentik.io>
# Conflicts:
#	.github/workflows/ci-main.yml
#	web/xliff/fr.xlf
This commit is contained in:
Jens L 2023-12-13 17:32:09 +01:00 committed by Jens Langhammer
parent a6b9274c4f
commit 29a6530742
No known key found for this signature in database
6 changed files with 143 additions and 45 deletions

View File

@ -48,25 +48,38 @@ jobs:
- name: run migrations - name: run migrations
run: poetry run python -m lifecycle.migrate run: poetry run python -m lifecycle.migrate
test-migrations-from-stable: test-migrations-from-stable:
name: test-migrations-from-stable - PostgreSQL ${{ matrix.psql }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
continue-on-error: true strategy:
fail-fast: false
matrix:
psql:
- 12-alpine
- 15-alpine
- 16-alpine
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Setup authentik env - name: Setup authentik env
uses: ./.github/actions/setup uses: ./.github/actions/setup
with:
postgresql_version: ${{ matrix.psql }}
- name: checkout stable - name: checkout stable
run: | run: |
# Delete all poetry envs
rm -rf /home/runner/.cache/pypoetry
# Copy current, latest config to local # Copy current, latest config to local
cp authentik/lib/default.yml local.env.yml cp authentik/lib/default.yml local.env.yml
cp -R .github .. cp -R .github ..
cp -R scripts .. cp -R scripts ..
git checkout $(git describe --tags $(git rev-list --tags --max-count=1)) git checkout version/$(python -c "from authentik import __version__; print(__version__)")
rm -rf .github/ scripts/ rm -rf .github/ scripts/
mv ../.github ../scripts . mv ../.github ../scripts .
- name: Setup authentik env (ensure stable deps are installed) - name: Setup authentik env (ensure stable deps are installed)
uses: ./.github/actions/setup uses: ./.github/actions/setup
with:
postgresql_version: ${{ matrix.psql }}
- name: run migrations to stable - name: run migrations to stable
run: poetry run python -m lifecycle.migrate run: poetry run python -m lifecycle.migrate
- name: checkout current code - name: checkout current code
@ -76,11 +89,16 @@ jobs:
git reset --hard HEAD git reset --hard HEAD
git clean -d -fx . git clean -d -fx .
git checkout $GITHUB_SHA git checkout $GITHUB_SHA
poetry install # Delete previous poetry env
rm -rf $(poetry env info --path)
- name: Setup authentik env (ensure latest deps are installed) - name: Setup authentik env (ensure latest deps are installed)
uses: ./.github/actions/setup uses: ./.github/actions/setup
with:
postgresql_version: ${{ matrix.psql }}
- name: migrate to latest - name: migrate to latest
run: poetry run python -m lifecycle.migrate run: |
poetry install
poetry run python -m lifecycle.migrate
test-unittest: test-unittest:
name: test-unittest - PostgreSQL ${{ matrix.psql }} name: test-unittest - PostgreSQL ${{ matrix.psql }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -97,7 +115,7 @@ jobs:
- name: Setup authentik env - name: Setup authentik env
uses: ./.github/actions/setup uses: ./.github/actions/setup
with: with:
postgresql_tag: ${{ matrix.psql }} postgresql_version: ${{ matrix.psql }}
- name: run unittest - name: run unittest
run: | run: |
poetry run make test poetry run make test

View File

@ -13,7 +13,6 @@
{% block head_before %} {% block head_before %}
{% endblock %} {% endblock %}
<link rel="stylesheet" type="text/css" href="{% static 'dist/authentik.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'dist/authentik.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'dist/theme-dark.css' %}" media="(prefers-color-scheme: dark)">
<link rel="stylesheet" type="text/css" href="{% static 'dist/custom.css' %}" data-inject> <link rel="stylesheet" type="text/css" href="{% static 'dist/custom.css' %}" data-inject>
<script src="{% static 'dist/poly.js' %}?version={{ version }}" type="module"></script> <script src="{% static 'dist/poly.js' %}?version={{ version }}" type="module"></script>
<script src="{% static 'dist/standalone/loading/index.js' %}?version={{ version }}" type="module"></script> <script src="{% static 'dist/standalone/loading/index.js' %}?version={{ version }}" type="module"></script>

View File

@ -6,6 +6,7 @@
{% block head_before %} {% block head_before %}
<link rel="prefetch" href="/static/dist/assets/images/flow_background.jpg" /> <link rel="prefetch" href="/static/dist/assets/images/flow_background.jpg" />
<link rel="stylesheet" type="text/css" href="{% static 'dist/patternfly.min.css' %}"> <link rel="stylesheet" type="text/css" href="{% static 'dist/patternfly.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'dist/theme-dark.css' %}" media="(prefers-color-scheme: dark)">
{% include "base/header_js.html" %} {% include "base/header_js.html" %}
{% endblock %} {% endblock %}

View File

@ -310,6 +310,12 @@ select[multiple] option:checked {
--pf-c-wizard__nav-link--before--BackgroundColor: transparent; --pf-c-wizard__nav-link--before--BackgroundColor: transparent;
} }
/* tree view */ /* tree view */
.pf-c-tree-view__node {
--pf-c-tree-view__node--Color: var(--ak-dark-foreground);
}
.pf-c-tree-view__node-toggle {
--pf-c-tree-view__node-toggle--Color: var(--ak-dark-foreground);
}
.pf-c-tree-view__node:focus { .pf-c-tree-view__node:focus {
--pf-c-tree-view__node--focus--BackgroundColor: var(--ak-dark-background-light-ish); --pf-c-tree-view__node--focus--BackgroundColor: var(--ak-dark-background-light-ish);
} }

View File

@ -82,9 +82,9 @@ export class UserInterface extends Interface {
:host([theme="dark"]) .pf-c-page__header { :host([theme="dark"]) .pf-c-page__header {
color: var(--ak-dark-foreground) !important; color: var(--ak-dark-foreground) !important;
} }
.pf-c-page__header-tools-item .fas, :host([theme="light"]) .pf-c-page__header-tools-item .fas,
.pf-c-notification-badge__count, :host([theme="light"]) .pf-c-notification-badge__count,
.pf-c-page__header-tools-group .pf-c-button { :host([theme="light"]) .pf-c-page__header-tools-group .pf-c-button {
color: var(--ak-global--Color--100) !important; color: var(--ak-global--Color--100) !important;
} }
.pf-c-page { .pf-c-page {
@ -183,7 +183,7 @@ export class UserInterface extends Interface {
<ak-enterprise-status interface="user"></ak-enterprise-status> <ak-enterprise-status interface="user"></ak-enterprise-status>
<div class="pf-c-page"> <div class="pf-c-page">
<div class="background-wrapper" style="${this.uiConfig.theme.background}"> <div class="background-wrapper" style="${this.uiConfig.theme.background}">
${this.uiConfig.theme.background === "" ${(this.uiConfig.theme.background || "") === ""
? html`<div class="background-default-slant"></div>` ? html`<div class="background-default-slant"></div>`
: html``} : html``}
</div> </div>

View File

@ -2561,31 +2561,6 @@ Il y a <x id="0" equiv-text="${ago}"/> jour(s)</target>
<source>If the password's score is less than or equal this value, the policy will fail.</source> <source>If the password's score is less than or equal this value, the policy will fail.</source>
<target>Si le score du mot de passe est inférieur ou égal à cette valeur, la politique échoue.</target> <target>Si le score du mot de passe est inférieur ou égal à cette valeur, la politique échoue.</target>
</trans-unit>
<trans-unit id="s1bfe7505059d164f">
<source>0: Too guessable: risky password. (guesses &lt; 10^3)</source>
<target>0: Trop prévisible: mot de passe risqué. (essais &lt; 10^3)</target>
</trans-unit>
<trans-unit id="s423d1f2477998d0b">
<source>1: Very guessable: protection from throttled online attacks. (guesses &lt; 10^6)</source>
<target>1: Très prévisible: protection contre les attaques en ligne limitées. (essais &lt; 10^6)</target>
</trans-unit>
<trans-unit id="s33849cc046eb901d">
<source>2: Somewhat guessable: protection from unthrottled online attacks. (guesses &lt; 10^8)</source>
<target>2: Quelque peu prévisible: protection contre les attaques en ligne non limitées. (essais &lt; 10^8)</target>
</trans-unit>
<trans-unit id="s578dcce295718e1b">
<source>3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &lt; 10^10)</source>
<target>3: Sûrement imprévisible: protection modérée contre les attaques de hash-lent hors ligne. (essais &lt; 10^10)</target>
</trans-unit>
<trans-unit id="s7a46de49f4eba5d7">
<source>4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &gt;= 10^10)</source>
<target>4: Très imprévisible: forte protection control les attaques de hash-lent hors ligne. (essais &gt;= 10^10)</target>
</trans-unit> </trans-unit>
<trans-unit id="sd6cd7ce2310a73a4"> <trans-unit id="sd6cd7ce2310a73a4">
<source>Checks the value from the policy request against several rules, mostly used to ensure password strength.</source> <source>Checks the value from the policy request against several rules, mostly used to ensure password strength.</source>
@ -6583,9 +6558,9 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti
</trans-unit> </trans-unit>
<trans-unit id="s96b3cddf33e1c853"> <trans-unit id="s96b3cddf33e1c853">
<source>You're currently impersonating <x id="0" equiv-text="${this.user.user.username}"/>. Click to stop.</source> <source>You're currently impersonating <x id="0" equiv-text="${this.impersonation}"/>. Click to stop.</source>
<target>Vous vous faites actuellement passer pour <target>Vous vous faites actuellement passer pour
<x id="0" equiv-text="${this.user.user.username}"/>. Cliquer pour arrêter.</target> <x id="0" equiv-text="${this.impersonation}"/>. Cliquer pour arrêter.</target>
</trans-unit> </trans-unit>
<trans-unit id="s7031e6928c44cedd"> <trans-unit id="s7031e6928c44cedd">
@ -7642,14 +7617,6 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti
<source>Your application has been saved</source> <source>Your application has been saved</source>
<target>L'application a été sauvegardée</target> <target>L'application a été sauvegardée</target>
</trans-unit> </trans-unit>
<trans-unit id="sf60f1e5b76897c93">
<source>In the Application:</source>
<target>Dans l'application :</target>
</trans-unit>
<trans-unit id="s7ce65cf482b7bff0">
<source>In the Provider:</source>
<target>Dans le fournisseur :</target>
</trans-unit>
<trans-unit id="s67d858051b34c38b"> <trans-unit id="s67d858051b34c38b">
<source>Method's display Name.</source> <source>Method's display Name.</source>
<target>Nom d'affichage de la méthode.</target> <target>Nom d'affichage de la méthode.</target>
@ -7950,24 +7917,131 @@ Les liaisons avec les groupes/utilisateurs sont vérifiées par rapport à l'uti
</trans-unit> </trans-unit>
<trans-unit id="sb35c08e3a541188f"> <trans-unit id="sb35c08e3a541188f">
<source>Also known as Client ID.</source> <source>Also known as Client ID.</source>
<target>Également appelé Client ID.</target>
</trans-unit> </trans-unit>
<trans-unit id="sd46fd9b647cfea10"> <trans-unit id="sd46fd9b647cfea10">
<source>Also known as Client Secret.</source> <source>Also known as Client Secret.</source>
<target>Également appelé Client Secret.</target>
</trans-unit> </trans-unit>
<trans-unit id="s4476e9c50cfd13f4"> <trans-unit id="s4476e9c50cfd13f4">
<source>Global status</source> <source>Global status</source>
<target>État global</target>
</trans-unit> </trans-unit>
<trans-unit id="sd21a971eea208533"> <trans-unit id="sd21a971eea208533">
<source>Vendor</source> <source>Vendor</source>
<target>Fournisseur</target>
</trans-unit> </trans-unit>
<trans-unit id="sadadfe9dfa06d7dd"> <trans-unit id="sadadfe9dfa06d7dd">
<source>No sync status.</source> <source>No sync status.</source>
<target>Pas d'état de synchronisation.</target>
</trans-unit> </trans-unit>
<trans-unit id="s2b1c81130a65a55b"> <trans-unit id="s2b1c81130a65a55b">
<source>Sync currently running.</source> <source>Sync currently running.</source>
<target>Synchronisation en cours.</target>
</trans-unit> </trans-unit>
<trans-unit id="sf36170f71cea38c2"> <trans-unit id="sf36170f71cea38c2">
<source>Connectivity</source> <source>Connectivity</source>
<target>Connectivité</target>
</trans-unit>
<trans-unit id="sd94e99af8b41ff54">
<source>0: Too guessable: risky password. (guesses &amp;lt; 10^3)</source>
<target>0: Trop prévisible: mot de passe risqué. (essais &amp;lt; 10^3)</target>
</trans-unit>
<trans-unit id="sc926385d1a624c3a">
<source>1: Very guessable: protection from throttled online attacks. (guesses &amp;lt; 10^6)</source>
<target>1: Très prévisible: protection contre les attaques en ligne limitées. (essais &amp;lt; 10^6)</target>
</trans-unit>
<trans-unit id="s8aae61c41319602c">
<source>2: Somewhat guessable: protection from unthrottled online attacks. (guesses &amp;lt; 10^8)</source>
<target>2: Quelque peu prévisible: protection contre les attaques en ligne non limitées. (essais &amp;lt; 10^8)</target>
</trans-unit>
<trans-unit id="sc1f4b57e722a89d6">
<source>3: Safely unguessable: moderate protection from offline slow-hash scenario. (guesses &amp;lt; 10^10)</source>
<target>3: Sûrement imprévisible: protection modérée contre les attaques de hash-lent hors ligne. (essais &amp;lt; 10^10)</target>
</trans-unit>
<trans-unit id="sd47f3d3c9741343d">
<source>4: Very unguessable: strong protection from offline slow-hash scenario. (guesses &amp;gt;= 10^10)</source>
<target>4: Très imprévisible: forte protection control les attaques de hash-lent hors ligne. (essais &amp;gt;= 10^10)</target>
</trans-unit>
<trans-unit id="s3d2a8b86a4f5a810">
<source>Successfully created user and added to group <x id="0" equiv-text="${this.group.name}"/></source>
<target>Utilisateur créé et ajouté au groupe <x id="0" equiv-text="${this.group.name}"/> avec succès</target>
</trans-unit>
<trans-unit id="s824e0943a7104668">
<source>This user will be added to the group "<x id="0" equiv-text="${this.targetGroup.name}"/>".</source>
<target>Cet utilisateur sera ajouté au groupe &amp;quot;<x id="0" equiv-text="${this.targetGroup.name}"/>&amp;quot;.</target>
</trans-unit>
<trans-unit id="s62e7f6ed7d9cb3ca">
<source>Pretend user exists</source>
<target>Faire comme si l'utilisateur existe</target>
</trans-unit>
<trans-unit id="s52bdc80690a9a8dc">
<source>When enabled, the stage will always accept the given user identifier and continue.</source>
<target>Lorsqu'activé, l'étape acceptera toujours l'identifiant utilisateur donné et continuera.</target>
</trans-unit>
<trans-unit id="scda8dc24b561e205">
<source>There was an error in the application.</source>
<target>Une erreur a été rencontrée dans l'application.</target>
</trans-unit>
<trans-unit id="sdaca9c2c0361ed3a">
<source>Review the application.</source>
<target>Passer en revue l'application.</target>
</trans-unit>
<trans-unit id="sb50000a8fada5672">
<source>There was an error in the provider.</source>
<target>Une erreur a été rencontrée dans le fournisseur.</target>
</trans-unit>
<trans-unit id="s21f95eaf151d4ce3">
<source>Review the provider.</source>
<target>Passer en revue le fournisseur.</target>
</trans-unit>
<trans-unit id="s9fd39a5cb20b4e61">
<source>There was an error</source>
<target>Il y a eu une erreur</target>
</trans-unit>
<trans-unit id="s7a6b3453209e1066">
<source>There was an error creating the application, but no error message was sent. Please review the server logs.</source>
<target>Il y a eu une erreur lors de la création de l'application, mais aucun message d'erreur n'a été envoyé. Veuillez consulter les logs du serveur.</target>
</trans-unit>
<trans-unit id="s1a711c19cda48375">
<source>Configure LDAP Provider</source>
<target>Configurer le fournisseur LDAP</target>
</trans-unit>
<trans-unit id="s9368e965b5c292ab">
<source>Configure OAuth2/OpenId Provider</source>
<target>Configurer le fournisseur OAuth2/OpenID</target>
</trans-unit>
<trans-unit id="sf5cbccdc6254c8dc">
<source>Configure Proxy Provider</source>
<target>Configurer le fournisseur Proxy</target>
</trans-unit>
<trans-unit id="sf6d46bb442b77e91">
<source>AdditionalScopes</source>
<target>Scopes additionels</target>
</trans-unit>
<trans-unit id="s2c8c6f89089b31d4">
<source>Configure Radius Provider</source>
<target>Configurer le fournisseur Radius</target>
</trans-unit>
<trans-unit id="sfe906cde5dddc041">
<source>Configure SAML Provider</source>
<target>Configurer le fournisseur SAML</target>
</trans-unit>
<trans-unit id="sb3defbacd01ad972">
<source>Property mappings used for user mapping.</source>
<target>Mappages de propriété utilisés pour la correspondance des utilisateurs.</target>
</trans-unit>
<trans-unit id="s7ccce0ec8d228db6">
<source>Configure SCIM Provider</source>
<target>Configurer le fournisseur SCIM</target>
</trans-unit>
<trans-unit id="sd7728d2b6e1d25e9">
<source>Property mappings used for group creation.</source>
<target>Mappages de propriétés utilisés lors de la création des groupe</target>
</trans-unit>
<trans-unit id="s7513372fe60f6387">
<source>Event volume</source>
<target>Volume d'événements</target>
</trans-unit> </trans-unit>
</body> </body>
</file> </file>