diff --git a/app/Http/Controllers/Widgets/AvailabilityMapController.php b/app/Http/Controllers/Widgets/AvailabilityMapController.php index 72b321ab54..8cf252c0d3 100644 --- a/app/Http/Controllers/Widgets/AvailabilityMapController.php +++ b/app/Http/Controllers/Widgets/AvailabilityMapController.php @@ -90,7 +90,7 @@ class AvailabilityMapController extends WidgetController if (! $settings['show_disabled_and_ignored']) { $device_query->isNotDisabled(); } - $devices = $device_query->select(['devices.device_id', 'hostname', 'sysName', 'display', 'status', 'uptime', 'last_polled', 'disabled', 'ignore'])->get(); + $devices = $device_query->select(['devices.device_id', 'hostname', 'sysName', 'display', 'status', 'uptime', 'last_polled', 'disabled', 'ignore', 'ignore_status'])->get(); // process status $uptime_warn = (int) Config::get('uptime_warning', 86400); @@ -253,6 +253,10 @@ class AvailabilityMapController extends WidgetController return ['disabled', 'blackbg']; } + if ($device->ignore_status) { + return ['ignored-up', 'label-success']; + } + if ($device->ignore) { if (($device->status == 1) && ($device->uptime != 0)) { return ['ignored-up', 'label-success']; diff --git a/app/Models/Device.php b/app/Models/Device.php index 30815f39a6..733eb32ccd 100644 --- a/app/Models/Device.php +++ b/app/Models/Device.php @@ -55,6 +55,7 @@ class Device extends BaseModel 'display', 'icon', 'ignore', + 'ignore_status', 'ip', 'location_id', 'notes', diff --git a/database/migrations/2024_01_04_195618_add_ignore_status_to_devices_tables.php b/database/migrations/2024_01_04_195618_add_ignore_status_to_devices_tables.php new file mode 100644 index 0000000000..dbee050bd3 --- /dev/null +++ b/database/migrations/2024_01_04_195618_add_ignore_status_to_devices_tables.php @@ -0,0 +1,32 @@ +boolean('ignore_status')->default(false); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::table('devices', function (Blueprint $table) { + $table->dropColumn('ignore_status'); + }); + } +}; diff --git a/includes/html/pages/device/edit/device.inc.php b/includes/html/pages/device/edit/device.inc.php index c7da2598c7..7e52901ca6 100644 --- a/includes/html/pages/device/edit/device.inc.php +++ b/includes/html/pages/device/edit/device.inc.php @@ -32,6 +32,7 @@ if (! empty($_POST['editing'])) { $device_model->purpose = $_POST['descr']; $device_model->poller_group = $_POST['poller_group']; $device_model->ignore = (int) isset($_POST['ignore']); + $device_model->ignore_status = (int) isset($_POST['ignore_status']); $device_model->disabled = (int) isset($_POST['disabled']); $device_model->disable_notify = (int) isset($_POST['disable_notify']); $device_model->type = $_POST['type']; @@ -314,6 +315,17 @@ If `devices.ignore = 0` or `macros.device = 1` condition is is set and ignore al ?> /> +