module_users.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. {DBField: "id", NameInTable: "", CallBack: nil},
  30. {DBField: "email", NameInTable: "Email", CallBack: func(values *[]string) string {
  31. email := `<a href="/cp/users/modify/` + (*values)[0] + `/">` + html.EscapeString((*values)[1]) + `</a>`
  32. name := html.EscapeString((*values)[2])
  33. if name != "" && (*values)[3] != "" {
  34. name += ` ` + (*values)[3]
  35. }
  36. if name != "" {
  37. name = `<div><small>` + name + `</small></div>`
  38. }
  39. return `<div>` + email + `</div>` + name
  40. }},
  41. {DBField: "first_name", NameInTable: "", CallBack: nil},
  42. {DBField: "last_name", NameInTable: "", CallBack: nil},
  43. }, func(values *[]string) string {
  44. return `<a class="ico" href="/cp/users/modify/` + (*values)[0] + `/">` +
  45. assets.SysSvgIconEdit + `</a>` +
  46. `<a class="ico" href="#">` + assets.SysSvgIconRemove + `</a>`
  47. }, "/cp/users/default/")
  48. } else if wrap.CurrSubModule == "add" {
  49. content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
  50. {Name: "Add New User"},
  51. })
  52. }
  53. return this.getSidebarModules(wrap), content, sidebar
  54. })
  55. }