277 Commits

Author SHA1 Message Date
Sybren A. Stüvel
1aed4bf729 Web: nicer styling for notification history placeholder
The `user-select: none` mirrors the 'hint text' in the columns when
there is no active job/task.
2022-05-19 16:53:47 +02:00
Sybren A. Stüvel
f4299018ef Web: expose the API interface as window.API
This makes developing/debugging things a bit easier.
2022-05-19 16:15:36 +02:00
Sybren A. Stüvel
fd0ff82352 Use new job setting visibility rules
Update the Blender add-on, web interface, and job compiler script to use
the new visibility settings of job settings.
2022-05-19 16:15:13 +02:00
Sybren A. Stüvel
1086fcbc28 OAPI: Regenerate code 2022-05-19 16:04:10 +02:00
Sybren A. Stüvel
22ce5a3e13 Web: only show tasks table if there is job data to show
Without this, the tasks table would be shown (off-screen, so you'd have
to scroll to see it) when there is an active job ID, but no data loaded
due to the backend being unavailable.
2022-05-19 15:42:57 +02:00
Sybren A. Stüvel
d5be85daad Web: show SocketIO connection status in the notifications popover as well
Move the connection status indicator to its own component, and use that
in both the notification bar and the popover.
2022-05-19 15:42:07 +02:00
Sybren A. Stüvel
3274e2c551 Web: cleanup, move objectEmpty(o) function to main.js
No functional changes.
2022-05-19 15:41:23 +02:00
Sybren A. Stüvel
6a0e4c6e56 Web: cleanup, simplify plain(x) function a bit 2022-05-19 15:40:37 +02:00
Sybren A. Stüvel
744fabea78 OAPI: rename pkg/api/flamenco-manager.yaml to flamenco-openapi.yaml
Rename `pkg/api/flamenco-manager.yaml` to `flamenco-openapi.yaml`, to
distinguish the OpenAPI definition file from the Flamenco Manager
configuration file of the same name (but in a different directory).

No functional changes.
2022-05-19 15:22:37 +02:00
Sybren A. Stüvel
0242f2d217 Web: show job updates in the notifications popover 2022-05-19 15:18:19 +02:00
Sybren A. Stüvel
cc62cab1d6 Update code to handle the JobUpdate to SocketIOJobUpdate rename
No functional changes.
2022-05-19 15:18:06 +02:00
Sybren A. Stüvel
b928896066 OAPI: regenerate code 2022-05-19 15:17:19 +02:00
Sybren A. Stüvel
6f6e73e068 Web: show placeholder when there are no notifications yet 2022-05-19 15:01:10 +02:00
Sybren A. Stüvel
916ea2015a Web: always show scrollbar in notification history
Force a visible scroll bar, so that the notification history table
always has the same available width. Without this, Tabulator won't
properly act on the reduction in width when the scrollbar appears, and
will show a horizontal scrollbar as well.
2022-05-19 15:00:37 +02:00
Sybren A. Stüvel
03a021e14f Web: don't deactivate current task when clicking on current job 2022-05-19 14:28:54 +02:00
Sybren A. Stüvel
4602ef2523 Web: show task status changes in the notifications
This of course only shows notifications about tasks of the active job,
as otherwise things would get messy.
2022-05-19 14:28:37 +02:00
Sybren A. Stüvel
12d5b2a1fc OAPI: regenerate code 2022-05-19 14:11:33 +02:00
Sybren A. Stüvel
919e629bd7 Web: expose notifs as window-global variable for debugging 2022-05-19 14:07:07 +02:00
Sybren A. Stüvel
034d75a9b8 Web: prevent error when notification popover is empty 2022-05-19 14:06:50 +02:00
Sybren A. Stüvel
d5e5e7b566 Web: fix typo in CSS rule 2022-05-19 13:07:42 +02:00
Sybren A. Stüvel
50fc1a1bbc Web: hide table header in notification popover 2022-05-19 13:00:42 +02:00
Sybren A. Stüvel
40bed3db5e Web: add notification history pop-over
Add a notification pop-over, which can be opened by clicking the footer
bar.
2022-05-19 12:57:00 +02:00
Sybren A. Stüvel
bc355d68ab Web: cleanup JobsView, reorder imports of components
Order component imports alphabetically, so it's easier to add new ones.
2022-05-19 12:56:12 +02:00
Sybren A. Stüvel
a3524a03a2 Web: remove index view and just redirect to jobs view
The index view was there to have at least *something* at `/`, but wasn't
planned out well. It'll some day be replaced by a dashboard of sorts.
2022-05-19 11:12:25 +02:00
Sybren A. Stüvel
ddc3acd652 Web: add status filtering to task table 2022-05-17 15:37:29 +02:00
Sybren A. Stüvel
56eedbaddb Web: remove unused code 2022-05-17 15:37:14 +02:00
Sybren A. Stüvel
dc7729cfed Web: cleanup, remove unused parameter 2022-05-17 15:09:47 +02:00
Sybren A. Stüvel
01a81bb3dd Web: move Task tabulator options into the mounted() function
This basically mirrors what 8f27ea97 did for the jobs table.

No functional changes.
2022-05-17 15:09:25 +02:00
Sybren A. Stüvel
84ba3ec8b2 Web: cleanup, explain why commented-out code is kept 2022-05-17 15:05:25 +02:00
Sybren A. Stüvel
908953c8d4 Web: cleanup, remove some unused code 2022-05-17 15:05:17 +02:00
Sybren A. Stüvel
42c81e9900 Web: remove some debug logging, and convert one log into warning 2022-05-17 14:52:27 +02:00
Sybren A. Stüvel
530520b1c7 Implement mass updating of tasks when JobUpdate.refresh_tasks = true
Send & handle `JobUpdate.refresh_tasks = true` when many tasks are
updated simultaneously. This applies to things like cancelling &
requeueing an entire job.

This partially rolls back 67bf77de13d99b1bc5d7344951068822c4fadd88, as
it was too slow when 1000+ tasks were being updated all at once.
2022-05-17 14:48:50 +02:00
Sybren A. Stüvel
cd8080fb44 OAPI: regenerate code 2022-05-17 14:48:25 +02:00
Sybren A. Stüvel
163611ff19 Web: add filter bar for job status 2022-05-16 18:15:51 +02:00
Sybren A. Stüvel
9fd4d55fdb Web: move status indicator code into its own function
Status indicators are used in Tabulator cells, and it's unknown whether
we can use Vue components there. Moving the code to a central place makes
it a bit easier to reuse the function in various places.
2022-05-16 17:31:30 +02:00
Sybren A. Stüvel
32737ef17b Web: cleanup, add some trailing commas and remove unused code
No functional changes.
2022-05-16 15:36:39 +02:00
Sybren A. Stüvel
8f27ea9714 Web: move Tabulator options into mounted() function
Move the Tabulator options from the `data()` function to the `mounted()`
function. This allows upcoming changes to refer to the Vue component.
2022-05-16 15:36:20 +02:00
Sybren A. Stüvel
eb0bfe820b Web: allow filtering jobs by their status
This is a very simple approach, where clicking on a job's status dot
toggles filtering by that status. There is no visual indication that this
filtering is active.

The Tabulator support for filtering from the headers is a bit buggy, see
https://github.com/olifolkerd/tabulator/issues/3745 -- I'm getting this
error even without `multiselect: true`.
2022-05-16 15:02:38 +02:00
Sybren A. Stüvel
edce178c34 Web: upgrade Tabulator 5.1.8 → 5.2.4 2022-05-16 14:34:56 +02:00
Pablo Vazquez
fd38ad2aea Web: Use row background color for Tabulator tables 2022-05-12 15:53:57 +02:00
Pablo Vazquez
ae13ff6410 Web: Remove custom styling for tasks-list-container
Style comes from Tabulator, no need to set properties again.
2022-05-12 15:53:57 +02:00
Pablo Vazquez
d0d40c8e46 Web: Set a fixed height for Tabulator tables.
It's ugly but couldn't find a way to make it responsive and not break
the Virtual DOM.
2022-05-12 15:53:57 +02:00
Sybren A. Stüvel
abed318500 Web: remove Vue logo 2022-05-12 15:11:20 +02:00
Sybren A. Stüvel
0b39f229a1 Implement may-I-keep-running protocol
Worker and Manager implementation of the "may-I-kee-running" protocol.

While running tasks, the Worker will ask the Manager periodically
whether it's still allowed to keep running that task. This allows the
Manager to abort commands on Workers when:

- the Worker should go to another state (typically 'asleep' or
  'shutdown'),
- the task changed status from 'active' to something non-runnable
  (typically 'canceled' when the job as a whole is canceled).
- the task has been assigned to a different Worker. This can happen when
  a Worker loses its connection to its Manager, resulting in a task
  timeout (not yet implemented) after which the task can be assigned to
  another Worker. If then the connectivity is restored, the first Worker
  should abort (last-assigned Worker wins).
2022-05-12 15:06:05 +02:00
Sybren A. Stüvel
fd16f7939e OAPI: regenerate code 2022-05-12 15:06:05 +02:00
Sybren A. Stüvel
4bdaeb73a6 Web: set fixed height for the task table
It looks rather ugly, and this should be addressed, but without the
`height` option of Tabulator it won't be using the Virtual DOM and result
in very slow browser performance.
2022-05-12 13:53:17 +02:00
Sybren A. Stüvel
07576f3225 Web: ensure switching active jobs doesn't retain previous job data
Pinia's `$patch()` function will merge the given state with the current
state, instead of doing a replacement. As a result, going from an active
job with metadata fields `A` and `B`, to a job with metadata fields `B`
and `C` would actually have fields `A`, `B`, and `C` in the Pinia store.

This is resolved by replacing the `$patch(object)` with `$patch(function)`
and having that function replace the entire job.
2022-05-12 10:55:42 +02:00
Sybren A. Stüvel
47361cdc69 Web: show task activity in details view 2022-05-11 18:11:02 +02:00
Sybren A. Stüvel
2559238701 Web: CSS, tweak status colours for Queued, Requeued, and Paused
I didn't like how "queued", "paused", and "cancelled" had the same colour,
as they represent rather different statuses (may run in future, vs. won't
run at all).
2022-05-11 18:10:46 +02:00
Sybren A. Stüvel
c992966723 Web: CSS, use variables for "active" row colours in tables 2022-05-11 18:09:42 +02:00