Files
Facilitor/APPL/Shared/refresher.asp
Koen Reefman a2e0907f43 2023.1 Gold B patches (deel 1)
svn path=/Website/trunk/; revision=59654
2023-03-20 13:43:09 +00:00

169 lines
5.2 KiB
Plaintext

<%@language = "javascript" %>
<% /*
$Revision$
$Id$
File: refresher.asp
Description: Toon een bepaald scherm en ververs deze regelmatig
Parameters: verplichte parameters
url= de geescape-te url die ververst moet worden
Bij voorkeur een bookmark met een PRS_PERSLID_KEY_AUTH (fallback_user_key)
zodat een nachtelijke reset overleeft wordt
optional parameters
refreshrate=60 report refresht elke 60 seconde
default 600 (10 minuten)
doublebuf=1 Unsupported
'Toggle' twee workFrame's om knipperen te voorkomen
Let op: onderliggende scherm *moet* dan onload code
parent & parent.Activate && parent.Activate()
doen als hij klaar is met laden
Let op: doubleauto is veel simpeler en heeft de voorkeur
doubleauto=3 Als doublebuf maar onderliggende code hoeft niets te doen
Automatisch wordt na S("refresher_doubleauto") (default 3) seconde
verondersteld dat het scherm klaar is.
Context: Bijvoorbeeld als je bij een bookmark een refreshrate invult
http://sgf12/facilitor5iwork/?fac_id=AAIT&u=VXlrSVAqUpAzFocg
Notes:
*/
ANONYMOUS_Allowed = 1; // We doen echt niets geheims.
%>
<!--#include file="../Shared/common.inc" -->
<%
FCLTHeader.Requires({plugins: ["jQuery"]});
var url = getQParam("url");
if (url.substr(0, 1) != "/" || url.substr(0, 2) == "//")
shared.simpel_page("Refresher url must start with '/' + relative-url");
var refreshrate = getQParamInt("refreshrate", 600);
var doublebuf = getQParamInt("doublebuf", 0) == 1;
var doubleauto = getQParamInt("doubleauto", S("refresher_doubleauto"));
var widget_height = getQParamInt("widget_height", null);
%>
<html>
<head>
<%
FCLTHeader.Generate();
%>
<title><%=L("lcl_facilitor_ie_title")%></title>
<script language="javascript">
window.activeFrame = "A";
window.refreshtimerId = -1;
window.myurl = "<%=rooturl + safe.jsstring(url)%>";
function refreshPage()
{
doResize();
<% if (doublebuf || doubleauto > 0) { %>
if (window.activeFrame == "A")
$("#workFrameB")[0].src = window.myurl;
else
$("#workFrameA")[0].src = window.myurl;
<% if (doubleauto > 0) { %>
if (window.doubletimerId > 0)
clearTimeout(window.doubletimerId);
window.doubletimerId = setTimeout('doActivate();', <%=doubleauto*1000%>);
<% } %>
<% } else { %>
$("#workFrameA")[0].src = window.myurl;
<% } %>
}
// ondersteun de deprecated doublebuf
function Activate()
{
<% if (doublebuf && doubleauto <= 0) { %>
doActivate();
<% } %>
}
// Activeer het 'andere' workframe
function doActivate()
{
var d2 = $("#workFrameA");
var d3 = $("#workFrameB");
if (window.activeFrame == "A")
{
d2.css("visibility", "hidden");
d3.css("visibility", "visible");
window.activeFrame = "B";
try
{
var ttl = d3[0].contentWindow.document.title;
}
catch(e)
{
// waarschijnlijk expired sessie en naar SAML inlog gestuurd
}
}
else
{
d2.css("visibility", "visible");
d3.css("visibility", "hidden");
window.activeFrame = "A";
try
{
var ttl = d2[0].contentWindow.document.title;
}
catch(e)
{
// waarschijnlijk expired sessie en naar SAML inlog gestuurd
}
}
if (ttl)
document.title = ttl;
}
// Ongeacht grootte content resizen naar window
function doResize()
{
<%if (widget_height)
{ %>
window.frameElement.height = <%=widget_height%>;
<%} %>
$("#workFrameA").width($(window).width());
$("#workFrameB").width($(window).width());
$("#workFrameA").height($(window).height());
$("#workFrameB").height($(window).height());
}
function startAutoRefreshTimer() {
if (<%=refreshrate%> != -1) {
window.refreshtimerId = setInterval('refreshPage();', <%=refreshrate*1000%>);
}
}
function resetReload()
{
if (window.refreshtimerId)
clearTimeout(window.refreshtimerId);
startAutoRefreshTimer();
}
</script>
</head>
<body style="margin:0;"
onLoad="refreshPage();
startAutoRefreshTimer()">
<iframe width="100%" height="100%"
style="position:absolute;left:0px;top:0px; height:100%;visibility:hidden;"
src="../Shared/empty.asp" id="workFrameA" frameborder="no"
marginwidth="0" marginheight="0"
scrolling="none" onload="doResize()">
</iframe>
<iframe width="100%" height="100%"
style="position:absolute;left:0px;top:0px;height:100%;"
src="../Shared/empty.asp" id="workFrameB" frameborder="no"
marginwidth="0" marginheight="0"
scrolling="none" onload="doResize()">
</iframe>
</body>
</html>
<% ASPPAGE_END(); %>