Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- "use strict";
- var socket = io.connect("/STchat", {
- transports: ["websocket"],
- upgrade: false,
- reconnection: false
- });
- var hisclass = "";
- var myclass = "";
- var message = document.getElementById("message");
- var output = document.getElementById("output");
- var disconnect = document.getElementById("cls");
- var other = document.getElementById("next");
- var audio = new Audio("notification.mp3");
- var loadingSvg = '<svg width="150px" height="150px" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="lds-rolling" style="background: none;"><circle cx="50" cy="50" fill="none" ng-attr-stroke="{{config.color}}" ng-attr-stroke-width="{{config.width}}" ng-attr-r="{{config.radius}}" ng-attr-stroke-dasharray="{{config.dasharray}}" stroke="#ffffff" stroke-width="3" r="30" stroke-dasharray="141.37166941154067 49.12388980384689" transform="rotate(245.501 50 50)"><animateTransform attributeName="transform" type="rotate" calcMode="linear" values="0 50 50;360 50 50" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animateTransform></circle></svg>';
- var removeLoading = function removeLoading() {
- $("#loading-placeholder").css("opacity", 0);
- setTimeout(function () {
- $("#loading-placeholder").remove();
- }, 300);
- };
- other.onclick = function (e) {
- e.preventDefault();
- $("#disconnectDIV").css("opacity", "0");
- $("#output").children(":not(.typing-container)").remove();
- socket.emit("next");
- };
- message.onkeypress = function () {
- socket.emit("typing");
- };
- message.onkeyup = function (event) {
- if (this.value.length === 0) {
- socket.emit('stoptyping');
- }
- };
- socket.on("typing", function () {
- $('#wae').css({
- 'display': 'table',
- 'opacity': 1
- });
- output.scrollTop = output.scrollHeight;
- });
- socket.on('stoptyping', function () {
- $("#wae").css({
- 'opacity': 0,
- 'display': 'none'
- });
- });
- disconnect.onclick = function (e) {
- e.preventDefault();
- socket.emit("off");
- };
- socket.on("off", function () {
- $(document).attr("title", "პარტნიორი გაითიშა");
- document.getElementById("disconnectDIV").style.opacity = "1";
- document.getElementById("message").disabled = true;
- document.getElementById("fileselect").disabled = true;
- document.getElementById("send").disabled = true;
- document.getElementById("confound").style.opacity = "0";
- document.getElementById("WC").style.display = "none";
- document.getElementById("wae").style.display = "none";
- $("#next").removeAttr('disabled');
- });
- socket.on("disconnect", function () {
- $(document).attr("title", "პარტნიორი გაითიშა");
- document.getElementById("disconnectDIV").style.opacity = "1";
- document.getElementById("message").disabled = true;
- document.getElementById("fileselect").disabled = true;
- document.getElementById("send").disabled = true;
- document.getElementById("confound").style.opacity = "0";
- document.getElementById("WC").style.display = "none";
- document.getElementById('wae').style.display = "none";
- $("#next").removeAttr('disabled');
- });
- socket.on("wait", function () {
- document.getElementById("WC").style.display = "inline";
- document.getElementById("message").disabled = true;
- document.getElementById("fileselect").disabled = true;
- document.getElementById("send").disabled = true;
- $("#next").attr("disabled", "true");
- });
- socket.on("delwait", function () {
- if (!document.hasFocus()) {
- audio.play();
- }
- document.getElementById("WC").style.display = "none";
- document.getElementById("message").disabled = false;
- document.getElementById("fileselect").disabled = false;
- document.getElementById("send").disabled = false;
- document.getElementById("confound").style.opacity = "1";
- $("#next").removeAttr("disabled");
- function hide() {
- document.getElementById("confound").style.opacity = "0";
- }
- setTimeout(hide, 3000);
- });
- $("form").submit(function (e) {
- e.preventDefault();
- socket.emit("chat", {
- message: message.value
- });
- $("#message").val("");
- return false;
- });
- message.onkeyup = function (event) {
- event.preventDefault();
- if (event.keyCode === 13) {
- document.getElementById("send").click();
- }
- };
- socket.on("chat", function (data) {
- if (!document.hasFocus()) {
- $(document).attr("title", "მესიჯი");
- audio.play();
- }
- document.getElementById("wae").style.opacity = "0";
- document.getElementById('wae').style.display = "none";
- if (data.id == socket.id) {
- var _message = data.message; // TODO serverze gaakete igive
- var text = _message;
- var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
- var text1 = text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
- var exp2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
- _message = text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
- $('.typing-container').before("<div class=\"myout-container\"><div class=\"myout ".concat(myclass, "\"><p class=\"you\">").concat(_message, "</p></div></div>"));
- output.scrollTop = output.scrollHeight;
- } else {
- var _message2 = data.message; // TODO serverze gaakete igive
- var text = _message2;
- var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
- var text1 = text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
- var exp2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
- _message2 = text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
- $('.typing-container').before("<div class='hisout ".concat(hisclass, "'><p class=\"me\">").concat(_message2, "</p></div>"));
- output.scrollTop = output.scrollHeight;
- }
- });
- document.getElementById("fileselect").onchange = function () {
- if (this.files.length != 0) {
- var file = this.files[0],
- reader = new FileReader();
- $(this).prop("value", "");
- reader.onload = function (e) {
- socket.emit("img", {
- image: e.target.result
- });
- };
- reader.readAsDataURL(file);
- }
- };
- message.onpaste = function (event) {
- var items = (event.clipboardData || event.originalEvent.clipboardData).items;
- for (var index in items) {
- var item = items[index];
- if (item.kind === "file") {
- $("#output").append("<div id=\"loading-placeholder\" style=\"opacity: 0\"><div id=\"loading\">".concat(loadingSvg, "</div></div>"));
- setTimeout(function () {
- $("#loading-placeholder").css("opacity", 1);
- }, 100);
- var blob = item.getAsFile();
- var reader = new FileReader();
- reader.onload = function (event) {
- socket.emit("img", {
- image: event.target.result
- });
- }; // data url!
- reader.readAsDataURL(blob);
- }
- }
- };
- socket.on("img", function (data) {
- if (!document.hasFocus()) {
- $(document).attr("title", "მესიჯი");
- }
- if (data.id === socket.id) {
- $('.typing-container').before('<div class="myphoto-container"><img onload="removeLoading()" class="myphoto" src="' + data.image + '"/></div>');
- $('#output').scrollTop($('#output')[0].scrollHeight);
- } else {
- $('.typing-container').before('<div class="hisphoto-container"><img class="hisphoto" src="' + data.image + '"/></div>');
- $('#output').scrollTop($('#output')[0].scrollHeight);
- }
- });
- socket.on('failed to send image', function () {
- alert('zaza');
- $('#loading-placeholder').remove();
- });
- function focc() {
- $(document).attr("title", "Chat");
- }
- $("#switch").click(function () {
- var status = $(this).attr("name");
- if (status == "off") {
- $(".toggle-inside").addClass("night-toggle-inside");
- $("body").addClass("night-body");
- $("ul").addClass("night-navbar");
- $("#message").addClass("night-message");
- $("#send").addClass("night-send");
- $(".hisout").addClass("night-hisout");
- $(".myout").addClass("night-myout");
- $(".typing-indicator").addClass("typing-indicator-night");
- $(".lds-facebook").addClass("lds-facebook-night");
- $(".upload_img").addClass("night-upload");
- myclass = "night-myout";
- hisclass = "night-hisout";
- $("#switch").attr("name", "on");
- } else {
- $("body").removeClass("night-body");
- $("ul").removeClass("night-navbar");
- $("#message").removeClass("night-message");
- $("#send").removeClass("night-send");
- $(".hisout").removeClass("night-hisout");
- $(".myout").removeClass("night-myout");
- $(".typing-indicator").removeClass("typing-indicator-night");
- $(".lds-facebook").removeClass("lds-facebook-night");
- $(".toggle-inside").removeClass("night-toggle-inside");
- $(".upload_img").removeClass("night-upload");
- myclass = "";
- hisclass = "";
- $("#switch").attr("name", "off");
- }
- });
- $("#fileselect").change(function () {
- $(".typing-container").before("<div id=\"loading-placeholder\" style=\"opacity: 0\"><div id=\"loading\">".concat(loadingSvg, "</div></div>"));
- setTimeout(function () {
- $("#loading-placeholder").css("opacity", 1);
- output.scrollTop = output.scrollHeight;
- }, 100);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement