Select Git revision
project.class.php
-
Hahn Axel (hahn) authoredHahn Axel (hahn) authored
functions.js 5.58 KiB
var sSELECTEDSERVER = '';
var sACTIVESERVERTAB = 'cronlogs';
var bSETADDRESSBAR = false;
var bDEBUG=0;
/**
* show log on console ... if bDEBUG is true
* @param {string} sMessage
* @returns {undefined}
*/
function clog(sMessage){
if(bDEBUG){
console.log("--- DEBUG: "+sMessage);
}
}
/**
* get query parameters from url as object
* @returns {object}
*/
function getQueryParams() {
var qs = document.location.search.split('+').join(' ');
var params = {},
tokens,
re = /[?&]?([^=]+)=([^&]*)/g;
while (tokens = re.exec(qs)) {
params[decodeURIComponent(tokens[1])] = decodeURIComponent(tokens[2]);
}
return params;
}
/**
* make an ajax-request and put response content into given div id
* @param {string} id id of the div to be filled
* @param {type} sMoreData more data for get param
* @returns {undefined}
*/
function getPageItem(id, sMoreData, bNoAdressbarUpdate) {
clog("getPageItem('"+id+"', '"+sMoreData+"')");
// $('#'+id).html('reading ...');
if (!$('#' + id).hasClass('active')) {
$('#errorlog').html('#' + id + ' is not active');
return false;
}
var phpscript = 'get.php';
$('#' + id).css('opacity', '0.2');
sData = 'item=' + id + '&server=' + sSELECTEDSERVER + (sMoreData ? '&'+sMoreData : '');
if(!bNoAdressbarUpdate){
setAdressbar();
}
jQuery.ajax({
url: phpscript,
data: sData,
type: "GET",
success: function (data) {
$('#' + id).css('opacity', '1');
$('#' + id).html(data);
},
error: function () {
$('#' + id).css('opacity', false);
$('#' + id).html('Failed :-/');
$('#errorlog').html(
$('#errorlog').html('AJAX error: <a href="' + phpscript + '?' + sData + '">' + phpscript + '?' + sData + '</a>')
);
}
});
}
/**
* refresh content with ajax requests
* @returns {undefined}
*/
function refreshPage() {
getPageItem('selectserver');
getPageItem(sACTIVESERVERTAB);
}
/**
* manipulate url in the browser address bar
*
* @returns {undefined}
*/
function setAdressbar() {
// ?server=neon&tab=graph&q=backup
if (!bSETADDRESSBAR) {
return false;
}
var url = '?'
+ 'server=' + sSELECTEDSERVER
+ '&tab=' + sACTIVESERVERTAB
+ '&q=' // + $('#datatable1_filter label input').val()+$('#datatable2_filter label input').val()
;
window.history.pushState('dummy', 'Title', url);
// window.location.reload();
}
/**
* set server and show show its current content item (log, graph, ...)
* this action is used after clicking a servername in the navigation
*
* @param {string} sServer
* @returns {undefined}
*/
function setServer(sServer) {
clog("setServer('"+sServer+"')");
if (!sServer) {
return false;
}
sSELECTEDSERVER = sServer;
// write name
$('#lblServername').html('<i class="far fa-hdd"></i> ' + sSELECTEDSERVER);
// load current content item
getPageItem(sACTIVESERVERTAB);
}
/**
* onclick callback for tabs crontable, crontabs, graph
* @param {object} oLink clicked link
* @param {string} sTabid id of active div
* @returns {undefined}
*/
function setTab(oLink,sTabid) {
var sTabid = $(oLink).attr('href').replace(/^#/, '');
$('nav.tabs a').each(function () {
$(this).removeClass('active');
});
$(oLink).addClass('active');
setTabId(sTabid);
setServer(sSELECTEDSERVER);
}
/**
* activate a div to get content via AJAX
*
* @param {string} sTabid
* @returns {undefined}
*/
function setTabId(sTabid){
clog("setTabId('"+sTabid+"')");
sACTIVESERVERTAB = sTabid;
$('#tabcontent div').each(function () {
$(this).removeClass('active');
// $(this).html('Moment...');
});
$('#' + sTabid).addClass('active');
// setServer(sSELECTEDSERVER);
}
function showFile(sLogfile) {
clog("showFile('"+sLogfile+"')");
$('#overlay').show();
sLOGFILE=sLogfile;
getPageItem('showlog', 'logfile=' + sLOGFILE, true);
}
function closeOverlay() {
$('#overlay').fadeOut(300);
}
function updateFilterFields(q) {
if ($('#datatable1_filter label input')) {
$('#datatable1_filter label input').val(q);
$('#datatable1').dataTable().fnFilter(q);
// $('#datatable1').dataTable().bind('filter', 'setAdressbar()');
}
if ($('#datatable2_filter label input')) {
$('#datatable2_filter label input').val(q);
$('#datatable2').dataTable().fnFilter(q);
// $('#datatable1').dataTable().bind('filter', 'setAdressbar()');
}
}
// ----------------------------------------------------------------------
// MAIN
// ----------------------------------------------------------------------
$(document).ready(function () {
var oQuery = getQueryParams();
var sServer = oQuery.server ? oQuery.server : 'ALL';
var q = oQuery.q ? oQuery.q : '';
var sTab = oQuery.tab ? oQuery.tab : '';
setServer(sServer);
getPageItem('selectserver');
if (sTab) {
var oLink = $('a[href="#' + sTab + '"]').first();
setTab(oLink);
}
if (q) {
window.setTimeout("updateFilterFields('" + q + "');", 500);
}
bSETADDRESSBAR = true;
window.setInterval('refreshPage()', 60000);
});
/*
window.onpopstate = function(event)
{
history.back();
refreshPage();
};
*/