add option to switch to apple maps links

Ted Unangst 5 years ago
parent 8f9d7a609f
commit ab4cd50bd2

@ -2,6 +2,8 @@ changelog
-- next
+ Option to switch map links to Apple.
-- 0.8.2
++ Import command to preserve those embarssassing old posts from Twitter.

@ -164,6 +164,15 @@ It also allows the import of external objects via URL, either individual
posts or actor URLs, in which case their recent outbox is imported.
.Ss Account
It's all about you.
.Pp
Some options to customize the site appearance:
.Bl -tag -width skinny
.It skinny
Use a narrower column for the main display.
.It apple
Prefer Apple links for maps.
The default is OpenStreetMap.
.El
.Sh ENVIRONMENT
.Nm
is designed to work with most browsers, but for optimal results it is

@ -48,6 +48,7 @@ type WhatAbout struct {
type UserOptions struct {
SkinnyCSS bool `json:",omitempty"`
Avatar string `json:",omitempty"`
MapLink string `json:",omitempty"`
}
type KeyInfo struct {

@ -10,6 +10,8 @@
<p><textarea name="whatabout">{{ .User.About }}</textarea>
<p><label class="button" for="skinny">skinny layout:</label>
<input tabindex=1 type="checkbox" id="skinny" name="skinny" value="skinny" {{ if .User.Options.SkinnyCSS }}checked{{ end }}><span></span>
<p><label class="button" for="maps">apple map links:</label>
<input tabindex=1 type="checkbox" id="maps" name="maps" value="apple" {{ if eq "apple" .User.Options.MapLink }}checked{{ end }}><span></span>
<p><button>update settings</button>
</form>
</div>

@ -1,6 +1,7 @@
<article class="honk {{ .Honk.Style }}" data-convoy="{{ .Honk.Convoy }}">
{{ $bonkcsrf := .BonkCSRF }}
{{ $IsPreview := .IsPreview }}
{{ $maplink := .MapLink }}
{{ with .Honk }}
<header>
{{ if $bonkcsrf }}
@ -60,7 +61,7 @@ in reply to: <a href="{{ .RID }}" rel=noreferrer>{{ .RID }}</a>
{{ if .Duration }}<br>Duration: {{ .Duration }}{{ end }}
{{ end }}
{{ with .Place }}
<p>Location: {{ with .Url }}<a href="{{ . }}" rel=noreferrer>{{ end }}{{ .Name }}{{ if .Url }}</a>{{ end }}{{ if or .Latitude .Longitude }} <a href="https://www.openstreetmap.org/?mlat={{ .Latitude }}&mlon={{ .Longitude}}#map=16/{{ .Latitude }}/{{ .Longitude }}" rel=noreferrer>{{ .Latitude }} {{ .Longitude }}</a>{{ end }}
<p>Location: {{ with .Url }}<a href="{{ . }}" rel=noreferrer>{{ end }}{{ .Name }}{{ if .Url }}</a>{{ end }}{{ if or .Latitude .Longitude }} <a href="{{ if eq $maplink "apple" }}https://maps.apple.com/?q={{ or .Name "here" }}&z=16&ll={{ .Latitude }},{{ .Longitude }}{{ else }}https://www.openstreetmap.org/?mlat={{ .Latitude }}&mlon={{ .Longitude}}#map=16/{{ .Latitude }}/{{ .Longitude }}{{ end }}" rel=noreferrer>{{ .Latitude }} {{ .Longitude }}</a>{{ end }}
{{ end }}
{{ range .Donks }}
{{ if .Local }}

@ -1,8 +1,9 @@
<div>{{ .TopHID }}</div>
{{ $BonkCSRF := .HonkCSRF }}
{{ $MapLink := .MapLink }}
<div><p>{{ .ServerMessage }}</div>
<div>
{{ range .Honks }}
{{ template "honk.html" map "Honk" . "BonkCSRF" $BonkCSRF }}
{{ template "honk.html" map "Honk" . "MapLink" .MapLink "BonkCSRF" $BonkCSRF }}
{{ end }}
</div>

@ -22,8 +22,9 @@
<div>
{{ $BonkCSRF := .HonkCSRF }}
{{ $IsPreview := .IsPreview }}
{{ $MapLink := .MapLink }}
{{ range .Honks }}
{{ template "honk.html" map "Honk" . "BonkCSRF" $BonkCSRF "IsPreview" $IsPreview }}
{{ template "honk.html" map "Honk" . "MapLink" $MapLink "BonkCSRF" $BonkCSRF "IsPreview" $IsPreview }}
{{ end }}
</div>
</div>

@ -59,6 +59,18 @@ func getuserstyle(u *login.UserInfo) template.CSS {
return ""
}
func getmaplink(u *login.UserInfo) string {
if u == nil {
return "osm"
}
user, _ := butwhatabout(u.Username)
ml := user.Options.MapLink
if ml == "" {
ml = "osm"
}
return ml
}
func getInfo(r *http.Request) map[string]interface{} {
u := login.GetUserInfo(r)
templinfo := make(map[string]interface{})
@ -1032,6 +1044,7 @@ func honkpage(w http.ResponseWriter, u *login.UserInfo, honks []*Honk, templinfo
}
reverbolate(userid, honks)
templinfo["Honks"] = honks
templinfo["MapLink"] = getmaplink(u)
if templinfo["TopHID"] == nil {
if len(honks) > 0 {
templinfo["TopHID"] = honks[0].ID
@ -1056,6 +1069,9 @@ func saveuser(w http.ResponseWriter, r *http.Request) {
if r.FormValue("skinny") == "skinny" {
options.SkinnyCSS = true
}
if r.FormValue("maps") == "apple" {
options.MapLink = "apple"
}
j, err := jsonify(options)
if err == nil {
_, err = db.Exec("update users set about = ?, options = ? where username = ?", whatabout, j, u.Username)
@ -1271,6 +1287,7 @@ func edithonkpage(w http.ResponseWriter, r *http.Request) {
templinfo := getInfo(r)
templinfo["HonkCSRF"] = login.GetCSRF("honkhonk", r)
templinfo["Honks"] = honks
templinfo["MapLink"] = getmaplink(u)
templinfo["Noise"] = noise
templinfo["SavedPlace"] = honk.Place
templinfo["ServerMessage"] = "honk edit"
@ -1557,6 +1574,7 @@ func submithonk(w http.ResponseWriter, r *http.Request, isAPI bool) {
templinfo := getInfo(r)
templinfo["HonkCSRF"] = login.GetCSRF("honkhonk", r)
templinfo["Honks"] = honks
templinfo["MapLink"] = getmaplink(userinfo)
templinfo["InReplyTo"] = r.FormValue("rid")
templinfo["Noise"] = r.FormValue("noise")
templinfo["SavedFile"] = donkxid
@ -2027,6 +2045,7 @@ func webhydra(w http.ResponseWriter, r *http.Request) {
}
reverbolate(userid, honks)
templinfo["Honks"] = honks
templinfo["MapLink"] = getmaplink(u)
w.Header().Set("Content-Type", "text/html; charset=utf-8")
err := readviews.Execute(w, "honkfrags.html", templinfo)
if err != nil {

Loading…
Cancel
Save