Commit Graph

17 Commits

Author SHA1 Message Date
Noah Petherbridge
ed4a9f8c89 User Forums: Newest Tab, Moderators
* The "Newest" tab of the forum is updated with new filter options.
  * Which forums: All, Official, Community, My List
  * Show: By threads, All posts
  * The option for "Which forums" is saved in the user's preferences and set as
    their default on future visits, similar to the Site Gallery "Whose photos"
    option.
  * So users can subscribe to their favorite forums and always get their latest
    posts easily while filtering out the rest.
* Forum Moderators
  * Add the ability to add and remove moderators for your forum.
  * Users are notified when they are added as a moderator.
  * Moderators can opt themselves out by unfollowing the forum.
* ForumMembership: add unique constraint on user_id,forum_id.
2024-08-21 21:53:35 -07:00
Noah Petherbridge
27540534ad Forum Admin Page for Regular Users
Allow regular (non-admin) users access to the Manage Forums page so they can
create and manage their own forums.

Things that were already working:

* The admin forum page was already anticipating regular LoginRequired credential
* Users only see their owned forums, while admins can see and manage ALL forums

Improvements made to the Forum Admin page:

* Change the title color from admin-red to user-blue.
* Add ability to search (filter) and sort the forums.

Other changes:

* Turn the Forum tab bar into a reusable component.
2024-08-20 19:31:56 -07:00
Noah Petherbridge
9db7343370 Private forums (admin only for now) 2024-05-11 12:23:06 -07:00
Noah Petherbridge
e947a005d9 Dark theme color improvements 2024-04-13 14:55:25 -07:00
Noah Petherbridge
3c0473c633 WIP: Deduplicate threads on Newest forum tab 2024-02-14 21:38:20 -08:00
Noah Petherbridge
cca449090a Forum Search, User Profile Statistics
* Add a Search page to the forums to filter by user ID and find threads and
  replies matching your search terms, with "quoted phrases" and -negation
  support.
* On user profile pages, add an "Activity" box showing statistics on their
  forum threads/comments, likes given/received, photo counts, etc.
* On the "Newest" and Search page for Forums: show an indicator whenever a
  post includes an attached photo.
2024-01-06 16:44:05 -08:00
Noah Petherbridge
70402b42c9 Go to Comment endpoint + notification fixes
* Add endpoint /go/comment?id= that finds the right page that a comment
  can be seen on for the current user and redirects there.
* Resolves issues with link discrepancies in comment notifications, if
  the recipient sees different page numbers depending on blocklist
  status.
* Supports copyable permalinks to any comment on the site reliably.
2024-01-05 22:14:42 -08:00
Noah Petherbridge
481bd0ae61 Deactivate Account; Friends Lists on Profiles
* Add a way for users to temporarily deactivate their accounts, in a
  recoverable way should they decide to return later.
* A deactivated account may log in but have limited options: to
  reactivate their account, permanently delete it, or log out.
* Fix several bugs around the display of comments, messages and
  forum threads for disabled, banned, or blocked users:
  * Messages (inbox and sentbox) will be hidden and the unread indicator
    will not count unread messages the user can't access.
  * Comments on photos and forum posts are hidden, and top-level threads
    on the "Newest" tab will show "[unavailable]" for their text and
    username.
  * Your historical notifications will hide users who are blocked, banned
    or disabled.
* Add a "Friends" tab to user profile pages, to see other users' friends.
  * The page is Certification Required so non-cert users can't easily
    discover any members on the site.
2023-10-22 15:02:24 -07:00
Noah Petherbridge
95212970ff Pager at bottom of Newest tab of forum 2023-09-30 15:29:17 -07:00
Noah Petherbridge
c8d09e6a17 Update admin icon from gavel to peace 2023-08-30 13:30:24 -07:00
Noah Petherbridge
0f6b627156 Spit and polish
* Refactor pagination into a DRY template func
* Better guide users with no profile pic to upload one
2023-06-21 20:46:27 -07:00
Noah Petherbridge
1cc2306cbf Wrap Up Polls Support
* Add the PollVotes table and associated logic.
* Multiple choice polls supported.
* Expiring and non-expiring polls.
* Icons and badges on the forum pages to show posts with polls
* Bugfix: non-explicit users getting SQL errors on Newest Posts page.
2022-12-20 19:15:45 -08:00
8085e092bc Forum Reply Enhancements + Better Pagers
* Enhance user experience replying to a forum thread. An inline reply textarea
  is added to page footers, "Quote" buttons on posts will quote the markdown
  source and focus the reply textarea, and "Reply" buttons will put an
  "@ mention" and focus the reply textarea. Users with scripts disabled will
  still be sent to the regular reply page as before.
* Improve all pagers by adding a "QueryPlus" template function that merges the
  page number with other current query parameters.
* Fix private profile picture avatars not displaying in your Notifications for
  profile pics you're allowed to see.
2022-09-10 12:09:46 -07:00
6c91c67c97 More Private User Avatars
* Users who set their Profile Picture to "friends only" or "private" can have
  their avatar be private all over the website to users who are not their
  friends or not granted access.
* Users who are not your friends see a yellow placeholder avatar, and users
  not granted access to a private Profile Pic sees a purple avatar.
* Admin users see these same placeholder avatars most places too (on search,
  forums, comments, etc.) if the user did not friend or grant the admin. But
  admins ALWAYS see it on their Profile Page directly, for ability to moderate.
* Fix marking Notifications as read: clicking the link in an unread notification
  now will wait on the ajax request to finish before allowing the redirect.
* Update the FAQ
2022-09-08 21:42:20 -07:00
ff0d6f16be Tweaks 2022-08-31 22:20:16 -07:00
c8d7b891c1 Improve Newest Forum page 2022-08-31 22:05:05 -07:00
500456c05e Recent Forum Posts
* Add a "Newest" tab to the Forums landing page to order ALL forum posts
  (comments) by most recent, paginated.
* Add a "Views" cooldown in Redis: viewing the same post multiple times
  within 1 hour doesn't ++ the view count with every page load, per user
  per thread ID.
* Update the paginators to handle unlimited numbers of pages: shows max
  7 page buttons with your current page towards the middle.
* General ability to jump to the "last page" of anything: use a negative
  page size like ?page=-1 and it acts like the last page.
2022-08-30 22:13:57 -07:00