Browse Source

Module at home page

Vova Tkach 5 years ago
parent
commit
6f6bf60ced

+ 5 - 0
engine/wrapper/config.go

@@ -6,6 +6,9 @@ import (
 )
 )
 
 
 type Config struct {
 type Config struct {
+	Engine struct {
+		MainModule int
+	}
 	Blog struct {
 	Blog struct {
 		Pagination struct {
 		Pagination struct {
 			Index    int
 			Index    int
@@ -42,6 +45,8 @@ func configNew() *Config {
 }
 }
 
 
 func (this *Config) configDefault() {
 func (this *Config) configDefault() {
+	this.Engine.MainModule = 0
+
 	this.Blog.Pagination.Index = 5
 	this.Blog.Pagination.Index = 5
 	this.Blog.Pagination.Category = 5
 	this.Blog.Pagination.Category = 5
 
 

+ 4 - 0
modules/module_blog.go

@@ -175,6 +175,10 @@ func (this *Modules) RegisterModule_Blog() *Module {
 				return
 				return
 			}
 			}
 
 
+			// Render template
+			wrap.RenderFrontEnd("blog", fetdata.New(wrap, nil, false), http.StatusOK)
+			return
+		} else if (*wrap.Config).Engine.MainModule == 1 {
 			// Render template
 			// Render template
 			wrap.RenderFrontEnd("blog", fetdata.New(wrap, nil, false), http.StatusOK)
 			wrap.RenderFrontEnd("blog", fetdata.New(wrap, nil, false), http.StatusOK)
 			return
 			return

+ 60 - 5
modules/module_settings.go

@@ -21,7 +21,8 @@ func (this *Modules) RegisterModule_Settings() *Module {
 		System: true,
 		System: true,
 		Icon:   assets.SysSvgIconGear,
 		Icon:   assets.SysSvgIconGear,
 		Sub: &[]MISub{
 		Sub: &[]MISub{
-			{Mount: "default", Name: "Robots.txt", Show: true, Icon: assets.SysSvgIconBug},
+			{Mount: "default", Name: "General", Show: true, Icon: assets.SysSvgIconGear},
+			{Mount: "robots-txt", Name: "Robots.txt", Show: true, Icon: assets.SysSvgIconBug},
 			{Mount: "pagination", Name: "Pagination", Show: true, Icon: assets.SysSvgIconList},
 			{Mount: "pagination", Name: "Pagination", Show: true, Icon: assets.SysSvgIconList},
 			{Mount: "thumbnails", Name: "Thumbnails", Show: true, Icon: assets.SysSvgIconList},
 			{Mount: "thumbnails", Name: "Thumbnails", Show: true, Icon: assets.SysSvgIconList},
 			{Mount: "api", Name: "API", Show: true, Icon: assets.SysSvgIconList},
 			{Mount: "api", Name: "API", Show: true, Icon: assets.SysSvgIconList},
@@ -31,6 +32,60 @@ func (this *Modules) RegisterModule_Settings() *Module {
 		sidebar := ""
 		sidebar := ""
 
 
 		if wrap.CurrSubModule == "" || wrap.CurrSubModule == "default" {
 		if wrap.CurrSubModule == "" || wrap.CurrSubModule == "default" {
+			content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
+				{Name: "General"},
+			})
+
+			content += builder.DataForm(wrap, []builder.DataFormField{
+				{
+					Kind:  builder.DFKHidden,
+					Name:  "action",
+					Value: "settings-general",
+				},
+				{
+					Kind: builder.DFKText,
+					CallBack: func(field *builder.DataFormField) string {
+						modules_list := ``
+						modules_list += `<select class="form-control" id="lbl_module-at-home" name="module-at-home">`
+						modules_list += `<option value="0"`
+						if (*wrap.Config).Engine.MainModule == 0 {
+							modules_list += ` selected`
+						}
+						modules_list += `>Pages</option>`
+						modules_list += `<option value="1"`
+						if (*wrap.Config).Engine.MainModule == 1 {
+							modules_list += ` selected`
+						}
+						modules_list += `>Blog</option>`
+						modules_list += `<option value="2"`
+						if (*wrap.Config).Engine.MainModule == 2 {
+							modules_list += ` selected`
+						}
+						modules_list += `>Shop</option>`
+						modules_list += `</select>`
+						return `<div class="form-group n3">` +
+							`<div class="row">` +
+							`<div class="col-md-3">` +
+							`<label for="lbl_module-at-home">Module at home page</label>` +
+							`</div>` +
+							`<div class="col-md-9">` +
+							`<div>` +
+							modules_list +
+							`</div>` +
+							`</div>` +
+							`</div>` +
+							`</div>`
+					},
+				},
+				{
+					Kind:   builder.DFKSubmit,
+					Value:  "Save",
+					Target: "add-edit-button",
+				},
+			})
+
+			sidebar += `<button class="btn btn-primary btn-sidebar" id="add-edit-button">Save</button>`
+		} else if wrap.CurrSubModule == "robots-txt" {
 			content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
 			content += this.getBreadCrumbs(wrap, &[]consts.BreadCrumb{
 				{Name: "Robots.txt"},
 				{Name: "Robots.txt"},
 			})
 			})
@@ -153,7 +208,7 @@ func (this *Modules) RegisterModule_Settings() *Module {
 						return `<div class="form-group n3">` +
 						return `<div class="form-group n3">` +
 							`<div class="row">` +
 							`<div class="row">` +
 							`<div class="col-md-3">` +
 							`<div class="col-md-3">` +
-							`<label for="lbl_price">Shop thumbnail 1</label>` +
+							`<label>Shop thumbnail 1</label>` +
 							`</div>` +
 							`</div>` +
 							`<div class="col-md-9">` +
 							`<div class="col-md-9">` +
 							`<div>` +
 							`<div>` +
@@ -195,7 +250,7 @@ func (this *Modules) RegisterModule_Settings() *Module {
 						return `<div class="form-group n3">` +
 						return `<div class="form-group n3">` +
 							`<div class="row">` +
 							`<div class="row">` +
 							`<div class="col-md-3">` +
 							`<div class="col-md-3">` +
-							`<label for="lbl_price">Shop thumbnail 2</label>` +
+							`<label>Shop thumbnail 2</label>` +
 							`</div>` +
 							`</div>` +
 							`<div class="col-md-9">` +
 							`<div class="col-md-9">` +
 							`<div>` +
 							`<div>` +
@@ -237,7 +292,7 @@ func (this *Modules) RegisterModule_Settings() *Module {
 						return `<div class="form-group n3">` +
 						return `<div class="form-group n3">` +
 							`<div class="row">` +
 							`<div class="row">` +
 							`<div class="col-md-3">` +
 							`<div class="col-md-3">` +
-							`<label for="lbl_price">Shop thumbnail 3</label>` +
+							`<label>Shop thumbnail 3</label>` +
 							`</div>` +
 							`</div>` +
 							`<div class="col-md-9">` +
 							`<div class="col-md-9">` +
 							`<div>` +
 							`<div>` +
@@ -279,7 +334,7 @@ func (this *Modules) RegisterModule_Settings() *Module {
 						return `<div class="form-group n3">` +
 						return `<div class="form-group n3">` +
 							`<div class="row">` +
 							`<div class="row">` +
 							`<div class="col-md-3">` +
 							`<div class="col-md-3">` +
-							`<label for="lbl_price">Shop thumbnail full</label>` +
+							`<label>Shop thumbnail full</label>` +
 							`</div>` +
 							`</div>` +
 							`<div class="col-md-9">` +
 							`<div class="col-md-9">` +
 							`<div>` +
 							`<div>` +

+ 43 - 0
modules/module_settings_act_general.go

@@ -0,0 +1,43 @@
+package modules
+
+import (
+	"strconv"
+
+	"golang-fave/engine/wrapper"
+	"golang-fave/utils"
+)
+
+func (this *Modules) RegisterAction_SettingsGeneral() *Action {
+	return this.newAction(AInfo{
+		WantDB:    true,
+		Mount:     "settings-general",
+		WantAdmin: true,
+	}, func(wrap *wrapper.Wrapper) {
+		pf_module_at_home := wrap.R.FormValue("module-at-home")
+
+		if _, err := strconv.Atoi(pf_module_at_home); err != nil {
+			wrap.MsgError(`Must be integer number`)
+			return
+		}
+
+		pfi_module_at_home := utils.StrToInt(pf_module_at_home)
+
+		// Correct some values
+		if pfi_module_at_home < 0 {
+			pfi_module_at_home = 0
+		}
+		if pfi_module_at_home > 2 {
+			pfi_module_at_home = 2
+		}
+
+		(*wrap.Config).Engine.MainModule = pfi_module_at_home
+
+		if err := wrap.ConfigSave(); err != nil {
+			wrap.MsgError(err.Error())
+			return
+		}
+
+		// Reload current page
+		wrap.Write(`window.location.reload(false);`)
+	})
+}

+ 4 - 0
modules/module_shop.go

@@ -427,6 +427,10 @@ func (this *Modules) RegisterModule_Shop() *Module {
 				return
 				return
 			}
 			}
 
 
+			// Render template
+			wrap.RenderFrontEnd("shop", fetdata.New(wrap, nil, false), http.StatusOK)
+			return
+		} else if (*wrap.Config).Engine.MainModule == 2 {
 			// Render template
 			// Render template
 			wrap.RenderFrontEnd("shop", fetdata.New(wrap, nil, false), http.StatusOK)
 			wrap.RenderFrontEnd("shop", fetdata.New(wrap, nil, false), http.StatusOK)
 			return
 			return

+ 13 - 0
modules/modules.go

@@ -118,6 +118,19 @@ func (this *Modules) getCurrentModule(wrap *wrapper.Wrapper, backend bool) (*Mod
 				mod = m
 				mod = m
 				modCurr = "index"
 				modCurr = "index"
 			}
 			}
+			if (*wrap.Config).Engine.MainModule > 0 {
+				if (*wrap.Config).Engine.MainModule == 1 {
+					if m, ok := this.mods["blog"]; ok {
+						mod = m
+						modCurr = "blog"
+					}
+				} else if (*wrap.Config).Engine.MainModule == 2 {
+					if m, ok := this.mods["shop"]; ok {
+						mod = m
+						modCurr = "shop"
+					}
+				}
+			}
 		}
 		}
 	}
 	}