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

1 line
2.9 KiB
JavaScript

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