841 Commits

Author SHA1 Message Date
Pablo Vazquez
14ea7fc0a5 Web: Set titles for dt elements in tables
Since the cell has a fixed width and can be cropped.
2022-05-04 15:32:29 +02:00
Pablo Vazquez
5dae53c1c5 Web: Adjust size of tables
* Do not set height of table manually.
* Set the width of ID cells as characters, instead of percentage.
2022-05-04 15:30:40 +02:00
Pablo Vazquez
c10b7f97c9 Web: Positive wording text for Job/Task Details
Also, do not mention left/right on labels since the position of sections
can vary (for example on smaller screens).
2022-05-04 15:25:29 +02:00
Pablo Vazquez
0d683e4786 Web: Move task details to the bottom on smaller screens 2022-05-04 12:57:02 +02:00
Pablo Vazquez
0c8def66aa Web: Use definition lists for Task and Job details 2022-05-04 12:56:30 +02:00
Pablo Vazquez
a6d2b4235b CSS: Cleanup
Use CSS variables for font family body, and minor contrast and padding adjustments.
2022-05-04 12:54:39 +02:00
Pablo Vazquez
a22e3c9064 Web: Use custom CSS file for Tabulator
Forked from "Midnight" built-in theme.
2022-05-03 19:28:32 +02:00
Pablo Vazquez
af56fd04e9 Web: Add generic column class to columns 2022-05-03 19:27:47 +02:00
Pablo Vazquez
dfb3b5b221 Web: Add placeholder navbar links 2022-05-03 19:27:31 +02:00
Pablo Vazquez
87b9bcee19 Cleanup: Remove unused classes and style 2022-05-03 19:26:43 +02:00
Pablo Vazquez
26adf0d700 Cleanup: Rename action-bar classes and buttons 2022-05-03 19:26:29 +02:00
Pablo Vazquez
301bff9244 Web: Move basic styling from App to base.css
First step, it should be further split later down the line.
2022-05-03 19:21:19 +02:00
Sybren A. Stüvel
ad04856a02 Web: only use the tasks table if it exists
Because of the `v-if` attribute, `this.$refs.tasksTable` may actually be
`null` if there are no tasks shown.
2022-05-03 16:29:14 +02:00
Sybren A. Stüvel
0c79701bea Web: Don't remember selected task
If the selected task doesn't exist (because you selected another job),
Tabulator would select all tasks. That's not what I want.
2022-05-03 16:28:39 +02:00
Sybren A. Stüvel
73b122be84 Show task details for selected task
The task details are updated at real-time via SocketIO updates.
2022-05-03 13:05:30 +02:00
Sybren A. Stüvel
4da7f67105 OAPI: generate code 2022-05-03 13:03:59 +02:00
Sybren A. Stüvel
50c8cd39f2 Task update notifications via SocketIO
Manager now sends out task updates via SocketIO, and the web interface
handles those.

Note that there is a `BroadcastTaskUpdate()` function, but not a
`BroadcastNewTask`. The 'new job' broadcast is sent after the job's
tasks have been created, and thus there is no need for a separate
broadcast per task.
2022-05-03 11:26:24 +02:00
Sybren A. Stüvel
222d618ef6 OAPI: generate code 2022-05-03 11:10:57 +02:00
Sybren A. Stüvel
9b330280b7 Add SocketIO subscription system for job-related updates
SocketIO clients can now send a message with `/subscription` event type
in order to subscribe to or unsubscribe from job-related updates.

These job-related updates themselves aren't sent yet, so this is a change
that's impossible to really test. The socketIO code for joining/leaving
rooms is called, though.
2022-05-02 18:36:14 +02:00
Sybren A. Stüvel
824425f466 OAPI: regenerate code 2022-05-02 18:31:29 +02:00
Sybren A. Stüvel
c07d2e3249 Web: tweak webapp layout 2022-04-29 13:11:44 +02:00
Sybren A. Stüvel
4ebf4f31f9 Web: add task table 2022-04-29 13:11:19 +02:00
Sybren A. Stüvel
cc58f0d81a Web: remove unused parts of the Vue template project
The project was created with things (components, router, views) we don't
use at the moment. To keep a clearer separation between "our code" and
"example code", I just removed the latter.
2022-04-25 17:12:52 +02:00
Sybren A. Stüvel
54587348e3 Web: remove unused import 2022-04-25 17:06:25 +02:00
Sybren A. Stüvel
992fc38604 OAPI: add endpoint for fetching the tasks of a job
Add `fetchJobTasks` operation to the Jobs API. This returns a summary of
each of the job's tasks, suitable for display in a task list view.

The actually used fields may need tweaking once we actually have a task
list view, but at least the functionality is there.
2022-04-22 12:52:57 +02:00
Sybren A. Stüvel
fc4cc11483 Web: style buttons and footer in Blender Blue 2022-04-22 11:46:45 +02:00
Sybren A. Stüvel
4129ed11bb Web: use wrapper for the OpenAPI client to track requests
A wrapper for the generated `ApiClient` class tracks the number of running
queries. This makes it much simpler to show the "API calls pending" UI
element, regardless of which part of the webapp performs the queries.
2022-04-22 11:46:33 +02:00
Sybren A. Stüvel
fc68e8a413 Web: action button styling
Making the button respond to hovering makes it slightly easier to see
which button is enabled and which is disabled.
2022-04-22 10:33:19 +02:00
Sybren A. Stüvel
d0e96ad7bd Web: hide the "delete job" action button
Hide the "Delete job" action button, as it has no backend implementation
yet.
2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
bb1acef054 Web: style action buttons and move the delete button to the last place 2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
eeb8305de0 Web: add button to requeue jobs 2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
698db0bf7c Web: Cleanup, abstract some code away into separate functions
No functional changes, just preparation for adding similar job actions.
2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
2e2184df62 Web: allow cancelling a job also after it failed
For task scheduling this doesn't matter, but for human workflow it can be
useful to differentiate between "failed" (and should be retried) and
"cancelled" (no longer relevant).
2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
1ac37ab625 Web: clearer style for focused action button 2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
d84efb8c9a Web: implement 'Cancel Job' button
The button calls the 'setJobStatus' API endpoint to set the job status to
`cancel-requested`.
2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
5466f65225 OAPI: add setJobStatus operation
Add API endpoint for updating the job status.
2022-04-21 19:06:18 +02:00
Sybren A. Stüvel
b699647ed4 OpenAPI: add activity field to Job schema 2022-04-21 12:40:25 +02:00
Sybren A. Stüvel
2bc6b2bdba Web: start of notification bar
Use Pinia store for notifications. WIP, only the last one is shown in
the footer.
2022-04-19 16:27:05 +02:00
Sybren A. Stüvel
7b38aa4faf Web: add Job Actions Bar for action buttons
Add a bar for "job actions", i.e. buttons that do something with the
selected job(s).

Just has one button, and it doesn't do much either, but at least the
framework for these things is here.
2022-04-19 16:27:05 +02:00
Sybren A. Stüvel
2bbe1148b7 Web: Job details, avoid error when job data not yet loaded 2022-04-19 16:27:05 +02:00
Sybren A. Stüvel
27fb9d05db Web: use Pinia for storage of selected & current Job
Using the concept of 'selected' and 'active' similar to Blender.

Not all components have been altered to use the Pinia store yet.
2022-04-19 16:27:05 +02:00
Sybren A. Stüvel
4553be4d6c Web: different JS style for defining app data
Just a readability improvement.

No functional changes.
2022-04-19 16:03:36 +02:00
Sybren A. Stüvel
7bde1e243a Web: import from package-relative path
Use `@/path/to/file` instead of `./path/to/file`, as the former will be
valid even when used in a subdirectory (i.e. in cases where the latter
would have to change to `../path/to/file`). This makes imports uniform
and easier to copy-paste into other files.

No functional changes.
2022-04-19 16:03:36 +02:00
Sybren A. Stüvel
6655c2b3d7 Web: only use job type label if job type has been loaded 2022-04-19 11:34:13 +02:00
Sybren A. Stüvel
2e41d9a024 Web: show job type label instead of internal type name 2022-04-15 18:04:07 +02:00
Sybren A. Stüvel
64af9e4ae4 Web: add some handy debugging functions 2022-04-15 18:00:01 +02:00
Sybren A. Stüvel
4734e3c297 Web: filter settings based on job type definition
The web interface will now only show those settings that have `visible:
true`.

Probably it's a good idea to extend the job type, so that the visibility
can be controlled separately for job submission (i.e. the Blender
add-on) and job viewing (i.e. the web frontend).
2022-04-15 17:59:39 +02:00
Sybren A. Stüvel
0d94d7c20a Web: load job type info from backend
Load job type info from the backend, whenever the job type changes (i.e.
when a job is selected that has a different type than the previous one).
2022-04-15 17:22:10 +02:00
Sybren A. Stüvel
6f9a422511 Web: don't hammer server trying to reconnect 2022-04-15 17:22:10 +02:00
Sybren A. Stüvel
84e1ca9c67 Web: allow deselection of jobs
This ensures that deselecting a job also removes it from the job details
column.
2022-04-15 17:22:10 +02:00