Advertisement
Guest User

aba kiara trakshi ar mogtyna mamikostan ertad

a guest
Jul 17th, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.07 KB | None | 0 0
  1. "use strict";
  2.  
  3. var socket = io.connect("/STchat", {
  4. transports: ["websocket"],
  5. upgrade: false,
  6. reconnection: false
  7. });
  8. var hisclass = "";
  9. var myclass = "";
  10. var message = document.getElementById("message");
  11. var output = document.getElementById("output");
  12. var disconnect = document.getElementById("cls");
  13. var other = document.getElementById("next");
  14. var audio = new Audio("notification.mp3");
  15. 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>';
  16.  
  17. var removeLoading = function removeLoading() {
  18. $("#loading-placeholder").css("opacity", 0);
  19. setTimeout(function () {
  20. $("#loading-placeholder").remove();
  21. }, 300);
  22. };
  23.  
  24. other.onclick = function (e) {
  25. e.preventDefault();
  26. $("#disconnectDIV").css("opacity", "0");
  27. $("#output").children(":not(.typing-container)").remove();
  28. socket.emit("next");
  29. };
  30.  
  31. message.onkeypress = function () {
  32. socket.emit("typing");
  33. };
  34.  
  35. message.onkeyup = function (event) {
  36. if (this.value.length === 0) {
  37. socket.emit('stoptyping');
  38. }
  39. };
  40.  
  41. socket.on("typing", function () {
  42. $('#wae').css({
  43. 'display': 'table',
  44. 'opacity': 1
  45. });
  46. output.scrollTop = output.scrollHeight;
  47. });
  48.  
  49. socket.on('stoptyping', function () {
  50. $("#wae").css({
  51. 'opacity': 0,
  52. 'display': 'none'
  53. });
  54. });
  55.  
  56. disconnect.onclick = function (e) {
  57. e.preventDefault();
  58. socket.emit("off");
  59. };
  60.  
  61. socket.on("off", function () {
  62. $(document).attr("title", "პარტნიორი გაითიშა");
  63. document.getElementById("disconnectDIV").style.opacity = "1";
  64. document.getElementById("message").disabled = true;
  65. document.getElementById("fileselect").disabled = true;
  66. document.getElementById("send").disabled = true;
  67. document.getElementById("confound").style.opacity = "0";
  68. document.getElementById("WC").style.display = "none";
  69. document.getElementById("wae").style.display = "none";
  70. $("#next").removeAttr('disabled');
  71. });
  72. socket.on("disconnect", function () {
  73. $(document).attr("title", "პარტნიორი გაითიშა");
  74. document.getElementById("disconnectDIV").style.opacity = "1";
  75. document.getElementById("message").disabled = true;
  76. document.getElementById("fileselect").disabled = true;
  77. document.getElementById("send").disabled = true;
  78. document.getElementById("confound").style.opacity = "0";
  79. document.getElementById("WC").style.display = "none";
  80. document.getElementById('wae').style.display = "none";
  81. $("#next").removeAttr('disabled');
  82. });
  83. socket.on("wait", function () {
  84. document.getElementById("WC").style.display = "inline";
  85. document.getElementById("message").disabled = true;
  86. document.getElementById("fileselect").disabled = true;
  87. document.getElementById("send").disabled = true;
  88. $("#next").attr("disabled", "true");
  89. });
  90. socket.on("delwait", function () {
  91. if (!document.hasFocus()) {
  92. audio.play();
  93. }
  94.  
  95. document.getElementById("WC").style.display = "none";
  96. document.getElementById("message").disabled = false;
  97. document.getElementById("fileselect").disabled = false;
  98. document.getElementById("send").disabled = false;
  99. document.getElementById("confound").style.opacity = "1";
  100. $("#next").removeAttr("disabled");
  101.  
  102. function hide() {
  103. document.getElementById("confound").style.opacity = "0";
  104. }
  105.  
  106. setTimeout(hide, 3000);
  107. });
  108. $("form").submit(function (e) {
  109. e.preventDefault();
  110. socket.emit("chat", {
  111. message: message.value
  112. });
  113. $("#message").val("");
  114. return false;
  115. });
  116.  
  117. message.onkeyup = function (event) {
  118. event.preventDefault();
  119.  
  120. if (event.keyCode === 13) {
  121. document.getElementById("send").click();
  122. }
  123. };
  124.  
  125. socket.on("chat", function (data) {
  126. if (!document.hasFocus()) {
  127. $(document).attr("title", "მესიჯი");
  128. audio.play();
  129. }
  130.  
  131. document.getElementById("wae").style.opacity = "0";
  132. document.getElementById('wae').style.display = "none";
  133.  
  134. if (data.id == socket.id) {
  135. var _message = data.message; // TODO serverze gaakete igive
  136.  
  137. var text = _message;
  138. var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
  139. var text1 = text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
  140. var exp2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
  141. _message = text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
  142. $('.typing-container').before("<div class=\"myout-container\"><div class=\"myout ".concat(myclass, "\"><p class=\"you\">").concat(_message, "</p></div></div>"));
  143. output.scrollTop = output.scrollHeight;
  144. } else {
  145. var _message2 = data.message; // TODO serverze gaakete igive
  146.  
  147. var text = _message2;
  148. var exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi;
  149. var text1 = text.replace(exp, "<a href='$1' target='_blank'>$1</a>");
  150. var exp2 = /(^|[^\/])(www\.[\S]+(\b|$))/gim;
  151. _message2 = text1.replace(exp2, '$1<a target="_blank" href="http://$2">$2</a>');
  152. $('.typing-container').before("<div class='hisout ".concat(hisclass, "'><p class=\"me\">").concat(_message2, "</p></div>"));
  153. output.scrollTop = output.scrollHeight;
  154. }
  155. });
  156.  
  157. document.getElementById("fileselect").onchange = function () {
  158. if (this.files.length != 0) {
  159. var file = this.files[0],
  160. reader = new FileReader();
  161. $(this).prop("value", "");
  162.  
  163. reader.onload = function (e) {
  164. socket.emit("img", {
  165. image: e.target.result
  166. });
  167. };
  168.  
  169. reader.readAsDataURL(file);
  170. }
  171. };
  172.  
  173. message.onpaste = function (event) {
  174. var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  175.  
  176. for (var index in items) {
  177. var item = items[index];
  178.  
  179. if (item.kind === "file") {
  180. $("#output").append("<div id=\"loading-placeholder\" style=\"opacity: 0\"><div id=\"loading\">".concat(loadingSvg, "</div></div>"));
  181. setTimeout(function () {
  182. $("#loading-placeholder").css("opacity", 1);
  183. }, 100);
  184. var blob = item.getAsFile();
  185. var reader = new FileReader();
  186.  
  187. reader.onload = function (event) {
  188. socket.emit("img", {
  189. image: event.target.result
  190. });
  191. }; // data url!
  192.  
  193.  
  194. reader.readAsDataURL(blob);
  195. }
  196. }
  197. };
  198.  
  199. socket.on("img", function (data) {
  200. if (!document.hasFocus()) {
  201. $(document).attr("title", "მესიჯი");
  202. }
  203.  
  204. if (data.id === socket.id) {
  205. $('.typing-container').before('<div class="myphoto-container"><img onload="removeLoading()" class="myphoto" src="' + data.image + '"/></div>');
  206. $('#output').scrollTop($('#output')[0].scrollHeight);
  207. } else {
  208. $('.typing-container').before('<div class="hisphoto-container"><img class="hisphoto" src="' + data.image + '"/></div>');
  209. $('#output').scrollTop($('#output')[0].scrollHeight);
  210. }
  211. });
  212. socket.on('failed to send image', function () {
  213. alert('zaza');
  214. $('#loading-placeholder').remove();
  215. });
  216.  
  217. function focc() {
  218. $(document).attr("title", "Chat");
  219. }
  220.  
  221. $("#switch").click(function () {
  222. var status = $(this).attr("name");
  223.  
  224. if (status == "off") {
  225. $(".toggle-inside").addClass("night-toggle-inside");
  226. $("body").addClass("night-body");
  227. $("ul").addClass("night-navbar");
  228. $("#message").addClass("night-message");
  229. $("#send").addClass("night-send");
  230. $(".hisout").addClass("night-hisout");
  231. $(".myout").addClass("night-myout");
  232. $(".typing-indicator").addClass("typing-indicator-night");
  233. $(".lds-facebook").addClass("lds-facebook-night");
  234. $(".upload_img").addClass("night-upload");
  235. myclass = "night-myout";
  236. hisclass = "night-hisout";
  237. $("#switch").attr("name", "on");
  238. } else {
  239. $("body").removeClass("night-body");
  240. $("ul").removeClass("night-navbar");
  241. $("#message").removeClass("night-message");
  242. $("#send").removeClass("night-send");
  243. $(".hisout").removeClass("night-hisout");
  244. $(".myout").removeClass("night-myout");
  245. $(".typing-indicator").removeClass("typing-indicator-night");
  246. $(".lds-facebook").removeClass("lds-facebook-night");
  247. $(".toggle-inside").removeClass("night-toggle-inside");
  248. $(".upload_img").removeClass("night-upload");
  249. myclass = "";
  250. hisclass = "";
  251. $("#switch").attr("name", "off");
  252. }
  253. });
  254. $("#fileselect").change(function () {
  255. $(".typing-container").before("<div id=\"loading-placeholder\" style=\"opacity: 0\"><div id=\"loading\">".concat(loadingSvg, "</div></div>"));
  256. setTimeout(function () {
  257. $("#loading-placeholder").css("opacity", 1);
  258. output.scrollTop = output.scrollHeight;
  259. }, 100);
  260. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement