github.com/kotovmak/go-admin@v1.1.1/plugins/admin/modules/guard/update.go (about) 1 package guard 2 3 import ( 4 "net/http" 5 6 "github.com/kotovmak/go-admin/context" 7 "github.com/kotovmak/go-admin/plugins/admin/modules/form" 8 "github.com/kotovmak/go-admin/plugins/admin/modules/table" 9 ) 10 11 type UpdateParam struct { 12 Panel table.Table 13 Prefix string 14 Value form.Values 15 } 16 17 func (g *Guard) Update(ctx *context.Context) { 18 panel, prefix := g.table(ctx) 19 20 pname := panel.GetPrimaryKey().Name 21 22 id := ctx.FormValue("pk") 23 24 if id == "" { 25 ctx.JSON(http.StatusBadRequest, map[string]interface{}{ 26 "msg": "wrong " + pname, 27 }) 28 ctx.Abort() 29 return 30 } 31 32 var f = make(form.Values) 33 f.Add(form.PostIsSingleUpdateKey, "1") 34 f.Add(pname, id) 35 f.Add(ctx.FormValue("name"), ctx.FormValue("value")) 36 37 ctx.SetUserValue(updateParamKey, &UpdateParam{ 38 Panel: panel, 39 Prefix: prefix, 40 Value: f, 41 }) 42 ctx.Next() 43 } 44 45 func GetUpdateParam(ctx *context.Context) *UpdateParam { 46 return ctx.UserValue[updateParamKey].(*UpdateParam) 47 }