Commit graph

539 commits

Author SHA1 Message Date
Johannes Meyer
df1d2c076d tactical: Fetch states using a single query
This ensures that exports to CSV/JSON contain results
for both host and service states as the default export
procedure only evaluates a single query.

fixes #1334
2026-05-22 16:23:14 +02:00
Bastian Lederer
8736be428f Use UrlParams::addValues instead Url::setParams
Some checks are pending
L10n Update / update (push) Waiting to run
CI / PHP (push) Waiting to run
Previously `Url::setParams()` was used by `ServiceController::historyAction` to set `name` and `host.name`,
since the function overwrites all parameters the sort parameter was not included in the loadMoreUrl.
`UrlParams::addValues` fixes this problem sicne is keeps the existing parameters.

For consistency `HostController::historyAction` is also adjusted to match this implementation.
2026-05-21 16:02:54 +02:00
Bastian Lederer
e44a808d6a Add timestamp control to history views
Use the `TimestampToggle` provided by `Controller::createTimestampControl()`
and use the new `HistoryList`
2026-04-24 15:52:15 +02:00
Bastian Lederer
152ca2a0c3 USe Translation trait and improve code style 2026-04-14 15:13:49 +02:00
Bastian Lederer
0e6d03f3da Adjust customVarSources and minor improvements 2026-04-14 15:13:49 +02:00
Bastian Lederer
47f4c4c562 Apply review suggestions 2026-04-14 15:13:49 +02:00
Bastian Lederer
fd9b7e3653 Use setTitle 2026-04-14 15:13:49 +02:00
Bastian Lederer
7b49b302bd Controller::createColumnControl(): remove param $viewModeSwitcher 2026-04-14 15:13:49 +02:00
Bastian Lederer
71d2ad5104 Adjust usages of Controller::createColumnControl() 2026-04-14 15:13:49 +02:00
Bastian Lederer
afbe91e14a Clean up unused imports 2026-04-14 15:13:49 +02:00
Bastian Lederer
fdc0f91daa Adjust usages of CreateColumnControl with GridViewModeSwitcher
Ensure `GridViewModeSwitcher::class` is passed
2026-04-14 15:13:49 +02:00
Bastian Lederer
01996ffcfe Fix the $redirectUrl in Controller::createColumnControl()
It was previously hard coded...
2026-04-14 15:13:49 +02:00
Bastian Lederer
cd6eb32720 Move creation of the ColumnChooser Form to createColumnControl() 2026-04-14 15:13:49 +02:00
Bastian Lederer
1cd03462d8 Add ServiceItemTable::setColumnChooserUrl()
Use the setter to set the url for the ColumnChooser
2026-04-14 15:13:49 +02:00
Bastian Lederer
e555d3c2d8 Use SearchSuggestions for ColumnChooser
Use `SearchSuggestions` in `HostsController` and `ServicesController`
2026-04-14 15:13:49 +02:00
Bastian Lederer
a5dfb07f9c Controller::createColumnControl(): Use parameter for default columns
Add a parameter for default columns to be used if no columns
are set in the URL
2026-04-14 15:13:49 +02:00
Bastian Lederer
ba688bb431 Controller::createViewModeSwitcher(): Add param $viewModeSwitcherClass
Use the parameter to customize the type of ViewModeSwitcher used
2026-04-14 15:13:49 +02:00
Bastian Lederer
b101b50325 Exclude already selected columns from suggestions
Exclude regular columns by using fixed columns
and expand Objectsuggestions to exclude a given set of
customvars.
2026-04-14 15:13:49 +02:00
Bastian Lederer
ed0e4a6b21 Adjust controllers
Adjust HostsController and ServicesController to use the new
ColumnChooser form and the TabularViewModeSwitcher.
The Controller class is adjusted to work with the TabularViewModeSwitcher
The HostGroupsController and ServiceGroupsController are adjusted,
to ensure they use with the GridViewModeSwitcher.
2026-04-14 15:13:49 +02:00
Bastian Lederer
8622514fcd Change implicit nullable type declaration to explicit
Since PHP 8.4 implicitly nullable parameter types are deprecated.

Normalize scoped PHPDoc for nullable-parameter updates: use `?Type` instead of
`Type|null` and remove column alignment.

Co-authored-by: "Eric Lippmann <eric.lippmann@icinga.com>"
2026-03-19 22:08:30 +01:00
Eric Lippmann
272e791390 License source files as GPL-3.0-or-later
Add SPDX license headers and mark source files as GPL-3.0-or-later to
preserve the option to relicense under later GPL versions.
2026-03-11 14:03:05 +01:00
Eric Lippmann
402131ad72 Allow disabling the MySQL/MariaDB query optimizer for history queries
Some checks are pending
L10n Update / update (push) Waiting to run
CI / PHP (push) Waiting to run
Some versions of these RDBMS perform poorly with history queries, particularly
when the optimizer changes join order or uses block nested loop joins. Ideally,
testing across all RDBMS versions to identify when the optimizer fails and
adjusting queries or using optimizer switches would be preferable, but this
level of effort is not justified at the moment.

Optimizer is disabled via config:

`/etc/icingaweb2/modules/icingadb/config.ini`:

```
[icingadb]
...
disable_optimizer_for_history_queries=1
```
2026-03-11 10:48:05 +01:00
Johannes Meyer
db3f6e72ae MigrateCommand: Ensure to match owners of shared items using wildcards
fixes #1341
2026-03-06 14:09:59 +01:00
Sukhwinder Dhillon
9cabfd5968
ContinueWith: Disable button if the query with filter returns no results (#1300)
Some checks failed
L10n Update / update (push) Has been cancelled
CI / PHP (push) Has been cancelled
fixes #1299 

requires https://github.com/Icinga/ipl-web/pull/334
2026-01-22 14:40:57 +01:00
Sukhwinder Dhillon
279839d9da Align coding style to comply with latest PSR 2025-12-15 16:06:44 +01:00
Johannes Meyer
601753a76b Drop user, users, usergroup and usergroups endpoints 2025-11-17 13:21:32 +01:00
jrauh01
3c7228686c
Print redis config file if saving failed (#1272)
If saving the Redis settings fails due to a write error, the desired
configuration file content is now displayed so that the user can deploy
it manually (Same behavior as with database configuration).

For that a catch block is introduced on the `NotWritableError` that is
added to `IniWriter::write()` in
https://github.com/Icinga/icingaweb2/pull/5404.

Refs https://github.com/Icinga/icingaweb2/pull/5404
Resolves #1269
2025-11-17 13:19:13 +01:00
Jan Schuppik
c7cc328bf2
Enhancement/improve column opening behaviour (#1293)
Some checks failed
L10n Update / update (push) Has been cancelled
PHP Tests / Static analysis for php 8.2 on ubuntu-latest (push) Has been cancelled
PHP Tests / Static analysis for php 8.3 on ubuntu-latest (push) Has been cancelled
PHP Tests / Static analysis for php 8.4 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.2 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.3 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.4 on ubuntu-latest (push) Has been cancelled
This PR improves the UX in the IcingaDB Web interface by:
- Enhancing the page opening behavior in column views for smoother
navigation.
- Adding a search bar to the tabs Host Services, Host History and
Service History

## Resolves
- #981
- #1288
2025-11-14 12:36:11 +01:00
Johannes Meyer
6af3c7e595 CommandTransport: Implement chunked transmission handling
Previously, command forms were responsible for this. But they
don't have any notion of fallback handling and are unable to
ensure proper re-submission of failed batches.
2025-11-12 15:15:10 +01:00
Johannes Meyer
f88b6449b7 migrate: Drop search migration
Some checks failed
L10n Update / update (push) Has been cancelled
PHP Tests / Static analysis for php 8.2 on ubuntu-latest (push) Has been cancelled
PHP Tests / Static analysis for php 8.3 on ubuntu-latest (push) Has been cancelled
PHP Tests / Static analysis for php 8.4 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.2 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.3 on ubuntu-latest (push) Has been cancelled
PHP Tests / Unit tests with php 8.4 on ubuntu-latest (push) Has been cancelled
2025-11-06 09:44:32 +01:00
Johannes Meyer
5d068666d3 migrate: Drop monitoring url preview 2025-11-06 09:04:46 +01:00
Johannes Meyer
c2543454b1 migrate: Drop backend selection 2025-11-06 09:04:46 +01:00
Johannes Meyer
0a3b0b9afb Introduce new route icingadb/suggest/restriction-column 2025-10-27 11:11:23 +01:00
Johannes Rauh
def4dce4e3 Move problem toggle above shifting params
If the problem toggle is created after the params are shifted, it
redirects to the page without them. To solve this I simply moved
the problem toggle before shifting the params.
2025-10-15 10:30:45 +02:00
Sukhwinder Dhillon
eed9a3bc04 Move the HostController::joinFix() method to DependecyNode
- Centerlize the method
2025-07-10 09:17:50 +02:00
Sukhwinder Dhillon
823a575616 RedundacyGroupController: Fetch redundancy_group through DependencyNode to apply restrictions correctly 2025-06-17 15:08:48 +02:00
Johannes Meyer
3f1cdc0a85 forms/Command/Object: Show progress labels upon submit
fixes #1204
2025-06-10 15:24:22 +02:00
Johannes Meyer
2da207bedd commands: Send multiple commands while bulk processing
Reduces risk of timeouts in case Icinga takes its time to respond.
The timeout of 15 seconds introduced earlier has been kept.

Chunk sizes were chosen as follows:
- 1000: Cheap calculations (object features, check scheduling)
- 500: Expected disk writes (comments)
- 250: Process check result, Downtimes, Acks
2025-06-10 15:24:22 +02:00
Johannes Meyer
67b755b86d
RedisConfigForm: Catch write errors during save (#1208)
refs #1089
2025-06-10 15:23:52 +02:00
Sukhwinder Dhillon
8d67f55c30 Delete(Downtime|Comment)Form: Fix the incorrect success message 2025-05-21 16:47:35 +02:00
Will_i_code
56371be50c
Add support for redis acl/username and database selection (#1165)
resolves #1044
2025-05-14 09:53:32 +02:00
Johannes Meyer
08bbf39048 downtimes: Support automated removal 2025-05-12 16:59:07 +02:00
Johannes Meyer
c78d664f79 comments: Support automated removal 2025-05-12 16:59:07 +02:00
Johannes Meyer
ed4072221f controllers: Remove incorrect usage of trait CommandActions 2025-05-12 16:59:07 +02:00
marianrh
c4a8f4748f
Support setting a default comment for acknowledgements (#1178)
I propose to add a new option for setting a default comment for
acknowledging problems (`acknowledge_comment_text`), similar to the
existing `hostdowntime_comment_text` and `servicedowntime_comment_text`
options.

This originally was a pull request for Icinga Web 2
(https://github.com/Icinga/icingaweb2/pull/5365). I was asked to
implement this in Icinga DB Web as well. *However, since I'm not using
Icinga DB Web myself, this is untested.*

Beside adding the new feature, I also fixed a copy-and-paste error for
the `servicedowntime_comment_text` option.
2025-05-08 14:24:15 +02:00
Sukhwinder Dhillon
752aca7eb5 Controllers: Use paginationControl::getEmptyStateMessage() to set list's message 2025-05-08 14:19:13 +02:00
Sukhwinder Dhillon
3e49d8980b (Host|Service)Controller: Reset the query offset
This change was missing in the https://github.com/Icinga/icingadb-web/pull/734
2025-05-08 12:45:38 +02:00
raviks789
d3d746f2ec RedisConfigForm: Use empty string as default path for unset client certificate and key 2025-04-30 13:40:26 +02:00
Ravi Kumar Kempapura Srinivasa
807c57493b
Fix detail view links for services in flipped grid (#1167)
fixes #1080
2025-04-25 10:43:58 +02:00
Johannes Meyer
09df9368bf usergroup: Add fallback route which redirects to contactgroup 2025-04-10 15:04:41 +02:00