17 Commits

Author SHA1 Message Date
Maxim Prokhorov
ed32ab20ba build(scripts): sync & generate config/arduino.h 2025-06-26 03:11:41 +03:00
Maxim Prokhorov
525808ebf1 ci(scripts): build.sh no longer used 2025-06-25 03:54:38 +03:00
Maxim Prokhorov
e4b5dcb232 webui(build): consistent zlib header mtime and os-code 2025-03-31 19:55:14 +03:00
Maxim Prokhorov
5c0c20d046 webui(build): cleanup ci & mention tools in the readme
no need to manually invoke things when gulpfile already does it
c/p commands into the readme to handle any other use case
2025-03-31 19:55:14 +03:00
Maxim Prokhorov
0e4ae21368 webui(lint): explicit file patterns
eslint v9 replaces empty pattern list with a ['.']

ignore known directories when running locally
explicit paths for eslint in the ci script
2025-03-19 23:56:03 +03:00
Maxim Prokhorov
31a838fab7 webui: vitest specs 2024-07-02 18:52:51 +03:00
Maxim Prokhorov
f58d086dd6 webui: gulp tasks as module exports
per https://gulpjs.com/docs/en/getting-started/creating-tasks/
gulp --tasks[-*] now actually works

update jsdoc comments and eslint rules
2024-06-24 22:42:00 +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
dd1609a9d1 ci: try to pio-run too
include caching of libraries
test github actions syntax magic as well
2022-10-27 18:03:47 +03:00
Maxim Prokhorov
932279f79f ci: separate exec args 2022-01-14 03:57:13 +03:00
Maxim Prokhorov
eaa2e370eb ci: use esp8266 mock framework
Resolve the issue with the UnixHostDuino not really being compatible
with the esp8266 Core String (...and the rest of the Core, as well)

Port the CMakeLists.txt from the rpnlib and update it use FetchContent
instead of either manually fetching dependencies or using PIO artifacts
Caching is *expected* to work, but might need slight adjustments
2022-01-13 04:04:37 +03:00
Maxim Prokhorov
2d1528d856 webui: fix password webMode
make sure the form name is used, not the panel one
also clean-up the api, so it's only mentioned once for both handlers
fix #2461
2021-08-01 07:02:07 +03:00
Maxim Prokhorov
433f399d9c ci: eslint and html-validate from node_modules
per https://docs.npmjs.com/cli/v7/commands/npm-exec#compatibility-with-older-npx-versions
using --no / --no-install to avoid installing latest versions

making sure ci_install handles that instead, since the specific version in set via the package.json
(hopefully, npm docs actually mean that this will work)
2021-07-18 23:36:56 +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
c34acf1748 ci: latest Core and split webui test into a separate job 2021-06-20 17:25:20 +03:00
Maxim Prokhorov
74e18a59bc scripts: update build.sh
- remove version handling, PIO already does this for us
- directly set generate_release_sh.py arguments instead of having a
getopt proxy for each one (and having to deal with short-arg support)
- slightly more logs for the build process
2021-06-07 03:54:47 +03:00
Maxim Prokhorov
f11468abba ci: github actions
- remove .travis.yml
- ./travis_{script,install}.sh -> ./ci_{script,install}.sh
- flush stdout in test script to see logs more promptly
- adjust git config to ignore 'detachedHead' warnings
2020-12-30 22:44:28 +03:00