35 Commits

Author SHA1 Message Date
Sybren A. Stüvel
744fabea78 OAPI: rename pkg/api/flamenco-manager.yaml to flamenco-openapi.yaml
Rename `pkg/api/flamenco-manager.yaml` to `flamenco-openapi.yaml`, to
distinguish the OpenAPI definition file from the Flamenco Manager
configuration file of the same name (but in a different directory).

No functional changes.
2022-05-19 15:22:37 +02:00
Sybren A. Stüvel
cc62cab1d6 Update code to handle the JobUpdate to SocketIOJobUpdate rename
No functional changes.
2022-05-19 15:18:06 +02:00
Sybren A. Stüvel
56eedbaddb Web: remove unused code 2022-05-17 15:37:14 +02:00
Sybren A. Stüvel
84ba3ec8b2 Web: cleanup, explain why commented-out code is kept 2022-05-17 15:05:25 +02:00
Sybren A. Stüvel
908953c8d4 Web: cleanup, remove some unused code 2022-05-17 15:05:17 +02:00
Sybren A. Stüvel
163611ff19 Web: add filter bar for job status 2022-05-16 18:15:51 +02:00
Sybren A. Stüvel
9fd4d55fdb Web: move status indicator code into its own function
Status indicators are used in Tabulator cells, and it's unknown whether
we can use Vue components there. Moving the code to a central place makes
it a bit easier to reuse the function in various places.
2022-05-16 17:31:30 +02:00
Sybren A. Stüvel
32737ef17b Web: cleanup, add some trailing commas and remove unused code
No functional changes.
2022-05-16 15:36:39 +02:00
Sybren A. Stüvel
8f27ea9714 Web: move Tabulator options into mounted() function
Move the Tabulator options from the `data()` function to the `mounted()`
function. This allows upcoming changes to refer to the Vue component.
2022-05-16 15:36:20 +02:00
Sybren A. Stüvel
eb0bfe820b Web: allow filtering jobs by their status
This is a very simple approach, where clicking on a job's status dot
toggles filtering by that status. There is no visual indication that this
filtering is active.

The Tabulator support for filtering from the headers is a bit buggy, see
https://github.com/olifolkerd/tabulator/issues/3745 -- I'm getting this
error even without `multiselect: true`.
2022-05-16 15:02:38 +02:00
Pablo Vazquez
d0d40c8e46 Web: Set a fixed height for Tabulator tables.
It's ugly but couldn't find a way to make it responsive and not break
the Virtual DOM.
2022-05-12 15:53:57 +02:00
Sybren A. Stüvel
1f76c3bc64 Web: remove job/task ID column from table 2022-05-11 15:03:40 +02:00
Sybren A. Stüvel
63ac728732 Web: remove concept of "selected jobs" and replace with "active job"
The selection mechanism of Tabulator was getting in the way of having nice
navigation, as it would deselect (i.e. nav to "/") before selecting the
next job (i.e. nav to "/jobs/{job-id}").

The active job is now determined by the URL and thus handled by Vue Router.
Clicking on a job simply navigates to its URL, which causes the reactive
system to load & display it.

It is still intended to get job selection for "mass actions", but that's
only possible after normal navigation is working well.
2022-05-11 12:13:25 +02:00
Sybren A. Stüvel
cfab4f5b76 Web: use title case in status indicator 2022-05-06 12:14:28 +02:00
Sybren A. Stüvel
7bda798009 Web: remove debug console.log() calls 2022-05-06 11:59:11 +02:00
Francesco Siddi
a70438ec4f Load table data on 'tableBuilt' event
Before this change, the tables would not get consistently populated
with the jobs or task data. Thanks Sybren for the fix!
2022-05-05 17:04:08 +02:00
Pablo Vazquez
56089bba99 Web: Remove ID cell from tables 2022-05-04 19:28:07 +02:00
Pablo Vazquez
fb774e2e45 Web: Replace status with indicator 2022-05-04 18:51:20 +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
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
Sybren A. Stüvel
c07d2e3249 Web: tweak webapp layout 2022-04-29 13:11:44 +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
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
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
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
6161853136 Web: reduce console logs a bit 2022-04-12 16:11:52 +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
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