save sidebar settings when Update View; fix bugs

This commit is contained in:
Oliver Gorwits
2014-11-01 12:26:04 +00:00
parent e83bc2185f
commit a1b5b301db
4 changed files with 44 additions and 45 deletions

View File

@@ -8,6 +8,10 @@ function do_search (event, tab) {
// stop form from submitting normally
event.preventDefault();
// save current sidebar settings
var datatable = $(target).find('table').first().DataTable();
datatable.state.save();
// hide or show sidebars depending on previous state,
// and whether the sidebar contains any content (detected by TT)
if (has_sidebar[tab] == 0) {
@@ -50,7 +54,6 @@ function do_search (event, tab) {
scrollingTop: 40
,useAbsolutePositioning: false
});
global_inner_view_processing(tab);
inner_view_processing(tab);
}
);
@@ -103,38 +106,6 @@ function update_content(from, to) {
$(to_form).trigger("submit");
}
// called after every ajax, in case updating anything is required
function global_inner_view_processing(tab) {
// find the current tab's datatables object
// then update sidebar checkboxes to hook the datatables colvis
var table = $('#' + tab + '_pane').find('table').first();
var colvis = new $.fn.dataTable.ColVis( table );
var columns = colvis.s.dt.aoColumns;
if ( $.inArray( 'all', colvis.s.exclude ) === -1 ) {
for ( var i=0, iLen=columns.length ; i<iLen ; i++ ) {
if ( $.inArray( i, colvis.s.exclude ) === -1 ) {
var button = colvis.dom.buttons.shift();
$(button).find('label').addClass('checkbox');
$(button).find('input').attr('id', columns[i]["name"]);
$(button).find('input').attr('name', columns[i]["name"]);
var target = $('#' + columns[i]["name"]);
$(button).find('span').text( target.closest('label').text() );
$(button).find('input').first().prop('checked', target.prop('checked'));
// need to re-activate tooltips on new content
$(button).click(function() {
$("[rel=tooltip]").tooltip({live: true});
});
target.closest('li').replaceWith( button );
}
}
}
}
// handler for ajax navigation
if (window.History && window.History.enabled) {
var History = window.History;

View File

@@ -50,4 +50,34 @@
// load all sidebar settings
var sidebarform = $('#[% tabname %]_form');
sidebarform.deserialize( data.sidebarform );
},
"initComplete": function (settings, json) {
// find the current tab's datatables object
// then update sidebar checkboxes to hook the datatables colvis
var table = $('#[% tabname %]_pane').find('table').first();
var colvis = new table.dataTable.ColVis( table );
var columns = colvis.s.dt.aoColumns;
if ( $.inArray( 'all', colvis.s.exclude ) === -1 ) {
for ( var i=0, iLen=columns.length ; i<iLen ; i++ ) {
if ( $.inArray( i, colvis.s.exclude ) === -1 ) {
var button = colvis.dom.buttons.shift();
$(button).find('label').addClass('checkbox');
$(button).find('input').attr('id', columns[i]["name"]);
$(button).find('input').attr('name', columns[i]["name"]);
var target = $('#' + columns[i]["name"]);
$(button).find('span').text( target.closest('label').text() );
$(button).find('input').first().prop('checked', target.prop('checked'));
// need to re-activate tooltips on new content
$(button).click(function() {
$("[rel=tooltip]").tooltip({live: true});
});
target.closest('li').replaceWith( button );
}
}
}
}

View File

@@ -69,11 +69,9 @@
$(document).ready(function() {
// on page load, load the content for the active tab
[% IF tabname %]
[% IF tabname == 'ipinventory' OR tabname == 'subnets' %]
[% IF tabname AND (tabname == 'ipinventory' OR tabname == 'subnets') %]
$('#[% tabname %]_submit').click();
[% ELSE %]
$('#[% tabname %]_form').trigger("submit");
[% END %]
[% END %]
});

View File

@@ -57,7 +57,7 @@
</label></span>
<div id="nd_columns" class="collapse in">
<ul id="nd_column-controls" class="nd_inputs-list unstyled">
[% FOREACH entry IN settings.table_display.$section.${tab.tag}.columns %]
[% FOREACH entry IN settings.table_display.device.ports.columns %]
[% SET keyname = entry.keys.first %]
[% NEXT IF keyname == 'c_admin' AND NOT user_has_role('port_control') %]
<li>
@@ -111,7 +111,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="neigh_id"
name="neigh_id"[% ' checked="checked"' IF
(params.neigh_id || settings.table_display.$section.${tab.tag}.content.neigh_id) %] />
(params.neigh_id || settings.table_display.device.ports.content.neigh_id) %] />
Connected Device ID
</label>
</li>
@@ -137,7 +137,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_age"
name="n_age"[% ' checked="checked"' IF
(params.n_age || settings.table_display.$section.${tab.tag}.content.n_age) %] />
(params.n_age || settings.table_display.device.ports.content.n_age) %] />
Age Stamp
</label>
</li>
@@ -145,7 +145,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_ip"
name="n_ip"[% ' checked="checked"' IF
(params.n_ip || settings.table_display.$section.${tab.tag}.content.n_ip) %] />
(params.n_ip || settings.table_display.device.ports.content.n_ip) %] />
IP Address
</label>
</li>
@@ -153,7 +153,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_netbios"
name="n_netbios"[% ' checked="checked"' IF
(params.n_netbios || settings.table_display.$section.${tab.tag}.content.n_netbios) %] />
(params.n_netbios || settings.table_display.device.ports.content.n_netbios) %] />
NetBIOS
</label>
</li>
@@ -161,7 +161,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_ssid"
name="n_ssid"[% ' checked="checked"' IF
(params.n_ssid || settings.table_display.$section.${tab.tag}.content.n_ssid) %] />
(params.n_ssid || settings.table_display.device.ports.content.n_ssid) %] />
SSID
</label>
</li>
@@ -169,7 +169,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_vendor"
name="n_vendor"[% ' checked="checked"' IF
(params.n_vendor || settings.table_display.$section.${tab.tag}.content.n_vendor) %] />
(params.n_vendor || settings.table_display.device.ports.content.n_vendor) %] />
Vendor
</label>
</li>
@@ -177,7 +177,7 @@
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_archived"
name="n_archived"[% ' checked="checked"' IF
(params.n_archived || settings.table_display.$section.${tab.tag}.content.n_archived) %] />
(params.n_archived || settings.table_display.device.ports.content.n_archived) %] />
Archived Data
</label>
</li>
@@ -185,7 +185,7 @@
</div>
</div>
<div class="btn-group">
<button id="[% tab.tag %]_submit" type="submit" class="btn btn-info nd_sidebar-btn-drop">
<button id="ports_submit" type="submit" class="btn btn-info nd_sidebar-btn-drop">
<i class="icon-search icon-large pull-left nd_navbar-icon"></i> Update View</button>
<button class="btn btn-info dropdown-toggle nd_sidebar-btn-drop-drop" data-toggle="dropdown">
<span class="caret"></span>