diff options
| -rw-r--r-- | model/post.go | 1 | ||||
| -rw-r--r-- | model/settings.go | 2 | ||||
| -rw-r--r-- | renderer/model.go | 3 | ||||
| -rw-r--r-- | service/service.go | 9 | ||||
| -rw-r--r-- | service/transport.go | 2 | ||||
| -rw-r--r-- | templates/postform.tmpl | 5 | ||||
| -rw-r--r-- | templates/settings.tmpl | 9 | 
7 files changed, 26 insertions, 5 deletions
| diff --git a/model/post.go b/model/post.go index 7cfead7..831f74f 100644 --- a/model/post.go +++ b/model/post.go @@ -7,6 +7,7 @@ type PostFormat struct {  type PostContext struct {  	DefaultVisibility string +	DefaultFormat     string  	ReplyContext      *ReplyContext  	Formats           []PostFormat  	DarkMode          bool diff --git a/model/settings.go b/model/settings.go index 03e9581..337a6a3 100644 --- a/model/settings.go +++ b/model/settings.go @@ -2,6 +2,7 @@ package model  type Settings struct {  	DefaultVisibility        string `json:"default_visibility"` +	DefaultFormat            string `json:"default_format"`  	CopyScope                bool   `json:"copy_scope"`  	ThreadInNewTab           bool   `json:"thread_in_new_tab"`  	HideAttachments          bool   `json:"hide_attachments"` @@ -15,6 +16,7 @@ type Settings struct {  func NewSettings() *Settings {  	return &Settings{  		DefaultVisibility:        "public", +		DefaultFormat:            "",  		CopyScope:                true,  		ThreadInNewTab:           false,  		HideAttachments:          false, diff --git a/renderer/model.go b/renderer/model.go index 4b177db..0e5204a 100644 --- a/renderer/model.go +++ b/renderer/model.go @@ -121,5 +121,6 @@ type SearchData struct {  type SettingsData struct {  	*CommonData -	Settings *model.Settings +	Settings    *model.Settings +	PostFormats []model.PostFormat  } diff --git a/service/service.go b/service/service.go index 447f186..23685c4 100644 --- a/service/service.go +++ b/service/service.go @@ -4,8 +4,8 @@ import (  	"context"  	"errors"  	"fmt" -	"mime/multipart"  	"html/template" +	"mime/multipart"  	"net/url"  	"strings" @@ -198,6 +198,7 @@ func (svc *service) ServeNavPage(c *model.Client) (err error) {  	postContext := model.PostContext{  		DefaultVisibility: c.Session.Settings.DefaultVisibility, +		DefaultFormat:     c.Session.Settings.DefaultFormat,  		Formats:           svc.postFormats,  	} @@ -326,6 +327,7 @@ func (svc *service) ServeThreadPage(c *model.Client, id string, reply bool) (err  		postContext = model.PostContext{  			DefaultVisibility: visibility, +			DefaultFormat:     c.Session.Settings.DefaultFormat,  			Formats:           svc.postFormats,  			ReplyContext: &model.ReplyContext{  				InReplyToID:     id, @@ -686,8 +688,9 @@ func (svc *service) ServeSearchPage(c *model.Client,  func (svc *service) ServeSettingsPage(c *model.Client) (err error) {  	commonData := svc.getCommonData(c, "settings")  	data := &renderer.SettingsData{ -		CommonData: commonData, -		Settings:   &c.Session.Settings, +		CommonData:  commonData, +		Settings:    &c.Session.Settings, +		PostFormats: svc.postFormats,  	}  	rCtx := getRendererContext(c) diff --git a/service/transport.go b/service/transport.go index 4f73c5e..6c0975d 100644 --- a/service/transport.go +++ b/service/transport.go @@ -584,6 +584,7 @@ func NewHandler(s Service, staticDir string) http.Handler {  	settings := func(w http.ResponseWriter, req *http.Request) {  		c := newClient(w, req, req.FormValue("csrf_token"))  		visibility := req.FormValue("visibility") +		format := req.FormValue("format")  		copyScope := req.FormValue("copy_scope") == "true"  		threadInNewTab := req.FormValue("thread_in_new_tab") == "true"  		hideAttachments := req.FormValue("hide_attachments") == "true" @@ -595,6 +596,7 @@ func NewHandler(s Service, staticDir string) http.Handler {  		settings := &model.Settings{  			DefaultVisibility:        visibility, +			DefaultFormat:            format,  			CopyScope:                copyScope,  			ThreadInNewTab:           threadInNewTab,  			HideAttachments:          hideAttachments, diff --git a/templates/postform.tmpl b/templates/postform.tmpl index ac77486..b38cb9d 100644 --- a/templates/postform.tmpl +++ b/templates/postform.tmpl @@ -16,8 +16,11 @@  	<div>  		{{if gt (len .Formats) 0}}  		<span class="post-form-field"> +			{{$defFormat := .DefaultFormat}}  			<select id="post-format" name="format" accesskey="F" title="Format (F)"> -				{{range .Formats}} <option value="{{.Type}}">{{.Name}}</option> {{end}} +				{{range .Formats}}  +					<option value="{{.Type}}" {{if eq $defFormat .Type}}selected{{end}}>{{.Name}}</option>  +				{{end}}  			</select>  		</span>  		{{end}} diff --git a/templates/settings.tmpl b/templates/settings.tmpl index 67386a4..972e1a2 100644 --- a/templates/settings.tmpl +++ b/templates/settings.tmpl @@ -5,6 +5,15 @@  <form id="settings-form" action="/settings" method="POST">  	<input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">  	<div class="settings-form-field"> +		<label for="visibility"> Default format </label> +		{{$defFormat := .Settings.DefaultFormat}} +		<select id="post-format" name="format"> +			{{range .PostFormats}}  +				<option value="{{.Type}}" {{if eq $defFormat .Type}}selected{{end}}>{{.Name}}</option>  +			{{end}} +		</select> +	</div> +	<div class="settings-form-field">  		<label for="visibility"> Default scope </label>  		<select id="visibility" name="visibility">  			<option value="public" {{if eq .Settings.DefaultVisibility "public"}}selected{{end}}>Public</option> | 
