67 lines
2.6 KiB
Plaintext
67 lines
2.6 KiB
Plaintext
<%@language = "javascript" %>
|
|
<% /*
|
|
$Revision$
|
|
$Id$
|
|
|
|
NotifyMessage.asp
|
|
|
|
Kijk of de notificatie queue fac_notificatie een ongelezen bericht voor ons met soort = '8' bevat
|
|
Daarvan geven we een popupje en daarna markeren deze berichten als gelezen
|
|
|
|
We worden elke S("NotifyMessageInterval") seconde (default 90) gecontroleerd
|
|
|
|
NOOT: Per interval wordt 1 popup gegeven met alle berichten sinds de vorige keer, met een tijdstip.
|
|
|
|
LET OP: Dit bestand wordt bij UWVA op drukke momenten consequent 10 keer per seconde/
|
|
34000 keer per uur opgeroepen. Performance is essentieel!
|
|
In het bijzonder bijvoorbeeld een aanroep van user.__require_prs_perslid voorkomen
|
|
*/
|
|
LCL_Disable = 1; // Performance
|
|
var JSON_Result = true;
|
|
var EXPIRED_PASSWORD_OK = true; // performance
|
|
%>
|
|
<!-- #include file="../Shared/common.inc" -->
|
|
<!-- #include file="../Shared/json2.js" -->
|
|
<%
|
|
//protectRequest.validateToken(); // De __RequestVerificationToken wordt maar 1 keer gezet, dus is de volgende keer verlopen.
|
|
// *Wij* bepalen wanneer de volgende controle komt.
|
|
// Je zou als er daadwerkelijk een message is de volgende controle
|
|
// wat sneller (of juist langzamer) kunnen doen. Hypothetisch...
|
|
var result = { nextCheck: S("NotifyMessageInterval") * 1000 };
|
|
if (user_key > 0)
|
|
{
|
|
var sql = "SELECT fac_notificatie_key, fac_notificatie_oms, fac_notificatie_datum"
|
|
+ " FROM fac_notificatie"
|
|
+ " WHERE prs_perslid_key_receiver = " + user_key
|
|
+ " AND BITAND (fac_notificatie_status, 8) = 8" // Onverwerkte popup
|
|
+ " ORDER BY fac_notificatie_datum";
|
|
var oRs = Oracle.Execute(sql);
|
|
var resetnotis = [];
|
|
var resultmsg = [];
|
|
while (!oRs.eof)
|
|
{
|
|
var dt = new Date(oRs("fac_notificatie_datum").Value);
|
|
if (dt > (new Date).midnight())
|
|
dtformat = toTimeString(dt); // vandaag laten we de datum achterwege
|
|
else
|
|
dtformat = toDateTimeString(dt);
|
|
resultmsg.push (dtformat + ": " + oRs("fac_notificatie_oms").Value);
|
|
resetnotis.push (oRs("fac_notificatie_key").Value);
|
|
oRs.moveNext();
|
|
}
|
|
oRs.close();
|
|
result.msg = resultmsg.join("\n");
|
|
|
|
// Reset popup bits for these notifications
|
|
if (resetnotis.length > 0)
|
|
{
|
|
var sql = "UPDATE fac_notificatie"
|
|
+ " SET fac_notificatie_status = BITAND (fac_notificatie_status, 255-8)" // Verwerkte popup
|
|
+ " WHERE fac_notificatie_key IN (" + resetnotis.join(",") + ")";
|
|
Oracle.Execute(sql);
|
|
}
|
|
}
|
|
|
|
Response.Write(JSON.stringify(result));
|
|
%>
|