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