diff --git a/pkg/web/templates/base.html b/pkg/web/templates/base.html index 51a8f9b6291c4e00b99f1d3496e98e0d00a7cb15..d5eb8cddd23e65d242ef1dd3ecaf4b70190dc648 100644 --- a/pkg/web/templates/base.html +++ b/pkg/web/templates/base.html @@ -5,8 +5,8 @@ - {{if .Repo}}{{if .Repo.ProjectName}}{{.Repo.ProjectName}}{{else}}{{.Repo.Name}}{{end}}{{else}}{{.ServerName}}{{end}} - {{if .Repo}}{{if .Repo.Description}}{{end}}{{end}} + {{.Title}} + {{if .Description}}{{end}} diff --git a/pkg/web/webui.go b/pkg/web/webui.go index c2e8ad45c8cf8b412a69af475f3dd3761e22e966..56c6595a12d3db9aaaa09e53ea85199348be50b2 100644 --- a/pkg/web/webui.go +++ b/pkg/web/webui.go @@ -39,8 +39,10 @@ const ( // BaseData contains common fields for all web UI pages. type BaseData struct { - ServerName string - ActiveTab string + ServerName string + ActiveTab string + Title string + Description string } // RepoBaseData contains common fields for repository-specific pages. @@ -103,8 +105,8 @@ var templateFuncs = template.FuncMap{ default: hashStr = fmt.Sprintf("%v", hash) } - if len(hashStr) > 8 { - return hashStr[:8] + if len(hashStr) > 7 { + return hashStr[:7] } return hashStr }, diff --git a/pkg/web/webui_about.go b/pkg/web/webui_about.go index cf7942df26106a21f9f591365dda3d5c992e5efe..e737627725fde85c91cc244291732ff43955fb08 100644 --- a/pkg/web/webui_about.go +++ b/pkg/web/webui_about.go @@ -37,6 +37,7 @@ func about(w http.ResponseWriter, r *http.Request) { BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "about", + Title: "About | " + cfg.Name, }, ReadmeHTML: readmeHTML, } diff --git a/pkg/web/webui_blob.go b/pkg/web/webui_blob.go index a3e2177fee8b8ce9d0b3e775254c98b2602fd8ac..843eff380c88c8c023d7c0a173ad0e38ad3a6317 100644 --- a/pkg/web/webui_blob.go +++ b/pkg/web/webui_blob.go @@ -99,11 +99,18 @@ func repoBlob(w http.ResponseWriter, r *http.Request) { renderedHTML = highlightCode(path, content) } + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + fileName := filepath.Base(path) + data := BlobData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "tree", + Title: fileName + " | " + repoDisplayName, }, Repo: repo, DefaultBranch: defaultBranch, diff --git a/pkg/web/webui_branches.go b/pkg/web/webui_branches.go index 73f8f58fecaac5090c36932eb23d6d76418bd653..1d632443fbc7275395ce4708be4822990c86b247 100644 --- a/pkg/web/webui_branches.go +++ b/pkg/web/webui_branches.go @@ -88,11 +88,17 @@ func repoBranches(w http.ResponseWriter, r *http.Request) { }) } + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + data := BranchesData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "branches", + Title: "Branches | " + repoDisplayName, }, Repo: repo, DefaultBranch: defaultBranch, diff --git a/pkg/web/webui_commit.go b/pkg/web/webui_commit.go index 869d759de13d730ca54aebae737e463aa035de5c..4a63672a8bea57df73eb5900efbfad63ae197ad2 100644 --- a/pkg/web/webui_commit.go +++ b/pkg/web/webui_commit.go @@ -2,6 +2,7 @@ package web import ( "net/http" + "strings" "github.com/charmbracelet/log/v2" "github.com/charmbracelet/soft-serve/git" @@ -57,11 +58,35 @@ func repoCommit(w http.ResponseWriter, r *http.Request) { } } + commitSubject := commit.Message + commitBody := "" + if lines := strings.Split(commit.Message, "\n"); len(lines) > 0 { + commitSubject = lines[0] + if len(lines) > 1 { + commitBody = strings.TrimSpace(strings.Join(lines[1:], "\n")) + if len(commitBody) > 200 { + commitBody = commitBody[:200] + "..." + } + } + } + + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + + shortHash := hash + if len(hash) > 7 { + shortHash = hash[:7] + } + data := CommitData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ - ServerName: cfg.Name, - ActiveTab: "commits", + ServerName: cfg.Name, + ActiveTab: "commits", + Title: commitSubject + " | Commit " + shortHash + " | " + repoDisplayName, + Description: commitBody, }, Repo: repo, DefaultBranch: defaultBranch, diff --git a/pkg/web/webui_commits.go b/pkg/web/webui_commits.go index 26f534ff6d847d2552778abb4271b9b707213a0d..46cf892fd07965a933981852e239e6f3caabffe9 100644 --- a/pkg/web/webui_commits.go +++ b/pkg/web/webui_commits.go @@ -82,11 +82,17 @@ func repoCommits(w http.ResponseWriter, r *http.Request) { defaultBranch := getDefaultBranch(gr) + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + data := CommitsData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "commits", + Title: "Commits in " + ref + " | " + repoDisplayName, }, Repo: repo, DefaultBranch: defaultBranch, diff --git a/pkg/web/webui_home.go b/pkg/web/webui_home.go index 956f1060efb342884bb41f6bcfcdbd6b1b765561..c8130acb0b02e5c11fdbd6be2b82b863b6b04951 100644 --- a/pkg/web/webui_home.go +++ b/pkg/web/webui_home.go @@ -154,6 +154,7 @@ func home(w http.ResponseWriter, r *http.Request) { BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "repositories", + Title: cfg.Name, }, PaginationData: PaginationData{ Page: page, diff --git a/pkg/web/webui_overview.go b/pkg/web/webui_overview.go index 0def6bc6db7abd72c8b3b7a5b9eaefc118101e3f..7b14bc97f29038e66a916da635a4ff2029129807 100644 --- a/pkg/web/webui_overview.go +++ b/pkg/web/webui_overview.go @@ -50,11 +50,18 @@ func repoOverview(w http.ResponseWriter, r *http.Request) { } } + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + data := OverviewData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ - ServerName: cfg.Name, - ActiveTab: "overview", + ServerName: cfg.Name, + ActiveTab: "overview", + Title: repoDisplayName, + Description: repo.Description(), }, Repo: repo, DefaultBranch: defaultBranch, diff --git a/pkg/web/webui_tags.go b/pkg/web/webui_tags.go index 4e92606369261b014f659dcce406cae92bb95361..032faa2929772517b15260762853c2c2808ea128 100644 --- a/pkg/web/webui_tags.go +++ b/pkg/web/webui_tags.go @@ -108,11 +108,17 @@ func repoTags(w http.ResponseWriter, r *http.Request) { }) } + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + data := TagsData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "tags", + Title: "Tags | " + repoDisplayName, }, Repo: repo, DefaultBranch: defaultBranch, diff --git a/pkg/web/webui_tree.go b/pkg/web/webui_tree.go index d9ecbe1488d5e3ffda9811b8825a8c89561db998..edccf39439c77a260492c5ccf621d9d444124df4 100644 --- a/pkg/web/webui_tree.go +++ b/pkg/web/webui_tree.go @@ -72,11 +72,17 @@ func repoTree(w http.ResponseWriter, r *http.Request) { defaultBranch := getDefaultBranch(gr) + repoDisplayName := repo.ProjectName() + if repoDisplayName == "" { + repoDisplayName = repo.Name() + } + data := TreeData{ RepoBaseData: RepoBaseData{ BaseData: BaseData{ ServerName: cfg.Name, ActiveTab: "tree", + Title: "Files | " + repoDisplayName, }, Repo: repo, DefaultBranch: defaultBranch,