mirror of https://github.com/jlelse/GoBlog
parent
0df2802c74
commit
1b02b400fd
23
config.go
23
config.go
|
@ -461,6 +461,29 @@ func (a *goBlog) initConfig(logging bool) error {
|
||||||
if err = a.loadSections(); err != nil {
|
if err = a.loadSections(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
// Load other settings from database
|
||||||
|
// User nick
|
||||||
|
if userNick, err := a.getSettingValue(userNickSetting); err != nil {
|
||||||
|
return err
|
||||||
|
} else if userNick == "" {
|
||||||
|
// Migrate to database
|
||||||
|
if err = a.saveSettingValue(userNickSetting, a.cfg.User.Nick); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
a.cfg.User.Nick = userNick
|
||||||
|
}
|
||||||
|
// User name
|
||||||
|
if userName, err := a.getSettingValue(userNameSetting); err != nil {
|
||||||
|
return err
|
||||||
|
} else if userName == "" {
|
||||||
|
// Migrate to database
|
||||||
|
if err = a.saveSettingValue(userNameSetting, a.cfg.User.Name); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
a.cfg.User.Name = userName
|
||||||
|
}
|
||||||
// Check config for each blog
|
// Check config for each blog
|
||||||
for blog, bc := range a.cfg.Blogs {
|
for blog, bc := range a.cfg.Blogs {
|
||||||
// Check sections and add section if none exists
|
// Check sections and add section if none exists
|
||||||
|
|
|
@ -461,5 +461,6 @@ func (a *goBlog) blogSettingsRouter(_ *configBlog) func(r chi.Router) {
|
||||||
r.Post(settingsHideOldContentWarningPath, a.settingsHideOldContentWarning)
|
r.Post(settingsHideOldContentWarningPath, a.settingsHideOldContentWarning)
|
||||||
r.Post(settingsHideShareButtonPath, a.settingsHideShareButton)
|
r.Post(settingsHideShareButtonPath, a.settingsHideShareButton)
|
||||||
r.Post(settingsHideTranslateButtonPath, a.settingsHideTranslateButton)
|
r.Post(settingsHideTranslateButtonPath, a.settingsHideTranslateButton)
|
||||||
|
r.Post(settingsUpdateUserPath, a.settingsUpdateUser)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
30
settings.go
30
settings.go
|
@ -23,6 +23,8 @@ func (a *goBlog) serveSettings(w http.ResponseWriter, r *http.Request) {
|
||||||
hideOldContentWarning: bc.hideOldContentWarning,
|
hideOldContentWarning: bc.hideOldContentWarning,
|
||||||
hideShareButton: bc.hideShareButton,
|
hideShareButton: bc.hideShareButton,
|
||||||
hideTranslateButton: bc.hideTranslateButton,
|
hideTranslateButton: bc.hideTranslateButton,
|
||||||
|
userNick: a.cfg.User.Nick,
|
||||||
|
userName: a.cfg.User.Name,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -203,3 +205,31 @@ func (a *goBlog) settingsHideTranslateButton(w http.ResponseWriter, r *http.Requ
|
||||||
a.cache.purge()
|
a.cache.purge()
|
||||||
http.Redirect(w, r, bc.getRelativePath(settingsPath), http.StatusFound)
|
http.Redirect(w, r, bc.getRelativePath(settingsPath), http.StatusFound)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const settingsUpdateUserPath = "/user"
|
||||||
|
|
||||||
|
func (a *goBlog) settingsUpdateUser(w http.ResponseWriter, r *http.Request) {
|
||||||
|
_, bc := a.getBlog(r)
|
||||||
|
// Read values
|
||||||
|
userNick := r.FormValue(userNickSetting)
|
||||||
|
userName := r.FormValue(userNameSetting)
|
||||||
|
if userNick == "" || userName == "" {
|
||||||
|
a.serveError(w, r, "Values must not be empty", http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// Update
|
||||||
|
err := a.saveSettingValue(userNickSetting, userNick)
|
||||||
|
if err != nil {
|
||||||
|
a.serveError(w, r, "Failed to update user nick in database", http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = a.saveSettingValue(userNameSetting, userName)
|
||||||
|
if err != nil {
|
||||||
|
a.serveError(w, r, "Failed to update user name in database", http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
a.cfg.User.Nick = userNick
|
||||||
|
a.cfg.User.Name = userName
|
||||||
|
a.cache.purge()
|
||||||
|
http.Redirect(w, r, bc.getRelativePath(settingsPath), http.StatusFound)
|
||||||
|
}
|
||||||
|
|
|
@ -17,6 +17,8 @@ const (
|
||||||
hideOldContentWarningSetting = "hideoldcontentwarning"
|
hideOldContentWarningSetting = "hideoldcontentwarning"
|
||||||
hideShareButtonSetting = "hidesharebutton"
|
hideShareButtonSetting = "hidesharebutton"
|
||||||
hideTranslateButtonSetting = "hidetranslatebutton"
|
hideTranslateButtonSetting = "hidetranslatebutton"
|
||||||
|
userNickSetting = "usernick"
|
||||||
|
userNameSetting = "username"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (a *goBlog) getSettingValue(name string) (string, error) {
|
func (a *goBlog) getSettingValue(name string) (string, error) {
|
||||||
|
|
|
@ -67,6 +67,8 @@ sectionshowfull: "Vollständigen Inhalt in der Zusammenfassung anzeigen"
|
||||||
sectiontitle: "Title"
|
sectiontitle: "Title"
|
||||||
send: "Senden (zur Überprüfung)"
|
send: "Senden (zur Überprüfung)"
|
||||||
settings: "Einstellungen"
|
settings: "Einstellungen"
|
||||||
|
settingsusername: "Vollständiger Benutzername"
|
||||||
|
settingsusernick: "Benutzer-Nickname (Login-Benutzername)"
|
||||||
share: "Online teilen"
|
share: "Online teilen"
|
||||||
shorturl: "Kurz-Link:"
|
shorturl: "Kurz-Link:"
|
||||||
speak: "Vorlesen"
|
speak: "Vorlesen"
|
||||||
|
@ -82,6 +84,7 @@ unlistedpostsdesc: "Veröffentlichte Posts mit der Sichtbarkeit `unlisted`, die
|
||||||
update: "Aktualisieren"
|
update: "Aktualisieren"
|
||||||
updatedon: "Aktualisiert am"
|
updatedon: "Aktualisiert am"
|
||||||
upload: "Hochladen"
|
upload: "Hochladen"
|
||||||
|
user: "Benutzer"
|
||||||
view: "Anschauen"
|
view: "Anschauen"
|
||||||
visibility: "Sichtbarkeit"
|
visibility: "Sichtbarkeit"
|
||||||
whatistor: "Was ist Tor?"
|
whatistor: "Was ist Tor?"
|
||||||
|
|
|
@ -82,6 +82,8 @@ sectionshowfull: "Show full content in summary"
|
||||||
sectiontitle: "Title"
|
sectiontitle: "Title"
|
||||||
send: "Send (to review)"
|
send: "Send (to review)"
|
||||||
settings: "Settings"
|
settings: "Settings"
|
||||||
|
settingsusername: "Full user name"
|
||||||
|
settingsusernick: "User nickname (login username)"
|
||||||
share: "Share online"
|
share: "Share online"
|
||||||
shorturl: "Short link:"
|
shorturl: "Short link:"
|
||||||
speak: "Read aloud"
|
speak: "Read aloud"
|
||||||
|
@ -98,6 +100,7 @@ unlistedpostsdesc: "Published posts with visibility `unlisted` that are not disp
|
||||||
update: "Update"
|
update: "Update"
|
||||||
updatedon: "Updated on"
|
updatedon: "Updated on"
|
||||||
upload: "Upload"
|
upload: "Upload"
|
||||||
|
user: "User"
|
||||||
username: "Username"
|
username: "Username"
|
||||||
verified: "Verified"
|
verified: "Verified"
|
||||||
view: "View"
|
view: "View"
|
||||||
|
|
5
ui.go
5
ui.go
|
@ -1521,6 +1521,8 @@ type settingsRenderData struct {
|
||||||
hideOldContentWarning bool
|
hideOldContentWarning bool
|
||||||
hideShareButton bool
|
hideShareButton bool
|
||||||
hideTranslateButton bool
|
hideTranslateButton bool
|
||||||
|
userNick string
|
||||||
|
userName string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *goBlog) renderSettings(hb *htmlbuilder.HtmlBuilder, rd *renderData) {
|
func (a *goBlog) renderSettings(hb *htmlbuilder.HtmlBuilder, rd *renderData) {
|
||||||
|
@ -1568,6 +1570,9 @@ func (a *goBlog) renderSettings(hb *htmlbuilder.HtmlBuilder, rd *renderData) {
|
||||||
srd.hideTranslateButton,
|
srd.hideTranslateButton,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// User settings
|
||||||
|
a.renderUserSettings(hb, rd, srd)
|
||||||
|
|
||||||
// Post sections
|
// Post sections
|
||||||
a.renderPostSectionSettings(hb, rd, srd)
|
a.renderPostSectionSettings(hb, rd, srd)
|
||||||
|
|
||||||
|
|
|
@ -654,3 +654,18 @@ func (a *goBlog) renderBooleanSetting(hb *htmlbuilder.HtmlBuilder, rd *renderDat
|
||||||
|
|
||||||
hb.WriteElementClose("form")
|
hb.WriteElementClose("form")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *goBlog) renderUserSettings(hb *htmlbuilder.HtmlBuilder, rd *renderData, srd *settingsRenderData) {
|
||||||
|
hb.WriteElementOpen("h2")
|
||||||
|
hb.WriteEscaped(a.ts.GetTemplateStringVariant(rd.Blog.Lang, "user"))
|
||||||
|
hb.WriteElementClose("h2")
|
||||||
|
|
||||||
|
hb.WriteElementOpen("form", "class", "fw p", "method", "post")
|
||||||
|
hb.WriteElementOpen("input", "type", "text", "name", "usernick", "required", "", "value", srd.userNick, "placeholder", a.ts.GetTemplateStringVariant(rd.Blog.Lang, "settingsusernick"))
|
||||||
|
hb.WriteElementOpen("input", "type", "text", "name", "username", "required", "", "value", srd.userName, "placeholder", a.ts.GetTemplateStringVariant(rd.Blog.Lang, "settingsusername"))
|
||||||
|
hb.WriteElementOpen(
|
||||||
|
"input", "type", "submit", "value", a.ts.GetTemplateStringVariant(rd.Blog.Lang, "update"),
|
||||||
|
"formaction", rd.Blog.getRelativePath(settingsPath+settingsUpdateUserPath),
|
||||||
|
)
|
||||||
|
hb.WriteElementClose("form")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue