Browse Source

CP, Settings, edit domains (form and action)

Vova Tkach 5 years ago
parent
commit
a5a6391e0f
3 changed files with 60 additions and 0 deletions
  1. 3 0
      .gitignore
  2. 30 0
      engine/modules/module_settings.go
  3. 27 0
      engine/modules/module_settings_act_domains.go

+ 3 - 0
.gitignore

@@ -37,6 +37,9 @@
 # All else
 /hosts/localhost/config/config.json
 
+# Domains binding
+/hosts/localhost/config/.domains
+
 # Skip cypress libs folder
 /support/cypress/screenshots
 /support/cypress/videos

+ 30 - 0
engine/modules/module_settings.go

@@ -24,6 +24,7 @@ func (this *Modules) RegisterModule_Settings() *Module {
 			{Mount: "robots-txt", Name: "Robots.txt", Show: true, Icon: assets.SysSvgIconBug},
 			{Mount: "pagination", Name: "Pagination", Show: true, Icon: assets.SysSvgIconPagination},
 			{Mount: "thumbnails", Name: "Thumbnails", Show: true, Icon: assets.SysSvgIconThumbnails},
+			{Mount: "domains", Name: "Domains", Show: true, Icon: assets.SysSvgIconApi},
 			{Mount: "smtp", Name: "SMTP", Show: true, Icon: assets.SysSvgIconEmail},
 			{Mount: "shop", Name: "Shop", Show: true, Icon: assets.SysSvgIconShop},
 			{Mount: "api", Name: "API", Show: true, Icon: assets.SysSvgIconApi},
@@ -407,6 +408,35 @@ func (this *Modules) RegisterModule_Settings() *Module {
 				},
 			})
 
+			sidebar += `<button class="btn btn-primary btn-sidebar" id="add-edit-button">Save</button>`
+		} else if wrap.CurrSubModule == "domains" {
+			content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
+				{Name: "Domains"},
+			})
+
+			fcont := []byte(``)
+			fcont, _ = ioutil.ReadFile(wrap.DConfig + string(os.PathSeparator) + ".domains")
+
+			content += builder.DataForm(wrap, []builder.DataFormField{
+				{
+					Kind:  builder.DFKHidden,
+					Name:  "action",
+					Value: "settings-domains",
+				},
+				{
+					Kind: builder.DFKText,
+					CallBack: func(field *builder.DataFormField) string {
+						return `<div class="form-group last"><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>`
+					},
+				},
+				{
+					Kind: builder.DFKSubmit,
+					CallBack: func(field *builder.DataFormField) string {
+						return `<div class="row d-lg-none"><div class="col-12"><div class="pt-3"><button type="submit" class="btn btn-primary" data-target="add-edit-button">Save</button></div></div></div>`
+					},
+				},
+			})
+
 			sidebar += `<button class="btn btn-primary btn-sidebar" id="add-edit-button">Save</button>`
 		} else if wrap.CurrSubModule == "smtp" {
 			content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{

+ 27 - 0
engine/modules/module_settings_act_domains.go

@@ -0,0 +1,27 @@
+package modules
+
+import (
+	"io/ioutil"
+	"os"
+
+	"golang-fave/engine/wrapper"
+)
+
+func (this *Modules) RegisterAction_SettingsDomains() *Action {
+	return this.newAction(AInfo{
+		Mount:     "settings-domains",
+		WantAdmin: true,
+	}, func(wrap *wrapper.Wrapper) {
+		pf_content := wrap.R.FormValue("content")
+
+		// Save content
+		err := ioutil.WriteFile(wrap.DConfig+string(os.PathSeparator)+".domains", []byte(pf_content), 0664)
+		if err != nil {
+			wrap.MsgError(err.Error())
+			return
+		}
+
+		// Reload current page
+		wrap.Write(`window.location.reload(false);`)
+	})
+}