sort the tenants in menu

This commit is contained in:
Oliver Gorwits
2022-09-24 20:04:31 +01:00
parent ea2a4e02d9
commit 7884a87e18
2 changed files with 14 additions and 9 deletions

View File

@@ -19,6 +19,7 @@ use Module::Load ();
use Data::Visitor::Tiny; use Data::Visitor::Tiny;
use Scalar::Util 'blessed'; use Scalar::Util 'blessed';
use Storable 'dclone'; use Storable 'dclone';
use URI::Based;
use App::Netdisco::Util::Web qw/ use App::Netdisco::Util::Web qw/
interval_to_daterange interval_to_daterange
@@ -187,14 +188,18 @@ hook after_error_render => sub { setting('layout' => 'main') };
# build lookup for tenancies # build lookup for tenancies
{ {
set('tenant_displaynames' => { set('tenant_data' => {
map { ( $_->{tag} => { displayname => $_->{displayname}, map { ( $_->{tag} => { displayname => $_->{'displayname'},
path => config->{url_base}->with("/t/$_->{tag}")->path } ) } tag => $_->{'tag'},
path => config->{'url_base'}->with("/t/$_->{tag}")->path } ) }
@{ setting('tenant_databases') }, @{ setting('tenant_databases') },
{ tag => 'netdisco', displayname => 'Default' } { tag => 'netdisco', displayname => 'Default' }
}); });
config->{'tenant_displaynames'}->{'netdisco'}->{'path'} config->{'tenant_data'}->{'netdisco'}->{'path'}
= URI::Based->new((config->{path} eq '/') ? '' : config->{path})->path; = URI::Based->new((config->{path} eq '/') ? '' : config->{path})->path;
set('tenant_tags' => [ map { $_->{'tag'} }
sort { $a->{'displayname'} cmp $b->{'displayname'} }
values %{ config->{'tenant_data'} } ]);
} }
hook 'before' => sub { hook 'before' => sub {

View File

@@ -176,17 +176,17 @@
<li class="dropdown"> <li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">
<i class="icon-home text-success"></i> <i class="icon-home text-success"></i>
&nbsp;[% settings.tenant_displaynames.$tenant.displayname || 'Default' | html_entity %] &nbsp;[% settings.tenant_data.$tenant.displayname || 'Default' | html_entity %]
<b class="caret"></b> <b class="caret"></b>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
[% FOREACH t IN settings.tenant_displaynames.keys %] [% FOREACH t IN settings.tenant_tags %]
[% NEXT IF tenant AND t == tenant %] [% NEXT IF tenant AND t == tenant %]
[% NEXT IF NOT tenant and t == 'netdisco' %] [% NEXT IF NOT tenant and t == 'netdisco' %]
<li><a class="nd_navtenant" href="" <li><a class="nd_navtenant" href=""
data-currenttenant="[% settings.tenant_displaynames.$tenant.path || settings.tenant_displaynames.netdisco.path %]" data-currenttenant="[% settings.tenant_data.$tenant.path || settings.tenant_data.netdisco.path %]"
data-tenantpath="[% settings.tenant_displaynames.$t.path %]" data-tenantpath="[% settings.tenant_data.$t.path %]"
data-tenant="[% t %]">[% settings.tenant_displaynames.$t.displayname | html_entity %]</a></li> data-tenant="[% t %]">[% settings.tenant_data.$t.displayname | html_entity %]</a></li>
[% END %] [% END %]
</ul> </ul>
</li> <!-- /dropdown --> </li> <!-- /dropdown -->