website/web/templates/forum/board_index.html
Noah Petherbridge eb85b2e090 Forum Memberships & My List
* Add "Browse" tab to the forums to view them all.
  * Text search
  * Show all, official, community, or "My List" forums.
* Add a Follow/Unfollow button into the header bar of forums to add it to
  "My List"
* On the Categories page, a special "My List" category appears at the top
  if the user follows categories, with their follows in alphabetical order.
* On the Categories & Browse pages: forums you follow will have a green
  bookmark icon by their name.

Permissions:

* The forum owner is able to Delete comments by others, but not Edit.

Notes:

* Currently a max limit of 100 follow forums (no pagination yet).
2024-08-20 21:26:53 -07:00

176 lines
6.7 KiB
HTML

{{define "title"}}{{.Forum.Title}}{{end}}
{{define "content"}}
<div class="block">
<section class="hero is-light is-success">
<div class="hero-body">
<div class="container">
<div class="level">
<div class="level-left mb-4">
<h1 class="title">
<span class="icon mr-4"><i class="fa fa-comments"></i></span>
<span>{{.Forum.Title}}</span>
</h1>
</div>
{{if .FeatureUserForumsEnabled}}
<div class="level-right">
<!-- Follow/Unfollow This Forum -->
<form action="/forum/subscribe" method="POST" class="is-inline">
{{InputCSRF}}
<input type="hidden" name="fragment" value="{{.Forum.Fragment}}">
{{if .IsForumSubscribed}}
<button type="submit" class="button"
name="intent" value="unfollow"
onclick="return confirm('Do you want to remove this forum from your list?')">
<span class="icon"><i class="fa fa-bookmark"></i></span>
<span>Followed</span>
</button>
{{else}}
<button type="submit" class="button"
name="intent" value="follow">
<span class="icon"><i class="fa-regular fa-bookmark"></i></span>
<span>Follow</span>
</button>
{{end}}
</form>
</div>
{{end}}
</div>
</div>
</div>
</section>
</div>
{{$Root := .}}
<div class="block p-4">
<div class="columns">
<div class="column">
<nav class="breadcrumb" aria-label="breadcrumbs">
<ul>
<li><a href="/forum">Forums</a></li>
<li class="is-active">
<a href="{{.Request.URL.Path}}" aria-current="page">{{.Forum.Title}}</a>
</li>
</ul>
</nav>
</div>
<div class="column is-narrow">
{{if or .CurrentUser.IsAdmin (not .Forum.Privileged) (eq .Forum.OwnerID .CurrentUser.ID)}}
<a href="/forum/post?to={{.Forum.Fragment}}" class="button is-info">
<span class="icon"><i class="fa fa-plus"></i></span>
<span>New Thread</span>
</a>
{{end}}
</div>
</div>
</div>
<p class="block p-2">
Found <strong>{{.Pager.Total}}</strong> post{{Pluralize64 .Pager.Total}} on this forum
(page {{.Pager.Page}} of {{.Pager.Pages}}).
</p>
{{if .Forum.Privileged}}
<div class="block p-2 notification is-warning is-light">
<i class="fa fa-peace mr-1"></i>
Only moderators may create new threads on this forum. You may be able to reply to threads here.
</div>
{{end}}
<div class="block p-2">
{{SimplePager .Pager}}
</div>
{{$Root := .}}
<div class="block p-2">
{{range .Threads}}
{{$Stats := $Root.ThreadMap.Get .ID}}
<div class="box has-background-success-light has-text-dark">
<div class="columns">
<div class="column is-2 has-text-centered pt-0 pb-1">
<div>
<a href="/u/{{.Comment.User.Username}}">
{{template "avatar-64x64" .Comment.User}}
</a>
</div>
<a href="/u/{{.Comment.User.Username}}">{{.Comment.User.NameOrUsername}}</a>
</div>
<div class="column content pt-1 pb-0">
<a href="/forum/thread/{{.ID}}">
<h2 class="is-size-4 pt-0 has-text-dark">
{{if .Pinned}}<sup class="fa fa-thumbtack has-text-success mr-2 is-size-6" title="Pinned"></sup>{{end}}
{{or .Title "Untitled"}}
</h2>
{{TrimEllipses .Comment.Message 256}}
</a>
<hr class="has-background-success my-2">
<div>
{{if .Pinned}}
<span class="tag is-success is-light mr-2">
<span class="icon"><i class="fa fa-thumbtack"></i></span>
<span>Pinned</span>
</span>
{{end}}
{{if .PollID}}
<span class="tag is-info is-light mr-2">
<span class="icon"><i class="fa fa-poll"></i></span>
<span>Poll</span>
</span>
{{end}}
{{if .Explicit}}
<span class="tag is-danger is-light mr-2">
<span class="icon"><i class="fa fa-fire"></i></span>
<span>NSFW</span>
</span>
{{end}}
{{if .NoReply}}
<span class="tag is-warning is-light mr-2" title="This thread can not be replied to.">
<span class="icon"><i class="fa fa-ban"></i></span>
<span>No Reply</span>
</span>
{{end}}
<em title="{{.UpdatedAt.Format "2006-01-02 15:04:05"}}">Updated {{SincePrettyCoarse .UpdatedAt}} ago</em>
</div>
</div>
<div class="column is-narrow pb-1 pt-0 px-1">
<div class="columns is-mobile">
<div class="column has-text-centered pr-1">
<div class="box p-2">
<p class="is-size-7">Replies</p>
{{if $Stats}}
{{$Stats.Replies}}
{{else}}
err
{{end}}
</div>
</div>
<div class="column has-text-centered pl-1">
<div class="box p-2">
<p class="is-size-7">Views</p>
{{if $Stats}}
{{$Stats.Views}}
{{else}}
err
{{end}}
</div>
</div>
</div>
</div>
</div>
</div>
{{end}}
</div>
<div class="block p-2">
{{SimplePager .Pager}}
</div>
{{end}}