-
-
Notifications
You must be signed in to change notification settings - Fork 909
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
web: manage stacked modals with a stack #9193
Conversation
Getting ESBuild, Lit, and Storybook to all agree on how to read and parse stylesheets is a serious pain. This fix better identifies the value types (instances) being passed from various sources in the repo to the three *different* kinds of style processors we're using (the native one, the polyfill one, and whatever the heck Storybook does internally). Falling back to using older CSS instantiating techniques one era at a time seems to do the trick. It's ugly, but in the face of the aggressive styling we use to avoid Flashes of Unstyled Content (FLoUC), it's the logic with which we're left. In standard mode, the following warning appears on the console when running a Flow: ``` Autofocus processing was blocked because a document already has a focused element. ``` In compatibility mode, the following **error** appears on the console when running a Flow: ``` crawler-inject.js:1106 Uncaught TypeError: Failed to execute 'observe' on 'MutationObserver': parameter 1 is not of type 'Node'. at initDomMutationObservers (crawler-inject.js:1106:18) at crawler-inject.js:1114:24 at Array.forEach (<anonymous>) at initDomMutationObservers (crawler-inject.js:1114:10) at crawler-inject.js:1549:1 initDomMutationObservers @ crawler-inject.js:1106 (anonymous) @ crawler-inject.js:1114 initDomMutationObservers @ crawler-inject.js:1114 (anonymous) @ crawler-inject.js:1549 ``` Despite this error, nothing seems to be broken and flows work as anticipated.
* main: tenants: really ensure default tenant cannot be deleted (#8875) core: bump github.com/go-openapi/runtime from 0.27.2 to 0.28.0 (#8867) core: bump pytest from 8.0.2 to 8.1.1 (#8868) core: bump github.com/go-openapi/strfmt from 0.22.2 to 0.23.0 (#8869) core: bump bandit from 1.7.7 to 1.7.8 (#8870) core: bump packaging from 23.2 to 24.0 (#8871) core: bump ruff from 0.3.1 to 0.3.2 (#8873) web: bump the wdio group in /tests/wdio with 3 updates (#8865) core: bump requests-oauthlib from 1.3.1 to 1.4.0 (#8866) core: bump uvicorn from 0.27.1 to 0.28.0 (#8872) core: bump django-filter from 23.5 to 24.1 (#8874)
* main: web: fix esbuild issue with style sheets (#8856)
* main: web: upgrade to lit 3 (#8781)
* main: Update _envoy_istio.md (#8888) website/docs: new landing page for Providers (#8879) web: bump the sentry group in /web with 1 update (#8881) web: bump chromedriver from 122.0.4 to 122.0.5 in /tests/wdio (#8884) web: bump the eslint group in /tests/wdio with 2 updates (#8883) web: bump the eslint group in /web with 2 updates (#8885) website: bump @types/react from 18.2.64 to 18.2.65 in /website (#8886)
* main: (31 commits) root: support redis username (#8935) core: bump black from 24.2.0 to 24.3.0 (#8945) web: bump the wdio group in /tests/wdio with 2 updates (#8939) web: bump the sentry group in /web with 1 update (#8941) website: bump postcss from 8.4.35 to 8.4.36 in /website (#8940) core: bump twilio from 9.0.1 to 9.0.2 (#8942) core: bump ruff from 0.3.2 to 0.3.3 (#8943) events: discard notification if user has empty email (#8938) ci: always run ci-main on branch pushes (#8950) core: bump goauthentik.io/api/v3 from 3.2024022.2 to 3.2024022.3 (#8946) website/docs: add new name "Microsft Entra ID" for Azure AD (#8930) outposts: Enhance config options for k8s outposts (#7363) website/docs: add link to CRUD docs (#8925) web: bump API Client version (#8927) outpost: improved set secret answers for flow execution (#8013) stages/user_write: ensure user data is json-serializable (#8926) website/docs: update example ldapsearch commands (#8906) admin: Handle latest version unknown in admin dashboard (#8858) core: bump coverage from 7.4.3 to 7.4.4 (#8917) core: bump urllib3 from 1.26.18 to 2.2.1 (#8918) ...
* main: outposts/proxy: Fix invalid redirect on external hosts containing path components (#8915) core: cache user application list under policies (#8895) web: bump the eslint group in /web with 2 updates (#8959) web: bump core-js from 3.36.0 to 3.36.1 in /web (#8960) website: bump @types/react from 18.2.66 to 18.2.67 in /website (#8962) web: bump the eslint group in /tests/wdio with 2 updates (#8963)
* main: web: improve build speeds even moar!!!!!! (#8954)
* main: website/docs: config: remove options moved to tenants (#8976) web: bump @types/grecaptcha from 3.0.8 to 3.0.9 in /web (#8971) web: bump country-flag-icons from 1.5.9 to 1.5.10 in /web (#8970) web: bump the babel group in /web with 7 updates (#8969) core: bump uvicorn from 0.28.0 to 0.28.1 (#8968) website: bump postcss from 8.4.36 to 8.4.37 in /website (#8967) internal: cleanup static file serving setup code (#8965) website/integrations: portainer: match portainer settings order (#8974)
* main: website/docs: add example policy to enforce unique email address (#8955) web/admin: remove enterprise preview banner (#8991) core: bump uvicorn from 0.28.1 to 0.29.0 (#8980) core: bump sentry-sdk from 1.42.0 to 1.43.0 (#8981) web: bump the babel group in /web with 3 updates (#8983) web: bump typescript from 5.4.2 to 5.4.3 in /web (#8984) web: bump typescript from 5.4.2 to 5.4.3 in /tests/wdio (#8986) web: bump chromedriver from 122.0.6 to 123.0.0 in /tests/wdio (#8987) website: bump typescript from 5.4.2 to 5.4.3 in /website (#8989) core: bump importlib-metadata from 7.0.2 to 7.1.0 (#8982) web: bump the wdio group in /tests/wdio with 3 updates (#8985) website: bump postcss from 8.4.37 to 8.4.38 in /website (#8988)
* main: web: bump API Client version (#9021) sources/ldap: add ability to disable password write on login (#8377) web: bump API Client version (#9020) lifecycle: migrate: ensure template schema exists before migrating (#8952) website/integrations: Update nextcloud Admin Group Expression (#7314) web/flow: general ux improvements (#8558) website: bump @types/react from 18.2.67 to 18.2.69 in /website (#9016) core: bump requests-oauthlib from 1.4.0 to 2.0.0 (#9018) web: bump the sentry group in /web with 2 updates (#9017) web/admin: small fixes (#9002) website: bump webpack-dev-middleware from 5.3.3 to 5.3.4 in /website (#9001) core: bump ruff from 0.3.3 to 0.3.4 (#8998) website/docs: Upgrade nginx reverse porxy config (#8947) website/docs: improve flow inspector docs (#8993) website/deverlop-docs website/integrations: add links to integrations template (#8995)
* main: web: bump API Client version (#9035) website/docs: maintenance, re-add system settings (#9026) core: bump duo-client from 5.2.0 to 5.3.0 (#9029) website: bump express from 4.18.2 to 4.19.2 in /website (#9027) web: bump express from 4.18.3 to 4.19.2 in /web (#9028) web: bump the eslint group in /web with 2 updates (#9030) core: bump goauthentik.io/api/v3 from 3.2024022.3 to 3.2024022.5 (#9031) website: bump @types/react from 18.2.69 to 18.2.70 in /website (#9032) web: bump the eslint group in /tests/wdio with 2 updates (#9033) web: bump katex from 0.16.9 to 0.16.10 in /web (#9025) translate: Updates for file locale/en/LC_MESSAGES/django.po in fr (#9023) website/docs: include OS-specific docker-compose install instructions + minor fixes (#8975)
* main: web: a few minor bugfixes and lintfixes (#9044) website/integrations: add documentation for OIDC setup with Xen Orchestra (#9000) website: bump @types/react from 18.2.70 to 18.2.72 in /website (#9041) core: bump goauthentik.io/api/v3 from 3.2024022.5 to 3.2024022.6 (#9042) web: fix markdown rendering bug for alerts (#9037)
* main: (23 commits) providers/oauth2: fix interactive device flow (#9076) website/docs: fix transports example (#9074) events: fix log_capture (#9075) web: bump the sentry group in /web with 2 updates (#9065) core: bump goauthentik.io/api/v3 from 3.2024022.6 to 3.2024022.7 (#9064) web: bump @codemirror/lang-python from 6.1.4 to 6.1.5 in /web (#9068) web: bump the eslint group in /web with 1 update (#9066) web: bump glob from 10.3.10 to 10.3.12 in /web (#9069) web: bump the rollup group in /web with 3 updates (#9067) web: bump the eslint group in /tests/wdio with 1 update (#9071) core: bump webauthn from 2.0.0 to 2.1.0 (#9070) core: bump sentry-sdk from 1.43.0 to 1.44.0 (#9073) core: bump requests-mock from 1.12.0 to 1.12.1 (#9072) web: bump API Client version (#9061) events: rework log messages returned from API and their rendering (#8770) website/docs: update airgapped config (#9049) website: bump @types/react from 18.2.72 to 18.2.73 in /website (#9052) web: bump the rollup group in /web with 3 updates (#9053) core: bump django-filter from 24.1 to 24.2 (#9055) core: bump requests-mock from 1.11.0 to 1.12.0 (#9056) ...
* main: root: fix missing imports after #9081 (#9106) root: move database calls from ready() to dedicated startup signal (#9081) web: fix console log leftover (#9096) web: bump the eslint group in /web with 2 updates (#9098) core: bump twilio from 9.0.2 to 9.0.3 (#9103) web: bump the eslint group in /tests/wdio with 2 updates (#9099) core: bump drf-spectacular from 0.27.1 to 0.27.2 (#9100) core: bump django-model-utils from 4.4.0 to 4.5.0 (#9101) core: bump ruff from 0.3.4 to 0.3.5 (#9102) website/docs: update notes on SECRET_KEY (#9091) web: fix broken locale compile (#9095) website/integrations: add outline knowledge base (#8786) website/docs: fix typo (#9082) website/docs: email stage: fix example translation error (#9048)
* main: (22 commits) blueprints: fix default username field in user-settings flow (#9136) website/docs: add procedural docs for RAC (#9006) web: bump API Client version (#9133) ci: fix python client generator (#9134) root: generate python client (#9107) web: Bump vite from 5.1.4 to 5.2.8 in /web (#9120) core, web: update translations (#9124) core: Bump golang from 1.22.1-bookworm to 1.22.2-bookworm (#9125) web: Bump the babel group in /web with 2 updates (#9126) web: Bump the eslint group in /web with 1 update (#9127) web: Bump the eslint group in /tests/wdio with 1 update (#9129) core: Bump sentry-sdk from 1.44.0 to 1.44.1 (#9130) core: Bump channels from 4.0.0 to 4.1.0 (#9131) core: Bump django from 5.0.3 to 5.0.4 (#9132) web: Bump the rollup group in /web with 3 updates (#9128) translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#9110) translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#9109) translate: Updates for file web/xliff/en.xlf in zh_CN (#9111) translate: Updates for file web/xliff/en.xlf in zh-Hans (#9112) web: Bump @fortawesome/fontawesome-free from 6.5.1 to 6.5.2 in /web (#9116) ...
* main: (25 commits) root: fix readme (#9178) enterprise: fix audit middleware import (#9177) web: bump @spotlightjs/spotlight from 1.2.16 to 1.2.17 in /web in the sentry group (#9162) web: bump API Client version (#9174) stages/authenticator_webauthn: add MDS support (#9114) website/integrations: Update Nextcloud OIDC secret size limitation (#9139) translate: Updates for file web/xliff/en.xlf in zh_CN (#9170) translate: Updates for file web/xliff/en.xlf in zh-Hans (#9171) web: bump the rollup group in /web with 3 updates (#9164) web: bump @codemirror/legacy-modes from 6.3.3 to 6.4.0 in /web (#9166) web: bump ts-pattern from 5.1.0 to 5.1.1 in /web (#9167) core: bump github.com/go-ldap/ldap/v3 from 3.4.6 to 3.4.7 (#9168) core, web: update translations (#9156) root: fix redis username in lifecycle (#9158) web: ak-checkbox-group for short, static, multi-select events (#9138) root: fix startup (#9151) core: Bump golang.org/x/oauth2 from 0.18.0 to 0.19.0 (#9146) core: Bump twilio from 9.0.3 to 9.0.4 (#9143) web: Bump country-flag-icons from 1.5.10 to 1.5.11 in /web (#9144) web: Bump typescript from 5.4.3 to 5.4.4 in /web (#9145) ...
"Events flow up. Instructions flow down." This commit creates a top-level listening controller associated with the main Interface that listens for ModalShow events and registers the modal with a stack. When it receives a corresponding KeyUp:Escape, it closes the topmost modal and removes all references to that modal from the stack. When it receives a ModalHide event, it removes all references to the target modal and removes all references to that modal from the stack. This commit includes a few new techniques. First, thanks to Justin Fagnani and the Shoelace team, this commit includes an alternative technique for declaring custom events by leveraging the GlobalEventHandlers type. This actually works better: the event is explicit, easy to understand, and the typescript language server actually gets them to correspond correctly; if you listen for a specific custom event, the handler had better be of the right type to receive that specific event! Second, this introduces the first custom decorator, @bound(), which eliminates the need to say `this.eventHandler = this.eventHandler.bind(this)` from event handling methods that will have to be passed outside the `this` context of an HTMLElement. After conducting several experiments to see if I understood the PropertyDescriptor protocol correctly, I conclud that this is a safe technique for wiring up `removeEventListener()` handlers.
* main: web/admin: fix SAML Provider preview (#9192) core, web: update translations (#9183) web: bump chromedriver from 123.0.1 to 123.0.2 in /tests/wdio (#9188) website: bump @types/react from 18.2.74 to 18.2.75 in /website (#9185) website/docs: update Postgresql username (#9190) core: bump maxmind/geoipupdate from v6.1 to v7.0 (#9186) events: add context manager to ignore/modify audit events being written (#9181) web: fix application library list display length and capability (#9094)
* dev: web/admin: fix SAML Provider preview (#9192) core, web: update translations (#9183) web: bump chromedriver from 123.0.1 to 123.0.2 in /tests/wdio (#9188) website: bump @types/react from 18.2.74 to 18.2.75 in /website (#9185) website/docs: update Postgresql username (#9190) core: bump maxmind/geoipupdate from v6.1 to v7.0 (#9186) events: add context manager to ignore/modify audit events being written (#9181) web: fix application library list display length and capability (#9094)
✅ Deploy Preview for authentik-docs canceled.
|
✅ Deploy Preview for authentik-storybook ready!
To edit notification comments on pull requests, go to your Netlify site configuration. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #9193 +/- ##
==========================================
+ Coverage 92.38% 92.40% +0.02%
==========================================
Files 646 646
Lines 31851 31851
==========================================
+ Hits 29425 29433 +8
+ Misses 2426 2418 -8
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
By reviewer request, the `.closeModal()` protocol has been updated so that if the method returns `false` (explicitly; `undefined` is not `false`!), the `.closeModal()` protocol is aborted, the modal remains at the top of the stack, and cleanup is not initiated. Modal forms can now have an "are you sure?" pass if the user triggers a close without saving the form. Figuring out how to close *two* modals if the user *is* sure, and making the Form modal return `true` when the user *is* sure, are left for a future exercise. :-)
authentik PR Installation instructions Instructions for docker-composeAdd the following block to your AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ghcr.io/goauthentik/dev-server:gh-a62f83eaddd513ad459055f44e7128b5701d01c1
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s For arm64, use these values: AUTHENTIK_IMAGE=ghcr.io/goauthentik/dev-server
AUTHENTIK_TAG=gh-ghcr.io/goauthentik/dev-server:gh-a62f83eaddd513ad459055f44e7128b5701d01c1-arm64
AUTHENTIK_OUTPOSTS__CONTAINER_IMAGE_BASE=ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s Afterwards, run the upgrade commands from the latest release notes. Instructions for KubernetesAdd the following block to your authentik:
outposts:
container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
image:
repository: ghcr.io/goauthentik/dev-server
tag: gh-ghcr.io/goauthentik/dev-server:gh-a62f83eaddd513ad459055f44e7128b5701d01c1 For arm64, use these values: authentik:
outposts:
container_image_base: ghcr.io/goauthentik/dev-%(type)s:gh-%(build_hash)s
image:
repository: ghcr.io/goauthentik/dev-server
tag: gh-ghcr.io/goauthentik/dev-server:gh-a62f83eaddd513ad459055f44e7128b5701d01c1-arm64 Afterwards, run the upgrade commands from the latest release notes. |
* main: (21 commits) web: manage stacked modals with a stack (#9193) website/docs: ensure yaml code blocks have language tags (#9240) blueprints: only create default brand if no other default brand exists (#9222) web: bump API Client version (#9239) website/integrations: portainer: Fix Redirect URL mismatch (#9226) api: fix authentication schema (#9238) translate: Updates for file web/xliff/en.xlf in zh_CN (#9229) translate: Updates for file web/xliff/en.xlf in zh-Hans (#9230) translate: Updates for file locale/en/LC_MESSAGES/django.po in zh_CN (#9228) translate: Updates for file locale/en/LC_MESSAGES/django.po in zh-Hans (#9231) core: bump pydantic from 2.6.4 to 2.7.0 (#9232) core: bump ruff from 0.3.5 to 0.3.7 (#9233) web: bump @sentry/browser from 7.109.0 to 7.110.0 in /web in the sentry group (#9234) website: bump @types/react from 18.2.75 to 18.2.77 in /website (#9236) core, web: update translations (#9225) website/integrations: add pfSense search scope (#9221) core: bump idna from 3.6 to 3.7 (#9224) website/docs: add websocket support to nginx snippets (#9220) internal: add tests to go flow executor (#9219) website/integrations: nextcloud: add tip to solve hashed groups configuring OAuth2 (#9153) ...
web: manage stacked modals with a stack
“Events flow up. Data flows down.”
This commit creates a top-level listening controller associated with the main Interface that listens for ModalShow events and registers the modal with a stack. When it receives a corresponding KeyUp:Escape, it closes the topmost modal and removes all references to that modal from the stack. When it receives a ModalHide event, it removes all references to the target modal and removes all references to that modal from the stack.
This commit includes a few new techniques. First, thanks to Justin Fagnani and the Shoelace team, this commit includes an alternative technique for declaring custom events by leveraging the GlobalEventHandlers type. This actually works better: the event is explicit, easy to understand, and the typescript language server actually gets them to correspond correctly; if you listen for a specific custom event, the handler had better be of the right type to receive that specific event!
Second, this introduces the first custom decorator, @bound(), which eliminates the need to say
this.eventHandler = this.eventHandler.bind(this)
from event handling methods that will have to be passed outside thethis
context of an HTMLElement. After conducting several experiments to see if I understood the PropertyDescriptor protocol correctly, I concluded that this is a safe technique for wiring upremoveEventListener()
handlers.Checklist
make web
)