501 Commits

Author SHA1 Message Date
Pablo Vazquez
a072aaaa8b JobDetail: Rename tabs titles
To set the context in the first tab title.

* Settings -> Job Settings
* Job Details -> Details
2022-07-05 18:31:13 +02:00
Pablo Vazquez
ccd12ea7b0 JobDetails: Remove column title
It's already clear we are viewing a job by the surrounding elements.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
30b734712c UI: Style tabs component 2022-07-05 18:31:13 +02:00
Francesco Siddi
c3d0e71439 Use tabs to organize Job details
WIP
2022-07-05 18:31:13 +02:00
Francesco Siddi
f6b593f660 Add Tab components
With these components it is possible organize content through tabs.

Use the following:

<TabsWrapper>
  <TabItem title="Tab 1">Tab 1 content</TabItem>
  <TabItem title="Tab 2">Tab 2 content</TabItem>
</TabsWrapper>

Inspired by work from matheus-alpe.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
22da307ead UI: Fix disabled buttons border-color mismatch 2022-07-05 18:31:13 +02:00
Pablo Vazquez
9649ed18ea StatusFilterBar: Style tweaks to indicators
* Only dim indicators when list is filtered and status not active
* Slightly smaller size to better fit the action-bar
2022-07-05 18:31:13 +02:00
Pablo Vazquez
964e9cb1a3 Tables: Align status-filter-bars with action-bars
Saves some space and they are related actions anyway.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
fa8a7cfa4f UI: Style adjustment to buttons
Do not use accent color for regular buttons, keep that for real call-to-actions.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
47121d4fa3 UI: Break long strings by words in definition lists 2022-07-05 18:31:13 +02:00
Pablo Vazquez
a5e5dbd1eb WorkersTable: Add function to recalculate table height
Copy-paste of TasksTable `recalcTableHeight`.

Even though the function does not work well 100%, it's better than not
having the table resize.

When the issue gets fixed, it should be copied over to TasksTable and JobsTable.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
69a6279f24 JobsTable: Add function to recalculate table height
Copy-paste of TasksTable `recalcTableHeight`.

Even though the function does not work well 100%, it's better than not
having the table resize.

When the issue gets fixed, it should be copied over to TasksTable and WorkersTable.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
ba0116c589 Cleanup: Remove unused class from TasksTable
There is no styling for that class so remove it to avoid confusion.
2022-07-05 18:31:13 +02:00
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
dc43049183 Web: fix auto-reloading
Fix an issue with the hourly auto-reloading, where the `reload()` call
somehow was called on "an object that doesn't implement the Location
interface".
2022-07-04 14:08:55 +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
4c8ab01dae OAPI: regenerate code 2022-07-04 12:49:26 +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
7d64d1bca4 Move SwaggerUI to /api/v3/swagger-ui
Include the `v3` path component in the Swagger UI URL.
2022-07-04 12:21:18 +02:00
Sybren A. Stüvel
5537f2c07c OAPI: regenerate code 2022-07-04 12:12:45 +02:00
Sybren A. Stüvel
0e3d822868 Web: refresh page every hour
Do a refresh of the web interface once per hour. This is just to make sure
that long-lived displays (like the TV in the hallway at Blender HQ) pick
up on HTML/JS/CSS changes eventually.
2022-07-04 11:59:19 +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
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
801fa20f12 OAPI: regenerate code 2022-07-01 12:32:42 +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
56463fa3ec OAPI: regenerate code 2022-06-30 19:19:38 +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
123674cf57 OAPI: regenerate code 2022-06-30 18:33:36 +02:00
Sybren A. Stüvel
73e1c1930f Web: run dev server on /app/ base URL
Flamenco Manager serves the webapp on `/app/…`, and now the development
server uses the same base URL.
2022-06-30 18:31:53 +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
cc56e5b22e Web: auto-detect whether the port number should be overridden
It's a bit clumsy (if the web port is :8081, override it to :8080 for the
API requests), but works in our case.
2022-06-28 17:15:27 +02:00
Sybren A. Stüvel
159e003745 Web: remove the last bit of the 'Settings' tab
Apparently the header link was still in there.
2022-06-28 17:14:44 +02:00
Sybren A. Stüvel
668e25fe95 OAPI: regenerate code 2022-06-28 17:07:08 +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
c3345131c7 Rename flamenco-addon.zip to flamenco3-addon.zip
Just to be explicit this is for the new Flamenco version.
2022-06-28 12:17:57 +02:00
Sybren A. Stüvel
c856be30e4 Cleanup: web, remove unused import 2022-06-28 10:47:24 +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
e9bc55cfc8 Web: don't hard-code the API port
Having the web API client override the HTTP port for the API URL is fine
during development (when the web content is served through the Vite
devserver), but not in production.
2022-06-28 10:30:26 +02:00
Sybren A. Stüvel
2045a087ca Web: add link to the API explorer
Add a link to `/api/swagger-ui/` to the top bar, which allows exploration
of the API.
2022-06-27 16:13:15 +02:00
Sybren A. Stüvel
def56b5d22 Serve the add-on via the web interface
Serve the Blender add-on via the web interface, downloadable from
`/flamenco-addon.zip`.
2022-06-27 16:12:50 +02:00
Sybren A. Stüvel
7b028df8ac Manager: serve static files of the webapp at /app/
Vue Router generates URLs for which there are no static files on the
filesystem (like `/jobs/{job ID}`). To make this work, the webapp's
`index.html` has to be served for such requests. The client-side JavaScript
then figures out how things fit together, and can even render a nice 404
page if necessary.

This shouldn't happen for non-webapp URLs, though. Because of this, the
entire webapp (including the "serve `index.html` if file not found logic)
is moved to a `/app/` base URL.

`make flamenco-manager` now also builds the webapp and embeds the static
files into the binary.

`make flamenco-manager_race` does NOT rebuild the static web files, to
help speed up of debug cycles. Run `make webapp-static` to rebuild the
webapp itself, if necessary, or run a separate web development server with
`yarn --cwd web/app run dev --host`.
2022-06-27 14:53:42 +02:00
Sybren A. Stüvel
1353d1df0f OAPI: regenerate code 2022-06-27 11:32:12 +02:00
Sybren A. Stüvel
167b2eaf45 OAPI: regenerate code 2022-06-24 16:39:50 +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