diff --git a/coderd/apidoc/docs.go b/coderd/apidoc/docs.go index 17e71c421bad9..945b8e8baf0aa 100644 --- a/coderd/apidoc/docs.go +++ b/coderd/apidoc/docs.go @@ -7165,11 +7165,9 @@ const docTemplate = `{ "codersdk.Experiment": { "type": "string", "enum": [ - "template_editor", "moons" ], "x-enum-varnames": [ - "ExperimentTemplateEditor", "ExperimentMoons" ] }, diff --git a/coderd/apidoc/swagger.json b/coderd/apidoc/swagger.json index 4ff29ab4dba1b..f0c4381ee8860 100644 --- a/coderd/apidoc/swagger.json +++ b/coderd/apidoc/swagger.json @@ -6420,8 +6420,8 @@ }, "codersdk.Experiment": { "type": "string", - "enum": ["template_editor", "moons"], - "x-enum-varnames": ["ExperimentTemplateEditor", "ExperimentMoons"] + "enum": ["moons"], + "x-enum-varnames": ["ExperimentMoons"] }, "codersdk.Feature": { "type": "object", diff --git a/codersdk/deployment.go b/codersdk/deployment.go index dee95504e97eb..752d54e8f6075 100644 --- a/codersdk/deployment.go +++ b/codersdk/deployment.go @@ -1605,10 +1605,6 @@ func (c *Client) BuildInfo(ctx context.Context) (BuildInfoResponse, error) { type Experiment string const ( - // ExperimentTemplateEditor is an internal experiment that enables the template editor - // for all users. - ExperimentTemplateEditor Experiment = "template_editor" - // ExperimentMoons enabled the workspace proxy endpoints and CRUD. This // feature is not yet complete in functionality. ExperimentMoons Experiment = "moons" @@ -1621,7 +1617,7 @@ const ( // users to opt-in to via --experimental='*'. // Experiments that are not ready for consumption by all users should // not be included here and will be essentially hidden. -var ExperimentsAll = Experiments{ExperimentTemplateEditor} +var ExperimentsAll = Experiments{} // Experiments is a list of experiments that are enabled for the deployment. // Multiple experiments may be enabled at the same time. diff --git a/docs/api/general.md b/docs/api/general.md index ce1a796a81513..d004fee9923dd 100644 --- a/docs/api/general.md +++ b/docs/api/general.md @@ -507,7 +507,7 @@ curl -X GET http://coder-server:8080/api/v2/experiments \ > 200 Response ```json -["template_editor"] +["moons"] ``` ### Responses diff --git a/docs/api/schemas.md b/docs/api/schemas.md index 4bae18bff8657..165f17d01b95a 100644 --- a/docs/api/schemas.md +++ b/docs/api/schemas.md @@ -2447,17 +2447,16 @@ CreateParameterRequest is a structure used to create a new parameter value for a ## codersdk.Experiment ```json -"template_editor" +"moons" ``` ### Properties #### Enumerated Values -| Value | -| ----------------- | -| `template_editor` | -| `moons` | +| Value | +| ------- | +| `moons` | ## codersdk.Feature diff --git a/site/src/api/typesGenerated.ts b/site/src/api/typesGenerated.ts index e4a851b1249f6..dcbc8694043e5 100644 --- a/site/src/api/typesGenerated.ts +++ b/site/src/api/typesGenerated.ts @@ -1309,8 +1309,8 @@ export const Entitlements: Entitlement[] = [ ] // From codersdk/deployment.go -export type Experiment = "moons" | "template_editor" -export const Experiments: Experiment[] = ["moons", "template_editor"] +export type Experiment = "moons" +export const Experiments: Experiment[] = ["moons"] // From codersdk/deployment.go export type FeatureName = diff --git a/site/src/components/TemplateLayout/TemplateLayout.tsx b/site/src/components/TemplateLayout/TemplateLayout.tsx index 115b341e71617..5fe6e3bfa4959 100644 --- a/site/src/components/TemplateLayout/TemplateLayout.tsx +++ b/site/src/components/TemplateLayout/TemplateLayout.tsx @@ -14,7 +14,6 @@ import { getTemplateVersion, } from "api/api" import { useQuery } from "@tanstack/react-query" -import { useDashboard } from "components/Dashboard/DashboardProvider" import { AuthorizationRequest } from "api/typesGenerated" const templatePermissions = ( @@ -72,7 +71,6 @@ export const TemplateLayout: FC<{ children?: JSX.Element }> = ({ queryKey: ["template", templateName], queryFn: () => fetchTemplate(orgId, templateName), }) - const dashboard = useDashboard() if (error) { return ( @@ -92,7 +90,6 @@ export const TemplateLayout: FC<{ children?: JSX.Element }> = ({ template={data.template} activeVersion={data.activeVersion} permissions={data.permissions} - canEditFiles={dashboard.experiments.includes("template_editor")} onDeleteTemplate={() => { navigate("/templates") }} diff --git a/site/src/components/TemplateLayout/TemplatePageHeader.tsx b/site/src/components/TemplateLayout/TemplatePageHeader.tsx index 1776377339a95..ef978ca99e511 100644 --- a/site/src/components/TemplateLayout/TemplatePageHeader.tsx +++ b/site/src/components/TemplateLayout/TemplatePageHeader.tsx @@ -29,9 +29,8 @@ import FileCopyOutlined from "@material-ui/icons/FileCopyOutlined" const TemplateMenu: FC<{ templateName: string templateVersion: string - canEditFiles: boolean onDelete: () => void -}> = ({ templateName, templateVersion, canEditFiles, onDelete }) => { +}> = ({ templateName, templateVersion, onDelete }) => { const menuTriggerRef = useRef(null) const [isMenuOpen, setIsMenuOpen] = useState(false) const navigate = useNavigate() @@ -69,28 +68,24 @@ const TemplateMenu: FC<{ Settings - {canEditFiles && ( - - navigate(`/templates/new?fromTemplate=${templateName}`), - )} - > - - Duplicate - - )} - {canEditFiles && ( - - navigate( - `/templates/${templateName}/versions/${templateVersion}/edit`, - ), - )} - > - - Edit files - - )} + + navigate(`/templates/new?fromTemplate=${templateName}`), + )} + > + + Duplicate + + + navigate( + `/templates/${templateName}/versions/${templateVersion}/edit`, + ), + )} + > + + Edit files + Delete @@ -117,7 +112,6 @@ export type TemplatePageHeaderProps = { template: Template activeVersion: TemplateVersion permissions: AuthorizationResponse - canEditFiles: boolean onDeleteTemplate: () => void } @@ -125,7 +119,6 @@ export const TemplatePageHeader: FC = ({ template, activeVersion, permissions, - canEditFiles, onDeleteTemplate, }) => { const hasIcon = template.icon && template.icon !== "" @@ -142,7 +135,6 @@ export const TemplatePageHeader: FC = ({ templateVersion={activeVersion.name} templateName={template.name} onDelete={deleteTemplate.openDeleteConfirmation} - canEditFiles={canEditFiles} /> diff --git a/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx b/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx index d5b820e6e3cdd..d3c7780c305e3 100644 --- a/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx +++ b/site/src/pages/TemplatePage/TemplateVersionsPage/TemplateVersionsPage.tsx @@ -8,10 +8,8 @@ import { VersionsTable } from "components/VersionsTable/VersionsTable" import { useState } from "react" import { Helmet } from "react-helmet-async" import { getTemplatePageTitle } from "../utils" -import { useDashboard } from "components/Dashboard/DashboardProvider" const TemplateVersionsPage = () => { - const dashboard = useDashboard() const { template, permissions } = useTemplateLayoutContext() const { data } = useQuery({ queryKey: ["template", "versions", template.id], @@ -39,9 +37,6 @@ const TemplateVersionsPage = () => { const [selectedVersionIdToPromote, setSelectedVersionIdToPromote] = useState< string | undefined >() - const canPromoteVersion = - dashboard.experiments.includes("template_editor") && - permissions.canUpdateTemplate return ( <> @@ -51,7 +46,9 @@ const TemplateVersionsPage = () => { diff --git a/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx b/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx index 22b4eecee5a8d..3664ae88bdcc3 100644 --- a/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx +++ b/site/src/pages/TemplateVersionPage/TemplateVersionPage.tsx @@ -1,5 +1,4 @@ import { useMachine } from "@xstate/react" -import { useDashboard } from "components/Dashboard/DashboardProvider" import { useOrganizationId } from "hooks/useOrganizationId" import { useTab } from "hooks/useTab" import { FC } from "react" @@ -23,7 +22,6 @@ export const TemplateVersionPage: FC = () => { }) const tab = useTab("file", "0") const { t } = useTranslation("templateVersionPage") - const dashboard = useDashboard() return ( <> @@ -38,7 +36,6 @@ export const TemplateVersionPage: FC = () => { versionName={versionName} templateName={templateName} tab={tab} - canEdit={dashboard.experiments.includes("template_editor")} /> ) diff --git a/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx b/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx index f7b38e3dfc1d8..5676599a7acd6 100644 --- a/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx +++ b/site/src/pages/TemplateVersionPage/TemplateVersionPageView.tsx @@ -25,7 +25,6 @@ export interface TemplateVersionPageViewProps { */ versionName: string templateName: string - canEdit: boolean tab: UseTabResult context: TemplateVersionMachineContext } @@ -35,7 +34,6 @@ export const TemplateVersionPageView: FC = ({ tab, versionName, templateName, - canEdit, }) => { const { currentFiles, error, currentVersion, previousFiles } = context const { t } = useTranslation("templateVersionPage") @@ -44,17 +42,15 @@ export const TemplateVersionPageView: FC = ({ - - - ) : undefined + + + } > {t("header.caption")} diff --git a/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx b/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx index f92d69d2f5334..1a910a8a0c6ff 100644 --- a/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx +++ b/site/src/pages/WorkspacePage/WorkspaceReadyPage.tsx @@ -76,7 +76,6 @@ export const WorkspaceReadyPage = ({ queryFn: () => getTemplateVersions(workspace.template_id), enabled: changeVersionDialogOpen, }) - const dashboard = useDashboard() // keep banner machine in sync with workspace useEffect(() => { @@ -137,9 +136,7 @@ export const WorkspaceReadyPage = ({ builds={builds} canUpdateWorkspace={canUpdateWorkspace} canUpdateTemplate={canUpdateTemplate} - canChangeVersions={ - canUpdateTemplate && dashboard.experiments.includes("template_editor") - } + canChangeVersions={canUpdateTemplate} hideSSHButton={featureVisibility["browser_only"]} hideVSCodeDesktopButton={featureVisibility["browser_only"]} workspaceErrors={{