mirror of https://github.com/Aidaho12/haproxy-wi
				
				
				
			
		
			
				
	
	
		
			339 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
			
		
		
	
	
			339 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			HTML
		
	
	
{% extends "base.html" %}
 | 
						|
{% block title %}Runtime API{% endblock %}
 | 
						|
{% block h2 %}Runtime API{% endblock %}
 | 
						|
{% block content %}
 | 
						|
{% from 'include/input_macros.html' import input, checkbox %}
 | 
						|
<link href="/inc/css/table-6.3.9.css" rel="stylesheet" type="text/css">
 | 
						|
<script type="text/javascript" charset="utf8" src="/inc/dataTables.min.js"></script>
 | 
						|
<script type="text/javascript" charset="utf8" src="/inc/runtimeapi.js"></script>
 | 
						|
<div id="tabs">
 | 
						|
	<ul>
 | 
						|
		<li><a href="#runtimeapi" title="Runtime API - Roxy-WI">Runtime API</a></li>
 | 
						|
		{% if role <= 3 %}
 | 
						|
			<li><a href="#maxconn" title="Runtime API: {{lang.words.change|title()}} Maxconn - Roxy-WI">{{lang.words.change|title()}} Maxconn</a></li>
 | 
						|
			<li><a href="#ip" title="Runtime API: {{lang.words.change|title()}} IP {{lang.words.and}} {{lang.words.port}} {{lang.words.backend}} {{lang.words.servers}} - Roxy-WI">{{lang.words.change|title()}} IP {{lang.words.and}} {{lang.words.port}}</a></li>
 | 
						|
			<li><a href="#table" title="Runtime API: Stick Table - Roxy-WI">Stick Table</a></li>
 | 
						|
			<li><a href="#lists" title="Runtime API: {{lang.words.change|title()}} {{lang.words.dynamically}}} whitelist {{lang.words.and}} blacklist - Roxy-WI">{{lang.words.lists|title()}}</a></li>
 | 
						|
			<li><a href="#sessions" title="Runtime API: {{lang.words.sessions|title()}}} - Roxy-WI">{{lang.words.sessions|title()}}</a></li>
 | 
						|
		{% endif %}
 | 
						|
	</ul>
 | 
						|
	<div id="runtimeapi">
 | 
						|
		<table class="overview">
 | 
						|
			<tr class="overviewHead">
 | 
						|
				<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
				<td>{{lang.words.action|title()}}</td>
 | 
						|
				<td>{{lang.words.command|title()}}</td>
 | 
						|
				{% if role <= 3 %}
 | 
						|
				<td class="checkbox-head">{{lang.words.save|title()}} {{lang.words.change}}</td>
 | 
						|
				{% endif %}
 | 
						|
				<td></td>
 | 
						|
			</tr>
 | 
						|
			<tr>
 | 
						|
				<td class="padding10 first-collumn" style="width: 25%;">
 | 
						|
					<form action="" method="post" id="runtimeapiform">
 | 
						|
						{% include 'include/select.html' %}
 | 
						|
				</td>
 | 
						|
				<td style="width: 30%;">
 | 
						|
					<select required name="servaction" id="servaction">
 | 
						|
						<option disabled>{{lang.words.select|title()}} {{lang.words.action}}</option>
 | 
						|
						{% if role <= 3 %}
 | 
						|
							<option value="disable">Disable</option>
 | 
						|
							<option value="shutdown">Shutdown</option>
 | 
						|
							<option value="enable">Enable</option>
 | 
						|
							<option value="set">Set</option>
 | 
						|
							<option value="clear">Clear</option>
 | 
						|
							<option value="add">Add</option>
 | 
						|
						{% endif %}
 | 
						|
						<option value="get">Get</option>
 | 
						|
						<option value="show" selected>Show</option>
 | 
						|
					</select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					{{ input('servbackend', value=servbackend, title='Frontend, backend/server, show: info, pools or help', required='required') }}
 | 
						|
				</td>
 | 
						|
				{% if role <= 3 %}
 | 
						|
				<td class="checkbox">
 | 
						|
					{{ checkbox('save', value='123') }}
 | 
						|
				</td>
 | 
						|
				{% endif %}
 | 
						|
				<td>
 | 
						|
					<button type="submit" name="Enter" value="Enter" id="enter">{{lang.words.enter|title()}}</button>
 | 
						|
				</td>
 | 
						|
					</form>
 | 
						|
			</tr>
 | 
						|
		</table>
 | 
						|
		<script>
 | 
						|
			if (window.matchMedia('(max-width: 786px)').matches || window.matchMedia('(max-width: 1024px)').matches || window.matchMedia('(max-width: 667px)').matches) {
 | 
						|
				$( "#servaction" ).selectmenu({
 | 
						|
				  width: 150
 | 
						|
				});
 | 
						|
				$( "#serv" ).selectmenu({
 | 
						|
				  width: 150
 | 
						|
				});
 | 
						|
			}
 | 
						|
		</script>
 | 
						|
		<div id="ajaxruntime"></div>
 | 
						|
		<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
 | 
						|
			{{lang.phrases.read_desc_runtime_api}} <a href="https://roxy-wi.org/description/runtimeapi#commands" title="Runtime API {{lang.words.desc}}" target="_blank">{{lang.words.here}}</a>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
	{% if role <= 3 %}
 | 
						|
	<div id="maxconn">
 | 
						|
		<table class="overview">
 | 
						|
			<caption><h3>{{lang.words.global|title()}}</h3></caption>
 | 
						|
			<thead>
 | 
						|
				<tr class="overviewHead">
 | 
						|
					<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
					<td>Maxconn</td>
 | 
						|
					<td></td>
 | 
						|
				</tr>
 | 
						|
			</thead>
 | 
						|
			<tbody>
 | 
						|
				<tr>
 | 
						|
					<td class="padding10 first-collumn" style="width: 20%;">
 | 
						|
						<form action="" method="post" id="maxconnglobalform">
 | 
						|
							<select autofocus required name="serv" id="maxconn_global_select">
 | 
						|
								<option disabled selected>------</option>
 | 
						|
								{% for select in selects %}
 | 
						|
									<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
								{% endfor %}
 | 
						|
							</select>
 | 
						|
					</td>
 | 
						|
					<td style="width: 75%;">
 | 
						|
						{{ input('maxconnintglobal', title=lang.words.enter|title() + ' maxconn', type="number", required='required') }}
 | 
						|
					</td>
 | 
						|
					<td>
 | 
						|
						<button type="submit" name="Enter" value="Enter" id="global_enter">{{lang.words.enter|title()}}</button>
 | 
						|
					</td>
 | 
						|
						</form>
 | 
						|
				</tr>
 | 
						|
			</tbody>
 | 
						|
		</table>
 | 
						|
		<table class="overview">
 | 
						|
			<caption><h3>{{lang.words.frontends|title()}}</h3></caption>
 | 
						|
			<thead>
 | 
						|
				<tr class="overviewHead">
 | 
						|
					<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
					<td>{{lang.words.select|title()}} {{lang.words.frontend|title()}}</td>
 | 
						|
					<td>Maxconn</td>
 | 
						|
					<td></td>
 | 
						|
				</tr>
 | 
						|
			</thead>
 | 
						|
			<tbody>
 | 
						|
				<tr>
 | 
						|
					<td class="padding10 first-collumn" style="width: 20%;">
 | 
						|
						<form action="" method="post" id="maxconnform">
 | 
						|
							<select autofocus required name="serv" id="maxconn_select">
 | 
						|
								<option disabled selected>------</option>
 | 
						|
								{% for select in selects %}
 | 
						|
									<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
								{% endfor %}
 | 
						|
							</select>
 | 
						|
					</td>
 | 
						|
					<td style="width: 25%">
 | 
						|
						<select required name="maxconnfront" id="maxconnfront">
 | 
						|
						</select>
 | 
						|
					</td>
 | 
						|
					<td style="width: 50%;">
 | 
						|
						{{ input('maxconnint', title=lang.words.enter|title() + ' maxconn', type="number", required='required') }}
 | 
						|
					</td>
 | 
						|
					<td>
 | 
						|
						<button type="submit" name="Enter" value="Enter" id="enter">{{lang.words.enter|title()}}</button>
 | 
						|
					</td>
 | 
						|
						</form>
 | 
						|
				</tr>
 | 
						|
			</tbody>
 | 
						|
		</table>
 | 
						|
		<table>
 | 
						|
			<caption><h3>{{lang.words.backends|title()}}</h3></caption>
 | 
						|
			<thead>
 | 
						|
				<tr class="overviewHead">
 | 
						|
					<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
					<td>{{lang.words.select|title()}} {{lang.words.backend|title()}}</td>
 | 
						|
					<td>{{lang.words.select|title()}} {{lang.words.server}}</td>
 | 
						|
					<td>Maxconn</td>
 | 
						|
					<td></td>
 | 
						|
				</tr>
 | 
						|
			</thead>
 | 
						|
			<tbody>
 | 
						|
				<tr>
 | 
						|
					<td class="padding10 first-collumn" style="width: 20%;">
 | 
						|
						<form action="" method="post" id="maxconnbackform">
 | 
						|
							<select autofocus required name="serv" id="maxconn_backend_select">
 | 
						|
								<option disabled selected>------</option>
 | 
						|
								{% for select in selects %}
 | 
						|
									<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
								{% endfor %}
 | 
						|
							</select>
 | 
						|
					</td>
 | 
						|
					<td style="width: 25%;"><select required name="maxconnbackend" id="maxconnbackend"></select></td>
 | 
						|
					<td style="width: 25%;"><select required name="maxconn_backend_server" id="maxconn_backend_server"></select></td>
 | 
						|
					<td style="width: 25%;">
 | 
						|
						{{ input('maxconn_backend_int', title=lang.words.enter|title() + ' maxconn', type="number", required='required') }}
 | 
						|
					</td>
 | 
						|
					<td>
 | 
						|
						<button type="submit" name="Enter" value="Enter" id="backend_enter">{{lang.words.enter|title()}}</button>
 | 
						|
					</td>
 | 
						|
					</form>
 | 
						|
				</tr>
 | 
						|
			</tbody>
 | 
						|
		</table>
 | 
						|
		<div id="ajaxmaxconn"></div>
 | 
						|
		<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
 | 
						|
			{{lang.phrases.read_how_it_works}} <a href="https://roxy-wi.org/description/runtimeapi#maxconn" title="Change Maxconn" target="_blank">{{lang.words.here}}</a>
 | 
						|
		</div>		
 | 
						|
	</div>
 | 
						|
	
 | 
						|
	<div id="ip">
 | 
						|
		<table class="overview">
 | 
						|
			<tr class="overviewHead">
 | 
						|
				<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
				<td>{{lang.words.select|title()}} {{lang.words.backend|title()}}</td>
 | 
						|
				<td>{{lang.words.select|title()}} {{lang.words.server}}</td>
 | 
						|
				<td>{{lang.words.new|title()}} IP</td>
 | 
						|
				<td>{{lang.words.new|title()}} {{lang.words.port}}</td>
 | 
						|
				<td></td>
 | 
						|
			</tr>
 | 
						|
			<tr>
 | 
						|
				<td class="padding10 first-collumn" style="width: 25%;">
 | 
						|
					<form action="" method="post" id="runtimeapiip">
 | 
						|
						<select autofocus required name="ip_select" id="ip_select">
 | 
						|
							<option disabled selected>------</option>
 | 
						|
							{% for select in selects %}
 | 
						|
								<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
							{% endfor %}
 | 
						|
						</select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<select required name="ipbackend" id="ipbackend"></select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<select required name="backend_server" id="backend_server"></select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					{{ input('backend_ip', title=lang.words.set|title()+' '+lang.words.new + ' ' + lang.words.server + ' IP', required='required', size='16') }}
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					{{ input('backend_port', title=lang.words.set|title()+' '+lang.words.new + ' ' + lang.words.server + ' ' + lang.words.port, type="number", required='required', size='6') }}
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<button type="submit" name="Enter" value="Enter" id="enter">Enter</button>
 | 
						|
				</td>
 | 
						|
					</form>
 | 
						|
			</tr>
 | 
						|
		</table>
 | 
						|
		<div id="ajaxip"></div>
 | 
						|
		<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
 | 
						|
			{{lang.phrases.read_how_it_works}} <a href="https://roxy-wi.org/description/runtimeapi#ip" title="Change IP and Port" target="_blank">{{lang.words.here}}</a>
 | 
						|
		</div>	
 | 
						|
	</div>
 | 
						|
	<div id="table">
 | 
						|
		<table class="overview">
 | 
						|
			<tr class="overviewHead">
 | 
						|
				<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
				<td>{{lang.words.select|title()}} {{lang.words.table}}</td>
 | 
						|
				<td></td>
 | 
						|
			</tr>
 | 
						|
			<tr>
 | 
						|
				<td class="padding10 first-collumn" style="width: 25%;">
 | 
						|
					<form action="" method="post" id="runtimeapitable">
 | 
						|
						<select autofocus required name="table_serv_select" id="table_serv_select">
 | 
						|
							<option disabled selected>------</option>
 | 
						|
							{% for select in selects %}
 | 
						|
								<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
							{% endfor %}
 | 
						|
						</select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<select required name="table_select" id="table_select">
 | 
						|
					</select>				
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<button type="submit" name="Enter" value="Enter" id="enter">{{lang.words.w_get|title()}} {{lang.words.table}}</button>
 | 
						|
				</td>
 | 
						|
					</form>
 | 
						|
			</tr>
 | 
						|
		</table>
 | 
						|
		<div id="ajaxtable"></div>
 | 
						|
		<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
 | 
						|
			{{lang.phrases.read_how_it_works}} <a href="https://roxy-wi.org/description/runtimeapi#ip" title="{{lang.words.change|title()}} IP {{lang.words.and}} {{lang.words.port}}" target="_blank">{{lang.words.here}}</a>
 | 
						|
		</div>	
 | 
						|
	</div>
 | 
						|
	<div id="lists">
 | 
						|
		<table class="overview">
 | 
						|
			<tr class="overviewHead">
 | 
						|
				<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
				<td>{{lang.words.select|title()}} {{lang.words.list}}</td>
 | 
						|
				<td></td>
 | 
						|
			</tr>
 | 
						|
			<tr>
 | 
						|
				<td class="padding10 first-collumn" style="width: 25%;">
 | 
						|
					<form action="" method="post" id="runtimeapilist">
 | 
						|
						<select autofocus required name="list_serv_select" id="list_serv_select">
 | 
						|
							<option disabled selected>------</option>
 | 
						|
							{% for select in selects %}
 | 
						|
							<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
							{% endfor %}
 | 
						|
						</select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<select required name="list_select" id="list_select">
 | 
						|
					</select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<button type="submit" name="Enter" value="Enter" id="enter">{{lang.words.w_get|title()}} {{lang.words.list}}</button>
 | 
						|
				</td>
 | 
						|
				</form>
 | 
						|
			</tr>
 | 
						|
		</table>
 | 
						|
		<div id="ajaxlist"></div>
 | 
						|
		<div class="add-note addName alert-info" style="width: inherit; margin-right: 15px;">
 | 
						|
			{{lang.phrases.read_how_it_works}} <a href="https://roxy-wi.org/description/runtimeapi#lists" title="{{lang.words.manage|title()}} {{lang.words.lists}}" target="_blank">{{lang.words.here}}</a>
 | 
						|
		</div>
 | 
						|
	</div>
 | 
						|
	<div id="sessions">
 | 
						|
		<table class="overview">
 | 
						|
			<tr class="overviewHead">
 | 
						|
				<td class="padding10 first-collumn">{{lang.words.server|title()}}</td>
 | 
						|
				<td></td>
 | 
						|
			</tr>
 | 
						|
			<tr>
 | 
						|
				<td class="padding10 first-collumn" style="width: 25%;">
 | 
						|
					<form action="" method="post" id="runtimeapisessions">
 | 
						|
						<select autofocus required name="sessions_serv_select" id="sessions_serv_select">
 | 
						|
							<option disabled selected>------</option>
 | 
						|
							{% for select in selects %}
 | 
						|
							<option value="{{ select.2 }}">{{ select.1 }}</option>
 | 
						|
							{% endfor %}
 | 
						|
						</select>
 | 
						|
				</td>
 | 
						|
				<td>
 | 
						|
					<button type="submit" name="Enter" value="Enter" id="enter">{{lang.words.w_get|title()}} {{lang.words.sessions}}</button>
 | 
						|
				</td>
 | 
						|
				</form>
 | 
						|
			</tr>
 | 
						|
		</table>
 | 
						|
		<div id="ajaxsessions"></div>
 | 
						|
	</div>
 | 
						|
	{% endif %}
 | 
						|
</div>
 | 
						|
<div id="get-session-info" title="View session" style="display: none;">
 | 
						|
	<pre id="get-session-info-body"></pre>
 | 
						|
</div>
 | 
						|
<script>
 | 
						|
$( function() {
 | 
						|
	if (window.matchMedia('(max-width: 1280px)').matches) {
 | 
						|
		$("#ip_select" ).selectmenu({
 | 
						|
			width: 100
 | 
						|
		});
 | 
						|
		$("#ipbackend" ).selectmenu({
 | 
						|
			width: 100
 | 
						|
		});
 | 
						|
		$("#backend_server" ).selectmenu({
 | 
						|
			width: 100
 | 
						|
		});
 | 
						|
	}
 | 
						|
});
 | 
						|
</script>
 | 
						|
{% endblock %}
 |