Make Monetization optional
Some WriteFreely instances are completely private, and thus have no need for public- oriented features like Web Monetization. Like federation, this gives admins control over whether or not the feature is enabled for users. Ref T773
This commit is contained in:
parent
13a3a68d54
commit
2768ea9414
|
@ -840,7 +840,7 @@ func viewEditCollection(app *App, u *User, w http.ResponseWriter, r *http.Reques
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add collection properties
|
// Add collection properties
|
||||||
c.Monetization = app.db.GetCollectionAttribute(c.ID, "monetization_pointer")
|
c.MonetizationPointer = app.db.GetCollectionAttribute(c.ID, "monetization_pointer")
|
||||||
|
|
||||||
silenced, err := app.db.IsUserSilenced(u.ID)
|
silenced, err := app.db.IsUserSilenced(u.ID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
1
admin.go
1
admin.go
|
@ -529,6 +529,7 @@ func handleAdminUpdateConfig(apper Apper, u *User, w http.ResponseWriter, r *htt
|
||||||
}
|
}
|
||||||
apper.App().cfg.App.Federation = r.FormValue("federation") == "on"
|
apper.App().cfg.App.Federation = r.FormValue("federation") == "on"
|
||||||
apper.App().cfg.App.PublicStats = r.FormValue("public_stats") == "on"
|
apper.App().cfg.App.PublicStats = r.FormValue("public_stats") == "on"
|
||||||
|
apper.App().cfg.App.Monetization = r.FormValue("monetization") == "on"
|
||||||
apper.App().cfg.App.Private = r.FormValue("private") == "on"
|
apper.App().cfg.App.Private = r.FormValue("private") == "on"
|
||||||
apper.App().cfg.App.LocalTimeline = r.FormValue("local_timeline") == "on"
|
apper.App().cfg.App.LocalTimeline = r.FormValue("local_timeline") == "on"
|
||||||
if apper.App().cfg.App.LocalTimeline && apper.App().timeline == nil {
|
if apper.App().cfg.App.LocalTimeline && apper.App().timeline == nil {
|
||||||
|
|
|
@ -56,7 +56,7 @@ type (
|
||||||
PublicOwner bool `datastore:"public_owner" json:"-"`
|
PublicOwner bool `datastore:"public_owner" json:"-"`
|
||||||
URL string `json:"url,omitempty"`
|
URL string `json:"url,omitempty"`
|
||||||
|
|
||||||
Monetization string `json:"monetization_pointer,omitempty"`
|
MonetizationPointer string `json:"monetization_pointer,omitempty"`
|
||||||
|
|
||||||
db *datastore
|
db *datastore
|
||||||
hostName string
|
hostName string
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright © 2018-2019 A Bunch Tell LLC.
|
* Copyright © 2018-2020 A Bunch Tell LLC.
|
||||||
*
|
*
|
||||||
* This file is part of WriteFreely.
|
* This file is part of WriteFreely.
|
||||||
*
|
*
|
||||||
|
@ -136,9 +136,11 @@ type (
|
||||||
MinUsernameLen int `ini:"min_username_len"`
|
MinUsernameLen int `ini:"min_username_len"`
|
||||||
MaxBlogs int `ini:"max_blogs"`
|
MaxBlogs int `ini:"max_blogs"`
|
||||||
|
|
||||||
|
// Options for public instances
|
||||||
// Federation
|
// Federation
|
||||||
Federation bool `ini:"federation"`
|
Federation bool `ini:"federation"`
|
||||||
PublicStats bool `ini:"public_stats"`
|
PublicStats bool `ini:"public_stats"`
|
||||||
|
Monetization bool `ini:"monetization"`
|
||||||
|
|
||||||
// Access
|
// Access
|
||||||
Private bool `ini:"private"`
|
Private bool `ini:"private"`
|
||||||
|
|
|
@ -136,6 +136,13 @@ select {
|
||||||
</label></div>
|
</label></div>
|
||||||
<div><input type="checkbox" name="public_stats" id="public_stats" {{if .Config.PublicStats}}checked="checked"{{end}} /></div>
|
<div><input type="checkbox" name="public_stats" id="public_stats" {{if .Config.PublicStats}}checked="checked"{{end}} /></div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="features row">
|
||||||
|
<div><label for="monetization">
|
||||||
|
Monetization
|
||||||
|
<p>Enable blogs on this site to receive micro­pay­ments from readers via <a target="wm" href="https://webmonetization.org/">Web Monetization</a>.</p>
|
||||||
|
</label></div>
|
||||||
|
<div><input type="checkbox" name="monetization" id="monetization" {{if .Config.Monetization}}checked="checked"{{end}} /></div>
|
||||||
|
</div>
|
||||||
<div class="features row">
|
<div class="features row">
|
||||||
<div><label for="min_username_len">
|
<div><label for="min_username_len">
|
||||||
Minimum Username Length
|
Minimum Username Length
|
||||||
|
|
|
@ -146,13 +146,15 @@ textarea.section.norm {
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{if .Monetization}}
|
||||||
<div class="option">
|
<div class="option">
|
||||||
<h2>Web Monetization</h2>
|
<h2>Web Monetization</h2>
|
||||||
<div class="section">
|
<div class="section">
|
||||||
<p class="explain">Web Monetization enables you to receive micropayments from readers that have a <a href="https://coil.com">Coil membership</a>. Add your payment pointer to enable Web Monetization on your blog.</p>
|
<p class="explain">Web Monetization enables you to receive micropayments from readers that have a <a href="https://coil.com">Coil membership</a>. Add your payment pointer to enable Web Monetization on your blog.</p>
|
||||||
<input type="text" name="monetization_pointer" style="width:100%" value="{{.Monetization}}" placeholder="$wallet.example.com/alice" />
|
<input type="text" name="monetization_pointer" style="width:100%" value="{{.MonetizationPointer}}" placeholder="$wallet.example.com/alice" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{{end}}
|
||||||
|
|
||||||
<div class="option" style="text-align: center; margin-top: 4em;">
|
<div class="option" style="text-align: center; margin-top: 4em;">
|
||||||
<input type="submit" id="save-changes" value="Save changes" />
|
<input type="submit" id="save-changes" value="Save changes" />
|
||||||
|
|
Loading…
Reference in New Issue