web/elements: fix error with blank SearchSelect elements in forms
closes #2469 Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
becec6b7d8
commit
abc73deda0
|
@ -40,7 +40,7 @@ export class SearchSelect<T> extends LitElement {
|
|||
renderElement!: (element: T) => string;
|
||||
|
||||
@property({ attribute: false })
|
||||
value!: (element: T) => unknown;
|
||||
value!: (element: T | undefined) => unknown;
|
||||
|
||||
@property({ attribute: false })
|
||||
selected!: (element: T) => boolean;
|
||||
|
|
|
@ -153,7 +153,11 @@ export class Form<T> extends LitElement {
|
|||
json[element.name] = element.checked;
|
||||
} else if (element.tagName.toLowerCase() === "ak-search-select") {
|
||||
const select = element as unknown as SearchSelect<unknown>;
|
||||
json[element.name] = select.value(select.selectedObject);
|
||||
try {
|
||||
json[element.name] = select.value(select.selectedObject);
|
||||
} catch {
|
||||
console.debug("authentik/form: SearchSelect.value error");
|
||||
}
|
||||
} else {
|
||||
for (let v = 0; v < values.length; v++) {
|
||||
this.serializeFieldRecursive(element, values[v], json);
|
||||
|
|
|
@ -222,8 +222,8 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
|
|||
.renderElement=${(group: Group): string => {
|
||||
return group.name;
|
||||
}}
|
||||
.value=${(group: Group): string => {
|
||||
return group.pk;
|
||||
.value=${(group: Group | undefined): string => {
|
||||
return group ? group.pk : "";
|
||||
}}
|
||||
.selected=${(group: Group): boolean => {
|
||||
return group.pk === this.instance?.group;
|
||||
|
@ -256,8 +256,8 @@ export class PolicyBindingForm extends ModelForm<PolicyBinding, string> {
|
|||
.renderElement=${(user: User): string => {
|
||||
return UserOption(user);
|
||||
}}
|
||||
.value=${(user: User): number => {
|
||||
return user.pk;
|
||||
.value=${(user: User | undefined): number => {
|
||||
return user ? user.pk : 0;
|
||||
}}
|
||||
.selected=${(user: User): boolean => {
|
||||
return user.pk === this.instance?.user;
|
||||
|
|
Reference in a new issue