From ae86204c847ea712fd975d01925de586803ab402 Mon Sep 17 00:00:00 2001 From: Wancat Date: Sat, 5 Nov 2022 00:13:21 +0800 Subject: [PATCH] Add query function --- config.go | 8 ++++---- route.go | 31 ++++++++++++++++++++----------- templates/dashboard.html | 7 +------ templates/layouts/base.html | 3 ++- templates/layouts/scripts.html | 8 ++++++++ templates/query.html | 12 ++++++++++++ tx.go | 19 +++++++++---------- 7 files changed, 56 insertions(+), 32 deletions(-) create mode 100644 templates/layouts/scripts.html create mode 100644 templates/query.html diff --git a/config.go b/config.go index 5fe6c7c..082405f 100644 --- a/config.go +++ b/config.go @@ -1,7 +1,7 @@ package main -var SCRIPTS = map[string][]string{ - "balance assets": {"b", "assets", "-X", "$"}, - "register": {"r", "--tail", "10"}, - "balance this month": {"b", "-b", "this month"}, +var SCRIPTS = map[string]string{ + "balance assets": "b assets -X $", + "register": "r --tail 10", + "balance this month": "b -b \"this month\"", } diff --git a/route.go b/route.go index 5ccd909..7bb0639 100644 --- a/route.go +++ b/route.go @@ -33,7 +33,7 @@ func router() *gin.Engine { authZone.GET("/dashboard", func(c *gin.Context) { HTML(c, 200, "dashboard.html", struct { Templates []*template.Template - Scripts map[string][]string + Scripts map[string]string }{ ledgerTpl.Templates(), SCRIPTS, @@ -69,16 +69,6 @@ func router() *gin.Engine { }{tx}) }) - authZone.GET("/exec", func(c *gin.Context) { - user := getUser(c) - name, _ := c.GetQuery("name") - if err := user.executeScript(c.Writer, name); err != nil { - c.AbortWithError(500, err) - log.Println(err) - return - } - }) - authZone.GET("/edit", func(c *gin.Context) { user := getUser(c) f, err := user.ReadFile(DEFAULT_JOURNAL) @@ -110,5 +100,24 @@ func router() *gin.Engine { c.FileAttachment(user.FilePath(DEFAULT_JOURNAL), DEFAULT_JOURNAL) }) + authZone.GET("/query", func(c *gin.Context) { + response := struct { + Query string + Result string + Scripts map[string]string + }{Scripts: SCRIPTS} + user := getUser(c) + var ok bool + var err error + response.Query, ok = c.GetQuery("query") + if ok && response.Query != "" { + response.Result, err = user.query(response.Query) + if err != nil { + panic(err) + } + } + HTML(c, 200, "query.html", response) + }) + return r } diff --git a/templates/dashboard.html b/templates/dashboard.html index 7db6bf7..975b57b 100644 --- a/templates/dashboard.html +++ b/templates/dashboard.html @@ -11,10 +11,5 @@
-

Scripts

- +{{ template "scripts" .Scripts }} {{ end }} diff --git a/templates/layouts/base.html b/templates/layouts/base.html index fb88e5c..fe6492d 100644 --- a/templates/layouts/base.html +++ b/templates/layouts/base.html @@ -9,9 +9,10 @@