mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Filter unwanted data in Routes Ajax reply (#12847)
* filter unwanted data in AJAX reply filter unwanted data in AJAX reply filter unwanted data in AJAX reply filter unwanted data in AJAX reply cleaner fix now * add tooltips, except when text contains 'overlib' calls * readability DestType lost in the game DestType lost in the game
This commit is contained in:
@@ -169,37 +169,31 @@ class RoutesTablesController extends TableController
|
||||
*/
|
||||
public function formatItem($route_entry)
|
||||
{
|
||||
$item = $route_entry->toArray();
|
||||
$item['updated_at'] = $route_entry->updated_at ? $route_entry->updated_at->diffForHumans() : $route_entry->updated_at;
|
||||
$item['created_at'] = $route_entry->created_at ? $route_entry->created_at->toDateTimeString() : $route_entry->created_at;
|
||||
$item['inetCidrRouteIfIndex'] = $route_entry->inetCidrRouteIfIndex == 0 ? 'Undefined' : $route_entry->inetCidrRouteIfIndex;
|
||||
$item['inetCidrRouteMetric1'] = $route_entry->inetCidrRouteMetric1;
|
||||
$item['inetCidrRoutePfxLen'] = $route_entry->inetCidrRoutePfxLen;
|
||||
$item['inetCidrRouteDestType'] = $route_entry->inetCidrRouteDestType;
|
||||
|
||||
if ($route_entry->updated_at) {
|
||||
$item['updated_at'] = $route_entry->updated_at->diffForHumans();
|
||||
try {
|
||||
$obj_inetCidrRouteDest = IP::parse($route_entry->inetCidrRouteDest);
|
||||
$item['inetCidrRouteDest'] = $obj_inetCidrRouteDest->compressed();
|
||||
} catch (\Exception $e) {
|
||||
$item['inetCidrRouteDest'] = $route_entry->inetCidrRouteDest;
|
||||
}
|
||||
if ($route_entry->created_at) {
|
||||
$item['created_at'] = $route_entry->created_at->toDateTimeString();
|
||||
}
|
||||
if ($item['inetCidrRouteIfIndex'] == 0) {
|
||||
$item['inetCidrRouteIfIndex'] = 'Undefined';
|
||||
}
|
||||
if ($route_entry->inetCidrRouteNextHop) {
|
||||
try {
|
||||
$obj_inetCidrRouteNextHop = IP::parse($route_entry->inetCidrRouteNextHop);
|
||||
$item['inetCidrRouteNextHop'] = $obj_inetCidrRouteNextHop->compressed();
|
||||
} catch (\Exception $e) {
|
||||
$item['inetCidrRouteNextHop'] = $route_entry->inetCidrRouteNextHop;
|
||||
}
|
||||
}
|
||||
if ($route_entry->inetCidrRouteDest) {
|
||||
try {
|
||||
$obj_inetCidrRouteDest = IP::parse($route_entry->inetCidrRouteDest);
|
||||
$item['inetCidrRouteDest'] = $obj_inetCidrRouteDest->compressed();
|
||||
} catch (\Exception $e) {
|
||||
$item['inetCidrRouteDest'] = $route_entry->inetCidrRouteDest;
|
||||
}
|
||||
}
|
||||
$item['inetCidrRouteIfIndex'] = 'ifIndex ' . $item['inetCidrRouteIfIndex'];
|
||||
|
||||
$item['inetCidrRouteIfIndex'] = $route_entry->inetCidrRouteIfIndex == 0 ? 'Undefined' : 'IfIndex ' . $route_entry->inetCidrRouteIfIndex;
|
||||
if ($port = $route_entry->port()->first()) {
|
||||
$item['inetCidrRouteIfIndex'] = Url::portLink($port, htmlspecialchars($port->getShortLabel()));
|
||||
}
|
||||
|
||||
try {
|
||||
$obj_inetCidrRouteNextHop = IP::parse($route_entry->inetCidrRouteNextHop);
|
||||
$item['inetCidrRouteNextHop'] = $obj_inetCidrRouteNextHop->compressed();
|
||||
} catch (\Exception $e) {
|
||||
$item['inetCidrRouteNextHop'] = $route_entry->inetCidrRouteNextHop;
|
||||
}
|
||||
$device = Device::findByIp($route_entry->inetCidrRouteNextHop);
|
||||
if ($device) {
|
||||
if ($device->device_id == $route_entry->device_id || in_array($route_entry->inetCidrRouteNextHop, ['127.0.0.1', '::1'])) {
|
||||
@@ -208,12 +202,17 @@ class RoutesTablesController extends TableController
|
||||
$item['inetCidrRouteNextHop'] = $item['inetCidrRouteNextHop'] . '<br>(' . Url::deviceLink($device) . ')';
|
||||
}
|
||||
}
|
||||
|
||||
$item['inetCidrRouteProto'] = $route_entry->inetCidrRouteProto;
|
||||
if ($route_entry->inetCidrRouteProto && $route_entry::$translateProto[$route_entry->inetCidrRouteProto]) {
|
||||
$item['inetCidrRouteProto'] = $route_entry::$translateProto[$route_entry->inetCidrRouteProto];
|
||||
}
|
||||
|
||||
$item['inetCidrRouteType'] = $route_entry->inetCidrRouteType;
|
||||
if ($route_entry->inetCidrRouteType && $route_entry::$translateType[$route_entry->inetCidrRouteType]) {
|
||||
$item['inetCidrRouteType'] = $route_entry::$translateType[$route_entry->inetCidrRouteType];
|
||||
}
|
||||
|
||||
$item['context_name'] = '[global]';
|
||||
if ($route_entry->context_name != '') {
|
||||
$item['context_name'] = '<a href="' . Url::generate(['page' => 'routing', 'protocol' => 'vrf', 'vrf' => $route_entry->context_name]) . '">' . htmlspecialchars($route_entry->context_name) . '</a>';
|
||||
|
@@ -6,17 +6,17 @@ $no_refresh = true;
|
||||
<table id="routes" class="table table-condensed table-hover table-striped">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-column-id="context_name" data-width="125px">VRF</th>
|
||||
<th data-column-id="context_name" data-width="125px" data-formatter="tooltip">VRF</th>
|
||||
<th data-column-id="inetCidrRouteDestType" data-width="70px">Proto</th>
|
||||
<th data-column-id="inetCidrRouteDest">Destination</th>
|
||||
<th data-column-id="inetCidrRouteDest" data-formatter="tooltip">Destination</th>
|
||||
<th data-column-id="inetCidrRoutePfxLen" data-width="80px">Mask</th>
|
||||
<th data-column-id="inetCidrRouteNextHop">Next hop</th>
|
||||
<th data-column-id="inetCidrRouteIfIndex">Interface</th>
|
||||
<th data-column-id="inetCidrRouteNextHop" data-formatter="tooltip">Next hop</th>
|
||||
<th data-column-id="inetCidrRouteIfIndex" data-formatter="tooltip">Interface</th>
|
||||
<th data-column-id="inetCidrRouteMetric1" data-width="85px">Metric</th>
|
||||
<th data-column-id="inetCidrRouteType" data-width="85px">Type</th>
|
||||
<th data-column-id="inetCidrRouteProto" data-width="85px">Proto</th>
|
||||
<th data-column-id="created_at" data-width="165px">First seen</th>
|
||||
<th data-column-id="updated_at" data-width="165px">Last seen</th>
|
||||
<th data-column-id="created_at" data-width="165px" data-formatter="tooltip">First seen</th>
|
||||
<th data-column-id="updated_at" data-width="165px" data-formatter="tooltip">Last seen</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</table>
|
||||
@@ -46,6 +46,15 @@ var grid = $("#routes").bootgrid({
|
||||
showProtocols: list_showProtocols
|
||||
};
|
||||
},
|
||||
formatters: {
|
||||
"tooltip": function (column, row) {
|
||||
var value = row[column.id];
|
||||
if (value.includes('onmouseover=')) {
|
||||
return value;
|
||||
}
|
||||
return "<span title=\'" + value + "\' data-toggle=\'tooltip\'>" + value + "</span>";
|
||||
},
|
||||
},
|
||||
url: "ajax/table/routes"
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user