module_users.go 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package modules
  2. import (
  3. "html"
  4. others "golang-fave/engine/wrapper/resources/others"
  5. utils "golang-fave/engine/wrapper/utils"
  6. )
  7. func (this *Module) Module_users() {
  8. // Do something here...
  9. }
  10. func (this *Module) Module_users_display() bool {
  11. return false
  12. }
  13. func (this *Module) Module_users_alias() string {
  14. return "users"
  15. }
  16. func (this *Module) Module_users_name() string {
  17. return "Users"
  18. }
  19. func (this *Module) Module_users_icon() string {
  20. return others.File_assets_sys_svg_user
  21. }
  22. func (this *Module) Module_users_order() int {
  23. return 100
  24. }
  25. func (this *Module) Module_users_submenu() []utils.ModuleSubMenu {
  26. result := make([]utils.ModuleSubMenu, 0)
  27. result = append(result, utils.ModuleSubMenu{
  28. Alias: "default",
  29. Name: "List of users",
  30. Icon: others.File_assets_sys_svg_list,
  31. })
  32. result = append(result, utils.ModuleSubMenu{
  33. Alias: "modify",
  34. Name: "Add new user",
  35. Icon: others.File_assets_sys_svg_plus,
  36. })
  37. return result
  38. }
  39. func (this *Module) Module_users_content() string {
  40. if this.smod == "default" {
  41. breadcrumb := this.breadcrumb([]dataBreadcrumb{
  42. {"List of users", ""},
  43. })
  44. data_table := this.data_table("users", "email", "ASC", []dataTableRow{
  45. {"id", "", nil},
  46. {"email", "Email", func(values *[]string) string {
  47. email := `<a href="/cp/users/modify/` + (*values)[0] + `/">` + html.EscapeString((*values)[1]) + `</a>`
  48. name := html.EscapeString((*values)[2])
  49. if name != "" && (*values)[3] != "" {
  50. name += ` ` + (*values)[3]
  51. }
  52. if name != "" {
  53. name = `<div><small>` + name + `</small></div>`
  54. }
  55. return `<div>` + email + `</div>` + name
  56. }},
  57. {"first_name", "", nil},
  58. {"last_name", "", nil},
  59. }, func(values *[]string) string {
  60. return `<a class="ico" href="/cp/users/modify/` + (*values)[0] + `/">` +
  61. others.File_assets_sys_svg_edit + `</a>` +
  62. `<a class="ico" href="#">` + others.File_assets_sys_svg_remove + `</a>`
  63. }, "/cp/users/default/")
  64. return breadcrumb + data_table
  65. } else if this.smod == "modify" && this.imod == 0 {
  66. breadcrumb := this.breadcrumb([]dataBreadcrumb{
  67. {"Add new user", ""},
  68. })
  69. data_form := this.data_form([]dataFormField{
  70. {kind: dfkHidden, name: "action", value: "users_add"},
  71. {kind: dfkHidden, name: "id", value: "0"},
  72. {kind: dfkText, caption: "User first name", name: "first_name"},
  73. {kind: dfkText, caption: "User last name", name: "last_name"},
  74. {kind: dfkEmail, caption: "User email", name: "email", required: true},
  75. {kind: dfkPassword, caption: "User password", name: "password", hint: "Please specify new user password", required: true},
  76. {kind: dfkSubmit, value: "Add", target: "add-edit-button"},
  77. })
  78. return breadcrumb + data_form
  79. } else if this.smod == "modify" && this.imod != 0 {
  80. breadcrumb := this.breadcrumb([]dataBreadcrumb{
  81. {"Edit user", ""},
  82. })
  83. // Load user data
  84. data_form := this.data_form([]dataFormField{
  85. {kind: dfkHidden, name: "action", value: "users_edit"},
  86. {kind: dfkHidden, name: "id", value: "0"},
  87. {kind: dfkText, caption: "User first name", name: "first_name", value: "1"},
  88. {kind: dfkText, caption: "User last name", name: "last_name", value: "2"},
  89. {kind: dfkEmail, caption: "User email", name: "email", value: "3", required: true},
  90. {kind: dfkPassword, caption: "User password", name: "password", hint: "Leave the field blank to not change the password"},
  91. {kind: dfkSubmit, value: "Add", target: "add-edit-button"},
  92. })
  93. return breadcrumb + data_form
  94. }
  95. return ""
  96. }
  97. func (this *Module) Module_users_sidebar() string {
  98. if this.smod == "modify" && this.imod == 0 {
  99. return `<button class="btn btn-primary btn-sidebar" id="add-edit-button">Add</button>`
  100. } else if this.smod == "modify" && this.imod != 0 {
  101. return `<button class="btn btn-primary btn-sidebar" id="add-edit-button">Save</button>`
  102. }
  103. return ""
  104. }