diff --git a/site/e2e/tests/listTemplates.spec.ts b/site/e2e/tests/listTemplates.spec.ts
index 429ee7ba07db1..4d3569bfb47f3 100644
--- a/site/e2e/tests/listTemplates.spec.ts
+++ b/site/e2e/tests/listTemplates.spec.ts
@@ -5,5 +5,5 @@ test.use({ storageState: getStatePath("authState") })
test("list templates", async ({ page, baseURL }) => {
await page.goto(`${baseURL}/templates`, { waitUntil: "networkidle" })
- await expect(page).toHaveTitle("Templates – Coder")
+ await expect(page).toHaveTitle("Templates - Coder")
})
diff --git a/site/src/AppRouter.tsx b/site/src/AppRouter.tsx
index 6bce538c20373..1910440f0ad08 100644
--- a/site/src/AppRouter.tsx
+++ b/site/src/AppRouter.tsx
@@ -6,7 +6,7 @@ import AuditPage from "pages/AuditPage/AuditPage"
import GroupsPage from "pages/GroupsPage/GroupsPage"
import LoginPage from "pages/LoginPage/LoginPage"
import { SetupPage } from "pages/SetupPage/SetupPage"
-import { TemplateSettingsPage } from "pages/TemplateSettingsPage/TemplateSettingsPage"
+import { TemplateSettingsPage } from "pages/TemplateSettingsPage/TemplateGeneralSettingsPage/TemplateSettingsPage"
import TemplatesPage from "pages/TemplatesPage/TemplatesPage"
import UsersPage from "pages/UsersPage/UsersPage"
import WorkspacesPage from "pages/WorkspacesPage/WorkspacesPage"
@@ -16,6 +16,7 @@ import { DashboardLayout } from "./components/Dashboard/DashboardLayout"
import { RequireAuth } from "./components/RequireAuth/RequireAuth"
import { SettingsLayout } from "./components/SettingsLayout/SettingsLayout"
import { DeploySettingsLayout } from "components/DeploySettingsLayout/DeploySettingsLayout"
+import { TemplateSettingsLayout } from "pages/TemplateSettingsPage/TemplateSettingsLayout"
// Lazy load pages
// - Pages that are secondary, not in the main navigation or not usually accessed
@@ -50,7 +51,7 @@ const TerminalPage = lazy(() => import("./pages/TerminalPage/TerminalPage"))
const TemplatePermissionsPage = lazy(
() =>
import(
- "./pages/TemplatePage/TemplatePermissionsPage/TemplatePermissionsPage"
+ "./pages/TemplateSettingsPage/TemplatePermissionsPage/TemplatePermissionsPage"
),
)
const TemplateSummaryPage = lazy(
@@ -120,7 +121,10 @@ const CreateTemplatePage = lazy(
() => import("./pages/CreateTemplatePage/CreateTemplatePage"),
)
const TemplateVariablesPage = lazy(
- () => import("./pages/TemplateVariablesPage/TemplateVariablesPage"),
+ () =>
+ import(
+ "./pages/TemplateSettingsPage/TemplateVariablesPage/TemplateVariablesPage"
+ ),
)
const WorkspaceSettingsPage = lazy(
() => import("./pages/WorkspaceSettingsPage/WorkspaceSettingsPage"),
@@ -129,7 +133,13 @@ const CreateTokenPage = lazy(
() => import("./pages/CreateTokenPage/CreateTokenPage"),
)
const TemplateFilesPage = lazy(
- () => import("./pages/TemplateFilesPage/TemplateFilesPage"),
+ () => import("./pages/TemplatePage/TemplateFilesPage/TemplateFilesPage"),
+)
+const TemplateSchedulePage = lazy(
+ () =>
+ import(
+ "./pages/TemplateSettingsPage/TemplateSchedulePage/TemplateSchedulePage"
+ ),
)
export const AppRouter: FC = () => {
@@ -160,16 +170,25 @@ export const AppRouter: FC = () => {
}>
} />
+
+ } />
+
+
+ } />
+
+ }>
+ } />
}
/>
- } />
+ }
+ />
+ } />
- } />
- } />
- } />
} />
diff --git a/site/src/components/GoBackButton/GoBackButton.tsx b/site/src/components/GoBackButton/GoBackButton.tsx
deleted file mode 100644
index 36818eb6458ae..0000000000000
--- a/site/src/components/GoBackButton/GoBackButton.tsx
+++ /dev/null
@@ -1,19 +0,0 @@
-import Button from "@material-ui/core/Button"
-
-interface GoBackButtonProps {
- onClick: () => void
-}
-
-export const Language = {
- ariaLabel: "Go back",
-}
-
-export const GoBackButton: React.FC<
- React.PropsWithChildren
-> = ({ onClick }) => {
- return (
-
- )
-}
diff --git a/site/src/components/IconField/LazyIconField.tsx b/site/src/components/IconField/LazyIconField.tsx
index a196ac6cf22b0..b9eafa3b42b4d 100644
--- a/site/src/components/IconField/LazyIconField.tsx
+++ b/site/src/components/IconField/LazyIconField.tsx
@@ -5,7 +5,7 @@ const IconField = lazy(() => import("./IconField"))
export const LazyIconField: FC = (props) => {
return (
-
+ }>
)
diff --git a/site/src/components/SettingsLayout/Sidebar.tsx b/site/src/components/SettingsLayout/Sidebar.tsx
index 99e9f471983ae..4113067ade30c 100644
--- a/site/src/components/SettingsLayout/Sidebar.tsx
+++ b/site/src/components/SettingsLayout/Sidebar.tsx
@@ -130,6 +130,7 @@ const useStyles = makeStyles((theme) => ({
fontWeight: 600,
overflow: "hidden",
textOverflow: "ellipsis",
+ whiteSpace: "nowrap",
},
email: {
color: theme.palette.text.secondary,
diff --git a/site/src/components/TemplateLayout/TemplateLayout.tsx b/site/src/components/TemplateLayout/TemplateLayout.tsx
index 547c927b9395a..ed1ce35093e1f 100644
--- a/site/src/components/TemplateLayout/TemplateLayout.tsx
+++ b/site/src/components/TemplateLayout/TemplateLayout.tsx
@@ -42,13 +42,6 @@ const fetchTemplate = async (orgId: string, templateName: string) => {
}
}
-const useTemplateData = (orgId: string, templateName: string) => {
- return useQuery({
- queryKey: ["template", templateName],
- queryFn: () => fetchTemplate(orgId, templateName),
- })
-}
-
type TemplateLayoutContextValue = Awaited>
const TemplateLayoutContext = createContext<
@@ -71,28 +64,31 @@ export const TemplateLayout: FC<{ children?: JSX.Element }> = ({
const navigate = useNavigate()
const styles = useStyles()
const orgId = useOrganizationId()
- const { template } = useParams() as { template: string }
- const templateData = useTemplateData(orgId, template)
+ const { template: templateName } = useParams() as { template: string }
+ const { data, error, isLoading } = useQuery({
+ queryKey: ["template", templateName],
+ queryFn: () => fetchTemplate(orgId, templateName),
+ })
const dashboard = useDashboard()
- if (templateData.error) {
+ if (error) {
return (
)
}
- if (templateData.isLoading || !templateData.data) {
+ if (isLoading || !data) {
return
}
return (
<>
{
navigate("/templates")
@@ -104,7 +100,7 @@ export const TemplateLayout: FC<{ children?: JSX.Element }> = ({
combineClasses([
styles.tabItem,
@@ -115,18 +111,7 @@ export const TemplateLayout: FC<{ children?: JSX.Element }> = ({
Summary
- combineClasses([
- styles.tabItem,
- isActive ? styles.tabItemActive : undefined,
- ])
- }
- >
- Permissions
-
-
combineClasses([
styles.tabItem,
@@ -141,7 +126,7 @@ export const TemplateLayout: FC<{ children?: JSX.Element }> = ({
-
+
}>{children}
diff --git a/site/src/components/TemplateLayout/TemplatePageHeader.tsx b/site/src/components/TemplateLayout/TemplatePageHeader.tsx
index 503c09e944d51..11fc83223a980 100644
--- a/site/src/components/TemplateLayout/TemplatePageHeader.tsx
+++ b/site/src/components/TemplateLayout/TemplatePageHeader.tsx
@@ -67,13 +67,6 @@ const TemplateMenu: FC<{
>
{Language.settingsButton}
-
{canEditFiles && (