User interface

ZbxWizz presents data as a multi-sheet workbook. Each sheet is an independent table with its own filters, transforms, and row data.


Menu bar

Menu What it does
File New workspace · Save / Load workbook .json
Data → Import CSV · Excel · From Zabbix · From JavaScript
Data → Export CSV · Excel · Chart data
Table Add rows · Reorder columns
Zabbix Pull (enrich rows) · Push (create / update / delete)
Tools Script editor (ad-hoc JavaScript)
Help In-app documentation · Zabbix API docs · Contact
Zabbix logo / status API URL, token, and bulk query mode (Connected / Not connected)

Footer: sheet tabs, New sheet, save icon, and Total / Selected / Visible counters.

An empty sheet also shows shortcut buttons for the four import paths (CSV, Excel, Zabbix, JavaScript).


Table layout

Each column header has a column index button that opens a menu:

Also:

Column numbers are 0-based. Empty trailing columns may appear as col0, col1, …

Large sheets use row virtualization (only visible rows are rendered) so CSV/API imports with thousands of rows stay responsive.


Row menu

Open from the row number button:

Action Behaviour
Row info JSON view of flds, data, cols, lastResponse, lastError
Duplicate row Clone the row
Delete row Remove the row
Insert empty row before / after Insert a blank row next to this one

Table menu

Table → Add rows asks how many empty rows to append (same as the hamburger Add rows action).

Table → Reorder columns opens a sortable list of field names; Save rewrites the header and every row to the new order.


Filtering

Filters are applied from the column menu. The term is inserted into a regular expression pattern (case-insensitive). Escape special characters (., *, (, …) with a backslash when you mean them literally.

Preset Behaviour
Empty / Not empty Match blank or non-blank cells
Contains / Does not contain Substring (regex)
Starts with / Ends with / Exact match Anchored match

The value dropdown lists unique values from that column for quick picks.

Multiple column filters combine with AND — a row must pass every active filter to stay visible.

Filters matter for transforms and for “select all visible”: expressions and bulk select ignore hidden rows. Pull and Push also skip hidden rows even if they are selected.

Clear errors (table hamburger) clears per-row error highlighting / lastError state after failed API calls.


Sheets

Each sheet has its own data and filters. Cross-sheet lookups in transforms use ws.sheetName (see Transformations).

From the table hamburger you can copy visible or copy selected rows into a new sheet. Duplicate on the tab menu clones the whole sheet (all rows and columns).


Footer statistics

Badge Meaning
Total All rows in the active sheet
Selected Rows with checkbox checked
Visible Rows not hidden by filters

Pull and Push run only on rows that are selected and visible.

The footer save icon forces a flush of the IndexedDB autosave.


Persistence

IndexedDB (workbook)

Sheet list and row data are stored in the browser IndexedDB database zbxwizz (keys like worksheets and sheet-{name}-data). This avoids the ~5MB localStorage limit for large workbooks.

Autosave is debounced after edits; the footer save icon forces a flush. Closing or hiding the tab also flushes pending saves.

Older installs migrate sheet keys from localStorage once.

localStorage (prefs)

Still used for:

Data Keys (patterns)
API URL / token / query mode zbxUrl, zbxToken, zbxBulkQueryMode
Request templates importReqTpl_*, pullReqTpl_*, pushReqTpl_*, …
Saved transforms transfo_*
Script editor drafts script, script_*

File Save / Load

Before risky Push/Delete runs, save a workbook file and/or export CSV/Excel.


Script editor

Tools → Script editor opens the Script player: an Ace JavaScript editor for ad-hoc automation against the current session.

Control Behaviour
Editor Ace with JS mode; draft restored from localStorage script
Play Runs the body as an async function (eval); return value (or thrown error) appears in the debug area
Named scripts Save / load scripts under script_* in localStorage
dbg(text) Append a line to the debug textarea while the script runs

Scripts can use the same session objects as transforms (ws, helpers such as json / obj, and anything else already in page scope). Prefer column transforms and Pull/Push templates for repeatable work; use the script editor for one-off exploration or multi-step glue.


Responsibility banner

The empty workbook area shows a short responsibility reminder (“with great power…”). There is no separate accept gate — Push/Delete still require confirmation dialogs when you run them.

Edit this page on GitHub

← All documentation