Skip to content

Commit cc609cb

Browse files
fix(site): display tasks link when no templates contain an AI task (#19184)
Fixes #19059 This change ensures we always show the "Tasks" link, even when a deployment doesn't yet have a tasks template set up.
1 parent 760dc8b commit cc609cb

File tree

9 files changed

+7
-65
lines changed

9 files changed

+7
-65
lines changed

coderd/database/dbauthz/dbauthz.go

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3617,11 +3617,6 @@ func (q *querier) GetWorkspacesEligibleForTransition(ctx context.Context, now ti
36173617
return q.db.GetWorkspacesEligibleForTransition(ctx, now)
36183618
}
36193619

3620-
func (q *querier) HasTemplateVersionsWithAITask(ctx context.Context) (bool, error) {
3621-
// Anyone can call HasTemplateVersionsWithAITask.
3622-
return q.db.HasTemplateVersionsWithAITask(ctx)
3623-
}
3624-
36253620
func (q *querier) InsertAPIKey(ctx context.Context, arg database.InsertAPIKeyParams) (database.APIKey, error) {
36263621
return insert(q.log, q.auth,
36273622
rbac.ResourceApiKey.WithOwner(arg.UserID.String()),

coderd/database/dbauthz/dbauthz_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4826,9 +4826,6 @@ func (s *MethodTestSuite) TestSystemFunctions() {
48264826
})
48274827
check.Args(j.ID).Asserts(v.RBACObject(tpl), policy.ActionRead).Returns(j)
48284828
}))
4829-
s.Run("HasTemplateVersionsWithAITask", s.Subtest(func(db database.Store, check *expects) {
4830-
check.Args().Asserts()
4831-
}))
48324829
}
48334830

48344831
func (s *MethodTestSuite) TestNotifications() {

coderd/database/dbmetrics/querymetrics.go

Lines changed: 0 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dbmock/dbmock.go

Lines changed: 0 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/querier.go

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries.sql.go

Lines changed: 0 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/queries/templateversions.sql

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,3 @@ FROM
234234
WHERE
235235
template_versions.id IN (archived_versions.id)
236236
RETURNING template_versions.id;
237-
238-
-- name: HasTemplateVersionsWithAITask :one
239-
-- Determines if the template versions table has any rows with has_ai_task = TRUE.
240-
SELECT EXISTS (SELECT 1 FROM template_versions WHERE has_ai_task = TRUE);

site/site.go

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -448,7 +448,6 @@ func (h *Handler) renderHTMLWithState(r *http.Request, filePath string, state ht
448448
var user database.User
449449
var themePreference string
450450
var terminalFont string
451-
var tasksTabVisible bool
452451
orgIDs := []uuid.UUID{}
453452
eg.Go(func() error {
454453
var err error
@@ -484,20 +483,6 @@ func (h *Handler) renderHTMLWithState(r *http.Request, filePath string, state ht
484483
orgIDs = memberIDs[0].OrganizationIDs
485484
return err
486485
})
487-
eg.Go(func() error {
488-
// If HideAITasks is true, force hide the tasks tab
489-
if h.opts.HideAITasks {
490-
tasksTabVisible = false
491-
return nil
492-
}
493-
494-
hasAITask, err := h.opts.Database.HasTemplateVersionsWithAITask(ctx)
495-
if err != nil {
496-
return err
497-
}
498-
tasksTabVisible = hasAITask
499-
return nil
500-
})
501486
err := eg.Wait()
502487
if err == nil {
503488
var wg sync.WaitGroup
@@ -571,7 +556,7 @@ func (h *Handler) renderHTMLWithState(r *http.Request, filePath string, state ht
571556
wg.Add(1)
572557
go func() {
573558
defer wg.Done()
574-
tasksTabVisible, err := json.Marshal(tasksTabVisible)
559+
tasksTabVisible, err := json.Marshal(!h.opts.HideAITasks)
575560
if err == nil {
576561
state.TasksTabVisible = html.EscapeString(string(tasksTabVisible))
577562
}

site/src/pages/TasksPage/TasksPage.tsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import { AvatarData } from "components/Avatar/AvatarData";
1313
import { AvatarDataSkeleton } from "components/Avatar/AvatarDataSkeleton";
1414
import { Button } from "components/Button/Button";
1515
import { displayError } from "components/GlobalSnackbar/utils";
16+
import { Link } from "components/Link/Link";
1617
import { Margins } from "components/Margins/Margins";
1718
import {
1819
PageHeader,
@@ -60,6 +61,7 @@ import { Helmet } from "react-helmet-async";
6061
import { useMutation, useQuery, useQueryClient } from "react-query";
6162
import { Link as RouterLink, useNavigate } from "react-router-dom";
6263
import TextareaAutosize from "react-textarea-autosize";
64+
import { docs } from "utils/docs";
6365
import { pageTitle } from "utils/page";
6466
import { relativeTime } from "utils/time";
6567
import { type UserOption, UsersCombobox } from "./UsersCombobox";
@@ -139,7 +141,10 @@ const NoTemplatesPlaceholder: FC = () => {
139141
No Task templates found
140142
</h3>
141143
<span className="text-content-secondary text-sm">
142-
Create a Task template to get started
144+
<Link href={docs("/ai-coder/tasks")} target="_blank" rel="noreferrer">
145+
Learn about Tasks
146+
</Link>{" "}
147+
to get started.
143148
</span>
144149
</div>
145150
</div>

0 commit comments

Comments
 (0)