This commit prepares the switch from log to log/slog, which was
introduced in Go 1.21.
slog provides some useful facilities to add metadata to log entries,
which should be helpful for debugging problems.
This commit also adds a small transaction ID generator. It provides a
common identifier between log messages, so that multiple errors can be
viewed together in their order.
The acknowledged flag gets removed by checkers when the state changes to
okay.
But if we acknowledge a check when it is okay the notification system
stops working.
It was possible that a node was showing multiple times when it had more
than one check. That wasn't the purpose of that list.
Now each node only comes up once and its worst state is shown.
There was an issue with the select all in that clicking an input field
didn't trigger the marking as the event was not pushed through to the
underlying elements.
This commit adds a select all function to select all rows of a list to
mark them all.
This could be used to send a refresh to all these checks or acknowledge
them or whatever.
Also the referrer handling in checkAction() was moved to the start so
that even with an error the same thing happens.
As in #7 requested, it is now possible to select a row by clicking on
the row itself. This should make it much easier to select a larger
number of rows.
Somewhen in the last couple years, something called a referer policy was
introduced. This avoided the correct relocation after any action was
sent.
Now with the fix, the redirect properly works.
This adds the first basic listing of notifications to the check details.
No idea how many of them should be listed here, but having the list at
all for a start should be okay.
When a check is acknowledged, no more further notifications should be
sent. But for the notified system, it should be made clean, that it is
taken care of and no further actions need to be done, therefore send an
okay, even when the check isn't okay.
The result list should be ordered for the state when unhandled entries
should be returned. Else it is getting weird to figure out, which issue
is the most important to fix.
With some monitors, the view may be too wide to make out, which line
belongs to what. For that purpose, add a background color when the mouse
is hovering over a line.
This adds a detail view for a single check. The purpose is to view
notifications for this check alone and get the context information on
the node it belongs to, the command and settings.
This is related to #6. The muting, enable and disable were not working
properly, because the date was not set when the check was updated.
With this comes also the first icon to represent the muted status.
This allows to map the command exit codes to any other output level
which can then be reported by the notification plugin.
With the provided colors, the frontend will show them accordingly.