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

1 line
3.8 KiB
JavaScript

!function(C){var e=function(o,n){if(!n)throw"not implemented";var a=C.connection.chatHub;a.client.addMessage=function(n,e,i){C("#room_"+e).append('<li class="discussion"><strong>'+f(n)+"</strong>: "+f(i)+"</li>")},a.client.addPV=function(n,e){C("#mute").prop("checked")||p.play(),C("#pv_"+n).append('<li class="pv"><strong>'+f(n)+"</strong>: "+f(e)+"</li>")},a.client.notify=function(n,e,i){i&&("connected"===n?(g(l,e,i),C("#notifications").append('<li class="notif"><i>'+f(n)+"</i> "+f(i)+"</li>")):"disconnected"===n?(b(l,e,i),C("#notifications").append('<li class="notif"><i>'+f(n)+"</i> "+f(i)+"</li>")):C("#notifications").append('<li class="notif"><i>'+f(n)+"</i> "+f(e)+" : <code>"+f(i)+"</code></li>"))},a.client.onJoined=function(n){console.log(n),C("#inp_"+n.Name).prop("enable",!0)},C.fn.filterByData=function(n,e){return this.filter(function(){return C(this).data(n)==e})};var s=C("<div class='roomlist' border='dashed'></div>");s.appendTo(o);var e=function(e){console.log("building:"+e);var n=C("<a>"+e+"</a>");n.addClass("btn").addClass("default").click(function(){u(e)});var i=C("<div></div>");n.appendTo(s),i.prop("id","vroom_"+e);var t=C('<ul class="mesglist"></ul>');t.prop("id","room_"+e),t.appendTo(i),C('<input type="text">').prop("id","inp_"+e).prop("enable",!1).prop("hint","hello").prop("title","send to "+e).keydown(function(n){13==n.which&&(console.log("sending:"+e+" "+this.value),a.server.send(e,this.value),this.value="")}).appendTo(i),c.push(e),i.appendTo(o),console.log("done with built:"),console.log(c)},c=Array();function i(){setTimeout(function(){var t;C("#userlist").empty(),C("#to").empty(),C.get("/api/chat/users").done(function(n){C.each(n,function(){var n=this,e=C("#userlist li").filterByData("name",n.UserName);0<e.length&&e.remove();var i=[];C.each(n.Connections,function(){i.push(this.ConnectionId)}),h(t,n.UserName,i)})})},120),C("#chatview").removeClass("disabled"),c.forEach(function(n){a.server.join(n)})}o.data("chans").split(",").forEach(function(n){e(n)}),C.connection.hub.start().done(function(){i()}),C.connection.hub.disconnected(function(){C("#chatview").addClass("disabled"),setTimeout(function(){C.connection.hub.start().done(function(){i()},3e4)})}),C('<label for="channame">&gt;&nbsp;</label>').appendTo(o);var t=C('<input name="channame" title="channel name" hint="yavsc">');t.appendTo(o),t.keydown(function(n){13==n.which&&(e(this.value),this.value="")});var d,l=C("<ul></ul>").addClass("userlist");l.appendTo(o);var r,u=function(n){d&&d.addClass("hidden"),(d=C("#vroom_"+n)).removeClass("hidden")},p=new Audio("/sounds/bell.mp3");function h(n,e,i){C('<li class="user"><img src="/Avatars/'+e+'.xs.png"> '+e+"</li>").data("name",e).data("cxids",i).css("cursor","pointer").click(function(){v(this)}).appendTo(n)}function f(n){return C("<div />").text(n).html()}C("#pv").keydown(function(n){var e;13==n.which&&(e=C("#pv").val(),C.each(r.CXs,function(){a.server.sendPV(this,e)}),C("#discussion").append('<li class="pv">'+f(r.UserName)+"<< "+f(e)+"</li>"),C("#pv").val(""))}),C("#command").keydown(function(n){13==n.which&&sendCommand()});var v=function(n){C("#rooms").addClass("hidden"),C("#sendpvbox").removeClass("hidden"),r={CXs:C(n).data("cxids"),UserName:C(n).data("name")},C("#sendpvdest").html(r.UserName),C("#pvs").focus()},m=function(){C("#rooms").removeClass("hidden"),C("#sendpvbox").addClass("hidden"),C("#message").focus()};C("#pubChan").css("cursor","pointer"),C("#pubChan").click(m),m();var b=function(e){C("#userlist li").filter(function(){var n=C(this).data("cxids").filter(function(){return C(this)!==e});0==n.length?C(this).remove():C(this).data("cxids",n)})},g=function(n,e,i){var t=C("#userlist li").filterByData("name",i);if(0<t.length){var o=t.data("cxids");o.push(e),t.data("cxids",o)}else h(n,i,[e])};C(window).unload(function(){a.server.abort()})};C(document).ready(function(n){e(n("#chatview"),!0)})}(jQuery);