app-email.js 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. // Notifications & messages scrollable
  2. $(function () {
  3. "use strict";
  4. var Font = Quill.import('formats/font');
  5. Font.whitelist = ['sofia', 'slabo', 'roboto', 'inconsolata', 'ubuntu'];
  6. Quill.register(Font, true);
  7. // if it is not touch device
  8. if (!$.app.menu.is_touch_device()) {
  9. // Email left Sidebar
  10. if ($('.sidebar-menu-list').length > 0) {
  11. var sidebar_menu_list = new PerfectScrollbar(".sidebar-menu-list");
  12. }
  13. // User list scroll
  14. if ($('.email-user-list').length > 0) {
  15. var users_list = new PerfectScrollbar(".email-user-list");
  16. }
  17. // Email detail section
  18. if ($('.email-scroll-area').length > 0) {
  19. var users_list = new PerfectScrollbar(".email-scroll-area");
  20. }
  21. // Modal dialog scroll
  22. if ($('.modal-dialog-scrollable .modal-body').length > 0) {
  23. var sidebar_menu_list = new PerfectScrollbar(".modal-dialog-scrollable .modal-body");
  24. }
  25. }
  26. // if it is a touch device
  27. else {
  28. $(".sidebar-menu-list").css("overflow", "scroll");
  29. $(".email-user-list").css("overflow", "scroll");
  30. $(".email-scroll-area").css("overflow", "scroll");
  31. $(".modal-dialog-scrollable .modal-body").css("overflow", "scroll");
  32. }
  33. // Compose Modal - Reset Input Value on Click compose btn
  34. $('.compose-btn .btn').on('click', function (e) {
  35. // all input forms
  36. $(".modal .modal-body input").val("");
  37. // quill editor content
  38. var quill_editor = $(".modal .modal-body .ql-editor");
  39. quill_editor[0].innerHTML = "";
  40. // file input content
  41. var file_input = $(".modal .modal-body .custom-file .custom-file-label");
  42. file_input[0].innerHTML = "";
  43. });
  44. // Main menu toggle should hide app menu
  45. $('.menu-toggle').on('click', function (e) {
  46. $('.app-content .sidebar-left').removeClass('show');
  47. $('.app-content .app-content-overlay').removeClass('show');
  48. });
  49. // On sidebar close click
  50. $(".email-application .sidebar-close-icon").on('click', function () {
  51. $('.sidebar-left').removeClass('show');
  52. $('.app-content-overlay').removeClass('show');
  53. });
  54. // Email sidebar toggle
  55. $('.sidebar-toggle').on('click', function (e) {
  56. e.stopPropagation();
  57. $('.app-content .sidebar-left').toggleClass('show');
  58. $('.app-content .app-content-overlay').addClass('show');
  59. });
  60. $('.app-content .app-content-overlay').on('click', function (e) {
  61. $('.app-content .sidebar-left').removeClass('show');
  62. $('.app-content .app-content-overlay').removeClass('show');
  63. });
  64. // Email Right sidebar toggle
  65. $('.email-app-list .email-user-list li').on('click', function (e) {
  66. $('.app-content .email-app-details').toggleClass('show');
  67. });
  68. // Add class active on click of sidebar list
  69. $(".email-application .list-group-messages a").on('click', function () {
  70. if ($('.email-application .list-group-messages a').hasClass('active')) {
  71. $('.email-application .list-group-messages a').removeClass('active');
  72. }
  73. $(this).addClass("active");
  74. });
  75. // Email detail view back button click
  76. $('.go-back').on('click', function (e) {
  77. e.stopPropagation();
  78. $('.app-content .email-app-details').removeClass('show');
  79. });
  80. // For app sidebar on small screen
  81. if ($(window).width() > 768) {
  82. if ($('.app-content .app-content-overlay').hasClass('show')) {
  83. $('.app-content .app-content-overlay').removeClass('show');
  84. }
  85. }
  86. // Favorite star click
  87. $(".email-application .favorite i").on("click", function (e) {
  88. $(this).parent('.favorite').toggleClass("warning");
  89. e.stopPropagation();
  90. });
  91. // On checkbox click stop propogation
  92. $(".email-user-list .vs-checkbox-con input").on("click", function (e) {
  93. e.stopPropagation();
  94. });
  95. // Select all checkbox
  96. $(document).on("click", ".email-app-list .selectAll input", function () {
  97. $(".user-action .vs-checkbox-con input").prop('checked', this.checked);
  98. });
  99. // Delete Mail from list
  100. $(".email-application .mail-delete").on("click", function () {
  101. $(".email-application .user-action .vs-checkbox-con input:checked").closest("li").remove();
  102. $(".email-application .selectAll input").prop('checked', "");
  103. });
  104. // Mark mail unread
  105. $(".email-application .mail-unread").on("click", function () {
  106. $(".email-application .user-action .vs-checkbox-con input:checked").closest("li").removeClass("mail-read");
  107. });
  108. // Filter
  109. $(".email-app-list #email-search").on("keyup", function () {
  110. var value = $(this).val().toLowerCase();
  111. if (value != "") {
  112. $(".email-user-list .users-list-wrapper li").filter(function () {
  113. $(this).toggle($(this).text().toLowerCase().indexOf(value) > -1);
  114. });
  115. var tbl_row = $(".email-user-list .users-list-wrapper li:visible").length; //here tbl_test is table name
  116. //Check if table has row or not
  117. if (tbl_row == 0) {
  118. $('.email-user-list .no-results').addClass('show');
  119. }
  120. else {
  121. if ($('.email-user-list .no-results').hasClass('show')) {
  122. $('.email-user-list .no-results').removeClass('show');
  123. }
  124. }
  125. }
  126. else {
  127. // If filter box is empty
  128. $(".email-user-list .users-list-wrapper li").show();
  129. if ($('.email-user-list .no-results').hasClass('show')) {
  130. $('.email-user-list .no-results').removeClass('show');
  131. }
  132. }
  133. });
  134. // Email compose Editor
  135. var emailEditor = new Quill('#email-container .editor', {
  136. bounds: '#email-container .editor',
  137. modules: {
  138. 'formula': true,
  139. 'syntax': true,
  140. 'toolbar': [
  141. ['bold', 'italic', 'underline', 'strike', 'link', 'blockquote', 'code-block',
  142. {
  143. 'header': '1'
  144. }, {
  145. 'header': '2'
  146. }, {
  147. 'list': 'ordered'
  148. }, {
  149. 'list': 'bullet'
  150. }],
  151. [{
  152. 'font': []
  153. }]
  154. ],
  155. },
  156. placeholder: 'Message',
  157. theme: 'snow'
  158. });
  159. var editors = [emailEditor];
  160. });
  161. $(window).on("resize", function () {
  162. // remove show classes from sidebar and overlay if size is > 992
  163. if ($(window).width() > 768) {
  164. if ($('.app-content .app-content-overlay').hasClass('show')) {
  165. $('.app-content .sidebar-left').removeClass('show');
  166. $('.app-content .app-content-overlay').removeClass('show');
  167. }
  168. }
  169. });