From aa0584452ba0c33d312c0ed60f82e63a3c5e217b Mon Sep 17 00:00:00 2001 From: Erik Groener Date: Thu, 14 Mar 2024 11:24:06 +0000 Subject: [PATCH] LOGC#76927 Beter/sneller kenbaar maken dat er geen operators online zijn in de chat svn path=/Website/trunk/; revision=63923 --- APPL/CHAT/{ChatterClose.asp => ChatClose.asp} | 4 ++-- APPL/CHAT/ChatQueueAlive.asp | 16 ++++++++----- APPL/CHAT/ChatterAccept.asp | 20 ++++++++++++---- APPL/CHAT/ChatterWant.asp | 23 ++++--------------- 4 files changed, 32 insertions(+), 31 deletions(-) rename APPL/CHAT/{ChatterClose.asp => ChatClose.asp} (85%) diff --git a/APPL/CHAT/ChatterClose.asp b/APPL/CHAT/ChatClose.asp similarity index 85% rename from APPL/CHAT/ChatterClose.asp rename to APPL/CHAT/ChatClose.asp index ec7bd2dfe6..e0841a542e 100644 --- a/APPL/CHAT/ChatterClose.asp +++ b/APPL/CHAT/ChatClose.asp @@ -16,7 +16,7 @@ var JSON_Result = true; <% -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)); diff --git a/APPL/CHAT/ChatQueueAlive.asp b/APPL/CHAT/ChatQueueAlive.asp index 7c9cf83833..4bd50a8f79 100644 --- a/APPL/CHAT/ChatQueueAlive.asp +++ b/APPL/CHAT/ChatQueueAlive.asp @@ -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)); diff --git a/APPL/CHAT/ChatterAccept.asp b/APPL/CHAT/ChatterAccept.asp index 4f708f8e00..7b99b683d9 100644 --- a/APPL/CHAT/ChatterAccept.asp +++ b/APPL/CHAT/ChatterAccept.asp @@ -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("" + JSON.stringify(data, null, 4) + ""); @@ -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); diff --git a/APPL/CHAT/ChatterWant.asp b/APPL/CHAT/ChatterWant.asp index d34173a7a1..9fb3bcb8eb 100644 --- a/APPL/CHAT/ChatterWant.asp +++ b/APPL/CHAT/ChatterWant.asp @@ -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(); %> @@ -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); });