Device operating system added to inventory links and search sidebar
This commit is contained in:
@@ -1,4 +1,8 @@
|
|||||||
2.031008 - 2015-02-18
|
2.031008 - 2015-02-22
|
||||||
|
|
||||||
|
[ENHANCEMENTS]
|
||||||
|
|
||||||
|
* Device operating system added to inventory links and search sidebar
|
||||||
|
|
||||||
[BUG FIXES]
|
[BUG FIXES]
|
||||||
|
|
||||||
|
|||||||
@@ -168,6 +168,10 @@ a description of the vendor operating system).
|
|||||||
|
|
||||||
Will match exactly the C<model> field.
|
Will match exactly the C<model> field.
|
||||||
|
|
||||||
|
=item os
|
||||||
|
|
||||||
|
Will match exactly the C<os> field, which is the operating sytem.
|
||||||
|
|
||||||
=item os_ver
|
=item os_ver
|
||||||
|
|
||||||
Will match exactly the C<os_ver> field, which is the operating sytem software version.
|
Will match exactly the C<os_ver> field, which is the operating sytem software version.
|
||||||
@@ -236,6 +240,8 @@ sub search_by_field {
|
|||||||
|
|
||||||
($p->{model} ? ('me.model' =>
|
($p->{model} ? ('me.model' =>
|
||||||
{ '-in' => $p->{model} }) : ()),
|
{ '-in' => $p->{model} }) : ()),
|
||||||
|
($p->{os} ? ('me.os' =>
|
||||||
|
{ '-in' => $p->{os} }) : ()),
|
||||||
($p->{os_ver} ? ('me.os_ver' =>
|
($p->{os_ver} ? ('me.os_ver' =>
|
||||||
{ '-in' => $p->{os_ver} }) : ()),
|
{ '-in' => $p->{os_ver} }) : ()),
|
||||||
($p->{vendor} ? ('me.vendor' =>
|
($p->{vendor} ? ('me.vendor' =>
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ register_search_tab(
|
|||||||
# device with various properties or a default match-all
|
# device with various properties or a default match-all
|
||||||
get '/ajax/content/search/device' => require_login sub {
|
get '/ajax/content/search/device' => require_login sub {
|
||||||
my $has_opt = List::MoreUtils::any { param($_) }
|
my $has_opt = List::MoreUtils::any { param($_) }
|
||||||
qw/name location dns ip description model os_ver vendor layers/;
|
qw/name location dns ip description model os os_ver vendor layers/;
|
||||||
my $rs;
|
my $rs;
|
||||||
|
|
||||||
if ($has_opt) {
|
if ($has_opt) {
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ hook 'before_template' => sub {
|
|||||||
or index(request->path, uri_for('/ajax/content/search')->path) == 0);
|
or index(request->path, uri_for('/ajax/content/search')->path) == 0);
|
||||||
|
|
||||||
# used in the device search sidebar template to set selected items
|
# used in the device search sidebar template to set selected items
|
||||||
foreach my $opt (qw/model vendor os_ver/) {
|
foreach my $opt (qw/model vendor os os_ver/) {
|
||||||
my $p = (ref [] eq ref param($opt) ? param($opt)
|
my $p = (ref [] eq ref param($opt) ? param($opt)
|
||||||
: (param($opt) ? [param($opt)] : []));
|
: (param($opt) ? [param($opt)] : []));
|
||||||
$tokens->{"${opt}_lkp"} = { map { $_ => 1 } @$p };
|
$tokens->{"${opt}_lkp"} = { map { $_ => 1 } @$p };
|
||||||
@@ -114,12 +114,14 @@ 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 = [ $s->resultset('Device')->get_distinct_col('model') ];
|
||||||
|
my $os_list = [ $s->resultset('Device')->get_distinct_col('os') ];
|
||||||
my $os_ver_list = [ $s->resultset('Device')->get_distinct_col('os_ver') ];
|
my $os_ver_list = [ $s->resultset('Device')->get_distinct_col('os_ver') ];
|
||||||
my $vendor_list = [ $s->resultset('Device')->get_distinct_col('vendor') ];
|
my $vendor_list = [ $s->resultset('Device')->get_distinct_col('vendor') ];
|
||||||
|
|
||||||
template 'search', {
|
template 'search', {
|
||||||
search => params->{'tab'},
|
search => params->{'tab'},
|
||||||
model_list => $model_list,
|
model_list => $model_list,
|
||||||
|
os_list => $os_list,
|
||||||
os_ver_list => $os_ver_list,
|
os_ver_list => $os_ver_list,
|
||||||
vendor_list => $vendor_list,
|
vendor_list => $vendor_list,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -49,7 +49,13 @@
|
|||||||
[% FOREACH release IN releases.all %]
|
[% FOREACH release IN releases.all %]
|
||||||
[% NEXT UNLESS (release.os OR release.os_ver) %]
|
[% NEXT UNLESS (release.os OR release.os_ver) %]
|
||||||
<tr>
|
<tr>
|
||||||
<th>[% release.os || 'unknown' | html_entity %]</th>
|
<th>
|
||||||
|
[% IF release.os %]
|
||||||
|
<a class="nd_linkcell"
|
||||||
|
href="[% search_device %]&q=[% release.os | uri %]&os=[% release.os | uri %]">
|
||||||
|
[% release.os | html_entity %]</a>
|
||||||
|
[% ELSE %]unknown[% END %]
|
||||||
|
</th>
|
||||||
<th>
|
<th>
|
||||||
[% IF release.os_ver %]
|
[% IF release.os_ver %]
|
||||||
<a class="nd_linkcell"
|
<a class="nd_linkcell"
|
||||||
|
|||||||
@@ -50,6 +50,15 @@
|
|||||||
[% END %]
|
[% END %]
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="clearfix">
|
||||||
|
<select class="nd_side-select" size="[% os_list.size > 5 ? 5 : os_list.size %]"
|
||||||
|
multiple="on" name="os"
|
||||||
|
rel="tooltip" data-placement="left" data-offset="5" data-title="Operating System"/>
|
||||||
|
[% FOREACH opt IN os_list %]
|
||||||
|
<option[% ' selected="selected"' IF os_lkp.exists(opt) %]>[% opt | html_entity %]</option>
|
||||||
|
[% END %]
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<select class="nd_side-select" size="[% os_ver_list.size > 5 ? 5 : os_ver_list.size %]"
|
<select class="nd_side-select" size="[% os_ver_list.size > 5 ? 5 : os_ver_list.size %]"
|
||||||
multiple="on" name="os_ver"
|
multiple="on" name="os_ver"
|
||||||
|
|||||||
Reference in New Issue
Block a user