Преглед изворни кода

[WebUI] Add list ipset page

Robert Zollner пре 5 година
родитељ
комит
71290eef43
2 измењених фајлова са 143 додато и 0 уклоњено
  1. 23 0
      web/list/firewall/ipset/index.php
  2. 120 0
      web/templates/admin/list_firewall_ipset.html

+ 23 - 0
web/list/firewall/ipset/index.php

@@ -0,0 +1,23 @@
+<?php
+error_reporting(NULL);
+$TAB = 'FIREWALL';
+
+// Main include
+include($_SERVER['DOCUMENT_ROOT']."/inc/main.php");
+
+// Check user
+if ($_SESSION['user'] != 'admin') {
+    header("Location: /list/user");
+    exit;
+}
+
+// Data
+exec (HESTIA_CMD."v-list-firewall-ipset json", $output, $return_var);
+$data = json_decode(implode('', $output), true);
+ksort($data);
+
+// Render page
+render_page($user, $TAB, 'list_firewall_ipset');
+
+// Back uri
+$_SESSION['back'] = $_SERVER['REQUEST_URI'];

+ 120 - 0
web/templates/admin/list_firewall_ipset.html

@@ -0,0 +1,120 @@
+    <div class="l-center">
+      <div class="l-sort clearfix noselect">
+        <div class="l-unit-toolbar__buttonstrip">
+          <a class="ui-button cancel" id="btn-back" href="/list/firewall/"><i class="fas fa-arrow-left status-icon blue"></i> <?=__('Back')?></a>
+          <a href="/add/firewall/ipset/" id="btn-create" class="ui-button cancel" title="<?=__('Add Ipset List')?>"><i class="fas fa-plus-circle status-icon green"></i> <?=__('Add Ipset List')?></a>
+        </div>
+        <div class="l-sort-toolbar clearfix">
+          <table>
+            <tr>
+              <td>
+                <form action="/bulk/firewall/ipset/" method="post" id="objects">
+                <input type="hidden" name="token" value="<?=$_SESSION['token']?>" />
+                <div class="l-select">
+                  <select name="action" id="">
+                    <option value=""><?=__('apply to selected')?></option>
+                    <option value="delete"><?php print __('delete') ?></option>
+                  </select>
+                </div>
+                <button type="submit" class="l-sort-toolbar__filter-apply" value=""><i class="fas fa-arrow-right"></i></button>
+              </td>
+            </tr>
+          </table>
+        </div>
+      </div>
+    </div>
+
+    <div class="l-separator"></div>
+  
+    <div class="l-center units animated fadeIn">
+          <div class="header table-header">
+              <div class="l-unit__col l-unit__col--right">
+                    <div class="clearfix l-unit__stat-col--left super-compact">
+                        <input id="toggle-all" type="checkbox" name="toggle-all" value="toggle-all" onChange="checkedAll('objects');">
+                    </div>
+                    <div class="clearfix l-unit__stat-col--left wide-3"><b><?php print __('Ipset Name');?></b></div>
+                    <div class="clearfix l-unit__stat-col--left compact-4"><b>&nbsp;</b></div>  
+                    <div class="clearfix l-unit__stat-col--left text-center compact-5"><b><?php print __('Autoupdate');?></b></div>
+                    <div class="clearfix l-unit__stat-col--left text-center compact-4"><b><?php print __('Ip Ver');?></b></div>
+                    <div class="clearfix l-unit__stat-col--left text-center compact-4"><b><?php print __('Date');?></b></div>
+                    <div class="clearfix l-unit__stat-col--left text-center compact-4"><b><?php print __('Time');?></b></div>
+               </div>
+            </div>
+
+      <?php
+        foreach ($data as $key => $value) {
+          ++$i;
+
+          if ($data[$key]['SUSPENDED'] == 'yes') {
+            $status = 'suspended';
+          } else {
+            $status = 'active';
+          }
+
+          list($listname, $chain) = explode(":", $key);
+      ?>
+
+      <div class="l-unit<? if($status == 'suspended') echo ' l-unit--suspended';?>">
+        <div class="l-unit__col l-unit__col--right">
+              <div class="clearfix l-unit__stat-col--left super-compact">
+                  <input id="check<?php echo $i ?>" class="ch-toggle" type="checkbox" name="setname[]" value="<?php echo $listname ?>">
+                </div>
+              <div class="clearfix l-unit__stat-col--left wide-3"><b><?=$listname?></b></div>
+              <!-- START QUICK ACTION TOOLBAR AREA -->
+              <div class="clearfix l-unit__stat-col--left compact-4">
+                <div class="l-unit-toolbar__col l-unit-toolbar__col--right noselect">
+                    <div class="actions-panel clearfix">
+
+                      <div class="actions-panel__col actions-panel__delete shortcut-delete" key-action="js">
+                        <a id="delete_link_<?=$i?>" class="data-controls do_delete">
+                          <i class="fas fa-trash status-icon red status-icon dim do_delete"></i>
+                          <input type="hidden" name="delete_url" value="/delete/firewall/ipset/?listname=<?=$listname?>&token=<?=$_SESSION['token']?>" />
+                          <div id="delete_dialog_<?=$i?>" class="confirmation-text-delete hidden" title="<?=__('Confirmation')?>">
+                            <p class="confirmation"><?=__('DELETE_IPSET_CONFIRMATION', $key)?></p>
+                          </div>
+                        </a>
+                      </div>
+                    </div>
+                  </div>
+                </div>
+                <!-- END QUICK ACTION TOOLBAR AREA -->
+                <div class="clearfix l-unit__stat-col--left text-center compact-5"><b>
+                    <? if($data[$key]['AUTOUPDATE'] == 'no'){ ?>
+                        <i class="fas fa-times-circle status-icon red"></i>
+                    <? } else {?>
+                        <i class="fas fa-check-circle status-icon green"></i>
+                    <? } ?>
+                    </b>
+                </div>
+                <div class="clearfix l-unit__stat-col--left text-center compact-4"><?=__($data[$key]['IP_VERSION'])?></div>
+                <div class="clearfix l-unit__stat-col--left text-center compact-4"><?=__($data[$key]['DATE'])?></div>
+                <div class="clearfix l-unit__stat-col--left text-center compact-4"><?=$data[$key]['TIME']?></div>
+            </div>
+      </div>
+      <?}?>
+    </div>
+
+    <div id="vstobjects">
+        <div class="l-separator"></div>
+    <div class="l-center">
+        <div class="l-unit-ft">
+          <table class='data'></table>
+          <div class="data-count l-unit__col l-unit__col--right clearfix">
+            <?php
+              if ( $i == 0) {
+                echo __('There are currently no Ipset lists defined.');
+              }
+              if ( $i == 1) {
+                echo __('1 Ipset list');
+              }
+              if ( $i > 1) {
+                echo __('%s Ipser lists',$i);
+              }
+            ?>
+          </div>
+          <div class="data-count l-unit__col l-unit__col--right back clearfix">
+           
+          </div>
+      </div>
+    </div>
+  </div>