posts.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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"
  7. "github.com/GoAdminGroup/go-admin/template/types"
  8. "github.com/GoAdminGroup/go-admin/template/types/form"
  9. editType "github.com/GoAdminGroup/go-admin/template/types/table"
  10. )
  11. // GetPostsTable return the model of table posts.
  12. func GetPostsTable(ctx *context.Context) (postsTable table.Table) {
  13. postsTable = table.NewDefaultTable(table.DefaultConfigWithDriver("sqlite"))
  14. info := postsTable.GetInfo()
  15. info.AddField("ID", "id", db.Int).FieldSortable()
  16. info.AddField("Title", "title", db.Varchar)
  17. info.AddField("AuthorID", "author_id", db.Int).FieldDisplay(func(value types.FieldModel) interface{} {
  18. return template.Default().
  19. Link().
  20. SetURL("/admin/info/authors/detail?__goadmin_detail_pk=" + value.Value).
  21. SetContent(template.HTML(value.Value)).
  22. OpenInNewTab().
  23. SetTabTitle(template.HTML("Author Detail(" + value.Value + ")")).
  24. GetContent()
  25. })
  26. info.AddField("AuthorName", "name", db.Varchar).FieldDisplay(func(value types.FieldModel) interface{} {
  27. return value.Row["authors_goadmin_join_first_name"].(string) + " " + value.Row["authors_goadmin_join_last_name"].(string)
  28. })
  29. info.AddField("AuthorFirstName", "first_name", db.Varchar).FieldJoin(types.Join{
  30. Field: "author_id",
  31. JoinField: "id",
  32. Table: "authors",
  33. }).FieldHide()
  34. info.AddField("AuthorLastName", "last_name", db.Varchar).FieldJoin(types.Join{
  35. Field: "author_id",
  36. JoinField: "id",
  37. Table: "authors",
  38. }).FieldHide()
  39. info.AddField("Description", "description", db.Varchar)
  40. info.AddField("Content", "content", db.Varchar).FieldEditAble(editType.Textarea)
  41. info.AddField("Date", "date", db.Varchar)
  42. info.SetTable("posts").SetTitle("Posts").SetDescription("Posts")
  43. formList := postsTable.GetForm()
  44. formList.AddField("ID", "id", db.Int, form.Default).FieldNotAllowEdit().FieldNotAllowAdd()
  45. formList.AddField("Title", "title", db.Varchar, form.Text)
  46. formList.AddField("Description", "description", db.Varchar, form.Text)
  47. formList.AddField("Content", "content", db.Varchar, form.RichText).FieldEnableFileUpload()
  48. formList.AddField("Date", "date", db.Varchar, form.Datetime)
  49. formList.EnableAjax("Success", "Fail")
  50. formList.SetTable("posts").SetTitle("Posts").SetDescription("Posts")
  51. return
  52. }