. * * @package LibreNMS * @link http://librenms.org * @copyright 2021 Tony Murray * @author Tony Murray */ namespace App\Http\Controllers\Table; class EditPortsController extends TableController { public function rules() { return [ 'device_id' => 'required|int', 'device_group' => 'nullable|int', 'eventtype' => 'nullable|string', ]; } public function searchFields($request) { return ['ifName', 'ifAlias', 'ifDescr']; } protected function sortFields($request) { return ['ifIndex', 'ifName', 'ifAdminStatus', 'ifOperStatus', 'ifSpeed', 'ifAlias']; } protected function baseQuery($request) { return \App\Models\Port::where('device_id', $request->get('device_id')) ->with('groups'); } /** * @param \App\Models\Port $port * @return array */ public function formatItem($port) { $is_port_bad = $port->ifAdminStatus != 'down' && $port->ifOperStatus != 'up'; $do_we_care = ($port->ignore || $port->disabled) ? false : $is_port_bad; $out_of_sync = $do_we_care ? "class='red'" : ''; $tune = $port->device->getAttrib('ifName_tune:' . $port->ifName) == 'true' ? 'checked' : ''; $port_group_options = ''; foreach ($port->groups as $group) { /** @var \App\Models\PortGroup $group */ $port_group_options .= ''; } return [ 'ifIndex' => $port->ifIndex, 'ifName' => $port->getLabel(), 'ifAdminStatus' => $port->ifAdminStatus, 'ifOperStatus' => '' . $port->ifOperStatus . '', 'disabled' => 'disabled ? 'checked' : '') . '> ', 'ignore' => 'ignore ? 'checked' : '') . '> ', 'port_tune' => '', 'ifAlias' => '
', 'ifSpeed' => '
', 'portGroup' => '
', ]; } }