775 Commits

Author SHA1 Message Date
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
Sybren A. Stüvel
dcb9eb0bca Regenerate OpenAPI code to get clean version number 2022-04-05 17:29:25 +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
5e5fa57fa4 OAPI: tweak the JS generator to do more what we want 2022-04-04 19:33:46 +02:00
Sybren A. Stüvel
2b1e6c54a8 OAPI: generate Python and JS clients for jobs query endpoint 2022-04-04 18:54:31 +02:00
Sybren A. Stüvel
a35a767ddb Remove web/manager-api/package-lock.json
Apparently it's not generated any more.
2022-04-04 18:53:59 +02:00
Sybren A. Stüvel
96cd064533 JS: failed attempt at connecting to a dynamic endpoint URL
It works for the API calls, but fails to forward the URL to the Vue app
instance.
2022-04-01 16:54:47 +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
Sybren A. Stüvel
96023932da SocketIO based chat client as PoC for backend/frontend communication
The chat client itself is just a throwaway project. The SocketIO system
will be used to send realtime updates about jobs, tasks, and workers to
the web frontend.
2022-02-11 14:47:26 +01:00