implement query string for device search opts
This commit is contained in:
@@ -18,19 +18,27 @@ hook 'before' => sub {
|
||||
#request->path_info('/');
|
||||
}
|
||||
|
||||
# make hash lookups of query lists
|
||||
foreach my $opt (qw/model vendor os_ver/) {
|
||||
my $p = (ref '' eq ref param($opt) ? [param($opt)] : param($opt));
|
||||
var("${opt}_lkp" => { map { $_ => 1 } @$p });
|
||||
}
|
||||
|
||||
# set up default search options for each type
|
||||
if (not param('tab') or param('tab') ne 'node') {
|
||||
params->{'stamps'} = 'checked';
|
||||
}
|
||||
if (not param('tab') or param('tab') ne 'device') {
|
||||
params->{'matchall'} = 'matchall';
|
||||
params->{'matchall'} = 'checked';
|
||||
}
|
||||
|
||||
# set up query string defaults,
|
||||
# only for templates which link to themselves (node)
|
||||
var('query_defaults' => { map { ($_ => "tab=$_") } qw/node/ });
|
||||
# set up query string defaults for hyperlinks to templates with forms
|
||||
var('query_defaults' => { map { ($_ => "tab=$_") } qw/node device/ });
|
||||
|
||||
var('query_defaults')->{node} .= "\&$_=". (param($_) || '')
|
||||
for qw/stamps vendor archived partial/;
|
||||
var('query_defaults')->{device} .= "\&$_=". (param($_) || '')
|
||||
for qw/matchall/;
|
||||
};
|
||||
|
||||
ajax '/ajax/content/device/:thing' => sub {
|
||||
|
||||
@@ -8,23 +8,29 @@
|
||||
<td>Location</td>
|
||||
<td>
|
||||
<a rel="twipsy" data-placement="above" data-offset="5" title="Find Similar Devices"
|
||||
href="/search?tab=device&q=[% d.dns | uri %]&location=[% d.location | uri %]">[% d.location %]</a></td>
|
||||
href="/search?[% vars.query_defaults.device %]&q=[% d.dns | uri %]&location=[% d.location | uri %]">[% d.location %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Contact</td>
|
||||
<td>[% d.contact %]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Model</td>
|
||||
<td>Vendor / Model</td>
|
||||
<td>
|
||||
<a rel="twipsy" data-placement="above" data-offset="5" title="Find Similar Devices"
|
||||
href="/search?tab=device&q=[% d.dns | uri %]&model=[% d.model | uri %]">[% d.model %]</a></td>
|
||||
href="/search?[% vars.query_defaults.device %]&q=[% d.dns | uri %]&vendor=[% d.vendor | uri %]">[% d.vendor %]</a>
|
||||
/
|
||||
<a rel="twipsy" data-placement="above" data-offset="5" title="Find Similar Devices"
|
||||
href="/search?[% vars.query_defaults.device %]&q=[% d.dns | uri %]&model=[% d.model | uri %]">[% d.model %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>OS / Version</td>
|
||||
<td>[% d.os %] /
|
||||
<a rel="twipsy" data-placement="above" data-offset="5"
|
||||
title="Find Similar Devices" href="/search?tab=device&q=[% d.dns | uri %]&os_ver=[% d.os_ver | uri %]">[% d.os_ver %]</a>
|
||||
title="Find Similar Devices"
|
||||
href="/search?[% vars.query_defaults.device %]&q=[% d.dns | uri %]&os_ver=[% d.os_ver | uri %]">[% d.os_ver %]</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
multiple="on" id="model" name="model"
|
||||
rel="twipsy" data-placement="right" data-offset="5" title="Model"/>
|
||||
[% FOREACH opt IN vars.model_list %]
|
||||
<option>[% opt %]</option>
|
||||
<option[% ' selected="selected"' IF vars.model_lkp.exists(opt) %]>[% opt %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</div>
|
||||
@@ -39,7 +39,7 @@
|
||||
multiple="on" id="os_ver" name="os_ver"
|
||||
rel="twipsy" data-placement="right" data-offset="5" title="OS Release"/>
|
||||
[% FOREACH opt IN vars.os_ver_list %]
|
||||
<option>[% opt %]</option>
|
||||
<option[% ' selected="selected"' IF vars.os_ver_lkp.exists(opt) %]>[% opt %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</div>
|
||||
@@ -48,7 +48,7 @@
|
||||
multiple="on" id="vendor" name="vendor"
|
||||
rel="twipsy" data-placement="right" data-offset="5" title="Vendor"/>
|
||||
[% FOREACH opt IN vars.vendor_list %]
|
||||
<option>[% opt %]</option>
|
||||
<option[% ' selected="selected"' IF vars.vendor_lkp.exists(opt) %]>[% opt %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user