external.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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/parameter"
  6. "github.com/GoAdminGroup/go-admin/plugins/admin/modules/table"
  7. "github.com/GoAdminGroup/go-admin/template/types/form"
  8. )
  9. // GetExternalTable return the model from external data source.
  10. func GetExternalTable(ctx *context.Context) (externalTable table.Table) {
  11. externalTable = table.NewDefaultTable(ctx, table.DefaultConfig())
  12. info := externalTable.GetInfo()
  13. info.AddField("ID", "id", db.Int).FieldSortable()
  14. info.AddField("Title", "title", db.Varchar)
  15. info.SetTable("external").
  16. SetTitle("Externals").
  17. SetDescription("Externals").
  18. SetGetDataFn(func(param parameter.Parameters) ([]map[string]interface{}, int) {
  19. return []map[string]interface{}{
  20. {
  21. "id": 10,
  22. "title": "this is a title",
  23. }, {
  24. "id": 11,
  25. "title": "this is a title2",
  26. }, {
  27. "id": 12,
  28. "title": "this is a title3",
  29. }, {
  30. "id": 13,
  31. "title": "this is a title4",
  32. },
  33. }, 10
  34. })
  35. formList := externalTable.GetForm()
  36. formList.AddField("ID", "id", db.Int, form.Default).FieldNotAllowEdit().FieldNotAllowAdd()
  37. formList.AddField("Title", "title", db.Varchar, form.Text)
  38. formList.SetTable("external").SetTitle("Externals").SetDescription("Externals")
  39. detail := externalTable.GetDetail()
  40. detail.SetTable("external").
  41. SetTitle("Externals").
  42. SetDescription("Externals").
  43. SetGetDataFn(func(param parameter.Parameters) ([]map[string]interface{}, int) {
  44. return []map[string]interface{}{
  45. {
  46. "id": 10,
  47. "title": "this is a title",
  48. },
  49. }, 1
  50. })
  51. return
  52. }