40 Commits
Author SHA1 Message Date
Roger Light 68504a0d05 Dashboard string improvements 2026-01-13 12:44:04 +00:00
Serhii Orlivskyi 0ca744ac8b Dashboard: regenerate tailwing to add break-word css prop
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 09:26:08 +00:00
Serhii Orlivskyi b96794f1a0 Dashboard: Rearrange charts
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 09:26:08 +00:00
Serhii Orlivskyi 2681679621 Dashboard: Use break-words instead of break-all for metric descriptions
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi a03b30029d Dashboard: Fix charts skipping 0 values
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 32267766f1 Dashboard: Add messages dropped chart
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 9cf8e146aa Dashboard: move chart colors into constants
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi f63fda3505 Dashboard: add loading skeleton for listeners page
Display a skeleton while listeners are still loading

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 9fc336b894 Dashboard: Add abort controller to abort in-flight request on navigation
Known bug: abort controller logic doesn't work properly in firefox
 because a general network error is fired before the abort callback.
 We would probably need to track the navigation-click event to overcome
 this.

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 502d2dcc19 Dashboard: Store sidebar state in sessionStore + improvements
* Load last sidebar state from sessionStore and render it on that state (only on desktop)
* Add sidebar background
* Refactor and simplify sidebar open/close logic, move some heavy lifting form JS to CSS

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi f1811e19de Dashboard: change link to docs
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi bf537148c0 Dashboard: fix mosquitto logo path on listeners page
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 73a2b88623 Dashboard: refactor css files locations
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi ab003280c4 Dashboard: refactor directory structure
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 7450be4d4c Dashboard: vertically center the banner
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-13 00:29:10 +00:00
Serhii Orlivskyi 154f5b1d50 Dashboard: regenerate tailwind CSS file
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi d57532523f Dashboard: change banner link sources
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 9d438459b1 Dashboard: remove redundant hidden class removal on banner download
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 5b72e1a65c Dashboard: remove typo in index.html
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 9e08d1fbdb Dashboard: minor improvements to metric detail pop-ups
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 36c5b66ac7 Dashboard: fix path to mosquitto logo
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 799dfc84ac Dashboard: fix default banner svg by scaling and including dimensions
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi fdfadd9063 Regenerate tailwind CSS file
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 7a5db15da2 Dashboard: change link sources
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 1d85271ffd Dashboard: don't wrap text in topic lists on mobile
Makes topic lists horizontally scrollable

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi 4cfab69b94 Dashboard: add a banner
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi dba7150ffe Dashboard: fix typo in the topic list
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Serhii Orlivskyi c7c253e619 Add dashboard main metric descriptions
Adds additional more verbose descriptions for the metrics displayed on
top of the dashboard. Descriptions are taken from docs on mosquitto.org.

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2026-01-06 15:05:26 +00:00
Roger A. Light 0dfbc7ab36 Fix links 2025-10-28 11:43:05 +00:00
Serhii Orlivskyi fab876ce41 Update Tailwind CSS file
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-08-04 18:37:27 +01:00
Serhii Orlivskyi 2ae1b66945 Add links to Mosquitto Pro
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-08-04 18:37:27 +01:00
Serhii Orlivskyi 2895eb7164 Add a headless mode for the dashboard
This makes dashbaord operational "in the background", makeing it
possible to update dashboard data on pages other than the dashboard page.

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-08-04 18:37:18 +01:00
Serhii Orlivskyi 35438c01ed Add a fallback for copy to clipboard functionality
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-08-04 18:37:18 +01:00
Roger A. Light 8fc1c1e07f Various fixes
Dashboard include paths
Libcommon.so not being installed
snacraft packaging update
http-api able to use compile time definition
2025-07-11 00:39:56 +01:00
Serhii Orlivskyi 8134ec5528 Pull version from systree endpoint instead of a separate one
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-07-10 17:05:18 +01:00
Serhii Orlivskyi 5f3eac8dd1 Regenerate tailwind CSS file
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-07-10 17:05:18 +01:00
Serhii Orlivskyi 9be4c52237 Add sticky header to index.html
Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-07-10 17:05:18 +01:00
Serhii Orlivskyi 1856dc8c3c Add listeners page
Adds a separate page detailing broker listenerns and shows how to
connect to each one.

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-07-10 17:05:18 +01:00
Serhii Orlivskyi 2a440bd3af Finsh dashboard
* Introduce a queue to exclude contention between tasks while chartjs is
updating charts/animating views.
* Fix a bug where chart updates triggered by interval timeout
  aren't stored in the SessionStore.
* Reinit all charts instead of reusing old chart objects when switching
between raw data and smoothed data views. This avoids issues with
buffered/stale state, which led to charts rendering incorrect data in certain cases.
* Pull uptime informatin from the systree endpoint.

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-07-10 17:05:18 +01:00
Serhii Orlivskyi b0884fbc23 Add web-based dashboard for system metrics
Adds a web-based user interface with a live dashboard for displaying system metrics. The metrics are coming from Mosquitto's HTTP API.
UI is written using basic web stack (HTML, CSS, and JS) without the use of the frameworks. All the dependencies (chartjs, chartjs-plugin-zoom, hammerjs) are stored in the `src/lib` directory. CSS classes generated with tailwind are in src/styles.css. The idea is to be able to serve the UI by starting a simple http server from dashbard/src/.
This UI can be further extended by adding additional web pages.

Signed-off-by: Serhii Orlivskyi <serhii.orlivskyi@cedalo.com> (Cedalo GmbH)
2025-07-08 09:49:58 +01:00