Zaid Humaimidi
6f3ce6f7c8
refactor: replace array-based expressions with typed class hierarchy
...
Replace the old Lisp-like array expression representation
(["AND", ["PARAM", ...], ...]) with a class hierarchy rooted in
an abstract Expression class (Literal, Parameter, Binary, Unary,
FunctionCall, Conditional). This gives compile-time type safety
to expression construction, evaluation, and pattern matching.
Key changes:
- New lib/common/expression.ts defines the class hierarchy with
map/evaluate/toString methods
- Rewrite parser as hand-rolled recursive descent, removing the
parsimmon dependency
- Extend Path with a colon separator to unify parameter identity
and attributes into a single address space (e.g.
"Device.WiFi.SSID.1.Name:writable"). The colon field tracks
how many trailing segments are attribute qualifiers. PathSet
rewritten with separate param/attr segment indexes
- Flatten device attribute representation in the UI to
colon-delimited keys mirroring the new path syntax
2026-03-12 14:58:20 -07:00
Zaid Humaimidi
75908e624f
build: migrate eslint to v10 flat config and upgrade typescript
...
Replace .eslintrc.json with eslint.config.js using the new flat config
format required by ESLint 10. Swap @typescript-eslint/eslint-plugin and
@typescript-eslint/parser for the unified typescript-eslint package.
Upgrade TypeScript to 5.9 and @types/node to 25. Apply automatic code
fixes: remove unused catch bindings and preserve error cause in auth
header parsing.
2026-03-12 14:58:19 -07:00
Zaid Humaimidi
4a191afdec
feat(ui): redesign UI with Tailwind CSS, CodeMirror 6, and new layout
...
- Replace all hand-written CSS with Tailwind utility classes
- Upgrade CodeMirror 5 to CodeMirror 6 (scoped @codemirror/* packages)
- Redesign layout with responsive sidebar navigation using JSX/Mithril
- Flatten admin routes (e.g. /admin/presets -> /presets)
- Add "remember me" login option with 2-week persistent cookie
- Add delete confirmation dialogs across admin pages
- Upgrade esbuild from 0.21 to 0.27 and update browser targets
- Add Inter and Roboto Mono variable fonts with subset script
2026-03-12 14:55:10 -07:00
Zaid Humaimidi
729beba0ed
Update dependencies
2026-03-12 12:38:03 -07:00
Zaid Humaimidi
2b61c8f7b8
Fix race condition when deleting multiple faults
2024-05-23 13:22:35 -07:00
Zaid Humaimidi
756912eeb1
Fix dynamic evaluation of UI config expressions
2024-04-22 14:14:12 -07:00
Zaid Humaimidi
1c61504a68
Fix regression in f3068c5
2024-03-01 09:43:52 -08:00
Zaid Humaimidi
f3068c5355
Improve pagination/sorting
2024-02-24 04:26:40 -08:00
Zaid Humaimidi
0dee9a5f00
Remove license headers and update imports
2023-12-18 19:13:59 -08:00
Zaid Humaimidi
bfbbdb12ca
Fix label issue in some components
2023-12-18 11:33:49 -08:00
Zaid Humaimidi
0c9c027a77
Update linting
2023-12-16 19:08:13 -08:00
Zaid Humaimidi
4f2dfb4f48
Drop Rollup in favor of esbuild
2023-12-12 22:27:58 -08:00
Zaid Humaimidi
342210faf1
Utilize locks to prevent certain edge case issues
2023-12-06 11:10:23 -08:00
Zaid Humaimidi
c3954c277f
Refactor db and local-cache code
...
Separated cwmp and ui code into distinct files to enhance clarity and
maintainability with varied internal data representations.
2023-09-29 14:55:44 -07:00
Zaid Humaimidi
4b0d1786dd
Strip extraneous properties from task objects
2023-08-28 18:19:23 -07:00
Zaid Humaimidi
32dda9f194
Add indexable smart query types
2023-08-14 23:45:37 -07:00
Divya Jagadish
c7022a2735
Add show option in permissions page
2023-08-11 15:37:43 -07:00
Zaid Humaimidi
3169e829e7
Refactor expression to Mongo query translation
...
The previous approach was simplistic and could result in inefficient queries
in certain edge cases, notably causing MongoDB to not utilize existing indexes
when querying by last inform timestamps given upper and lower bounds. The new
implementation leverages our existing expression minimizer code and can
therefore generate more efficient queries or at least queries that can take
advantage of existing indexes.
2023-08-09 19:48:49 -07:00
Zaid Abdulla
25ea0c8b64
Update dependencies
2022-08-22 09:44:25 -07:00
Zaid Abdulla
6f29267266
Fix HTML Quirks mode issues
2022-06-29 11:07:42 -07:00
Divya Jagadish
3d0ac9b415
Uses debounce function for parameter search
2022-04-08 13:09:04 -07:00
Divya Jagadish
dabf1b2f43
Improve sorting behavior by adding delay
2022-04-08 13:08:41 -07:00
Zaid Abdulla
dd722ba6e0
Improve sorting toggle behavior
...
Last sorted column now takes precedence over any previously sorted
columns. This makes for a more intuitive user experience.
2021-10-25 13:36:23 -07:00
Zaid Abdulla
88a84788a5
Evaluate component attrs before use
2021-10-24 18:17:03 -07:00
Zaid Abdulla
73baffc3b9
Improve container component
...
Allow passing custom attribute to the HTML element. Implement function
encodeUriComponent for attribute expressions.
2021-10-24 18:14:36 -07:00
Zaid Abdulla
529386a9b6
Prevent invalid YAML config from bricking the UI
2021-09-16 13:27:37 -07:00
Zaid Abdulla
9706026ea5
Update Prettier
2021-09-16 13:27:37 -07:00
Zaid Abdulla
c3c7ab72b2
Utilize ?. operator and set TypeScript target
2021-09-16 13:27:37 -07:00
Zaid Abdulla
53bb4d3552
Fix filters resetting user input on redraw
2021-09-16 00:17:21 -07:00
Zaid Abdulla
0861b2db40
Update TypeScript
2021-09-16 00:17:21 -07:00
Zaid Abdulla
cc885e7d04
Update mithril types
2021-08-13 14:36:59 -07:00
Zaid Abdulla
359eca7bbc
Fix upload metadata missing when behind nginx
2021-08-11 13:08:27 -07:00
Zaid Abdulla
da01793ac5
Fix inability to close unsupported preset notif
2021-08-02 14:32:32 -07:00
Zaid Abdulla
6ce91df127
Display progress bar when uploading file
2021-07-27 14:18:35 -07:00
Zaid Abdulla
1a53a320da
Detect and correct for client side clock skew
2021-07-25 12:48:42 -07:00
Zaid Abdulla
f290ce696f
Support custom types for uploaded files
2021-03-12 15:30:13 -08:00
Zaid Abdulla
556424d4d6
Fix missing padding at bottom of page in Chrome
2021-03-12 13:08:45 -08:00
Zaid Abdulla
8f69b74a89
Update dependencies
2021-02-24 22:37:13 -08:00
Zaid Abdulla
688811317c
Display spinner animation during loading
2021-02-16 00:09:24 -08:00
Zaid Abdulla
540898de21
Add file download link in files page
2021-02-08 15:02:40 -08:00
Zaid Abdulla
1e6ab38ede
Display xsd:dateTime types as ISO string
2021-01-31 11:39:02 -08:00
Zaid Abdulla
ca36bf1b64
Handle UI component errors gracefully
2021-01-25 16:30:47 -08:00
Zaid Abdulla
79cb0b02d0
Fix jarring outline color
2021-01-25 15:15:32 -08:00
Zaid Abdulla
44748e5769
Remove webpack
...
We no longer need webpack to polyfill dynamic imports because the vast
majority of browser now support ES modules and dynamic imports.
2021-01-25 13:16:56 -08:00
Zaid Abdulla
6cca59c666
Better syntax error message when saving script
2021-01-24 14:17:31 -08:00
Zaid Abdulla
cc89fd92d7
New simple implementation for YAML serialization
...
Tiny in size so we don't need to fetch the 80KB yaml package for simple
YAML serializaiton needs in various pages. It's also 8x faster than
yaml package so that's a big plus for debug logging.
2021-01-21 13:03:52 -08:00
Zaid Abdulla
134ca46dde
Display version number underneath the logo
2021-01-13 14:27:33 -08:00
Zaid Abdulla
5571ce96b4
Fix exception in ping component
...
The exception happens when ConnectionRequestURL is not a valid URL.
2021-01-06 05:09:09 -08:00
Zaid Abdulla
c950c73e76
Add option to set limit in all-parameters comp.
2020-12-09 18:08:56 -08:00
Zaid Abdulla
e64001cddc
Accept primitive expressions in filter component
2020-11-16 15:20:48 -08:00