forked from tangled.org/core
this repo has no description

persistent topbar

Changed files
+48 -39
appview
+8 -7
appview/pages/pages.go
···
}
func (p *Pages) Login(w io.Writer, params LoginParams) error {
-
return p.t["user/login"].ExecuteTemplate(w, "layouts/base", params)
+
return p.execute("user/login", w, params)
}
type TimelineParams struct {
-
User *auth.User
+
LoggedInUser *auth.User
}
func (p *Pages) Timeline(w io.Writer, params TimelineParams) error {
···
}
type SettingsParams struct {
-
User *auth.User
-
PubKeys []db.PublicKey
+
LoggedInUser *auth.User
+
PubKeys []db.PublicKey
}
func (p *Pages) Settings(w io.Writer, params SettingsParams) error {
···
}
type KnotsParams struct {
-
User *auth.User
+
LoggedInUser *auth.User
Registrations []db.Registration
}
···
}
type KnotParams struct {
-
User *auth.User
+
LoggedInUser *auth.User
Registration *db.Registration
Members []string
IsOwner bool
···
}
type NewRepoParams struct {
-
User *auth.User
+
LoggedInUser *auth.User
}
func (p *Pages) NewRepo(w io.Writer, params NewRepoParams) error {
···
}
func (p *Pages) RepoIndexPage(w io.Writer, params RepoIndexParams) error {
+
return p.execute("repo/index", w, params)
}
+1 -3
appview/pages/templates/knot.html
···
{{define "title"}}{{ .Registration.Domain }}{{end}}
{{define "content"}}
-
<a href="/">back to timeline</a>
-
<a href="/knots">back to all knots</a>
<h1>{{.Registration.Domain}}</h1>
<p>
<code>
opened by: {{.Registration.ByDid}}
-
{{ if eq $.User.Did $.Registration.ByDid }}
+
{{ if eq $.LoggedInUser.Did $.Registration.ByDid }}
(you)
{{ end }}
</code><br>
-1
appview/pages/templates/knots.html
···
{{define "title"}}knots{{end}}
{{define "content"}}
-
<a href="/">back to timeline</a>
<h1>knots</h1>
<h2>register</h2>
+5
appview/pages/templates/layouts/base.html
···
<title>{{block "title" .}}{{end}}</title>
</head>
<body>
+
<header class="topbar">
+
{{ block "topbar" .}}
+
{{ template "layouts/topbar" . }}
+
{{end}}
+
</header>
<main class="content">{{block "content" .}}{{end}}</main>
</body>
</html>
+18
appview/pages/templates/layouts/topbar.html
···
+
{{ define "layouts/topbar" }}
+
+
{{ with .LoggedInUser }}
+
<nav>
+
<a href="/settings">settings</a>&nbsp;·
+
<a href="/knots">knots</a>&nbsp;·
+
<a href="/repo/new">add repos</a>&nbsp;·
+
{{ if .Handle }}
+
<a href="/@{{ .Handle }}">my profile</a>
+
{{ else }}
+
<a href="/{{ .Did }}">my profile</a>
+
{{ end }}
+
</nav>
+
{{ else }}
+
<button onclick="window.location.href='/login'">login</button>
+
{{ end }}
+
+
{{ end }}
+1 -2
appview/pages/templates/repo/branches.html
···
{{ define "title" }}
-
branches | {{ .RepoInfo.OwnerWithAt }} /
-
{{ .RepoInfo.Name }}
+
branches | {{ .RepoInfo.FullName }}
{{ end }}
{{ define "content" }}
+1 -1
appview/pages/templates/repo/index.html
···
-
{{define "title"}} {{ .RepoInfo.FullName }} {{end}}
+
{{define "title"}} {{ .RepoInfo.FullName }} {{ end}}
{{define "content"}}
+2 -2
appview/pages/templates/repo/log.html
···
-
{{define "title"}} log | {{ .RepoInfo.OwnerWithAt }} / {{ .RepoInfo.Name }} {{end}}
+
{{define "title"}} log | {{ .RepoInfo.FullName }} {{end}}
{{define "content"}}
<h1>
-
log | {{ .RepoInfo.OwnerWithAt }} / {{ .RepoInfo.Name }}
+
log | {{ .RepoInfo.FullName }}
</h1>
<main>
<div class="log">
+3 -4
appview/pages/templates/settings/keys.html
···
{{define "title"}}settings{{end}}
{{define "content"}}
-
<a href="/">back to timeline</a>
<h1>settings</h1>
<h2>profile</h2>
-
<p><strong>handle:</strong> {{.User.Handle}}</p>
-
<p><strong>did:</strong> {{.User.Did}}</p>
-
<p><strong>pds:</strong> {{.User.Pds}}</p>
+
<p><strong>handle:</strong> {{.LoggedInUser.Handle}}</p>
+
<p><strong>did:</strong> {{.LoggedInUser.Did}}</p>
+
<p><strong>pds:</strong> {{.LoggedInUser.Pds}}</p>
<h2>ssh keys</h2>
<form hx-put="/settings/keys">
-11
appview/pages/templates/timeline.html
···
{{define "content"}}
<h1>timeline</h1>
-
-
{{ if .User }}
-
<p>logged in as {{ .User.Handle }}</p>
-
<a href="/settings">settings</a>
-
<a href="/knots">knots</a>
-
<a href="/repo/new">add repos</a>
-
<a href="/@{{ .User.Handle }}">my profile</a>
-
{{ else }}
-
<p>not logged in</p>
-
<a href="/login">login</a>
-
{{ end }}
{{end}}
+3 -1
appview/pages/templates/user/login.html
···
-
{{ define "title" }}login{{end}} {{define "content"}}
+
{{ define "title" }}login{{end}}
+
+
{{define "content"}}
<h1>login</h1>
<form method="POST" action="/login">
<label for="handle">handle</label>
-1
appview/pages/templates/user/profile.html
···
{{define "title"}}{{ or .UserHandle .UserDid }}{{end}}
{{define "content"}}
-
<a href="/">back to timeline</a>
<h1>{{ or .UserHandle .UserDid }} profile</h1>
<h3>repos</h3>
+6 -6
appview/state/state.go
···
func (s *State) Timeline(w http.ResponseWriter, r *http.Request) {
user := s.auth.GetUser(r)
s.pages.Timeline(w, pages.TimelineParams{
-
User: user,
+
LoggedInUser: user,
})
return
}
···
}
s.pages.Settings(w, pages.SettingsParams{
-
User: user,
-
PubKeys: pubKeys,
+
LoggedInUser: user,
+
PubKeys: pubKeys,
})
}
···
isOwner := err == nil && ok
p := pages.KnotParams{
-
User: user,
+
LoggedInUser: user,
Registration: reg,
Members: members,
IsOwner: isOwner,
···
}
s.pages.Knots(w, pages.KnotsParams{
-
User: user,
+
LoggedInUser: user,
Registrations: registrations,
})
}
···
switch r.Method {
case http.MethodGet:
s.pages.NewRepo(w, pages.NewRepoParams{
-
User: s.auth.GetUser(r),
+
LoggedInUser: s.auth.GetUser(r),
})
case http.MethodPost:
user := s.auth.GetUser(r)