mirror of https://github.com/Aidaho12/haproxy-wi
v3.4.9
parent
9d7a84929f
commit
b252f8fa3b
|
@ -54,7 +54,10 @@ def ban():
|
|||
c["ban"] = 1
|
||||
c["ban"]["path"] = "/app/"
|
||||
c["ban"]["expires"] = expires.strftime("%a, %d %b %Y %H:%M:%S GMT")
|
||||
funct.logging('locahost', login+' Failed log in', haproxywi=1, login=1)
|
||||
try:
|
||||
funct.logging('locahost', login+' Failed log in', haproxywi=1, login=1)
|
||||
except:
|
||||
funct.logging('locahost', ' Failed log in', haproxywi=1)
|
||||
print(c)
|
||||
print("Content-type: text/html\n")
|
||||
print('ban')
|
||||
|
|
|
@ -41,6 +41,7 @@ template = template.render(h2 = 1,
|
|||
user = user,
|
||||
users = users,
|
||||
groups = groups,
|
||||
roles = sql.select_roles(),
|
||||
metrics_master = ''.join(metrics_master),
|
||||
metrics_worker = ''.join(metrics_worker),
|
||||
checker_master = ''.join(checker_master),
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<li><a href="#users">Users</a></li>
|
||||
<li><a href="#groups">Groups</a></li>
|
||||
<li><a href="#servers">Servers</a></li>
|
||||
<li><a href="#roles">Roles</a></li>
|
||||
<!-- <li><a href="#roles">Roles</a></li> -->
|
||||
<li><a href="#ssh">SSH credentials</a></li>
|
||||
<li><a href="#checker">Checker</a></li>
|
||||
{% if user %}
|
||||
|
@ -273,21 +273,21 @@
|
|||
<br /><span class="add-button" title="Add server" id="add-server-button">+ Add</span>
|
||||
<br /><br />
|
||||
</div>
|
||||
<div id="roles">
|
||||
<table class="overview" id="ajax-group">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Name</td>
|
||||
<td>Desciption</td>
|
||||
</tr>
|
||||
<tr>
|
||||
{% for role in roles %}
|
||||
<tr id="group-{{role.0}}" class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn">{{role.1}}</td>
|
||||
<td>{{role.2}}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
<!-- <div id="roles"> -->
|
||||
<!-- <table class="overview" id="ajax-group"> -->
|
||||
<!-- <tr class="overviewHead"> -->
|
||||
<!-- <td class="padding10 first-collumn">Name</td> -->
|
||||
<!-- <td>Desciption</td> -->
|
||||
<!-- </tr> -->
|
||||
<!-- <tr> -->
|
||||
<!-- {% for role in roles %} -->
|
||||
<!-- <tr id="group-{{role.0}}" class="{{ loop.cycle('odd', 'even') }}"> -->
|
||||
<!-- <td class="padding10 first-collumn">{{role.1}}</td> -->
|
||||
<!-- <td>{{role.2}}</td> -->
|
||||
<!-- </tr> -->
|
||||
<!-- {% endfor %} -->
|
||||
<!-- </table> -->
|
||||
<!-- </div> -->
|
||||
|
||||
<div id="ssh">
|
||||
<table id="ssh_enable_table" class="overview">
|
||||
|
|
|
@ -94,6 +94,9 @@
|
|||
<input type="text" id="desc-{{server.0}}" value="" size="30" class="form-control">
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<a class="add" onclick="cloneServer({{server.0}})" id="clone-{{server.0}}" title="Clone {{server.1}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="removeServer({{server.0}})" title="Delete server {{server.1}}" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{% if service.3 == "On" or service.3 == "Off" or service.3 == "DetectionOnly" or url == "waf.py" %}
|
||||
{% do waf_servers.append(1) %}
|
||||
<tr class="{{ loop.cycle('odd', 'even') }}" id="{{service.0}}-select-line">
|
||||
<td class="padding10 first-collumn">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{% if service.2|int() >= 1 %}
|
||||
<span class="serverUp" title="running {{service.2 }} processes"> UP</span>
|
||||
{% else %}
|
||||
|
@ -11,9 +11,9 @@
|
|||
{% endif %}
|
||||
<a href="#{{ service.0 }}" title="Go to {{ service.0 }} status" style="color: #000">{{ service.0 }}</a>
|
||||
</td>
|
||||
<td class="second-collumn">
|
||||
<!-- <td class="second-collumn"> -->
|
||||
|
||||
</td>
|
||||
<!-- </td> -->
|
||||
<td>
|
||||
{% if role <= 1 %}
|
||||
<a id="{{ service.1 }}" class="start-waf" title="Start WAF service">
|
||||
|
@ -67,7 +67,7 @@
|
|||
{% endfor %}
|
||||
{% if waf_servers|count == 0 and url != "waf.py" %}
|
||||
<tr>
|
||||
<td class="padding10 first-collumn">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
You have not installed the WAF server yet
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -21,9 +21,9 @@
|
|||
|
||||
</a>
|
||||
</td>
|
||||
<td class="second-collumn">
|
||||
<!-- <td class="second-collumn"> -->
|
||||
|
||||
</td>
|
||||
<!-- </td> -->
|
||||
<td>
|
||||
{% if role <= 1 %}
|
||||
<a id="{{ service.1 }}" class="start" title="Start HAProxy service">
|
||||
|
@ -37,7 +37,7 @@
|
|||
</a>
|
||||
{% endif %}
|
||||
{% if role <= 2 %}
|
||||
<a href="/app/config.py?serv={{ service.1 }}" target="_blank" title="Working with HAProxy configs">
|
||||
<a href="/app/config.py?serv={{ service.1 }}&open=open" target="_blank" title="Working with HAProxy configs">
|
||||
<img src="/inc/images/edit.png" alt="edit" class="icon" width="15px">
|
||||
</a>
|
||||
{% endif %}
|
||||
|
@ -45,7 +45,7 @@
|
|||
<img src="/inc/images/show.png" alt="show" class="icon" width="20px" style="margin-bottom: -3px;">
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<td class="third-collumn-wi">
|
||||
{% if "ls: cannot access" in service.3 %}
|
||||
Cannot find HAProxy config
|
||||
{% else %}
|
||||
|
|
|
@ -1,53 +0,0 @@
|
|||
{% for server in servers %}
|
||||
<tr id="server-{{server.0}}">
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" id="hostname-{{server.0}}" value="{{server.1}}" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="ip-{{server.0}}" value="{{server.2}}" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<select id="servergroup-{{server.0}}" name="servergroup-{{server.0}}">
|
||||
<option disabled selected>Choose group</option>
|
||||
{% for group in groups %}
|
||||
{% if server.3 == group.0|string() %}
|
||||
<option value="{{ group.0 }}" selected>{{ group.1 }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
{% if server.5 == 1 %}
|
||||
<label for="enable-{{server.0}}"></label><input type="checkbox" id="enable-{{server.0}}" checked>
|
||||
{% else %}
|
||||
<label for="enable-{{server.0}}"></label><input type="checkbox" id="enable-{{server.0}}">
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if server.4 == 1 %}
|
||||
<label for="typeip-{{server.0}}"></label><input type="checkbox" id="typeip-{{server.0}}" checked>
|
||||
{% else %}
|
||||
<label for="typeip-{{server.0}}"></label><input type="checkbox" id="typeip-{{server.0}}">
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<select id="slavefor-{{server.0}}">
|
||||
<option value="0" selected>Not slave</option>
|
||||
{% for master in masters %}
|
||||
{% if master.0 == server.6 %}
|
||||
<option value="{{master.0}}" selected>{{master.1}}</option>
|
||||
{% else %}
|
||||
<option value="{{master.0}}">{{master.1}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="removeServer({{server.0}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
<script defer src="/inc/fontawesome.min.js"></script>
|
||||
<script src="/inc/script.js"></script>
|
|
@ -1,51 +0,0 @@
|
|||
{% for server in servers %}
|
||||
<tr id="server-{{server.0}}">
|
||||
<td class="padding10 first-collumn">
|
||||
<input type="text" id="hostname-{{server.0}}" value="{{server.1}}" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<input type="text" id="ip-{{server.0}}" value="{{server.2}}" class="form-control">
|
||||
</td>
|
||||
<td>
|
||||
<select id="servergroup-{{server.0}}" name="servergroup-{{server.0}}">
|
||||
<option disabled selected>Choose group</option>
|
||||
{% for group in groups %}
|
||||
{% if server.3 == group.0|string() %}
|
||||
<option value="{{ group.0 }}" selected>{{ group.1 }}</option>
|
||||
{% else %}
|
||||
<option value="{{ group.0 }}">{{ group.1 }}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
{% if server.5 == 1 %}
|
||||
<label for="enable-{{server.0}}"></label><input type="checkbox" id="enable-{{server.0}}" checked>
|
||||
{% else %}
|
||||
<label for="enable-{{server.0}}"></label><input type="checkbox" id="enable-{{server.0}}">
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if server.4 == 1 %}
|
||||
<label for="typeip-{{server.0}}"></label><input type="checkbox" id="typeip-{{server.0}}" checked>
|
||||
{% else %}
|
||||
<label for="typeip-{{server.0}}"></label><input type="checkbox" id="typeip-{{server.0}}">
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
<select id="slavefor-{{server.0}}">
|
||||
<option value="0" selected>Not slave</option>
|
||||
{% for master in masters %}
|
||||
{% if master.0 == server.6 %}
|
||||
<option value="{{master.0}}" selected>{{master.1}}</option>
|
||||
{% else %}
|
||||
<option value="{{master.0}}">{{master.1}}</option>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</select>
|
||||
</td>
|
||||
<td>
|
||||
<a class="delete" onclick="removeServer({{server.0}})" style="cursor: pointer;"></a>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
|
@ -81,7 +81,7 @@
|
|||
<li><a href=/app/users.py#users title="Actions with users" class="users head-submenu">Users</a></li>
|
||||
<li><a href=/app/users.py#groups title="Actions with groups" class="group head-submenu">Groups</a></li>
|
||||
<li><a href=/app/users.py#servers title="Actions with servers" class="runtime head-submenu">Servers</a></li>
|
||||
<li><a href=/app/users.py#roles title="Users roles" class="role head-submenu">Roles</a></li>
|
||||
<!-- <li><a href=/app/users.py#roles title="Users roles" class="role head-submenu">Roles</a></li> -->
|
||||
<li><a href=/app/users.py#ssh title="Manage SSH credentials" class="admin head-submenu">SSH credentials</a></li>
|
||||
<li><a href=/app/settings.py title="HAproxy-WI settings" class="settings head-submenu">Settings</a></li>
|
||||
<li><a href=/app/viewlogs.py title="View internal logs" class="logs head-submenu">Internal logs</a></li>
|
||||
|
|
|
@ -3,122 +3,15 @@
|
|||
<script>
|
||||
$("#secIntervals").css("display", "none");
|
||||
</script>
|
||||
{% if role <= 1 %}
|
||||
<table class="overview">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">Login</td>
|
||||
<td class="padding10 second-collumn"><!--Email--></td>
|
||||
<td class="second-collumn">Group</td>
|
||||
<td>Role</td>
|
||||
<td class="padding10">
|
||||
<span class="add-button">
|
||||
<a title="Show all users" id="show-all-users" style="color: #fff">
|
||||
Show all
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% set counter = 0 -%}
|
||||
{% for USER in users %}
|
||||
{% set counter = counter + loop.index0 %}
|
||||
{% if counter <= 2 %}
|
||||
<tr class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn">
|
||||
<a href="users.py#users" title="Edit user" style="color: #000;">
|
||||
{{ USER.1 }}
|
||||
<img src="/inc/images/edit.png" alt="Edit" width="15" style="margin-bottom: -3px;" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="padding10 second-collumn"> <!--{{ USER.2 }}--></td>
|
||||
{% for group in groups %}
|
||||
{% if USER.5 == group.0|string() %}
|
||||
<td class="third-collumn">{{ group.1 }}</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<td>{{ USER.4 }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr style="display: none;" class="show-users {{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn">
|
||||
<a href="users.py#users" title="Edit user" style="color: #000;">
|
||||
{{ USER.1 }}
|
||||
<img src="/inc/images/edit.png" alt="Edit" width="15" style="margin-bottom: -3px;" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="padding10"> {{ USER.2 }}</td>
|
||||
{% for group in groups %}
|
||||
{% if group.0|string() == USER.5 %}
|
||||
<td class="third-collumn">{{ group.1 }}</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<td>{{ USER.4 }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
<table class="overview">
|
||||
<tr class="overviewHead">
|
||||
<th class="padding10 first-collumn" colspan=4>
|
||||
Tools status
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="padding10 first-collumn">
|
||||
{% if metrics_master|int() >= 1 %}
|
||||
<span title="running {{ metrics_master }} master processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{ metrics_master }} master processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Metrics master</span>
|
||||
<br />
|
||||
<br />
|
||||
{% if metrics_worker|int() >= 1 %}
|
||||
<span title="running {{metrics_worker}} worker processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{metrics_worker}} worker processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Metrics workers</span>
|
||||
</td>
|
||||
<td class="padding10 second-collumn"></td>
|
||||
<td class="third-collumn">
|
||||
{% if checker_master|int() >= 1 %}
|
||||
<span title="running {{ checker_master }} master processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{ checker_master }} master processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Checker master</span>
|
||||
<br />
|
||||
<br />
|
||||
{% if checker_worker|int() >= 1 %}
|
||||
<span title="running {{ checker_worker }} worker processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{ checker_worker }} worker processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Checker workers</span>
|
||||
</td>
|
||||
<td class="third-collumn">
|
||||
{% if keep_alive|int() >= 1 %}
|
||||
<span title="Keep alive is run"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="Keep alive is down"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Keep alive</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
{% endif %}
|
||||
<table class="overview">
|
||||
<table class="overview-wi">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
Server
|
||||
</td class="padding10 second-collumn">
|
||||
<td class="padding10 second-collumn">
|
||||
<!-- HAproxy status-->
|
||||
</td>
|
||||
<td class="padding10 third-collumn">
|
||||
<!-- <td class="padding10 second-collumn"> -->
|
||||
<!-- HAproxy status -->
|
||||
<!-- </td> -->
|
||||
<td class="padding10 third-collumn-wi">
|
||||
Action
|
||||
</td>
|
||||
<td class="padding10">
|
||||
|
@ -129,16 +22,16 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tbody id="ajaxstatus"></tbody>
|
||||
|
||||
<table class="overview">
|
||||
</table>
|
||||
<table class="overview-wi">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
WAF
|
||||
</td class="padding10 second-collumn">
|
||||
<td class="padding10 second-collumn">
|
||||
<!-- <td class="padding10 second-collumn"> -->
|
||||
<!-- WAF status -->
|
||||
</td>
|
||||
<td class="padding10 third-collumn">
|
||||
<!-- </td> -->
|
||||
<td class="padding10 third-collumn-wi">
|
||||
Action
|
||||
</td>
|
||||
<td class="padding10">
|
||||
|
@ -150,15 +43,167 @@
|
|||
</tr>
|
||||
<tbody id="ajaxwafstatus"></tbody>
|
||||
</table>
|
||||
<table class="overview-wi" style="height: 172;">
|
||||
<tr class="overviewHead">
|
||||
<th class="padding10 first-collumn-wi" colspan=4>
|
||||
Tools status
|
||||
</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{% if metrics_master|int() >= 1 %}
|
||||
<span title="running {{ metrics_master }} master processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{ metrics_master }} master processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Metrics master</span>
|
||||
|
||||
</td>
|
||||
<td class="third-collumn-wi">
|
||||
{% if checker_master|int() >= 1 %}
|
||||
<span title="running {{ checker_master }} master processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{ checker_master }} master processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Checker master</span>
|
||||
</td>
|
||||
<td class="third-collumn-wi" style="border-right: 1px solid #ddd;">
|
||||
{% if keep_alive|int() >= 1 %}
|
||||
<span title="Keep alive is run"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="Keep alive is down"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Keep alive</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{% if metrics_worker|int() >= 1 %}
|
||||
<span title="running {{metrics_worker}} worker processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{metrics_worker}} worker processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Metrics workers</span>
|
||||
</td>
|
||||
<td>
|
||||
{% if checker_worker|int() >= 1 %}
|
||||
<span title="running {{ checker_worker }} worker processes"><span class="serverUp"> UP</span>
|
||||
{% else %}
|
||||
<span title="running {{ checker_worker }} worker processes"><span class="serverDown"> DOWN</span>
|
||||
{% endif %}
|
||||
<span>Checker workers</span>
|
||||
</td>
|
||||
<td style="border-right: 1px solid #ddd;"></td>
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
{% if role <= 1 %}
|
||||
<table class="overview-wi">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn-wi">Login</td>
|
||||
<!-- <td class="padding10 second-collumn">Email</td> -->
|
||||
<td class="second-collumn">Group</td>
|
||||
<td>Role</td>
|
||||
<td class="padding10">
|
||||
<span class="add-button-wi">
|
||||
<a title="Show all users" id="show-all-users" style="color: #fff">
|
||||
Show all
|
||||
</a>
|
||||
</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% set counter = 0 -%}
|
||||
{% for USER in users %}
|
||||
{% set counter = counter + loop.index0 %}
|
||||
{% if counter <= 2 %}
|
||||
<tr class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
<a href="users.py#users" title="Edit user" style="color: #000;">
|
||||
{{ USER.1 }}
|
||||
<img src="/inc/images/edit.png" alt="Edit" width="15" style="margin-bottom: -3px;" />
|
||||
</a>
|
||||
</td>
|
||||
<!-- <td class="padding10 second-collumn"> {{ USER.2 }}</td> -->
|
||||
{% for group in groups %}
|
||||
{% if USER.5 == group.0|string() %}
|
||||
<td class="third-collumn-wi">{{ group.1 }}</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<td>{{ USER.4 }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% else %}
|
||||
<tr style="display: none;" class="show-users {{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
<a href="users.py#users" title="Edit user" style="color: #000;">
|
||||
{{ USER.1 }}
|
||||
<img src="/inc/images/edit.png" alt="Edit" width="15" style="margin-bottom: -3px;" />
|
||||
</a>
|
||||
</td>
|
||||
<!-- <td class="padding10"> {{ USER.2 }}</td> -->
|
||||
{% for group in groups %}
|
||||
{% if group.0|string() == USER.5 %}
|
||||
<td class="third-collumn-wi">{{ group.1 }}</td>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<td>{{ USER.4 }}</td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<table class="overview-wi">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn-wi">Group</td>
|
||||
<td class="second-collumn" style="width: 50%">Desctiption</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for group in groups %}
|
||||
<tr class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
<a href="users.py#groups" title="Edit groups" style="color: #000;">
|
||||
{{ group.1 }}
|
||||
<img src="/inc/images/edit.png" alt="Edit" width="15" style="margin-bottom: -3px;" />
|
||||
</a>
|
||||
</td>
|
||||
<td class="third-collumn-wi">{{ group.2 }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
|
||||
<table class="overview-wi">
|
||||
<tr class="overviewHead">
|
||||
<td class="padding10 first-collumn-wi">Role</td>
|
||||
<td class="second-collumn" style="width: 50%">Desctiption</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% for role in roles %}
|
||||
<tr class="{{ loop.cycle('odd', 'even') }}">
|
||||
<td class="padding10 first-collumn-wi">
|
||||
{{ role.1 }}
|
||||
</td>
|
||||
<td class="third-collumn-wi">{{ role.2 }}</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
<!-- <table class="overview" > -->
|
||||
<!-- <tr class="overviewHead"> -->
|
||||
<!-- <td class="padding10 first-collumn"> -->
|
||||
<!-- <td class="padding10 first-collumn-wi"> -->
|
||||
<!-- Server -->
|
||||
<!-- </td> -->
|
||||
<!-- <td class="padding10 second-collumn"> -->
|
||||
<!-- HAproxy info -->
|
||||
<!-- </td> -->
|
||||
<!-- <td class="padding10 third-collumn"> -->
|
||||
<!-- <td class="padding10 third-collumn-wi"> -->
|
||||
<!-- Server status -->
|
||||
<!-- </td> -->
|
||||
<!-- <td class="padding10"> -->
|
||||
|
|
|
@ -10,6 +10,7 @@ body {
|
|||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: auto;
|
||||
height:100%
|
||||
}
|
||||
h2 {
|
||||
background: #5D9CEB;
|
||||
|
@ -42,7 +43,8 @@ pre {
|
|||
}
|
||||
.top-menu {
|
||||
position: absolute;
|
||||
height: 110%;
|
||||
min-height: calc(99vh - 50px);
|
||||
height: 120%;
|
||||
width: 207px;
|
||||
float: left;
|
||||
margin-bottom: 20px;
|
||||
|
@ -74,6 +76,7 @@ pre {
|
|||
}
|
||||
.container {
|
||||
min-height: calc(99vh - 50px);
|
||||
height: 100%;
|
||||
max-width: 91%;
|
||||
min-width: 40%;
|
||||
background-color: #fff;
|
||||
|
@ -83,7 +86,7 @@ pre {
|
|||
}
|
||||
.footer {
|
||||
min-height: 50px;
|
||||
top: calc(99vh - 50px);
|
||||
top: calc(99vh - 40px);
|
||||
right: 0;
|
||||
left: 0;
|
||||
max-width: 91%;
|
||||
|
@ -93,6 +96,7 @@ pre {
|
|||
margin-right: 20px;
|
||||
border-top: 1px solid #ddd;
|
||||
clear: both;
|
||||
position: fixed;
|
||||
}
|
||||
.footer-div {
|
||||
display: block;
|
||||
|
@ -238,6 +242,7 @@ pre {
|
|||
font-style: italic;
|
||||
color: #fff;
|
||||
margin-left: 30px;
|
||||
position: fixed;
|
||||
}
|
||||
.line {
|
||||
background-color: #f5faf4;
|
||||
|
@ -317,11 +322,23 @@ pre {
|
|||
width: 100%;
|
||||
/* margin-top: 1.5em; */
|
||||
}
|
||||
.overview-wi {
|
||||
width: 46%;
|
||||
min-width: 600px;
|
||||
max-width: 50%;
|
||||
border: 1px solid #ddd;
|
||||
height: 160px;
|
||||
float: left;
|
||||
margin: 20px;
|
||||
}
|
||||
.overviewHead {
|
||||
border-radius: 5px;
|
||||
background-color: #F9FFF8;
|
||||
font-weight: bold;
|
||||
}
|
||||
.overview-wi .overviewHead {
|
||||
border: 1px solid #ddd;
|
||||
}
|
||||
.overview tr{
|
||||
border-bottom: 1px solid #ddd;
|
||||
border-radius: 5px;
|
||||
|
@ -360,7 +377,7 @@ pre {
|
|||
.serverUp {
|
||||
background-color: #5CB85C;
|
||||
}
|
||||
.add-button {
|
||||
.add-button, .add-button-wi {
|
||||
background-color: #5CB85C;
|
||||
border-radius: 5px;
|
||||
color: #fff;
|
||||
|
@ -368,9 +385,14 @@ pre {
|
|||
padding-right: 10px;
|
||||
padding-left: 10px;
|
||||
float: right;
|
||||
margin-right: 10px;
|
||||
margin-right: 1px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.add-button-wi {
|
||||
padding-right: 5px;
|
||||
padding-left: 5px;
|
||||
font-size: 13px;
|
||||
}
|
||||
.serverDown {
|
||||
background-color: red;
|
||||
}
|
||||
|
@ -388,12 +410,19 @@ pre {
|
|||
padding-left: 15px;
|
||||
width: 20%;
|
||||
}
|
||||
.first-collumn-wi {
|
||||
padding-left: 15px;
|
||||
width: 40%;
|
||||
}
|
||||
.second-collumn {
|
||||
width: 20%;
|
||||
}
|
||||
.third-collumn {
|
||||
width: 45%;
|
||||
}
|
||||
.third-collumn-wi {
|
||||
width: 30%;
|
||||
}
|
||||
.ro {
|
||||
border: none;
|
||||
}
|
||||
|
@ -700,7 +729,7 @@ label {
|
|||
color: #999;
|
||||
}
|
||||
.server-act-links a {
|
||||
margin-right: 0.36em !important
|
||||
margin-right: 4.3px !important
|
||||
}
|
||||
.server-act-links a:last-child {
|
||||
margin-right: 0 !important;
|
||||
|
|
Loading…
Reference in New Issue