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
Sybren A. Stüvel
78a3e5faf0
Web: header tweaks to get the layout a bit cleaner
2022-04-15 16:29:30 +02:00
Sybren A. Stüvel
d099a31531
OAPI: add endpoint for getting a single job type
...
This will be used by the web frontend to determine which job settings
to show and which to hide.
2022-04-15 16:21:48 +02:00
Sybren A. Stüvel
1847c5219d
Web: fix unexpected scrollbar on Firefox
...
Firefox will still have an additional 1px vertical line at the bottom of
the page, even when `#app` should take 100% of the vertical space. This
causes a scrollbar to show up. Setting the height at `calc(100vh - 1px)`
solves this.
2022-04-15 14:27:51 +02:00
Sybren A. Stüvel
5c28fcd1b7
Web: set colours on the html & body element
...
Setting the CSS `color` and `background-color` properties on the top-level
elements will make Firefox understand the dark theme, and colour the scroll
bar appropriately.
2022-04-15 14:27:24 +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
93b065217e
Web: always fetch fresh job on selection in the tabulator
2022-04-14 09:41:04 +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
81ad3575db
Web: only fetch selected job if not yet fully known
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
Sybren A. Stüvel
d5477091d9
Web: Remove Vue-generated default README.md
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
77cc0f36e6
Web: remove API example code, enough examples in the code now
2022-04-12 16:10:51 +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
69e6b2bd99
Web: Flamenco favicon
2022-04-12 12:54:27 +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
9ec39b0b41
Web: import moment.js in a way Tabulator can find
2022-04-08 12:05:14 +02:00
Sybren A. Stüvel
863ecee954
OAPI: regenerate OpenAPI code
2022-04-08 12:04:34 +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
528dec9c50
Web: allow setting title of webapp
...
Moving `static/*` to `public/*` actually made Vue pick up our `index.html`,
and allow us to set the app title.
2022-04-07 16:14:29 +02:00
Sybren A. Stüvel
0a9f0c43f6
Web: send messages & job updates to the chat window
2022-04-05 17:42:45 +02:00