var sSELECTEDSERVER=''; var sACTIVESERVERTAB='cronlogs'; var bSETADDRESSBAR=false; /** * get query parameters from url as object * @returns {object} */ function getQueryParams() { 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 * @returns {undefined} */ function getPageItem(id, sData) { // $('#'+id).html('reading ...'); if(!$('#'+id).hasClass('active')){ $('#errorlog').html('#'+id+' is not active') ; return false; } var phpscript='get.php'; $('#'+id).css('opacity', '0.2'); if(!sData){ sData='item='+id+'&server='+sSELECTEDSERVER; } 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() { // console.log("--- setAdressbar()"); console.log(aViewFilters); // ?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); } /** * set server (show its navigation) * this action is used after clicking a servername in the navigation * * @param {string} sServer * @returns {undefined} */ function setServer(sServer){ if(!sServer){ return false; } sSELECTEDSERVER=sServer; $('#lblServername').html('<i class="far fa-hdd"></i> '+sSELECTEDSERVER); getPageItem(sACTIVESERVERTAB); } /** * onclick callback for tabs crontable, crontabs, graph * @param {object} oLink clicked link * @returns {undefined} */ function setTab(oLink){ sTabid=$(oLink).attr('href').replace(/^#/, ''); sACTIVESERVERTAB=sTabid; $('nav.tabs a').each(function(){ $(this).removeClass('active'); }); $(oLink).addClass('active'); $('#tabcontent div').each(function(){ $(this).removeClass('active'); }); $('#'+sTabid).addClass('active'); setServer(sSELECTEDSERVER); } function showFile(sLogfile){ getPageItem(sACTIVESERVERTAB, 'item=showlog&logfile='+sLogfile); } function showFileBack(){ getPageItem(sACTIVESERVERTAB); } 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 () { // draw navigation with servers // check query params and set filter // ?server=neon&tab=crontable&q=123 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); } console.log('suchfield ' + q); if (q) { // window.setTimeout("$('#datatable1_filter label input').val('"+q+"'); $('#datatable1').dataTable().fnFilter('"+q+"')" , 500); window.setTimeout("updateFilterFields('"+q+"');" , 500); } bSETADDRESSBAR=true; // window.setInterval('refreshPage()', 60000); });