Commit graph

3353 commits

Author SHA1 Message Date
Fabio Manganiello 30bbc396fb
[Automatic] Updated UI files 2024-01-06 21:27:39 +00:00
Fabio Manganiello 6e1ab92298
New components cache management.
The cache is no longer generated at runtime when the application runs -
which may take quite a while, especially on fresh installations.

A `components.json.gz` file is instead generated by the CI/CD process on
every commit to the main branch, and distributed with the package.

The application will read this file when the `inspect` plugin is first
initialized.

This also means that we can no longer cache the `install_cmds`, as they
change depending on the target OS. A new
`application.get_install_commands` action has now been made available to
the UI, so it can get the correct installation commands at runtime.
2024-01-06 22:21:59 +01:00
Fabio Manganiello ef885e096f
Added inspect.get_pkg_managers internal action.
It will be used by the UI to put together the installation commands.
2024-01-06 03:02:31 +01:00
Fabio Manganiello e1b6be7673
Marshmallow has replaced field.default with field.dump_default. 2024-01-05 02:56:10 +01:00
Fabio Manganiello 8fd5009553
[foursquare] Proper cast to number for db variables which may be strings. 2024-01-05 02:56:10 +01:00
Fabio Manganiello 5167597ace
[Automatic] Updated UI files 2024-01-05 01:27:29 +00:00
Fabio Manganiello afee6c5c85
[music UI] Implemented infinite scroll for playlist view.
Instead of loading all the tracks in the DOM (very inefficient and slow
on slow devices and/or with big playlists), we should keep a window of
100 items in the screen and roll it over the playlists as the status
change or the user scrolls.
2024-01-05 02:19:38 +01:00
Fabio Manganiello 91a8fd3b56
[system] A more robust logic to parse cache size from cpuinfo. 2024-01-04 13:55:08 +01:00
Fabio Manganiello 9c3da7a2a9
Several improvements for request/procedure execution.
- Fixed regression introduced by incorrect format string in `exec`.

- LINT for the `procedure` module.

- Apply `Message.Encoder` when dumping values from the context.
2024-01-04 13:13:16 +01:00
Fabio Manganiello b72fb83d18
Merge branch '286/merge-foursquare-backend' 2024-01-01 23:00:55 +01:00
Fabio Manganiello 4aeff10a5d
[#286] Merge Foursquare backend and plugin.
Closes: #286
2024-01-01 22:54:18 +01:00
Fabio Manganiello efe46386f4
[Entities UI] Reverted .extension-container max-width. 2024-01-01 14:27:18 +01:00
Fabio Manganiello b8f8236c28
[Automatic] Updated UI files 2024-01-01 13:24:56 +00:00
Fabio Manganiello 35772c0ae3 [Entities UI] Reverted .extension-container max-width. 2024-01-01 13:23:24 +00:00
Fabio Manganiello 3fbb0d289b Fixed docstring 2024-01-01 13:23:24 +00:00
Fabio Manganiello 7f13e02803
Fixed docstring 2023-12-31 04:34:42 +01:00
Fabio Manganiello 1abf8c964a
Merge branch 'master' into 287/github-backend-migration 2023-12-30 16:29:51 +01:00
Fabio Manganiello 5eb09eab1a [#287] Migrated github from a backend to a runnable plugin.
Closes: #287
2023-12-30 15:28:16 +00:00
Fabio Manganiello 2701f69d17
[#287] Migrated github from a backend to a runnable plugin.
Closes: #287
2023-12-30 16:28:12 +01:00
Fabio Manganiello a2a07afc05
[UI] Better default scrollbar width on Webkit. 2023-12-30 13:41:45 +01:00
Fabio Manganiello 0fb1035331
[Automatic] Updated UI files 2023-12-30 12:38:57 +00:00
Fabio Manganiello 12a043d67e
[Automatic] Updated UI files 2023-12-30 03:39:44 +00:00
Fabio Manganiello 57737b1b72
[Entities UI] Don't disable/set loading=true on properties during initial refresh. 2023-12-30 04:42:51 +01:00
Fabio Manganiello 5bec01a389
[Automatic] Updated UI files 2023-12-29 23:04:08 +00:00
Fabio Manganiello 2c429e9003
[Music UI] Fixed alignment of buttons in the playlist header. 2023-12-30 00:06:56 +01:00
Fabio Manganiello 2575d6cbc5
[Extensions UI] Fix hljs.highlight call to match new API. 2023-12-30 00:04:31 +01:00
Fabio Manganiello 7e58044804
[Automatic] Updated UI files 2023-12-29 03:04:26 +00:00
Fabio Manganiello 171ed7f743
[Entities UI] Better refresh logic. 2023-12-29 03:45:17 +01:00
Fabio Manganiello 2546a582d2
[Automatic] Updated UI files 2023-12-25 12:44:31 +00:00
Fabio Manganiello ce1e8513d4 [music UI] Several UI improvements 2023-12-25 12:43:00 +00:00
Fabio Manganiello be54469df0 [music UI] Fixed search form. 2023-12-25 12:43:00 +00:00
Fabio Manganiello 0de322fb95
[assistant.google] Propagate plugin name as a string to events.
This also makes it easier to programmatically stop conversations on
`SpeechRecognizedEvent` with a matched phrase.
2023-12-21 00:28:27 +01:00
Fabio Manganiello 199b42584f
Updated reference configuration sample for alarm. 2023-12-18 14:05:35 +01:00
Fabio Manganiello b107496fbd
[Automatic] Updated UI files 2023-12-18 12:56:41 +00:00
Fabio Manganiello 9cad27335d
[UI] Attribute sort. 2023-12-18 13:53:09 +01:00
Fabio Manganiello cfc7a5a6a0
[alarm] Added media_repeat configuration. 2023-12-18 13:46:45 +01:00
Fabio Manganiello 52fd64a162
[alarm] Added dismiss_interval configuration. 2023-12-18 03:01:27 +01:00
Fabio Manganiello 250858fe99
[Alarm UI] Added snooze/dismiss modal when alarm is running. 2023-12-18 01:36:58 +01:00
Fabio Manganiello aff02e0732
[alarm] Include type='alarm' in Alarm.to_dict().
This is for compatibility with other backend/frontend components who
expect valid entities on events or responses, and hence may break if
`type` is not specified.
2023-12-18 01:13:46 +01:00
Fabio Manganiello 29f65371d8
[Alarm UI] Support for adding/removing alarms. 2023-12-18 00:12:16 +01:00
Fabio Manganiello e617a9fe82
[alarm] Added alarm.delete. 2023-12-18 00:05:34 +01:00
Fabio Manganiello b7423e1c34
Added AlarmEditor component. 2023-12-17 17:53:38 +01:00
Fabio Manganiello 430a111303
[alarm] Better default actions inference in alarm.edit. 2023-12-17 17:53:08 +01:00
Fabio Manganiello b0feb8ed8f
[UI] Fixed regex match for initSelectedPanel. 2023-12-17 17:52:43 +01:00
Fabio Manganiello 9d456281a6
[Entities UI] Removed unrequired z-index on header. 2023-12-17 17:52:15 +01:00
Fabio Manganiello 5972c728a4
[Chore] Upgraded hljs.highlight API.
The old API, (lang, code, ...args), is now deprecated.
2023-12-16 23:49:25 +01:00
Fabio Manganiello b916c98b70
[ProcedureEditor] Emit input upon action changes. 2023-12-16 23:29:57 +01:00
Fabio Manganiello 1bd2361a3d
[TimeInterval] Refresh value on mounted. 2023-12-16 23:27:22 +01:00
Fabio Manganiello d4543c2fb7
Added ProcedureEditor component. 2023-12-16 19:03:46 +01:00
Fabio Manganiello 07a144aadc
[ActionTile] Support for drag and drop. 2023-12-16 19:00:04 +01:00
Fabio Manganiello 837007132d
[FloatingButton] Better default colors. 2023-12-16 18:59:30 +01:00
Fabio Manganiello 3bc27a505f
[UI] setUrlArgs should remove args when value == null. 2023-12-16 18:58:31 +01:00
Fabio Manganiello 065f7d74a5
[ActionTile] Better hover style. 2023-12-16 14:23:46 +01:00
Fabio Manganiello 63767cb87c
[UI] Added ActionTile component. 2023-12-16 14:14:34 +01:00
Fabio Manganiello 7fcffe899e
[ActionEditor] Support for action save/input events. 2023-12-16 14:13:11 +01:00
Fabio Manganiello f9ba4564e7
[Tabs UI] Force height to $tab-height. 2023-12-16 14:12:30 +01:00
Fabio Manganiello 028f48ed49
[Autocomplete UI] Better handling of blur events. 2023-12-16 14:09:04 +01:00
Fabio Manganiello 1dfbe0c12d
Ability to specify a custom initial action for the ActionEditor. 2023-12-14 22:22:10 +01:00
Fabio Manganiello 8bbafd2f7d
Better logic on the UI to parse the current URL fragment arguments. 2023-12-13 21:56:34 +01:00
Fabio Manganiello 9beb10c373
Extracted ActionEditor from the Execute plugin.
So it can be reused in other components that need to handle actions.
2023-12-12 23:33:16 +01:00
Fabio Manganiello 4e85087c0f
Added AlarmEditor component to Alarm. 2023-12-12 22:52:11 +01:00
Fabio Manganiello d4f6d174c8
Added FileSelector UI component. 2023-12-12 21:13:55 +01:00
Fabio Manganiello bac06e9e7b
Added TimeInterval component. 2023-12-12 00:05:46 +01:00
Fabio Manganiello 6edb8c8318
[#340] s/datetime.fromisoformat/dateutil.parser.isoparse/
We may receive JavaScript timestamps with non-standard `Z` suffix too.
2023-12-11 22:24:55 +01:00
Fabio Manganiello 6e7c5def2f
CronEditor should contain the raw cron expression and a copy button. 2023-12-11 22:18:57 +01:00
Fabio Manganiello 00694f4e10
CopyButton events should have a .prevent clause. 2023-12-11 22:18:17 +01:00
Fabio Manganiello 61ef48119f
Apply default input rules to time and datetime-local elements. 2023-12-11 22:17:47 +01:00
Fabio Manganiello 627bb66957
Added CronEditor component. 2023-12-11 00:25:24 +01:00
Fabio Manganiello 894faaad1e
[#340] Force a refresh via alarm.status when Alarm view loads. 2023-12-10 21:53:19 +01:00
Fabio Manganiello b4be56ec2c
[#340] Added condition_type field to alarm objects. 2023-12-10 21:52:50 +01:00
Fabio Manganiello e6e4396e49
Enhanced get_default_media_plugin to filter by video/audio plugins. 2023-12-10 21:50:53 +01:00
Fabio Manganiello 03c167d6b7
[#340] Added Alarm.is_cron property. 2023-12-10 20:58:13 +01:00
Fabio Manganiello 2d8f6102c1
[#340] Added alarm.edit action. 2023-12-10 20:39:06 +01:00
Fabio Manganiello 8ddd9879f2
[#340] Alarm model enhancements.
- Allow initialization of alarm actions from `Procedure` objects too.

- Force `state=WAITING` when an alarm is disabled.
2023-12-10 17:56:47 +01:00
Fabio Manganiello 686085750f
[#340] Added configuration snippet for the new alarm integration. 2023-12-10 15:45:36 +01:00
Fabio Manganiello dfa0727289
[#340] Added alarm UI panel. 2023-12-10 15:33:19 +01:00
Fabio Manganiello 62054e83cc
Remaining entity modal style rules moved from Entities to EntityModal. 2023-12-10 15:32:42 +01:00
Fabio Manganiello 42574d054a
[#340] Ironed out some bugs in the alarm integration.
- The alarm ID should be randomly generated - auto-increment IDs are
  subject to race conditions when alarms are created in separate
  processes.

- Clean up alarms that are not static and have been removed from the db.

- Better alarm shut down detection logic.
2023-12-10 15:30:19 +01:00
Fabio Manganiello ca57d3d7b3
[#340] Initial implementation of the alarm entities UI. 2023-12-09 20:33:11 +01:00
Fabio Manganiello f27e7bb7e2
[#340] Better state management for alarms.
- Added `AlarmEnabledEvent` and `AlarmDisabledEvent`.
- Added `snooze_interval` configurable both at plugin level and alarm
  level.
2023-12-09 17:12:20 +01:00
Fabio Manganiello 34e2a59285
Added optional id attribute to ToggleSwitch. 2023-12-09 16:12:08 +01:00
Fabio Manganiello 4b578c38c8
[#340] Better state management for alarms. 2023-12-09 14:25:18 +01:00
Fabio Manganiello 9d5c755188
[#340] Alarm integration improvements.
- Emit `EntityDeleteEvent` when an alarm is expired and removed so
  clients can properly synchronize their state.

- `croniter.get_next()` should be timezone-aware.
2023-12-09 13:33:42 +01:00
Fabio Manganiello fcb6b621ab
[#340] Added persistence of alarm entities. 2023-12-09 01:25:12 +01:00
Fabio Manganiello 3ffaaa0eb9
Added Procedure.to_dict method.
Also, LINT+black for the `procedure` module.
2023-12-09 01:23:36 +01:00
Fabio Manganiello a6d6fd4067
Message objects enhancements.
- Support smart JSON serialization of `Message` objects.
- Added `Message.to_dict` method.
2023-12-09 01:20:20 +01:00
Fabio Manganiello 5ad1a62293
[#340] Merged alarm backend into the alarm plugin.
Closes: #340
2023-12-06 19:23:19 +01:00
Fabio Manganiello 2670d40094
Added get_default_media_plugin utility. 2023-12-06 01:31:05 +01:00
Fabio Manganiello 680de865c4
Minor docstring fix. 2023-12-04 03:09:02 +01:00
Fabio Manganiello 5823dd0e21
[#292] Converted backend.log.http to a runnable plugin.
Closes: #292
2023-12-04 03:03:21 +01:00
Fabio Manganiello 1843ab224b
[#289] Converted backend.file.monitor into a runnable plugin.
Closes: #289
2023-12-04 03:03:20 +01:00
Fabio Manganiello d484a34c00
[Automatic] Updated UI files 2023-12-03 23:34:57 +00:00
Fabio Manganiello d048752184
[#301] Exposing hosts as entities in the ping plugin.
Closes: #301
2023-12-04 00:36:45 +01:00
Fabio Manganiello 3bb7c02572
[#301] Merged ping backend and plugin.
Also, removed `ping` response types.
2023-11-24 02:06:53 +01:00
Fabio Manganiello 71ccffa698
[weather.buienradar] Implemented forecast support. 2023-11-23 01:35:58 +01:00
Fabio Manganiello b969afb1cf
Added support for weather forecast events and entities. 2023-11-23 01:35:58 +01:00
Fabio Manganiello 841a28066b
Added support for generic kwargs to publish_entities. 2023-11-23 01:35:57 +01:00
Fabio Manganiello ca7c89949b
Only react on NewWeatherConditionEvent if plugin_name is compatible. 2023-11-23 01:35:57 +01:00
Fabio Manganiello aca71c6bc7 [wallabag] Improved OAuth flow integration.
If the user provided `username` and `password` in the plugin
configuration, then we should use those credentials to refresh the OAuth
token when expired.
2023-11-22 11:38:00 +01:00
Fabio Manganiello 7bb15b0a03
[Automatic] Updated UI files 2023-11-20 02:08:35 +00:00