no more last n lines

main
bel 2024-07-20 09:53:41 -06:00
parent ee6ce95c0a
commit 2141e030ef
2 changed files with 37 additions and 64 deletions

View File

@ -38,7 +38,6 @@
console.log("loading", d) console.log("loading", d)
loadBalances(d.balances) loadBalances(d.balances)
loadDeltas(d.deltas) loadDeltas(d.deltas)
loadLastNLines(d.lastNLines)
}) })
} }
function loadBalances(balances) { function loadBalances(balances) {
@ -71,26 +70,6 @@
result += `</table>` result += `</table>`
document.getElementById("reg").innerHTML = result document.getElementById("reg").innerHTML = result
} }
function setLastNLines(form) {
http("PUT", "/api/lastnlines" /*?f="+f*/, (body, status) => {
if (status == 205) {
init()
}
document.getElementById("lastNLinesStatus").innerHTML = `(${status}) ${body}`
}, JSON.stringify(form.elements["lastNLines"].value.split("\n")))
}
function loadLastNLines(lastNLines) {
var result = `<form onsubmit="setLastNLines(this); return false;" action="#">`
//result += ` <div>${f}</div>`
result += ` <textarea id="lastNLinesTextarea" name="lastNLines" style="height: 30em;">`
for (var k in lastNLines) {
result += lastNLines[k] + "\n"
}
result += ` </textarea>`
result += ` <input type="submit">`
result += `</form>`
document.getElementById("lastNLines").innerHTML = result
}
function stage(who, contributesToHouse) { function stage(who, contributesToHouse) {
var d = new Date() var d = new Date()
const zeroPad = (num, places) => String(num).padStart(places, '0') const zeroPad = (num, places) => String(num).padStart(places, '0')
@ -108,9 +87,6 @@
} }
console.log(`@${today} ${benefactor} gave to ${beneficiary}`) console.log(`@${today} ${benefactor} gave to ${beneficiary}`)
document.getElementById("lastNLinesTextarea").value += `\n${today} TODO moolah2`
document.getElementById("lastNLinesTextarea").value += `\n ${beneficiary} ${beneficiary_value}`
document.getElementById("lastNLinesTextarea").value += `\n ${benefactor} ${benefactor_value}`
} }
</script> </script>
</header> </header>
@ -137,10 +113,6 @@
<input type="button" onclick="stage('AssetAccount:Bel', false)" value="Stage Bel's Charge"/> <input type="button" onclick="stage('AssetAccount:Bel', false)" value="Stage Bel's Charge"/>
</div> </div>
</div> </div>
<div id="lastNLinesStatus">
</div>
<div id="lastNLines">
</div>
</details> </details>
<details> <details>
<summary>Register</summary> <summary>Register</summary>

View File

@ -70,44 +70,17 @@ func (router Router) FS(w http.ResponseWriter, r *http.Request) {
func (router Router) API(w http.ResponseWriter, r *http.Request) { func (router Router) API(w http.ResponseWriter, r *http.Request) {
switch r.URL.Path { switch r.URL.Path {
case "/api/transactions": case "/api/transactions":
bpis, err := router.bpis() router.APITransactions(w, r)
if err != nil { case "/api/amend":
panic(err) router.APILastNLines(w, r)
} case "/api/reg":
router.APIReg(w, r)
lastNLines, err := router.files.TempGetLastNLines(20) default:
if err != nil { http.NotFound(w, r)
panic(err)
}
deltas, err := router.files.Deltas()
if err != nil {
panic(err)
}
json.NewEncoder(w).Encode(map[string]any{
"deltas": deltas.Like(ledger.LikeAfter(time.Now().Add(-1 * time.Hour * 24 * 365 / 2).Format("2006-01"))),
"balances": deltas.Balances().
Like("^(Bel:Asset|Zach:Asset|HouseyMcHouseface:Debts:Credit)").
Group(`^[^:]*`).
WithBPIs(bpis),
"lastNLines": lastNLines,
})
return
case "/api/lastnlines":
if r.Method != http.MethodPut {
http.NotFound(w, r)
return
}
var lines []string
if err := json.NewDecoder(r.Body).Decode(&lines); err != nil {
panic(err)
}
if err := router.files.TempSetLastNLines(20, lines); err != nil {
http.Error(w, err.Error(), http.StatusBadRequest)
}
w.WriteHeader(http.StatusResetContent)
return
} }
}
func (router Router) APIReg(w http.ResponseWriter, r *http.Request) {
deltas, err := router.files.Deltas() deltas, err := router.files.Deltas()
if err != nil { if err != nil {
panic(err) panic(err)
@ -339,6 +312,34 @@ func (router Router) API(w http.ResponseWriter, r *http.Request) {
} }
} }
func (router Router) APITransactions(w http.ResponseWriter, r *http.Request) {
bpis, err := router.bpis()
if err != nil {
panic(err)
}
lastNLines, err := router.files.TempGetLastNLines(20)
if err != nil {
panic(err)
}
deltas, err := router.files.Deltas()
if err != nil {
panic(err)
}
json.NewEncoder(w).Encode(map[string]any{
"deltas": deltas.Like(ledger.LikeAfter(time.Now().Add(-1 * time.Hour * 24 * 365 / 2).Format("2006-01"))),
"balances": deltas.Balances().
Like("^(Bel:Asset|Zach:Asset|HouseyMcHouseface:Debts:Credit)").
Group(`^[^:]*`).
WithBPIs(bpis),
"lastNLines": lastNLines,
})
}
func (router Router) APILastNLines(w http.ResponseWriter, r *http.Request) {
http.Error(w, http.StatusText(http.StatusNotImplemented), http.StatusNotImplemented)
}
func (r Router) bpis() (ledger.BPIs, error) { func (r Router) bpis() (ledger.BPIs, error) {
if r.bpiPath == "" { if r.bpiPath == "" {
return make(ledger.BPIs), nil return make(ledger.BPIs), nil