229 Commits

Author SHA1 Message Date
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
Sybren A. Stüvel
315c7cfde7 Web: fix layout of jobs table
This ensures it uses virtual DOM, which is waaaaaaay faster.
CSS variables are used to compute the max height for the Jobs Table grid
cell, to make sure the Tabulator height can be set to 100% without
overflowing.
2022-04-14 09:54:57 +02:00
Sybren A. Stüvel
c6bc614f2a Web: add commented-out debug code
The code ensures the jobs table gets filled with partial jobs (as from
a WebSocket JobUpdate object), helping to test such updates.
2022-04-14 09:41:04 +02:00
Sybren A. Stüvel
e672289a11 OAPI: include all info for the jobs table in the JobUpdate schema
By having all info for the jobs table in the `JobUpdate` schema, it won't
have to query for the full job when a new job is added. This fetching of
the full job is now delayed until someone clicks on the table row.
2022-04-14 09:41:04 +02:00
Sybren A. Stüvel
3ab1e9a450 Web: add API query spinner
The spinner starts fading in when API calls take longer than 100ms.

Not used yet, how to hook it up to API calls is still being discovered.
2022-04-14 09:41:04 +02:00
Francesco Siddi
313061cf06 Web: Initial design with dark theme in mind 2022-04-12 20:03:52 +02:00
Sybren A. Stüvel
6161853136 Web: reduce console logs a bit 2022-04-12 16:11:52 +02:00
Sybren A. Stüvel
2c8ee18fef Web: include metadata and settings in job details 2022-04-12 16:10:39 +02:00
Sybren A. Stüvel
0694ab8e02 Web: nicer handling of SocketIO connection issues 2022-04-12 16:00:47 +02:00
Sybren A. Stüvel
ec814afa91 Web: show Flamenco name & version in header 2022-04-12 15:54:58 +02:00
Sybren A. Stüvel
caa3481561 Web: emit jobUpdate event with API object instead of straight JSON
Instead of just emitting the straight parsed-JSON object that the SocketIO
library gives us, feed it to the OpenAPI client type system to ensure it's
parsed in the same way as any regular API response.

This is mostly to get datetimes as JS `Date` object instead of as string.
2022-04-12 15:43:50 +02:00
Sybren A. Stüvel
48acf55d6b Web: document cohesion of JobsTable and JobDetails components 2022-04-12 15:42:37 +02:00
Sybren A. Stüvel
316ba6953b Web: show job details column
This may be a nice moment to reconsider using Pinia as a data store, as
we now have two views (job table + job details) that should share a data
set.
2022-04-12 15:28:18 +02:00
Sybren A. Stüvel
d650ff5dcf Web: add empty job & task detail column components 2022-04-12 14:37:48 +02:00
Sybren A. Stüvel
a92435459e Web: tweak job table layout 2022-04-12 14:26:07 +02:00
Sybren A. Stüvel
555c935790 Web: Replace Vue 2 with Vue 3 webapp
Replace the Vue v2 webapp with a Vue v3 one, and embed the OpenAPI
client in the webapp itself (instead of being its own npm project).

- Vue v2.x -> v3.x
- Tabulator v4.x -> v5.1
- Moment JS -> replaced with Luxon JS
- Vue CLI/UI -> replaced with Vite
2022-04-12 12:34:49 +02:00
Sybren A. Stüvel
f155715d12 Web: re-fetch jobs after reconnecting to backend
If the backend connection was lost, and then obtained again, just fetch
all available jobs to ensure the presented data is fresh.
2022-04-08 15:03:04 +02:00
Sybren A. Stüvel
96e5e84881 Web: proper updating & sorting of jobs in Tabulator 2022-04-08 13:08:53 +02:00
Sybren A. Stüvel
3078d22836 Web: format job update timestamp with moment.js 2022-04-07 18:53:16 +02:00
Sybren A. Stüvel
df3f7b44b9 Hook up web interface to job updates 2022-04-07 18:46:09 +02:00
Sybren A. Stüvel
888d93147e Web: add Tabulator vue component 2022-04-07 17:38:48 +02:00
Sybren A. Stüvel
0c0df41f5d Job status change system for SocketIO broadcasts
Not fully tested yet.
2022-04-05 15:52:55 +02:00
Sybren A. Stüvel
e990603311 OAPI: Add generated JavaScript API client
This adds a JS client for the OAPI interface, and introduces the SocketIO
stuff into Flamenco Manager itself.

To build & run:
- in `web/manager-api` run `npm install`
- in `web/manager-api` run `npm link`
- in `web/app` run `npm install`
- in `web/app` run `npm link flamenco-manager`
- in `web/app` run `yarn serve`

This may not be a complete list, but at least some of those steps are
necessary.
2022-04-01 16:40:54 +02:00