sidebar defaults follow params; fix state saving

This commit is contained in:
Oliver Gorwits
2014-10-25 21:20:28 +01:00
parent bd3bcb36f8
commit 2e29f0b11d
3 changed files with 30 additions and 27 deletions

View File

@@ -16,6 +16,10 @@
});
},
"stateSaveParams": function (settings, data) {
var pgtitle = update_page_title('[% tabname %]');
update_browser_history('[% tabname %]', pgtitle, '');
// TODO: would be nice to update CSV link too
var datatable = $('#[% tabname %]_pane').find('table').first().DataTable();
// if no existing state, all columns default to visible.
// on table load, state is saved... we can find out whether there was
@@ -24,8 +28,10 @@
if (datatable.state.loaded() === null) {
$('#[% tabname %]_form').find('input[type="checkbox"]').each( function() {
var id = $(this).attr('id');
if (datatable.column( id + ':name' ).length === 1) {
datatable.column( id + ':name' ).visible( $(this).prop('checked') );
var col = datatable.column( id + ':name' );
if (col.length === 1) {
col.visible( $(this).prop('checked') );
data.columns[col.index()].visible = $(this).prop('checked');
}
});
}

View File

@@ -148,16 +148,6 @@
update_csv_download_link('device', '[% tab.tag %]', '[% tab.provides_csv %]');
[% 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();
$('#ports_form').find('input[type="checkbox"]').map(function() {
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', uri_base + '/device/[% tab.tag %]?reset=on&' +
$('#ports_form')

View File

@@ -58,17 +58,17 @@
<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 %]
[% NEXT IF entry.keys.first == 'c_admin' AND NOT user_has_role('port_control') %]
[% SET keyname = entry.keys.first %]
[% NEXT IF keyname == 'c_admin' AND NOT user_has_role('port_control') %]
<li>
<label class="checkbox">
<!-- FIXME look at param not default -->
<input type="checkbox" class="nd_dynamic-dp"
[% ' checked="checked"' IF entry.item(entry.keys.first).default %]
id="[% entry.keys.first | html_entity %]" name="[% entry.keys.first | html_entity %]" />
[% IF entry.item(entry.keys.first).highlight %]
<span class="label label-info">[% entry.item(entry.keys.first).label | html_entity %]</span>
[% ' checked="checked"' IF (params.$keyname || entry.item(keyname).default) %]
id="[% keyname | html_entity %]" name="[% keyname | html_entity %]" />
[% IF entry.item(keyname).highlight %]
<span class="label label-info">[% entry.item(keyname).label | html_entity %]</span>
[% ELSE %]
[% entry.item(entry.keys.first).label | html_entity %]
[% entry.item(keyname).label | html_entity %]
[% END %]
</label>
</li>
@@ -110,7 +110,8 @@
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="neigh_id"
name="neigh_id"[% ' checked="checked"' IF params.neigh_id %] />
name="neigh_id"[% ' checked="checked"' IF
(params.neigh_id || settings.table_display.$section.${tab.tag}.content.neigh_id) %] />
Connected Device ID
</label>
</li>
@@ -135,42 +136,48 @@
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_age"
name="n_age"[% ' checked="checked"' IF settings.table_display.$section.${tab.tag}.content.n_age %] />
name="n_age"[% ' checked="checked"' IF
(params.n_age || settings.table_display.$section.${tab.tag}.content.n_age) %] />
Age Stamp
</label>
</li>
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_ip"
name="n_ip"[% ' checked="checked"' IF settings.table_display.$section.${tab.tag}.content.n_ip %] />
name="n_ip"[% ' checked="checked"' IF
(params.n_ip || settings.table_display.$section.${tab.tag}.content.n_ip) %] />
IP Address
</label>
</li>
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_netbios"
name="n_netbios"[% ' checked="checked"' IF settings.table_display.$section.${tab.tag}.content.n_netbios %] />
name="n_netbios"[% ' checked="checked"' IF
(params.n_netbios || settings.table_display.$section.${tab.tag}.content.n_netbios) %] />
NetBIOS
</label>
</li>
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_ssid"
name="n_ssid"[% ' checked="checked"' IF settings.table_display.$section.${tab.tag}.content.n_ssid %] />
name="n_ssid"[% ' checked="checked"' IF
(params.n_ssid || settings.table_display.$section.${tab.tag}.content.n_ssid) %] />
SSID
</label>
</li>
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_vendor"
name="n_vendor"[% ' checked="checked"' IF settings.table_display.$section.${tab.tag}.content.n_vendor %] />
name="n_vendor"[% ' checked="checked"' IF
(params.n_vendor || settings.table_display.$section.${tab.tag}.content.n_vendor) %] />
Vendor
</label>
</li>
<li>
<label class="checkbox">
<input type="checkbox" class="nd_dynamic-dp" id="n_archived"
name="n_archived"[% ' checked="checked"' IF settings.table_display.$section.${tab.tag}.content.n_archived %] />
name="n_archived"[% ' checked="checked"' IF
(params.n_archived || settings.table_display.$section.${tab.tag}.content.n_archived) %] />
Archived Data
</label>
</li>