implements web chat rooms
parent
7a84e2965b
commit
cb8a6aec60
@ -1 +1 @@
|
||||
01
|
||||
02
|
||||
|
@ -1 +1 @@
|
||||
!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);
|
||||
!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">> </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);
|
@ -1 +1 @@
|
||||
$(document).ready(function(o){var u=o(window),p=o(window).width(),b=o(window).height(),a=function(t,r,e){var n=t.data("speed"),o=(u.scrollLeft()+r-p/2)/n,a=(u.scrollTop()+e-b/2)/n,g=t.attr("orgbgpx")-Math.round(o),s=t.attr("orgbgpy")-Math.round(a),i=""+g+t.attr("orgbgpxu")+s+t.attr("orgbgpyu");t.css({backgroundPosition:i})},g=0,s=0;o('[data-type="background"]').each(function(){var r=o(this),t=r.css("backgroundPosition").split(" "),e=t[0],n=t[1];/%$/.test(e)?(e=e.substr(0,e.length-1),r.attr("orgbgpxu","% ")):/em$/.test(e)?(e=e.substr(0,e.length-2),r.attr("orgbgpxu","em ")):(/px$/.test(e)&&(e=e.substr(0,e.length-2)),r.attr("orgbgpxu","px ")),/%$/.test(n)?(n=n.substr(0,n.length-1),r.attr("orgbgpyu","% ")):/em$/.test(n)?(n=n.substr(0,n.length-2),r.attr("orgbgpyu","em ")):(/px$/.test(n)&&(n=n.substr(0,n.length-2)),r.attr("orgbgpyu","px ")),r.attr("orgbgpx",parseInt(e)),r.attr("orgbgpy",parseInt(n)),o(window).scroll(function(){a(r,g,s)}),window.DeviceOrientationEvent&&(320<p&&320<b&&window.addEventListener("deviceorientation",function(t){g=p*Math.sin(t.gamma*Math.PI/180),s=b*Math.sin(t.beta*Math.PI/90),a(r,g,s)},!1),o(window).mousemove(function(t){g=t.pageX,s=t.pageY,a(r,t.pageX,t.pageY)}))})}(jQuery));
|
||||
$(document).ready(function(e){var u=e(window),p=e(window).width(),b=e(window).height(),a=function(t,r,n){d=r,c=n;var o=t.data("speed"),e=(u.scrollLeft()+r-p/2)/o,a=(u.scrollTop()+n-b/2)/o,g=t.attr("orgbgpx")-Math.round(e),s=t.attr("orgbgpy")-Math.round(a),i=""+g+t.attr("orgbgpxu")+s+t.attr("orgbgpyu");t.css({backgroundPosition:i})},d=0,c=0;e('[data-type="background"]').each(function(){var r=e(this),t=r.css("backgroundPosition").split(" "),n=t[0],o=t[1];/%$/.test(n)?(n=n.substr(0,n.length-1),r.attr("orgbgpxu","% ")):/em$/.test(n)?(n=n.substr(0,n.length-2),r.attr("orgbgpxu","em ")):(/px$/.test(n)&&(n=n.substr(0,n.length-2)),r.attr("orgbgpxu","px ")),/%$/.test(o)?(o=o.substr(0,o.length-1),r.attr("orgbgpyu","% ")):/em$/.test(o)?(o=o.substr(0,o.length-2),r.attr("orgbgpyu","em ")):(/px$/.test(o)&&(o=o.substr(0,o.length-2)),r.attr("orgbgpyu","px ")),r.attr("orgbgpx",parseInt(n)),r.attr("orgbgpy",parseInt(o)),e(window).scroll(function(){a(r,d,c)}),window.DeviceOrientationEvent&&(320<p&&320<b&&window.addEventListener("deviceorientation",function(t){a(r,p*Math.sin(t.gamma*Math.PI/180),b*Math.sin(t.beta*Math.PI/90))},!1),e(window).mousemove(function(t){a(r,t.pageX,t.pageY)}))})}(jQuery));
|
Loading…
Reference in New Issue