<%args> $CurrentDashboard => undef <%init> my @dashboards = $m->comp("/Dashboards/Elements/ListOfDashboards"); my $limit = 7; $m->callback( Dashboards => \@dashboards, Limit => \$limit, CallbackName => 'MassageDashboards', ); my $more = 0; if (@dashboards > $limit) { $more = 1; splice @dashboards, $limit; } # always include the current dashboard, even if it's not in the initial list push @dashboards, $CurrentDashboard if $CurrentDashboard && 0 == grep { $_->Id == $CurrentDashboard->Id } @dashboards; my $position = 0; my $tabs = { map { ++$position; my $key = sprintf 'D-%03d', $position; $key => { title => $_->Name, path => 'Dashboards/' . $_->Id . '/' . $_->Name, } } @dashboards }; $tabs->{"A"} = { title => loc('Home'), path => 'index.html', }; if ($more) { $tabs->{"D-more"} = { title => loc('More'), path => 'Dashboards/index.html', } } return $tabs;