dashboard.tpl 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. <div class="module-content">
  2. <div class="module-header">
  3. <div class="header-title">
  4. <h1>{$MGLANG->T('dns_zones')}</h1>
  5. </div>
  6. <div class="inline-block">
  7. {*<div class="header-search">*}
  8. <div class="pull-right">
  9. {*<div class="mg-ca-buttons">*}
  10. <span class="mg-ca-headerbuttons"><button type="button" class="btn btn-primary mg-ca-header-actions" name="setRecordsButton" data-act="setRecords" data-formid="zone-list" style="display:none">{$MGLANG->T('set_dns_records')}</button></span>
  11. {if $manageRecordsSets eq 'on'}<span class="mg-ca-headerbuttons"><a class="btn btn-primary mg-ca-header-actions" name="manageRecordsSets" href="index.php?m=DNSManager2&mg-page=setsdns">{$MGLANG->T('sets_dns')}</a></span>{/if}
  12. {if $manage_rdns eq 'true'}<span class="mg-ca-headerbuttons"><a class="btn btn-primary mg-ca-header-actions" name="manage_rdns" href="index.php?m=DNSManager2&mg-action=manageRDNS">{$MGLANG->T('manage_rdns')}</a></span>{/if}
  13. {if $clientarea_import_export eq 'on'}<span class="mg-ca-headerbuttons"><a class="btn btn-primary mg-ca-header-actions" name="clientareaBackups" href="index.php?m=DNSManager2&mg-action=backups">{$MGLANG->T('clientarea_import_export')}</a></span>{/if}
  14. {*</div>*}
  15. </div>
  16. <div class="pull-right searchTableMG-CA" >
  17. <div class="input-icon">
  18. {*<input class="form-control searchTable searchTableMG-CA" type="text" placeholder="{$MGLANG->T('search')}" data-search="">*}
  19. <input class="form-control searchTable"" type="text" placeholder="{$MGLANG->T('search')}" data-search="">
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. <div class="module-body">
  25. <form class="form-horizontal" id="zone-list">
  26. <div class="section">
  27. <input type="hidden" name="wipe">
  28. <input type="hidden" name="setRecord">
  29. <div class="panel-group" id="zones-list">
  30. {foreach from=$groups key="group_name" item="group" name="groups_loop"}
  31. <div class="panel panel-default">
  32. <div class="panel-heading">
  33. <h4 class="header-title">
  34. <a data-toggle="collapse" data-parent="#products-list" href="#panel-{$smarty.foreach.groups_loop.index}" aria-expanded="true" aria-controls="collapseOne">
  35. <i class="fa fa-angle-down"></i><i class="fa fa-angle-up"></i>
  36. {if !$group->product_id && !$group->product_group_name && !$group->product_name && !$group->domain}{$group->groupKey}{else}
  37. {if $showProductName == "on"}{$group->product_name} {else} {$MGLANG->T('service')} #{$group->product_id}{/if} {if $groups_info[$group->groupKey].zones_count <= 1}- {$group->domain}{/if}
  38. {/if}
  39. </a>
  40. </h4>
  41. <div class="header-actions">
  42. <div class="badge badge-success">{$MGLANG->T('zones')}: <span>{$groups_info[$group->groupKey].zones_count}/{$groups_info[$group->groupKey].zones_available}</span></div>
  43. <button style="margin-left: 10px;" {if $groups_info[$group->groupKey].full}disabled=""{/if} class="btn btn-primary btn-sm" type="button" data-act="addZone" data-query="type={$groups_info[$group->groupKey].type}&relid={$groups_info[$group->groupKey].relid}">{$MGLANG->T('add_new_zone')}</button>
  44. </div>
  45. </div>
  46. <div id="panel-{$smarty.foreach.groups_loop.index}" class="panel-collapse collapse in">
  47. <ul class="panel-list list-info">
  48. {foreach from=$group->group item="zone"}
  49. {if $zone.zone_name neq ''}
  50. <li>
  51. {if $zone.zone_status eq '1' && $manageRecordsSets && $zone.locked eq 0}
  52. <div class="checkbox" name="multiCheckbox" style="width:2%;display:inline-block;margin-bottom:-8px;">
  53. <input class="sel" type="checkbox" name="zone[checked][{$zone.zone_id}]"/>
  54. </div>
  55. {/if}
  56. {if $zone.locked eq 1}<i class="fas fa-lock"></i>{/if}
  57. <a class="mg-ca-zone" href="https://{$zone.zone_name}">{$zone.zone_name}</a>
  58. <div class="list-actions">
  59. {if $zone.server_status eq '1' && $zone.locked eq 0}
  60. {if $zone.zone_status eq '1'}
  61. <a class="btn btn-icon" href="index.php?m=DNSManager2&mg-action=editZone&zone_id={$zone.zone_id}" type="button" {*data-act="editZone" data-query="zone_id={$zone.zone_id}"*} title="{$MGLANG->T('edit_zone')}"><i class="fa fa-edit"></i></a>
  62. {else}
  63. <a class="btn btn-icon" type="button" data-act="createZone" data-query="zone_id={$zone.zone_id}" title="{$MGLANG->T('create_zone')}"><i class="fa fa-plus"></i></a>
  64. {/if}
  65. <button class="btn btn-danger btn-icon" type="button" data-act="removeZone" data-query="zone_id={$zone.zone_id}" data-confirm-body="{$MGLANG->T('remove-zone-confirm')}" title="{$MGLANG->T('delete_zone')}"> <i class="fa fa-trash"></i></button>
  66. {elseif $zone.locked eq 1}
  67. {else}
  68. <span class="label label-warning">{$MGLANG->T('server_no_active')}</span>
  69. {/if}
  70. </div>
  71. </li>
  72. {else}
  73. <li>
  74. {$MGLANG->T('you_have_no_zone_within_this_group')}
  75. </li>
  76. {/if}
  77. {/foreach}
  78. </ul>
  79. </div>
  80. </div>
  81. {foreachelse}
  82. <div class="nozones">{$MGLANG->T('you have no zones available')}</div>
  83. {/foreach}
  84. </div>
  85. </div>
  86. </form>
  87. </div>
  88. </div>
  89. {literal}
  90. <script data-cfasync="false" type="text/javascript">
  91. (function ($) {
  92. $(document).delegate('[data-search]', 'keyup', function () {
  93. var search = $(this).val();
  94. if (!search.length) {
  95. $('#zones-list > .panel').show().css('display', "");
  96. $('#zones-list > .panel ul li').show().css('display', "");
  97. return;
  98. }
  99. $('.panel-collapse.collapse').each(function () {
  100. if (!$(this).hasClass("in")) {
  101. $(this).parent().find('a').first().trigger('click');
  102. }
  103. });
  104. $('#zones-list > .panel ul li').each(function () {
  105. if ($('a:contains("' + search + '")', this).length) {
  106. $(this).show().css('display', "");
  107. $(this).addClass('visible');
  108. } else {
  109. $(this).hide();
  110. $(this).removeClass('visible');
  111. }
  112. });
  113. var anyShow = false;
  114. $('#zones-list > .panel').each(function () {
  115. if ($('ul li.visible', this).length) {
  116. $(this).show().css('display', "");
  117. anyShow = true;
  118. } else {
  119. $(this).hide();
  120. }
  121. });
  122. if(anyShow === false)
  123. {
  124. if(!$('.nozones').length)
  125. {
  126. $('#zones-list').append('<div class="nozones">{/literal}{$MGLANG->T('you have no zones available')}{literal}</div>');
  127. }
  128. }
  129. else
  130. {
  131. $('.nozones').remove();
  132. }
  133. });
  134. $('div[name="multiCheckbox"]').on('ifChanged', function (event) {
  135. var buttonHidden = true;
  136. var checkboxes = $('input[name*="zone[checked]"]');
  137. checkboxes.each(function (key, val) {
  138. if (val.checked == true)
  139. {
  140. buttonHidden = false;
  141. }
  142. });
  143. if (!buttonHidden)
  144. {
  145. jQuery('a[name="manageRecordsSets"]').hide();
  146. jQuery('a[name="manage_rdns"]').hide();
  147. jQuery('button[name="setRecordsButton"]').show();
  148. } else
  149. {
  150. jQuery('button[name="setRecordsButton"]').hide();
  151. jQuery('a[name="manageRecordsSets"]').show();
  152. jQuery('a[name="manage_rdns"]').show();
  153. }
  154. });
  155. jQuery('button[name="setRecordsButton"]').click(function () {
  156. jQuery('input[name="wipe"]').val(false);
  157. });
  158. })(jQuery);
  159. </script>
  160. {/literal}