fix bugs so that sidebar options work again
This commit is contained in:
@@ -110,7 +110,8 @@ hook 'before' => sub {
|
|||||||
|
|
||||||
hook 'before_template' => sub {
|
hook 'before_template' => sub {
|
||||||
# search or report from navbar, or reset of sidebar, can ignore params
|
# search or report from navbar, or reset of sidebar, can ignore params
|
||||||
return if param('firstsearch');
|
return if param('firstsearch')
|
||||||
|
or var('sidebar_key') !~ m/^\w+_\w+$/;
|
||||||
|
|
||||||
# update defaults to contain the passed url params
|
# update defaults to contain the passed url params
|
||||||
# (this follows initial copy from config.yml, then cookie restore)
|
# (this follows initial copy from config.yml, then cookie restore)
|
||||||
@@ -118,30 +119,9 @@ hook 'before_template' => sub {
|
|||||||
for keys %{ var('sidebar_defaults')->{var('sidebar_key')} || {} };
|
for keys %{ var('sidebar_defaults')->{var('sidebar_key')} || {} };
|
||||||
};
|
};
|
||||||
|
|
||||||
# this hook should be loaded _after_ all plugins
|
|
||||||
hook 'before_template' => sub {
|
hook 'before_template' => sub {
|
||||||
my $tokens = shift;
|
my $tokens = shift;
|
||||||
|
return unless var('sidebar_key') =~ m/^\w+_\w+$/;
|
||||||
# allow portable static content
|
|
||||||
$tokens->{uri_base} = request->base->path
|
|
||||||
if request->base->path ne '/';
|
|
||||||
|
|
||||||
# allow portable dynamic content
|
|
||||||
$tokens->{uri_for} = sub { uri_for(@_)->path_query };
|
|
||||||
|
|
||||||
# access to logged in user's roles
|
|
||||||
$tokens->{user_has_role} = sub { user_has_role(@_) };
|
|
||||||
|
|
||||||
# create date ranges from within templates
|
|
||||||
$tokens->{to_daterange} = sub { interval_to_daterange(@_) };
|
|
||||||
|
|
||||||
# data structure for DataTables records per page menu
|
|
||||||
$tokens->{table_showrecordsmenu} =
|
|
||||||
to_json( setting('table_showrecordsmenu') );
|
|
||||||
|
|
||||||
# defaults for the current sidebar form fields
|
|
||||||
$tokens->{sidebar_defaults} =
|
|
||||||
var('sidebar_defaults')->{var('sidebar_key')};
|
|
||||||
|
|
||||||
# linked searches will use these default url path params
|
# linked searches will use these default url path params
|
||||||
foreach my $sidebar_key (keys %{ var('sidebar_defaults') }) {
|
foreach my $sidebar_key (keys %{ var('sidebar_defaults') }) {
|
||||||
@@ -165,6 +145,28 @@ hook 'before_template' => sub {
|
|||||||
# helper from NetAddr::MAC for the MAC formatting
|
# helper from NetAddr::MAC for the MAC formatting
|
||||||
$tokens->{mac_format_call} = 'as_'. lc(param('mac_format'))
|
$tokens->{mac_format_call} = 'as_'. lc(param('mac_format'))
|
||||||
if param('mac_format');
|
if param('mac_format');
|
||||||
|
};
|
||||||
|
|
||||||
|
# this hook should be loaded _after_ all plugins
|
||||||
|
hook 'before_template' => sub {
|
||||||
|
my $tokens = shift;
|
||||||
|
|
||||||
|
# allow portable static content
|
||||||
|
$tokens->{uri_base} = request->base->path
|
||||||
|
if request->base->path ne '/';
|
||||||
|
|
||||||
|
# allow portable dynamic content
|
||||||
|
$tokens->{uri_for} = sub { uri_for(@_)->path_query };
|
||||||
|
|
||||||
|
# access to logged in user's roles
|
||||||
|
$tokens->{user_has_role} = sub { user_has_role(@_) };
|
||||||
|
|
||||||
|
# create date ranges from within templates
|
||||||
|
$tokens->{to_daterange} = sub { interval_to_daterange(@_) };
|
||||||
|
|
||||||
|
# data structure for DataTables records per page menu
|
||||||
|
$tokens->{table_showrecordsmenu} =
|
||||||
|
to_json( setting('table_showrecordsmenu') );
|
||||||
|
|
||||||
# allow very long lists of ports
|
# allow very long lists of ports
|
||||||
$Template::Directive::WHILE_MAX = 10_000;
|
$Template::Directive::WHILE_MAX = 10_000;
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ set('connected_properties' => [
|
|||||||
]);
|
]);
|
||||||
|
|
||||||
hook 'before_template' => sub {
|
hook 'before_template' => sub {
|
||||||
|
my $defaults = var('sidebar_defaults')->{'device_ports'}
|
||||||
|
or return;
|
||||||
|
|
||||||
# override ports form defaults with cookie settings
|
# override ports form defaults with cookie settings
|
||||||
# always do this so that embedded links to device ports page have user prefs
|
# always do this so that embedded links to device ports page have user prefs
|
||||||
if (param('reset')) {
|
if (param('reset')) {
|
||||||
@@ -23,9 +26,8 @@ hook 'before_template' => sub {
|
|||||||
}
|
}
|
||||||
elsif (my $cookie = cookie('nd_ports-form')) {
|
elsif (my $cookie = cookie('nd_ports-form')) {
|
||||||
my $cdata = url_params_mixed($cookie);
|
my $cdata = url_params_mixed($cookie);
|
||||||
my $defaults = var('sidebar_defaults')->{'device_ports'};
|
|
||||||
|
|
||||||
if ($cdata and (ref {} eq ref $cdata) and $defaults) {
|
if ($cdata and (ref {} eq ref $cdata)) {
|
||||||
foreach my $key (keys %{ $defaults }) {
|
foreach my $key (keys %{ $defaults }) {
|
||||||
$defaults->{$key} = $cdata->{$key};
|
$defaults->{$key} = $cdata->{$key};
|
||||||
}
|
}
|
||||||
@@ -37,8 +39,8 @@ hook 'before_template' => sub {
|
|||||||
|
|
||||||
# update cookie from params we just recieved in form submit
|
# update cookie from params we just recieved in form submit
|
||||||
my $uri = URI->new();
|
my $uri = URI->new();
|
||||||
foreach my $key (keys %{ var('sidebar_defaults')->{'device_ports'} }) {
|
foreach my $key (keys %{ $defaults }) {
|
||||||
$uri->query_param($key => param($key)) if exists params->{$key};
|
$uri->query_param($key => param($key));
|
||||||
}
|
}
|
||||||
cookie('nd_ports-form' => $uri->query(), expires => '365 days');
|
cookie('nd_ports-form' => $uri->query(), expires => '365 days');
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -62,7 +62,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox" id="[% item.name | html_entity %]"
|
<input type="checkbox" id="[% item.name | html_entity %]"
|
||||||
name="[% item.name | html_entity %]"[% ' checked="checked"' IF item.default %] />
|
name="[% item.name | html_entity %]"[% ' checked="checked"' IF vars.sidebar_defaults.device_ports.${item.name} %] />
|
||||||
[% IF item.name == 'c_admin' %]
|
[% IF item.name == 'c_admin' %]
|
||||||
<span class="label label-info">[% item.label | html_entity %]</span>
|
<span class="label label-info">[% item.label | html_entity %]</span>
|
||||||
[% ELSE %]
|
[% ELSE %]
|
||||||
@@ -85,12 +85,12 @@
|
|||||||
<em class="muted">Mark as Free if Down for:</em><br/>
|
<em class="muted">Mark as Free if Down for:</em><br/>
|
||||||
<select id="nd_days-select" name="age_num">
|
<select id="nd_days-select" name="age_num">
|
||||||
[% FOREACH count IN [1..32] %]
|
[% FOREACH count IN [1..32] %]
|
||||||
<option[% ' selected="selected"' IF sidebar_defaults.age_num == count %]>[% count %]</option>
|
<option[% ' selected="selected"' IF vars.sidebar_defaults.device_ports.age_num == count %]>[% count %]</option>
|
||||||
[% END %]
|
[% END %]
|
||||||
</select>
|
</select>
|
||||||
<select id="nd_age-select" name="age_unit">
|
<select id="nd_age-select" name="age_unit">
|
||||||
[% FOREACH unit IN [ 'days', 'weeks', 'months', 'years' ] %]
|
[% FOREACH unit IN [ 'days', 'weeks', 'months', 'years' ] %]
|
||||||
<option[% ' selected="selected"' IF sidebar_defaults.age_unit == unit %]>[% unit %]</option>
|
<option[% ' selected="selected"' IF vars.sidebar_defaults.device_ports.age_unit == unit %]>[% unit %]</option>
|
||||||
[% END %]
|
[% END %]
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
<em class="muted">MAC address format:</em><br/>
|
<em class="muted">MAC address format:</em><br/>
|
||||||
<select id="nd_mac-format" name="mac_format">
|
<select id="nd_mac-format" name="mac_format">
|
||||||
[% FOREACH format IN [ 'IEEE', 'Cisco', 'Microsoft', 'Sun' ] %]
|
[% FOREACH format IN [ 'IEEE', 'Cisco', 'Microsoft', 'Sun' ] %]
|
||||||
<option[% ' selected="selected"' IF sidebar_defaults.mac_format == format %]>[% format %]</option>
|
<option[% ' selected="selected"' IF vars.sidebar_defaults.device_ports.mac_format == format %]>[% format %]</option>
|
||||||
[% END %]
|
[% END %]
|
||||||
</select>
|
</select>
|
||||||
</li>
|
</li>
|
||||||
@@ -134,7 +134,7 @@
|
|||||||
<li>
|
<li>
|
||||||
<label class="checkbox">
|
<label class="checkbox">
|
||||||
<input type="checkbox" id="[% item.name | html_entity %]"
|
<input type="checkbox" id="[% item.name | html_entity %]"
|
||||||
name="[% item.name | html_entity %]"[% ' checked="checked"' IF item.default %] />
|
name="[% item.name | html_entity %]"[% ' checked="checked"' IF vars.sidebar_defaults.device_ports.${item.name} %] />
|
||||||
[% item.label | html_entity %]
|
[% item.label | html_entity %]
|
||||||
</label>
|
</label>
|
||||||
</li>
|
</li>
|
||||||
|
|||||||
@@ -58,7 +58,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="fruonly"
|
<input type="checkbox" id="fruonly"
|
||||||
name="fruonly"[% ' checked="checked"' IF sidebar_defaults.fruonly %]/>
|
name="fruonly"[% ' checked="checked"' IF vars.sidebar_defaults.report_moduleinventory.fruonly %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="fruonly">
|
<label class="nd_checkboxlabel" for="fruonly">
|
||||||
<span class="nd_searchcheckbox uneditable-input">FRU Only</span>
|
<span class="nd_searchcheckbox uneditable-input">FRU Only</span>
|
||||||
@@ -67,7 +67,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="matchall"
|
<input type="checkbox" id="matchall"
|
||||||
name="matchall"[% ' checked="checked"' IF sidebar_defaults.matchall %]/>
|
name="matchall"[% ' checked="checked"' IF vars.sidebar_defaults.report_moduleinventory.matchall %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="matchall">
|
<label class="nd_checkboxlabel" for="matchall">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Match All Options</span>
|
<span class="nd_searchcheckbox uneditable-input">Match All Options</span>
|
||||||
|
|||||||
@@ -89,7 +89,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="matchall"
|
<input type="checkbox" id="matchall"
|
||||||
name="matchall"[% ' checked="checked"' IF sidebar_defaults.matchall %]/>
|
name="matchall"[% ' checked="checked"' IF vars.sidebar_defaults.search_device.matchall %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="matchall">
|
<label class="nd_checkboxlabel" for="matchall">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Match All Options</span>
|
<span class="nd_searchcheckbox uneditable-input">Match All Options</span>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="stamps"
|
<input type="checkbox" id="stamps"
|
||||||
name="stamps"[% ' checked="checked"' IF sidebar_defaults.stamps %]/>
|
name="stamps"[% ' checked="checked"' IF vars.sidebar_defaults.search_node.stamps %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="stamps">
|
<label class="nd_checkboxlabel" for="stamps">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Time Stamps</span>
|
<span class="nd_searchcheckbox uneditable-input">Time Stamps</span>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="deviceports"
|
<input type="checkbox" id="deviceports"
|
||||||
name="deviceports"[% ' checked="checked"' IF sidebar_defaults.deviceports %]/>
|
name="deviceports"[% ' checked="checked"' IF vars.sidebar_defaults.search_node.deviceports %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="deviceports">
|
<label class="nd_checkboxlabel" for="deviceports">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Device Ports</span>
|
<span class="nd_searchcheckbox uneditable-input">Device Ports</span>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="show_vendor"
|
<input type="checkbox" id="show_vendor"
|
||||||
name="show_vendor"[% ' checked="checked"' IF sidebar_defaults.show_vendor %]/>
|
name="show_vendor"[% ' checked="checked"' IF vars.sidebar_defaults.search_node.show_vendor %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="show_vendor">
|
<label class="nd_checkboxlabel" for="show_vendor">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Vendor</span>
|
<span class="nd_searchcheckbox uneditable-input">Vendor</span>
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="archived"
|
<input type="checkbox" id="archived"
|
||||||
name="archived"[% ' checked="checked"' IF sidebar_defaults.archived %]/>
|
name="archived"[% ' checked="checked"' IF vars.sidebar_defaults.search_node.archived %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="archived">
|
<label class="nd_checkboxlabel" for="archived">
|
||||||
<span class="nd_searchcheckbox uneditable-input">
|
<span class="nd_searchcheckbox uneditable-input">
|
||||||
@@ -41,7 +41,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on nd_sidebar-legend">
|
<label class="add-on nd_sidebar-legend">
|
||||||
<input type="checkbox" id="node_partial"
|
<input type="checkbox" id="node_partial"
|
||||||
name="partial"[% ' checked="checked"' IF sidebar_defaults.partial %]/>
|
name="partial"[% ' checked="checked"' IF vars.sidebar_defaults.search_node.partial %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="node_partial">
|
<label class="nd_checkboxlabel" for="node_partial">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Partial Match</span>
|
<span class="nd_searchcheckbox uneditable-input">Partial Match</span>
|
||||||
@@ -52,20 +52,20 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="age_invert"
|
<input type="checkbox" id="age_invert"
|
||||||
name="age_invert"[% ' checked="checked"' IF sidebar_defaults.age_invert %]/>
|
name="age_invert"[% ' checked="checked"' IF vars.sidebar_defaults.search_node.age_invert %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="age_invert">
|
<label class="nd_checkboxlabel" for="age_invert">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Not within...</span>
|
<span class="nd_searchcheckbox uneditable-input">Not within...</span>
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
<input class="nd_side-input" id="daterange"
|
<input class="nd_side-input" id="daterange"
|
||||||
type="text" name="daterange" value="[% sidebar_defaults.daterange | html_entity %]"/>
|
type="text" name="daterange" value="[% vars.sidebar_defaults.search_node.daterange | html_entity %]"/>
|
||||||
</div>
|
</div>
|
||||||
<div class="clearfix">
|
<div class="clearfix">
|
||||||
<em class="muted">MAC address format:</em><br/>
|
<em class="muted">MAC address format:</em><br/>
|
||||||
<select id="nd_node-mac-format" name="mac_format">
|
<select id="nd_node-mac-format" name="mac_format">
|
||||||
[% FOREACH format IN [ 'IEEE', 'Cisco', 'Microsoft', 'Sun' ] %]
|
[% FOREACH format IN [ 'IEEE', 'Cisco', 'Microsoft', 'Sun' ] %]
|
||||||
<option[% ' selected="selected"' IF sidebar_defaults.mac_format == format %]>[% format %]</option>
|
<option[% ' selected="selected"' IF vars.sidebar_defaults.search_node.mac_format == format %]>[% format %]</option>
|
||||||
[% END %]
|
[% END %]
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="port_partial"
|
<input type="checkbox" id="port_partial"
|
||||||
name="partial"[% ' checked="checked"' IF sidebar_defaults.partial %]/>
|
name="partial"[% ' checked="checked"' IF vars.sidebar_defaults.search_port.partial %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="port_partial">
|
<label class="nd_checkboxlabel" for="port_partial">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Partial Match</span>
|
<span class="nd_searchcheckbox uneditable-input">Partial Match</span>
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="port_uplink"
|
<input type="checkbox" id="port_uplink"
|
||||||
name="uplink"[% ' checked="checked"' IF sidebar_defaults.uplink %]/>
|
name="uplink"[% ' checked="checked"' IF vars.sidebar_defaults.search_port.uplink %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="port_uplink">
|
<label class="nd_checkboxlabel" for="port_uplink">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Uplinks</span>
|
<span class="nd_searchcheckbox uneditable-input">Uplinks</span>
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
<div class="clearfix input-prepend">
|
<div class="clearfix input-prepend">
|
||||||
<label class="add-on">
|
<label class="add-on">
|
||||||
<input type="checkbox" id="port_ethernet"
|
<input type="checkbox" id="port_ethernet"
|
||||||
name="ethernet"[% ' checked="checked"' IF sidebar_defaults.ethernet %]/>
|
name="ethernet"[% ' checked="checked"' IF vars.sidebar_defaults.search_port.ethernet %]/>
|
||||||
</label>
|
</label>
|
||||||
<label class="nd_checkboxlabel" for="port_ethernet">
|
<label class="nd_checkboxlabel" for="port_ethernet">
|
||||||
<span class="nd_searchcheckbox uneditable-input">Ethernet Only</span>
|
<span class="nd_searchcheckbox uneditable-input">Ethernet Only</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user