edit.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. $(document).ready(function() {
  2. $(".arrow-toggle").on('click', function(e) { e.preventDefault(); $(this).find('.arrow').toggleClass("animation"); });
  3. $("#pushover_delete").click(function() { return confirm(lang.delete_ays); });
  4. $(".goto_checkbox").click(function( event ) {
  5. $("form[data-id='editalias'] .goto_checkbox").not(this).prop('checked', false);
  6. if ($("form[data-id='editalias'] .goto_checkbox:checked").length > 0) {
  7. $('#textarea_alias_goto').prop('disabled', true);
  8. }
  9. else {
  10. $("#textarea_alias_goto").removeAttr('disabled');
  11. }
  12. });
  13. $("#disable_sender_check").click(function( event ) {
  14. if ($("form[data-id='editmailbox'] #disable_sender_check:checked").length > 0) {
  15. $('#editSelectSenderACL').prop('disabled', true);
  16. $('#editSelectSenderACL').selectpicker('refresh');
  17. }
  18. else {
  19. $('#editSelectSenderACL').prop('disabled', false);
  20. $('#editSelectSenderACL').selectpicker('refresh');
  21. }
  22. });
  23. if ($("form[data-id='editalias'] .goto_checkbox:checked").length > 0) {
  24. $('#textarea_alias_goto').prop('disabled', true);
  25. }
  26. $("#mailbox-password-warning-close").click(function( event ) {
  27. $('#mailbox-passwd-hidden-info').addClass('hidden');
  28. $('#mailbox-passwd-form-groups').removeClass('hidden');
  29. });
  30. // Preview XMPP JID
  31. $('.xmpp-prefix-preview').text($("#xmpp-prefix").val());
  32. $("#xmpp-prefix").bind("change keypress keyup blur", function() {
  33. $('.xmpp-prefix-preview').text($(this).val());
  34. });
  35. // Sender ACL
  36. if ($("#editSelectSenderACL option[value='\*']:selected").length > 0){
  37. $("#sender_acl_disabled").show();
  38. }
  39. $('#editSelectSenderACL').change(function() {
  40. if ($("#editSelectSenderACL option[value='\*']:selected").length > 0){
  41. $("#sender_acl_disabled").show();
  42. }
  43. else {
  44. $("#sender_acl_disabled").hide();
  45. }
  46. });
  47. // Resources
  48. if ($("#editSelectMultipleBookings").val() == "custom") {
  49. $("#multiple_bookings_custom_div").show();
  50. $('input[name=multiple_bookings]').val($("#multiple_bookings_custom").val());
  51. }
  52. $("#editSelectMultipleBookings").change(function() {
  53. $('input[name=multiple_bookings]').val($("#editSelectMultipleBookings").val());
  54. if ($('input[name=multiple_bookings]').val() == "custom") {
  55. $("#multiple_bookings_custom_div").show();
  56. }
  57. else {
  58. $("#multiple_bookings_custom_div").hide();
  59. }
  60. });
  61. $("#multiple_bookings_custom").bind("change keypress keyup blur", function() {
  62. $('input[name=multiple_bookings]').val($("#multiple_bookings_custom").val());
  63. });
  64. });
  65. jQuery(function($){
  66. // http://stackoverflow.com/questions/46155/validate-email-address-in-javascript
  67. function validateEmail(email) {
  68. var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  69. return re.test(email);
  70. }
  71. function draw_wl_policy_domain_table() {
  72. ft_wl_policy_mailbox_table = FooTable.init('#wl_policy_domain_table', {
  73. "columns": [
  74. {"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px"},"filterable": false,"sortable": false,"type":"html"},
  75. {"name":"prefid","style":{"maxWidth":"40px","width":"40px"},"title":"ID","filterable": false,"sortable": false},
  76. {"sorted": true,"name":"value","title":lang_user.spamfilter_table_rule},
  77. {"name":"object","title":"Scope"}
  78. ],
  79. "empty": lang_user.empty,
  80. "rows": $.ajax({
  81. dataType: 'json',
  82. url: '/api/v1/get/policy_wl_domain/' + table_for_domain,
  83. jsonp: false,
  84. error: function () {
  85. console.log('Cannot draw mailbox policy wl table');
  86. },
  87. success: function (data) {
  88. $.each(data, function (i, item) {
  89. if (!validateEmail(item.object)) {
  90. item.chkbox = '<input type="checkbox" data-id="policy_wl_domain" name="multi_select" value="' + item.prefid + '" />';
  91. }
  92. else {
  93. item.chkbox = '<input type="checkbox" disabled title="' + lang_user.spamfilter_table_domain_policy + '" />';
  94. }
  95. });
  96. }
  97. }),
  98. "paging": {
  99. "enabled": true,
  100. "limit": 5,
  101. "size": pagination_size
  102. },
  103. "sorting": {
  104. "enabled": true
  105. }
  106. });
  107. }
  108. function draw_bl_policy_domain_table() {
  109. ft_bl_policy_mailbox_table = FooTable.init('#bl_policy_domain_table', {
  110. "columns": [
  111. {"name":"chkbox","title":"","style":{"maxWidth":"40px","width":"40px"},"filterable": false,"sortable": false,"type":"html"},
  112. {"name":"prefid","style":{"maxWidth":"40px","width":"40px"},"title":"ID","filterable": false,"sortable": false},
  113. {"sorted": true,"name":"value","title":lang_user.spamfilter_table_rule},
  114. {"name":"object","title":"Scope"}
  115. ],
  116. "empty": lang_user.empty,
  117. "rows": $.ajax({
  118. dataType: 'json',
  119. url: '/api/v1/get/policy_bl_domain/' + table_for_domain,
  120. jsonp: false,
  121. error: function () {
  122. console.log('Cannot draw mailbox policy bl table');
  123. },
  124. success: function (data) {
  125. $.each(data, function (i, item) {
  126. if (!validateEmail(item.object)) {
  127. item.chkbox = '<input type="checkbox" data-id="policy_bl_domain" name="multi_select" value="' + item.prefid + '" />';
  128. }
  129. else {
  130. item.chkbox = '<input type="checkbox" disabled tooltip="' + lang_user.spamfilter_table_domain_policy + '" />';
  131. }
  132. });
  133. }
  134. }),
  135. "paging": {
  136. "enabled": true,
  137. "limit": 5,
  138. "size": pagination_size
  139. },
  140. "sorting": {
  141. "enabled": true
  142. }
  143. });
  144. }
  145. draw_wl_policy_domain_table();
  146. draw_bl_policy_domain_table();
  147. });