58 Commits

Author SHA1 Message Date
Pablo Vazquez
eff5b21ecd Setup Assistant: Color progress bar
Progress bar element that resizes width depending on the current progress.

Introduces the `totalSetupSteps` property to be able to calculate its width
without using magic numbers.
2022-07-22 14:57:11 +02:00
Pablo Vazquez
038eb678e8 Setup Assistant: Use larger buttons for back/next 2022-07-22 14:57:11 +02:00
Francesco Siddi
78af4fae61 Setup Screen: Address feedback on UX 2022-07-22 14:57:11 +02:00
Pablo Vazquez
b74c8558cf UI: Style text inputs 2022-07-22 14:57:11 +02:00
Francesco Siddi
08f52993ad Setup Screen: Overall UI/UX tweaks
- Added initial description and illustration
- Swap "Check" button for fields with a debounced @input event
- Turn Blender's list into a radio selector
- Tweak wording when paths are not found
- Add microtip library for tooltips
- Make navigation steps clickable, according to the state
2022-07-22 14:57:11 +02:00
Pablo Vazquez
9d7fe1e479 Setup Screen: align btn-bar to the right when only containing one button 2022-07-22 14:57:11 +02:00
Pablo Vazquez
35abc3e02c Setup Screen: Style in-progress text
* Rename: "... finding Blenders ..." to "Looking for Blender installs..."
* Rename: "... checking ..." to "Checking..."
2022-07-22 14:57:11 +02:00
Francesco Siddi
8b02085c5b Setup Screen: Use StepsWrapper
Similar to TabsWrapper, with Previous/Next navigation capabilities.
2022-07-22 14:57:11 +02:00
Pablo Vazquez
a075a36911 Setup Screen: Expose all sections
For now, until proper next/back is introduced.
2022-07-22 14:57:11 +02:00
Pablo Vazquez
db39ca0d21 Setup Screen: Initial styling and layout adjustments 2022-07-22 14:57:11 +02:00
Sybren A. Stüvel
a97913bebb Web: add "Follow Task Log" button
The "Follow Task Log" button should make it easier to discover the task
log viewer in the footer pop-over.
2022-07-16 13:22:11 +02:00
Sybren A. Stüvel
9cebcc9f7c Fix T99391: get rid of the last occasional scrollbar in the middle column
My way to get things working (I wouldn't call this a "solution" as I don't
know the root cause) was to emit two consecutive "reshuffled" events when
changing tabs in the job details, and to recalculate the table height when
the job type (so not the job itself, but its type info) is loaded.
2022-07-16 10:51:43 +02:00
Sybren A. Stüvel
73f98f93a0 First-Time Wizard: reload the webpage after a succesful save
After saving the configuration, show a message & restart the webapp.

The restarting is done after 2 seconds, to give the Manager some time to
restart after receiving the new config.
2022-07-14 18:01:57 +02:00
Sybren A. Stüvel
10f56148d4 Allow saving configuration from the first-time wizard
This just updates the config and saves it to `flamenco-manager.yaml`.

Saving the configuration doesn't restart the Manager yet, that's for
another commit.
2022-07-14 17:27:17 +02:00
Sybren A. Stüvel
f68c4860f4 First-time wizard: tweak some wording 2022-07-14 13:34:02 +02:00
Sybren A. Stüvel
aec5ee49e0 First-Time Wizard: allow selecting Blender executables
The wizard now finds Blender in various ways, and lets the user select
which one to use.

Doesn't save anything yet, though.
2022-07-14 12:22:56 +02:00
Sybren A. Stüvel
20f13257f7 Move "blender finder" from Worker-specific to common location
Manager's first-time wizard will have to be able to find Blender as well.
2022-07-14 11:17:03 +02:00
Sybren A. Stüvel
aa9837b5f0 First incarnation of the first-time wizard
This adds a `-wizard` CLI option to the Manager, which opens a webbrowser
and shows the First-Time Wizard to aid in configuration of Flamenco.

This is work in progress. The wizard is just one page, and doesn't save
anything yet to the configuration.
2022-07-14 11:17:03 +02:00
Pablo Vazquez
204d9d1156 Footer: Add arrow icon to indicate that can be expanded 2022-07-07 17:49:23 +02:00
Pablo Vazquez
b8c49acf71 Cleanup: Rename window-footer to app-footer
Follow the naming used in other places like app-version or #app.
2022-07-07 17:49:23 +02:00
Pablo Vazquez
f8c49981f6 WorkersView: Add missing class to footer 2022-07-07 16:00:04 +02:00
Sybren A. Stüvel
beb8684a38 Web: fix styling of last-rendered image in job details
Instead of putting the styling in `<style scoped>`, I moved it to the
global `base.css`. This made things work again.
2022-07-01 13:10:51 +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
84d598c813 Web: reload the last-rendered image on SocketIO notification 2022-06-30 18:37:12 +02:00
Sybren A. Stüvel
37d8fbdf5e Web: remove 'settings' view
It's not in use, and better to not have it at all then.
2022-06-28 12:32:09 +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
e18dab5c82 Web: make the worker list narrower, occupying only a single column 2022-05-31 15:48:00 +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
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
Pablo Vazquez
74f875957f Web: Move overflow and position properties to affect all columns 2022-05-30 15:44:38 +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
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
ae0f4a7ca4 Show task log tail in the web interface 2022-05-20 16:49:51 +02:00
Sybren A. Stüvel
4562e98df5 Web: store footer popover state in local storage
Keep the footer popover state in the local storage, restoring it on load:
- Visibility of the popover
- Current tab of the popover
2022-05-20 14:43:30 +02:00
Sybren A. Stüvel
7cdcaf443c Web: cleanup, remove unused imports 2022-05-20 13:41:39 +02:00
Sybren A. Stüvel
fa7bfaabee Web: cleanup, move footer components into a footer subdirectory
No functional changes.
2022-05-20 13:41:32 +02:00
Sybren A. Stüvel
3e5f681321 Task log broadcasting via SocketIO
Implement task log broadcasting via SocketIO. The logs aren't shown in the
web interface yet, but do arrive there in a Pinia store. That store is
capped at 1000 lines to keep memory requirements low-ish.
2022-05-20 13:03:41 +02:00
Sybren A. Stüvel
34bccd9277 Cleanup, web: rename subscribedJob to subscribedJobID
The prop contains the job ID, not the job itself, which is now reflected
in the name.

No functional changes.
2022-05-20 11:27:23 +02:00
Sybren A. Stüvel
22ce5a3e13 Web: only show tasks table if there is job data to show
Without this, the tasks table would be shown (off-screen, so you'd have
to scroll to see it) when there is an active job ID, but no data loaded
due to the backend being unavailable.
2022-05-19 15:42:57 +02:00
Sybren A. Stüvel
0242f2d217 Web: show job updates in the notifications popover 2022-05-19 15:18:19 +02:00
Sybren A. Stüvel
03a021e14f Web: don't deactivate current task when clicking on current job 2022-05-19 14:28:54 +02:00
Sybren A. Stüvel
4602ef2523 Web: show task status changes in the notifications
This of course only shows notifications about tasks of the active job,
as otherwise things would get messy.
2022-05-19 14:28:37 +02:00
Sybren A. Stüvel
40bed3db5e Web: add notification history pop-over
Add a notification pop-over, which can be opened by clicking the footer
bar.
2022-05-19 12:57:00 +02:00
Sybren A. Stüvel
bc355d68ab Web: cleanup JobsView, reorder imports of components
Order component imports alphabetically, so it's easier to add new ones.
2022-05-19 12:56:12 +02:00
Sybren A. Stüvel
a3524a03a2 Web: remove index view and just redirect to jobs view
The index view was there to have at least *something* at `/`, but wasn't
planned out well. It'll some day be replaced by a dashboard of sorts.
2022-05-19 11:12:25 +02:00
Sybren A. Stüvel
42c81e9900 Web: remove some debug logging, and convert one log into warning 2022-05-17 14:52:27 +02:00