store names as {id: name, ...}, not [{id, name}, ...]
entries appear the same way, and js stores keys in the insertion order
fixup numbers converted to strings
fixup select options typing to accept [string, string] instead of [number, string]
de-hardcode sch and led enumeration types from .html
publish raw type & pretty-string from .cpp indexed settings
de-fpstr string view references, use the object directly
publish 'faulty' schedule specs indexes, focus & report elems
ref. #2626
should fix faulty enum<->number references in selects
ref. #2628 - schedule types were numeric, while websocket delivered strings
- customize will topic qos and retain, ref. #2616
- allow to fully replace will and json topics.
empty string means the default <root>/<name>
replacement is taken as-is, after applying placeholders
- validate will and data topic structure before connecting
- validate {suf,post}fix as {suf,post}fix, not as topic
> (node:1916) Warning: Closing file descriptor 31 on garbage collection
> (Use `node --trace-warnings ...` to show where the warning was created)
> (node:1916) [DEP0137] DeprecationWarning: Closing a FileHandle object on garbage collection is deprecated. Please close FileHandle objects explicitly using FileHandle.prototype.close(). In the future, an error will be thrown if a file descriptor is closed during garbage collection.
> (node:1916) Warning: Closing file descriptor 32 on garbage collection
per https://nodejs.org/api/deprecations.html#DEP0137
explicitly close after reading
Reference calendar time of other schedules, user-created named events
or the sun{rise,set} (when enabled)
For example
- '15m before sunset'
- '30m after cal#0'
- '1h15m after "foobar"'
Empty time spec is allowed, defaults to '1m'
'before sunrise' is the same as '1m before sunrise'
Internals are reworked to handle a more generalized 'Event' type, based
on the 'time point' and 'event' base classes fron sunrise and sunset
Sunrise and sunset should also track 'last' event as well as 'next
(not currently displayed anywhere, though)
- distinguish heading and selected menu item, apply menu item
background color after panel item is selected
for now, both heading and :first-child use a different color
- add x3 transition time to stall animation from hover & focus
otherwise, background colors may linger between clicks
Fixing inconsistent handling of group and non-group settings after rewrite.
Assuming most of the time template would be for group, manually reset
dataset field controlling automatic key${id} generation
- same as min & max delta, check the value itself before reporting
- refactor more of the report func, revert zero threshold to force the
value to be zero. move condition check to the top, causing every other
filter to check against zero.
- force zero threshold to be >= 0 in ui
- preserve units for cached values, remove extra process() call for webui data
- reset magnitude filter state when value units change
- min & max delta checks only for report value, remove separate checks for read and report
- zero threshold only affects reports, amend ac993c7b4b
- pending BaseFilter::available() and BaseFilter::ready(), replacing BaseFilter::status()
distinguish readiness between having *some* values and *enough* values
- pending BaseFilter::restart(), separate from BaseFilter::reset(), which
should allow filter to drop existing value when it is not possible otherwise
w/ just continuing normal BaseFilter::update()
move isChanged check to validator, always return both inputs for the given form
add assumeChanged?: boolean to opts, allowes forced check (similar to getData option)
small layout test for password and general forms, resolve#2613
attempt to make 'original' === undefined return consistent value