Commit graph

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