67 Commits

Author SHA1 Message Date
Sybren A. Stüvel
819767ea1a Webapp: tweak the .editorconfig and .prettierrc files + re-format
Try to get the `.editorconfig` and `.prettierrc` files as close as possible
to the formatting that was used in Flamenco. Because these files weren't
here during most of Flamenco's development so far, having them caused quite
a few changes in the webapp files.

No functional changes intended.
2023-09-11 17:22:18 +02:00
Sybren A. Stüvel
089bae5bf9 Webapp: import notifications on job details component
Errors getting worker tags were logged in the notifications area, but the
notifications Piña store weren't actually imported, causing a JS error.
2023-08-17 16:29:08 +02:00
Eveline Anderson
830c3fe794 Rename worker 'clusters' to 'tags'
As it was decided that the name "tags" would be better for the clarity
of the feature, all files and code named "cluster" or "worker cluster"
have been removed and replaced with "tag" and "worker tag". This is only
a name change, no other features were touched.

This addresses part of #104204.

Reviewed-on: https://projects.blender.org/studio/flamenco/pulls/104223

As a note to anyone who already ran a pre-release version of Flamenco
and configured some worker clusters, with the help of an SQLite client
you can migrate the clusters to tags. First build Flamenco Manager and
start it, to create the new database schema. Then run these SQL queries
via an sqlite commandline client:

```sql
insert into worker_tags
    (id, created_at, updated_at, uuid, name, description)
  select id, created_at, updated_at, uuid, name, description
  from worker_clusters;

insert into worker_tag_membership (worker_tag_id, worker_id)
  select worker_cluster_id, worker_id from worker_cluster_membership;
```
2023-07-10 11:11:03 +02:00
Sybren A. Stüvel
3306c7fc8d Web: add support for worker clusters
The support is still fairly minimal. Clusters cannot be managed via the
webapp yet, so the API has to be used directly for that. Workers can be
assigned to clusters via the webapp though.
2023-04-04 12:19:14 +02:00
Sybren A. Stüvel
72a78cd929 Webapp: remove some console.log calls
No functional changes, except for a slightly less noisy JS debug console.
2023-02-21 11:10:20 +01:00
Sybren A. Stüvel
1add6bfc8a Webapp: avoid browser JS errors about forbidden 'User-Agent' header
Brave (and maybe other browseres) refuse to set the 'User-Agent' header
in XMLHTTPRequests, and are vocal about this in the debug log. Since the
OpenAPI code generator always outputs a custom 'User-Agent' header, I've
added some JS code to strip that off when constructing an API client.
2023-02-21 11:08:48 +01:00
Sybren A. Stüvel
12f4d9b5ce Tabulator: avoid setting height if already at the correct height
Setting the height of a Tabulator can trigger all kinds of things,
including some buggy behaviour where all the jobs would disappear from
screen. Just don't do it unless it's necessary.
2023-02-21 10:38:07 +01:00
Sybren A. Stüvel
ef3cab9745 Webapp: handle job deletions properly
- Add a little confirmation overlay before deleting a job. This overlay
  also shows information about whether the Shaman checkout directory
  will be deleted or not.
- Send job updates to the web frontend when jobs are marked for
  deletion, and when they are actually deleted.
- Respond to those updates, and handle some corner cases where job info
  is missing (because it just got deleted).

This closes T99401.
2023-02-03 16:59:15 +01:00
Sybren A. Stüvel
3a16456d5b Web app: add job deletion button to job action bar
WARNING: There is no confirmation popup yet, it'll immediately schedule
the job for deletion.
2023-01-08 13:53:55 +01:00
Sybren A. Stüvel
a97a4e6e67 Manager: show delete-requested jobs in the web interface
Show jobs that have been marked for deletion with a red strike-through
line in the jobs table, and show the deletion-request timestamp in the
job details.
2023-01-08 13:52:27 +01:00
Francesco Siddi
4389b60197 Webapp: UI to update Job priority 2022-10-16 18:51:44 +02:00
Sybren A. Stüvel
0a7b7d9cf6 Webapp: remove assumption from SocketIO job updates
Remove the assumption that a SocketIO job update without "previous state"
set is always an indication that it's about a new job. Soon job priority
will be changeable, and then this assumption will no longer hold.
2022-09-30 16:26:26 +02:00
Sybren A. Stüvel
9d828e5d08 Webapp: make Job and Task ID fields click-to-copy
Click on a job or task ID to copy it to the clipboard.
2022-08-25 13:59:31 +02:00
Sybren A. Stüvel
72b994db7d Web: show a "get the addon" call to action if there are no jobs
If there are no jobs in the database yet, show a "get the addon" call to
action. This includes the current API URL, which can be copied by clicking
on it.

There is no feedback yet that the copy took place, though.
2022-08-02 10:43:08 +02:00
Sybren A. Stüvel
06d0c3133f Cleanup: reformatting of Vue components
Reformat Vue files with the "Vue.volar" formatter.
2022-08-02 09:34:18 +02:00
Sybren A. Stüvel
38501bac7c Cleanup: web, remove lang="js" from <script> tags
Everything is JavaScript.
2022-08-02 09:32:54 +02:00
Sybren A. Stüvel
375c5ac3ac Web: fix scrollbar showing in task list column
The blocklist component also needs to wait two ticks before emitting the
"reshuffled" event (which triggers a resize of the tasks table).
2022-08-01 22:49:31 +02:00
Sybren A. Stüvel
e3e0968d88 Web: show task type in the task details
The task type was intended to be always shown, but a mistake in the field
name + a misunderstanding caused them to be always hidden.
2022-08-01 22:30:51 +02:00
Sybren A. Stüvel
b3370cdf0d Web: prevent error in task details when task is unassigned to worker 2022-08-01 22:29:43 +02:00
Sybren A. Stüvel
404dbc5be8 Web: allow removal of blocklist entries 2022-08-01 18:55:52 +02:00
Sybren A. Stüvel
023d392560 Web: resize the Tasks table after loading the job blocklist
Emit a 'reshuffled' event to let the job view resize the tasks table.
2022-08-01 18:44:50 +02:00
Sybren A. Stüvel
9d65f6f4de Web: use small font for job blocklist 2022-08-01 18:25:17 +02:00
Sybren A. Stüvel
b6d8882b8e Web: show job blocklist
The blocklist is now shown in the job details, in its own tab. The list
is only fetched when the tab is visible, and doesn't get dynamically
updated yet.
2022-08-01 18:24:01 +02:00
Sybren A. Stüvel
37477fc6bd Web: remove console.log calls
Remove a whole lot of `console.log()` calls. They were useful during
development, but not really suitable for production environments. Because
they also include (potentially large) objects, they can even slow down
the webapp itself.
2022-08-01 17:11:45 +02:00
Francesco Siddi
d6f419a683 Web: Rename link components
No functional change, just name the components with their type first,
so that all 'link' related components are more discoverable and next
to each other.
2022-07-26 16:33:05 +02:00
Sybren A. Stüvel
b3701ef493 Web: style task log buttons
Style the task log buttons like the other buttons.
2022-07-16 13:23:06 +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
726129446d T99730: Allow access to full task log
The web interface has a button that opens the task log in a new window.
This might need some restyling ;-)
2022-07-16 12:55:41 +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
Pablo Vazquez
47110f437b JobDetails: Show message when job has no settings or metadata
Avoid an empty tab by displaying a message if there's no data.
2022-07-07 16:35:17 +02:00
Pablo Vazquez
d4fbad971c TaskDetails: Only show Type if defined 2022-07-07 16:13:07 +02:00
Pablo Vazquez
356c9b969d TaskDetails: Fix some details not showing when failed workers
Error introduced when the fields were sorted.
2022-07-07 16:13:07 +02:00
Pablo Vazquez
c718183e86 TaskDetails: Fix broken layout when multiple failed workers 2022-07-07 16:13:07 +02:00
Pablo Vazquez
23e752b351 LastRenderedImage: Fix nothing-rendered-yet image size 2022-07-07 15:40:50 +02:00
Pablo Vazquez
5ff5a4f141 JobDetails: Style preview container
* Limit preview container size to 16:9 aspect ratio.
* Use `-small` size of the last-rendered image, tiny is too small.
2022-07-07 15:34:30 +02:00
Pablo Vazquez
5501f86215 LastRenderedImage: Center image and limit width 2022-07-07 15:32:46 +02:00
Pablo Vazquez
94a4b8980f Last-rendered: Remove border from SVG
Add background-color via CSS.

If a border is required (e.g. to see the boundaries in transparent renders)
it should be added via CSS, so it scales properly.
2022-07-05 19:59:07 +02:00
Pablo Vazquez
44b30e08de UI: Color status in JobDetails and TaskDetails component
Create a visual connection with the colors used by the indicators.
2022-07-05 19:59:07 +02:00
Pablo Vazquez
66ad722519 JobDetails: Add back ID
It was removed by mistake when the tabbed UI was introduced.
2022-07-05 19:59:07 +02:00
Pablo Vazquez
8a4bcc3bf9 TaskDetails: Move definition list items to match JobDetails
* Move activity to the bottom
* Move Failed by Workers higher as it is critical information
2022-07-05 19:59:07 +02:00
Francesco Siddi
df79864847 JobDetail: Emit reshuffled event on tab clicks
This way the tasks table properly resizes, accommodating for the
content changes of the tab group above it.
2022-07-05 18:31:13 +02:00
Pablo Vazquez
d87e0aa019 Last-rendered: Remove outline when nothing has been rendered yet
Dotted/dashed lines are usually used for drop-boxes.
2022-07-05 18:31:13 +02:00
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
Francesco Siddi
c3d0e71439 Use tabs to organize Job details
WIP
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
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