diff --git a/internal/handlers/handlers.go b/internal/handlers/handlers.go index f20d8df..78d6161 100644 --- a/internal/handlers/handlers.go +++ b/internal/handlers/handlers.go @@ -334,23 +334,29 @@ func (h *Handler) ListPulls(w http.ResponseWriter, r *http.Request) { orgNames := h.getUserOrgs(r) type pullsData struct { - Pulls []giteaclient.PullRequest - Orgs []string - SelectedOrg string - HasMore bool - NextPage int - Error string + Pulls []giteaclient.PullRequest + Orgs []string + SelectedOrg string + SelectedState string + HasMore bool + NextPage int + Error string } selectedOrg := r.URL.Query().Get("org") + selectedState := r.URL.Query().Get("state") + if selectedState == "" { + selectedState = "open" + } page, _ := strconv.Atoi(r.URL.Query().Get("page")) if page < 1 { page = 1 } data := pullsData{ - Orgs: orgNames, - SelectedOrg: selectedOrg, + Orgs: orgNames, + SelectedOrg: selectedOrg, + SelectedState: selectedState, } if len(orgNames) == 0 { @@ -361,7 +367,7 @@ func (h *Handler) ListPulls(w http.ResponseWriter, r *http.Request) { queryOrgs = []string{selectedOrg} } - result, err := h.Client.ListAllPullRequests(r.Context(), token, queryOrgs, "open", page) + result, err := h.Client.ListAllPullRequests(r.Context(), token, queryOrgs, selectedState, page) if err != nil { slog.Error("failed to list pull requests", "error", err) data.Error = "Error loading pull requests." diff --git a/internal/templates/pulls.html b/internal/templates/pulls.html index fc4700b..4bfd7d9 100644 --- a/internal/templates/pulls.html +++ b/internal/templates/pulls.html @@ -17,7 +17,7 @@ {{end}} {{if .HasMore}} -
+
{{end}} @@ -27,18 +27,22 @@

Pull Requests

- {{range .Orgs}} {{end}} +
{{if .Error}}

{{.Error}}

{{else if not .Pulls}} -

No open pull requests found.

+

No {{.SelectedState}} pull requests found.

{{else}}
{{template "cards" .}}