Files
Facilitor/APPL/CHAT/notify.js
Jos Groot Lipman 2de26ff09e Codereview unused variabelen en zo
svn path=/Website/trunk/; revision=54496
2022-01-12 16:45:17 +00:00

79 lines
2.5 KiB
JavaScript

/*
$Revision$
$Id$
File: notify.js
Description:
Parameters:
Context:
Note:
*/
var notify_url = "notify.asp";
//var notify_url = "http://logc.facws001.sg.nl/trunk/appl/chat/notify.asp";
//var notify_url = "https://demo.facilitorlabs.nl/appl/chat/notify.asp"; // Pas wel op voor CORS gezeur...
var CHECKTIME = 1500; // milliseconde voor een actieve chat
var notify =
{
timeoutTimer: null,
callback: null,
channelId: null,
params: null,
chatSendchannelId: null,
signal: function _signal (signalchannelId, message)
{
$.post(notify_url + "?action=signal&channelId=" + signalchannelId + (message?"&msg=" + message:"")); // Signal new message
},
end: function _end (channelId, fromchannelId, message)
{
$.post(notify_url + "?action=end&channelId=" + channelId + "&fromchannelId=" + fromchannelId + (message?"&msg=" + message:"")); // Signal end of chat
notify.stopwait();
},
stopwait: function _stopwait ()
{
clearTimeout(notify.timeoutTimer);
},
wait: function _wait (channelId, sendChannelId, fnCallback, params)
{
params = params || {};
notify.chatSendchannelId = sendChannelId;
notify.callback = fnCallback;
notify.channelId = channelId;
notify.params = params;
notify.start = new Date();
if (params.alwaysafter > 0)
{
notify.alwaysaftertime = new Date();
notify.alwaysaftertime.setSeconds(notify.alwaysaftertime.getSeconds() + params.alwaysafter)
}
notify.check();
},
check: function ()
{
if (notify.alwaysaftertime && new Date() > notify.alwaysaftertime)
{
notify.callback({}); // altijd dummy data
}
else
$.getJSON(notify_url + "?action=check&channelId=" + notify.channelId
+ (notify.chatSendchannelId ? "&sendchannelId=" + notify.chatSendchannelId : ""), notify.process_notify);
},
process_notify: function(data)
{
clearTimeout(notify.timeoutTimer);
if (data && data.message)
notify.callback(data);
else if (data && ("last_alive" in data || "end" in data))
{
if (notify.callback(data))
notify.timeoutTimer = setTimeout(notify.check, CHECKTIME);
}
else
notify.timeoutTimer = setTimeout(notify.check, CHECKTIME);
}
};