From d4043416ba3ad24340d6f6e861e4fe3e8476edef Mon Sep 17 00:00:00 2001 From: Kanav Date: Tue, 7 Oct 2025 08:37:56 +0530 Subject: [PATCH] Add filtering functionality for team repositories --- models/repo/org_repo.go | 11 +++++++++++ routers/web/org/teams.go | 9 +++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/models/repo/org_repo.go b/models/repo/org_repo.go index 96f21ba2aca7a..6ee5a24938a7f 100644 --- a/models/repo/org_repo.go +++ b/models/repo/org_repo.go @@ -178,3 +178,14 @@ func (env *accessibleReposEnv) AddKeyword(keyword string) { func (env *accessibleReposEnv) SetSort(orderBy db.SearchOrderBy) { env.orderBy = orderBy } + +// Add a new function to filter repositories by a search term +func GetFilteredTeamRepositories(teamID int64, searchTerm string) ([]*Repository, error) { + // Query to fetch repositories with filtering + repos := make([]*Repository, 0, 10) + sess := x.Where("team_id = ?", teamID) + if searchTerm != "" { + sess = sess.And("name LIKE ?", "%"+searchTerm+"%") + } + return repos, sess.Find(&repos) +} diff --git a/routers/web/org/teams.go b/routers/web/org/teams.go index 0ec7cfddc5f55..d396d5db874a9 100644 --- a/routers/web/org/teams.go +++ b/routers/web/org/teams.go @@ -416,15 +416,16 @@ func TeamRepositories(ctx *context.Context) { ctx.Data["PageIsOrgTeams"] = true ctx.Data["PageIsOrgTeamRepos"] = true - repos, err := repo_model.GetTeamRepositories(ctx, &repo_model.SearchTeamRepoOptions{ - TeamID: ctx.Org.Team.ID, - }) + searchTerm := ctx.FormTrim("q") // Get the search term from the query parameter + repos, err := repo_model.GetFilteredTeamRepositories(ctx.Org.Team.ID, searchTerm) if err != nil { - ctx.ServerError("GetTeamRepositories", err) + ctx.ServerError("GetFilteredTeamRepositories", err) return } + ctx.Data["Units"] = unit_model.Units ctx.Data["TeamRepos"] = repos + ctx.Data["SearchTerm"] = searchTerm // Pass the search term back to the template ctx.HTML(http.StatusOK, tplTeamRepositories) }