47 Commits

Author SHA1 Message Date
Maxim Prokhorov
d745f5f633 webui(build): bump versions in package.json
solves dependabot noise, where unused packages get irrelevant issue triggers
pre 4.x.x vite, pre 6.x.x vitest. html-validate glob dependency also bump'ed
2025-11-29 21:20:13 +03:00
Maxim Prokhorov
b2fa614c39 webui(build): un-vendor clone-stats & bump deps
amends 9ccef13050
fixed in vinyl-fs 4.0.1
2025-06-01 05:57:55 +03:00
Maxim Prokhorov
9dc57878c1 webui(build): build params & vite dev support
- experimental vite dev server support
- gulp webui_build & webui_PRESET -> build
- gulp task params for build and dev server
- bundle sources using rollup in both gulp and vite
- PRESET lib to manage available modules and their constants
  replacing 'define' method of .js code treeshaking
2025-04-14 01:14:13 +03:00
Maxim Prokhorov
9ccef13050 webui(build): vendor clone-stats & bump deps 2025-03-31 20:54:12 +03:00
Maxim Prokhorov
6acb8c5a16 webui(build): through2 -> node:stream Transform
drop local dependency on through2 in favour of node:stream
but, still ensure that things work for gulp-style File streams
2025-03-31 19:55:13 +03:00
Maxim Prokhorov
108ee655fe webui(build): pipeline instead of pipe
ref.
https://github.com/gulpjs/gulp/issues/2812
https://nodejs.org/en/learn/modules/how-to-use-streams#how-to-operate-with-streams
https://nodejs.org/en/learn/modules/how-to-use-streams#pipeline

while the gulp issue refers to this as a workaround, this is actually the
proper way to handle streams, merging streams and applying transformations

webserver code still spawns the pipe(line) unconditionally, though
2025-03-31 19:55:13 +03:00
Maxim Prokhorov
6384955e04 webui(build): clone-stats override for node-22+
avoid deprecation warning from incorrectly cloned fs.Stats{}
https://www.npmjs.com/package/clone-stats-node22
2025-03-31 19:55:13 +03:00
Maxim Prokhorov
d16fd98006 webui(build): bump npm dependencies 2025-03-19 23:55:52 +03:00
Maxim Prokhorov
abbf7218f4 webui(build): rename files inline
note node-22 currently harmless deprecation warning coming from vinyl-fs clone()
2025-03-05 19:09:03 +03:00
Maxim Prokhorov
39f2fa14cc webui(build): bump esbuild & vitest 2025-03-05 18:44:06 +03:00
Maxim Prokhorov
abccb314e9 webui: package .json version bump
resolve #2621
resolve #2619

specifically, bump jsdom to 25.0.1 to fix tough-cookie dependabot trigger
2024-10-22 10:06:28 +03:00
Maxim Prokhorov
350da6e94c build: consistent package versions used in webui script
limit possible stream impls to readable-stream v3 & streamx
2024-07-12 16:52:30 +03:00
Maxim Prokhorov
13ca2149db webui: real index override w/ sourcemaps
generate debugable .html output per build flavour
drop device-fs-friendly blobs from the repo, expect local rebuild
2024-07-08 10:16:41 +03:00
Maxim Prokhorov
31a838fab7 webui: vitest specs 2024-07-02 18:52:51 +03:00
Maxim Prokhorov
001f9dfbf3 webui: gulp-replace dependency clean-up
throw out broken package.json dependencies related to @types/...
plus, current pipe order needs neither stream or regexp implementations
2024-06-25 17:53:50 +03:00
Maxim Prokhorov
289fea4f3d webui: separate sources per module
* migrate to esbuild from terser, since now js source needs bundling
* (temporary?) hijack inline-source object handling to inline html files
* get rid of legacy removeIf comments in source in favour of explicit
  removal either through bundling tree-shaking and / or manual module-*
  class element removal w/ jsdom
* get rid of multi-layered custom checkboxes in favour of
  `appearance: none` directly styling the `input` elem
  also removes scripting part that was supposed to adjust for=... labels
* update to html-minifier-terser, up-to-date html-minifier fork
* update to iro.js 5.5.x, using npm to manage dependencies
* build script can now update resulting html output
  (called after bundling stage, before minification)
2024-06-22 19:49:59 +03:00
Maxim Prokhorov
bc711dda4e webui: bump gulp to 5.0.0 2024-05-29 07:50:19 +03:00
Maxim Prokhorov
4a8a8e1913 webui: bump eslint to 9.3.0 2024-05-29 07:36:03 +03:00
Maxim Prokhorov
9a8466f622 webui: pending stylelint 2024-05-29 07:27:20 +03:00
Maxim Prokhorov
cf9ec76d2f webui: bump to inline-source-8.0.3
remove yet another deprecated gulp plugin, just calling it w/ through2
2024-05-29 05:08:46 +03:00
Maxim Prokhorov
c70fe1a016 web: bump html-validate@8 again
fixes 3f1cf8cd *-dup false positives
2024-04-12 00:22:38 +03:00
Maxim Prokhorov
3f1cf8cd04 webui: autocomplete="off" fixes
update dev html-validate@8 and eslint
workaround for form-dup-name (false-positive?)
2024-03-19 19:51:53 +03:00
Maxim Prokhorov
afb24f7ba6 webui: bump html-validate to 7.6.0 2022-10-23 03:56:19 +03:00
Maxim Prokhorov
aa84f98d5f webui: bump eslint to 8.26 2022-10-23 03:49:06 +03:00
Maxim Prokhorov
95b89daaea webui: bump again for html-validate 2022-01-14 04:05:06 +03:00
Maxim Prokhorov
fa3deeffbf webui: remove jquery dependencies and clean-up websocket API
Refactor WebUI:
- remove jquery dependency from the base custom.js and use vanilla JS
- remove jquery + jquery-datatables dependency from the RFM69 module
- replace jquery-datatables handlers with pure-css table + some basic cell filtering
  (may be incomplete, but tbh it is not worth additional 50Kb to the .bin size)
- introduce a common way to notify about the app errors, show small text notification
  at the top of the page instead of relying on user to find out about errors by using the Web Developer Tools
- replace <span name=...> with <span data-settings-key=...>
- replace <div> templates with <template>, disallowing modification
  without an explicit DOM clone
- run `eslint` on html/custom.js and `html-validate` on html/index.html,
  and fix issues detected by both tools

Streamline settings group handling in custom.js & index.html
- drop module-specific button-add-... in favour of button-add-settings-group
- only enforce data-settings-max requirement when the property actually exists
- re-create label for=... and input id=... when settings group is
  modified, so checkboxes refer to the correct element
- introduce additional data-... properties to generalize settings group additions
- introduce Enumerable object to track some common list elements for
  <select>, allow to re-create <option> list when messages come in
  different order

Minor fixes that also came with this:
- fix relay code incorrectly parsing the payload, causing no relay names
  to be displayed in the SWITCHES panel
- fix scheduler code accidentally combining keys b/c of the way C parses
  string literals on separate lines, without any commas in-between
- thermostat should not reference tmpUnit directly in the webui, replace with
  module-specific thermostatUnit that is handled on the device itself
- fix index.html initial setup invalid adminPass ids
- fix index.html layout when removing specific schedules
2021-07-18 23:30:32 +03:00
Maxim Prokhorov
8df23392a9 webui: clean-up cfd6e36dbe
update to terser v5
replace gulp-remove-code with a rough equivalent in the gulpscript itself
replace gulp-inline with gulp-inline-source-html
remove base64 modules as redundant when running inline-source (does both)
remove crass as redundant when running inline-source (uses csso)
fixup jquery source map comment (but still keep the actual file)

at least now this seems stable enough to start more of the ui tweaking
2021-01-16 20:40:23 +03:00
Maxim Prokhorov
3e0291e534 webui: bump old deps 2021-01-15 23:06:19 +03:00
Maxim Prokhorov
cfd6e36dbe webui: use terser as js minifier
support es6 syntax
use js comment style in custom.js
only minify the custom.js

using 4.x branch, since 5.x wants async / await and more changes to the gulp script
2021-01-15 22:45:44 +03:00
Max Prokhorov
65d5a50b0b Update to gulp@4 2018-12-09 00:03:55 +03:00
Max Prokhorov
1383b4441e Update npm packages
Bump npm version installed by travis
Update package-lock for latest npm version
Bump packages versions and clean-up unused
Missing datatables.js images to avoid warnings
2018-09-22 05:04:20 +03:00
Xose Pérez
1c755cfb89 Pre-build the different available WebUI images 2018-06-22 20:19:39 +02:00
Xose Pérez
7b63521c80 Added map-stream to dependencies 2018-06-21 18:18:31 +02:00
Xose Pérez
2dd60912cc Silent webui build on commit 2018-06-21 18:09:34 +02:00
Xose Pérez
79cb59b06c Adding filtering code to HTML and JS files 2018-06-16 23:00:15 +02:00
Xose Pérez
86d9ee8009 CSS optimization (#870, #871) 2018-05-21 12:48:04 +02:00
Xose Pérez
3f9d99a7d3 Added missing dependency on gulp-crass 2018-03-31 12:37:07 +02:00
Xose Pérez
6f62758244 Using crass for CSS minification 2018-03-30 23:31:51 +02:00
Xose Pérez
191e805b78 Remove dependency from gulp-util (#493) 2018-03-02 14:01:25 +01:00
Xose Pérez
939a1e184a Added CSS lint to gulp file 2018-01-26 23:54:38 +01:00
Xose Pérez
8b87f70696 Add HTML linter to gulp builder, fix issues with HTML 2017-12-08 09:59:06 +01:00
Xose Pérez
295c0518cb Cleanup gulp dependencies 2017-07-14 23:00:04 +02:00
Xose Pérez
9d9f0e9a02 Embed images and favicon into HTML file 2017-02-17 23:38:29 +01:00
Xose Pérez
0f5a0e8f75 Forward to password change page if default password 2016-12-12 00:08:34 +01:00
Xose Pérez
3a47bd402c Update filesystem builder script removing unnecessary dependencies and changing default target 2016-11-14 22:33:29 +01:00
Xose Pérez
88de7f51d0 Complete update 2016-10-06 11:53:58 +02:00
Xose Pérez
5666cd5198 Using gulp to build file system files 2016-09-01 00:34:03 +02:00