yavsc/Yavsc/wwwroot/js/chat.min.js

1 line
3.0 KiB
JavaScript

+function(n){function s(s,e){n('<li class="user"><button><img src="/Avatars/'+s+'.xs.png"> '+s+"</button></li>").data("name",s).data("cxids",e).css("cursor","pointer").click(function(){d(this)}).appendTo("#userlist")}function e(){n("#userlist").empty(),n("#to").empty(),n.get("/api/chat/users").done(function(e){n.each(e,function(){var e=this,i=n("#userlist li").filterByData("name",e.UserName);i.length>0&&i.remove();var t=[];n.each(e.Connections,function(){t.push(this.ConnectionId)}),s(e.UserName,t)})})}function i(){setTimeout(function(){e()},120),n("#chatview").removeClass("disabled"),n("#sendmessage").prop("disabled",!1),n("#sendpv").prop("disabled",!1)}function t(){n("#chatview").addClass("disabled"),n("#sendmessage").prop("disabled",!0),n("#sendpv").prop("disabled",!0)}function a(s){var e=n("<div />").text(s).html();return e}var o,c=new Audio("/sounds/bell.mp3"),d=function(s){n("#sendmessagebox").addClass("hidden"),n("#sendpvbox").removeClass("hidden"),o={CXs:n(s).data("cxids"),UserName:n(s).data("name")},n("#sendpvdest").html(o.UserName),n("#pv").focus()},u=function(){n("#sendmessagebox").removeClass("hidden"),n("#sendpvbox").addClass("hidden"),n("#message").focus()};n("#pubChan").css("cursor","pointer"),n("#pubChan").click(u),u();var l=n.connection.chatHub;l.client.addMessage=function(s,e){n("#discussion").append('<li class="discussion"><strong>'+a(s)+"</strong>: "+a(e)+"</li>")},l.client.addPV=function(s,e){n("#mute").prop("checked")||c.play(),n("#discussion").append('<li class="pv"><strong>'+a(s)+"</strong>: "+a(e)+"</li>")},n.fn.filterByData=function(s,e){return this.filter(function(){return n(this).data(s)==e})};var r=function(s){n("#userlist li").filter(function(){var e=n(this).data("cxids").filter(function(){return n(this)!==s});0==e.Length?n(this).remove():n(this).data("cxids",e)})},f=function(e,i){var t=n("#userlist li").filterByData("name",i);if(t.length>0){var a=t.data("cxids");a.push(e),t.data("cxids",a)}else s(i,[e])};l.client.notify=function(s,e,i){i&&("connected"===s?(f(e,i),n("#discussion").append('<li class="notif"><i>'+a(s)+"</i> "+a(i)+"</li>")):"disconnected"===s?(r(e,i),n("#discussion").append('<li class="notif"><i>'+a(s)+"</i> "+a(i)+"</li>")):n("#discussion").append('<li class="notif"><i>'+a(s)+"</i> "+a(e)+" : "+a(i)+"</li>"))};var p=function(){l.server.send(n("#displayname").val(),n("#message").val()),n("#message").val("")},v=function(){var s=n("#pv").val();n.each(o.CXs,function(){l.server.sendPV(this,s)}),n("#discussion").append('<li class="pv">'+a(o.UserName)+"<< "+a(s)+"</li>"),n("#pv").val("")};n.connection.hub.start().done(function(){i(),n("#sendmessage").click(function(){p(),n("#message").focus()}),n("#message").keydown(function(n){13==n.which&&p()}),n("#pv").keydown(function(n){13==n.which&&v()}),n("#sendpv").click(function(){v(),n("#sendpv").focus()})}),n.connection.hub.disconnected(function(){t(),setTimeout(function(){n.connection.hub.start().done(function(){n("#mySignalRConnectionIdHidden").val(n.connection.hub.id),i()},3e4)})}),n(window).unload(function(){l.server.abort()})}(jQuery);