From b3d5eb01dc60a315e075f451121dc93452e80158 Mon Sep 17 00:00:00 2001 From: kolaente Date: Tue, 24 Mar 2026 20:26:33 +0100 Subject: [PATCH] =?UTF-8?q?fix(templates):=20address=20review=20feedback?= =?UTF-8?q?=20=E2=80=94=20templates=20page,=20proper=20service,=20fetch=20?= =?UTF-8?q?together=20with=20archived?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/home/Navigation.vue | 25 ++++------ .../project/ProjectSettingsDropdown.vue | 7 ++- frontend/src/i18n/lang/en.json | 5 +- frontend/src/router/index.ts | 5 ++ .../src/services/projectTemplateService.ts | 9 ++++ frontend/src/stores/projects.ts | 10 +--- frontend/src/views/project/ListTemplates.vue | 48 +++++++++++++++++++ pkg/models/project.go | 4 +- 8 files changed, 81 insertions(+), 32 deletions(-) create mode 100644 frontend/src/services/projectTemplateService.ts create mode 100644 frontend/src/views/project/ListTemplates.vue diff --git a/frontend/src/components/home/Navigation.vue b/frontend/src/components/home/Navigation.vue index 649e25007..fa7bb818f 100644 --- a/frontend/src/components/home/Navigation.vue +++ b/frontend/src/components/home/Navigation.vue @@ -49,6 +49,16 @@ {{ $t('project.projects') }} +
  • + + + + + {{ $t('project.template.title') }} + +
  • - - projectStore.notArchivedRootProjects as IProject[]) const favoriteProjects = computed(() => projectStore.favoriteProjects as IProject[]) const savedFilterProjects = computed(() => projectStore.savedFilterProjects as IProject[]) -const templateProjects = computed(() => projectStore.templateProjects as IProject[]) diff --git a/pkg/models/project.go b/pkg/models/project.go index a8e3f9a34..463381142 100644 --- a/pkg/models/project.go +++ b/pkg/models/project.go @@ -593,7 +593,7 @@ func getUserProjectsStatement(userID int64, search string) *builder.Builder { } return builder. - Select("l.id, l.title, l.description, l.identifier, l.hex_color, l.owner_id, l.parent_project_id, l.is_archived, l.background_file_id, l.background_blur_hash, l.position, l.created, l.updated"). + Select("l.id, l.title, l.description, l.identifier, l.hex_color, l.owner_id, l.parent_project_id, l.is_archived, l.is_template, l.background_file_id, l.background_blur_hash, l.position, l.created, l.updated"). From("projects", "l"). Join("LEFT", "team_projects tl", "tl.project_id = l.id"). Join("LEFT", "team_members tm2", "tm2.team_id = tl.team_id"). @@ -658,7 +658,7 @@ func getAllProjectsForUser(s *xorm.Session, userID int64, opts *projectOptions) baseQuery := querySQLString + ` UNION ALL -SELECT p.id, p.title, p.description, p.identifier, p.hex_color, p.owner_id, p.parent_project_id, (ap.is_archived OR p.is_archived) AS is_archived, p.background_file_id, p.background_blur_hash, p.position, p.created, p.updated FROM projects p +SELECT p.id, p.title, p.description, p.identifier, p.hex_color, p.owner_id, p.parent_project_id, (ap.is_archived OR p.is_archived) AS is_archived, p.is_template, p.background_file_id, p.background_blur_hash, p.position, p.created, p.updated FROM projects p INNER JOIN all_projects ap ON p.parent_project_id = ap.id` columnStr := strings.Join([]string{