mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
chore: bump @biomejs/biome from 1.8.3 to 1.9.3 in /site (#14914)
This commit is contained in:
+2
-1
@@ -6,7 +6,8 @@
|
||||
"rules": {
|
||||
"a11y": {
|
||||
"noSvgWithoutTitle": { "level": "off" },
|
||||
"useButtonType": { "level": "off" }
|
||||
"useButtonType": { "level": "off" },
|
||||
"useSemanticElements": { "level": "off" }
|
||||
},
|
||||
"style": {
|
||||
"noNonNullAssertion": { "level": "off" },
|
||||
|
||||
+1
-1
@@ -101,7 +101,7 @@
|
||||
"yup": "1.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@biomejs/biome": "1.8.3",
|
||||
"@biomejs/biome": "1.9.3",
|
||||
"@chromatic-com/storybook": "1.9.0",
|
||||
"@octokit/types": "12.3.0",
|
||||
"@playwright/test": "1.47.2",
|
||||
|
||||
Generated
+40
-40
@@ -212,8 +212,8 @@ importers:
|
||||
version: 1.4.0
|
||||
devDependencies:
|
||||
'@biomejs/biome':
|
||||
specifier: 1.8.3
|
||||
version: 1.8.3
|
||||
specifier: 1.9.3
|
||||
version: 1.9.3
|
||||
'@chromatic-com/storybook':
|
||||
specifier: 1.9.0
|
||||
version: 1.9.0(react@18.3.1)
|
||||
@@ -396,7 +396,7 @@ importers:
|
||||
version: 5.4.6(@types/node@20.16.10)
|
||||
vite-plugin-checker:
|
||||
specifier: 0.7.2
|
||||
version: 0.7.2(@biomejs/biome@1.8.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10))
|
||||
version: 0.7.2(@biomejs/biome@1.9.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10))
|
||||
vite-plugin-turbosnap:
|
||||
specifier: 1.0.3
|
||||
version: 1.0.3
|
||||
@@ -1215,55 +1215,55 @@ packages:
|
||||
'@bcoe/v8-coverage@0.2.3':
|
||||
resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==}
|
||||
|
||||
'@biomejs/biome@1.8.3':
|
||||
resolution: {integrity: sha512-/uUV3MV+vyAczO+vKrPdOW0Iaet7UnJMU4bNMinggGJTAnBPjCoLEYcyYtYHNnUNYlv4xZMH6hVIQCAozq8d5w==}
|
||||
'@biomejs/biome@1.9.3':
|
||||
resolution: {integrity: sha512-POjAPz0APAmX33WOQFGQrwLvlu7WLV4CFJMlB12b6ZSg+2q6fYu9kZwLCOA+x83zXfcPd1RpuWOKJW0GbBwLIQ==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
hasBin: true
|
||||
|
||||
'@biomejs/cli-darwin-arm64@1.8.3':
|
||||
resolution: {integrity: sha512-9DYOjclFpKrH/m1Oz75SSExR8VKvNSSsLnVIqdnKexj6NwmiMlKk94Wa1kZEdv6MCOHGHgyyoV57Cw8WzL5n3A==}
|
||||
'@biomejs/cli-darwin-arm64@1.9.3':
|
||||
resolution: {integrity: sha512-QZzD2XrjJDUyIZK+aR2i5DDxCJfdwiYbUKu9GzkCUJpL78uSelAHAPy7m0GuPMVtF/Uo+OKv97W3P9nuWZangQ==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@biomejs/cli-darwin-x64@1.8.3':
|
||||
resolution: {integrity: sha512-UeW44L/AtbmOF7KXLCoM+9PSgPo0IDcyEUfIoOXYeANaNXXf9mLUwV1GeF2OWjyic5zj6CnAJ9uzk2LT3v/wAw==}
|
||||
'@biomejs/cli-darwin-x64@1.9.3':
|
||||
resolution: {integrity: sha512-vSCoIBJE0BN3SWDFuAY/tRavpUtNoqiceJ5PrU3xDfsLcm/U6N93JSM0M9OAiC/X7mPPfejtr6Yc9vSgWlEgVw==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@biomejs/cli-linux-arm64-musl@1.8.3':
|
||||
resolution: {integrity: sha512-9yjUfOFN7wrYsXt/T/gEWfvVxKlnh3yBpnScw98IF+oOeCYb5/b/+K7YNqKROV2i1DlMjg9g/EcN9wvj+NkMuQ==}
|
||||
'@biomejs/cli-linux-arm64-musl@1.9.3':
|
||||
resolution: {integrity: sha512-VBzyhaqqqwP3bAkkBrhVq50i3Uj9+RWuj+pYmXrMDgjS5+SKYGE56BwNw4l8hR3SmYbLSbEo15GcV043CDSk+Q==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@biomejs/cli-linux-arm64@1.8.3':
|
||||
resolution: {integrity: sha512-fed2ji8s+I/m8upWpTJGanqiJ0rnlHOK3DdxsyVLZQ8ClY6qLuPc9uehCREBifRJLl/iJyQpHIRufLDeotsPtw==}
|
||||
'@biomejs/cli-linux-arm64@1.9.3':
|
||||
resolution: {integrity: sha512-vJkAimD2+sVviNTbaWOGqEBy31cW0ZB52KtpVIbkuma7PlfII3tsLhFa+cwbRAcRBkobBBhqZ06hXoZAN8NODQ==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@biomejs/cli-linux-x64-musl@1.8.3':
|
||||
resolution: {integrity: sha512-UHrGJX7PrKMKzPGoEsooKC9jXJMa28TUSMjcIlbDnIO4EAavCoVmNQaIuUSH0Ls2mpGMwUIf+aZJv657zfWWjA==}
|
||||
'@biomejs/cli-linux-x64-musl@1.9.3':
|
||||
resolution: {integrity: sha512-TJmnOG2+NOGM72mlczEsNki9UT+XAsMFAOo8J0me/N47EJ/vkLXxf481evfHLlxMejTY6IN8SdRSiPVLv6AHlA==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@biomejs/cli-linux-x64@1.8.3':
|
||||
resolution: {integrity: sha512-I8G2QmuE1teISyT8ie1HXsjFRz9L1m5n83U1O6m30Kw+kPMPSKjag6QGUn+sXT8V+XWIZxFFBoTDEDZW2KPDDw==}
|
||||
'@biomejs/cli-linux-x64@1.9.3':
|
||||
resolution: {integrity: sha512-x220V4c+romd26Mu1ptU+EudMXVS4xmzKxPVb9mgnfYlN4Yx9vD5NZraSx/onJnd3Gh/y8iPUdU5CDZJKg9COA==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@biomejs/cli-win32-arm64@1.8.3':
|
||||
resolution: {integrity: sha512-J+Hu9WvrBevfy06eU1Na0lpc7uR9tibm9maHynLIoAjLZpQU3IW+OKHUtyL8p6/3pT2Ju5t5emReeIS2SAxhkQ==}
|
||||
'@biomejs/cli-win32-arm64@1.9.3':
|
||||
resolution: {integrity: sha512-lg/yZis2HdQGsycUvHWSzo9kOvnGgvtrYRgoCEwPBwwAL8/6crOp3+f47tPwI/LI1dZrhSji7PNsGKGHbwyAhw==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [arm64]
|
||||
os: [win32]
|
||||
|
||||
'@biomejs/cli-win32-x64@1.8.3':
|
||||
resolution: {integrity: sha512-/PJ59vA1pnQeKahemaQf4Nyj7IKUvGQSc3Ze1uIGi+Wvr1xF7rGobSrAAG01T/gUDG21vkDsZYM03NAmPiVkqg==}
|
||||
'@biomejs/cli-win32-x64@1.9.3':
|
||||
resolution: {integrity: sha512-cQMy2zanBkVLpmmxXdK6YePzmZx0s5Z7KEnwmrW54rcXK3myCNbQa09SwGZ8i/8sLw0H9F3X7K4rxVNGU8/D4Q==}
|
||||
engines: {node: '>=14.21.3'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
@@ -8157,39 +8157,39 @@ snapshots:
|
||||
|
||||
'@bcoe/v8-coverage@0.2.3': {}
|
||||
|
||||
'@biomejs/biome@1.8.3':
|
||||
'@biomejs/biome@1.9.3':
|
||||
optionalDependencies:
|
||||
'@biomejs/cli-darwin-arm64': 1.8.3
|
||||
'@biomejs/cli-darwin-x64': 1.8.3
|
||||
'@biomejs/cli-linux-arm64': 1.8.3
|
||||
'@biomejs/cli-linux-arm64-musl': 1.8.3
|
||||
'@biomejs/cli-linux-x64': 1.8.3
|
||||
'@biomejs/cli-linux-x64-musl': 1.8.3
|
||||
'@biomejs/cli-win32-arm64': 1.8.3
|
||||
'@biomejs/cli-win32-x64': 1.8.3
|
||||
'@biomejs/cli-darwin-arm64': 1.9.3
|
||||
'@biomejs/cli-darwin-x64': 1.9.3
|
||||
'@biomejs/cli-linux-arm64': 1.9.3
|
||||
'@biomejs/cli-linux-arm64-musl': 1.9.3
|
||||
'@biomejs/cli-linux-x64': 1.9.3
|
||||
'@biomejs/cli-linux-x64-musl': 1.9.3
|
||||
'@biomejs/cli-win32-arm64': 1.9.3
|
||||
'@biomejs/cli-win32-x64': 1.9.3
|
||||
|
||||
'@biomejs/cli-darwin-arm64@1.8.3':
|
||||
'@biomejs/cli-darwin-arm64@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-darwin-x64@1.8.3':
|
||||
'@biomejs/cli-darwin-x64@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-linux-arm64-musl@1.8.3':
|
||||
'@biomejs/cli-linux-arm64-musl@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-linux-arm64@1.8.3':
|
||||
'@biomejs/cli-linux-arm64@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-linux-x64-musl@1.8.3':
|
||||
'@biomejs/cli-linux-x64-musl@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-linux-x64@1.8.3':
|
||||
'@biomejs/cli-linux-x64@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-win32-arm64@1.8.3':
|
||||
'@biomejs/cli-win32-arm64@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@biomejs/cli-win32-x64@1.8.3':
|
||||
'@biomejs/cli-win32-x64@1.9.3':
|
||||
optional: true
|
||||
|
||||
'@bundled-es-modules/cookie@2.0.0':
|
||||
@@ -14817,7 +14817,7 @@ snapshots:
|
||||
unist-util-stringify-position: 4.0.0
|
||||
vfile-message: 4.0.2
|
||||
|
||||
vite-plugin-checker@0.7.2(@biomejs/biome@1.8.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10)):
|
||||
vite-plugin-checker@0.7.2(@biomejs/biome@1.9.3)(eslint@8.52.0)(optionator@0.9.3)(typescript@5.5.4)(vite@5.4.6(@types/node@20.16.10)):
|
||||
dependencies:
|
||||
'@babel/code-frame': 7.24.7
|
||||
ansi-escapes: 4.3.2
|
||||
@@ -14835,7 +14835,7 @@ snapshots:
|
||||
vscode-languageserver-textdocument: 1.0.12
|
||||
vscode-uri: 3.0.8
|
||||
optionalDependencies:
|
||||
'@biomejs/biome': 1.8.3
|
||||
'@biomejs/biome': 1.9.3
|
||||
eslint: 8.52.0
|
||||
optionator: 0.9.3
|
||||
typescript: 5.5.4
|
||||
|
||||
@@ -87,7 +87,7 @@ export const ResourceCard: FC<ResourceCardProps> = ({ resource, agentRow }) => {
|
||||
const mLength =
|
||||
resource.daily_cost > 0
|
||||
? (resource.metadata?.length ?? 0) + 1
|
||||
: resource.metadata?.length ?? 0;
|
||||
: (resource.metadata?.length ?? 0);
|
||||
|
||||
const gridWidth = mLength === 1 ? 1 : 4;
|
||||
|
||||
|
||||
@@ -95,7 +95,7 @@ const VariableField: FC<VariableInputProps> = ({
|
||||
placeholder={variable.sensitive ? "" : variable.default_value}
|
||||
required={variable.required}
|
||||
defaultValue={
|
||||
variable.sensitive ? "" : defaultValue ?? variable.default_value
|
||||
variable.sensitive ? "" : (defaultValue ?? variable.default_value)
|
||||
}
|
||||
onChange={(event) => {
|
||||
onChange(event.target.value);
|
||||
|
||||
@@ -106,34 +106,30 @@ export const VersionRow: FC<VersionRowProps> = ({
|
||||
</Pill>
|
||||
)}
|
||||
|
||||
{showActions && (
|
||||
<>
|
||||
{jobStatus === "failed" ? (
|
||||
<Button
|
||||
css={styles.promoteButton}
|
||||
disabled={isActive || version.archived}
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
onArchiveClick?.(version.id);
|
||||
}}
|
||||
>
|
||||
Archive…
|
||||
</Button>
|
||||
) : (
|
||||
<Button
|
||||
css={styles.promoteButton}
|
||||
disabled={isActive || jobStatus !== "succeeded"}
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
onPromoteClick?.(version.id);
|
||||
}}
|
||||
>
|
||||
Promote…
|
||||
</Button>
|
||||
)}
|
||||
</>
|
||||
{showActions && jobStatus === "failed" ? (
|
||||
<Button
|
||||
css={styles.promoteButton}
|
||||
disabled={isActive || version.archived}
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
onArchiveClick?.(version.id);
|
||||
}}
|
||||
>
|
||||
Archive…
|
||||
</Button>
|
||||
) : (
|
||||
<Button
|
||||
css={styles.promoteButton}
|
||||
disabled={isActive || jobStatus !== "succeeded"}
|
||||
onClick={(e) => {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
onPromoteClick?.(version.id);
|
||||
}}
|
||||
>
|
||||
Promote…
|
||||
</Button>
|
||||
)}
|
||||
</Stack>
|
||||
</Stack>
|
||||
|
||||
+1
-1
@@ -74,7 +74,7 @@ export const UserOrGroupAutocomplete: FC<UserOrGroupAutocompleteProps> = ({
|
||||
}}
|
||||
onClose={() => {
|
||||
setAutoComplete({
|
||||
value: isGroup(value) ? value.display_name : value?.email ?? "",
|
||||
value: isGroup(value) ? value.display_name : (value?.email ?? ""),
|
||||
open: false,
|
||||
});
|
||||
}}
|
||||
|
||||
+108
-112
@@ -467,122 +467,118 @@ export const TemplateScheduleForm: FC<TemplateScheduleForm> = ({
|
||||
</FormSection>
|
||||
|
||||
{allowAdvancedScheduling && (
|
||||
<>
|
||||
<FormSection
|
||||
title="Dormancy"
|
||||
description="When enabled, Coder will mark workspaces as dormant after a period of time with no connections. Dormant workspaces can be auto-deleted (see below) or manually reviewed by the workspace owner or admins."
|
||||
>
|
||||
<FormFields spacing={FORM_FIELDS_SPACING}>
|
||||
<Stack spacing={DORMANT_FIELDSET_SPACING}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Switch
|
||||
size="small"
|
||||
name="dormancyThreshold"
|
||||
checked={form.values.inactivity_cleanup_enabled}
|
||||
onChange={handleToggleInactivityCleanup}
|
||||
/>
|
||||
}
|
||||
label={<StackLabel>Enable Dormancy Threshold</StackLabel>}
|
||||
/>
|
||||
<FormSection
|
||||
title="Dormancy"
|
||||
description="When enabled, Coder will mark workspaces as dormant after a period of time with no connections. Dormant workspaces can be auto-deleted (see below) or manually reviewed by the workspace owner or admins."
|
||||
>
|
||||
<FormFields spacing={FORM_FIELDS_SPACING}>
|
||||
<Stack spacing={DORMANT_FIELDSET_SPACING}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Switch
|
||||
size="small"
|
||||
name="dormancyThreshold"
|
||||
checked={form.values.inactivity_cleanup_enabled}
|
||||
onChange={handleToggleInactivityCleanup}
|
||||
/>
|
||||
}
|
||||
label={<StackLabel>Enable Dormancy Threshold</StackLabel>}
|
||||
/>
|
||||
|
||||
<DurationField
|
||||
{...getFieldHelpers("time_til_dormant_ms", {
|
||||
helperText: (
|
||||
<DormancyTTLHelperText
|
||||
ttl={form.values.time_til_dormant_ms}
|
||||
/>
|
||||
),
|
||||
})}
|
||||
label="Time until dormant"
|
||||
valueMs={form.values.time_til_dormant_ms ?? 0}
|
||||
onChange={(v) => form.setFieldValue("time_til_dormant_ms", v)}
|
||||
disabled={
|
||||
isSubmitting || !form.values.inactivity_cleanup_enabled
|
||||
}
|
||||
/>
|
||||
</Stack>
|
||||
|
||||
<Stack spacing={DORMANT_FIELDSET_SPACING}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Switch
|
||||
size="small"
|
||||
name="dormancyAutoDeletion"
|
||||
checked={form.values.dormant_autodeletion_cleanup_enabled}
|
||||
onChange={handleToggleDormantAutoDeletion}
|
||||
<DurationField
|
||||
{...getFieldHelpers("time_til_dormant_ms", {
|
||||
helperText: (
|
||||
<DormancyTTLHelperText
|
||||
ttl={form.values.time_til_dormant_ms}
|
||||
/>
|
||||
}
|
||||
label={
|
||||
<StackLabel>
|
||||
Enable Dormancy Auto-Deletion
|
||||
<StackLabelHelperText>
|
||||
When enabled, Coder will permanently delete dormant
|
||||
workspaces after a period of time.{" "}
|
||||
<strong>
|
||||
Once a workspace is deleted it cannot be recovered.
|
||||
</strong>
|
||||
</StackLabelHelperText>
|
||||
</StackLabel>
|
||||
}
|
||||
/>
|
||||
<DurationField
|
||||
{...getFieldHelpers("time_til_dormant_autodelete_ms", {
|
||||
helperText: (
|
||||
<DormancyAutoDeletionTTLHelperText
|
||||
ttl={form.values.time_til_dormant_autodelete_ms}
|
||||
/>
|
||||
),
|
||||
})}
|
||||
label="Time until deletion"
|
||||
valueMs={form.values.time_til_dormant_autodelete_ms ?? 0}
|
||||
onChange={(v) =>
|
||||
form.setFieldValue("time_til_dormant_autodelete_ms", v)
|
||||
}
|
||||
disabled={
|
||||
isSubmitting ||
|
||||
!form.values.dormant_autodeletion_cleanup_enabled
|
||||
}
|
||||
/>
|
||||
</Stack>
|
||||
),
|
||||
})}
|
||||
label="Time until dormant"
|
||||
valueMs={form.values.time_til_dormant_ms ?? 0}
|
||||
onChange={(v) => form.setFieldValue("time_til_dormant_ms", v)}
|
||||
disabled={
|
||||
isSubmitting || !form.values.inactivity_cleanup_enabled
|
||||
}
|
||||
/>
|
||||
</Stack>
|
||||
|
||||
<Stack spacing={DORMANT_FIELDSET_SPACING}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Switch
|
||||
size="small"
|
||||
name="failureCleanupEnabled"
|
||||
checked={form.values.failure_cleanup_enabled}
|
||||
onChange={handleToggleFailureCleanup}
|
||||
<Stack spacing={DORMANT_FIELDSET_SPACING}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Switch
|
||||
size="small"
|
||||
name="dormancyAutoDeletion"
|
||||
checked={form.values.dormant_autodeletion_cleanup_enabled}
|
||||
onChange={handleToggleDormantAutoDeletion}
|
||||
/>
|
||||
}
|
||||
label={
|
||||
<StackLabel>
|
||||
Enable Dormancy Auto-Deletion
|
||||
<StackLabelHelperText>
|
||||
When enabled, Coder will permanently delete dormant
|
||||
workspaces after a period of time.{" "}
|
||||
<strong>
|
||||
Once a workspace is deleted it cannot be recovered.
|
||||
</strong>
|
||||
</StackLabelHelperText>
|
||||
</StackLabel>
|
||||
}
|
||||
/>
|
||||
<DurationField
|
||||
{...getFieldHelpers("time_til_dormant_autodelete_ms", {
|
||||
helperText: (
|
||||
<DormancyAutoDeletionTTLHelperText
|
||||
ttl={form.values.time_til_dormant_autodelete_ms}
|
||||
/>
|
||||
}
|
||||
label={
|
||||
<StackLabel>
|
||||
Enable Failure Cleanup
|
||||
<StackLabelHelperText>
|
||||
When enabled, Coder will attempt to stop workspaces that
|
||||
are in a failed state after a period of time.
|
||||
</StackLabelHelperText>
|
||||
</StackLabel>
|
||||
}
|
||||
/>
|
||||
<DurationField
|
||||
{...getFieldHelpers("failure_ttl_ms", {
|
||||
helperText: (
|
||||
<FailureTTLHelperText ttl={form.values.failure_ttl_ms} />
|
||||
),
|
||||
})}
|
||||
label="Time until cleanup"
|
||||
valueMs={form.values.failure_ttl_ms ?? 0}
|
||||
onChange={(v) => form.setFieldValue("failure_ttl_ms", v)}
|
||||
disabled={
|
||||
isSubmitting || !form.values.failure_cleanup_enabled
|
||||
}
|
||||
/>
|
||||
</Stack>
|
||||
</FormFields>
|
||||
</FormSection>
|
||||
</>
|
||||
),
|
||||
})}
|
||||
label="Time until deletion"
|
||||
valueMs={form.values.time_til_dormant_autodelete_ms ?? 0}
|
||||
onChange={(v) =>
|
||||
form.setFieldValue("time_til_dormant_autodelete_ms", v)
|
||||
}
|
||||
disabled={
|
||||
isSubmitting ||
|
||||
!form.values.dormant_autodeletion_cleanup_enabled
|
||||
}
|
||||
/>
|
||||
</Stack>
|
||||
|
||||
<Stack spacing={DORMANT_FIELDSET_SPACING}>
|
||||
<FormControlLabel
|
||||
control={
|
||||
<Switch
|
||||
size="small"
|
||||
name="failureCleanupEnabled"
|
||||
checked={form.values.failure_cleanup_enabled}
|
||||
onChange={handleToggleFailureCleanup}
|
||||
/>
|
||||
}
|
||||
label={
|
||||
<StackLabel>
|
||||
Enable Failure Cleanup
|
||||
<StackLabelHelperText>
|
||||
When enabled, Coder will attempt to stop workspaces that
|
||||
are in a failed state after a period of time.
|
||||
</StackLabelHelperText>
|
||||
</StackLabel>
|
||||
}
|
||||
/>
|
||||
<DurationField
|
||||
{...getFieldHelpers("failure_ttl_ms", {
|
||||
helperText: (
|
||||
<FailureTTLHelperText ttl={form.values.failure_ttl_ms} />
|
||||
),
|
||||
})}
|
||||
label="Time until cleanup"
|
||||
valueMs={form.values.failure_ttl_ms ?? 0}
|
||||
onChange={(v) => form.setFieldValue("failure_ttl_ms", v)}
|
||||
disabled={isSubmitting || !form.values.failure_cleanup_enabled}
|
||||
/>
|
||||
</Stack>
|
||||
</FormFields>
|
||||
</FormSection>
|
||||
)}
|
||||
{showScheduleDialog && (
|
||||
<ScheduleDialog
|
||||
|
||||
@@ -49,15 +49,13 @@ export const TemplatesFilter: FC<TemplatesFilterProps> = ({
|
||||
filter={filter}
|
||||
error={error}
|
||||
options={
|
||||
<>
|
||||
<SelectFilter
|
||||
placeholder="All organizations"
|
||||
label="Select an organization"
|
||||
options={organizationMenu.searchOptions}
|
||||
selectedOption={organizationMenu.selectedOption ?? undefined}
|
||||
onSelect={organizationMenu.selectOption}
|
||||
/>
|
||||
</>
|
||||
<SelectFilter
|
||||
placeholder="All organizations"
|
||||
label="Select an organization"
|
||||
options={organizationMenu.searchOptions}
|
||||
selectedOption={organizationMenu.selectedOption ?? undefined}
|
||||
onSelect={organizationMenu.selectOption}
|
||||
/>
|
||||
}
|
||||
optionsSkeleton={<MenuSkeleton />}
|
||||
/>
|
||||
|
||||
@@ -149,7 +149,7 @@ const ExternalAuthRow: FC<ExternalAuthRowProps> = ({
|
||||
|
||||
const authenticated = externalAuth
|
||||
? externalAuth.authenticated
|
||||
: link?.authenticated ?? false;
|
||||
: (link?.authenticated ?? false);
|
||||
|
||||
let avatar = app.display_icon ? (
|
||||
<Avatar src={app.display_icon} variant="square" fitImage size="sm" />
|
||||
|
||||
@@ -74,16 +74,14 @@ export const UsersPageView: FC<UsersPageViewProps> = ({
|
||||
<PageHeader
|
||||
css={{ paddingTop: 0 }}
|
||||
actions={
|
||||
<>
|
||||
{canCreateUser && (
|
||||
<Button
|
||||
onClick={() => navigate("create")}
|
||||
startIcon={<PersonAdd />}
|
||||
>
|
||||
Create user
|
||||
</Button>
|
||||
)}
|
||||
</>
|
||||
canCreateUser && (
|
||||
<Button
|
||||
onClick={() => navigate("create")}
|
||||
startIcon={<PersonAdd />}
|
||||
>
|
||||
Create user
|
||||
</Button>
|
||||
)
|
||||
}
|
||||
>
|
||||
<PageHeaderTitle>Users</PageHeaderTitle>
|
||||
|
||||
@@ -70,7 +70,6 @@ export const ResourcesSidebar: FC<ResourcesSidebarProps> = ({
|
||||
css={{ width: "100%", height: "100%", objectFit: "contain" }}
|
||||
src={getResourceIconPath(r.type)}
|
||||
alt=""
|
||||
role="presentation"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
|
||||
Reference in New Issue
Block a user