vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Rename Change requests to Changes in the web UI
b06184d1105ff5ea27a5b8dd0a827f0bf870ce7a · Keenan Nemetz · 11d ago · parent 55615c7a
Rename Change requests to Changes in the web UI Use one word for a proposed branch update: the repository tab, page heading, list, empty states, overview, home page, activity feed, and error messages now say Changes. Add the missing subtitle to the changes list page.
server/web/requests.go +5−5
| @@ -97,7 +97,7 @@ func (w *Web) Requests(rw http.ResponseWriter, r *http.Request) { | |||
| 97 | 97 | } | |
| 98 | 98 | list, err := metadata.LoadRequests(m.Git(), metadata.Ref) | |
| 99 | 99 | if err != nil { | |
| 100 | w.serverError(rw, r, "cannot read change requests: "+err.Error()) | ||
| 100 | w.serverError(rw, r, "cannot read changes: "+err.Error()) | ||
| 101 | 101 | return | |
| 102 | 102 | } | |
| 103 | 103 | state := strings.TrimSpace(r.URL.Query().Get("state")) | |
| @@ -141,7 +141,7 @@ func (w *Web) Requests(rw http.ResponseWriter, r *http.Request) { | |||
| 141 | 141 | page, _ := strconv.Atoi(r.URL.Query().Get("page")) | |
| 142 | 142 | pg := newPager(len(rows), listPageSize, page, func(n int) string { | |
| 143 | 143 | return requestListURL(m.Name, state, query, n) | |
| 144 | }).forSwap("Change request pages", "#change-list") | ||
| 144 | }).forSwap("Change pages", "#change-list") | ||
| 145 | 145 | from, to := pg.rows() | |
| 146 | 146 | rows = rows[from:to] | |
| 147 | 147 | form := w.requestForm(r, m) | |
| @@ -169,7 +169,7 @@ func (w *Web) Requests(rw http.ResponseWriter, r *http.Request) { | |||
| 169 | 169 | HeadBranches []string | |
| 170 | 170 | Pager pager | |
| 171 | 171 | }{ | |
| 172 | Page: w.page(r, m.Name+" · change requests"), Name: m.Name, Rows: rows, State: state, | ||
| 172 | Page: w.page(r, m.Name+" · changes"), Name: m.Name, Rows: rows, State: state, | ||
| 173 | 173 | Numbers: nums, | |
| 174 | 174 | Query: query, Open: open, Merged: merged, Total: len(list), Closed: len(list) - open - merged, | |
| 175 | 175 | Required: required, Filtered: query != "" || (state != "open" && len(list) > 0), | |
| @@ -212,7 +212,7 @@ func (w *Web) NewChangePage(rw http.ResponseWriter, r *http.Request) { | |||
| 212 | 212 | } | |
| 213 | 213 | acl, err := m.ACL() | |
| 214 | 214 | if err != nil || !acl.CanOpenRequest(pr.account.Name) { | |
| 215 | http.Error(rw, "you do not have permission to open change requests here", http.StatusForbidden) | ||
| 215 | http.Error(rw, "you do not have permission to open changes here", http.StatusForbidden) | ||
| 216 | 216 | return | |
| 217 | 217 | } | |
| 218 | 218 | form := w.requestForm(r, m) | |
| @@ -223,7 +223,7 @@ func (w *Web) NewChangePage(rw http.ResponseWriter, r *http.Request) { | |||
| 223 | 223 | BaseBranches []string | |
| 224 | 224 | HeadBranches []string | |
| 225 | 225 | }{ | |
| 226 | Page: w.page(r, m.Name+" · new change request"), Name: m.Name, | ||
| 226 | Page: w.page(r, m.Name+" · new change"), Name: m.Name, | ||
| 227 | 227 | Base: form.Base, BaseBranches: form.BaseBranches, HeadBranches: form.HeadBranches, | |
| 228 | 228 | }, 0) | |
| 229 | 229 | } | |