module_settings.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package modules
  2. import (
  3. "html"
  4. "io/ioutil"
  5. "os"
  6. "golang-fave/assets"
  7. "golang-fave/consts"
  8. "golang-fave/engine/builder"
  9. "golang-fave/engine/wrapper"
  10. )
  11. func (this *Modules) RegisterModule_Settings() *Module {
  12. return this.newModule(MInfo{
  13. WantDB: false,
  14. Mount: "settings",
  15. Name: "Settings",
  16. Order: 801,
  17. System: true,
  18. Icon: assets.SysSvgIconGear,
  19. Sub: &[]MISub{
  20. {Mount: "default", Name: "Robots.txt", Show: true, Icon: assets.SysSvgIconList},
  21. },
  22. }, nil, func(wrap *wrapper.Wrapper) (string, string, string) {
  23. content := ""
  24. sidebar := ""
  25. if wrap.CurrSubModule == "" || wrap.CurrSubModule == "default" {
  26. content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
  27. {Name: "Robots.txt"},
  28. })
  29. fcont := []byte(``)
  30. fcont, _ = ioutil.ReadFile(wrap.DTemplate + string(os.PathSeparator) + "robots.txt")
  31. content += builder.DataForm(wrap, []builder.DataFormField{
  32. {
  33. Kind: builder.DFKHidden,
  34. Name: "action",
  35. Value: "settings-robots-txt",
  36. },
  37. {
  38. Kind: builder.DFKText,
  39. CallBack: func(field *builder.DataFormField) string {
  40. return `<div class="form-group"><div class="row"><div class="col-12"><textarea class="form-control autosize" id="lbl_content" name="content" placeholder="" autocomplete="off">` + html.EscapeString(string(fcont)) + `</textarea></div></div></div>`
  41. },
  42. },
  43. {
  44. Kind: builder.DFKMessage,
  45. CallBack: func(field *builder.DataFormField) string {
  46. return `<div class="row"><div class="col-12"><div class="sys-messages"></div></div></div>`
  47. },
  48. },
  49. {
  50. Kind: builder.DFKSubmit,
  51. CallBack: func(field *builder.DataFormField) string {
  52. return `<div class="row d-lg-none"><div class="col-12"><button type="submit" class="btn btn-primary" data-target="add-edit-button">Save</button></div></div>`
  53. },
  54. },
  55. })
  56. sidebar += `<button class="btn btn-primary btn-sidebar" id="add-edit-button">Save</button>`
  57. }
  58. return this.getSidebarModules(wrap), content, sidebar
  59. })
  60. }