setsdns.tpl 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <div class="module-main-header">
  2. <a href="index.php?m=DNSManager2" class="btn btn-back btn-icon" style="height: inherit;"><i class="fa fa-arrow-left"></i></a><h2>{$MGLANG->T('dnsSetsTitle')}</h2>
  3. </div>
  4. <div class="module-content">
  5. <table class="table table-hover table-striped" id="setstable">
  6. <thead class="setsableTh">
  7. <tr>
  8. <th>{$MGLANG->T('table','name')}</th>
  9. <th>{$MGLANG->T('table','dns_records')}</th>
  10. <th></th>
  11. </tr>
  12. </thead>
  13. <tbody>
  14. </tbody>
  15. </table>
  16. </div>
  17. {literal}
  18. <script data-cfasync="false" type="text/javascript">
  19. function refreshTable() {
  20. jQuery('#setstable').DataTable().ajax.reload();
  21. }
  22. function setSaveCallback(data, $obj) {refreshTable();}
  23. function setDuplicateCallback(data, $obj) {refreshTable();}
  24. function removeSetCallback(data, $obj) {refreshTable();}
  25. function addNewRecordCallback(data, $obj) {
  26. if(!data.new_record) return false;
  27. $obj.parents('form').find('tr.nobody-is-here').hide();
  28. $obj.parents('form').first().find('.set-records table tbody').append(data.new_record);
  29. var $input = $obj.parents('.add-me-right-here').first().find('[name=records_counter]');
  30. $input.val(parseInt($input.val()) + 1);
  31. }
  32. function removeRecord($obj) {
  33. $('.mg-wrapper [title]').bstooltip('hide');
  34. var $tbody = $obj.parents('tbody');
  35. $obj.parents('tr').first().remove();
  36. if(!Boolean($tbody.find('tr:not(.nobody-is-here)').length)) {
  37. $tbody.find('tr.nobody-is-here').show();
  38. }
  39. return false;
  40. }
  41. jQuery('.breadcrumb li.active').text({/literal}'{$MGLANG->T('setsdns')}'{literal});
  42. </script>
  43. {/literal}
  44. {literal}
  45. <script data-cfasync="false" type="text/javascript">
  46. function dnsLoadButon(){
  47. if(!document.getElementById('addSetButton')){
  48. jQuery('#setstable_filter').children().last().after('<a class="btn btn-primary" id="addSetButton" style="" data-act="addSet">{/literal}{$MGLANG->T('add_set')}{literal}</a>');
  49. $($('#setstable_filter').find('input')).attr("placeholder","{/literal}{$MGLANG->T('search')}{literal}");
  50. }
  51. }
  52. function dnsLoadHeader(){
  53. if(!document.getElementById('pageheader')){
  54. jQuery('#setstable_filter').parent().append('<div id="pageheader" class=""><div class="myheader-title"><h1>{/literal}{$MGLANG->T('setsdns')}{literal}</h1></div>');
  55. }
  56. }
  57. jQuery(document).ready(function(){
  58. var last;
  59. jQuery('#table-filters').change(function() {
  60. jQuery('#setstable').DataTable().ajax.reload();
  61. });
  62. jQuery('#setstable').dataTable({
  63. serverSide: true,
  64. searchDelay: 800,
  65. autoWidth: false,
  66. ajax: function(data, callback, settings){
  67. if(last != data.length) {
  68. data.start = 0;
  69. }
  70. last = data.length;
  71. var filters = [];
  72. JSONParser.request(
  73. 'list'
  74. , $.merge(filters, [
  75. {name: 'order[column]', value: data.columns[data.order[0].column].name},
  76. {name: 'order[dir]', value: data.order[0].dir},
  77. {name: 'limit', value: data.length},
  78. {name: 'offset', value: data.start},
  79. {name: 'search', value: data.search.value},
  80. ])
  81. , function(data) {
  82. callback(data);
  83. jQuery('.mg-wrapper [title]').bstooltip();
  84. dnsLoadHeader();
  85. dnsLoadButon();
  86. }
  87. );
  88. },
  89. columns: [
  90. {name: 'name'}
  91. ,{name: 'dnsrecords'}
  92. ,{ orderable: false, targets: 0}
  93. ],
  94. pagingType: "simple_numbers",
  95. aLengthMenu: [
  96. [5, 10, 25, 50, 75, 100],
  97. [5, 10, 25, 50, 75, 100]
  98. ],
  99. iDisplayLength: 10,
  100. // "dom": '<"top"i>rt<"bottom"flp><"clear">',
  101. dom: '<"top"f>rt<"bottom"pl><"clear">',
  102. // sDom: '<"icon-search"r>',
  103. "oLanguage": {
  104. "oPaginate" : {
  105. "sNext": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sNext')}{literal}",
  106. "sFirst": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sFirst')}{literal}",
  107. "sLast ": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sLast')}{literal}",
  108. "sPrevious": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sPrevious')}{literal}",
  109. },
  110. "sEmptyTable": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sEmptyTable')}{literal}",
  111. "sPrevious": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sPrevious')}{literal}",
  112. "sNext": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sNext')}{literal}",
  113. "sZeroRecords": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sZeroRecords')}{literal}",
  114. "sInfoEmpty": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sInfoEmpty')}{literal}",
  115. "sSearch": "",
  116. "sLengthMenu": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sLengthMenu')}{literal}",
  117. "sInfoFiltered": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sInfoFiltered')}{literal}",
  118. "sInfo": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sInfo')}{literal}",
  119. }
  120. });
  121. });
  122. </script>
  123. {/literal}