Commit Graph

1226 Commits

Author SHA1 Message Date
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 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 ca57d3d7b3
[#340] Initial implementation of the alarm entities UI. 2023-12-09 20:33:11 +01:00
Fabio Manganiello 34e2a59285
Added optional `id` attribute to `ToggleSwitch`. 2023-12-09 16:12:08 +01:00
Fabio Manganiello d484a34c00
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-12-03 23:34:57 +00:00
Fabio Manganiello d048752184
[#301] Exposing hosts as entities in the `ping` plugin.
continuous-integration/drone/push Build was killed Details
Closes: #301
2023-12-04 00:36:45 +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 ca7c89949b
Only react on `NewWeatherConditionEvent` if `plugin_name` is compatible. 2023-11-23 01:35:57 +01:00
Fabio Manganiello 7bb15b0a03
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-20 02:08:35 +00:00
Fabio Manganiello a0d8c522a2
[#308] Finalized `weather` integrations migration.
continuous-integration/drone/push Build was killed Details
- Migrated `weather.buienradar` integration.
- Removed last leftovers of the previous weather backends and responses.

Closes: #308
2023-11-20 03:10:00 +01:00
Fabio Manganiello a798cfa387
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-20 01:42:12 +00:00
Fabio Manganiello b8a4b9e4c5
Implemented support for weather entities. 2023-11-20 01:46:01 +01:00
Fabio Manganiello bf8f31545a
Fixed alignment of entity icon in modal. 2023-11-19 22:33:19 +01:00
Fabio Manganiello 5e629990e6
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-15 02:04:50 +00:00
Fabio Manganiello d617443af6
[YouTube] Added subscriptions+channels support.
continuous-integration/drone/push Build is failing Details
Closes: #337
2023-11-15 03:05:58 +01:00
Fabio Manganiello 9ed7026aaf
[media UI] Propagate free text filter to all the views. 2023-11-15 03:05:58 +01:00
Fabio Manganiello ae017516c4
[YouTube UI] Support playlist navigation in the media nav. 2023-11-15 03:05:57 +01:00
Fabio Manganiello 4853f51c8b
[YouTube] Added (read-only) playlists support. 2023-11-15 03:05:57 +01:00
Fabio Manganiello b491f81cda
[media UI] Added loading spin overlay upon play. 2023-11-15 03:05:57 +01:00
Fabio Manganiello 9e5728f8ba
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-13 01:39:51 +00:00
Fabio Manganiello 96e69811fe
[#337] Initial YouTube UI with feed support.
continuous-integration/drone/push Build is failing Details
2023-11-13 02:40:50 +01:00
Fabio Manganiello f425e95e7e
[media UI] Show track image if available on desktop+ size. 2023-11-13 02:40:50 +01:00
Fabio Manganiello 60fb7bba5f
[media UI] Added support for generic media providers. 2023-11-13 02:40:50 +01:00
Fabio Manganiello b63579b81c
[UI] Fixed some glitches of the Dropdown component. 2023-11-13 02:40:49 +01:00
Fabio Manganiello f6c752c80e
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-12 14:59:23 +00:00
Fabio Manganiello 50922cf149
[media UI] Fixed player selector style after Dropdown component changes.
continuous-integration/drone/push Build is failing Details
2023-11-12 15:55:28 +01:00
Fabio Manganiello ca72e22820
[UI] Proxy `/media/*` requests to upstream when Vue is in debug mode. 2023-11-12 15:55:03 +01:00
Fabio Manganiello d4b519a572
[media UI] Wrapped the file browser into a `MediaBrowser` component.
This will make it easier to support multiple media collection providers
other than local files.
2023-11-12 15:54:27 +01:00
Fabio Manganiello 6dfe2324c1
[UI] Added navigation crumbs to the file browser. 2023-11-12 15:53:46 +01:00
Fabio Manganiello e416a70658
[UI] (Re)-added required `logo-256x256.png` image. 2023-11-12 15:52:07 +01:00
Fabio Manganiello cad36b7911
[UI] Watch the `connected` flag for changes to update the Nav indicator. 2023-11-12 14:00:18 +01:00
Fabio Manganiello 60b5f235a7
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-12 02:08:23 +00:00
Fabio Manganiello 1f321c32dc
[`media.chromecast`] Full plugin rewrite.
continuous-integration/drone/push Build is failing Details
2023-11-12 03:08:54 +01:00
snyk-bot d54970765e
fix: upgrade vue from 3.3.4 to 3.3.6
Snyk has created this PR to upgrade vue from 3.3.4 to 3.3.6.

See this package in npm:
https://www.npmjs.com/package/vue

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-10 14:35:37 +00:00
Fabio Manganiello 3d62069775
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-10 01:48:45 +00:00
Fabio Manganiello ceae310901
[`snapcast`] Merged backend logic into the plugin.
Closes: #283
2023-11-10 02:48:07 +01:00
Fabio Manganiello 1ec42e11fc
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-09 01:46:44 +00:00
Fabio Manganiello a83f4729a6
[UI] Extracted `grid` into `layout.scss`. 2023-11-09 02:47:34 +01:00
Fabio Manganiello 4814c56a2d
[`media` UI] Added resolution to media info. 2023-11-09 02:47:34 +01:00
Fabio Manganiello 90a9684404
[`media` UI] Added extra rating fields to the media info component. 2023-11-09 02:47:33 +01:00
Fabio Manganiello d7093d18c5
[`media` UI] Major redesign of the search results. 2023-11-09 02:47:32 +01:00
Fabio Manganiello f7a25a478d
[UI] Dropdown component rewrite.
Dropdown components should always be rendered under the root element, or
nasty effects caused by absolute parenting may end up hiding dropdown
elements regardless of their `z-index`.

The new approach uses a single `<DropdownContainer>` element in the
main `App` file. Each `<Dropdown>` component will push updates to the
bus whenever it triggers open/close events, and the dropdown component
to be rendered will be pushed upstream and rendered in the root element.
2023-11-09 02:47:32 +01:00
Fabio Manganiello fafc1747d6
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-06 23:45:02 +00:00
Fabio Manganiello 3d2dc22ed3
[`media` UI] Improved media UI.
continuous-integration/drone/push Build was killed Details
2023-11-07 00:45:45 +01:00
Fabio Manganiello a939cb648c
[`media` UI] Extracted `PlayPauseButton` into its own component. 2023-11-07 00:45:44 +01:00
Fabio Manganiello 7889846cd6
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-06 01:29:16 +00:00
Fabio Manganiello 2caa171c6d
[`media` UI] Fixed alignment of the controls right handle.
continuous-integration/drone/push Build is failing Details
2023-11-06 02:25:54 +01:00
Fabio Manganiello e0a9ccca24
[`media UI`] Component refactor.
- Fixed style of the floating control extensions panel.
- Extracted `ProgressBar` and `ExtraControls` into separate components.
2023-11-06 01:54:12 +01:00
Fabio Manganiello 8e8bd7fb9f
[`media UI`] Fixing/refactoring media UI.
- Fixed broken elements in the media control view.
- Fixed volume bar.
2023-11-05 23:45:37 +01:00
snyk-bot 9814292a2e
fix: upgrade vue-router from 4.2.4 to 4.2.5
Snyk has created this PR to upgrade vue-router from 4.2.4 to 4.2.5.

See this package in npm:
https://www.npmjs.com/package/vue-router

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-05 15:30:06 +00:00
snyk-bot eff126052d
fix: upgrade core-js from 3.32.0 to 3.33.0
Snyk has created this PR to upgrade core-js from 3.32.0 to 3.33.0.

See this package in npm:
https://www.npmjs.com/package/core-js

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-05 15:30:02 +00:00
snyk-bot 3ddac09412
fix: upgrade sass from 1.65.1 to 1.69.3
Snyk has created this PR to upgrade sass from 1.65.1 to 1.69.3.

See this package in npm:
https://www.npmjs.com/package/sass

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-11-05 15:29:57 +00:00
Fabio Manganiello daa93f5994
[`media` UI] Fixed style of the Play URL modal. 2023-11-05 12:19:36 +01:00
Fabio Manganiello e45fb9c8ac
Major rewrite of the `media` routes.
continuous-integration/drone/push Build is passing Details
- Streaming and media subtitles endpoints moved from Flask to Tornado
  routes - the old Flask streaming route no longer worked behind a
  Tornado server.

- Storing the streaming state on Redis rather than in a local variable,
  or different Tornado processes may end up with different copies of the
  registry.

Closes: #336
2023-11-05 01:33:36 +01:00
Fabio Manganiello 0e2738d849
Added `_on_error` handler to `StreamingRoute`. 2023-11-05 01:03:40 +01:00
Fabio Manganiello 7c780e6650
Refactored `utils.bus.send_request`.
It should return the response output and raise an error if the response
has errors.
2023-11-04 16:22:27 +01:00
Fabio Manganiello f7fe844296
Black/LINT pass for media handler routes. 2023-11-04 16:13:52 +01:00
Fabio Manganiello 07e7f06c7a
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-04 11:12:51 +00:00
Fabio Manganiello 5478b90288
[Media UI] Start/stop streaming use the configured media plugin.
The base `media` plugin is abstract, hence the `Media` panel needs to
pass the current media plugin to the `Utils` mixins so it can pick the
right action.
2023-11-04 11:54:44 +01:00
Fabio Manganiello 9ac25a7627
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-03 21:24:49 +00:00
Fabio Manganiello 3b335723a9
Merge pull request #387 from BlackLight/snyk-upgrade-7f1672a9074c3d844aa231ad5ba0e90d
continuous-integration/drone/push Build is failing Details
[Snyk] Upgrade core-js from 3.23.4 to 3.31.1
2023-11-03 22:18:22 +01:00
Fabio Manganiello 8acb4156e0
Merge branch 'master' into snyk-upgrade-7f1672a9074c3d844aa231ad5ba0e90d 2023-11-03 22:11:01 +01:00
Fabio Manganiello 664ca7f9b5
Merge branch 'master' into snyk-upgrade-ae486550d733dccfaf3fab04d0756007 2023-11-03 22:07:35 +01:00
Fabio Manganiello 2bb7285c8a
Merge pull request #392 from BlackLight/snyk-fix-ccc0cd6dbbb455def4c5435b5511ae11
[Snyk] Security upgrade axios from 0.21.4 to 1.6.0
2023-11-03 22:06:22 +01:00
Fabio Manganiello 10ec4d39ea
Merge pull request #389 from BlackLight/snyk-upgrade-9420343b82254b8e287940baaf3881aa
[Snyk] Upgrade sass from 1.64.2 to 1.65.1
2023-11-03 22:06:03 +01:00
Fabio Manganiello f5af85ee65
Merge pull request #390 from BlackLight/dependabot/npm_and_yarn/platypush/backend/http/webapp/babel/traverse-7.23.2
Bump @babel/traverse from 7.22.8 to 7.23.2 in /platypush/backend/http/webapp
2023-11-03 22:03:12 +01:00
Fabio Manganiello f6952f1198
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-11-03 20:56:12 +00:00
Fabio Manganiello 170e37945e [UI] Make sure that a `Modal` never overflows its parent. 2023-11-03 20:54:46 +00:00
Fabio Manganiello 35571b8d13 [UI] Set `max-width` for the media info modal.
This modal can grow very large depending on the size of the media
metadata, thus it's wise to keep its width in check.
2023-11-03 20:54:46 +00:00
Fabio Manganiello 96f2a8f8fc [UI] Set a base `z-index` for the root content canvas.
This allows loading spinners, modals and other components with a real
fullscreen background to stretch over the required space, without being
covered by the navigator or other sibling components.

This also requires the collapsed navigator to have a 1px margin-right,
or its separation border won't be visible.
2023-11-03 20:54:46 +00:00
Fabio Manganiello 5e2973dd5f [UI] Removed `<tt>` tag. 2023-11-03 20:54:46 +00:00
Fabio Manganiello d9c4634ce8 [`tts.mimic3`] Plugin rewrite.
The plugin now leverages the `sound` plugin for playback, like all other
`tts` plugins now do, instead of an external `media` plugin.

This also removes the need for the `/tts/mimic3/say` endpoint.
2023-10-31 00:44:05 +00:00
Fabio Manganiello 68c73fa181 [`tts.mimic3`] Added timeout to `requests.post` proxy. 2023-10-31 00:44:05 +00:00
snyk-bot c9ac3e624f
fix: platypush/backend/http/webapp/package.json & platypush/backend/http/webapp/package-lock.json to reduce vulnerabilities
The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-AXIOS-6032459
2023-10-27 14:35:27 +00:00
Fabio Manganiello 6d694f02b4
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-23 14:04:25 +00:00
Fabio Manganiello a005958317
[Assistant] Added `assistant` entity type.
continuous-integration/drone/push Build is passing Details
2023-10-23 16:02:05 +02:00
Fabio Manganiello fd26f7fef3
[UI Nav] Fixed position of the connected status dot. 2023-10-23 15:57:47 +02:00
Fabio Manganiello 5c22271e88
[UI] Expose the `connected` flag on the root element level. 2023-10-23 15:03:36 +02:00
Fabio Manganiello e1fc38e014
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing Details
2023-10-19 17:52:56 +00:00
Fabio Manganiello 2c37596478
Updated UI files
continuous-integration/drone/push Build is failing Details
2023-10-19 19:52:50 +02:00
dependabot[bot] 569db13a9b
Bump @babel/traverse in /platypush/backend/http/webapp
Bumps [@babel/traverse](https://github.com/babel/babel/tree/HEAD/packages/babel-traverse) from 7.22.8 to 7.23.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.23.2/packages/babel-traverse)

---
updated-dependencies:
- dependency-name: "@babel/traverse"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-19 11:30:24 +00:00
Fabio Manganiello 7eaf8dbdc0
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-18 22:53:48 +00:00
Fabio Manganiello 38c5172316
[UI] Show the connected/disconnected status in the `Nav` icon.
continuous-integration/drone/push Build is passing Details
2023-10-19 00:33:17 +02:00
Fabio Manganiello f3c5c2fdfa
[Extensions UI] Added `RestartButton` to the `Install` tab.
It should be possible to easily restart the service after installing the
dependencies for a new integration.
2023-10-18 23:52:49 +02:00
Fabio Manganiello b724e80ee2
[Settings UI] Added `Stop` and `Restart` application buttons. 2023-10-18 23:45:46 +02:00
Fabio Manganiello 2a76a6baa6
[Extensions UI] Added current config to extension panel.
If an extension is configured and enabled, then the UI will now include
a tick next to its name and the currently loaded configuration in the
`Configuration` tab.
2023-10-18 22:51:30 +02:00
Fabio Manganiello e2e349a2ad
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-18 01:01:06 +00:00
Fabio Manganiello 922297bf58
[Extensions UI] Support for initializing an extension from URL.
continuous-integration/drone/push Build was killed Details
2023-10-18 03:00:54 +02:00
Fabio Manganiello 137855b4fc
[Entities UI] Fixed collapse toggling logic. 2023-10-18 03:00:54 +02:00
Fabio Manganiello 26b912fae4
[Execute UI]
- If an action is passed over the URL, then initialize the UI with it.

- Added link from the actions back to their plugins.
2023-10-18 03:00:54 +02:00
Fabio Manganiello e5d84242bb
[Extensions UI] Action URLs now point to the `Execute` panel. 2023-10-18 03:00:53 +02:00
Fabio Manganiello 6f01c35a0f
[UI] Added utilities to get and set args on the URL fragment. 2023-10-18 03:00:53 +02:00
Fabio Manganiello a30c07fbb5
[Execute UI] Make sure that the list of arguments doesn't overflow. 2023-10-18 03:00:53 +02:00
Fabio Manganiello 0c54c8f885
[UI] Refresh the loaded panel when the URL fragment changes. 2023-10-18 03:00:53 +02:00
Fabio Manganiello 6289eb47ab
[Extensions UI] Added `Actions` and `Events` sections to `Doc`. 2023-10-18 03:00:53 +02:00
Fabio Manganiello 6383030e96
[Extensions UI] Added notifications in case of install errors. 2023-10-18 03:00:52 +02:00
Fabio Manganiello 3107df5eba
[UI Nav] Moved `Extensions` panel from the plugins list to the footer. 2023-10-18 03:00:52 +02:00
Fabio Manganiello a652bd9df8
[Extensions UI] Install extensions deps from the UI.
- Added `Install` button
- Added interactive output panel
2023-10-18 03:00:52 +02:00
Fabio Manganiello 033317e0a7
[Extensions UI] Passing `config_file` to the configuration tab. 2023-10-18 03:00:51 +02:00
Fabio Manganiello 20a2203e7e
[Shell plugin] Added support for async output over websockets. 2023-10-18 03:00:51 +02:00
Fabio Manganiello 2806e943c3
[Extensions UI] Added `Install` tab. 2023-10-18 03:00:51 +02:00
Fabio Manganiello 9769520e88
[UI] Use `.min.css` file for the Highlight.js styles. 2023-10-18 03:00:50 +02:00
Fabio Manganiello 3366732fa8
[UI] Expand `Tab` width on mobile. 2023-10-18 03:00:50 +02:00
Fabio Manganiello 12f7b190b9
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-16 00:30:42 +00:00
Fabio Manganiello 99e98f70f4
[Integrations UI] Added configuration tab.
continuous-integration/drone/push Build is passing Details
2023-10-16 02:30:30 +02:00
Fabio Manganiello b19725c72c
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-15 23:18:08 +00:00
Fabio Manganiello 398d64c53f
[Integrations UI] Added new `Integrations` panel.
continuous-integration/drone/push Build is passing Details
2023-10-16 01:16:10 +02:00
Fabio Manganiello 0055acad9d
[UI] Fixed `Autocomplete` behaviour on empty filter. 2023-10-16 01:12:56 +02:00
Fabio Manganiello c88a9da3e6
[UI] Refactored layout classes. 2023-10-16 01:12:05 +02:00
Fabio Manganiello e242b2134e
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-14 12:38:25 +00:00
Fabio Manganiello 3cfd72b649
[UI Nav] Ensure that `entities` and `execute` tabs are always on top.
continuous-integration/drone/push Build is passing Details
2023-10-14 14:38:08 +02:00
Fabio Manganiello 6d53a3f80f
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-14 12:09:13 +00:00
Fabio Manganiello a3643c285e
[UI] A friendlier representation of an integration's name.
continuous-integration/drone/push Build is passing Details
2023-10-14 14:02:17 +02:00
Fabio Manganiello 0aecb50590
[Entities UI] Don't hide variables with null values.
Otherwise, the `variables` panel will still appear, but empty, and
offering no way of actually removing or resetting those variables.
2023-10-14 14:02:17 +02:00
Fabio Manganiello 01c7d230f1
[Entities UI] Added `Expand`/`Collapse` and `Hide` actions to groups.
Also, replaced all the deprecated `::v-deep` SCSS notations with
`:deep`.
2023-10-14 14:02:17 +02:00
Fabio Manganiello dbe19042bc
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-13 21:13:00 +00:00
Fabio Manganiello 891e05a219
[Execute UI] Added syntax highlight to JSON and shell snippets.
continuous-integration/drone/push Build is passing Details
2023-10-13 23:12:04 +02:00
Fabio Manganiello 12f38281e1
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-10-12 00:58:53 +00:00
Fabio Manganiello e382ad7650 Invert `@ensure_initialized` and `@action` annotations.
Otherwise, we won't be able to access the wrapped function from the
inspection logic.
2023-10-12 00:57:31 +00:00
Fabio Manganiello 0a13b4605e
[Execute panel] Procedures merged into actions.
continuous-integration/drone/push Build is passing Details
Plus, a last big refactor/redesign for the panel's components.
2023-10-12 02:49:51 +02:00
Fabio Manganiello e760f8e23a
[Execute panel] Introduced a common `Response` component.
continuous-integration/drone/push Build is passing Details
2023-10-11 16:57:04 +02:00
Fabio Manganiello b47e729012
[Execute panel] Added cURL snippet modal.
continuous-integration/drone/push Build is passing Details
2023-10-11 16:38:38 +02:00
Fabio Manganiello fc21e9740b
[Execute panel] Better rendering of responses and errors.
continuous-integration/drone/push Build is failing Details
2023-10-11 15:28:49 +02:00
Fabio Manganiello 21820bb185
Big refactor of the `Execute` panel.
continuous-integration/drone/push Build is failing Details
2023-10-11 14:31:46 +02:00
Fabio Manganiello ff07623803
Auto-focus the first parameter after selecting an action. 2023-10-10 21:31:14 +02:00
Fabio Manganiello 07f0535504
Migrated `Execute` panel to the new `Autocomplete` widget. 2023-10-10 21:13:54 +02:00
Fabio Manganiello a717235453
Added `autofocus` support to `Autocomplete` element. 2023-10-10 20:51:09 +02:00
Fabio Manganiello 923eb7cadb
`Autocomplete` is now its own component. 2023-10-10 18:42:41 +02:00
Fabio Manganiello f6bf9438b9
Several improvements for the `Execute` panel. 2023-10-10 01:45:35 +02:00
Fabio Manganiello 2af304f478
Replaced radio buttons on the `Execute` panel with buttons. 2023-10-10 00:40:20 +02:00
Fabio Manganiello 84efef710e
Added `Tabs` and `Tab` UI elements. 2023-10-10 00:39:27 +02:00
Fabio Manganiello 4da3c13976
First WIP commit for the new Integrations panel. 2023-10-09 01:33:44 +02:00
Fabio Manganiello c3337ccc6c
[#311] Docs deps autogen sphinx plugin.
continuous-integration/drone/push Build is passing Details
Added an `add_dependencies` plugin to the Sphinx build process that
parses the manifest files of the scanned backends and plugins and
automatically generates the documentation for the required dependencies
and triggered events.

This means that those dependencies are no longer required to be listed
in the docstring of the class itself.

Also in this commit:

- Black/LINT for some integrations that hadn't been touched in a long
  time.

- Deleted some leftovers from previous refactors (deprecated
  `backend.mqtt`, `backend.zwave.mqtt`, `backend.http.request.rss`).

- Deleted deprecated `inotify` backend - replaced by `file.monitor` (see
  #289).
2023-09-24 17:00:08 +02:00
Fabio Manganiello 5d6d37785e
[#288] Removed legacy `http.poll` backend.
continuous-integration/drone/push Build is passing Details
Closes: #288
2023-09-20 23:53:12 +02:00
Fabio Manganiello 3e8d6bb01e Removed `typing-extensions` dependency.
continuous-integration/drone/push Build is failing Details
The package isn't present on older versions of Debian.
2023-09-18 14:05:39 +02:00
Fabio Manganiello 52cb1afb4b
Don't break words in entity value frames. 2023-09-16 02:58:17 +02:00
Fabio Manganiello e947cb1e67
Updated web dist files 2023-09-15 16:22:40 +02:00
Fabio Manganiello 4223576016
We should always update the entities cache on addEntity.
continuous-integration/drone/push Build is passing Details
Updating the entity cache only when we receive an event from a root
entity means that we lose events sent by individual child entities.
2023-09-15 00:45:38 +02:00
Fabio Manganiello 1020b63da7
All EntityMixin components should be allowed to emit `loading` events. 2023-09-15 00:34:29 +02:00
Fabio Manganiello b746d0b402
Moved `get_message_response` to `platypush.utils`.
continuous-integration/drone/push Build is passing Details
It is general-purpose enough to be used by all the integrations, not
only by the HTTP backend.
2023-09-05 13:03:30 +02:00
snyk-bot 46c40f6fa6
fix: upgrade sass from 1.64.2 to 1.65.1
Snyk has created this PR to upgrade sass from 1.64.2 to 1.65.1.

See this package in npm:
https://www.npmjs.com/package/sass

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-09-01 23:15:47 +00:00
Fabio Manganiello 043f303761
`s/HttpBackend._DEFAULT_HTTP_PORT/HttpBackend.DEFAULT_HTTP_PORT/g` 2023-08-19 13:30:51 +02:00
Fabio Manganiello 98e9abde18
Extended manifest files with Python system packages (if available).
continuous-integration/drone/push Build is passing Details
- If a Python optional dependency is available as a system package on
  the target system, try and install it that route rather than pip. It's
  usually faster and it decreases the risk of breaking system packages.

- Added support for apk dependencies in manifest files. This brings the
  number of distros officially supported by all the extensions to four:

  - Alpine
  - Arch
  - Debian
  - Ubuntu
2023-08-16 22:43:51 +02:00
Fabio Manganiello a8a7ceb2ac
Implemented `HttpBackend._stop_workers`.
The Tornado WSGI container won't guarantee the termination of the
spawned workers upon termination, so the code of the backend has to take
care of it and terminate all the children processes of the server
process when it terminates.

This also means that `psutil` is now a required base dependency, as we
need to expand the process subtree under the webserver launcher.
2023-08-15 00:13:34 +02:00
Fabio Manganiello 827b564006
Using a single constant for DEFAULT_REDIS_QUEUE.
Also, catch `AttributeError` on `self._proc.terminate` in the
`HttpBackend`, since the process may already have been terminated and
set to null by another worker process.
2023-08-13 22:20:16 +02:00
Fabio Manganiello 1474685cc0
[Automatic] Updated UI files
continuous-integration/drone/push Build is passing Details
2023-08-06 22:51:57 +00:00
Fabio Manganiello 26b4dcba46
Reduced padding of ConfirmDialog body element.
continuous-integration/drone/push Build is passing Details
2023-08-07 00:50:10 +02:00
Fabio Manganiello 5184543a3e
Normalize the size of the camera frame container from window size.
continuous-integration/drone/push Build is failing Details
If the window is smaller than the camera resolution, then we should
scale down the container size accordingly.
2023-08-07 00:38:19 +02:00
Fabio Manganiello dd313c6371
[Automatic] Updated UI files
continuous-integration/drone/push Build was killed Details
2023-08-06 21:50:25 +00:00
Fabio Manganiello 2f007888fc
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing Details
2023-08-06 21:48:33 +00:00
Fabio Manganiello 609a8c6052
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing Details
2023-08-06 21:46:44 +00:00
Fabio Manganiello 276a9a7421
[Automatic] Updated UI files
continuous-integration/drone/push Build is failing Details
2023-08-06 21:44:51 +00:00
Fabio Manganiello 715cdcfcff
More consistent style for the buttons on the tokens settings page.
continuous-integration/drone/push Build is failing Details
2023-08-06 23:42:50 +02:00
Fabio Manganiello bd49e460d5
More style improvements for the user settings panel.
continuous-integration/drone/push Build is passing Details
2023-08-06 23:36:06 +02:00
Fabio Manganiello 6eed558342
More improvements on the users settings panel.
continuous-integration/drone/push Build was killed Details
2023-08-06 23:14:54 +02:00
Fabio Manganiello 1d47b35219
Updated UI dependencies 2023-08-06 20:38:46 +02:00
Fabio Manganiello 237e0c47cb
Redesigned config panel UI. 2023-08-06 18:49:03 +02:00
snyk-bot 7cda9954d4
fix: upgrade vue-router from 4.1.2 to 4.2.3
Snyk has created this PR to upgrade vue-router from 4.1.2 to 4.2.3.

See this package in npm:
https://www.npmjs.com/package/vue-router

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-07-27 02:01:02 +00:00
snyk-bot 26c9694664
fix: upgrade core-js from 3.23.4 to 3.31.1
Snyk has created this PR to upgrade core-js from 3.23.4 to 3.31.1.

See this package in npm:
https://www.npmjs.com/package/core-js

See this project in Snyk:
https://app.snyk.io/org/blacklight/project/96bfd125-5816-4d9e-83c6-94d1569ab0f1?utm_source=github&utm_medium=referral&page=upgrade-pr
2023-07-27 02:00:57 +00:00
Fabio Manganiello e4756eb639
Replaced deprecated `flask.escape` with `markupsafe.escape`.
continuous-integration/drone/push Build is passing Details
continuous-integration/drone Build is passing Details
2023-07-25 00:26:15 +02:00
Fabio Manganiello e9a568fdd2
Unified interface to retrieve the Redis bus configuration.
A common `utils.get_redis_conf` has been created to handle the cascade
fallback logic used to retrive the default Redis configuration.
2023-07-24 01:04:13 +02:00
Fabio Manganiello dd862db29a
[chore] LINT fixes 2023-07-24 00:35:03 +02:00
Fabio Manganiello 0dc380fa94
Removed dependency from prctl.
Also, black'd and LINT-fixed some files that hadn't been touched in a
while.
2023-07-23 19:17:30 +02:00
Fabio Manganiello cfdecd5703
[#267] Don't show the PWA popup again after the user dismisses it.
Plus, upgraded a bunch of frontend libraries.

Closes: #267
2023-07-23 02:44:17 +02:00
Fabio Manganiello 454228c56e
Upgraded UI dependencies 2023-07-23 02:42:14 +02:00
dependabot[bot] 33699fcac8
Bump word-wrap from 1.2.3 to 1.2.5 in /platypush/backend/http/webapp
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.5.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.5)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-22 21:48:53 +00:00
dependabot[bot] 505cba44b8
Bump webpack from 5.70.0 to 5.88.2 in /platypush/backend/http/webapp
Bumps [webpack](https://github.com/webpack/webpack) from 5.70.0 to 5.88.2.
- [Release notes](https://github.com/webpack/webpack/releases)
- [Commits](https://github.com/webpack/webpack/compare/v5.70.0...v5.88.2)

---
updated-dependencies:
- dependency-name: webpack
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-07-22 21:46:59 +00:00
Fabio Manganiello fa1364d854
Improved logging for requests, responses and events.
- The following logging namespaces are now used, to make it easier to
  filter only log lines related to the logged application message:

  - `platypush:events`
  - `platypush:requests`
  - `platypush:responses`

- Those messages are always logged as JSON, with no prefixes nor
  suffixes.

- Requests are always logged when executed - no more delegation to the
  upstream backend.

- Responses are always logged when fully populated (including `id`,
  `origin`, `target` etc.), instead of being logged when still partially
  populated. This makes it particularly easy to link request/response
  IDs directly from the logs.
2023-07-15 01:11:45 +02:00
Fabio Manganiello 27cf1bec52
Removed some optional top-level imports.
Optional top-level imports in Tornado route declarations will trigger
`ImportError`. While this will just mean that those routes will be
skipped, it will also generate a lot of noise on the logs.
2023-07-01 03:13:38 +02:00
Fabio Manganiello 2fb6e4d7d0
Updated webapp dist files 2023-06-16 15:48:23 +02:00
Fabio Manganiello 9aa8e4538a
Better termination logic for the ffmpeg audio converter. 2023-06-16 11:47:37 +02:00
Fabio Manganiello da93f1b3b0
[Chore] pylint 2023-06-14 01:44:36 +02:00
Fabio Manganiello be794316a8
Merged `sound.stream_recording` and `sound.record`. 2023-06-12 13:06:02 +02:00
Fabio Manganiello e238fcb6e4
Refactoring the `sound` plugin to use ffmpeg as a stream converter. 2023-06-11 12:48:49 +02:00
Fabio Manganiello 4587b262b0
Stream camera frames over HTTP using a Redis pub/sub mechanism. 2023-06-05 20:40:12 +02:00
Fabio Manganiello d7208c6bbc
Refactored Tornado routes for native pub/sub support.
The Redis pub/sub mechanism is now a native feature for Tornado routes
through the `PubSubMixin`.

(Plus, lint/black chore for the sound plugin)
2023-05-30 21:58:27 +02:00
Fabio Manganiello 4bf9c01ac9
Moved camera routes.
Camera routes migrated from Flask blueprints to Tornado handlers.
2023-05-27 22:24:45 +02:00
Fabio Manganiello a2f8e2f0d2
Fixed bottom margin for ConfirmDialog buttons 2023-05-22 16:44:53 +02:00
Fabio Manganiello aaac6488d6
Updated webapp dist files 2023-05-22 02:24:24 +02:00
Fabio Manganiello d7405ad05d
Added multiple parsers for the entities referenced in docstrings.
The `inspect` plugin can now detect references to plugins, backends,
events, responses and schemas in docstrings and replace them either with
links to the documentation or auto-generated examples.
2023-05-22 02:20:58 +02:00
Fabio Manganiello 4f11d7cf74
Updated webapp dist files 2023-05-21 03:15:16 +02:00
Fabio Manganiello 229b8f2985
Many improvements for the `execute` panel. 2023-05-21 03:04:52 +02:00
Fabio Manganiello edf1dbee1d
Updated webapp dist files 2023-05-20 15:54:18 +02:00
Fabio Manganiello 5efc90ca17
Better PWA installation prompt.
Display a popup modal instead of a confirm box to prompt the user to
install the PWA app.

`confirm` blocks the JavaScript engine when run in `beforeMount` and
therefore the browser won't be able to proceed with `event.prompt()`.
2023-05-20 15:52:37 +02:00
Fabio Manganiello 666ea9ea6b
Added `use_werkzeug_server` option to `backend.http`.
There are situations where you may not want to run the HTTP server in a
full blown WSGI-over-Tornado container - unit/integration tests and
embedded single-core devices are among those cases.

In those scenarios, we should allow the user to be able to run the
backend using the built-in Werkzeug server provided by Flask.
2023-05-20 15:26:58 +02:00
Fabio Manganiello 013274bcbc [#259] Proper support for the progressive webapp (#262)
Closes: 259
Reviewed-on: #262
2023-05-20 02:42:33 +02:00
Fabio Manganiello 0a1209fe6e
Updated webapp dist files 2023-05-17 10:56:37 +02:00
Fabio Manganiello 33e2879413
Various UI improvements for the execute tab. 2023-05-17 10:41:02 +02:00
Fabio Manganiello 91daec579d
Reverted to the previous style for entities on mobile.
Better to use screen width wisely and avoid unnecessary padding.
2023-05-17 01:13:09 +02:00
Fabio Manganiello 2cba504e3b
Improvements for the autocomplete component. 2023-05-14 15:07:54 +02:00
Fabio Manganiello 8447f9a854
Improved rendering of actions/arguments documentation.
The frontend now calls `utils.rst_to_html` to render the docstrings as
HTML instead of dumping them as raw text.

Also, actions and arguments are now cached to improve performance.
2023-05-14 15:06:34 +02:00
Fabio Manganiello 72797e73ff
Changed the Tornado paradigm to start the WSGI workers.
Use `bind_sockets`/`fork_processes` instead of reinventing the wheel
with our own multiprocessing handling.
2023-05-13 12:35:20 +02:00
Fabio Manganiello ac4fe4447e
Revert "Added a multi-worker approach to the Tornado WSGI container."
This reverts commit 71401a4936.

Temporarily reverted this commit because the `reuse_address` on the
application's `listen` method has only been implemented in Tornado 6.2 -
and Debian stable still shipts Tornado 6.1.
2023-05-13 02:36:20 +02:00
Fabio Manganiello 71401a4936
Added a multi-worker approach to the Tornado WSGI container.
The WSGI container is a good option to wrap a multi-modal webapp
(Flask + websocket routes), but it's constrained to a single-process
approach and queued/pre-buffered requests. That makes performance poor
when handling requests that may take a few seconds to complete.
2023-05-13 01:26:18 +02:00