Dashboard sipadu mbip
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

mmc-chat.js 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  1. 'use strict';
  2. function boxMinimizedCount() {
  3. var _count = $('#main-chat .chat-single-box.minimized .chat-dropdown li').length;
  4. $('#main-chat .chat-single-box.minimized .count span').html($('#main-chat .chat-single-box.minimized .chat-dropdown li').length);
  5. if (_count == 0) {
  6. $('#main-chat .chat-single-box.minimized').remove();
  7. }
  8. }
  9. function boxMinimizedUserAdd() {
  10. var _boxHidden = $('#main-chat .chat-single-box:not(".minimized"):not(".hidden")').eq(0);
  11. _boxHidden.addClass('hidden');
  12. var dataId = _boxHidden.data('id');
  13. var hasItem = false;
  14. $('#main-chat .chat-single-box.minimized .chat-dropdown li').each(function () {
  15. if ($(this).data('id') == dataId) {
  16. hasItem = true;
  17. }
  18. });
  19. if (!hasItem) {
  20. var dataUserName = _boxHidden.find('.user-info a').text();
  21. $('#main-chat .chat-single-box.minimized .chat-dropdown').append(box_minimized_dropdownLi.format(dataId, dataUserName));
  22. }
  23. }
  24. var box_minimized_dropdownLi = '<li data-id="{0}"><div class="username">{1}</div> <div class="remove">X</div></li>'
  25. function boxMinimized() {
  26. var _boxDefaultWidth = parseInt($('#main-chat .chat-single-box:not(".minimized")').css('width'));
  27. var _boxCommonWidth = parseInt($('.chat-box').css('width').replace('px', ''), 10) + parseInt($('#sidebar').css('width').replace('px', ''), 10);
  28. var _windowWidth = $(window).width();
  29. var _hasMinimized = false;
  30. $('#main-chat .boxs .chat-single-box').each(function (index) {
  31. if ($(this).hasClass('minimized')) {
  32. _hasMinimized = true;
  33. }
  34. });
  35. if ((_windowWidth) > (_boxCommonWidth)) {
  36. if (!_hasMinimized) {
  37. if((_windowWidth)< 768 ){
  38. $(".chat-box").css('margin-right','70px');
  39. return;
  40. }
  41. else{
  42. return;
  43. }
  44. }
  45. var dataId = $('#main-chat .boxs .minimized .chat-dropdown li').last().data('id');
  46. $('#main-chat .boxs .minimized .chat-dropdown li').last().remove();
  47. $('#main-chat .boxs .chat-single-box').each(function (index) {
  48. if ($(this).data('id') == dataId) {
  49. $(this).removeClass('hidden');
  50. return false;
  51. }
  52. });
  53. } else {
  54. if (!_hasMinimized) {
  55. $('#main-chat .boxs').prepend('<li class="chat-single-box minimized"><div class="count"><span>0</span></div><ul class="chat-dropdown"></ul></li>');
  56. }
  57. boxMinimizedUserAdd();
  58. }
  59. boxMinimizedCount();
  60. }
  61. $(window).on('resize',function () {
  62. boxMinimized();
  63. sidebarClosed();
  64. });
  65. $(function () {
  66. var waveEffect = $('.user-box').attr('wave-effect');
  67. var waveColor = $('.user-box').attr('wave-color');
  68. if (waveEffect == 'true') {
  69. $('#sidebar .user-box .userlist-box').each(function (index) {
  70. $(this).addClass('waves-effect ' + waveColor);
  71. });
  72. }
  73. initialTooltip();
  74. messageScroll();
  75. generatePlaceholder();
  76. boxMinimized();
  77. });
  78. $(document).on('click', '#main-chat .chat-single-box', function () {
  79. if ($(this).hasClass('new-message')) {
  80. $(this).removeClass('new-message');
  81. }
  82. ActiveChatBox(this);
  83. });
  84. $(document).on('click', '#main-chat .chat-header .user-info', function () {
  85. removeBoxCollapseClass($(this).parents('.chat-single-box'));
  86. messageScroll();
  87. });
  88. $(document).on('click', '#main-chat .chat-single-box .mini', function () {
  89. parent = $(this).parents('.chat-single-box');
  90. if ($(parent.children()[0].children[0]).hasClass('custom-collapsed')) {
  91. $(parent.children()[0].children[0]).removeClass('custom-collapsed');
  92. $(parent.children()[0].children[1]).css('display','block');
  93. $(parent.children()[0].children[2]).css('display','block');
  94. parent.addClass('bg-white');
  95. parent.addClass('card-shadow');
  96. messageScroll();
  97. } else {
  98. parent.removeClass('bg-white');
  99. parent.removeClass('card-shadow');
  100. $(parent.children()[0].children[0]).addClass('custom-collapsed');
  101. $(parent.children()[0].children[1]).css('display','none');
  102. $(parent.children()[0].children[2]).css('display','none');
  103. }
  104. });
  105. $(document).on('click', '#main-chat .chat-single-box .close', function () {
  106. parent = $(this).parents('.chat-single-box');
  107. if (parent.hasClass('active')) {
  108. parent.remove();
  109. setTimeout(function () { $('#main-chat .boxs .chat-single-box:last-child').addClass('active'); }, 1);
  110. }
  111. parent.remove();
  112. parent.find('.close_tooltip').tooltip('dispose');
  113. boxMinimized();
  114. });
  115. /*Click on username*/
  116. $(document).on('click', '#main-chat #sidebar .user-box .userlist-box', function () {
  117. var dataId = $(this).attr('data-id');
  118. var dataStatus = $(this).data('status');
  119. var dataUserName = $(this).attr('data-username');
  120. var _return = false;
  121. $('#main-chat .chat-box .boxs .chat-single-box').each(function (index) {
  122. if ($(this).attr('data-id') == dataId) {
  123. removeBoxCollapseClass(this);
  124. ActiveChatBox(this);
  125. _return = true;
  126. }
  127. });
  128. if (_return) {
  129. return;
  130. }
  131. if(dataStatus == "online"){
  132. var newBox = '<li class="chat-single-box card-shadow bg-white active" data-id="{0}"><div class="had-container"><div class="chat-header p-10 bg-gray"><div class="user-info d-inline-block f-left"><div class="box-live-status bg-danger d-inline-block m-r-10"></div><a href="#">{1}</a></div><div class="box-tools d-inline-block"><a href="#" class="mini"><i class="icofont icofont-minus f-20 m-r-10"></i></a><a class="close" href="#"><i class="icofont icofont-close f-20"></i></a></div></div><div class="chat-body p-10"><div class="message-scrooler"><div class="messages"></div></div></div><div class="chat-footer b-t-muted"><div class="input-group write-msg"><input type="text" class="form-control input-value" placeholder="Type a Message"><span class="input-group-btn"><button id="paper-btn" class="btn btn-primary " type="button"><i class="icofont icofont-paper-plane"></i></button></span></div></div></div></li>';
  133. }
  134. else{
  135. var newBox = '<li class="chat-single-box card-shadow bg-white active" data-id="{0}"><div class="had-container"><div class="chat-header p-10 bg-gray"><div class="user-info d-inline-block f-left"><div class="box-live-status bg-danger d-inline-block m-r-10"></div><a href="#">{1}</a></div><div class="box-tools d-inline-block"><a href="#" class="mini"><i class="icofont icofont-minus f-20 m-r-10"></i></a><a class="close" href="#"><i class="icofont icofont-close f-20"></i></a></div></div><div class="chat-body p-10"><div class="message-scrooler"><div class="messages"></div></div></div><div class="chat-footer b-t-muted"><div class="input-group write-msg"><input type="text" class="form-control input-value" placeholder="Type a Message"><span class="input-group-btn"><button id="paper-btn" class="btn btn-primary " type="button"><i class="icofont icofont-paper-plane"></i></button></span></div></div></div></li>';
  136. }
  137. $('#main-chat .chat-single-box').removeClass('active');
  138. $('#main-chat .chat-box .boxs').append(newBox.format(dataId, dataUserName, dataStatus));
  139. generatePlaceholder();
  140. messageScroll();
  141. boxMinimized();
  142. initialTooltip();
  143. });
  144. $(document).on('focus', '#main-chat .textarea', function () {
  145. if ($(this).html() == '<span class="placeholder">{0}</span>'.format($(this).data('placeholder'))) {
  146. $(this).html('');
  147. }
  148. });
  149. $(document).on('blur', ' #main-chat .textarea', function () {
  150. if ($(this).html() == '') {
  151. $(this).html('<span class="placeholder">{0}</span>'.format($(this).data('placeholder')));
  152. }
  153. });
  154. $(document).on('click', '#main-chat .sidebar-collapse', function () {
  155. if ($('#main-chat').hasClass('sidebar-closed')) {
  156. $('#main-chat').removeClass('sidebar-closed');
  157. $('#main-chat .search input').attr('placeholder', '');
  158. $('#main-chat .search').css('display', 'block');
  159. deinitialTooltipSiderbarUserList();
  160. } else {
  161. $('#main-chat').addClass('sidebar-closed');
  162. $('#main-chat .search input').attr('placeholder', $('.search input').data('placeholder'));
  163. $('#main-chat .search').css('display', 'none');
  164. $('#main-chat .search').removeAttr('style');
  165. $('#main-chat .searchbar-closed').removeAttr('style');
  166. initialTooltipSiderbarUserList();
  167. }
  168. });
  169. $(document).on('click', '#main-chat .searchbar-closed', function () {
  170. $('#main-chat .sidebar-collapse').click();
  171. setTimeout(function () { $('#main-chat .searchbar input').focus(); }, 50);
  172. return false;
  173. });
  174. $(document).on('click', '#main-chat .chat-single-box .maximize', function () {
  175. /* window.open('inbox.html', 'window name', "width=300,height=400,scrollbars=yes");
  176. $(this).parents('.chat-single-box').remove();
  177. $('.maximize').tooltip('dispose');*/
  178. parent = $(this).parents('.chat-single-box');
  179. $(parent.children()[0].children[0]).removeClass('custom-collapsed');
  180. $(parent.children()[0].children[1]).css('display','block');
  181. $(parent.children()[0].children[2]).css('display','block');
  182. parent.addClass('bg-white');
  183. parent.addClass('card-shadow');
  184. messageScroll();
  185. return false;
  186. });
  187. $(document).on('click', '#main-chat .boxs .minimized .count', function (e) {
  188. e.stopPropagation();
  189. hideStickerBox();
  190. var _parent = $(this).parents('.minimized');
  191. if (_parent.hasClass('show')) {
  192. hideMinimizedBox();
  193. } else {
  194. _parent.addClass('show');
  195. var _bottom = parseInt(_parent.css('height').replace('px', ''),0) + 10;
  196. _parent.find('.chat-dropdown').css({
  197. 'display': 'block',
  198. 'bottom': _bottom
  199. });
  200. }
  201. });
  202. $(document).on('click', '#main-chat .boxs .minimized .chat-dropdown .username', function (e) {
  203. e.stopPropagation();
  204. var selectedDataId = $(this).parent().data('id');
  205. $(this).parent().remove();
  206. boxMinimizedUserAdd();
  207. $('#main-chat .boxs .chat-single-box').each(function (index) {
  208. if ($(this).data('id') == selectedDataId) {
  209. $(this).removeClass('hidden').removeClass('custom-collapsed');
  210. ActiveChatBox($(this));
  211. }
  212. });
  213. });
  214. $(document).on('click', '#main-chat .boxs .minimized .chat-dropdown .remove', function (e) {
  215. e.stopPropagation();
  216. var _parent = $(this).parents('.chat-dropdown li');
  217. dataId = _parent.data('id');
  218. $('#main-chat .chat-single-box').each(function () {
  219. if ($(this).data('id') == dataId) {
  220. $(this).remove();
  221. }
  222. });
  223. _parent.remove();
  224. boxMinimizedCount();
  225. });