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

View File

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

View File

@@ -44,6 +44,7 @@ Application.UnLock();
FcltMgr.startEdit(window); // maakt hem hot FcltMgr.startEdit(window); // maakt hem hot
var acceptchannelId = "<%=acceptchannelId%>"; var acceptchannelId = "<%=acceptchannelId%>";
var dis_key = <%=dis_key%>; var dis_key = <%=dis_key%>;
function accept_chat(x, y) function accept_chat(x, y)
{ {
var wantId = $(this).data("wantid"); 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)); 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 view_queue(); // op de achtergrond blijven refreshen
} }
async function show_queue(data) async function show_queue(data)
{ {
//$("#chatqueue").html("<xmp>" + JSON.stringify(data, null, 4) + "</xmp>"); //$("#chatqueue").html("<xmp>" + JSON.stringify(data, null, 4) + "</xmp>");
@@ -111,11 +113,19 @@ Application.UnLock();
FcltMgr.resized(); FcltMgr.resized();
notify.wait(window.acceptchannelId, null, view_queue, { alwaysafter: 10 }); notify.wait(window.acceptchannelId, null, view_queue, { alwaysafter: 10 });
} }
window.onbeforeunload = function()
{ // Bij sluiten van tabblad de id opruimen. function onCloseHot()
$.post( "./ChatterClose.asp?channelId=<%=acceptchannelId%>"); {
return true; 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() function view_queue()
{ {
$.getJSON( "./ChatQueueGet.asp" + (dis_key > 0 ? "?dis_key=" + dis_key : ""), show_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? // TODO: als er geen chat_queue.accepting zijn dat direct melden?
Application.Lock(); Application.Lock();
var chat_queue = JSON.parse(Application(chat_queue_name) || "{}"); 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(); Application.UnLock();
%> %>
<html> <html>
@@ -46,7 +37,7 @@ Application.UnLock();
FcltMgr.startEdit(window); // maakt hem hot FcltMgr.startEdit(window); // maakt hem hot
} }
var hasChatOnline = <%=hasChatOnline%>; var hasChatOnline = 0;
var wantchannelId = "<%=wantchannelId%>"; var wantchannelId = "<%=wantchannelId%>";
var startMessage; var startMessage;
var timerId; var timerId;
@@ -124,17 +115,13 @@ Application.UnLock();
Response.Write("\nnotify.signal('{0}');".format(acceptchannelId)); Response.Write("\nnotify.signal('{0}');".format(acceptchannelId));
} }
%> %>
function sendQueueAlive() function sendQueueAlive(init)
{ {
$.getJSON( "ChatQueueAlive.asp?channelId=" + wantchannelId $.getJSON( "ChatQueueAlive.asp?channelId=" + wantchannelId
, function(data) , function(data)
{ // Kijk opnieuw of er nog medewerkers aanwezig zijn om de chat te beantwoorden. { // Kijk opnieuw of er nog medewerkers aanwezig zijn om de chat te beantwoorden.
hasChatOnline = 0; hasChatOnline = data.hasChatOnline;
for (var ch in data.accepting) handleChatOnline(init);
{
hasChatOnline++;
}
handleChatOnline();
} }
); );
} }
@@ -180,7 +167,7 @@ Application.UnLock();
} }
$(function () { $(function () {
handleChatOnline(true); sendQueueAlive(true);
}); });
</script> </script>