mirror of
https://github.com/unraid/webgui.git
synced 2025-12-31 22:50:25 -06:00
100 lines
3.5 KiB
Plaintext
100 lines
3.5 KiB
Plaintext
Menu="NetworkSettings"
|
|
Title="Routing Table"
|
|
Tag="icon-share"
|
|
---
|
|
<?php
|
|
/* Copyright 2005-2025, Lime Technology
|
|
* Copyright 2012-2025, Bergware International.
|
|
*
|
|
* This program is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU General Public License version 2,
|
|
* as published by the Free Software Foundation.
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*/
|
|
?>
|
|
<?php
|
|
unset($list,$other);
|
|
exec("ls /sys/class/net|grep -P '^br[0-9]'", $list);
|
|
exec("ls /sys/class/net|grep -P '^(bond|eth)[0-9]'", $other);
|
|
foreach ($other as $port) {
|
|
if (substr($port, 0, 4) == 'bond') {
|
|
$br = str_replace('bond', 'br', $port);
|
|
if (!in_array($br, $list)) {
|
|
$list[] = $port;
|
|
}
|
|
} else {
|
|
$br = str_replace('eth', 'br', $port);
|
|
$bond = str_replace('eth', 'bond', $port);
|
|
if (!in_array($br, $list) && !in_array($bond, $list)) {
|
|
$list[] = $port;
|
|
}
|
|
}
|
|
}
|
|
?>
|
|
<script>
|
|
function deleteRoute(gateway,route,metric) {
|
|
swal({title:"Delete route?",text:route+" by gateway "+gateway,type:"warning",html:true,showCancelButton:true,confirmButtonText:"_(Proceed)_",cancelButtonText:"_(Cancel)_"},function(){
|
|
$.post('/webGui/include/RoutingTable.php',{gateway:gateway,route:route,metric:metric,task:'delete'},function(){resetTable();});
|
|
});
|
|
}
|
|
function routeTable() {
|
|
$.post('/webGui/include/RoutingTable.php',{task:'update'},function(data){
|
|
if (data) $('#route_list').html(data);
|
|
timers.routeTable = setTimeout(routeTable,10000);
|
|
});
|
|
}
|
|
function resetTable() {
|
|
document.add_routes.route.value = '';
|
|
document.add_routes.gateway.value = '';
|
|
document.add_routes.metric.value = '';
|
|
clearTimeout(timers.routeTable);
|
|
routeTable();
|
|
}
|
|
$(function(){
|
|
routeTable();
|
|
});
|
|
</script>
|
|
<div class="TableContainer">
|
|
<table class="unraid">
|
|
<thead>
|
|
<tr>
|
|
<td>_(Protocol)_</td>
|
|
<td>_(Route)_</td>
|
|
<td>_(Gateway)_</td>
|
|
<td>_(Metric)_</td>
|
|
<td style="width:8%;text-align:center">_(Delete)_</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody id="route_list"></tbody>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="shade" style="margin-top:12px;padding:12px 4px;">
|
|
<form markdown="1" name="add_routes" method="POST" action="/webGui/include/RoutingTable.php" target="progressFrame" onsubmit="setTimeout(resetTable,500)">
|
|
_(Enter route + gateway + metric)_:
|
|
: <span class="flex flex-row flex-wrap items-center gap-2">
|
|
<input type="text" name="route" maxlength="39" value="" class="fixed" placeholder="_(IPv4/nn or IPv6/nn route)_" required>
|
|
<input type="text" name="gateway" class="fixed" value="" list="device" placeholder="_(gateway name or address)_" required>
|
|
<datalist id="device"><?foreach ($list as $port):?><?echo "<option value='$port'>"?><?endforeach;?></datalist>
|
|
<span class="flex flex-row flex-wrap items-center gap-2">
|
|
<input type="text" name="metric" min="1" max="9999" value="" class="trim" placeholder="1">
|
|
<span class="flex flex-row flex-wrap items-center gap-1">
|
|
<i class="fa fa-sort-numeric-asc"></i>
|
|
<span>_(optional metric (lowest is preferred))_</span>
|
|
</span>
|
|
</span>
|
|
<input type="hidden" name="task" value="Add Route">
|
|
</span>
|
|
|
|
:eth_routing_table_help:
|
|
|
|
|
|
: <span class="inline-block">
|
|
<input type="submit" value="_(Add Route)_">
|
|
<input type="button" value="_(Done)_" class="lock" onclick="done()">
|
|
</span>
|
|
</form>
|
|
</div>
|