web/standards: fix boolean attribute abuse (#14662)

* web: Add InvalidationFlow to Radius Provider dialogues

## What

- Bugfix: adds the InvalidationFlow to the Radius Provider dialogues
  - Repairs: `{"invalidation_flow":["This field is required."]}` message, which was *not* propagated
    to the Notification.
- Nitpick: Pretties `?foo=${true}` expressions: `s/\?([^=]+)=\$\{true\}/\1/`

## Note

Yes, I know I'm going to have to do more magic when we harmonize the forms, and no, I didn't add the
Property Mappings to the wizard, and yes, I know I'm going to have pain with the *new* version of
the wizard. But this is a serious bug; you can't make Radius servers with *either* of the current
dialogues at the moment.

* This (temporary) change is needed to prevent the unit tests from failing.

\# What

\# Why

\# How

\# Designs

\# Test Steps

\# Other Notes

* Revert "This (temporary) change is needed to prevent the unit tests from failing."

This reverts commit dddde09be5.

* web/maintenance: correct the usage of boolean (false) attributes

## What

Just cleaning up a bad habit; we have a lot of `?attribute=${true|false}` (or, more alarmingly,
`.attribute=${true|false}`.  These should just be `attribute` or be missing; anything else is
unnecessary.

Where the attribute is `true` by default, no changes have been made; there are only a few of them,
and they require re-working of the logic to assist with the changes. Booleans should never be `true` by
default, and if you absolutely cannot find an alternative phrasing that makes having them be `false`
by default a valid choice, they should be `reflect: true` to make their presence visible to screen
readers and debuggers.

## Why

Removing non-standard HTML uses from web components matches our programming standards and is an
important step toward the Authentik Elements NPM package, as well as the Schema-Driven Forms update.

## Boring excessive detail.

Because there are literally hundreds of changes, I've documented the boring ones here.

Changes that do *not* meet the basic criteria of "made the component comply with the standards" are
commented in the PR.

Here are all the Boolean property declarations in the system, delta the ones that declare `= true`;
those are documented at the bottom of this commit, and are not addressed in this PR.  This
information is included to guide your decision making.  The second block, below, documents the
actual changes made to component declarations throughout our code.  The third block, at the bottom,
documents changes not made due to logic and effort constraints.

```
components/ak-switch-input.ts:
    @property({ type: Boolean })
    checked: boolean = false;
--
components/ak-switch-input.ts:
    @property({ type: Boolean })
    required = false;
--
components/ak-file-input.ts:
    @property({ type: Boolean })
    required = false;
--
components/HorizontalLightComponent.ts:
    @property({ type: Boolean })
    required = false;
--
components/ak-multi-select.ts:
    @property({ type: Boolean })
    required = false;
--
elements/TreeView.ts:
    @property({ type: Boolean })
    open = false;
--
components/ak-status-label.ts:
    @property({ type: Boolean })
    good = false;
--
components/ak-status-label.ts:
    @property({ type: Boolean })
    compact = false;
--
elements/CodeMirror.ts:
    @property({ type: Boolean })
    readOnly = false;
--
elements/buttons/ModalButton.ts:
    @property({ type: Boolean })
    open = false;
--
elements/EmptyState.ts:
    @property({ type: Boolean })
    fullHeight = false;
--
elements/Tabs.ts:
    @property({ type: Boolean })
    vertical = false;
--
elements/ak-checkbox-group/ak-checkbox-group.ts:
    @property({ type: Boolean })
    required = false;
--
elements/Label.ts:
    @property({ type: Boolean })
    compact = false;
--
elements/forms/FormGroup.ts:
    @property({ type: Boolean, reflect: true })
    expanded = false;
--
elements/Expand.ts:
    @property({ type: Boolean })
    expanded = false;
--
elements/forms/HorizontalFormElement.ts:
    @property({ type: Boolean })
    required = false;
--
elements/forms/HorizontalFormElement.ts:
    @property({ type: Boolean })
    slugMode = false;
--
elements/forms/SearchSelect/ak-portal.ts:
    @property({ type: Boolean, reflect: true })
    open = false;
--
elements/Alert.ts:
    @property({ type: Boolean })
    inline = false;
--
elements/forms/SearchSelect/ak-search-select-view.ts:
    @property({ type: Boolean, reflect: true })
    open = false;
--
elements/forms/SearchSelect/ak-search-select-view.ts:
    @property({ type: Boolean })
    blankable = false;
--
elements/sidebar/SidebarItem.ts:
    @property({ type: Boolean })
    expanded = false;
--
admin/stages/StageWizard.ts:
    @property({ type: Boolean })
    showBindingPage = false;
--
elements/forms/FormElement.ts:
    @property({ type: Boolean })
    required = false;
--
admin/common/ak-flow-search/FlowSearch.ts:
    @property({ type: Boolean })
    required?: boolean = false;
--
admin/applications/ProviderSelectModal.ts:
    @property({ type: Boolean })
    backchannel = false;
--
elements/forms/SearchSelect/SearchSelect.ts:
    @property({ type: Boolean })
    blankable = false;
--
admin/applications/components/ak-provider-search-input.ts:
    @property({ type: Boolean })
    required = false;
--
admin/applications/components/ak-provider-search-input.ts:
    @property({ type: Boolean })
    blankable = false;
--
admin/applications/components/ak-backchannel-input.ts:
    @property({ type: Boolean })
    required = false;
--
admin/policies/PolicyWizard.ts:
    @property({ type: Boolean })
    showBindingPage = false;
```

The attribute 'required' is an HTML native, and is false by default.

Here are all the change pairs around HTML attrbutes:

```
$ git diff | rg -A 1 '\?(backchannel|blankable|checked|compact|expanded|fullHeight|good|inline|open|readOnly|required|showBindingPage|slugMode|vertical)\b'

-                ?required=${true}
+                required

-                    <ak-provider-select-table ?backchannel=${true} .confirm=${this.confirm}>
+                    <ak-provider-select-table backchannel .confirm=${this.confirm}>

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${false}

-                    ?required=${true}
+                    required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                                  ?blankable=${true}
+                                  blankable

-                        ?required=${true}
+                        required

-                ?blankable=${true}
+                blankable

-                ?blankable=${true}
+                blankable

-            ?required=${true}
+            required

-            ?required=${true}
+            required

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-        return html` <ak-form-element-horizontal label=${msg("Name")} name="name" ?required=${true}>
+        return html` <ak-form-element-horizontal label=${msg("Name")} name="name" required>

-                ?required=${true}
+                required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                    ?blankable=${true}
+                    blankable

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("Severity")} ?required=${true} name="severity">
+            <ak-form-element-horizontal label=${msg("Severity")} required name="severity">

-                        ?showBindingPage=${true}
+                        showBindingPage

-                ?showBindingPage=${true}
+                showBindingPage

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Title")} ?required=${true} name="title">
+            <ak-form-element-horizontal label=${msg("Title")} required name="title">

-            <ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
+            <ak-form-element-horizontal label=${msg("Slug")} required name="slug">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            ?required=${true}
+            required

-            <ak-form-element-horizontal label=${msg("Stage")} ?required=${true} name="stage">
+            <ak-form-element-horizontal label=${msg("Stage")} required name="stage">

-            <ak-form-element-horizontal label=${msg("Order")} ?required=${true} name="order">
+            <ak-form-element-horizontal label=${msg("Order")} required name="order">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                    ?blankable=${true}
+                    blankable

-                ?required=${true}
+                required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Type")} ?required=${true} name="type">
+            <ak-form-element-horizontal label=${msg("Type")} required name="type">

-                    ?blankable=${true}
+                    blankable

-                        <ak-label color=${PFColor.Green} ?compact=${true}>
+                        <ak-label color=${PFColor.Green} compact>

-                            ? html`<ak-label color=${PFColor.Red} ?compact=${true}
+                            ? html`<ak-label color=${PFColor.Red} compact

-                            : html`<ak-label color=${PFColor.Green} ?compact=${true}
+                            : html`<ak-label color=${PFColor.Green} compact

-                    ? html`<ak-label color=${PFColor.Orange} ?compact=${true}>
+                    ? html`<ak-label color=${PFColor.Orange} compact>

-                    : html`<ak-label color=${PFColor.Green} ?compact=${true}>
+                    : html`<ak-label color=${PFColor.Green} compact>

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Docker URL")} ?required=${true} name="url">
+            <ak-form-element-horizontal label=${msg("Docker URL")} required name="url">

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?showBindingPage=${true}
+                        showBindingPage

-                      ?showBindingPage=${true}
+                      showBindingPage

-                            ?blankable=${true}
+                            blankable

-                            ?blankable=${true}
+                            blankable

-                            ?blankable=${true}
+                            blankable

-            <ak-form-element-horizontal label=${msg("Order")} ?required=${true} name="order">
+            <ak-form-element-horizontal label=${msg("Order")} required name="order">

-            <ak-form-element-horizontal label=${msg("Timeout")} ?required=${true} name="timeout">
+            <ak-form-element-horizontal label=${msg("Timeout")} required name="timeout">

-                    ? html`<ak-label color=${PFColor.Green} ?compact=${true}>
+                    ? html`<ak-label color=${PFColor.Green} compact>

-                    : html`<ak-label color=${PFColor.Orange} ?compact=${true}>
+                    : html`<ak-label color=${PFColor.Orange} compact>

-        return html`<ak-form-element-horizontal label=${msg("User")} ?required=${true} name="user">
+        return html`<ak-form-element-horizontal label=${msg("User")} required name="user">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                            ?blankable=${true}
+                            blankable

-                            ?blankable=${true}
+                            blankable

-                            ?blankable=${true}
+                            blankable

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                      ?readOnly=${true}
+                      readOnly

-            return html`<ak-empty-state loading ?fullHeight=${true}></ak-empty-state>`;
+            return html`<ak-empty-state loading fullHeight></ak-empty-state>`;

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-                            ?blankable=${true}
+                            blankable

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-                    ?required=${true}
+                    required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-                            ?blankable=${true}
+                            blankable

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-            ?required=${true}
+            required

-                    ?required=${true}
+                    required

-                                        ?blankable=${true}
+                                        blankable

-            <ak-form-element-horizontal label=${msg("Name")} name="name" ?required=${true}>
+            <ak-form-element-horizontal label=${msg("Name")} name="name" required>

-            <ak-form-element-horizontal label=${msg("Protocol")} ?required=${true} name="protocol">
+            <ak-form-element-horizontal label=${msg("Protocol")} required name="protocol">

-            <ak-form-element-horizontal label=${msg("Host")} name="host" ?required=${true}>
+            <ak-form-element-horizontal label=${msg("Host")} name="host" required>

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                    ?required=${false}

-                        ?blankable=${true}
+                        blankable

-                        ?blankable=${true}
+                        blankable

-        return html`<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html`<ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                                      ?readOnly=${true}
+                                      readOnly

-                                    ?blankable=${true}
+                                    blankable

-        return html`<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html`<ak-form-element-horizontal label=${msg("Name")} required name="name">

-                    : html`<ak-label color=${PFColor.Orange} ?compact=${true}>
+                    : html`<ak-label color=${PFColor.Orange} compact>

-                <ak-label color=${PFColor.Grey} ?compact=${true}> ${msg("Built-in")}</ak-label>
+                <ak-label color=${PFColor.Grey} compact> ${msg("Built-in")}</ak-label>

-            return html`<ak-empty-state loading ?fullHeight=${true}></ak-empty-state>`;
+            return html`<ak-empty-state loading fullHeight></ak-empty-state>`;

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${false}>
+            <ak-form-group>

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
+            <ak-form-element-horizontal label=${msg("Slug")} required name="slug">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-                            ?blankable=${true}
+                            blankable

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
+            <ak-form-element-horizontal label=${msg("Slug")} required name="slug">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-                ?required=${true}
+                required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
+            <ak-form-element-horizontal label=${msg("Slug")} required name="slug">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
+            <ak-form-element-horizontal label=${msg("Slug")} required name="slug">

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-                        ?required=${true}
+                        required

-                                ?readOnly=${true}
+                                readOnly

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
+            <ak-form-element-horizontal label=${msg("Slug")} required name="slug">

-            <ak-form-group ?expanded=${true}>
+            <ak-form-group expanded>

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${true}
+                required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                <ak-form-element-horizontal label=${msg("SMTP Host")} ?required=${true} name="host">
+                <ak-form-element-horizontal label=${msg("SMTP Host")} required name="host">

-                <ak-form-element-horizontal label=${msg("SMTP Port")} ?required=${true} name="port">
+                <ak-form-element-horizontal label=${msg("SMTP Port")} required name="port">

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                ?required=${true}
+                required

-                    ?blankable=${true}
+                    blankable

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        <ak-alert ?inline=${true}>
+                        <ak-alert inline>

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                    <ak-form-element-horizontal label=${msg("Mode")} ?required=${true} name="mode">
+                    <ak-form-element-horizontal label=${msg("Mode")} required name="mode">

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                <ak-form-element-horizontal label=${msg("SMTP Host")} ?required=${true} name="host">
+                <ak-form-element-horizontal label=${msg("SMTP Host")} required name="host">

-                <ak-form-element-horizontal label=${msg("SMTP Port")} ?required=${true} name="port">
+                <ak-form-element-horizontal label=${msg("SMTP Port")} required name="port">

-                    ?required=${true}
+                    required

-                    ?required=${true}
+                    required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                ?slugMode=${true}
+                slugMode

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("Expires")} ?required=${true} name="expires">
+            <ak-form-element-horizontal label=${msg("Expires")} required name="expires">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                            ?blankable=${true}
+                            blankable

-                        ?required=${true}
+                        required

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Field Key")} ?required=${true} name="fieldKey">
+            <ak-form-element-horizontal label=${msg("Field Key")} required name="fieldKey">

-            <ak-form-element-horizontal label=${msg("Label")} ?required=${true} name="label">
+            <ak-form-element-horizontal label=${msg("Label")} required name="label">

-            <ak-form-element-horizontal label=${msg("Type")} ?required=${true} name="type">
+            <ak-form-element-horizontal label=${msg("Type")} required name="type">

-            <ak-form-element-horizontal label=${msg("Order")} ?required=${true} name="order">
+            <ak-form-element-horizontal label=${msg("Order")} required name="order">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Source")} ?required=${true} name="source">
+            <ak-form-element-horizontal label=${msg("Source")} required name="source">

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                        ?required=${true}
+                        required

-                        <ak-alert ?inline=${true}>
+                        <ak-alert inline>

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-                        ?required=${true}
+                        required

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-            <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+            <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                            ?blankable=${true}
+                            blankable

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("User")} ?required=${true} name="user">
+            <ak-form-element-horizontal label=${msg("User")} required name="user">

-            <ak-form-element-horizontal label=${msg("Intent")} ?required=${true} name="intent">
+            <ak-form-element-horizontal label=${msg("Intent")} required name="intent">

-                ?required=${true}
+                required

-                    <input class="pf-c-switch__input" type="checkbox" ?checked=${true} />
+                    <input class="pf-c-switch__input" type="checkbox" checked />

-                    <input class="pf-c-switch__input" type="checkbox" ?checked=${true} />
+                    <input class="pf-c-switch__input" type="checkbox" checked />

-                ?required=${true}
+                required

-            <ak-form-element-horizontal label=${msg("User type")} ?required=${true} name="type">
+            <ak-form-element-horizontal label=${msg("User type")} required name="type">

-            <ak-form-element-horizontal label=${msg("Path")} ?required=${true} name="path">
+            <ak-form-element-horizontal label=${msg("Path")} required name="path">

-            ?required=${true}
+            required

-            ?required=${true}
+            required

-            <ak-tabs pageIdentifier="userCredentialsTokens" ?vertical=${true}>
+            <ak-tabs pageIdentifier="userCredentialsTokens" vertical>

-                <ak-status-label ?good=${true}></ak-status-label>
+                <ak-status-label good></ak-status-label>

-                    ?open=${true}
+                    open

-                ?blankable=${true}
+                blankable

-                <ak-tabs ?vertical="${true}">
+                <ak-tabs vertical>

-        return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
+        return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">

-                ?required=${true}
+                required

```

The following issues are the `true` by default Booleans.  As mentioned, these are **not addressed** by this PR.

```
elements/table/Table.ts::
    @property({ type: Boolean })
    paginated = true;

elements/forms/ModalForm.ts::
    @property({ type: Boolean })
    closeAfterSuccessfulSubmit = true;

elements/forms/ModalForm.ts::
    @property({ type: Boolean })
    showSubmitButton = true;

elements/CodeMirror.ts::
    @property({ type: Boolean })
    parseValue = true;

elements/LoadingOverlay.ts::
    @property({ type: Boolean })
    loading = true;

admin/stages/authenticator_validate/AuthenticatorValidateStageForm.ts::
    @property({ type: Boolean })
    showConfigurationStages = true;

elements/user/sources/SourceSettings.ts::
    @property({ type: Boolean })
    canConnect = true;

admin/outposts/OutpostHealthSimple.ts::
    @property({ attribute: false })
    showVersion = true;

elements/wizard/Wizard.ts::
    @property({ type: Boolean })
    canCancel = true;

elements/wizard/Wizard.ts::
    @property({ type: Boolean })
    canBack = true;
```

* Prettier had opinions.

* Caught during code review.

* Merged incorrectly; not sure what went wrong, but this re-applies the removal of the  syntax from the current LDAPSourceForm.ts from  to this branch.
This commit is contained in:
Ken Sternberg
2025-06-06 16:06:25 -07:00
committed by GitHub
parent 9a03bdeaf1
commit a01bb551d0
104 changed files with 329 additions and 494 deletions

View File

@ -56,18 +56,14 @@ export class AdminInterface extends WithCapabilitiesConfig(AuthenticatedInterfac
protected readonly ws: WebsocketClient;
@property({
type: Object,
attribute: false,
reflect: false,
})
@property({ type: Object, attribute: false })
public user?: SessionUser;
@query("ak-about-modal")
public aboutModal?: AboutModal;
@property({ type: Boolean, reflect: true })
public sidebarOpen: boolean;
public sidebarOpen = false;
@eventOptions({ passive: true })
protected sidebarListener(event: CustomEvent<SidebarToggleEventDetail>) {

View File

@ -88,7 +88,6 @@ export class AdminOverviewPage extends AdminOverviewBase {
return html`<ak-page-header
header=${this.user ? msg(str`Welcome, ${username || ""}.`) : msg("Welcome.")}
description=${msg("General system status")}
?hasIcon=${false}
>
</ak-page-header>
<section class="pf-c-page__main-section">

View File

@ -93,11 +93,7 @@ export class ApplicationCheckAccessForm extends Form<{ forUser: number }> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal
label=${msg("User")}
?required=${true}
name="forUser"
>
return html`<ak-form-element-horizontal label=${msg("User")} required name="forUser">
<ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = {

View File

@ -99,7 +99,6 @@ export class ApplicationViewPage extends AKElement {
return html`<ak-page-header
header=${this.application?.name || msg("Loading")}
description=${ifDefined(this.application?.metaPublisher)}
.iconImage=${true}
>
<ak-app-icon
size=${PFSize.Medium}

View File

@ -20,7 +20,7 @@ export class ProviderSelectModal extends TableModal<Provider> {
}
@property({ type: Boolean })
backchannel?: boolean;
backchannel = false;
@property()
confirm!: (selectedItems: Provider[]) => Promise<unknown>;

View File

@ -57,7 +57,7 @@ export class AkBackchannelProvidersInput extends AKElement {
render() {
const renderOneChip = (provider: Provider) =>
html`<ak-chip
.removable=${true}
removable
value=${ifDefined(provider.pk)}
@remove=${this.remover(provider)}
>${provider.name}</ak-chip
@ -66,7 +66,7 @@ export class AkBackchannelProvidersInput extends AKElement {
return html`
<ak-form-element-horizontal label=${this.label} name=${this.name}>
<div class="pf-c-input-group">
<ak-provider-select-table ?backchannel=${true} .confirm=${this.confirm}>
<ak-provider-select-table backchannel .confirm=${this.confirm}>
<button slot="trigger" class="pf-c-button pf-m-control" type="button">
${this.tooltip ? this.tooltip : nothing}
<i class="fas fa-plus" aria-hidden="true"></i>

View File

@ -54,7 +54,7 @@ export class ApplicationEntitlementForm extends ModelForm<ApplicationEntitlement
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -62,11 +62,7 @@ export class ApplicationEntitlementForm extends ModelForm<ApplicationEntitlement
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Attributes")}
?required=${false}
name="attributes"
>
<ak-form-element-horizontal label=${msg("Attributes")} name="attributes">
<ak-codemirror
mode=${CodeMirrorMode.YAML}
value="${YAML.stringify(this.instance?.attributes ?? {})}"

View File

@ -37,7 +37,7 @@ export class ApplicationWizardRACProviderForm extends ApplicationWizardProviderF
<ak-form-element-horizontal
name="authorizationFlow"
label=${msg("Authorization flow")}
?required=${true}
required
>
<ak-flow-search
flowType=${FlowsInstancesListDesignationEnum.Authorization}
@ -60,7 +60,7 @@ export class ApplicationWizardRACProviderForm extends ApplicationWizardProviderF
input-hint="code"
></ak-text-input>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -65,7 +65,7 @@ export class BlueprintForm extends ModelForm<BlueprintInstance, string> {
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -133,7 +133,7 @@ export class BlueprintForm extends ModelForm<BlueprintInstance, string> {
.selected=${(item: BlueprintFile): boolean => {
return this.instance?.path === item.path;
}}
?blankable=${true}
blankable
>
</ak-search-select>
</ak-form-element-horizontal>`

View File

@ -134,7 +134,7 @@ export class BrandForm extends ModelForm<Brand, string> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Default flow background")}
?required=${true}
required
name="brandingDefaultFlowBackground"
>
<input

View File

@ -95,7 +95,7 @@ export class CoreGroupSearch extends CustomListenerElement(AKElement) {
.value=${renderValue}
.selected=${this.selected}
@ak-change=${this.handleSearchUpdate}
?blankable=${true}
blankable
>
</ak-search-select>
`;

View File

@ -120,7 +120,7 @@ export class AkCryptoCertificateSearch extends CustomListenerElement(AKElement)
.value=${renderValue}
.selected=${this.selected}
@ak-change=${this.handleSearchUpdate}
?blankable=${true}
blankable
>
</ak-search-select>
`;

View File

@ -110,7 +110,7 @@ export const Default = () =>
container(
html` <ak-form-element-horizontal
label=${msg("Authorization flow")}
?required=${true}
required
name="authorizationFlow"
>
<ak-flow-search
@ -124,7 +124,7 @@ export const WithInitialValue = () =>
container(
html` <ak-form-element-horizontal
label=${msg("Authorization flow")}
?required=${true}
required
name="authorizationFlow"
>
<ak-flow-search

View File

@ -29,7 +29,7 @@ export class CertificateKeyPairForm extends Form<CertificateGenerationRequest> {
return html`<ak-form-element-horizontal
label=${msg("Common Name")}
name="commonName"
?required=${true}
required
>
<input type="text" class="pf-c-form-control" required />
</ak-form-element-horizontal>
@ -39,18 +39,10 @@ export class CertificateKeyPairForm extends Form<CertificateGenerationRequest> {
${msg("Optional, comma-separated SubjectAlt Names.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Validity days")}
name="validityDays"
?required=${true}
>
<ak-form-element-horizontal label=${msg("Validity days")} name="validityDays" required>
<input class="pf-c-form-control" type="number" value="365" />
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Private key Algorithm")}
?required=${true}
name="alg"
>
<ak-form-element-horizontal label=${msg("Private key Algorithm")} required name="alg">
<ak-radio
.options=${[
{

View File

@ -38,7 +38,7 @@ export class CertificateKeyPairForm extends ModelForm<CertificateKeyPair, string
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} name="name" ?required=${true}>
return html` <ak-form-element-horizontal label=${msg("Name")} name="name" required>
<input
type="text"
value="${ifDefined(this.instance?.name)}"

View File

@ -58,7 +58,7 @@ export class RuleForm extends ModelForm<NotificationRule, string> {
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -88,7 +88,7 @@ export class RuleForm extends ModelForm<NotificationRule, string> {
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.group;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -97,11 +97,7 @@ export class RuleForm extends ModelForm<NotificationRule, string> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Transports")}
?required=${true}
name="transports"
>
<ak-form-element-horizontal label=${msg("Transports")} required name="transports">
<ak-dual-select-dynamic-selected
.provider=${eventTransportsProvider}
.selector=${eventTransportsSelector(this.instance?.transports)}
@ -114,7 +110,7 @@ export class RuleForm extends ModelForm<NotificationRule, string> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Severity")} ?required=${true} name="severity">
<ak-form-element-horizontal label=${msg("Severity")} required name="severity">
<ak-radio
.options=${[
{

View File

@ -137,7 +137,7 @@ export class BoundStagesList extends Table<FlowStageBinding> {
<div slot="primary">
<ak-stage-wizard
createText=${msg("Create and bind Stage")}
?showBindingPage=${true}
showBindingPage
bindingTarget=${ifDefined(this.target)}
></ak-stage-wizard>
<ak-forms-modal>
@ -158,7 +158,7 @@ export class BoundStagesList extends Table<FlowStageBinding> {
return html`
<ak-stage-wizard
createText=${msg("Create and bind Stage")}
?showBindingPage=${true}
showBindingPage
bindingTarget=${ifDefined(this.target)}
></ak-stage-wizard>
<ak-forms-modal>

View File

@ -74,7 +74,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -82,7 +82,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Title")} ?required=${true} name="title">
<ak-form-element-horizontal label=${msg("Title")} required name="title">
<input
type="text"
value="${ifDefined(this.instance?.title)}"
@ -91,7 +91,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
/>
<p class="pf-c-form__helper-text">${msg("Shown as the Title in Flow pages.")}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
<ak-form-element-horizontal label=${msg("Slug")} required name="slug">
<input
type="text"
value="${ifDefined(this.instance?.slug)}"
@ -102,11 +102,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
/>
<p class="pf-c-form__helper-text">${msg("Visible in the URL.")}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Designation")}
?required=${true}
name="designation"
>
<ak-form-element-horizontal label=${msg("Designation")} required name="designation">
<select class="pf-c-form-control">
<option value="" ?selected=${this.instance?.designation === undefined}>
---------
@ -165,7 +161,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Authentication")}
?required=${true}
required
name="authentication"
>
<select class="pf-c-form-control">
@ -240,7 +236,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Denied action")}
?required=${true}
required
name="deniedAction"
>
<ak-radio
@ -279,7 +275,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Policy engine mode")}
?required=${true}
required
name="policyEngineMode"
>
<ak-radio
@ -309,11 +305,7 @@ export class FlowForm extends WithCapabilitiesConfig(ModelForm<Flow, string>) {
<ak-form-group>
<span slot="header"> ${msg("Appearance settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Layout")}
?required=${true}
name="layout"
>
<ak-form-element-horizontal label=${msg("Layout")} required name="layout">
<select class="pf-c-form-control">
<option
value=${FlowLayoutEnum.Stacked}

View File

@ -76,11 +76,7 @@ export class StageBindingForm extends ModelForm<FlowStageBinding, string> {
if (this.instance?.target || this.targetPk) {
return html``;
}
return html`<ak-form-element-horizontal
label=${msg("Target")}
?required=${true}
name="target"
>
return html`<ak-form-element-horizontal label=${msg("Target")} required name="target">
<ak-flow-search
flowType=${FlowsInstancesListDesignationEnum.Authorization}
.currentFlow=${this.instance?.target}
@ -91,7 +87,7 @@ export class StageBindingForm extends ModelForm<FlowStageBinding, string> {
renderForm(): TemplateResult {
return html` ${this.renderTarget()}
<ak-form-element-horizontal label=${msg("Stage")} ?required=${true} name="stage">
<ak-form-element-horizontal label=${msg("Stage")} required name="stage">
<ak-search-select
.fetchObjects=${async (query?: string): Promise<Stage[]> => {
const args: StagesAllListRequest = {
@ -118,7 +114,7 @@ export class StageBindingForm extends ModelForm<FlowStageBinding, string> {
>
</ak-search-select>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Order")} ?required=${true} name="order">
<ak-form-element-horizontal label=${msg("Order")} required name="order">
<input
type="number"
value="${this.instance?.order ?? this.defaultOrder}"
@ -164,7 +160,7 @@ export class StageBindingForm extends ModelForm<FlowStageBinding, string> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Invalid response behavior")}
?required=${true}
required
name="invalidResponseAction"
>
<ak-radio
@ -201,7 +197,7 @@ export class StageBindingForm extends ModelForm<FlowStageBinding, string> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Policy engine mode")}
?required=${true}
required
name="policyEngineMode"
>
<ak-radio

View File

@ -62,7 +62,7 @@ export class GroupForm extends ModelForm<Group, string> {
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -112,7 +112,7 @@ export class GroupForm extends ModelForm<Group, string> {
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.parent;
}}
?blankable=${true}
blankable
>
</ak-search-select>
</ak-form-element-horizontal>
@ -141,11 +141,7 @@ export class GroupForm extends ModelForm<Group, string> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Attributes")}
?required=${true}
name="attributes"
>
<ak-form-element-horizontal label=${msg("Attributes")} required name="attributes">
<ak-codemirror
mode=${CodeMirrorMode.YAML}
value="${YAML.stringify(this.instance?.attributes ?? {})}"

View File

@ -65,7 +65,7 @@ export class RelatedGroupAdd extends Form<{ groups: string[] }> {
<ak-chip-group>
${this.groupsToAdd.map((group) => {
return html`<ak-chip
.removable=${true}
removable
value=${ifDefined(group.pk)}
@remove=${() => {
const idx = this.groupsToAdd.indexOf(group);

View File

@ -83,7 +83,7 @@ export class RelatedUserAdd extends Form<{ users: number[] }> {
<ak-chip-group>
${this.usersToAdd.map((user) => {
return html`<ak-chip
.removable=${true}
removable
value=${ifDefined(user.pk)}
@remove=${() => {
const idx = this.usersToAdd.indexOf(user);

View File

@ -143,7 +143,7 @@ export class OutpostForm extends ModelForm<Outpost, string> {
[OutpostTypeEnum.Rac, msg("RAC")],
];
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -151,7 +151,7 @@ export class OutpostForm extends ModelForm<Outpost, string> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Type")} ?required=${true} name="type">
<ak-form-element-horizontal label=${msg("Type")} required name="type">
<select
class="pf-c-form-control"
@change=${(ev: Event) => {
@ -202,7 +202,7 @@ export class OutpostForm extends ModelForm<Outpost, string> {
}
return selected;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -49,7 +49,7 @@ export class OutpostHealthElement extends AKElement {
</dt>
<dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text">
<ak-label color=${PFColor.Green} ?compact=${true}>
<ak-label color=${PFColor.Green} compact>
${msg(
str`${formatElapsedTime(this.outpostHealth.lastSeen)} (${this.outpostHealth.lastSeen?.toLocaleTimeString()})`,
)}
@ -64,12 +64,12 @@ export class OutpostHealthElement extends AKElement {
<dd class="pf-c-description-list__description">
<div class="pf-c-description-list__text">
${this.outpostHealth.versionOutdated
? html`<ak-label color=${PFColor.Red} ?compact=${true}
? html`<ak-label color=${PFColor.Red} compact
>${msg(
str`${this.outpostHealth.version}, should be ${this.outpostHealth.versionShould}`,
)}
</ak-label>`
: html`<ak-label color=${PFColor.Green} ?compact=${true}
: html`<ak-label color=${PFColor.Green} compact
>${versionString}
</ak-label>`}
</div>

View File

@ -112,12 +112,12 @@ export class OutpostListPage extends TablePage<Outpost> {
return [
html`<div>${item.name}</div>
${item.config.authentik_host === ""
? html`<ak-label color=${PFColor.Orange} ?compact=${true}>
? html`<ak-label color=${PFColor.Orange} compact>
${msg(
"Warning: authentik Domain is not configured, authentication will not work.",
)}
</ak-label>`
: html`<ak-label color=${PFColor.Green} ?compact=${true}>
: html`<ak-label color=${PFColor.Green} compact>
${msg(str`Logging in via ${item.config.authentik_host}.`)}
</ak-label>`}`,
html`${TypeToLabel(item.type)}`,

View File

@ -38,7 +38,7 @@ export class ServiceConnectionDockerForm extends ModelForm<DockerServiceConnecti
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -66,7 +66,7 @@ export class ServiceConnectionDockerForm extends ModelForm<DockerServiceConnecti
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Docker URL")} ?required=${true} name="url">
<ak-form-element-horizontal label=${msg("Docker URL")} required name="url">
<input
type="text"
value="${ifDefined(this.instance?.url)}"

View File

@ -42,7 +42,7 @@ export class ServiceConnectionKubernetesForm extends ModelForm<
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"

View File

@ -199,7 +199,7 @@ export class BoundPoliciesList extends Table<PolicyBinding> {
<div slot="primary">
<ak-policy-wizard
createText=${msg("Create and bind Policy")}
?showBindingPage=${true}
showBindingPage
bindingTarget=${ifDefined(this.target)}
></ak-policy-wizard>
<ak-forms-modal size=${PFSize.Medium}>
@ -225,7 +225,7 @@ export class BoundPoliciesList extends Table<PolicyBinding> {
return html`${this.allowedTypes.includes(PolicyBindingCheckTarget.policy)
? html`<ak-policy-wizard
createText=${msg("Create and bind Policy")}
?showBindingPage=${true}
showBindingPage
bindingTarget=${ifDefined(this.target)}
></ak-policy-wizard>`
: nothing}

View File

@ -182,7 +182,7 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
.selected=${(policy: Policy): boolean => {
return policy.pk === this.instance?.policy;
}}
?blankable=${true}
blankable
>
</ak-search-select>
${this.typeNotices
@ -219,7 +219,7 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.group;
}}
?blankable=${true}
blankable
>
</ak-search-select>
${this.typeNotices
@ -256,7 +256,7 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
.selected=${(user: User): boolean => {
return user.pk === this.instance?.user;
}}
?blankable=${true}
blankable
>
</ak-search-select>
${this.typeNotices
@ -300,7 +300,7 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
${msg("Negates the outcome of the binding. Messages are unaffected.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Order")} ?required=${true} name="order">
<ak-form-element-horizontal label=${msg("Order")} required name="order">
<input
type="number"
value="${this.instance?.order ?? this.defaultOrder}"
@ -308,7 +308,7 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Timeout")} ?required=${true} name="timeout">
<ak-form-element-horizontal label=${msg("Timeout")} required name="timeout">
<input
type="number"
value="${this.instance?.timeout ?? 30}"

View File

@ -65,10 +65,10 @@ export class PolicyListPage extends TablePage<Policy> {
return [
html`<div>${item.name}</div>
${(item.boundTo || 0) > 0
? html`<ak-label color=${PFColor.Green} ?compact=${true}>
? html`<ak-label color=${PFColor.Green} compact>
${msg(str`Assigned to ${item.boundTo} object(s).`)}
</ak-label>`
: html`<ak-label color=${PFColor.Orange} ?compact=${true}>
: html`<ak-label color=${PFColor.Orange} compact>
${msg("Warning: Policy is not assigned.")}
</ak-label>`}`,
html`${item.verboseName}`,

View File

@ -94,7 +94,7 @@ export class PolicyTestForm extends Form<PolicyTestRequest> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal label=${msg("User")} ?required=${true} name="user">
return html`<ak-form-element-horizontal label=${msg("User")} required name="user">
<ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = {

View File

@ -36,7 +36,7 @@ export class DummyPolicyForm extends BasePolicyForm<DummyPolicy> {
"A policy used for testing. Always returns the same result as specified below after waiting a random duration.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -64,7 +64,7 @@ export class DummyPolicyForm extends BasePolicyForm<DummyPolicy> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="result">
@ -82,11 +82,7 @@ export class DummyPolicyForm extends BasePolicyForm<DummyPolicy> {
<span class="pf-c-switch__label">${msg("Pass policy?")}</span>
</label>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Wait (min)")}
?required=${true}
name="waitMin"
>
<ak-form-element-horizontal label=${msg("Wait (min)")} required name="waitMin">
<input
type="number"
value="${this.instance?.waitMin ?? 1}"
@ -99,11 +95,7 @@ export class DummyPolicyForm extends BasePolicyForm<DummyPolicy> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Wait (max)")}
?required=${true}
name="waitMax"
>
<ak-form-element-horizontal label=${msg("Wait (max)")} required name="waitMax">
<input
type="number"
value="${this.instance?.waitMax ?? 5}"

View File

@ -48,7 +48,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
"Matches an event against a set of criteria. If any of the configured values match, the policy passes.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -76,7 +76,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("Action")} name="action">
@ -98,7 +98,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
.selected=${(item: TypeCreate): boolean => {
return this.instance?.action === item.component;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -138,7 +138,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
.selected=${(item: App): boolean => {
return this.instance?.app === item.name;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -168,7 +168,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
.selected=${(item: App): boolean => {
return this.instance?.model === item.name;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -36,7 +36,7 @@ export class PasswordExpiryPolicyForm extends BasePolicyForm<PasswordExpiryPolic
"Checks if the request's user's password has been changed in the last x days, and denys based on settings.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -64,12 +64,12 @@ export class PasswordExpiryPolicyForm extends BasePolicyForm<PasswordExpiryPolic
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Maximum age (in days)")}
?required=${true}
required
name="days"
>
<input

View File

@ -39,7 +39,7 @@ export class ExpressionPolicyForm extends BasePolicyForm<ExpressionPolicy> {
"Executes the python snippet to determine whether to allow or deny a request.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -67,12 +67,12 @@ export class ExpressionPolicyForm extends BasePolicyForm<ExpressionPolicy> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Expression")}
?required=${true}
required
name="expression"
>
<ak-codemirror

View File

@ -49,7 +49,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Minimum length")}
?required=${true}
required
name="lengthMin"
>
<input
@ -61,7 +61,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Minimum amount of Uppercase Characters")}
?required=${true}
required
name="amountUppercase"
>
<input
@ -73,7 +73,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Minimum amount of Lowercase Characters")}
?required=${true}
required
name="amountLowercase"
>
<input
@ -85,7 +85,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Minimum amount of Digits")}
?required=${true}
required
name="amountDigits"
>
<input
@ -97,7 +97,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Minimum amount of Symbols Characters")}
?required=${true}
required
name="amountSymbols"
>
<input
@ -109,7 +109,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Error message")}
?required=${true}
required
name="errorMessage"
>
<input
@ -121,7 +121,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Symbol charset")}
?required=${true}
required
name="symbolCharset"
>
<input
@ -142,12 +142,12 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
renderHIBP(): TemplateResult {
return html`
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("HaveIBeenPwned settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Allowed count")}
?required=${true}
required
name="hibpAllowedCount"
>
<input
@ -167,12 +167,12 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
renderZxcvbn(): TemplateResult {
return html`
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("zxcvbn settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Score threshold")}
?required=${true}
required
name="zxcvbnScoreThreshold"
>
<input
@ -221,7 +221,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
"Checks the value from the policy request against several rules, mostly used to ensure password strength.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -251,7 +251,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Password field")}
?required=${true}
required
name="passwordField"
>
<input

View File

@ -46,7 +46,7 @@ username they are attempting to login as, by one.`,
doesn't pass when either or both of the selected options are equal or above the threshold.`,
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -74,7 +74,7 @@ doesn't pass when either or both of the selected options are equal or above the
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="checkIp">
@ -107,11 +107,7 @@ doesn't pass when either or both of the selected options are equal or above the
<span class="pf-c-switch__label">${msg("Check Username")}</span>
</label>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Threshold")}
?required=${true}
name="threshold"
>
<ak-form-element-horizontal label=${msg("Threshold")} required name="threshold">
<input
type="number"
value="${ifDefined(this.instance?.threshold || -5)}"

View File

@ -36,7 +36,7 @@ export class UniquePasswordPolicyForm extends BasePolicyForm<UniquePasswordPolic
"Ensure that the user's new password is different from their previous passwords. The number of past passwords to check is configurable.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -66,7 +66,7 @@ export class UniquePasswordPolicyForm extends BasePolicyForm<UniquePasswordPolic
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Password field")}
?required=${true}
required
name="passwordField"
>
<input
@ -81,7 +81,7 @@ export class UniquePasswordPolicyForm extends BasePolicyForm<UniquePasswordPolic
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Number of previous passwords to check")}
?required=${true}
required
name="numHistoricalPasswords"
>
<input

View File

@ -62,7 +62,7 @@ export class PropertyMappingProviderRACForm extends BasePropertyMappingForm<RACP
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("General settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -54,7 +54,7 @@ export class PolicyTestForm extends Form<PropertyMappingTestRequest> {
${this.result?.successful
? html`<ak-codemirror
mode=${CodeMirrorMode.JavaScript}
?readOnly=${true}
readOnly
value="${ifDefined(this.result?.result)}"
>
</ak-codemirror>`

View File

@ -42,7 +42,7 @@ export class ProviderViewPage extends AKElement {
renderProvider(): TemplateResult {
if (!this.provider) {
return html`<ak-empty-state loading ?fullHeight=${true}></ak-empty-state>`;
return html`<ak-empty-state loading fullHeight></ak-empty-state>`;
}
switch (this.provider?.component) {
case "ak-provider-saml-form":

View File

@ -48,7 +48,7 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -56,12 +56,12 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Credentials")}
?required=${true}
required
name="credentials"
>
<ak-codemirror
@ -74,7 +74,7 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Delegated Subject")}
?required=${true}
required
name="delegatedSubject"
>
<input
@ -91,7 +91,7 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Default group email domain")}
?required=${true}
required
name="defaultGroupEmailDomain"
>
<input
@ -181,7 +181,7 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header">${msg("User filtering")}</span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="excludeUsersServiceAccount">
@ -225,7 +225,7 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.filterGroup;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -234,7 +234,7 @@ export class GoogleWorkspaceProviderFormPage extends BaseProviderForm<GoogleWork
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -86,7 +86,7 @@ export function renderForm(
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Bind flow")}
?required=${true}
required
name="authorizationFlow"
.errorMessages=${errors?.authorizationFlow ?? []}
>

View File

@ -46,7 +46,7 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -54,14 +54,10 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Client ID")}
?required=${true}
name="clientId"
>
<ak-form-element-horizontal label=${msg("Client ID")} required name="clientId">
<input
type="text"
value="${this.instance?.clientId ?? ""}"
@ -74,7 +70,7 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Client Secret")}
?required=${true}
required
name="clientSecret"
>
<input
@ -87,11 +83,7 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
${msg("Client secret for the app registration.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Tenant ID")}
?required=${true}
name="tenantId"
>
<ak-form-element-horizontal label=${msg("Tenant ID")} required name="tenantId">
<input
type="text"
value="${this.instance?.tenantId ?? ""}"
@ -170,7 +162,7 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header">${msg("User filtering")}</span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="excludeUsersServiceAccount">
@ -214,7 +206,7 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.filterGroup;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -223,7 +215,7 @@ export class MicrosoftEntraProviderFormPage extends BaseProviderForm<MicrosoftEn
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -133,7 +133,7 @@ export function renderForm(
<ak-form-element-horizontal
name="authorizationFlow"
label=${msg("Authorization flow")}
?required=${true}
required
>
<ak-flow-search
flowType=${FlowsInstancesListDesignationEnum.Authorization}
@ -279,7 +279,7 @@ export function renderForm(
label=${msg("Refresh Token validity")}
value="${provider?.refreshTokenValidity ?? "days=30"}"
input-hint="code"
?required=${true}
required
.bighelp=${html` <p class="pf-c-form__helper-text">
${msg("Configure how long refresh tokens are valid for.")}
</p>

View File

@ -416,7 +416,7 @@ export class OAuth2ProviderViewPage extends AKElement {
.selected=${(user: User): boolean => {
return user.pk === this.previewUser?.pk;
}}
?blankable=${true}
blankable
@ak-change=${(ev: CustomEvent) => {
this.previewUser = ev.detail.value;
this.fetchPreview();

View File

@ -53,7 +53,7 @@ export class EndpointForm extends ModelForm<Endpoint, string> {
renderForm(): TemplateResult {
return html`
<ak-form-element-horizontal label=${msg("Name")} name="name" ?required=${true}>
<ak-form-element-horizontal label=${msg("Name")} name="name" required>
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -61,7 +61,7 @@ export class EndpointForm extends ModelForm<Endpoint, string> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Protocol")} ?required=${true} name="protocol">
<ak-form-element-horizontal label=${msg("Protocol")} required name="protocol">
<ak-radio
.options=${[
{
@ -81,7 +81,7 @@ export class EndpointForm extends ModelForm<Endpoint, string> {
>
</ak-radio>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Host")} name="host" ?required=${true}>
<ak-form-element-horizontal label=${msg("Host")} name="host" required>
<input
type="text"
value="${ifDefined(this.instance?.host)}"
@ -93,7 +93,7 @@ export class EndpointForm extends ModelForm<Endpoint, string> {
<ak-form-element-horizontal
label=${msg("Maximum concurrent connections")}
name="maximumConnections"
?required=${true}
required
>
<input
type="number"

View File

@ -49,7 +49,7 @@ export class RACProviderFormPage extends ModelForm<RACProvider, number> {
renderForm(): TemplateResult {
return html`
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -61,7 +61,7 @@ export class RACProviderFormPage extends ModelForm<RACProvider, number> {
<ak-form-element-horizontal
name="authorizationFlow"
label=${msg("Authorization flow")}
?required=${true}
required
>
<ak-flow-search
flowType=${FlowsInstancesListDesignationEnum.Authorization}
@ -74,7 +74,7 @@ export class RACProviderFormPage extends ModelForm<RACProvider, number> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Connection expiry")}
?required=${true}
required
name="connectionExpiry"
>
<input
@ -115,7 +115,7 @@ export class RACProviderFormPage extends ModelForm<RACProvider, number> {
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -84,7 +84,7 @@ export function renderForm(
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-text-input
@ -127,7 +127,6 @@ export function renderForm(
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Authentication flow")}
?required=${false}
name="authenticationFlow"
>
<ak-flow-search
@ -236,7 +235,7 @@ export function renderForm(
.selected=${(item: SAMLPropertyMapping): boolean => {
return provider?.nameIdMapping === item.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -271,7 +270,7 @@ export function renderForm(
.selected=${(item: SAMLPropertyMapping): boolean => {
return provider?.authnContextClassRefMapping === item.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -31,12 +31,12 @@ export class SAMLProviderImportForm extends Form<SAMLProvider> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html`<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input type="text" class="pf-c-form-control" required />
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Authorization flow")}
?required=${true}
required
name="authorizationFlow"
>
<ak-flow-search-no-default
@ -49,7 +49,7 @@ export class SAMLProviderImportForm extends Form<SAMLProvider> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Invalidation flow")}
?required=${true}
required
name="invalidationFlow"
>
<ak-flow-search-no-default

View File

@ -489,7 +489,7 @@ export class SAMLProviderViewPage extends AKElement {
<div class="pf-c-card__footer">
<ak-codemirror
mode=${CodeMirrorMode.XML}
?readOnly=${true}
readOnly
value="${ifDefined(this.metadata?.metadata)}"
></ak-codemirror>
</div>
@ -539,7 +539,7 @@ export class SAMLProviderViewPage extends AKElement {
.selected=${(user: User): boolean => {
return user.pk === this.previewUser?.pk;
}}
?blankable=${true}
blankable
@ak-change=${(ev: CustomEvent) => {
this.previewUser = ev.detail.value;
this.fetchPreview();

View File

@ -37,7 +37,6 @@ export class ObjectPermissionsPageForm extends ModelForm<unknown, string> {
.model=${this.model}
.objectPk=${this.objectPk}
slot="form"
.embedded=${true}
>
</ak-rbac-object-permission-page>`;
}

View File

@ -39,7 +39,7 @@ export class RoleForm extends ModelForm<Role, string> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html`<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"

View File

@ -67,7 +67,7 @@ export class RolePermissionForm extends ModelForm<RolePermissionAssign, number>
<ak-chip-group>
${this.permissionsToAdd.map((permission) => {
return html`<ak-chip
.removable=${true}
removable
value=${`${permission.appLabel}.${permission.codename}`}
@remove=${() => {
const idx = this.permissionsToAdd.indexOf(permission);

View File

@ -90,7 +90,7 @@ export class SourceListPage extends TablePage<Source> {
<div>${item.name}</div>
${item.enabled
? html``
: html`<ak-label color=${PFColor.Orange} ?compact=${true}>
: html`<ak-label color=${PFColor.Orange} compact>
${msg("Disabled")}</ak-label
>`}
</a>`,
@ -119,7 +119,7 @@ export class SourceListPage extends TablePage<Source> {
return [
html`<div>
<div>${item.name}</div>
<ak-label color=${PFColor.Grey} ?compact=${true}> ${msg("Built-in")}</ak-label>
<ak-label color=${PFColor.Grey} compact> ${msg("Built-in")}</ak-label>
</div>`,
html`${msg("Built-in")}`,
html``,

View File

@ -34,7 +34,7 @@ export class SourceViewPage extends AKElement {
renderSource(): TemplateResult {
if (!this.source) {
return html`<ak-empty-state loading ?fullHeight=${true}></ak-empty-state>`;
return html`<ak-empty-state loading fullHeight></ak-empty-state>`;
}
switch (this.source?.component) {
case "ak-source-kerberos-form":

View File

@ -119,7 +119,7 @@ export class KerberosSourceForm extends WithCapabilitiesConfig(BaseSourceForm<Ke
"Enable this option to write password changes made in authentik back to Kerberos. Ignored if sync is disabled.",
)}
></ak-switch-input>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Realm settings")} </span>
<div slot="body" class="pf-c-form">
<ak-text-input
@ -139,7 +139,7 @@ export class KerberosSourceForm extends WithCapabilitiesConfig(BaseSourceForm<Ke
></ak-textarea-input>
<ak-form-element-horizontal
label=${msg("User matching mode")}
?required=${true}
required
name="userMatchingMode"
>
<select class="pf-c-form-control">
@ -182,7 +182,7 @@ export class KerberosSourceForm extends WithCapabilitiesConfig(BaseSourceForm<Ke
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Group matching mode")}
?required=${true}
required
name="groupMatchingMode"
>
<select class="pf-c-form-control">
@ -211,12 +211,12 @@ export class KerberosSourceForm extends WithCapabilitiesConfig(BaseSourceForm<Ke
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group .expanded=${false}>
<ak-form-group>
<span slot="header"> ${msg("Sync connection settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("KAdmin type")}
?required=${true}
required
name="kadminType"
>
<ak-radio
@ -274,7 +274,7 @@ export class KerberosSourceForm extends WithCapabilitiesConfig(BaseSourceForm<Ke
></ak-text-input>
</div>
</ak-form-group>
<ak-form-group .expanded=${false}>
<ak-form-group>
<span slot="header"> ${msg("SPNEGO settings")} </span>
<div slot="body" class="pf-c-form">
<ak-text-input
@ -303,7 +303,7 @@ export class KerberosSourceForm extends WithCapabilitiesConfig(BaseSourceForm<Ke
></ak-text-input>
</div>
</ak-form-group>
<ak-form-group ?expanded=${false}>
<ak-form-group>
<span slot="header"> ${msg("Kerberos Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -46,7 +46,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -54,7 +54,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
<ak-form-element-horizontal label=${msg("Slug")} required name="slug">
<input
type="text"
value="${ifDefined(this.instance?.slug)}"
@ -169,12 +169,12 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Connection settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Server URI")}
?required=${true}
required
name="serverUri"
>
<input
@ -265,11 +265,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
name="bindPassword"
?revealed=${this.instance === undefined}
></ak-private-text-input>
<ak-form-element-horizontal
label=${msg("Base DN")}
?required=${true}
name="baseDn"
>
<ak-form-element-horizontal label=${msg("Base DN")} required name="baseDn">
<input
type="text"
value="${ifDefined(this.instance?.baseDn)}"
@ -279,7 +275,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("LDAP Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
@ -343,7 +339,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.syncParentGroup;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -387,7 +383,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("User object filter")}
?required=${true}
required
name="userObjectFilter"
>
<input
@ -402,7 +398,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Group object filter")}
?required=${true}
required
name="groupObjectFilter"
>
<input
@ -417,7 +413,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Group membership field")}
?required=${true}
required
name="groupMembershipField"
>
<input
@ -434,7 +430,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("User membership attribute")}
?required=${true}
required
name="userMembershipAttribute"
>
<input
@ -471,7 +467,7 @@ export class LDAPSourceForm extends BaseSourceForm<LDAPSource> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Object uniqueness field")}
?required=${true}
required
name="objectUniquenessField"
>
<input

View File

@ -124,7 +124,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
if (!this.providerType?.urlsCustomizable) {
return html``;
}
return html` <ak-form-group .expanded=${true}>
return html` <ak-form-group expanded>
<span slot="header"> ${msg("URL settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
@ -258,7 +258,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -266,7 +266,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
<ak-form-element-horizontal label=${msg("Slug")} required name="slug">
<input
type="text"
value="${ifDefined(this.instance?.slug)}"
@ -293,7 +293,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("User matching mode")}
?required=${true}
required
name="userMatchingMode"
>
<select class="pf-c-form-control">
@ -336,7 +336,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Group matching mode")}
?required=${true}
required
name="groupMatchingMode"
>
<select class="pf-c-form-control">
@ -422,12 +422,12 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
<p class="pf-c-form__helper-text">${iconHelperText}</p>
</ak-form-element-horizontal>`}
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Consumer key")}
?required=${true}
required
name="consumerKey"
>
<input
@ -465,7 +465,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
</div>
</ak-form-group>
${this.renderUrlOptions()}
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("OAuth Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -150,7 +150,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Allowed servers")}
?required=${true}
required
name="allowedServers"
>
<select class="pf-c-form-control" multiple>
@ -174,7 +174,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -182,7 +182,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
<ak-form-element-horizontal label=${msg("Slug")} required name="slug">
<input
type="text"
value="${ifDefined(this.instance?.slug)}"
@ -207,7 +207,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("User matching mode")}
?required=${true}
required
name="userMatchingMode"
>
<select class="pf-c-form-control">
@ -250,7 +250,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Group matching mode")}
?required=${true}
required
name="groupMatchingMode"
>
<select class="pf-c-form-control">
@ -331,14 +331,10 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
/>
<p class="pf-c-form__helper-text">${iconHelperText}</p>
</ak-form-element-horizontal>`}
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Client ID")}
?required=${true}
name="clientId"
>
<ak-form-element-horizontal label=${msg("Client ID")} required name="clientId">
<input
type="text"
value="${this.instance?.clientId ?? ""}"
@ -382,7 +378,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Plex Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -80,7 +80,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -88,7 +88,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
<ak-form-element-horizontal label=${msg("Slug")} required name="slug">
<input
type="text"
value="${ifDefined(this.instance?.slug)}"
@ -113,7 +113,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("User matching mode")}
?required=${true}
required
name="userMatchingMode"
>
<select class="pf-c-form-control">
@ -156,7 +156,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Group matching mode")}
?required=${true}
required
name="groupMatchingMode"
>
<select class="pf-c-form-control">
@ -230,14 +230,10 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
<p class="pf-c-form__helper-text">${iconHelperText}</p>
</ak-form-element-horizontal>`}
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("SSO URL")}
?required=${true}
name="ssoUrl"
>
<ak-form-element-horizontal label=${msg("SSO URL")} required name="ssoUrl">
<input
type="text"
value="${ifDefined(this.instance?.ssoUrl)}"
@ -270,7 +266,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Binding Type")}
?required=${true}
required
name="bindingType"
>
<ak-radio
@ -349,7 +345,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("NameID Policy")}
?required=${true}
required
name="nameIdPolicy"
>
<select class="pf-c-form-control">
@ -401,7 +397,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Delete temporary users after")}
?required=${true}
required
name="temporaryUserDeleteAfter"
>
<input
@ -419,7 +415,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Digest algorithm")}
?required=${true}
required
name="digestAlgorithm"
>
<ak-radio
@ -448,7 +444,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Signature algorithm")}
?required=${true}
required
name="signatureAlgorithm"
>
<ak-radio
@ -494,7 +490,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
</ak-form-element-horizontal>
</div>
</ak-form-group>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("SAML Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
@ -536,7 +532,7 @@ export class SAMLSourceForm extends WithCapabilitiesConfig(BaseSourceForm<SAMLSo
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Pre-authentication flow")}
?required=${true}
required
name="preAuthenticationFlow"
>
<ak-source-flow-search

View File

@ -178,7 +178,7 @@ export class SAMLSourceViewPage extends AKElement {
<div class="pf-c-card__body">
<ak-codemirror
mode=${CodeMirrorMode.XML}
?readOnly=${true}
readOnly
value="${ifDefined(this.metadata?.metadata)}"
></ak-codemirror>
</div>

View File

@ -40,7 +40,7 @@ export class SCIMSourceForm extends BaseSourceForm<SCIMSource> {
renderForm(): TemplateResult {
return html`<form class="pf-c-form pf-m-horizontal">
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -48,7 +48,7 @@ export class SCIMSourceForm extends BaseSourceForm<SCIMSource> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Slug")} ?required=${true} name="slug">
<ak-form-element-horizontal label=${msg("Slug")} required name="slug">
<input
type="text"
value="${ifDefined(this.instance?.slug)}"
@ -66,7 +66,7 @@ export class SCIMSourceForm extends BaseSourceForm<SCIMSource> {
<label class="pf-c-check__label"> ${msg("Enabled")} </label>
</div>
</ak-form-element-horizontal>
<ak-form-group ?expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("SCIM Attribute mapping")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal

View File

@ -46,7 +46,7 @@ export class AuthenticatorDuoStageForm extends BaseStageForm<AuthenticatorDuoSta
"Stage used to configure a duo-based authenticator. This stage should be used for configuration flows.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -70,11 +70,7 @@ export class AuthenticatorDuoStageForm extends BaseStageForm<AuthenticatorDuoSta
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("API Hostname")}
?required=${true}
name="apiHostname"
>
<ak-form-element-horizontal label=${msg("API Hostname")} required name="apiHostname">
<input
type="text"
value="${this.instance?.apiHostname ?? ""}"
@ -84,12 +80,12 @@ export class AuthenticatorDuoStageForm extends BaseStageForm<AuthenticatorDuoSta
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Duo Auth API")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Integration key")}
?required=${true}
required
name="clientId"
>
<input
@ -137,7 +133,7 @@ export class AuthenticatorDuoStageForm extends BaseStageForm<AuthenticatorDuoSta
></ak-private-text-input>
</div>
</ak-form-group>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
@ -171,7 +167,7 @@ export class AuthenticatorDuoStageForm extends BaseStageForm<AuthenticatorDuoSta
.selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -49,11 +49,7 @@ export class DuoDeviceImportForm extends ModelForm<AuthenticatorDuoStage, string
}
renderFormManual(): TemplateResult {
return html`<ak-form-element-horizontal
label=${msg("User")}
?required=${true}
name="username"
>
return html`<ak-form-element-horizontal label=${msg("User")} required name="username">
<ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = {
@ -81,11 +77,7 @@ export class DuoDeviceImportForm extends ModelForm<AuthenticatorDuoStage, string
${msg("The user in authentik this device will be assigned to.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Duo User ID")}
?required=${true}
name="duoUserId"
>
<ak-form-element-horizontal label=${msg("Duo User ID")} required name="duoUserId">
<input type="text" class="pf-c-form-control" required />
<p class="pf-c-form__helper-text">
${msg("The user ID in Duo, can be found in the URL after clicking on a user.")}

View File

@ -50,10 +50,10 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
if (!this.showConnectionSettings) {
return html``;
}
return html`<ak-form-group .expanded=${true}>
return html`<ak-form-group expanded>
<span slot="header"> ${msg("Connection settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("SMTP Host")} ?required=${true} name="host">
<ak-form-element-horizontal label=${msg("SMTP Host")} required name="host">
<input
type="text"
value="${ifDefined(this.instance?.host || "")}"
@ -61,7 +61,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("SMTP Port")} ?required=${true} name="port">
<ak-form-element-horizontal label=${msg("SMTP Port")} required name="port">
<input
type="number"
value="${this.instance?.port ?? 25}"
@ -113,11 +113,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
<span class="pf-c-switch__label">${msg("Use SSL")}</span>
</label>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Timeout")}
?required=${true}
name="timeout"
>
<ak-form-element-horizontal label=${msg("Timeout")} required name="timeout">
<input
type="number"
value="${this.instance?.timeout ?? 30}"
@ -127,7 +123,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("From address")}
?required=${true}
required
name="fromAddress"
>
<input
@ -146,7 +142,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
renderForm(): TemplateResult {
return html` <span> ${msg("Stage used to configure an email-based authenticator.")} </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -195,14 +191,10 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
</p>
</ak-form-element-horizontal>
${this.renderConnectionSettings()}
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Subject")}
?required=${true}
name="subject"
>
<ak-form-element-horizontal label=${msg("Subject")} required name="subject">
<input
type="text"
value="${this.instance?.subject ?? "authentik Sign-in code"}"
@ -215,7 +207,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Token expiration")}
?required=${true}
required
name="tokenExpiry"
>
<input
@ -261,7 +253,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
.selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -59,7 +59,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
renderProviderTwillio(): TemplateResult {
return html` <ak-form-element-horizontal
label=${msg("Twilio Account SID")}
?required=${true}
required
name="accountSid"
>
<input
@ -74,11 +74,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
${msg("Get this value from https://console.twilio.com")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Twilio Auth Token")}
?required=${true}
name="auth"
>
<ak-form-element-horizontal label=${msg("Twilio Auth Token")} required name="auth">
<input
type="text"
value="${this.instance?.auth ?? ""}"
@ -101,7 +97,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
const current = (ev.target as HTMLInputElement).value;
this.authType = current as AuthTypeEnum;
}}
?required=${true}
required
name="authType"
>
<ak-radio
@ -120,11 +116,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
>
</ak-radio>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("External API URL")}
?required=${true}
name="accountSid"
>
<ak-form-element-horizontal label=${msg("External API URL")} required name="accountSid">
<input
type="text"
value="${this.instance?.accountSid ?? ""}"
@ -137,11 +129,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
${msg("This is the full endpoint to send POST requests to.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("API Auth Username")}
?required=${true}
name="auth"
>
<ak-form-element-horizontal label=${msg("API Auth Username")} required name="auth">
<input
type="text"
value="${this.instance?.auth ?? ""}"
@ -196,7 +184,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
.selected=${(item: NotificationWebhookMapping): boolean => {
return this.instance?.mapping === item.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -210,7 +198,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
return html` <span>
${msg("Stage used to configure an SMS-based TOTP authenticator.")}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -234,14 +222,10 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Provider")}
?required=${true}
name="provider"
>
<ak-form-element-horizontal label=${msg("Provider")} required name="provider">
<select
class="pf-c-form-control"
@change=${(ev: Event) => {
@ -265,7 +249,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("From number")}
?required=${true}
required
name="fromNumber"
>
<input
@ -334,7 +318,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
.selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -43,7 +43,7 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
"Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -67,12 +67,12 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Token count")}
?required=${true}
required
name="tokenCount"
>
<input
@ -89,7 +89,7 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Token length")}
?required=${true}
required
name="tokenLength"
>
<input
@ -135,7 +135,7 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
.selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -45,7 +45,7 @@ export class AuthenticatorTOTPStageForm extends BaseStageForm<AuthenticatorTOTPS
"Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator).",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -69,14 +69,10 @@ export class AuthenticatorTOTPStageForm extends BaseStageForm<AuthenticatorTOTPS
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Digits")}
?required=${true}
name="digits"
>
<ak-form-element-horizontal label=${msg("Digits")} required name="digits">
<select name="users" class="pf-c-form-control">
<option
value="${DigitsEnum._6}"
@ -125,7 +121,7 @@ export class AuthenticatorTOTPStageForm extends BaseStageForm<AuthenticatorTOTPS
.selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -87,7 +87,7 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
"Stage used to validate any authenticator. This stage should be used during authentication or authorization flows.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -95,12 +95,12 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Device classes")}
?required=${true}
required
name="deviceClasses"
>
<ak-checkbox-group
@ -119,7 +119,7 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Last validation threshold")}
?required=${true}
required
name="lastAuthThreshold"
>
<input
@ -139,7 +139,7 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Not configured action")}
?required=${true}
required
name="notConfiguredAction"
>
<select
@ -208,12 +208,12 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
: html``}
</div>
</ak-form-group>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("WebAuthn-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("WebAuthn User verification")}
?required=${true}
required
name="webauthnUserVerification"
>
<ak-radio
@ -255,7 +255,7 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
"Optionally restrict which WebAuthn device types may be used. When no device types are selected, all devices are allowed.",
)}
</p>
<ak-alert ?inline=${true}>
<ak-alert inline>
${
/* TODO: Remove this after 2024.6..or maybe later? */
msg(

View File

@ -53,7 +53,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
"Stage used to configure a WebAuthn authenticator (i.e. Yubikey, FaceID/Windows Hello).",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -77,12 +77,12 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
)}
</p>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("User verification")}
?required=${true}
required
name="userVerification"
>
<ak-radio
@ -109,7 +109,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Resident key requirement")}
?required=${true}
required
name="residentKeyRequirement"
>
<ak-radio
@ -140,7 +140,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Authenticator Attachment")}
?required=${true}
required
name="authenticatorAttachment"
>
<ak-radio
@ -226,7 +226,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
.selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -39,7 +39,7 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
"This stage checks the user's current session against the Google reCaptcha (or compatible) service.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -47,12 +47,12 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Public Key")}
?required=${true}
required
name="publicKey"
>
<input
@ -129,11 +129,7 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
<ak-form-group>
<span slot="header"> ${msg("Advanced settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("JS URL")}
?required=${true}
name="jsUrl"
>
<ak-form-element-horizontal label=${msg("JS URL")} required name="jsUrl">
<input
type="url"
value="${ifDefined(
@ -151,11 +147,7 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("API URL")}
?required=${true}
name="apiUrl"
>
<ak-form-element-horizontal label=${msg("API URL")} required name="apiUrl">
<input
type="url"
value="${ifDefined(

View File

@ -45,7 +45,7 @@ export class ConsentStageForm extends BaseStageForm<ConsentStage> {
"Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -53,10 +53,10 @@ export class ConsentStageForm extends BaseStageForm<ConsentStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("Mode")} ?required=${true} name="mode">
<ak-form-element-horizontal label=${msg("Mode")} required name="mode">
<select
class="pf-c-form-control"
@change=${(ev: Event) => {
@ -95,7 +95,7 @@ export class ConsentStageForm extends BaseStageForm<ConsentStage> {
<ak-form-element-horizontal
?hidden=${!this.showExpiresIn}
label=${msg("Consent expires in")}
?required=${true}
required
name="consentExpireIn"
>
<input

View File

@ -36,7 +36,7 @@ export class DenyStageForm extends BaseStageForm<DenyStage> {
"Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -44,7 +44,7 @@ export class DenyStageForm extends BaseStageForm<DenyStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("Deny message")} name="denyMessage">

View File

@ -35,7 +35,7 @@ export class DummyStageForm extends BaseStageForm<DummyStage> {
"Dummy stage used for testing. Shows a simple continue button and always passes.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"

View File

@ -50,7 +50,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
return html`<ak-form-group>
<span slot="header"> ${msg("Connection settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("SMTP Host")} ?required=${true} name="host">
<ak-form-element-horizontal label=${msg("SMTP Host")} required name="host">
<input
type="text"
value="${ifDefined(this.instance?.host || "")}"
@ -58,7 +58,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("SMTP Port")} ?required=${true} name="port">
<ak-form-element-horizontal label=${msg("SMTP Port")} required name="port">
<input
type="number"
value="${this.instance?.port ?? 25}"
@ -108,11 +108,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
<span class="pf-c-switch__label">${msg("Use SSL")}</span>
</label>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Timeout")}
?required=${true}
name="timeout"
>
<ak-form-element-horizontal label=${msg("Timeout")} required name="timeout">
<input
type="number"
value="${this.instance?.timeout ?? 30}"
@ -122,7 +118,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("From address")}
?required=${true}
required
name="fromAddress"
>
<input
@ -142,7 +138,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
"Verify the user's email address by sending them a one-time-link. Can also be used for recovery to verify the user's authenticity.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -150,7 +146,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="activateUserOnSuccess">
@ -201,7 +197,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Token expiration")}
?required=${true}
required
name="tokenExpiry"
>
<input
@ -215,11 +211,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
</p>
<ak-utils-time-delta-help></ak-utils-time-delta-help>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Subject")}
?required=${true}
name="subject"
>
<ak-form-element-horizontal label=${msg("Subject")} required name="subject">
<input
type="text"
value="${this.instance?.subject ?? "authentik"}"
@ -227,11 +219,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Template")}
?required=${true}
name="template"
>
<ak-form-element-horizontal label=${msg("Template")} required name="template">
<select name="users" class="pf-c-form-control">
${this.templates?.map((template) => {
const selected = this.instance?.template === template.name;

View File

@ -76,7 +76,7 @@ export class IdentificationStageForm extends BaseStageForm<IdentificationStage>
return html`<span>
${msg("Let the user identify themselves with their username or Email address.")}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -84,7 +84,7 @@ export class IdentificationStageForm extends BaseStageForm<IdentificationStage>
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("User fields")} name="userFields">
@ -196,11 +196,7 @@ export class IdentificationStageForm extends BaseStageForm<IdentificationStage>
<ak-form-group>
<span slot="header"> ${msg("Source settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Sources")}
?required=${true}
name="sources"
>
<ak-form-element-horizontal label=${msg("Sources")} required name="sources">
<ak-dual-select-dynamic-selected
.provider=${sourcesProvider}
.selector=${sourcesSelector(this.instance?.sources)}

View File

@ -41,12 +41,7 @@ export class InvitationForm extends ModelForm<Invitation, string> {
}
renderForm(): TemplateResult {
return html` <ak-form-element-horizontal
?slugMode=${true}
label=${msg("Name")}
?required=${true}
name="name"
>
return html` <ak-form-element-horizontal slugMode label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name || ""}"
@ -55,7 +50,7 @@ export class InvitationForm extends ModelForm<Invitation, string> {
data-ak-slug="true"
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Expires")} ?required=${true} name="expires">
<ak-form-element-horizontal label=${msg("Expires")} required name="expires">
<input
type="datetime-local"
data-type="datetime-local"

View File

@ -33,7 +33,7 @@ export class InvitationStageForm extends BaseStageForm<InvitationStage> {
return html` <span>
${msg("This stage can be included in enrollment flows to accept invitations.")}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name || ""}"
@ -41,7 +41,7 @@ export class InvitationStageForm extends BaseStageForm<InvitationStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="continueFlowWithoutInvitation">

View File

@ -45,7 +45,7 @@ export class MTLSStageForm extends BaseStageForm<MutualTLSStage> {
renderForm(): TemplateResult {
return html`
<span> ${msg("Client-certificate/mTLS authentication/enrollment.")} </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -53,7 +53,7 @@ export class MTLSStageForm extends BaseStageForm<MutualTLSStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("Mode")} required name="mode">

View File

@ -82,14 +82,10 @@ export class PasswordStageForm extends BaseStageForm<PasswordStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Backends")}
?required=${true}
name="backends"
>
<ak-form-element-horizontal label=${msg("Backends")} required name="backends">
<ak-checkbox-group
class="user-field-select"
.options=${backends}
@ -103,7 +99,7 @@ export class PasswordStageForm extends BaseStageForm<PasswordStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Configuration flow")}
?required=${true}
required
name="configureFlow"
>
<ak-search-select
@ -141,7 +137,7 @@ export class PasswordStageForm extends BaseStageForm<PasswordStage> {
}
return selected;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">
@ -152,7 +148,7 @@ export class PasswordStageForm extends BaseStageForm<PasswordStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Failed attempts before cancel")}
?required=${true}
required
name="failedAttemptsBeforeCancel"
>
<input

View File

@ -203,7 +203,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
}
renderEditForm(): TemplateResult {
return html` <ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
return html` <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name)}"
@ -217,7 +217,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
${msg("Unique name of this field, used for selecting fields in prompt stages.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Field Key")} ?required=${true} name="fieldKey">
<ak-form-element-horizontal label=${msg("Field Key")} required name="fieldKey">
<input
type="text"
value="${ifDefined(this.instance?.fieldKey)}"
@ -238,7 +238,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Label")} ?required=${true} name="label">
<ak-form-element-horizontal label=${msg("Label")} required name="label">
<input
type="text"
value="${ifDefined(this.instance?.label)}"
@ -252,7 +252,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
${msg("Label shown next to/above the prompt.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Type")} ?required=${true} name="type">
<ak-form-element-horizontal label=${msg("Type")} required name="type">
<select
class="pf-c-form-control"
@change=${() => {
@ -371,7 +371,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
</ak-codemirror>
<p class="pf-c-form__helper-text">${msg("Any HTML can be used.")}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Order")} ?required=${true} name="order">
<ak-form-element-horizontal label=${msg("Order")} required name="order">
<input
type="number"
value="${this.instance?.order ?? 0}"

View File

@ -47,7 +47,7 @@ export class PromptStageForm extends BaseStageForm<PromptStage> {
"Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -55,14 +55,10 @@ export class PromptStageForm extends BaseStageForm<PromptStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Fields")}
?required=${true}
name="fields"
>
<ak-form-element-horizontal label=${msg("Fields")} required name="fields">
<ak-dual-select-dynamic-selected
.provider=${promptFieldsProvider}
.selector=${promptFieldsSelector(this.instance?.fields)}

View File

@ -44,7 +44,7 @@ export class SourceStageForm extends BaseStageForm<SourceStage> {
"Inject an OAuth or SAML Source into the flow execution. This allows for additional user verification, or to dynamically access different sources for different user identifiers (username, email address, etc).",
)}</span
>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -52,7 +52,7 @@ export class SourceStageForm extends BaseStageForm<SourceStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Source")} ?required=${true} name="source">
<ak-form-element-horizontal label=${msg("Source")} required name="source">
<ak-search-select
.fetchObjects=${async (query?: string): Promise<Source[]> => {
const args: SourcesAllListRequest = {
@ -81,7 +81,7 @@ export class SourceStageForm extends BaseStageForm<SourceStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Resume timeout")}
?required=${true}
required
name="resumeTimeout"
>
<input

View File

@ -35,7 +35,7 @@ export class UserDeleteStageForm extends BaseStageForm<UserDeleteStage> {
"Delete the currently pending user. CAUTION, this stage does not ask for confirmation. Use a consent stage to ensure the user is aware of their actions.",
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"

View File

@ -33,7 +33,7 @@ export class UserLoginStageForm extends BaseStageForm<UserLoginStage> {
renderForm(): TemplateResult {
return html` <span>${msg("Log the currently pending user in.")}</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${this.instance?.name ?? ""}"
@ -41,12 +41,12 @@ export class UserLoginStageForm extends BaseStageForm<UserLoginStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal
label=${msg("Session duration")}
?required=${true}
required
name="sessionDuration"
>
<input
@ -63,7 +63,7 @@ export class UserLoginStageForm extends BaseStageForm<UserLoginStage> {
)}
</p>
<ak-utils-time-delta-help></ak-utils-time-delta-help>
<ak-alert ?inline=${true}>
<ak-alert inline>
${msg(
"Different browsers handle session cookies differently, and might not remove them even when the browser is closed.",
)}
@ -77,7 +77,7 @@ export class UserLoginStageForm extends BaseStageForm<UserLoginStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Stay signed in offset")}
?required=${true}
required
name="rememberMeOffset"
>
<input
@ -97,7 +97,7 @@ export class UserLoginStageForm extends BaseStageForm<UserLoginStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("Network binding")}
?required=${true}
required
name="networkBinding"
>
<ak-radio
@ -131,7 +131,7 @@ export class UserLoginStageForm extends BaseStageForm<UserLoginStage> {
</ak-form-element-horizontal>
<ak-form-element-horizontal
label=${msg("GeoIP binding")}
?required=${true}
required
name="geoipBinding"
>
<ak-radio

View File

@ -31,7 +31,7 @@ export class UserLogoutStageForm extends BaseStageForm<UserLogoutStage> {
renderForm(): TemplateResult {
return html` <span>${msg("Remove the user from the current session.")}</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"

View File

@ -47,7 +47,7 @@ export class UserWriteStageForm extends BaseStageForm<UserWriteStage> {
is pending, a new user is created, and data is written to them.`,
)}
</span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name">
<ak-form-element-horizontal label=${msg("Name")} required name="name">
<input
type="text"
value="${ifDefined(this.instance?.name || "")}"
@ -55,7 +55,7 @@ export class UserWriteStageForm extends BaseStageForm<UserWriteStage> {
required
/>
</ak-form-element-horizontal>
<ak-form-group .expanded=${true}>
<ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="userCreationMode">
@ -183,7 +183,7 @@ export class UserWriteStageForm extends BaseStageForm<UserWriteStage> {
.selected=${(group: Group): boolean => {
return group.pk === this.instance?.createUsersGroup;
}}
?blankable=${true}
blankable
>
</ak-search-select>
<p class="pf-c-form__helper-text">

View File

@ -58,7 +58,7 @@ export class TokenForm extends ModelForm<Token, string> {
return html` <ak-form-element-horizontal
label=${msg("Identifier")}
name="identifier"
?required=${true}
required
>
<input
type="text"
@ -72,7 +72,7 @@ export class TokenForm extends ModelForm<Token, string> {
${msg("Unique identifier the token is referenced by.")}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("User")} ?required=${true} name="user">
<ak-form-element-horizontal label=${msg("User")} required name="user">
<ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = {
@ -99,7 +99,7 @@ export class TokenForm extends ModelForm<Token, string> {
>
</ak-search-select>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Intent")} ?required=${true} name="intent">
<ak-form-element-horizontal label=${msg("Intent")} required name="intent">
<ak-radio
.options=${[
{

View File

@ -54,11 +54,7 @@ export class ServiceAccountForm extends Form<UserServiceAccountRequest> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal
label=${msg("Username")}
?required=${true}
name="name"
>
return html`<ak-form-element-horizontal label=${msg("Username")} required name="name">
<input
type="text"
value=""
@ -73,7 +69,7 @@ export class ServiceAccountForm extends Form<UserServiceAccountRequest> {
</ak-form-element-horizontal>
<ak-form-element-horizontal name="createGroup">
<label class="pf-c-switch">
<input class="pf-c-switch__input" type="checkbox" ?checked=${true} />
<input class="pf-c-switch__input" type="checkbox" checked />
<span class="pf-c-switch__toggle">
<span class="pf-c-switch__toggle-icon">
<i class="fas fa-check" aria-hidden="true"></i>
@ -89,7 +85,7 @@ export class ServiceAccountForm extends Form<UserServiceAccountRequest> {
</ak-form-element-horizontal>
<ak-form-element-horizontal name="expiring">
<label class="pf-c-switch">
<input class="pf-c-switch__input" type="checkbox" ?checked=${true} />
<input class="pf-c-switch__input" type="checkbox" checked />
<span class="pf-c-switch__toggle">
<span class="pf-c-switch__toggle-icon">
<i class="fas fa-check" aria-hidden="true"></i>

View File

@ -81,11 +81,7 @@ export class UserForm extends ModelForm<User, number> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal
label=${msg("Username")}
?required=${true}
name="username"
>
return html`<ak-form-element-horizontal label=${msg("Username")} required name="username">
<input
type="text"
value="${ifDefined(this.instance?.username)}"
@ -106,7 +102,7 @@ export class UserForm extends ModelForm<User, number> {
/>
<p class="pf-c-form__helper-text">${msg("User's display name.")}</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("User type")} ?required=${true} name="type">
<ak-form-element-horizontal label=${msg("User type")} required name="type">
<ak-radio
.options=${[
{
@ -172,7 +168,7 @@ export class UserForm extends ModelForm<User, number> {
)}
</p>
</ak-form-element-horizontal>
<ak-form-element-horizontal label=${msg("Path")} ?required=${true} name="path">
<ak-form-element-horizontal label=${msg("Path")} required name="path">
<input
type="text"
value="${this.instance?.path ?? this.defaultPath}"

View File

@ -26,11 +26,7 @@ export class UserPasswordForm extends Form<UserPasswordSetRequest> {
}
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal
label=${msg("Password")}
?required=${true}
name="password"
>
return html`<ak-form-element-horizontal label=${msg("Password")} required name="password">
<input type="password" value="" class="pf-c-form-control" required />
</ak-form-element-horizontal>`;
}

View File

@ -67,7 +67,7 @@ export class UserPermissionForm extends ModelForm<UserPermissionAssign, number>
<ak-chip-group>
${this.permissionsToAdd.map((permission) => {
return html`<ak-chip
.removable=${true}
removable
value=${`${permission.appLabel}.${permission.codename}`}
@remove=${() => {
const idx = this.permissionsToAdd.indexOf(permission);

View File

@ -34,7 +34,7 @@ export class UserResetEmailForm extends Form<CoreUsersRecoveryEmailCreateRequest
renderForm(): TemplateResult {
return html`<ak-form-element-horizontal
label=${msg("Email stage")}
?required=${true}
required
name="emailStage"
>
<ak-search-select

View File

@ -260,7 +260,7 @@ export class UserViewPage extends WithCapabilitiesConfig(AKElement) {
renderTabCredentialsToken(user: User): TemplateResult {
return html`
<ak-tabs pageIdentifier="userCredentialsTokens" ?vertical=${true}>
<ak-tabs pageIdentifier="userCredentialsTokens" vertical>
<section
slot="page-sessions"
data-tab-title="${msg("Sessions")}"

View File

@ -48,7 +48,7 @@ export const AppIcon = () => {
</dd>
<dt>Programmatically Good</dt><dd>
<ak-status-label ?good=${true}></ak-status-label>
<ak-status-label good></ak-status-label>
</dd>
<dt>Programmatically Bad</dt><dd>

View File

@ -199,7 +199,7 @@ export class TreeView extends AKElement {
<ak-treeview-node
.item=${rootItem}
activePath=${this.activePath}
?open=${true}
open
separator=${this.separator}
.host=${this}
></ak-treeview-node>

View File

@ -73,7 +73,7 @@ export class MockSearch extends CustomListenerElement(AKElement) {
.selected=${this.selected}
managed
@ak-change=${this.handleSearchUpdate}
?blankable=${true}
blankable
>
</ak-search-select>
`;

View File

@ -97,7 +97,7 @@ export class UserOAuthAccessTokenList extends Table<TokenModel> {
: msg("-")}`,
html`<ak-chip-group>
${item.scope.sort().map((scope) => {
return html`<ak-chip .removable=${false}>${scope}</ak-chip>`;
return html`<ak-chip>${scope}</ak-chip>`;
})}
</ak-chip-group>`,
];

View File

@ -98,7 +98,7 @@ export class UserOAuthRefreshTokenList extends Table<TokenModel> {
: msg("-")}`,
html`<ak-chip-group>
${item.scope.sort().map((scope) => {
return html`<ak-chip .removable=${false}>${scope}</ak-chip>`;
return html`<ak-chip>${scope}</ak-chip>`;
})}
</ak-chip-group>`,
];

Some files were not shown because too many files have changed in this diff Show More