45 Commits

Author SHA1 Message Date
Sybren A. Stüvel
819767ea1a Webapp: tweak the .editorconfig and .prettierrc files + re-format
Try to get the `.editorconfig` and `.prettierrc` files as close as possible
to the formatting that was used in Flamenco. Because these files weren't
here during most of Flamenco's development so far, having them caused quite
a few changes in the webapp files.

No functional changes intended.
2023-09-11 17:22:18 +02:00
Sybren A. Stüvel
95dd4f7474 Webapp: restore 'Delete Worker' button
Restore the 'Delete Worker' button. It accidentally got removed in
86cf30e44eedde25a2429564724ac05c000afaff
2023-09-11 16:50:34 +02:00
Sybren A. Stüvel
ee8c349ad3 Cleanup: webapp, remove trailing space 2023-09-11 16:50:03 +02:00
Michael Cook
86cf30e44e Webapp: Clarification of Worker Maintenance section (#104229)
- fix spelling of 'adviced' for 'advised'
- fixed readability of sentence in error state.

Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104229
2023-08-23 15:23:50 +02:00
Sybren A. Stüvel
3e72391cbf Restartable workers
When the worker is started with `-restart-exit-code 47` or has
`restart_exit_code=47` in `flamenco-worker.yaml`, it's marked as
'restartable'. This will enable two worker actions 'Restart
(immediately)' and 'Restart (after task is finished)' in the Manager web
interface. When a worker is asked to restart, it will exit with exit
code `47`. Of course any positive exit code can be used here.
2023-08-14 16:00:09 +02:00
Eveline Anderson
830c3fe794 Rename worker 'clusters' to 'tags'
As it was decided that the name "tags" would be better for the clarity
of the feature, all files and code named "cluster" or "worker cluster"
have been removed and replaced with "tag" and "worker tag". This is only
a name change, no other features were touched.

This addresses part of #104204.

Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104223

As a note to anyone who already ran a pre-release version of Flamenco
and configured some worker clusters, with the help of an SQLite client
you can migrate the clusters to tags. First build Flamenco Manager and
start it, to create the new database schema. Then run these SQL queries
via an sqlite commandline client:

```sql
insert into worker_tags
    (id, created_at, updated_at, uuid, name, description)
  select id, created_at, updated_at, uuid, name, description
  from worker_clusters;

insert into worker_tag_membership (worker_tag_id, worker_id)
  select worker_cluster_id, worker_id from worker_cluster_membership;
```
2023-07-10 11:11:03 +02:00
Sybren A. Stüvel
a36c4cd4e4 Web: clarify the cluster assignment result in the worker details view
Now the hint is no longer generically explaining things, but is dynamic
and specific for the current assignment of the worker's clusters.
2023-04-04 13:21:59 +02:00
Sybren A. Stüvel
d75962c817 Web: hide 'clusters' list when there are none
Due to the proxying behaviour of VueJS, `workers.clusters` is always
considered `true`, even when empty. Explicitly test for the length.
2023-04-04 12:32:32 +02:00
Sybren A. Stüvel
3306c7fc8d Web: add support for worker clusters
The support is still fairly minimal. Clusters cannot be managed via the
webapp yet, so the API has to be used directly for that. Workers can be
assigned to clusters via the webapp though.
2023-04-04 12:19:14 +02:00
Sybren A. Stüvel
1add6bfc8a Webapp: avoid browser JS errors about forbidden 'User-Agent' header
Brave (and maybe other browseres) refuse to set the 'User-Agent' header
in XMLHTTPRequests, and are vocal about this in the debug log. Since the
OpenAPI code generator always outputs a custom 'User-Agent' header, I've
added some JS code to strip that off when constructing an API client.
2023-02-21 11:08:48 +01:00
Sybren A. Stüvel
50ec5f4f36 Manager: make the worker IP address a click-to-copy field
Now you can click on the worker's IP to copy it to the clipboard.
2022-09-27 12:27:18 +02:00
Sybren A. Stüvel
e0395e73bf Web: fix worker status filter not updating
Fix the status filter dots not updating when a worker changes status.
2022-08-12 11:29:12 -07:00
Sybren A. Stüvel
6de5c9e7fa Web: add worker removal
Add "remove worker" button to the worker details panel. It will
show a little warning when the worker is still running, and also has an
explanation of what removing a worker actually means.
2022-08-12 10:30:27 -07:00
Sybren A. Stüvel
b4194e32e9 Web: respond to worker updates that indicate a worker was removed
The code isn't the prettiest, but it works ;-)
2022-08-11 17:45:12 -07:00
Sybren A. Stüvel
6122f14cbc Web: Copy worker UUID on click 2022-08-11 17:38:56 -07:00
Sybren A. Stüvel
06d0c3133f Cleanup: reformatting of Vue components
Reformat Vue files with the "Vue.volar" formatter.
2022-08-02 09:34:18 +02:00
Sybren A. Stüvel
38501bac7c Cleanup: web, remove lang="js" from <script> tags
Everything is JavaScript.
2022-08-02 09:32:54 +02:00
Francesco Siddi
35591b174b Web: Sleep schedule UX updates 2022-07-26 16:51:51 +02:00
Pablo Vazquez
85eb17e434 Web: Layout adjustments to sleep schedule 2022-07-26 16:51:51 +02:00
Pablo Vazquez
f0a592a9ba Web: Style and layout to Sleep Schedule management
* Use full-width form
  Fitting an input inside a <dl> makes it jump around
* Add button to toggle schedule on/off
* Add button to cancel editing the schedule
* Use time type inputs for Start/End Time fields
* Add help text to "Days of Week" to explain it's only the first 2 letters
2022-07-26 16:51:51 +02:00
Francesco Siddi
3b719dca77 Web: UI for Worker schedule editing 2022-07-26 16:51:51 +02:00
Francesco Siddi
d6f419a683 Web: Rename link components
No functional change, just name the components with their type first,
so that all 'link' related components are more discoverable and next
to each other.
2022-07-26 16:33:05 +02:00
Sybren A. Stüvel
736ca103c3 Manager: show current/last task in worker details
The Task details component already linked to the Worker it was assigned
to last, and now the Worker links back to the task.

There's only one task shown in the Worker details. If the Worker is
actively working on a task, that one's shown. Otherwise it's the
last-updated task that was assigned to the worker.
2022-07-26 10:36:02 +02:00
Sybren A. Stüvel
120db29351 Web: show "Last seen: never" when worker has never been seen
Show "Last Seen: never" in the Worker details, if the Worker has never
been seen.
2022-07-16 15:35:07 +02:00
Pablo Vazquez
58d9ab9fb5 Workers: Style action bar 2022-07-07 12:20:43 +02:00
Pablo Vazquez
a5e5dbd1eb WorkersTable: Add function to recalculate table height
Copy-paste of TasksTable `recalcTableHeight`.

Even though the function does not work well 100%, it's better than not
having the table resize.

When the issue gets fixed, it should be copied over to TasksTable and JobsTable.
2022-07-05 18:31:13 +02:00
Sybren A. Stüvel
2c932ebad5 Show Worker's "last seen" timestamp in web interface & API responses 2022-07-04 12:49:56 +02:00
Sybren A. Stüvel
e0b9866fd4 Web: resize columns after their data was updated
When data is updated, resize columns in the job/task/worker tables. For
example, status change requests of Workers require more space, for example
going from `awake` to `awake → offline`.
2022-06-20 11:44:08 +02:00
Sybren A. Stüvel
857704c184 Web: worker nickname → name
See 55676b000efbd04cd895da9068f375dfad473ff4
2022-06-17 15:55:36 +02:00
Sybren A. Stüvel
b41feee313 Web: reduce workers table height
The 720px was almost filling up the entire height, making it hard to add
anything new at the top. Soon it should be auto-resizing anyway, making
this less relevant.
2022-06-03 13:02:23 +02:00
Sybren A. Stüvel
375a6666c2 Web: move Worker status change requests to drop-down
This basically copies the drop-down approach from Flamenco Manager 2.
2022-06-03 13:01:47 +02:00
Sybren A. Stüvel
3818d4df83 Web: add simple worker action bar
UI/UX needs improvements, but there now are some buttons to manage Workers.
They request forced status changes, so nothing lazy yet. Still have to
consider how to include that in the UI. Could probably follow the
Flamenco 2 Manager design.
2022-06-02 18:42:34 +02:00
Sybren A. Stüvel
ce2e11c35c Web: handle corner case where worker is deselected 2022-06-02 16:45:37 +02:00
Sybren A. Stüvel
3ce225b6e1 Web: remove debug console log 2022-06-02 12:33:38 +02:00
Sybren A. Stüvel
bc33f55b3c Web: update for extraction of status change requests to struct
See recent OpenAPI change.
2022-06-02 12:33:32 +02:00
Sybren A. Stüvel
3e1137ca65 Web: fix status_requested not disappearing from Tabulator 2022-05-31 17:28:40 +02:00
Sybren A. Stüvel
f97f0a34c3 Manager: implement worker status change requests
Implement the OpenAPI `RequestWorkerStatusChange` operation, and handle
these changes in the web interface.
2022-05-31 17:22:03 +02:00
Sybren A. Stüvel
68cd14db2d Fix: add missing <span> around state transition arrow 2022-05-31 15:51:31 +02:00
Sybren A. Stüvel
1510489f4d Web: show requested worker state transition 2022-05-31 15:50:59 +02:00
Sybren A. Stüvel
fc4e3d60d7 Web: show more info in the worker details 2022-05-31 15:47:49 +02:00
Sybren A. Stüvel
237b208fb2 Web: show Worker software version in worker list 2022-05-31 15:31:56 +02:00
Sybren A. Stüvel
66edc5c4d3 Web: include name of status in worker list
This makes it a bit easier to interpret. Just having the colours might
be too little information.
2022-05-31 15:23:42 +02:00
Sybren A. Stüvel
2e11c1c240 Manager: Implement SocketIO worker updates 2022-05-31 15:19:12 +02:00
Sybren A. Stüvel
7bcfde22b5 Web: add worker details component 2022-05-31 11:34:24 +02:00
Sybren A. Stüvel
88346d8244 Web: first implementation of Workers overview
Show workers with their status, and allow clicking on a worker to activate
it and show its details (which currently is limited to just its ID). Does
include Vue Router handling of the active worker ID and CSS classes for
worker statuses.

This basically copies the `JobsTable` component to `workers/WorkersTable`.
The intention is that all the jobs-specific components will move into a
`jobs` subdirectory at some point.
2022-05-30 18:52:02 +02:00