sets.tpl 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <ul class="breadcrumb">
  2. <li><a href="addonmodules.php?module=DNSManager2"><i class="fa fa-home"></i></a></li>
  3. <li class="active">{$MGLANG->absoluteT('addonAA', 'pagesLabels', 'settings', 'sets')}</li>
  4. </ul>
  5. <table class="table table-hover table-striped" id="setstable">
  6. <thead>
  7. <tr>
  8. <th>{$MGLANG->T('table','name')}</th>
  9. <th>{$MGLANG->T('table','user')}</th>
  10. <th>{$MGLANG->T('table','dns_records')}</th>
  11. <th></th>
  12. </tr>
  13. </thead>
  14. <tbody>
  15. </tbody>
  16. </table>
  17. <div class="well">
  18. <a class="btn btn-success btn-inverse" data-act="addSet">{$MGLANG->T('add_set')}</a>
  19. </div>
  20. {literal}
  21. <script data-cfasync="false" type="text/javascript">
  22. function refreshTable() {
  23. jQuery('#setstable').DataTable().ajax.reload();
  24. }
  25. function setSaveCallback(data, $obj) {refreshTable();}
  26. function setDuplicateCallback(data, $obj) {refreshTable();}
  27. function removeSetCallback(data, $obj) {refreshTable();}
  28. function addNewRecordCallback(data, $obj) {
  29. if(!data.new_record) return false;
  30. $obj.parents('form').find('tr.nobody-is-here').hide();
  31. $obj.parents('form').first().find('.set-records table tbody').append(data.new_record);
  32. var $input = $obj.parents('.add-me-right-here').first().find('[name=records_counter]');
  33. $input.val(parseInt($input.val()) + 1);
  34. }
  35. function removeRecord($obj) {
  36. $('.mg-wrapper [title]').bstooltip('hide');
  37. var $tbody = $obj.parents('tbody');
  38. $obj.parents('tr').first().remove();
  39. if(!Boolean($tbody.find('tr:not(.nobody-is-here)').length)) {
  40. $tbody.find('tr.nobody-is-here').show();
  41. }
  42. return false;
  43. }
  44. </script>
  45. {/literal}
  46. {literal}
  47. <script data-cfasync="false" type="text/javascript">
  48. jQuery(document).ready(function(){
  49. var last;
  50. jQuery('#table-filters').change(function() {
  51. jQuery('#setstable').DataTable().ajax.reload();
  52. });
  53. jQuery('#setstable').dataTable({
  54. drawCallback: replaceEmptyRowDataTable,
  55. serverSide: true,
  56. //searching: true,
  57. searchDelay: 800,
  58. autoWidth: false,
  59. ajax: function(data, callback, settings){
  60. if(last != data.length) {
  61. data.start = 0;
  62. }
  63. last = data.length;
  64. var filters = [];//$('#table-filters :input').serializeArray();
  65. JSONParser.request(
  66. 'refreshSetsTable'
  67. , $.merge(filters, [
  68. {name: 'order[column]', value: data.columns[data.order[0].column].name},
  69. {name: 'order[dir]', value: data.order[0].dir},
  70. {name: 'limit', value: data.length},
  71. {name: 'offset', value: data.start},
  72. {name: 'search', value: data.search.value},
  73. ])
  74. , function(data) {
  75. callback(data);
  76. jQuery('.mg-wrapper [title]').bstooltip();
  77. }
  78. );
  79. },
  80. columns: [
  81. {name: 'name'},
  82. {name: 'idu'},
  83. {name: 'dnsrecords'},
  84. { orderable: false, targets: 0}
  85. ],
  86. pagingType: "simple_numbers",
  87. aLengthMenu: [
  88. [5, 10, 25, 50, 75, 100],
  89. [5, 10, 25, 50, 75, 100]
  90. ],
  91. iDisplayLength: 10,
  92. //sDom: 't<"table-bottom"<"row"<"col-sm-6"p><"col-sm-6"L>>>',
  93. "oLanguage": {
  94. "oPaginate" : {
  95. "sNext": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sNext')}{literal}",
  96. "sFirst": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sFirst')}{literal}",
  97. "sLast ": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sLast')}{literal}",
  98. "sPrevious": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sPrevious')}{literal}",
  99. },
  100. "sEmptyTable": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sEmptyTable')}{literal}",
  101. "sPrevious": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sPrevious')}{literal}",
  102. "sNext": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sNext')}{literal}",
  103. "sZeroRecords": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sZeroRecords')}{literal}",
  104. "sInfoEmpty": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sInfoEmpty')}{literal}",
  105. "sSearch": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sSearch')}{literal}",
  106. "sLengthMenu": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sLengthMenu')}{literal}",
  107. "sInfoFiltered": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sInfoFiltered')}{literal}",
  108. "sInfo": "{/literal}{$MGLANG->absoluteT('addonAA','datatables','sInfo')}{literal}",
  109. }
  110. });
  111. });
  112. </script>
  113. {/literal}