web/admin: replace flow selections with ak-search-select
Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
		| @ -1,5 +1,6 @@ | ||||
| import { DEFAULT_CONFIG } from "@goauthentik/common/api/config"; | ||||
| import { first } from "@goauthentik/common/utils"; | ||||
| import "@goauthentik/elements/SearchSelect"; | ||||
| import "@goauthentik/elements/forms/FormGroup"; | ||||
| import "@goauthentik/elements/forms/HorizontalFormElement"; | ||||
| import { ModelForm } from "@goauthentik/elements/forms/ModelForm"; | ||||
| @ -20,8 +21,10 @@ import PFSpacing from "@patternfly/patternfly/utilities/Spacing/spacing.css"; | ||||
|  | ||||
| import { | ||||
|     CryptoApi, | ||||
|     Flow, | ||||
|     FlowsApi, | ||||
|     FlowsInstancesListDesignationEnum, | ||||
|     FlowsInstancesListRequest, | ||||
|     PropertymappingsApi, | ||||
|     ProvidersApi, | ||||
|     ProxyMode, | ||||
| @ -292,26 +295,32 @@ export class ProxyProviderFormPage extends ModelForm<ProxyProvider, number> { | ||||
|                 ?required=${true} | ||||
|                 name="authorizationFlow" | ||||
|             > | ||||
|                 <select class="pf-c-form-control"> | ||||
|                     ${until( | ||||
|                         new FlowsApi(DEFAULT_CONFIG) | ||||
|                             .flowsInstancesList({ | ||||
|                                 ordering: "slug", | ||||
|                                 designation: FlowsInstancesListDesignationEnum.Authorization, | ||||
|                             }) | ||||
|                             .then((flows) => { | ||||
|                                 return flows.results.map((flow) => { | ||||
|                                     return html`<option | ||||
|                                         value=${ifDefined(flow.pk)} | ||||
|                                         ?selected=${this.instance?.authorizationFlow === flow.pk} | ||||
|                                     > | ||||
|                                         ${flow.name} (${flow.slug}) | ||||
|                                     </option>`; | ||||
|                                 }); | ||||
|                             }), | ||||
|                         html`<option>${t`Loading...`}</option>`, | ||||
|                     )} | ||||
|                 </select> | ||||
|                 <ak-search-select | ||||
|                     .fetchObjects=${async (query?: string): Promise<Flow[]> => { | ||||
|                         const args: FlowsInstancesListRequest = { | ||||
|                             ordering: "name", | ||||
|                             designation: FlowsInstancesListDesignationEnum.Authorization, | ||||
|                         }; | ||||
|                         if (query !== undefined) { | ||||
|                             args.search = query; | ||||
|                         } | ||||
|                         const flows = await new FlowsApi(DEFAULT_CONFIG).flowsInstancesList(args); | ||||
|                         return flows.results; | ||||
|                     }} | ||||
|                     .renderElement=${(flow: Flow): string => { | ||||
|                         return flow.name; | ||||
|                     }} | ||||
|                     .renderDescription=${(flow: Flow): string => { | ||||
|                         return flow.slug; | ||||
|                     }} | ||||
|                     .value=${(flow: Flow | undefined): string | undefined => { | ||||
|                         return flow?.pk; | ||||
|                     }} | ||||
|                     .selected=${(flow: Flow): boolean => { | ||||
|                         return flow.pk === this.instance?.authorizationFlow; | ||||
|                     }} | ||||
|                 > | ||||
|                 </ak-search-select> | ||||
|                 <p class="pf-c-form__helper-text"> | ||||
|                     ${t`Flow used when authorizing this provider.`} | ||||
|                 </p> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Jens Langhammer
					Jens Langhammer