LOGC#76927 Beter/sneller kenbaar maken dat er geen operators online zijn in de chat

svn path=/Website/trunk/; revision=63923
This commit is contained in:
Erik Groener
2024-03-14 11:24:06 +00:00
parent 1c2547733f
commit aa0584452b
4 changed files with 32 additions and 31 deletions

View File

@@ -16,7 +16,7 @@ var JSON_Result = true;
<!-- #include file="./chat.inc" -->
<%
var acceptchannelId = getQParam("channelId");
var acceptchannelId = getFParam("channelId");
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
if (acceptchannelId in chat_queue.accepting)
@@ -27,7 +27,7 @@ Application.Lock();
Application(chat_queue_name) = JSON.stringify(chat_queue);
Application.UnLock();
result = { status: "OK" };
result = {};
Response.Write(JSON.stringify(result));

View File

@@ -16,16 +16,20 @@ var JSON_Result = true;
<%
var wantchannelId = getQParam("channelId");
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
if (wantchannelId in chat_queue.wanting)
{
chat_queue.wanting[wantchannelId].alive = new Date().getTime();
Application.Lock();
Application(chat_queue_name) = JSON.stringify(chat_queue);
Application.UnLock();
result = chat_queue;
Application.Lock();
Application(chat_queue_name) = JSON.stringify(chat_queue);
Application.UnLock();
}
var result = {hasChatOnline: 0};
for (var ch in chat_queue.accepting)
{
result.hasChatOnline++;
}
Response.Write(JSON.stringify(result));

View File

@@ -44,6 +44,7 @@ Application.UnLock();
FcltMgr.startEdit(window); // maakt hem hot
var acceptchannelId = "<%=acceptchannelId%>";
var dis_key = <%=dis_key%>;
function accept_chat(x, y)
{
var wantId = $(this).data("wantid");
@@ -53,6 +54,7 @@ Application.UnLock();
FcltMgr.openDetail( "appl/chat/Chatter.asp?chatsendid=" + wantId + "&prs_key=" + prs_key + "&message=" + escape(message) + "&accept=1&naam=" + naam, L("lcl_chatter_incoming").format(naam));
view_queue(); // op de achtergrond blijven refreshen
}
async function show_queue(data)
{
//$("#chatqueue").html("<xmp>" + JSON.stringify(data, null, 4) + "</xmp>");
@@ -111,11 +113,19 @@ Application.UnLock();
FcltMgr.resized();
notify.wait(window.acceptchannelId, null, view_queue, { alwaysafter: 10 });
}
window.onbeforeunload = function()
{ // Bij sluiten van tabblad de id opruimen.
$.post( "./ChatterClose.asp?channelId=<%=acceptchannelId%>");
return true;
}
function onCloseHot()
{
var data = { channelId: "<%=acceptchannelId%>" };
<% protectRequest.dataToken("data"); %>
jQuery.ajaxSetup({async: false}); // Anders faalt o.a. bij IE9 de $.post bij afsluiten
$.post( "ChatClose.asp"
, data
, FcltCallback
, "json"
);
}
function view_queue()
{
$.getJSON( "./ChatQueueGet.asp" + (dis_key > 0 ? "?dis_key=" + dis_key : ""), show_queue);

View File

@@ -23,15 +23,6 @@ var ins_discipline_omschrijving = get_disc_name(dis_key);
// TODO: als er geen chat_queue.accepting zijn dat direct melden?
Application.Lock();
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}");
var hasChatOnline = 0;
if (chat_queue.accepting)
{
for( var acceptId in chat_queue.accepting)
{
hasChatOnline++;
}
}
Application.UnLock();
%>
<html>
@@ -46,7 +37,7 @@ Application.UnLock();
FcltMgr.startEdit(window); // maakt hem hot
}
var hasChatOnline = <%=hasChatOnline%>;
var hasChatOnline = 0;
var wantchannelId = "<%=wantchannelId%>";
var startMessage;
var timerId;
@@ -124,17 +115,13 @@ Application.UnLock();
Response.Write("\nnotify.signal('{0}');".format(acceptchannelId));
}
%>
function sendQueueAlive()
function sendQueueAlive(init)
{
$.getJSON( "ChatQueueAlive.asp?channelId=" + wantchannelId
, function(data)
{ // Kijk opnieuw of er nog medewerkers aanwezig zijn om de chat te beantwoorden.
hasChatOnline = 0;
for (var ch in data.accepting)
{
hasChatOnline++;
}
handleChatOnline();
hasChatOnline = data.hasChatOnline;
handleChatOnline(init);
}
);
}
@@ -180,7 +167,7 @@ Application.UnLock();
}
$(function () {
handleChatOnline(true);
sendQueueAlive(true);
});
</script>