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 {
|
||||
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
|
||||
for blog, bc := range a.cfg.Blogs {
|
||||
// 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(settingsHideShareButtonPath, a.settingsHideShareButton)
|
||||
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,
|
||||
hideShareButton: bc.hideShareButton,
|
||||
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()
|
||||
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"
|
||||
hideShareButtonSetting = "hidesharebutton"
|
||||
hideTranslateButtonSetting = "hidetranslatebutton"
|
||||
userNickSetting = "usernick"
|
||||
userNameSetting = "username"
|
||||
)
|
||||
|
||||
func (a *goBlog) getSettingValue(name string) (string, error) {
|
||||
|
|
|
@ -67,6 +67,8 @@ sectionshowfull: "Vollständigen Inhalt in der Zusammenfassung anzeigen"
|
|||
sectiontitle: "Title"
|
||||
send: "Senden (zur Überprüfung)"
|
||||
settings: "Einstellungen"
|
||||
settingsusername: "Vollständiger Benutzername"
|
||||
settingsusernick: "Benutzer-Nickname (Login-Benutzername)"
|
||||
share: "Online teilen"
|
||||
shorturl: "Kurz-Link:"
|
||||
speak: "Vorlesen"
|
||||
|
@ -82,6 +84,7 @@ unlistedpostsdesc: "Veröffentlichte Posts mit der Sichtbarkeit `unlisted`, die
|
|||
update: "Aktualisieren"
|
||||
updatedon: "Aktualisiert am"
|
||||
upload: "Hochladen"
|
||||
user: "Benutzer"
|
||||
view: "Anschauen"
|
||||
visibility: "Sichtbarkeit"
|
||||
whatistor: "Was ist Tor?"
|
||||
|
|
|
@ -82,6 +82,8 @@ sectionshowfull: "Show full content in summary"
|
|||
sectiontitle: "Title"
|
||||
send: "Send (to review)"
|
||||
settings: "Settings"
|
||||
settingsusername: "Full user name"
|
||||
settingsusernick: "User nickname (login username)"
|
||||
share: "Share online"
|
||||
shorturl: "Short link:"
|
||||
speak: "Read aloud"
|
||||
|
@ -98,6 +100,7 @@ unlistedpostsdesc: "Published posts with visibility `unlisted` that are not disp
|
|||
update: "Update"
|
||||
updatedon: "Updated on"
|
||||
upload: "Upload"
|
||||
user: "User"
|
||||
username: "Username"
|
||||
verified: "Verified"
|
||||
view: "View"
|
||||
|
|
5
ui.go
5
ui.go
|
@ -1521,6 +1521,8 @@ type settingsRenderData struct {
|
|||
hideOldContentWarning bool
|
||||
hideShareButton bool
|
||||
hideTranslateButton bool
|
||||
userNick string
|
||||
userName string
|
||||
}
|
||||
|
||||
func (a *goBlog) renderSettings(hb *htmlbuilder.HtmlBuilder, rd *renderData) {
|
||||
|
@ -1568,6 +1570,9 @@ func (a *goBlog) renderSettings(hb *htmlbuilder.HtmlBuilder, rd *renderData) {
|
|||
srd.hideTranslateButton,
|
||||
)
|
||||
|
||||
// User settings
|
||||
a.renderUserSettings(hb, rd, srd)
|
||||
|
||||
// Post sections
|
||||
a.renderPostSectionSettings(hb, rd, srd)
|
||||
|
||||
|
|
|
@ -654,3 +654,18 @@ func (a *goBlog) renderBooleanSetting(hb *htmlbuilder.HtmlBuilder, rd *renderDat
|
|||
|
||||
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