rename private settings keys

This commit is contained in:
Oliver Gorwits
2013-05-30 06:30:06 +01:00
parent fdac8f6c33
commit 76b7636c74
8 changed files with 38 additions and 35 deletions

View File

@@ -51,6 +51,9 @@ hook 'before_template' => sub {
# allow very long lists of ports # allow very long lists of ports
$Template::Directive::WHILE_MAX = 10_000; $Template::Directive::WHILE_MAX = 10_000;
# allow hash keys with leading underscores
$Template::Stash::PRIVATE = undef;
}; };
get '/' => sub { get '/' => sub {

View File

@@ -71,7 +71,7 @@ get '/admin/*' => sub {
var(nav => 'admin'); var(nav => 'admin');
template 'admintask', { template 'admintask', {
task => setting('admin_tasks')->{ $tag }, task => setting('_admin_tasks')->{ $tag },
}; };
}; };

View File

@@ -4,13 +4,13 @@ use Dancer ':syntax';
use Dancer::Plugin; use Dancer::Plugin;
set( set(
'navbar_items' => [], '_navbar_items' => [],
'search_tabs' => [], '_search_tabs' => [],
'device_tabs' => [], '_device_tabs' => [],
'admin_tasks' => {}, '_admin_tasks' => {},
'reports_menu' => {}, '_reports_menu' => {},
'reports' => {}, '_reports' => {},
'report_order' => [qw/Device Port Node VLAN Network Wireless/], '_report_order' => [qw/Device Port Node VLAN Network Wireless/],
); );
# this is what Dancer::Template::TemplateToolkit does by default # this is what Dancer::Template::TemplateToolkit does by default
@@ -40,14 +40,14 @@ register 'register_navbar_item' => sub {
return; return;
} }
foreach my $item (@{ setting('navbar_items') }) { foreach my $item (@{ setting('_navbar_items') }) {
if ($item->{tag} eq $config->{tag}) { if ($item->{tag} eq $config->{tag}) {
$item = $config; $item = $config;
return; return;
} }
} }
push @{ setting('navbar_items') }, $config; push @{ setting('_navbar_items') }, $config;
}; };
register 'register_admin_task' => sub { register 'register_admin_task' => sub {
@@ -60,12 +60,12 @@ register 'register_admin_task' => sub {
return; return;
} }
setting('admin_tasks')->{ $config->{tag} } = $config; setting('_admin_tasks')->{ $config->{tag} } = $config;
}; };
sub _register_tab { sub _register_tab {
my ($nav, $config) = @_; my ($nav, $config) = @_;
my $stash = setting("${nav}_tabs"); my $stash = setting("_${nav}_tabs");
if (!length $config->{tag} if (!length $config->{tag}
or !length $config->{label}) { or !length $config->{label}) {
@@ -96,7 +96,7 @@ register 'register_device_tab' => sub {
register 'register_report' => sub { register 'register_report' => sub {
my ($self, $config) = plugin_args(@_); my ($self, $config) = plugin_args(@_);
my @categories = @{ setting('report_order') }; my @categories = @{ setting('_report_order') };
if (!length $config->{category} if (!length $config->{category}
or !length $config->{tag} or !length $config->{tag}
@@ -107,15 +107,15 @@ register 'register_report' => sub {
return; return;
} }
foreach my $item (@{setting('reports_menu')->{ $config->{category} }}) { foreach my $item (@{setting('_reports_menu')->{ $config->{category} }}) {
if ($item eq $config->{tag}) { if ($item eq $config->{tag}) {
setting('reports')->{$config->{tag}} = $config; setting('_reports')->{$config->{tag}} = $config;
return; return;
} }
} }
push @{setting('reports_menu')->{ $config->{category} }}, $config->{tag}; push @{setting('_reports_menu')->{ $config->{category} }}, $config->{tag};
setting('reports')->{$config->{tag}} = $config; setting('_reports')->{$config->{tag}} = $config;
}; };
register_plugin; register_plugin;

View File

@@ -10,7 +10,7 @@ get '/report/*' => sub {
var(nav => 'reports'); var(nav => 'reports');
template 'report', { template 'report', {
report => setting('reports')->{ $tag }, report => setting('_reports')->{ $tag },
}; };
}; };

View File

@@ -19,7 +19,7 @@
<i class="nd_sidebar-pin icon-pushpin nd_sidebar-pin-clicked" <i class="nd_sidebar-pin icon-pushpin nd_sidebar-pin-clicked"
rel="tooltip" data-placement="left" data-offset="5" data-title="Unpin Sidebar"></i> rel="tooltip" data-placement="left" data-offset="5" data-title="Unpin Sidebar"></i>
<div class="tab-content"> <div class="tab-content">
[% FOREACH tab IN settings.device_tabs %] [% FOREACH tab IN settings._device_tabs %]
<div id="[% tab.tag %]_search" class="tab-pane [% 'active' IF params.tab == tab.tag %]"> <div id="[% tab.tag %]_search" class="tab-pane [% 'active' IF params.tab == tab.tag %]">
<form id="[% tab.tag %]_form" class="nd_sidebar-form form-stacked" <form id="[% tab.tag %]_form" class="nd_sidebar-form form-stacked"
method="get" action="[% uri_for('/device') %]"> method="get" action="[% uri_for('/device') %]">
@@ -42,13 +42,13 @@
<div class="content"> <div class="content">
<ul id="nd_search-results" class="nav nav-tabs"> <ul id="nd_search-results" class="nav nav-tabs">
[% FOREACH tab IN settings.device_tabs %] [% FOREACH tab IN settings._device_tabs %]
<li[% ' class="active"' IF params.tab == tab.tag %]><a id="[% tab.tag %]_link" href="#[% tab.tag %]_pane">[% tab.label %]</a></li> <li[% ' class="active"' IF params.tab == tab.tag %]><a id="[% tab.tag %]_link" href="#[% tab.tag %]_pane">[% tab.label %]</a></li>
[% END %] [% END %]
<span id="nd_device-name">[% d.dns || d.name | html_entity %]</span> <span id="nd_device-name">[% d.dns || d.name | html_entity %]</span>
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
[% FOREACH tab IN settings.device_tabs %] [% FOREACH tab IN settings._device_tabs %]
<div class="tab-pane[% ' active' IF params.tab == tab.tag %]" id="[% tab.tag %]_pane"></div> <div class="tab-pane[% ' active' IF params.tab == tab.tag %]" id="[% tab.tag %]_pane"></div>
[% END %] [% END %]
</div> </div>

View File

@@ -1,11 +1,11 @@
$(document).ready(function() { $(document).ready(function() {
// search tabs // search tabs
[% FOREACH tab IN settings.search_tabs %] [% FOREACH tab IN settings._search_tabs %]
$('[% "#${tab.tag}_form" %]').submit(function(event){ do_search(event, '[% tab.tag %]'); }); $('[% "#${tab.tag}_form" %]').submit(function(event){ do_search(event, '[% tab.tag %]'); });
[% END %] [% END %]
// device tabs // device tabs
[% FOREACH tab IN settings.device_tabs %] [% FOREACH tab IN settings._device_tabs %]
$('[% "#${tab.tag}_form" %]').submit(function(event){ do_search(event, '[% tab.tag %]'); }); $('[% "#${tab.tag}_form" %]').submit(function(event){ do_search(event, '[% tab.tag %]'); });
[% END %] [% END %]

View File

@@ -54,22 +54,22 @@
<a class="brand" href="[% uri_for('/') %]">Netdisco</a> <a class="brand" href="[% uri_for('/') %]">Netdisco</a>
[% IF session.user %] [% IF session.user %]
<ul class="nav"> <ul class="nav">
[% FOREACH ni IN settings.navbar_items %] [% FOREACH ni IN settings._navbar_items %]
<li[% ' class="active"' IF vars.nav == ni.tag %]> <li[% ' class="active"' IF vars.nav == ni.tag %]>
<a href="[% uri_for(ni.path) %]">[% ni.label | html_entity %]</a> <a href="[% uri_for(ni.path) %]">[% ni.label | html_entity %]</a>
</li> </li>
[% END %] [% END %]
[% IF settings.reports.size %] [% IF settings._reports.size %]
<li class="dropdown[% ' active' IF vars.nav == 'reports' %]"> <li class="dropdown[% ' active' IF vars.nav == 'reports' %]">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Reports <b class="caret"></b></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Reports <b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
[% FOREACH category IN settings.report_order %] [% FOREACH category IN settings._report_order %]
[% IF settings.reports_menu.$category.size %] [% IF settings._reports_menu.$category.size %]
<li class="dropdown-submenu"> <li class="dropdown-submenu">
<a href="#">[% category | html_entity %]</a> <a href="#">[% category | html_entity %]</a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
[% FOREACH item IN settings.reports_menu.$category %] [% FOREACH item IN settings._reports_menu.$category %]
<li><a href="[% uri_for('/report/' _ item) %]">[% settings.reports.$item.label | html_entity %]</a></li> <li><a href="[% uri_for('/report/' _ item) %]">[% settings._reports.$item.label | html_entity %]</a></li>
[% END %] [% END %]
</ul> </ul>
</li> </li>
@@ -86,13 +86,13 @@
<i id="navsearchgo" class="icon-search nd_navbar-icon"></i> <i id="navsearchgo" class="icon-search nd_navbar-icon"></i>
</span> </span>
</form> </form>
[% IF vars.user.admin AND settings.admin_tasks.size %] [% IF vars.user.admin AND settings._admin_tasks.size %]
<ul class="nav"> <ul class="nav">
<li class="dropdown[% ' active' IF vars.nav == 'admin' %]"> <li class="dropdown[% ' active' IF vars.nav == 'admin' %]">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Admin Tasks <b class="caret"></b></a> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Admin Tasks <b class="caret"></b></a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
[% FOREACH ai IN settings.admin_tasks.keys.sort %] [% FOREACH ai IN settings._admin_tasks.keys.sort %]
<li><a href="[% uri_for('/admin/' _ ai) %]">[% settings.admin_tasks.$ai.label | html_entity %]</a></li> <li><a href="[% uri_for('/admin/' _ ai) %]">[% settings._admin_tasks.$ai.label | html_entity %]</a></li>
[% END %] [% END %]
</ul> </ul>
</li> <!-- /dropdown --> </li> <!-- /dropdown -->

View File

@@ -8,7 +8,7 @@
<i class="nd_sidebar-pin icon-pushpin" <i class="nd_sidebar-pin icon-pushpin"
rel="tooltip" data-placement="left" data-offset="5" data-title="Pin Sidebar"></i> rel="tooltip" data-placement="left" data-offset="5" data-title="Pin Sidebar"></i>
<div class="tab-content"> <div class="tab-content">
[% FOREACH tab IN settings.search_tabs %] [% FOREACH tab IN settings._search_tabs %]
<div id="[% tab.tag %]_search" class="tab-pane [% 'active' IF params.tab == tab.tag %]"> <div id="[% tab.tag %]_search" class="tab-pane [% 'active' IF params.tab == tab.tag %]">
<form id="[% tab.tag %]_form" class="nd_sidebar-form form-stacked" method="get" action="[% uri_for('/search') %]"> <form id="[% tab.tag %]_form" class="nd_sidebar-form form-stacked" method="get" action="[% uri_for('/search') %]">
<input name="tab" value="[% tab.tag %]" type="hidden"/> <input name="tab" value="[% tab.tag %]" type="hidden"/>
@@ -29,12 +29,12 @@
<div class="content"> <div class="content">
<ul id="nd_search-results" class="nav nav-tabs"> <ul id="nd_search-results" class="nav nav-tabs">
[% FOREACH tab IN settings.search_tabs %] [% FOREACH tab IN settings._search_tabs %]
<li[% ' class="active"' IF params.tab == tab.tag %]><a id="[% tab.tag %]_link" href="#[% tab.tag %]_pane">[% tab.label %]</a></li> <li[% ' class="active"' IF params.tab == tab.tag %]><a id="[% tab.tag %]_link" href="#[% tab.tag %]_pane">[% tab.label %]</a></li>
[% END %] [% END %]
</ul> </ul>
<div class="tab-content"> <div class="tab-content">
[% FOREACH tab IN settings.search_tabs %] [% FOREACH tab IN settings._search_tabs %]
<div class="tab-pane[% ' active' IF params.tab == tab.tag %]" id="[% tab.tag %]_pane"></div> <div class="tab-pane[% ' active' IF params.tab == tab.tag %]" id="[% tab.tag %]_pane"></div>
[% END %] [% END %]
</div> </div>