Adds a live-tennis-scores widget, backed by the public LiveTennisAPI.
Each match renders as a two-row scoreboard: per-set game scores, the
current game points, a serve indicator, and the winner once a match is
done. The `status` option switches between live, upcoming and completed
matches.
The API sends `Access-Control-Allow-Origin: *` and answers preflight, so
this fetches browser-side with no proxy configuration. Refreshes every
60s by default, to stay inside the free plan's 30 req/min limit.
Registers `live-tennis` in WidgetBase, adds the endpoint to
widgetApiEndpoints, documents the widget, and covers the rendering and
the null-score / stale-server edge cases with unit tests.
Introduce an optional per-item localUrl (e.g. a LAN address) that is
preferred over the regular url when reachable from the browser. A
background probe (default 10s interval, 5s timeout) checks
reachability of localUrl and falls back to url when unreachable,
enabling seamless remote/LAN switching without manual config changes.
- ItemMixin: add effectiveUrl computed + probe lifecycle (mount/destroy)
- Item/SubItem: expose localUrl-driven effective url to templates
- ConfigSchema: add localUrl, localUrlTimeout, localUrlCheckInterval
- docs/configuring.md: document the new properties
ClosesLissy93/dashy#1313
* feat: add ICMP ping check support to item
* Replaced ping package with pingman package to be compliant with Dashy CI NodeJS version (20).
Fixed a behavior bug in status indicator component which didn't changed icon to yellow when checking.
Made otherStatusText a computed field to make it reflecting dynamically a new check request.
Added more examples to default conf.yml
* Removed a forgotten trace to console
* Made changes requested by Lissy after review of the PR.
Corrected tests using localhost which is not a valid host for pingman.
Added a Validator.js file in src/utils with function to check validity of hosts.
Reverted conf.yml file to the original version.
* Fixed a problem in configuration of pingman call after adding support of IPV6 addresses.
* Updated Dockerfile to pass Docker smoke tests in CI
* Revert to latest version of `user-data/conf.yml` from `master`
* Removed the duplicated feature line for ping check and just added `hosts` to the existing one
* Removed the unused `shouldEnabledPingCheck` function
* Add the ping system package and give rights to use to the node user so the pingman module can work in Docker container
* Remove `src/utils/Validator.js` file. Rely on `pingman` internal validation of hostname instead to avoid command injection.