Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/vole.git

Write over SSH with a registered key:

git clone ssh://git@rodent.software:2222/vole.git

A free and open-source forge that lives in your Git repo.

Merge the landing facts into the Review section

ad4d93489a023ec688702a889c53adf4c990dcfa · Keenan Nemetz · 11d ago · parent 59c0625b

Merge the landing facts into the Review section

The merge check and closes links describe the same base/head target the Review controls do, so they now live under Review instead of a separate What would land heading. Changes moves between Review and Approvals, and HTMX write fragments compute the landing facts so they render the complete sidebar.

server/web/writes.go +4−4

@@ -193,7 +193,7 @@ func (w *Web) ApproveRequest(rw http.ResponseWriter, r *http.Request) {
193 193 return
194 194 }
195 195 sidebar := func(msg string) (string, any) {
196 return "request_sidebar", w.requestSidebar(r, m, req, "", msg)
196 return "request_sidebar", w.requestSidebarWithLanding(r, m, req, "", msg)
197 197 }
198 198 // The form carries the base and head the page displayed. If a push moved the
199 199 // followed branch, or the request was retargeted, the writer refuses rather than
@@ -216,10 +216,10 @@ func (w *Web) ApproveRequest(rw http.ResponseWriter, r *http.Request) {
216 216 if htmxRequest(r) {
217 217 updated, err := metadata.GetRequest(m.Git(), id)
218 218 if err != nil {
219 w.render(rw, "request_sidebar", w.requestSidebar(r, m, req, "", err.Error()), 0)
219 w.render(rw, "request_sidebar", w.requestSidebarWithLanding(r, m, req, "", err.Error()), 0)
220 220 return
221 221 }
222 w.render(rw, "request_sidebar", w.requestSidebar(r, m, updated, "", ""), 0)
222 w.render(rw, "request_sidebar", w.requestSidebarWithLanding(r, m, updated, "", ""), 0)
223 223 return
224 224 }
225 225 http.Redirect(rw, r, "/r/"+m.Name+"/requests/"+id, http.StatusSeeOther)
@@ -503,7 +503,7 @@ func (w *Web) MergeRequest(rw http.ResponseWriter, r *http.Request) {
503 503 // page* rather than as bare text, so the reader keeps the conflict block and
504 504 // the diff that explain it.
505 505 if htmxRequest(r) {
506 w.render(rw, "request_sidebar", w.requestSidebar(r, m, req, "", err.Error()), 0)
506 w.render(rw, "request_sidebar", w.requestSidebarWithLanding(r, m, req, "", err.Error()), 0)
507 507 return
508 508 }
509 509 w.renderRequestPage(rw, r, err.Error(), http.StatusConflict)