module_users.go 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package modules
  2. import (
  3. "html"
  4. "golang-fave/assets"
  5. "golang-fave/consts"
  6. "golang-fave/engine/builder"
  7. "golang-fave/engine/wrapper"
  8. )
  9. func (this *Modules) RegisterModule_Users() *Module {
  10. return this.newModule(MInfo{
  11. WantDB: true,
  12. Mount: "users",
  13. Name: "Users",
  14. Order: 800,
  15. System: true,
  16. Icon: assets.SysSvgIconUser,
  17. Sub: &[]MISub{
  18. {Mount: "default", Name: "List of Users", Icon: assets.SysSvgIconList},
  19. {Mount: "add", Name: "Add New User", Icon: assets.SysSvgIconPlus},
  20. },
  21. }, nil, func(wrap *wrapper.Wrapper) (string, string, string) {
  22. content := ""
  23. sidebar := ""
  24. if wrap.CurrSubModule == "" || wrap.CurrSubModule == "default" {
  25. content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
  26. {Name: "List of Users"},
  27. })
  28. content += builder.DataTable(wrap, "users", "email", "ASC", []builder.DataTableRow{
  29. {
  30. DBField: "id",
  31. },
  32. {
  33. DBField: "email",
  34. NameInTable: "Email",
  35. CallBack: func(values *[]string) string {
  36. email := `<a href="/cp/users/modify/` + (*values)[0] + `/">` + html.EscapeString((*values)[1]) + `</a>`
  37. name := html.EscapeString((*values)[2])
  38. if name != "" && (*values)[3] != "" {
  39. name += ` ` + (*values)[3]
  40. }
  41. if name != "" {
  42. name = `<div><small>` + name + `</small></div>`
  43. }
  44. return `<div>` + email + `</div>` + name
  45. },
  46. },
  47. {
  48. DBField: "first_name",
  49. },
  50. {
  51. DBField: "last_name",
  52. },
  53. }, func(values *[]string) string {
  54. return `<a class="ico" href="/cp/users/modify/` + (*values)[0] + `/">` +
  55. assets.SysSvgIconEdit + `</a>` +
  56. `<a class="ico" href="#">` + assets.SysSvgIconRemove + `</a>`
  57. }, "/cp/users/")
  58. } else if wrap.CurrSubModule == "add" {
  59. content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
  60. {Name: "Add New User"},
  61. })
  62. }
  63. return this.getSidebarModules(wrap), content, sidebar
  64. })
  65. }