edit.js 5.4 KB

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