diff --git a/lib/App/Netdisco/Web/Plugin/Device/Ports.pm b/lib/App/Netdisco/Web/Plugin/Device/Ports.pm
index c493d826..6adae166 100644
--- a/lib/App/Netdisco/Web/Plugin/Device/Ports.pm
+++ b/lib/App/Netdisco/Web/Plugin/Device/Ports.pm
@@ -109,8 +109,8 @@ get '/ajax/content/device/ports' => require_login sub {
select => [
'port',
{ count => 'port_vlans.vlan', -as => 'vlan_count' },
- { array_agg => 'port_vlans.vlan', -as => 'vlan_set' },
- { array_agg => 'vlan_entry.description', -as => 'vlan_name_set' },
+ { array_agg => \q{port_vlans.vlan ORDER BY port_vlans.vlan}, -as => 'vlan_set' },
+ { array_agg => \q{COALESCE(NULLIF(vlan_entry.description,''), vlan_entry.vlan::text) ORDER BY vlan_entry.vlan}, -as => 'vlan_name_set' },
],
join => {'port_vlans' => 'vlan_entry'},
group_by => 'me.port',
diff --git a/share/views/ajax/device/ports.tt b/share/views/ajax/device/ports.tt
index 2947892b..612ee7d1 100644
--- a/share/views/ajax/device/ports.tt
+++ b/share/views/ajax/device/ports.tt
@@ -220,8 +220,8 @@
[% IF vlans.$portname.vlan_count <= settings.devport_vlan_limit %]
[% SET vlan_count = vlans.$portname.vlan_count %]
- [% IF params.c_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set.sort %]
- [% ELSE %][% SET vlanlist = vlans.$portname.vlan_set.nsort %][% END %]
+ [% IF params.c_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set %]
+ [% ELSE %][% SET vlanlist = vlans.$portname.vlan_set %][% END %]
[% IF vlan_count > 10 %] [%# TODO make this a settable variable %]
([% vlan_count %])
Show VLANs
diff --git a/share/views/ajax/device/ports_csv.tt b/share/views/ajax/device/ports_csv.tt
index 439f2bb5..0a0ae82a 100644
--- a/share/views/ajax/device/ports_csv.tt
+++ b/share/views/ajax/device/ports_csv.tt
@@ -114,8 +114,8 @@
[% IF params.c_vmember %]
[% SET portname = row.port %]
[% SET output = '' %]
- [% IF params.c_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set.sort %]
- [% ELSE %][% SET vlanlist = vlans.$portname.vlan_set.nsort %][% END %]
+ [% IF params.c_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set %]
+ [% ELSE %][% SET vlanlist = vlans.$portname.vlan_set %][% END %]
[% FOREACH vlan IN vlanlist %]
[% SET output = output _ ',' IF NOT loop.first %]
[% SET output = output _ vlan %]
|