mirror of
https://github.com/Part-DB/Part-DB-server.git
synced 2025-06-21 01:25:55 +02:00
Added an parameter to decide, if the root tree node should be expanded or not
Related to issue #158, but it does not work due to a very buggy treeview...
This commit is contained in:
parent
cb16819340
commit
e7fa1ebcb8
5 changed files with 17 additions and 5 deletions
|
@ -47,6 +47,7 @@ parameters:
|
||||||
- categories
|
- categories
|
||||||
- devices
|
- devices
|
||||||
- tools
|
- tools
|
||||||
|
partdb.sidebar.root_expanded: true # If this is set to true, the root node of the sidebar is expanded by default
|
||||||
|
|
||||||
######################################################################################################################
|
######################################################################################################################
|
||||||
# Miscellaneous
|
# Miscellaneous
|
||||||
|
|
|
@ -199,6 +199,13 @@ services:
|
||||||
tags:
|
tags:
|
||||||
- { name: 'app.label_placeholder_provider', priority: 10}
|
- { name: 'app.label_placeholder_provider', priority: 10}
|
||||||
|
|
||||||
|
####################################################################################################################
|
||||||
|
# Trees
|
||||||
|
####################################################################################################################
|
||||||
|
App\Services\Trees\TreeViewGenerator:
|
||||||
|
arguments:
|
||||||
|
$rootNodeExpandedByDefault: '%partdb.sidebar.root_expanded%'
|
||||||
|
|
||||||
####################################################################################################################
|
####################################################################################################################
|
||||||
# Symfony overrides
|
# Symfony overrides
|
||||||
####################################################################################################################
|
####################################################################################################################
|
||||||
|
|
|
@ -204,14 +204,14 @@ final class TreeViewNode implements JsonSerializable
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setExpanded(?bool $selected): self
|
public function setExpanded(?bool $selected = true): self
|
||||||
{
|
{
|
||||||
//Lazy loading of state, so it does not need to get serialized and transfered, when it is empty.
|
//Lazy loading of state, so it does not need to get serialized and transfered, when it is empty.
|
||||||
if (null === $this->state) {
|
if (null === $this->state) {
|
||||||
$this->state = new TreeViewNodeState();
|
$this->state = new TreeViewNodeState();
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->state->setExpanded(true);
|
$this->state->setExpanded($selected);
|
||||||
|
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,14 +64,18 @@ class TreeViewGenerator
|
||||||
protected $keyGenerator;
|
protected $keyGenerator;
|
||||||
protected $translator;
|
protected $translator;
|
||||||
|
|
||||||
|
protected $rootNodeExpandedByDefault;
|
||||||
|
|
||||||
public function __construct(EntityURLGenerator $URLGenerator, EntityManagerInterface $em,
|
public function __construct(EntityURLGenerator $URLGenerator, EntityManagerInterface $em,
|
||||||
TagAwareCacheInterface $treeCache, UserCacheKeyGenerator $keyGenerator, TranslatorInterface $translator)
|
TagAwareCacheInterface $treeCache, UserCacheKeyGenerator $keyGenerator, TranslatorInterface $translator, bool $rootNodeExpandedByDefault)
|
||||||
{
|
{
|
||||||
$this->urlGenerator = $URLGenerator;
|
$this->urlGenerator = $URLGenerator;
|
||||||
$this->em = $em;
|
$this->em = $em;
|
||||||
$this->cache = $treeCache;
|
$this->cache = $treeCache;
|
||||||
$this->keyGenerator = $keyGenerator;
|
$this->keyGenerator = $keyGenerator;
|
||||||
$this->translator = $translator;
|
$this->translator = $translator;
|
||||||
|
|
||||||
|
$this->rootNodeExpandedByDefault = $rootNodeExpandedByDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -142,7 +146,7 @@ class TreeViewGenerator
|
||||||
|
|
||||||
if ($mode === 'list_parts_root' ||$mode === 'devices') {
|
if ($mode === 'list_parts_root' ||$mode === 'devices') {
|
||||||
$root_node = new TreeViewNode($this->translator->trans('tree.root_node.text'), null, $generic);
|
$root_node = new TreeViewNode($this->translator->trans('tree.root_node.text'), null, $generic);
|
||||||
$root_node->setExpanded(true);
|
$root_node->setExpanded($this->rootNodeExpandedByDefault);
|
||||||
$generic = [$root_node];
|
$generic = [$root_node];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
<input type="search" class="form-control bg-light border-0" placeholder="{% trans %}search.placeholder{% endtrans %}" {{ stimulus_action('elements/sidebar_tree', 'searchInput') }}>
|
<input type="search" class="form-control bg-light border-0" placeholder="{% trans %}search.placeholder{% endtrans %}" {{ stimulus_action('elements/sidebar_tree', 'searchInput') }}>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="tree-categories" {{ stimulus_target('elements/sidebar_tree', 'tree') }}></div>
|
<div id="{{ id }}Tree" {{ stimulus_target('elements/sidebar_tree', 'tree') }}></div>
|
||||||
</div>
|
</div>
|
||||||
{% endmacro %}
|
{% endmacro %}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue