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)
* 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)
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)
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)
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)
* 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)
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)