view show.php @ 200:4db14e5338d7

Better checks in show module.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 17 Nov 2013 16:42:47 +0200
parents a3f0f2a3551a
children 261e5244ac27
line wrap: on
line source

<?
//
// FAPWeb Simple Demoparty System
// Party information display system
// (C) Copyright 2012-2013 Tecnic Software productions (TNSP)
//
require_once "mconfig.inc.php";
require_once "msite.inc.php";
require_once "majax.php";

$pageCSS["show.css"] = "";

cmLocaleInit();
stSetupCacheControl();

cmPrintPageHeader("PARTY INFORMATION DISPLAY SYSTEM", "", FALSE);
stCommonAJAX("showajax.php", "show.php", TRUE);
?>

<!-- ========================== -->

<noscript>
  <div class="notice">
    <h1>Javascript required</h1>
    <p>
    The compo system page requires Javascript to be enabled for the AJAX functionality.
    <br />
    <a href="#">Please enable Javascript and reload this page</a>.
    </p>
  </div>
</noscript>

<div class="showView" id="mainView"></div>

<!-- ========================== -->

<script type="text/javascript">

var failCount = 0;
var lastUpdate = 0;
var errorView = false;


function updateView(txt)
{
  var view = document.getElementById("mainView");
  if (view && txt != false && txt != "")
    view.innerHTML = txt;
}


function displayError()
{
  // Increase failure count
  if (++failCount > 5 && !errorView)
  {
    errorView = true;
    updateView("GURU MEDITATION");
  }
}


//
// Update view when triggered by main tick
//
function viewChanged()
{
  var msuccess2 = function(txt)
  {
    // Successfully fetched new data, initiate view update
    updateView(txt);
  }

  var msuccess1 = function(txt)
  {
    lastUpdate = txt;
    sendPOSTRequest("action=get&type=slide", msuccess2, displayError);
  }

  sendPOSTRequest("action=get&type=update", msuccess1, displayError);
}


//
// Main tick function, check for updates from server
//
var timeOutSet = false;

function tickMain()
{
  timeOutSet = false;

  var msuccess = function(txt)
  {
    failCount = 0;
    if (txt == "changed")
    {
      viewChanged();
      if (!timeOutSet)
      {
        setTimeout("tickMain();", 500);
        timeOutSet = true;
      }
    }
    else
    {
      if (!timeOutSet)
      {
        setTimeout("tickMain();", 5000);
        timeOutSet = true;
      }
    }
  }
  
  var mfail = function(txt)
  {
    displayError();
    if (!timeOutSet)
    {
      setTimeout("tickMain();", 5000);
      timeOutSet = true;
    }
  }

  sendPOSTRequest("action=check&lastUpdate="+lastUpdate, msuccess, mfail);
}

setTimeout("tickMain();", 100);
viewChanged();

</script>
<?
cmPrintPageFooter(FALSE);
?>