main.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package main
  2. import (
  3. _ "github.com/chenhg5/go-admin/adapter/gin"
  4. "github.com/chenhg5/go-admin/engine"
  5. "github.com/chenhg5/go-admin/examples/datamodel"
  6. "github.com/chenhg5/go-admin/plugins/admin"
  7. "github.com/chenhg5/go-admin/plugins/example"
  8. "github.com/chenhg5/go-admin/template/types"
  9. "github.com/gin-gonic/gin"
  10. "io/ioutil"
  11. )
  12. func main() {
  13. r := gin.Default()
  14. gin.SetMode(gin.ReleaseMode)
  15. gin.DefaultWriter = ioutil.Discard
  16. eng := engine.Default()
  17. adminPlugin := admin.NewAdmin(datamodel.Generators)
  18. // add generator, first parameter is the url prefix of table when visit.
  19. // example:
  20. //
  21. // "user" => http://localhost:9033/admin/info/user
  22. //
  23. adminPlugin.AddGenerator("user", datamodel.GetUserTable)
  24. // customize a plugin
  25. examplePlugin := example.NewExample()
  26. if err := eng.AddConfigFromJson("./config.json").
  27. AddPlugins(adminPlugin, examplePlugin).
  28. Use(r); err != nil {
  29. panic(err)
  30. }
  31. r.Static("/uploads", "./uploads")
  32. // customize your pages
  33. r.GET("/admin/custom", func(ctx *gin.Context) {
  34. engine.Content(ctx, func() types.Panel {
  35. return datamodel.GetContent()
  36. })
  37. })
  38. _ = r.Run(":9033")
  39. }