edit.js 5.1 KB

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