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; protected readonly ws: WebsocketClient;
@property({ @property({ type: Object, attribute: false })
type: Object,
attribute: false,
reflect: false,
})
public user?: SessionUser; public user?: SessionUser;
@query("ak-about-modal") @query("ak-about-modal")
public aboutModal?: AboutModal; public aboutModal?: AboutModal;
@property({ type: Boolean, reflect: true }) @property({ type: Boolean, reflect: true })
public sidebarOpen: boolean; public sidebarOpen = false;
@eventOptions({ passive: true }) @eventOptions({ passive: true })
protected sidebarListener(event: CustomEvent<SidebarToggleEventDetail>) { protected sidebarListener(event: CustomEvent<SidebarToggleEventDetail>) {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -38,7 +38,7 @@ export class CertificateKeyPairForm extends ModelForm<CertificateKeyPair, string
} }
renderForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" value="${ifDefined(this.instance?.name)}"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -38,7 +38,7 @@ export class ServiceConnectionDockerForm extends ModelForm<DockerServiceConnecti
} }
renderForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" value="${ifDefined(this.instance?.name)}"
@ -66,7 +66,7 @@ export class ServiceConnectionDockerForm extends ModelForm<DockerServiceConnecti
)} )}
</p> </p>
</ak-form-element-horizontal> </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 <input
type="text" type="text"
value="${ifDefined(this.instance?.url)}" value="${ifDefined(this.instance?.url)}"

View File

@ -42,7 +42,7 @@ export class ServiceConnectionKubernetesForm extends ModelForm<
} }
renderForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" value="${ifDefined(this.instance?.name)}"

View File

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

View File

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

View File

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

View File

@ -94,7 +94,7 @@ export class PolicyTestForm extends Form<PolicyTestRequest> {
} }
renderForm(): TemplateResult { 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 <ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => { .fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = { 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.", "A policy used for testing. Always returns the same result as specified below after waiting a random duration.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -64,7 +64,7 @@ export class DummyPolicyForm extends BasePolicyForm<DummyPolicy> {
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span> <span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="result"> <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> <span class="pf-c-switch__label">${msg("Pass policy?")}</span>
</label> </label>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Wait (min)")} required name="waitMin">
label=${msg("Wait (min)")}
?required=${true}
name="waitMin"
>
<input <input
type="number" type="number"
value="${this.instance?.waitMin ?? 1}" value="${this.instance?.waitMin ?? 1}"
@ -99,11 +95,7 @@ export class DummyPolicyForm extends BasePolicyForm<DummyPolicy> {
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Wait (max)")} required name="waitMax">
label=${msg("Wait (max)")}
?required=${true}
name="waitMax"
>
<input <input
type="number" type="number"
value="${this.instance?.waitMax ?? 5}" 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.", "Matches an event against a set of criteria. If any of the configured values match, the policy passes.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -76,7 +76,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span> <span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("Action")} name="action"> <ak-form-element-horizontal label=${msg("Action")} name="action">
@ -98,7 +98,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
.selected=${(item: TypeCreate): boolean => { .selected=${(item: TypeCreate): boolean => {
return this.instance?.action === item.component; return this.instance?.action === item.component;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <p class="pf-c-form__helper-text">
@ -138,7 +138,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
.selected=${(item: App): boolean => { .selected=${(item: App): boolean => {
return this.instance?.app === item.name; return this.instance?.app === item.name;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <p class="pf-c-form__helper-text">
@ -168,7 +168,7 @@ export class EventMatcherPolicyForm extends BasePolicyForm<EventMatcherPolicy> {
.selected=${(item: App): boolean => { .selected=${(item: App): boolean => {
return this.instance?.model === item.name; return this.instance?.model === item.name;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <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.", "Checks if the request's user's password has been changed in the last x days, and denys based on settings.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -64,12 +64,12 @@ export class PasswordExpiryPolicyForm extends BasePolicyForm<PasswordExpiryPolic
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span> <span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Maximum age (in days)")} label=${msg("Maximum age (in days)")}
?required=${true} required
name="days" name="days"
> >
<input <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.", "Executes the python snippet to determine whether to allow or deny a request.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -67,12 +67,12 @@ export class ExpressionPolicyForm extends BasePolicyForm<ExpressionPolicy> {
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span> <span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Expression")} label=${msg("Expression")}
?required=${true} required
name="expression" name="expression"
> >
<ak-codemirror <ak-codemirror

View File

@ -49,7 +49,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Minimum length")} label=${msg("Minimum length")}
?required=${true} required
name="lengthMin" name="lengthMin"
> >
<input <input
@ -61,7 +61,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Minimum amount of Uppercase Characters")} label=${msg("Minimum amount of Uppercase Characters")}
?required=${true} required
name="amountUppercase" name="amountUppercase"
> >
<input <input
@ -73,7 +73,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Minimum amount of Lowercase Characters")} label=${msg("Minimum amount of Lowercase Characters")}
?required=${true} required
name="amountLowercase" name="amountLowercase"
> >
<input <input
@ -85,7 +85,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Minimum amount of Digits")} label=${msg("Minimum amount of Digits")}
?required=${true} required
name="amountDigits" name="amountDigits"
> >
<input <input
@ -97,7 +97,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Minimum amount of Symbols Characters")} label=${msg("Minimum amount of Symbols Characters")}
?required=${true} required
name="amountSymbols" name="amountSymbols"
> >
<input <input
@ -109,7 +109,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Error message")} label=${msg("Error message")}
?required=${true} required
name="errorMessage" name="errorMessage"
> >
<input <input
@ -121,7 +121,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Symbol charset")} label=${msg("Symbol charset")}
?required=${true} required
name="symbolCharset" name="symbolCharset"
> >
<input <input
@ -142,12 +142,12 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
renderHIBP(): TemplateResult { renderHIBP(): TemplateResult {
return html` return html`
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("HaveIBeenPwned settings")} </span> <span slot="header"> ${msg("HaveIBeenPwned settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Allowed count")} label=${msg("Allowed count")}
?required=${true} required
name="hibpAllowedCount" name="hibpAllowedCount"
> >
<input <input
@ -167,12 +167,12 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
renderZxcvbn(): TemplateResult { renderZxcvbn(): TemplateResult {
return html` return html`
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("zxcvbn settings")} </span> <span slot="header"> ${msg("zxcvbn settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Score threshold")} label=${msg("Score threshold")}
?required=${true} required
name="zxcvbnScoreThreshold" name="zxcvbnScoreThreshold"
> >
<input <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.", "Checks the value from the policy request against several rules, mostly used to ensure password strength.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -251,7 +251,7 @@ export class PasswordPolicyForm extends BasePolicyForm<PasswordPolicy> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Password field")} label=${msg("Password field")}
?required=${true} required
name="passwordField" name="passwordField"
> >
<input <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.`, doesn't pass when either or both of the selected options are equal or above the threshold.`,
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" 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> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Policy-specific settings")} </span> <span slot="header"> ${msg("Policy-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="checkIp"> <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> <span class="pf-c-switch__label">${msg("Check Username")}</span>
</label> </label>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Threshold")} required name="threshold">
label=${msg("Threshold")}
?required=${true}
name="threshold"
>
<input <input
type="number" type="number"
value="${ifDefined(this.instance?.threshold || -5)}" 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.", "Ensure that the user's new password is different from their previous passwords. The number of past passwords to check is configurable.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -66,7 +66,7 @@ export class UniquePasswordPolicyForm extends BasePolicyForm<UniquePasswordPolic
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Password field")} label=${msg("Password field")}
?required=${true} required
name="passwordField" name="passwordField"
> >
<input <input
@ -81,7 +81,7 @@ export class UniquePasswordPolicyForm extends BasePolicyForm<UniquePasswordPolic
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Number of previous passwords to check")} label=${msg("Number of previous passwords to check")}
?required=${true} required
name="numHistoricalPasswords" name="numHistoricalPasswords"
> >
<input <input

View File

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

View File

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

View File

@ -42,7 +42,7 @@ export class ProviderViewPage extends AKElement {
renderProvider(): TemplateResult { renderProvider(): TemplateResult {
if (!this.provider) { 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) { switch (this.provider?.component) {
case "ak-provider-saml-form": case "ak-provider-saml-form":

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -39,7 +39,7 @@ export class RoleForm extends ModelForm<Role, string> {
} }
renderForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" value="${ifDefined(this.instance?.name)}"

View File

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

View File

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

View File

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

View File

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

View File

@ -124,7 +124,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
if (!this.providerType?.urlsCustomizable) { if (!this.providerType?.urlsCustomizable) {
return html``; return html``;
} }
return html` <ak-form-group .expanded=${true}> return html` <ak-form-group expanded>
<span slot="header"> ${msg("URL settings")} </span> <span slot="header"> ${msg("URL settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
@ -258,7 +258,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
} }
renderForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" value="${ifDefined(this.instance?.name)}"
@ -266,7 +266,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
required required
/> />
</ak-form-element-horizontal> </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 <input
type="text" type="text"
value="${ifDefined(this.instance?.slug)}" value="${ifDefined(this.instance?.slug)}"
@ -293,7 +293,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("User matching mode")} label=${msg("User matching mode")}
?required=${true} required
name="userMatchingMode" name="userMatchingMode"
> >
<select class="pf-c-form-control"> <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>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Group matching mode")} label=${msg("Group matching mode")}
?required=${true} required
name="groupMatchingMode" name="groupMatchingMode"
> >
<select class="pf-c-form-control"> <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> <p class="pf-c-form__helper-text">${iconHelperText}</p>
</ak-form-element-horizontal>`} </ak-form-element-horizontal>`}
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span> <span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Consumer key")} label=${msg("Consumer key")}
?required=${true} required
name="consumerKey" name="consumerKey"
> >
<input <input
@ -465,7 +465,7 @@ export class OAuthSourceForm extends WithCapabilitiesConfig(BaseSourceForm<OAuth
</div> </div>
</ak-form-group> </ak-form-group>
${this.renderUrlOptions()} ${this.renderUrlOptions()}
<ak-form-group ?expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("OAuth Attribute mapping")} </span> <span slot="header"> ${msg("OAuth Attribute mapping")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <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>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Allowed servers")} label=${msg("Allowed servers")}
?required=${true} required
name="allowedServers" name="allowedServers"
> >
<select class="pf-c-form-control" multiple> <select class="pf-c-form-control" multiple>
@ -174,7 +174,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
} }
renderForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" value="${ifDefined(this.instance?.name)}"
@ -182,7 +182,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
required required
/> />
</ak-form-element-horizontal> </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 <input
type="text" type="text"
value="${ifDefined(this.instance?.slug)}" value="${ifDefined(this.instance?.slug)}"
@ -207,7 +207,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("User matching mode")} label=${msg("User matching mode")}
?required=${true} required
name="userMatchingMode" name="userMatchingMode"
> >
<select class="pf-c-form-control"> <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>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Group matching mode")} label=${msg("Group matching mode")}
?required=${true} required
name="groupMatchingMode" name="groupMatchingMode"
> >
<select class="pf-c-form-control"> <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> <p class="pf-c-form__helper-text">${iconHelperText}</p>
</ak-form-element-horizontal>`} </ak-form-element-horizontal>`}
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Protocol settings")} </span> <span slot="header"> ${msg("Protocol settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Client ID")} required name="clientId">
label=${msg("Client ID")}
?required=${true}
name="clientId"
>
<input <input
type="text" type="text"
value="${this.instance?.clientId ?? ""}" value="${this.instance?.clientId ?? ""}"
@ -382,7 +378,7 @@ export class PlexSourceForm extends WithCapabilitiesConfig(BaseSourceForm<PlexSo
</ak-form-element-horizontal> </ak-form-element-horizontal>
</div> </div>
</ak-form-group> </ak-form-group>
<ak-form-group ?expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Plex Attribute mapping")} </span> <span slot="header"> ${msg("Plex Attribute mapping")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal

View File

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

View File

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

View File

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

View File

@ -49,11 +49,7 @@ export class DuoDeviceImportForm extends ModelForm<AuthenticatorDuoStage, string
} }
renderFormManual(): TemplateResult { renderFormManual(): TemplateResult {
return html`<ak-form-element-horizontal return html`<ak-form-element-horizontal label=${msg("User")} required name="username">
label=${msg("User")}
?required=${true}
name="username"
>
<ak-search-select <ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => { .fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = { 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.")} ${msg("The user in authentik this device will be assigned to.")}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Duo User ID")} required name="duoUserId">
label=${msg("Duo User ID")}
?required=${true}
name="duoUserId"
>
<input type="text" class="pf-c-form-control" required /> <input type="text" class="pf-c-form-control" required />
<p class="pf-c-form__helper-text"> <p class="pf-c-form__helper-text">
${msg("The user ID in Duo, can be found in the URL after clicking on a user.")} ${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) { if (!this.showConnectionSettings) {
return html``; return html``;
} }
return html`<ak-form-group .expanded=${true}> return html`<ak-form-group expanded>
<span slot="header"> ${msg("Connection settings")} </span> <span slot="header"> ${msg("Connection settings")} </span>
<div slot="body" class="pf-c-form"> <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 <input
type="text" type="text"
value="${ifDefined(this.instance?.host || "")}" value="${ifDefined(this.instance?.host || "")}"
@ -61,7 +61,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
required required
/> />
</ak-form-element-horizontal> </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 <input
type="number" type="number"
value="${this.instance?.port ?? 25}" 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> <span class="pf-c-switch__label">${msg("Use SSL")}</span>
</label> </label>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Timeout")} required name="timeout">
label=${msg("Timeout")}
?required=${true}
name="timeout"
>
<input <input
type="number" type="number"
value="${this.instance?.timeout ?? 30}" value="${this.instance?.timeout ?? 30}"
@ -127,7 +123,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("From address")} label=${msg("From address")}
?required=${true} required
name="fromAddress" name="fromAddress"
> >
<input <input
@ -146,7 +142,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
renderForm(): TemplateResult { renderForm(): TemplateResult {
return html` <span> ${msg("Stage used to configure an email-based authenticator.")} </span> 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 <input
type="text" type="text"
value="${this.instance?.name ?? ""}" value="${this.instance?.name ?? ""}"
@ -195,14 +191,10 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
${this.renderConnectionSettings()} ${this.renderConnectionSettings()}
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Subject")} required name="subject">
label=${msg("Subject")}
?required=${true}
name="subject"
>
<input <input
type="text" type="text"
value="${this.instance?.subject ?? "authentik Sign-in code"}" 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>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Token expiration")} label=${msg("Token expiration")}
?required=${true} required
name="tokenExpiry" name="tokenExpiry"
> >
<input <input
@ -261,7 +253,7 @@ export class AuthenticatorEmailStageForm extends BaseStageForm<AuthenticatorEmai
.selected=${(flow: Flow): boolean => { .selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk; return this.instance?.configureFlow === flow.pk;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <p class="pf-c-form__helper-text">

View File

@ -59,7 +59,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
renderProviderTwillio(): TemplateResult { renderProviderTwillio(): TemplateResult {
return html` <ak-form-element-horizontal return html` <ak-form-element-horizontal
label=${msg("Twilio Account SID")} label=${msg("Twilio Account SID")}
?required=${true} required
name="accountSid" name="accountSid"
> >
<input <input
@ -74,11 +74,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
${msg("Get this value from https://console.twilio.com")} ${msg("Get this value from https://console.twilio.com")}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Twilio Auth Token")} required name="auth">
label=${msg("Twilio Auth Token")}
?required=${true}
name="auth"
>
<input <input
type="text" type="text"
value="${this.instance?.auth ?? ""}" value="${this.instance?.auth ?? ""}"
@ -101,7 +97,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
const current = (ev.target as HTMLInputElement).value; const current = (ev.target as HTMLInputElement).value;
this.authType = current as AuthTypeEnum; this.authType = current as AuthTypeEnum;
}} }}
?required=${true} required
name="authType" name="authType"
> >
<ak-radio <ak-radio
@ -120,11 +116,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
> >
</ak-radio> </ak-radio>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("External API URL")} required name="accountSid">
label=${msg("External API URL")}
?required=${true}
name="accountSid"
>
<input <input
type="text" type="text"
value="${this.instance?.accountSid ?? ""}" 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.")} ${msg("This is the full endpoint to send POST requests to.")}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("API Auth Username")} required name="auth">
label=${msg("API Auth Username")}
?required=${true}
name="auth"
>
<input <input
type="text" type="text"
value="${this.instance?.auth ?? ""}" value="${this.instance?.auth ?? ""}"
@ -196,7 +184,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
.selected=${(item: NotificationWebhookMapping): boolean => { .selected=${(item: NotificationWebhookMapping): boolean => {
return this.instance?.mapping === item.pk; return this.instance?.mapping === item.pk;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <p class="pf-c-form__helper-text">
@ -210,7 +198,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
return html` <span> return html` <span>
${msg("Stage used to configure an SMS-based TOTP authenticator.")} ${msg("Stage used to configure an SMS-based TOTP authenticator.")}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${this.instance?.name ?? ""}" value="${this.instance?.name ?? ""}"
@ -234,14 +222,10 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Provider")} required name="provider">
label=${msg("Provider")}
?required=${true}
name="provider"
>
<select <select
class="pf-c-form-control" class="pf-c-form-control"
@change=${(ev: Event) => { @change=${(ev: Event) => {
@ -265,7 +249,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("From number")} label=${msg("From number")}
?required=${true} required
name="fromNumber" name="fromNumber"
> >
<input <input
@ -334,7 +318,7 @@ export class AuthenticatorSMSStageForm extends BaseStageForm<AuthenticatorSMSSta
.selected=${(flow: Flow): boolean => { .selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk; return this.instance?.configureFlow === flow.pk;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <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.", "Stage used to configure a static authenticator (i.e. static tokens). This stage should be used for configuration flows.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${this.instance?.name ?? ""}" value="${this.instance?.name ?? ""}"
@ -67,12 +67,12 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Token count")} label=${msg("Token count")}
?required=${true} required
name="tokenCount" name="tokenCount"
> >
<input <input
@ -89,7 +89,7 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Token length")} label=${msg("Token length")}
?required=${true} required
name="tokenLength" name="tokenLength"
> >
<input <input
@ -135,7 +135,7 @@ export class AuthenticatorStaticStageForm extends BaseStageForm<AuthenticatorSta
.selected=${(flow: Flow): boolean => { .selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk; return this.instance?.configureFlow === flow.pk;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <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).", "Stage used to configure a TOTP authenticator (i.e. Authy/Google Authenticator).",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${this.instance?.name ?? ""}" value="${this.instance?.name ?? ""}"
@ -69,14 +69,10 @@ export class AuthenticatorTOTPStageForm extends BaseStageForm<AuthenticatorTOTPS
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Digits")} required name="digits">
label=${msg("Digits")}
?required=${true}
name="digits"
>
<select name="users" class="pf-c-form-control"> <select name="users" class="pf-c-form-control">
<option <option
value="${DigitsEnum._6}" value="${DigitsEnum._6}"
@ -125,7 +121,7 @@ export class AuthenticatorTOTPStageForm extends BaseStageForm<AuthenticatorTOTPS
.selected=${(flow: Flow): boolean => { .selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk; return this.instance?.configureFlow === flow.pk;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <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.", "Stage used to validate any authenticator. This stage should be used during authentication or authorization flows.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -95,12 +95,12 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Device classes")} label=${msg("Device classes")}
?required=${true} required
name="deviceClasses" name="deviceClasses"
> >
<ak-checkbox-group <ak-checkbox-group
@ -119,7 +119,7 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Last validation threshold")} label=${msg("Last validation threshold")}
?required=${true} required
name="lastAuthThreshold" name="lastAuthThreshold"
> >
<input <input
@ -139,7 +139,7 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Not configured action")} label=${msg("Not configured action")}
?required=${true} required
name="notConfiguredAction" name="notConfiguredAction"
> >
<select <select
@ -208,12 +208,12 @@ export class AuthenticatorValidateStageForm extends BaseStageForm<AuthenticatorV
: html``} : html``}
</div> </div>
</ak-form-group> </ak-form-group>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("WebAuthn-specific settings")} </span> <span slot="header"> ${msg("WebAuthn-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("WebAuthn User verification")} label=${msg("WebAuthn User verification")}
?required=${true} required
name="webauthnUserVerification" name="webauthnUserVerification"
> >
<ak-radio <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.", "Optionally restrict which WebAuthn device types may be used. When no device types are selected, all devices are allowed.",
)} )}
</p> </p>
<ak-alert ?inline=${true}> <ak-alert inline>
${ ${
/* TODO: Remove this after 2024.6..or maybe later? */ /* TODO: Remove this after 2024.6..or maybe later? */
msg( 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).", "Stage used to configure a WebAuthn authenticator (i.e. Yubikey, FaceID/Windows Hello).",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${this.instance?.name ?? ""}" value="${this.instance?.name ?? ""}"
@ -77,12 +77,12 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("User verification")} label=${msg("User verification")}
?required=${true} required
name="userVerification" name="userVerification"
> >
<ak-radio <ak-radio
@ -109,7 +109,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Resident key requirement")} label=${msg("Resident key requirement")}
?required=${true} required
name="residentKeyRequirement" name="residentKeyRequirement"
> >
<ak-radio <ak-radio
@ -140,7 +140,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Authenticator Attachment")} label=${msg("Authenticator Attachment")}
?required=${true} required
name="authenticatorAttachment" name="authenticatorAttachment"
> >
<ak-radio <ak-radio
@ -226,7 +226,7 @@ export class AuthenticatorWebAuthnStageForm extends BaseStageForm<AuthenticatorW
.selected=${(flow: Flow): boolean => { .selected=${(flow: Flow): boolean => {
return this.instance?.configureFlow === flow.pk; return this.instance?.configureFlow === flow.pk;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <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.", "This stage checks the user's current session against the Google reCaptcha (or compatible) service.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -47,12 +47,12 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Public Key")} label=${msg("Public Key")}
?required=${true} required
name="publicKey" name="publicKey"
> >
<input <input
@ -129,11 +129,7 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
<ak-form-group> <ak-form-group>
<span slot="header"> ${msg("Advanced settings")} </span> <span slot="header"> ${msg("Advanced settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("JS URL")} required name="jsUrl">
label=${msg("JS URL")}
?required=${true}
name="jsUrl"
>
<input <input
type="url" type="url"
value="${ifDefined( value="${ifDefined(
@ -151,11 +147,7 @@ export class CaptchaStageForm extends BaseStageForm<CaptchaStage> {
)} )}
</p> </p>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("API URL")} required name="apiUrl">
label=${msg("API URL")}
?required=${true}
name="apiUrl"
>
<input <input
type="url" type="url"
value="${ifDefined( 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.", "Prompt for the user's consent. The consent can either be permanent or expire in a defined amount of time.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -53,10 +53,10 @@ export class ConsentStageForm extends BaseStageForm<ConsentStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <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 <select
class="pf-c-form-control" class="pf-c-form-control"
@change=${(ev: Event) => { @change=${(ev: Event) => {
@ -95,7 +95,7 @@ export class ConsentStageForm extends BaseStageForm<ConsentStage> {
<ak-form-element-horizontal <ak-form-element-horizontal
?hidden=${!this.showExpiresIn} ?hidden=${!this.showExpiresIn}
label=${msg("Consent expires in")} label=${msg("Consent expires in")}
?required=${true} required
name="consentExpireIn" name="consentExpireIn"
> >
<input <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.", "Statically deny the flow. To use this stage effectively, disable *Evaluate when flow is planned* on the respective binding.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -44,7 +44,7 @@ export class DenyStageForm extends BaseStageForm<DenyStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal label=${msg("Deny message")} name="denyMessage"> <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.", "Dummy stage used for testing. Shows a simple continue button and always passes.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"

View File

@ -50,7 +50,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
return html`<ak-form-group> return html`<ak-form-group>
<span slot="header"> ${msg("Connection settings")} </span> <span slot="header"> ${msg("Connection settings")} </span>
<div slot="body" class="pf-c-form"> <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 <input
type="text" type="text"
value="${ifDefined(this.instance?.host || "")}" value="${ifDefined(this.instance?.host || "")}"
@ -58,7 +58,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
required required
/> />
</ak-form-element-horizontal> </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 <input
type="number" type="number"
value="${this.instance?.port ?? 25}" 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> <span class="pf-c-switch__label">${msg("Use SSL")}</span>
</label> </label>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Timeout")} required name="timeout">
label=${msg("Timeout")}
?required=${true}
name="timeout"
>
<input <input
type="number" type="number"
value="${this.instance?.timeout ?? 30}" value="${this.instance?.timeout ?? 30}"
@ -122,7 +118,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("From address")} label=${msg("From address")}
?required=${true} required
name="fromAddress" name="fromAddress"
> >
<input <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.", "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> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -150,7 +146,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="activateUserOnSuccess"> <ak-form-element-horizontal name="activateUserOnSuccess">
@ -201,7 +197,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Token expiration")} label=${msg("Token expiration")}
?required=${true} required
name="tokenExpiry" name="tokenExpiry"
> >
<input <input
@ -215,11 +211,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
</p> </p>
<ak-utils-time-delta-help></ak-utils-time-delta-help> <ak-utils-time-delta-help></ak-utils-time-delta-help>
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Subject")} required name="subject">
label=${msg("Subject")}
?required=${true}
name="subject"
>
<input <input
type="text" type="text"
value="${this.instance?.subject ?? "authentik"}" value="${this.instance?.subject ?? "authentik"}"
@ -227,11 +219,7 @@ export class EmailStageForm extends BaseStageForm<EmailStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Template")} required name="template">
label=${msg("Template")}
?required=${true}
name="template"
>
<select name="users" class="pf-c-form-control"> <select name="users" class="pf-c-form-control">
${this.templates?.map((template) => { ${this.templates?.map((template) => {
const selected = this.instance?.template === template.name; const selected = this.instance?.template === template.name;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -203,7 +203,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
} }
renderEditForm(): TemplateResult { 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name)}" 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.")} ${msg("Unique name of this field, used for selecting fields in prompt stages.")}
</p> </p>
</ak-form-element-horizontal> </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 <input
type="text" type="text"
value="${ifDefined(this.instance?.fieldKey)}" value="${ifDefined(this.instance?.fieldKey)}"
@ -238,7 +238,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
)} )}
</p> </p>
</ak-form-element-horizontal> </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 <input
type="text" type="text"
value="${ifDefined(this.instance?.label)}" value="${ifDefined(this.instance?.label)}"
@ -252,7 +252,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
${msg("Label shown next to/above the prompt.")} ${msg("Label shown next to/above the prompt.")}
</p> </p>
</ak-form-element-horizontal> </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 <select
class="pf-c-form-control" class="pf-c-form-control"
@change=${() => { @change=${() => {
@ -371,7 +371,7 @@ export class PromptForm extends ModelForm<Prompt, string> {
</ak-codemirror> </ak-codemirror>
<p class="pf-c-form__helper-text">${msg("Any HTML can be used.")}</p> <p class="pf-c-form__helper-text">${msg("Any HTML can be used.")}</p>
</ak-form-element-horizontal> </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 <input
type="number" type="number"
value="${this.instance?.order ?? 0}" 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.", "Show arbitrary input fields to the user, for example during enrollment. Data is saved in the flow context under the 'prompt_data' variable.",
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -55,14 +55,10 @@ export class PromptStageForm extends BaseStageForm<PromptStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal <ak-form-element-horizontal label=${msg("Fields")} required name="fields">
label=${msg("Fields")}
?required=${true}
name="fields"
>
<ak-dual-select-dynamic-selected <ak-dual-select-dynamic-selected
.provider=${promptFieldsProvider} .provider=${promptFieldsProvider}
.selector=${promptFieldsSelector(this.instance?.fields)} .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).", "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 )}</span
> >
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -52,7 +52,7 @@ export class SourceStageForm extends BaseStageForm<SourceStage> {
required required
/> />
</ak-form-element-horizontal> </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 <ak-search-select
.fetchObjects=${async (query?: string): Promise<Source[]> => { .fetchObjects=${async (query?: string): Promise<Source[]> => {
const args: SourcesAllListRequest = { const args: SourcesAllListRequest = {
@ -81,7 +81,7 @@ export class SourceStageForm extends BaseStageForm<SourceStage> {
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-element-horizontal <ak-form-element-horizontal
label=${msg("Resume timeout")} label=${msg("Resume timeout")}
?required=${true} required
name="resumeTimeout" name="resumeTimeout"
> >
<input <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.", "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> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"

View File

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

View File

@ -31,7 +31,7 @@ export class UserLogoutStageForm extends BaseStageForm<UserLogoutStage> {
renderForm(): TemplateResult { renderForm(): TemplateResult {
return html` <span>${msg("Remove the user from the current session.")}</span> 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 <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" 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.`, is pending, a new user is created, and data is written to them.`,
)} )}
</span> </span>
<ak-form-element-horizontal label=${msg("Name")} ?required=${true} name="name"> <ak-form-element-horizontal label=${msg("Name")} required name="name">
<input <input
type="text" type="text"
value="${ifDefined(this.instance?.name || "")}" value="${ifDefined(this.instance?.name || "")}"
@ -55,7 +55,7 @@ export class UserWriteStageForm extends BaseStageForm<UserWriteStage> {
required required
/> />
</ak-form-element-horizontal> </ak-form-element-horizontal>
<ak-form-group .expanded=${true}> <ak-form-group expanded>
<span slot="header"> ${msg("Stage-specific settings")} </span> <span slot="header"> ${msg("Stage-specific settings")} </span>
<div slot="body" class="pf-c-form"> <div slot="body" class="pf-c-form">
<ak-form-element-horizontal name="userCreationMode"> <ak-form-element-horizontal name="userCreationMode">
@ -183,7 +183,7 @@ export class UserWriteStageForm extends BaseStageForm<UserWriteStage> {
.selected=${(group: Group): boolean => { .selected=${(group: Group): boolean => {
return group.pk === this.instance?.createUsersGroup; return group.pk === this.instance?.createUsersGroup;
}} }}
?blankable=${true} blankable
> >
</ak-search-select> </ak-search-select>
<p class="pf-c-form__helper-text"> <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 return html` <ak-form-element-horizontal
label=${msg("Identifier")} label=${msg("Identifier")}
name="identifier" name="identifier"
?required=${true} required
> >
<input <input
type="text" type="text"
@ -72,7 +72,7 @@ export class TokenForm extends ModelForm<Token, string> {
${msg("Unique identifier the token is referenced by.")} ${msg("Unique identifier the token is referenced by.")}
</p> </p>
</ak-form-element-horizontal> </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 <ak-search-select
.fetchObjects=${async (query?: string): Promise<User[]> => { .fetchObjects=${async (query?: string): Promise<User[]> => {
const args: CoreUsersListRequest = { const args: CoreUsersListRequest = {
@ -99,7 +99,7 @@ export class TokenForm extends ModelForm<Token, string> {
> >
</ak-search-select> </ak-search-select>
</ak-form-element-horizontal> </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 <ak-radio
.options=${[ .options=${[
{ {

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

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