mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-14 18:08:21 +01:00
Fix Et2Tree loses initial value
getValue() needs to give back what is set by set_value() or whatever, even if the tree has not rendered yet.
This commit is contained in:
parent
b0cf9bd70f
commit
a076aba728
@ -367,15 +367,6 @@ export class Et2Tree extends Et2WidgetWithSelectMixin(LitElement)
|
|||||||
return this._currentOption
|
return this._currentOption
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* getValue, retrieves the Id of the selected Item
|
|
||||||
* @return string or object or null
|
|
||||||
*/
|
|
||||||
getValue(): string | string[]
|
|
||||||
{
|
|
||||||
return this._currentOption ? this._currentOption.id : null
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* getSelectedNode, retrieves the full node of the selected Item
|
* getSelectedNode, retrieves the full node of the selected Item
|
||||||
* @return {SlTreeItem} full SlTreeItem
|
* @return {SlTreeItem} full SlTreeItem
|
||||||
@ -598,7 +589,7 @@ export class Et2Tree extends Et2WidgetWithSelectMixin(LitElement)
|
|||||||
exportparts="checkbox"
|
exportparts="checkbox"
|
||||||
id=${selectOption.id}
|
id=${selectOption.id}
|
||||||
title=${selectOption.tooltip || nothing}
|
title=${selectOption.tooltip || nothing}
|
||||||
?selected=${this.value.includes(selectOption.id)}
|
?selected=${typeof this.value == "string" && this.value == selectOption.id || typeof this.value?.includes == "function" && this.value.includes(selectOption.id)}
|
||||||
?expanded=${(this.calculateExpandState(selectOption))}
|
?expanded=${(this.calculateExpandState(selectOption))}
|
||||||
?lazy=${selectOption.item?.length === 0 && selectOption.child}
|
?lazy=${selectOption.item?.length === 0 && selectOption.child}
|
||||||
?focused=${selectOption.focused || nothing}
|
?focused=${selectOption.focused || nothing}
|
||||||
@ -627,6 +618,8 @@ export class Et2Tree extends Et2WidgetWithSelectMixin(LitElement)
|
|||||||
(event: any) => {
|
(event: any) => {
|
||||||
this._previousOption = this._currentOption ?? (this.value.length ? this.getNode(this.value) : null);
|
this._previousOption = this._currentOption ?? (this.value.length ? this.getNode(this.value) : null);
|
||||||
this._currentOption = this.getNode(event.detail.selection[0].id);
|
this._currentOption = this.getNode(event.detail.selection[0].id);
|
||||||
|
const ids = event.detail.selection.map(i => i.id);
|
||||||
|
this.value = this.multiple ? ids ?? [] : ids[0] ?? "";
|
||||||
event.detail.previous = this._previousOption?.id;
|
event.detail.previous = this._previousOption?.id;
|
||||||
this._currentSlTreeItem = event.detail.selection[0];
|
this._currentSlTreeItem = event.detail.selection[0];
|
||||||
if(typeof this.onclick == "function")
|
if(typeof this.onclick == "function")
|
||||||
@ -757,6 +750,10 @@ export class Et2Tree extends Et2WidgetWithSelectMixin(LitElement)
|
|||||||
|
|
||||||
protected updated(_changedProperties: PropertyValues)
|
protected updated(_changedProperties: PropertyValues)
|
||||||
{
|
{
|
||||||
|
// This is somehow required to set the autoload URL properly?
|
||||||
|
// TODO: Make this not needed, either this.autoload_url should be properly set or go away in favour of using this.autoload
|
||||||
|
this.createTree();
|
||||||
|
|
||||||
this._link_actions(this.actions)
|
this._link_actions(this.actions)
|
||||||
super.updated(_changedProperties);
|
super.updated(_changedProperties);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user