204 Commits

Author SHA1 Message Date
Pablo Vazquez
c082f4389b Jobs: add titles to definition list labels
That way if the label does not fit in the view, you can mouse over to
read the full label.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
5fd0292dc1 Tasks: add titles to definition list labels
That way if the label does not fit in the view, you can mouse over to
read the full label.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
60afcc4206 Tasks Table: Add title to section 2022-07-05 18:31:13 +02:00
Sybren A. Stüvel
feaf9545a6 Revert "Move the webapp from /app/… to /app/v3/…"
This reverts commit fcb261f5d336c4362339e6da5b35a340ec5aa6e1. The
`/app/v3` URL didn't look nice enough.
2022-07-05 11:51:05 +02:00
Sybren A. Stüvel
2c932ebad5 Show Worker's "last seen" timestamp in web interface & API responses 2022-07-04 12:49:56 +02:00
Sybren A. Stüvel
fcb261f5d3 Move the webapp from /app/… to /app/v3/…
This will help in the future to host multiple (major) versions of Flamenco
on the same system, redirecting based on their URL prefix.
2022-07-04 12:22:41 +02:00
Sybren A. Stüvel
ae0125edcd Web: fix URL of 'nothing rendered yet' image 2022-07-01 13:32:43 +02:00
Sybren A. Stüvel
d25151184d Add a "Last Rendered" view
Add a "Last Rendered" view to the webapp.

The Manager now stores (in the database) which job was the last
recipient of a rendered image, and serves that to the appropriate
OpenAPI endpoint.

A new SocketIO subscription + accompanying room makes it possible for
the web interface to receive all rendered images (if they survive the
queue, which discards images when it gets too full).
2022-07-01 12:34:40 +02:00
Sybren A. Stüvel
f5f63455d6 Web: add comment to explain URL of last-rendered image
No functional changes.
2022-06-30 19:27:54 +02:00
Sybren A. Stüvel
0a0035eb5b Web: better styling of last-rendered image 2022-06-30 19:27:43 +02:00
Sybren A. Stüvel
2457a63518 Manager: Show "nothing rendered yet" image in job details
Show a "nothing rendered yet" image in the job details when there is no
last-rendered image yet.
2022-06-30 19:20:19 +02:00
Sybren A. Stüvel
84d598c813 Web: reload the last-rendered image on SocketIO notification 2022-06-30 18:37:12 +02:00
Sybren A. Stüvel
b082433757 Web: show last-rendered image in job details
It doesn't update automatically yet (still needs SocketIO notifications),
and there is no check yet for whether there is actually any last-rendered
image at all, but at least there is a component that shows the image.
2022-06-28 17:37:09 +02:00
Sybren A. Stüvel
6d9e5d5299 Web: fix JavaScript issue that only pops up in production
Fix an issue ("`this` is undefined) that only pops up when serving the
static files from `yarn build`, and not when using the Vite devserver.
2022-06-28 10:47:16 +02:00
Sybren A. Stüvel
e0b9866fd4 Web: resize columns after their data was updated
When data is updated, resize columns in the job/task/worker tables. For
example, status change requests of Workers require more space, for example
going from `awake` to `awake → offline`.
2022-06-20 11:44:08 +02:00
Sybren A. Stüvel
64c8fa851d Show assigned worker in task details
Show the worker assigned to the task in the task details view, as link
to the worker itself.
2022-06-17 16:36:55 +02:00
Sybren A. Stüvel
857704c184 Web: worker nickname → name
See 55676b000efbd04cd895da9068f375dfad473ff4
2022-06-17 15:55:36 +02:00
Sybren A. Stüvel
81f81d0e0a Show task failure list in the web frontend
Show the task failure list in the web frontend's `TaskDetails` component.
2022-06-17 11:37:56 +02:00
Sybren A. Stüvel
92d6693871 Show Task's "last touched" in the web interface 2022-06-09 11:59:43 +02:00
Sybren A. Stüvel
7c43b9e1bc Web: include status by name in job & task tables
Having only the status dot was hard to read. It requires you to learn &
remember the different colours, or to mouse-over and wait to see the
tooltip. For accessibility, we shouldn't be using just the colour to
convey information in the interface.
2022-06-09 11:01:03 +02:00
Sybren A. Stüvel
b41feee313 Web: reduce workers table height
The 720px was almost filling up the entire height, making it hard to add
anything new at the top. Soon it should be auto-resizing anyway, making
this less relevant.
2022-06-03 13:02:23 +02:00
Sybren A. Stüvel
375a6666c2 Web: move Worker status change requests to drop-down
This basically copies the drop-down approach from Flamenco Manager 2.
2022-06-03 13:01:47 +02:00
Sybren A. Stüvel
3818d4df83 Web: add simple worker action bar
UI/UX needs improvements, but there now are some buttons to manage Workers.
They request forced status changes, so nothing lazy yet. Still have to
consider how to include that in the UI. Could probably follow the
Flamenco 2 Manager design.
2022-06-02 18:42:34 +02:00
Sybren A. Stüvel
72fd1ac761 Web: simplify log tail fetching a bit 2022-06-02 18:29:16 +02:00
Sybren A. Stüvel
326e54e45a Web: fix job & task subscriptions
Making the UUID optional (rF221ed17fa27193086ec5c9201d48f7cd826e75a4) made
the generated JavaScript code ignore the 3rd parameter. Apparently the
constructor parameters are only for the mandatory properties, and the
rest has to be set on a per-property basis.
2022-06-02 18:29:03 +02:00
Sybren A. Stüvel
ce2e11c35c Web: handle corner case where worker is deselected 2022-06-02 16:45:37 +02:00
Sybren A. Stüvel
3ce225b6e1 Web: remove debug console log 2022-06-02 12:33:38 +02:00
Sybren A. Stüvel
bc33f55b3c Web: update for extraction of status change requests to struct
See recent OpenAPI change.
2022-06-02 12:33:32 +02:00
Sybren A. Stüvel
3e1137ca65 Web: fix status_requested not disappearing from Tabulator 2022-05-31 17:28:40 +02:00
Sybren A. Stüvel
f97f0a34c3 Manager: implement worker status change requests
Implement the OpenAPI `RequestWorkerStatusChange` operation, and handle
these changes in the web interface.
2022-05-31 17:22:03 +02:00
Sybren A. Stüvel
68cd14db2d Fix: add missing <span> around state transition arrow 2022-05-31 15:51:31 +02:00
Sybren A. Stüvel
1510489f4d Web: show requested worker state transition 2022-05-31 15:50:59 +02:00
Sybren A. Stüvel
fc4e3d60d7 Web: show more info in the worker details 2022-05-31 15:47:49 +02:00
Sybren A. Stüvel
237b208fb2 Web: show Worker software version in worker list 2022-05-31 15:31:56 +02:00
Sybren A. Stüvel
66edc5c4d3 Web: include name of status in worker list
This makes it a bit easier to interpret. Just having the colours might
be too little information.
2022-05-31 15:23:42 +02:00
Sybren A. Stüvel
2e11c1c240 Manager: Implement SocketIO worker updates 2022-05-31 15:19:12 +02:00
Sybren A. Stüvel
2b89399206 Manager: handle allJobs subscription
SocketIO clients no longer automatically subscribe to the jobs updates.
This is now done explicitly via the `allJobs` subscription type, and
unsubscribing is also possible.
2022-05-31 15:00:37 +02:00
Sybren A. Stüvel
cd35e3a5cb Web: avoid error resizing the tasks table
The tasks table resize function is called via `this.$nextTick()`, which
means that the component can actually already be unmounted by the time
the actual function call is performed. This is now detected & handled.
2022-05-31 14:56:13 +02:00
Sybren A. Stüvel
7bcfde22b5 Web: add worker details component 2022-05-31 11:34:24 +02:00
Sybren A. Stüvel
e492a31abb Web: cleanup, move job/task-related components into jobs subdir
Move job and task components into `components/jobs`.

No functional changes.
2022-05-30 19:18:01 +02:00
Sybren A. Stüvel
88346d8244 Web: first implementation of Workers overview
Show workers with their status, and allow clicking on a worker to activate
it and show its details (which currently is limited to just its ID). Does
include Vue Router handling of the active worker ID and CSS classes for
worker statuses.

This basically copies the `JobsTable` component to `workers/WorkersTable`.
The intention is that all the jobs-specific components will move into a
`jobs` subdirectory at some point.
2022-05-30 18:52:02 +02:00
Sybren A. Stüvel
723855a9d5 Web: move styling of 'clickable' table rows to separate class
Instead of doing this styling per table, just add a class that indicates
it has clickable rows.
2022-05-30 18:43:23 +02:00
Sybren A. Stüvel
81aec77059 Resize the Tasks table when necessary
The `JobDetails` component now emits a `reshuffled` event whenever its
contents have changed, so that other components can respond to any changes
in available space. This event now triggers a resize of the tasks table
on the next DOM tick (so that the new sizes of the HTML elements are
available).

The `TasksTable` component also recomputes the table size when the task
status filters change (because that might have triggered a show/hide of
the filter bar). It also computes the available height slightly differently
so that it's all done relative to the tabulator element.

There is just one TODO left, which is a hard-coded offset of 12 that
should be obtained dynamically from somewhere -- no idea where it comes
from or why it's necessary.
2022-05-30 15:08:34 +02:00
Sybren A. Stüvel
09dbcfe512 Remove the need to get elements by their ID
Referencing elements outside the current component by ID is not a good
approach; using `this.$el.parentElement` is a bit cleaner.
2022-05-27 16:44:51 +02:00
Sybren A. Stüvel
339aafc1e4 Cleanup: add missing trailing comma
This comma isn't strictly necessary, but makes the diff cleaner when adding
new functions.
2022-05-27 16:43:40 +02:00
Sybren A. Stüvel
60836c77e0 Remove need for global resizeTasksListTable function 2022-05-27 16:43:12 +02:00
Pablo Vazquez
1310e5c9e2 Web: Set height for Tasks List on load and window resize
Calculate the Tasks List height by subtracting its offsetTop from
the Jobs Details column height.

Known issues:
There is a glitch in which the height can be sometimes longer or shorter
than expected, due to asynchronous loading of other components in Job Details
(such as Job Settings or table filters).
2022-05-25 17:14:21 +02:00
Sybren A. Stüvel
72487e3fb4 Web: only load task log tail when task log viewer is visible
The code to fetch the task log tail is moved from `JobsView.vue` to
`TaskLog.vue`, as that knows exactly when it's shown & hidden.

The subscriptions to the task log updates will have to be managed in the
same way; that's for another commit.
2022-05-24 16:04:03 +02:00
Sybren A. Stüvel
1ac72bd3fc Web: no longer do filtering when clicking on the 'status' table cell
Clicking on a job/task in their respective lists will now always activate
it, regardless of where on the row was clicked.

Managing the filters by clicking on the status was a nice idea, but was
confusing in practice.
2022-05-20 16:54:30 +02:00
Sybren A. Stüvel
ae0f4a7ca4 Show task log tail in the web interface 2022-05-20 16:49:51 +02:00