factor out tab-specific stuff to common.js
This commit is contained in:
@@ -3,28 +3,11 @@
|
|||||||
function do_search (event, tab) {
|
function do_search (event, tab) {
|
||||||
var form = '#' + tab + '_form';
|
var form = '#' + tab + '_form';
|
||||||
var target = '#' + tab + '_pane';
|
var target = '#' + tab + '_pane';
|
||||||
|
var query = $(form).serialize();
|
||||||
|
|
||||||
// stop form from submitting normally
|
// stop form from submitting normally
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
|
|
||||||
// page title
|
|
||||||
var pgtitle = 'Netdisco';
|
|
||||||
if ($('#nd_device-name').text().length) {
|
|
||||||
var pgtitle = $('#nd_device-name').text() +' - '+ $('#'+ tab + '_link').text();
|
|
||||||
}
|
|
||||||
|
|
||||||
// each sidebar search form has a hidden copy of the main navbar search
|
|
||||||
// query. when the tab query takes place, copy the navbar locally, then
|
|
||||||
// replicate to all other tabs.
|
|
||||||
if (path != 'report' && path != 'admin') {
|
|
||||||
if ($('#nq').val()) {
|
|
||||||
$(form).find("input[name=q]").val( $('#nq').val() );
|
|
||||||
}
|
|
||||||
$('form').find("input[name=q]").each( function() {
|
|
||||||
$(this).val( $(form).find("input[name=q]").val() );
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// hide or show sidebars depending on previous state,
|
// hide or show sidebars depending on previous state,
|
||||||
// and whether the sidebar contains any content (detected by TT)
|
// and whether the sidebar contains any content (detected by TT)
|
||||||
if (has_sidebar[tab] == 0) {
|
if (has_sidebar[tab] == 0) {
|
||||||
@@ -41,21 +24,6 @@ function do_search (event, tab) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// get the form params
|
|
||||||
var query = $(form).serialize();
|
|
||||||
|
|
||||||
// update browser search history with the new query.
|
|
||||||
// however if it's the same tab, this is a *replace* of the query url.
|
|
||||||
// and just skip this bit if it's the report or admin display.
|
|
||||||
if (path != 'report' && path != 'admin' && window.History && window.History.enabled) {
|
|
||||||
is_from_history_plugin = 1;
|
|
||||||
window.History.replaceState(
|
|
||||||
{name: tab, fields: $(form).serializeArray()},
|
|
||||||
pgtitle, uri_base + '/' + path + '?' + query
|
|
||||||
);
|
|
||||||
is_from_history_plugin = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// in case of slow data load, let the user know
|
// in case of slow data load, let the user know
|
||||||
$(target).html(
|
$(target).html(
|
||||||
'<div class="span2 alert">Waiting for results...</div>'
|
'<div class="span2 alert">Waiting for results...</div>'
|
||||||
|
|||||||
@@ -1,22 +1,77 @@
|
|||||||
|
function update_page_title (tab) {
|
||||||
|
var pgtitle = 'Netdisco';
|
||||||
|
if ($('#nd_device-name').text().length) {
|
||||||
|
var pgtitle = $('#nd_device-name').text() +' - '+ $('#'+ tab + '_link').text();
|
||||||
|
}
|
||||||
|
return pgtitle;
|
||||||
|
}
|
||||||
|
|
||||||
|
// update browser search history with the new query.
|
||||||
|
// however if it's the same tab, this is a *replace* of the query url.
|
||||||
|
// and just skip this bit if it's the report or admin display.
|
||||||
|
function update_browser_history (tab, pgtitle) {
|
||||||
|
var form = '#' + tab + '_form';
|
||||||
|
var query = $(form).serialize();
|
||||||
|
|
||||||
|
if (window.History && window.History.enabled) {
|
||||||
|
is_from_history_plugin = 1;
|
||||||
|
window.History.replaceState(
|
||||||
|
{name: tab, fields: $(form).serializeArray()},
|
||||||
|
pgtitle, uri_base + '/' + path + '?' + query
|
||||||
|
);
|
||||||
|
is_from_history_plugin = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// each sidebar search form has a hidden copy of the main navbar search
|
||||||
|
// query. when the tab query takes place, copy the navbar locally, then
|
||||||
|
// replicate to all other tabs.
|
||||||
|
function copy_navbar_to_sidebar (tab) {
|
||||||
|
var form = '#' + tab + '_form';
|
||||||
|
|
||||||
|
if ($('#nq').val()) {
|
||||||
|
$(form).find("input[name=q]").val( $('#nq').val() );
|
||||||
|
}
|
||||||
|
$('form').find("input[name=q]").each( function() {
|
||||||
|
$(this).val( $(form).find("input[name=q]").val() );
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
$(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) {
|
||||||
|
var pgtitle = update_page_title('[% tab.tag %]');
|
||||||
|
update_browser_history('[% tab.tag %]', pgtitle);
|
||||||
|
copy_navbar_to_sidebar('[% tab.tag %]');
|
||||||
|
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) {
|
||||||
|
var pgtitle = update_page_title('[% tab.tag %]');
|
||||||
|
update_browser_history('[% tab.tag %]', pgtitle);
|
||||||
|
copy_navbar_to_sidebar('[% tab.tag %]');
|
||||||
|
do_search(event, '[% tab.tag %]');
|
||||||
|
});
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
[% IF report %]
|
[% IF report %]
|
||||||
// for the report pages
|
// for the report pages
|
||||||
$('[% "#${report.tag}_form" %]').submit(function(event){ do_search(event, '[% report.tag %]'); });
|
$('[% "#${report.tag}_form" %]').submit(function (event) {
|
||||||
|
update_page_title('[% tab.tag %]');
|
||||||
|
do_search(event, '[% report.tag %]');
|
||||||
|
});
|
||||||
[% END -%]
|
[% END -%]
|
||||||
|
|
||||||
[% IF task %]
|
[% IF task %]
|
||||||
// for the admin pages
|
// for the admin pages
|
||||||
$('[% "#${task.tag}_form" %]').submit(function(event){ do_search(event, '[% task.tag %]'); });
|
$('[% "#${task.tag}_form" %]').submit(function (event) {
|
||||||
|
update_page_title('[% tab.tag %]');
|
||||||
|
do_search(event, '[% task.tag %]');
|
||||||
|
});
|
||||||
[% END %]
|
[% END %]
|
||||||
|
|
||||||
// on page load, load the content for the active tab
|
// on page load, load the content for the active tab
|
||||||
|
|||||||
Reference in New Issue
Block a user