Changeset 369 for trunk


Ignore:
Timestamp:
Nov 3, 2018, 8:07:36 PM (5 years ago)
Author:
g7moreau
Message:
  • Initial AJAX implementation
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/nagios-velvice/velvice.cgi

    r328 r369  
    44# 2017/06/22 Gabriel Moreau - big update
    55# 2018/06/25 Gabriel Moreau - make velvice generic
     6# 2018/11/03 Gabriel Moreau - ajax
    67#
    78# velvice.cgi
     
    1617use strict;
    1718use warnings;
    18 use version; our $VERSION = version->declare('0.9.3');
     19use version; our $VERSION = version->declare('0.10.0');
    1920
    2021use CGI;
     
    2930my $cgi_script_name = $query->script_name();
    3031my $cgi_path        = $cgi_script_name =~ s{/[^/]+\.cgi$}{}r;
     32my $cgi_only;
     33$cgi_only++ if uri_decode($query->param('only')) eq 'body';
    3134undef $query;
    3235
     
    162165$year += 1900;
    163166$mon++;
     167#my $date = nosbreak(sprintf '%04i-%02i-%02i %02i:%02i:%02i', $year, $mon, $mday, $hour, $min, $sec);
    164168my $date = nosbreak(sprintf '%04i-%02i-%02i %02i:%02i', $year, $mon, $mday, $hour, $min);
    165169
    166 my $htmlpage = <<"ENDH";
     170my $htmlpage;
     171
     172$htmlpage .= <<"ENDH" if not $cgi_only;
    167173Content-Type: text/html
    168174
     
    172178 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    173179ENDH
    174 $htmlpage .= " <meta http-equiv=\"Refresh\" content=\"$config->{'refresh'}\">" if $config->{'refresh'} > 59; # minimum 1 min
    175 $htmlpage .= <<"ENDH";
     180
     181$htmlpage .= <<"ENDH" if $cgi_only;
     182Content-Type: text/xml
     183
     184<?xml version="1.0" encoding="utf-8"?>
     185<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
     186ENDH
     187
     188#$htmlpage .= " <meta http-equiv=\"Refresh\" content=\"$config->{'refresh'}\">" if $config->{'refresh'} > 59; # minimum 1 min
     189$htmlpage .= <<"ENDH" if not $cgi_only;
    176190 <title>Nagios  Velvice</title>
    177191 <link rel="stylesheet"    type="text/css"  href="$config->{'nagios-server'}{'stylesheets'}/velvice.css">
    178192 <link rel="shortcut icon" type="image/ico" href="$config->{'nagios-server'}{'image'}/favicon.ico">
     193 <script type="text/javascript">
     194   var first_loop  = 0;
     195   var refresh_sec = 900; // 15 min = 900 s
     196   function refresh() {
     197      if (first_loop == 0) {
     198         first_loop++;
     199         return;
     200         }
     201      var req = new XMLHttpRequest();
     202      console.log("Grabbing Value");
     203      // req.onreadystatechange = function () {
     204      //    if (req.readyState == 4 && req.status == 200) {
     205      //       document.getElementById('master-body').innerText = req.responseXML.getElementById('master-body').innerText;
     206      //       }
     207      //    }
     208      // req.overrideMimeType('text/xml');
     209      req.open("GET", '$cgi_script_name?only=body', true); // Grabs whatever you've written in this file
     210      req.onload = function () {
     211         if (req.status == 200) {
     212            // document.getElementById('master-body').innerText = req.responseXML.getElementById('master-body').innerText;
     213            document.getElementById('master-body').outerHTML = req.responseXML.getElementById('master-body').outerHTML;
     214            console.log("Update Value");
     215            }
     216         }
     217      req.send(null);
     218      }
     219
     220   function init() { // This is the function the browser first runs when it's loaded.
     221      // refresh() // Then runs the refresh function for the first time.
     222      var int = self.setInterval(refresh, refresh_sec * 1000); // Set the refresh() function to run every 900 seconds. 1 second would be 1000
     223      }
     224</script>
    179225</head>
    180 <body>
     226ENDH
     227
     228$htmlpage .= <<"ENDH";
     229<body id="master-body" onload="init()" refresh="$config->{'refresh'}">
    181230<div class="header">
    182231 <h1>
     
    358407
    359408$htmlpage .= <<"ENDH";
    360 <hr clear="all">
     409<hr clear="all" />
    361410<div class="footer">
    362411 <b><a href="http://servforge.legi.grenoble-inp.fr/projects/soft-trokata/wiki/SoftWare/NagiosVelvice">Velvice</a>
     
    370419</div>
    371420</body>
     421ENDH
     422
     423$htmlpage .= <<"ENDH" if not $cgi_only;
    372424</html>
    373425ENDH
Note: See TracChangeset for help on using the changeset viewer.