diff --git a/Netdisco/public/css/style.css b/Netdisco/public/css/style.css index ae60bb21..d599e08c 100644 --- a/Netdisco/public/css/style.css +++ b/Netdisco/public/css/style.css @@ -134,11 +134,32 @@ form .clearfix.success input { border-top: 8px solid #F89406; } +/* draw little up arrow to the right of a label for collapsed list */ +.cell-arrow-up { + float: left; + margin-top: 4px; + margin-right: 6px; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-bottom: 8px solid #F89406; +} + +/* draw little down arrow to the right of a label for collapsed list */ +.cell-arrow-down { + float: left; + margin-top: 4px; + margin-right: 6px; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + border-top: 8px solid #F89406; +} + /* nudge the port name/vlan filter over a little */ .nd_port_query { margin-left: -2px !important; } +/* for ports table to center cell content */ .center_cell { text-align: center; } diff --git a/Netdisco/views/ajax/device/ports.tt b/Netdisco/views/ajax/device/ports.tt index e45de8d7..4a9d77b0 100644 --- a/Netdisco/views/ajax/device/ports.tt +++ b/Netdisco/views/ajax/device/ports.tt @@ -9,8 +9,10 @@ + [% SET rownum = 0 %] [% FOREACH row in results %] [% NEXT IF params.free AND NOT row.is_free(params.age_num, params.age_unit) %] + [% SET rownum = rownum + 1 %] [% IF row.up_admin == 'down' %] @@ -58,22 +60,28 @@ [% END %] [% IF params.c_vlan %] - [% row.vlan | html_entity %] + [% row.vlan | html_entity %] [% END %] [% IF params.c_vmember %] - [% SET count = 1 %] + [%# this is really ugly because for some reason + I could not get size/max to work on row.tagged_vlans.all %] + [% SET output = '' %] + [% SET count = 0 %] [% FOREACH vlan IN row.tagged_vlans %] - [% vlan.vlan | html_entity %] + [% SET output = output _ + '' _ vlan.vlan _ '' %] + [% SET output = output _ ', ' IF NOT loop.last %] [% SET count = count + 1 %] - [% IF count > 25 %] - (more...) - [% LAST %] - [% ELSE %] - [% ', ' IF NOT loop.last %] - [% END %] [% END %] + [% IF count > 10 %] + [% SET output = '' + _ 'Show VLANs
' _ output %] + [% SET output = output _ '
' %] + [% END %] + [% output %] [% END %] [% IF params.c_connected %] diff --git a/Netdisco/views/inc/js/device.js b/Netdisco/views/inc/js/device.js index 2d69e5c3..30f8d5e0 100644 --- a/Netdisco/views/inc/js/device.js +++ b/Netdisco/views/inc/js/device.js @@ -66,6 +66,15 @@ } // looks good, update the bookmark for this search $(mark).attr('href', '/device?' + query); + + // enable collapser on any large vlan lists + $('.nd_collapse_vlans').collapser({ + target: 'siblings', + effect: 'slide', + changeText: true, + expandHtml: '
Show VLANs
', + collapseHtml: '
Hide VLANs
', + }); } ); }