"Undo" icon in device port sidebar to reset form to defaults

Squashed commit of the following:

commit 204f5627e0
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Fri Sep 20 22:33:32 2013 +0100

    update undo icon link

commit 49399301b9
Merge: 905a192 ce604ca
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Fri Sep 20 21:04:56 2013 +0100

    Merge branch 'master' into og-reset-cookie

commit 905a192426
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Fri Sep 20 21:04:18 2013 +0100

    fix tooltip z-index bug, add undo icon

commit 3377518634
Author: Oliver Gorwits <oliver@cpan.org>
Date:   Fri Sep 13 08:36:16 2013 +0100

    reset params used in query
This commit is contained in:
Oliver Gorwits
2013-09-20 22:34:35 +01:00
parent ce604ca20b
commit 66bf13b714
7 changed files with 52 additions and 23 deletions

View File

@@ -59,7 +59,7 @@ hook 'before' => sub {
my $cookie = cookie('nd_ports-form');
my $cdata = url_params_mixed($cookie);
if ($cdata and ref {} eq ref $cdata) {
if ($cdata and ref {} eq ref $cdata and not param('reset')) {
foreach my $item (@{ var('port_columns') }) {
my $key = $item->{name};
next unless defined $cdata->{$key}
@@ -84,22 +84,32 @@ hook 'before' => sub {
# copy ports form defaults into request query params if this is
# a redirect from within the application (tab param is not set)
foreach my $col (@{ var('port_columns') }) {
next unless $col->{default} eq 'on';
params->{$col->{name}} = 'checked'
if not param('tab') or param('tab') ne 'ports';
}
if (param('reset') or not param('tab') or param('tab') ne 'ports') {
foreach my $col (@{ var('port_columns') }) {
delete params->{$col->{name}};
params->{$col->{name}} = 'checked'
if $col->{default} eq 'on';
}
foreach my $col (@{ var('connected_properties') }) {
next unless $col->{default} eq 'on';
params->{$col->{name}} = 'checked'
if not param('tab') or param('tab') ne 'ports';
}
foreach my $col (@{ var('connected_properties') }) {
delete params->{$col->{name}};
params->{$col->{name}} = 'checked'
if $col->{default} eq 'on';
}
if (not param('tab') or param('tab') ne 'ports') {
# not stored in the cookie
params->{'age_num'} ||= 3;
params->{'age_unit'} ||= 'months';
params->{'mac_format'} ||= 'IEEE';
if (param('reset')) {
params->{'age_num'} = 3;
params->{'age_unit'} = 'months';
params->{'mac_format'} = 'IEEE';
# nuke the port params cookie
cookie('nd_ports-form' => '', expires => '-1 day');
}
}
};

View File

@@ -340,7 +340,16 @@ td > form.nd_inline-form {
.nd_sidebar-pin {
float: left;
margin-top: 6px;
margin-top: 8px;
margin-left: -16px;
font-size: 15px;
color: #555;
cursor: pointer;
}
.nd_sidebar-reset {
float: left;
margin-top: 27px;
margin-left: -16px;
font-size: 15px;
color: #555;
@@ -349,7 +358,7 @@ td > form.nd_inline-form {
#nd_sidebar-toggle-img-in {
float: left;
margin-top: -9px;
margin-top: -10px;
margin-left: -16px;
font-size: 15px;
color: #555;

View File

@@ -4,9 +4,9 @@
<div class="nd_sidebar nd_sidebar-pinned">
<div class="well">
<i class="nd_sidebar-toggle icon-signout" id="nd_sidebar-toggle-img-in"
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar"></i>
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar" data-container="body"></i>
<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" data-container="body"></i>
<div class="tab-content">
<div id="[% task.tag %]_search" class="tab-pane active">

View File

@@ -15,9 +15,13 @@
<div class="nd_sidebar nd_sidebar-pinned">
<div class="well">
<i class="nd_sidebar-toggle icon-signout" id="nd_sidebar-toggle-img-in"
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar"></i>
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar" data-container="body"></i>
<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" data-container="body"></i>
<a id="nd_sidebar-reset-link" href="#">
<i class="nd_sidebar-reset icon-undo"
rel="tooltip" data-placement="left" data-offset="5" data-title="Reset to Defaults" data-container="body"></i>
</a>
<div class="tab-content">
[% FOREACH tab IN settings._device_tabs %]
<div id="[% tab.tag %]_search" class="tab-pane [% 'active' IF params.tab == tab.tag %]">

View File

@@ -4,7 +4,7 @@
var form = '#' + tab + '_form';
var query = $(form).serialize();
if (show == '1') {
if (show.length) {
$('#nd_csv-download')
.attr('href', '/ajax/content/' + type + '/' + tab + '?' + query)
.attr('download', 'netdisco-' + type + '-' + tab + '.csv')
@@ -81,6 +81,8 @@
copy_navbar_to_sidebar('[% tab.tag %]');
[% IF tab.tag == 'ports' %]
// to be fair I can't remember why we do this in JS and not from the app
// perhaps because selecting form fields to go in the cookie is easier?
var cookie = $('#ports_form').find('input,select')
.not('#nd_port-query,input[name="q"],input[name="tab"]')
.serializeArray();
@@ -88,6 +90,10 @@
cookie.push({'name': 'columns', 'value': $(this).attr('name')});
});
$.cookie('nd_ports-form', $.param(cookie) ,{ expires: 365 });
// form reset icon on ports tab
$('#nd_sidebar-reset-link').attr('href', '/device?tab=ports&reset=on&' +
$('#ports_form').find('input[name="q"],input[name="f"],input[name="partial"]').serialize())
[% END %]
do_search(event, '[% tab.tag %]');

View File

@@ -4,9 +4,9 @@
<div class="nd_sidebar nd_sidebar-pinned">
<div class="well">
<i class="nd_sidebar-toggle icon-signout" id="nd_sidebar-toggle-img-in"
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar"></i>
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar" data-container="body"></i>
<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" data-container="body"></i>
<div class="tab-content">
<div id="[% report.tag %]_search" class="tab-pane active">

View File

@@ -4,9 +4,9 @@
<div class="nd_sidebar">
<div class="well">
<i class="nd_sidebar-toggle icon-signout" id="nd_sidebar-toggle-img-in"
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar"></i>
rel="tooltip" data-placement="left" data-offset="5" data-title="Hide Sidebar" data-container="body"></i>
<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" data-container="body"></i>
<div class="tab-content">
[% FOREACH tab IN settings._search_tabs %]
<div id="[% tab.tag %]_search" class="tab-pane [% 'active' IF params.tab == tab.tag %]">