sort the os_ver in the web interface (#663)
This commit is contained in:
@@ -16,10 +16,19 @@ get '/inventory' => require_login sub {
|
|||||||
my $platforms = schema('netdisco')->resultset('Device')->get_platforms();
|
my $platforms = schema('netdisco')->resultset('Device')->get_platforms();
|
||||||
my $releases = schema('netdisco')->resultset('Device')->get_releases();
|
my $releases = schema('netdisco')->resultset('Device')->get_releases();
|
||||||
|
|
||||||
|
my %release_map = (
|
||||||
|
map { (join '', map {sprintf '%05s', $_} split m/(\D)/, ($_->{os_ver} || '')) => $_ }
|
||||||
|
$releases->hri->all
|
||||||
|
);
|
||||||
|
my @release_list =
|
||||||
|
map { $release_map{$_} }
|
||||||
|
sort {(($release_map{$a}->{os} || '') cmp ($release_map{$b}->{os} || '')) || ($a cmp $b)}
|
||||||
|
keys %release_map;
|
||||||
|
|
||||||
var(nav => 'inventory');
|
var(nav => 'inventory');
|
||||||
template 'inventory', {
|
template 'inventory', {
|
||||||
platforms => [$platforms->hri->all],
|
platforms => [ $platforms->hri->all ],
|
||||||
releases => [$releases->hri->all],
|
releases => [ @release_list ],
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -78,10 +78,16 @@ get '/search' => require_login sub {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# used in the device search sidebar to populate select inputs
|
# used in the device search sidebar to populate select inputs
|
||||||
my $model_list = [ $s->resultset('Device')->get_distinct_col('model') ];
|
my $model_list = [ grep { defined } $s->resultset('Device')->get_distinct_col('model') ];
|
||||||
my $os_list = [ $s->resultset('Device')->get_distinct_col('os') ];
|
my $os_list = [ grep { defined } $s->resultset('Device')->get_distinct_col('os') ];
|
||||||
my $os_ver_list = [ $s->resultset('Device')->get_distinct_col('os_ver') ];
|
my $vendor_list = [ grep { defined } $s->resultset('Device')->get_distinct_col('vendor') ];
|
||||||
my $vendor_list = [ $s->resultset('Device')->get_distinct_col('vendor') ];
|
|
||||||
|
my %os_vermap = (
|
||||||
|
map { $_ => (join '', map {sprintf '%05s', $_} split m/(\D)/) }
|
||||||
|
grep { defined }
|
||||||
|
$s->resultset('Device')->get_distinct_col('os_ver')
|
||||||
|
);
|
||||||
|
my $os_ver_list = [ sort {$os_vermap{$a} cmp $os_vermap{$b}} keys %os_vermap ];
|
||||||
|
|
||||||
template 'search', {
|
template 'search', {
|
||||||
search => params->{'tab'},
|
search => params->{'tab'},
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
"data": 'os_ver',
|
"data": 'os_ver',
|
||||||
|
"type": 'versionsort',
|
||||||
"render": function(data, type, row, meta) {
|
"render": function(data, type, row, meta) {
|
||||||
return he.encode(data || '');
|
return he.encode(data || '');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@
|
|||||||
<script type="text/javascript" src="[% uri_base | none %]/javascripts/he.js"></script>
|
<script type="text/javascript" src="[% uri_base | none %]/javascripts/he.js"></script>
|
||||||
<script type="text/javascript" src="[% uri_base | none %]/javascripts/natural.js"></script>
|
<script type="text/javascript" src="[% uri_base | none %]/javascripts/natural.js"></script>
|
||||||
<script type="text/javascript" src="[% uri_base | none %]/javascripts/portsort.js"></script>
|
<script type="text/javascript" src="[% uri_base | none %]/javascripts/portsort.js"></script>
|
||||||
|
<script type="text/javascript" src="[% uri_base | none %]/javascripts/versionsort.js"></script>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
var uri_base = '[% uri_base | none %]';
|
var uri_base = '[% uri_base | none %]';
|
||||||
|
|||||||
Reference in New Issue
Block a user