X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/c345944814d217a00b73824747ed34725f311f10..29dad41c0aeeb866ef040c173f78a1306cae69c8:/SL/Menu.pm diff --git a/SL/Menu.pm b/SL/Menu.pm index 800f000b2..0e92cc5b3 100644 --- a/SL/Menu.pm +++ b/SL/Menu.pm @@ -119,6 +119,19 @@ sub build_tree { push @{ $by_parent{ $node->{parent} // '' } //= [] }, $node; } + # autovivify order in by_parent, so that numerical sorting for entries without order + # preserves their order and position with respect to entries with order. + for (values %by_parent) { + my $last_order = 0; + for my $node (@$_) { + if (defined $node->{order} && $node->{order} * 1) { + $last_order = $node->{order}; + } else { + $node->{order} = ++$last_order; + } + } + } + my $tree = { }; $self->{by_id}{''} = $tree;