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  }