diff --git a/README.md b/README.md new file mode 100644 index 0000000..7d91015 --- /dev/null +++ b/README.md @@ -0,0 +1,97 @@ +# Checkmk SwissKnife + +A [Tampermonkey](https://www.tampermonkey.net/) userscript that enhances the Checkmk 2.3.x web interface with quality-of-life improvements for WATO configuration and monitoring views. + +## Installation + +1. Install the [Tampermonkey](https://www.tampermonkey.net/) browser extension. +2. Click **Install script** below (or open the raw `.user.js` URL): + + [**Install Checkmk SwissKnife**](https://luigidacunto.com/scripts/checkmk-swissknife/user_script/checkmk_swissknife.user.js) + +3. Tampermonkey will detect the `@downloadURL` and prompt for updates automatically. + +**Compatibility:** Checkmk 2.3.x · Chrome · Firefox · Edge + +## Features + +### Folder Path Search +Replaces the default WATO folder dropdown with a searchable overlay. Type any segment of the folder path to filter — separators `>`, `›`, and `/` are treated as equivalent. + +Applies to: rule condition editor (`explicit_conditions_p_folder_path`) and monitoring view folder filter (`wato_folder`). + +--- + +### Accordion Badge Counts +Displays inline counters in each accordion section header on host edit pages: + +| Badge | Meaning | +|-------|---------| +| **orange `(N)`** | N checkboxes enabled in this section | +| **blue `↑N`** | N values inherited from a parent folder | +| **red `≠N`** | N values that differ from the folder default *(bulk edit only)* | + +Applies to: `edit_host`, `bulkedit`, `editfolder`. + +--- + +### Ineffective Rule Highlight +Replaces the low-visibility hyphen icon on ineffective rules with a prominent **`⚠ ineffective`** badge and adds an amber left border to the row. + +Applies to: `mode=edit_ruleset`. + +--- + +### Rule Match Status Highlight +When a ruleset is opened in context (URL contains `host=` and/or `service=`), colors each rule row: + +- **Green + `✓ match`** — rule applies to the given host/service +- **Dimmed + `✗ no match`** — rule does not apply + +Applies to: `mode=edit_ruleset` with host/service context. + +--- + +### Ruleset Filter Toggle +After match/ineffective highlighting runs, a **"Relevant only"** button appears above the rule list. Clicking it hides all non-highlighted rows and empty folders, leaving only the rules that matter for the current context. + +Applies to: `mode=edit_ruleset` (when at least one highlighted row exists). + +--- + +### Inventory Buttons on Monitoring Views +Adds three icon buttons before each hostname in monitoring view tables: + +| Button | Action | +|--------|--------| +| Screen icon | Opens **Service Discovery** for the host in a new tab | +| Clipboard icon (blue) | Copies the full FQDN to clipboard | +| Clipboard icon (purple) | Copies the short hostname (first label) to clipboard | + +Applies to: `view.py` host and service views. + +--- + +### Monitor Button on WATO Folder Pages +Adds a green eye icon next to each active (non-disabled) host in WATO folder listings, opening the host's monitoring view in a new tab. A summary badge on the section header shows monitored vs disabled host counts. + +Applies to: `wato.py?mode=folder`. + +--- + +### "Configure in WATO" Menu +Adds a paginated dropdown + **Open** button to the monitoring view menu bar. Selecting a page and clicking **Open** launches WATO in a new tab with exactly those hosts pre-filtered via regex search — ready for bulk configuration. + +- Up to 50 hosts per page (keeps URLs within safe length limits) +- Deduplicates hostnames automatically (useful on service views where hosts repeat) +- Only visible for users with WATO configuration access + +Applies to: `view.py` (admin/configuration role required). + +## How it works + +The script injects enhancements at page load and re-applies them on SPA navigation (Checkmk reloads content inside an `