Skip to content

Commit d99bd9b

Browse files
Share browser requirement controls without growing the create form
1 parent 791736c commit d99bd9b

2 files changed

Lines changed: 18 additions & 20 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// One explicit execution classification, shared by Task and recurring forms.
2+
// Unknown work stays unclassified rather than being offered as headless-safe.
3+
export function createBrowserRequirementSelect(createQuickSelect, value = "unclassified") {
4+
const field = createQuickSelect(
5+
"Browser need",
6+
[
7+
["unclassified", "Not classified"],
8+
["headless", "Headless — finishes without a browser"],
9+
["required", "Browser required"],
10+
],
11+
value,
12+
);
13+
field.input.value = value;
14+
return field;
15+
}

‎frontend/src/surfaces/tasks/quick-create.js‎

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { createBrowserRequirementSelect } from "./browser-requirement.js";
12
import "../../dakit/tag-input.js";
23
import { documentHref, opensInNewTab } from "../../core/links.js";
34
import {
@@ -58,16 +59,7 @@ export function createQuickTaskActions(context) {
5859
const dateInput = createQuickInput("Due date", "date", todayIsoDate());
5960
// The execution need is chosen at creation when it is known; leaving it
6061
// unclassified is the honest default, never a headless claim.
61-
const browser = createQuickSelect(
62-
"Browser need",
63-
[
64-
["unclassified", "Not classified"],
65-
["headless", "Headless — finishes without a browser"],
66-
["required", "Browser required"],
67-
],
68-
"unclassified",
69-
);
70-
browser.input.value = "unclassified";
62+
const browser = createBrowserRequirementSelect(createQuickSelect, "unclassified");
7163
const feedback = createFormFeedback();
7264

7365
const createBtn = document.createElement("button");
@@ -518,16 +510,7 @@ export function createQuickTaskActions(context) {
518510
assignee.input.value = preset.assigneeId;
519511
// Generated Tasks inherit the schedule's classification, so an operator on
520512
// a headless machine can tell from the queue what a firing will produce.
521-
const browser = createQuickSelect(
522-
"Browser need",
523-
[
524-
["unclassified", "Not classified"],
525-
["headless", "Headless — finishes without a browser"],
526-
["required", "Browser required"],
527-
],
528-
preset.browserRequirement || "unclassified",
529-
);
530-
browser.input.value = preset.browserRequirement || "unclassified";
513+
const browser = createBrowserRequirementSelect(createQuickSelect, preset.browserRequirement || "unclassified");
531514
const enabled = createQuickCheckbox(
532515
editing ? "Active" : "Activate immediately",
533516
preset.enabled,

0 commit comments

Comments
 (0)