774 Commits

Author SHA1 Message Date
Sybren A. Stüvel
90707dceed OAPI: regenerate code 2022-05-31 15:30:26 +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
1f49880b7f OAPI: regenerate code 2022-05-31 15:18:48 +02:00
Sybren A. Stüvel
2b89399206 Manager: handle allJobs subscription
SocketIO clients no longer automatically subscribe to the jobs updates.
This is now done explicitly via the `allJobs` subscription type, and
unsubscribing is also possible.
2022-05-31 15:00:37 +02:00
Sybren A. Stüvel
0fc0d1d0e0 OAPI: regenerate code 2022-05-31 14:58:49 +02:00
Sybren A. Stüvel
cd35e3a5cb Web: avoid error resizing the tasks table
The tasks table resize function is called via `this.$nextTick()`, which
means that the component can actually already be unmounted by the time
the actual function call is performed. This is now detected & handled.
2022-05-31 14:56:13 +02:00
Sybren A. Stüvel
885911a06e OAPI: regenerate code 2022-05-31 13:16:10 +02:00
Sybren A. Stüvel
7bcfde22b5 Web: add worker details component 2022-05-31 11:34:24 +02:00
Sybren A. Stüvel
f2f6726ec0 OAPI: regenerate code 2022-05-31 11:21:41 +02:00
Sybren A. Stüvel
431406a301 OAPI: regenerate code 2022-05-31 10:43:57 +02:00
Sybren A. Stüvel
ce07a46455 Fix error fetching non-existing log tail
A task can exist in the database but not have any log stored on disk yet.
This is now returned as `204 No Content` instead of an internal server
error.

The web interface is also adjusted to cope with this.
2022-05-30 19:23:10 +02:00
Sybren A. Stüvel
a3d885e710 OAPI: regenerate code 2022-05-30 19:23:00 +02:00
Sybren A. Stüvel
e492a31abb Web: cleanup, move job/task-related components into jobs subdir
Move job and task components into `components/jobs`.

No functional changes.
2022-05-30 19:18:01 +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
Sybren A. Stüvel
eab4fa2ca7 OAPI: regenerate code 2022-05-30 18:52:00 +02:00
Sybren A. Stüvel
723855a9d5 Web: move styling of 'clickable' table rows to separate class
Instead of doing this styling per table, just add a class that indicates
it has clickable rows.
2022-05-30 18:43:23 +02:00
Sybren A. Stüvel
81501ea41b Web: fix scrollbar on "select a ... to see its details" content
The "fix" is just setting the height to 50% instead of 100%, as the latter
will make it as big as the entire column; that causes the scrollbar to
show, as the column title isn't taken into account.
2022-05-30 16:24:53 +02:00
Pablo Vazquez
74f875957f Web: Move overflow and position properties to affect all columns 2022-05-30 15:44:38 +02:00
Sybren A. Stüvel
81aec77059 Resize the Tasks table when necessary
The `JobDetails` component now emits a `reshuffled` event whenever its
contents have changed, so that other components can respond to any changes
in available space. This event now triggers a resize of the tasks table
on the next DOM tick (so that the new sizes of the HTML elements are
available).

The `TasksTable` component also recomputes the table size when the task
status filters change (because that might have triggered a show/hide of
the filter bar). It also computes the available height slightly differently
so that it's all done relative to the tabulator element.

There is just one TODO left, which is a hard-coded offset of 12 that
should be obtained dynamically from somewhere -- no idea where it comes
from or why it's necessary.
2022-05-30 15:08:34 +02:00
Sybren A. Stüvel
09dbcfe512 Remove the need to get elements by their ID
Referencing elements outside the current component by ID is not a good
approach; using `this.$el.parentElement` is a bit cleaner.
2022-05-27 16:44:51 +02:00
Sybren A. Stüvel
339aafc1e4 Cleanup: add missing trailing comma
This comma isn't strictly necessary, but makes the diff cleaner when adding
new functions.
2022-05-27 16:43:40 +02:00
Sybren A. Stüvel
60836c77e0 Remove need for global resizeTasksListTable function 2022-05-27 16:43:12 +02:00
Pablo Vazquez
1310e5c9e2 Web: Set height for Tasks List on load and window resize
Calculate the Tasks List height by subtracting its offsetTop from
the Jobs Details column height.

Known issues:
There is a glitch in which the height can be sometimes longer or shorter
than expected, due to asynchronous loading of other components in Job Details
(such as Job Settings or table filters).
2022-05-25 17:14:21 +02:00
Pablo Vazquez
6f4fc29145 Web: Adjust colors for Canceled and Paused status
Use gray to contrast with the other statuses that indicate activity/errors.
2022-05-25 16:56:31 +02:00
Pablo Vazquez
8969ecb262 Web: Adjust colors for Queued, Requeueing
Do not use pink for queued/requeueing. Pink in Blender is used to indicate
something going wrong (missing textures, broken shaders). Use a shade of
blue instead which is closer in hue to green which means completed.
2022-05-25 16:56:31 +02:00
Pablo Vazquez
11955e209a Web: Use Flamenco accent hue instead of pink for active/selected rows 2022-05-25 16:56:31 +02:00
Sybren A. Stüvel
72487e3fb4 Web: only load task log tail when task log viewer is visible
The code to fetch the task log tail is moved from `JobsView.vue` to
`TaskLog.vue`, as that knows exactly when it's shown & hidden.

The subscriptions to the task log updates will have to be managed in the
same way; that's for another commit.
2022-05-24 16:04:03 +02:00
Sybren A. Stüvel
1ac72bd3fc Web: no longer do filtering when clicking on the 'status' table cell
Clicking on a job/task in their respective lists will now always activate
it, regardless of where on the row was clicked.

Managing the filters by clicking on the status was a nice idea, but was
confusing in practice.
2022-05-20 16:54:30 +02:00
Sybren A. Stüvel
ae0f4a7ca4 Show task log tail in the web interface 2022-05-20 16:49:51 +02:00
Sybren A. Stüvel
2cf6e2e528 OAPI: regenerate code 2022-05-20 16:49:48 +02:00
Sybren A. Stüvel
bb7ac8319f OAPI: regenerate code 2022-05-20 16:30:42 +02:00
Sybren A. Stüvel
4562e98df5 Web: store footer popover state in local storage
Keep the footer popover state in the local storage, restoring it on load:
- Visibility of the popover
- Current tab of the popover
2022-05-20 14:43:30 +02:00
Sybren A. Stüvel
6a8d959301 Web: show task log in footer popover
Styling of the "tab buttons" in the footer popover still needs work. The
currently selected task's log updates are shown, though.
2022-05-20 14:35:19 +02:00
Sybren A. Stüvel
c06baab8ab Web: extract notification list into its own component
The footer popover is going to contain the task logs as well, so the
notifications are now their own component to be able to show/hide them.
2022-05-20 13:55:00 +02:00
Sybren A. Stüvel
7cdcaf443c Web: cleanup, remove unused imports 2022-05-20 13:41:39 +02:00
Sybren A. Stüvel
fa7bfaabee Web: cleanup, move footer components into a footer subdirectory
No functional changes.
2022-05-20 13:41:32 +02:00
Sybren A. Stüvel
3e5f681321 Task log broadcasting via SocketIO
Implement task log broadcasting via SocketIO. The logs aren't shown in the
web interface yet, but do arrive there in a Pinia store. That store is
capped at 1000 lines to keep memory requirements low-ish.
2022-05-20 13:03:41 +02:00
Sybren A. Stüvel
1bb4ada72b OAPI: regenerate code 2022-05-20 12:58:57 +02:00
Sybren A. Stüvel
0a3009d6ed Web: fix race condition where job/task update comes in before table is init
Tabulator can't handle data changes before it's been initialised. If
there is a race condition and a job/task update comes in before that, just
ignore the update.

It might be better to use Vue's `nextTick()` function to defer the update
until Tabulator is ready to receive it, but doing so in a reliable way
might be tricky.
2022-05-20 12:18:40 +02:00
Sybren A. Stüvel
30a30f154b Web: always show active status filters
Fix a bug where the filter would only show available statuses and thus
make it impossible to disable a filter that's no longer available.

For example, when showing only `active` tasks, and no task is active any
more, it would remove the "filter circle" for `active` status, and thus
make it impossible to disable the filter. Now the filter will always
show all enabled statuses, even when there is no more job/task
with that status.
2022-05-20 12:17:06 +02:00
Sybren A. Stüvel
34bccd9277 Cleanup, web: rename subscribedJob to subscribedJobID
The prop contains the job ID, not the job itself, which is now reflected
in the name.

No functional changes.
2022-05-20 11:27:23 +02:00
Sybren A. Stüvel
adc8738e5b Web: log SocketIO connection status in notifications history 2022-05-20 11:22:59 +02:00
Sybren A. Stüvel
a74ad07642 OAPI: Regenerate code 2022-05-20 10:49:25 +02:00
Sybren A. Stüvel
7b664475ca Rename job status requeued to requeueing 2022-05-19 17:25:53 +02:00
Sybren A. Stüvel
ce43eead9a OAPI: regenerate code 2022-05-19 17:24:59 +02:00
Sybren A. Stüvel
507985e258 OAPI: rename job status requeued to requeueing
Rename job status `requeued` to `requeueing`, because it indicates a
process that's (if things are working well) happening currently.
2022-05-19 17:22:35 +02:00
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