Skip to content

feat(site): Add workspace settings page #6612

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Mar 16, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add translation
  • Loading branch information
BrunoQuaresma committed Mar 15, 2023
commit 5d31e8119bdb511f44aa6173f0bb55e43e2f1eff
2 changes: 2 additions & 0 deletions site/src/i18n/en/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import starterTemplatePage from "./starterTemplatePage.json"
import createTemplatePage from "./createTemplatePage.json"
import userSettingsPage from "./userSettingsPage.json"
import tokensPage from "./tokensPage.json"
import workspaceSettingsPage from "./workspaceSettingsPage.json"

export const en = {
common,
Expand All @@ -46,4 +47,5 @@ export const en = {
createTemplatePage,
userSettingsPage,
tokensPage,
workspaceSettingsPage,
}
9 changes: 9 additions & 0 deletions site/src/i18n/en/workspaceSettingsPage.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"title": "Workspace Settings",
"defaultErrorMessage": "Error on update workspace settings",
"nameLabel": "Name",
"generalInfo": "General info",
"generalInfoDescription": "The name of your new workspace.",
"parameters": "Parameters",
"parametersDescription": "Those values are provided by your template's Terraform configuration. Values can be changed after creating the workspace."
}
12 changes: 6 additions & 6 deletions site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ export const WorkspaceSettingsForm: FC<{
onCancel: () => void
onSubmit: (values: WorkspaceSettingsFormValue) => void
}> = ({ onCancel, onSubmit, settings, error, isSubmitting }) => {
const { t } = useTranslation("createWorkspacePage")
const { t } = useTranslation("workspaceSettingsPage")
const mutableParameters = settings.templateVersionParameters.filter(
(param) => param.mutable,
)
Expand All @@ -43,7 +43,7 @@ export const WorkspaceSettingsForm: FC<{
}),
},
validationSchema: Yup.object({
name: nameValidator(t("nameLabel", { ns: "createWorkspacePage" })),
name: nameValidator(t("nameLabel")),
rich_parameter_values: useValidationSchemaForRichParameters(
"createWorkspacePage",
settings.templateVersionParameters,
Expand All @@ -58,8 +58,8 @@ export const WorkspaceSettingsForm: FC<{
return (
<HorizontalForm onSubmit={form.handleSubmit}>
<FormSection
title="General info"
description="The template and name of your new workspace."
title={t("generalInfo")}
description={t("generalInfoDescription")}
>
<FormFields>
<TextField
Expand All @@ -75,8 +75,8 @@ export const WorkspaceSettingsForm: FC<{
</FormSection>
{mutableParameters.length > 0 && (
<FormSection
title="Parameters"
description="The template and name of your new workspace."
title={t("parameters")}
description={t("parametersDescription")}
>
<FormFields>
{settings.templateVersionParameters.map((parameter, index) => (
Expand Down
10 changes: 5 additions & 5 deletions site/src/pages/WorkspaceSettingsPage/WorkspaceSettingsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ import { FullPageHorizontalForm } from "components/FullPageForm/FullPageHorizont
import { displayError } from "components/GlobalSnackbar/utils"
import { Loader } from "components/Loader/Loader"
import { Helmet } from "react-helmet-async"
import { useTranslation } from "react-i18next"
import { useNavigate, useParams } from "react-router-dom"
import { pageTitle } from "util/page"
import { useUpdateWorkspaceSettings, useWorkspaceSettings } from "./data"
import { WorkspaceSettingsForm } from "./WorkspaceSettingsForm"

const WorkspaceSettingsPage = () => {
const { t } = useTranslation("workspaceSettingsPage")
const { username, workspace: workspaceName } = useParams() as {
username: string
workspace: string
Expand All @@ -25,20 +27,18 @@ const WorkspaceSettingsPage = () => {
navigate(`/@${username}/${name}`)
},
onError: (error) =>
displayError(
getErrorMessage(error, "Error on update workspace settings"),
),
displayError(getErrorMessage(error, t("defaultErrorMessage"))),
})

const onCancel = () => navigate(-1)

return (
<>
<Helmet>
<title>{pageTitle("Workspace Settings")}</title>
<title>{pageTitle(t("title"))}</title>
</Helmet>

<FullPageHorizontalForm title="Workspace settings" onCancel={onCancel}>
<FullPageHorizontalForm title={t("title")} onCancel={onCancel}>
<>
{error && <AlertBanner error={error} severity="error" />}
{isLoading && <Loader />}
Expand Down