authors.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package tables
  2. import (
  3. "github.com/GoAdminGroup/go-admin/context"
  4. "github.com/GoAdminGroup/go-admin/modules/db"
  5. "github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
  6. "github.com/GoAdminGroup/go-admin/template/icon"
  7. "github.com/GoAdminGroup/go-admin/template/types"
  8. "github.com/GoAdminGroup/go-admin/template/types/action"
  9. "github.com/GoAdminGroup/go-admin/template/types/form"
  10. )
  11. // GetAuthorsTable return the model of table author.
  12. func GetAuthorsTable(ctx *context.Context) (authorsTable table.Table) {
  13. authorsTable = table.NewDefaultTable(ctx, table.DefaultConfigWithDriver("sqlite"))
  14. // connect your custom connection
  15. // authorsTable = table.NewDefaultTable(ctx, table.DefaultConfigWithDriverAndConnection("mysql", "admin"))
  16. info := authorsTable.GetInfo().SetFilterFormLayout(form.LayoutFilter)
  17. info.AddField("ID", "id", db.Int).FieldSortable()
  18. info.AddField("First Name", "first_name", db.Varchar).FieldHide()
  19. info.AddField("Last Name", "last_name", db.Varchar).FieldHide()
  20. info.AddField("Name", "name", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
  21. first, _ := value.Row["first_name"].(string)
  22. last, _ := value.Row["last_name"].(string)
  23. return first + " " + last
  24. })
  25. info.AddField("Email", "email", db.Varchar)
  26. info.AddField("Birthdate", "birthdate", db.Date)
  27. info.AddField("Added", "added", db.Timestamp)
  28. info.AddButton(ctx, "Articles", icon.Tv,
  29. action.PopUpWithIframe("/authors/list", "文章", action.IframeData{Src: "/admin/info/posts"}, "900px", "560px"))
  30. info.SetTable("authors").SetTitle("Authors").SetDescription("Authors")
  31. formList := authorsTable.GetForm()
  32. formList.AddField("ID", "id", db.Int, form.Default).FieldNotAllowEdit().FieldNotAllowAdd()
  33. formList.AddField("First Name", "first_name", db.Varchar, form.Text)
  34. formList.AddField("Last Name", "last_name", db.Varchar, form.Text)
  35. formList.AddField("Email", "email", db.Varchar, form.Text)
  36. formList.AddField("Birthdate", "birthdate", db.Date, form.Text)
  37. formList.AddField("Added", "added", db.Timestamp, form.Text)
  38. formList.SetTable("authors").SetTitle("Authors").SetDescription("Authors")
  39. return
  40. }