Web: bugfix: broken backchannel selector (#7480) * web: break circular dependency between AKElement & Interface. This commit changes the way the root node of the web application shell is discovered by child components, such that the base class shared by both no longer results in a circular dependency between the two models. I've run this in isolation and have seen no failures of discovery; the identity token exists as soon as the Interface is constructed and is found by every item on the page. * web: fix broken typescript references This built... and then it didn't? Anyway, the current fix is to provide type information the AkInterface for the data that consumers require. * web: rollback dependabot's upgrade of context The most frustrating part of this is that I RAN THIS, dammit, with the updated context and the current Wizard, and it finished the End-to-End tests without complaint. * web: bugfix: broken backchannel selector There were two bugs here, both of them introduced by me because I didn't understand the system well enough the first time through, and because I didn't test thoroughly enough. The first is that I was calling the wrong confirmation code; the resulting syntax survived because `confirm()` is actually a legitimate function call in the context of the DOM Window, a legacy survivor similar to `alert()` but with a yes/no return value. Bleah. The second is that the confirm code doesn't appear to pass back a dictionary with the `{ items: Array<Provider> }` list, it passes back just the `items` as an Array. Co-authored-by: Ken Sternberg <133134217+kensternberg-authentik@users.noreply.github.com>
This commit is contained in:
parent
3809400e93
commit
f5c6e7aeb0
|
@ -116,7 +116,7 @@ export class ApplicationForm extends ModelForm<Application, string> {
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleConfirmBackchannelProviders({ items }: { items: Provider[] }) {
|
handleConfirmBackchannelProviders(items: Provider[]) {
|
||||||
this.backchannelProviders = items;
|
this.backchannelProviders = items;
|
||||||
this.requestUpdate();
|
this.requestUpdate();
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
|
|
|
@ -63,7 +63,7 @@ export class AkBackchannelProvidersInput extends AKElement {
|
||||||
return html`
|
return html`
|
||||||
<ak-form-element-horizontal label=${this.label} name=${name}>
|
<ak-form-element-horizontal label=${this.label} name=${name}>
|
||||||
<div class="pf-c-input-group">
|
<div class="pf-c-input-group">
|
||||||
<ak-provider-select-table ?backchannelOnly=${true} .confirm=${confirm}>
|
<ak-provider-select-table ?backchannelOnly=${true} .confirm=${this.confirm}>
|
||||||
<button slot="trigger" class="pf-c-button pf-m-control" type="button">
|
<button slot="trigger" class="pf-c-button pf-m-control" type="button">
|
||||||
${this.tooltip ? this.tooltip : nothing}
|
${this.tooltip ? this.tooltip : nothing}
|
||||||
<i class="fas fa-plus" aria-hidden="true"></i>
|
<i class="fas fa-plus" aria-hidden="true"></i>
|
||||||
|
|
Reference in New Issue