When a user marks that another photo should have been marked as explicit:
* The owner of that photo gets a notification about it, which reminds them of
the explicit photo policy.
* The photo's "Flagged" boolean is set (along with the Explicit boolean)
* The 'Edit' page on a Flagged photo shows a red banner above the Explicit
option, explaining that it was flagged. The checkbox text is crossed-out,
with a "no" cursor and title text over - but can still be unchecked.
If the user removes the Explicit flag on a flagged photo and saves it:
* An admin report is generated to notify to take a look too.
* The Explicit flag is cleared as normal
* The Flagged boolean is also cleared on this photo: if they set it back to
Explicit again themselves, the red banner won't appear and it won't notify
again - unless a community member flagged it again!
Also makes some improvements to the admin page:
* On photo reports: show a blurred-out (clickable to reveal) photo on feedback
items about photos.
* Add a "Report" link to the footer of forums.
* Allow some non-admin users to view a private forum and its threads.
* Moderators and approved followers can see it
* Note: the endpoint to follow a forum won't let a user invite themselves
to a private forum. Currently there is no way to approve a user except
by also adding them as a moderator.
* Explore and Newest tabs can show these private forums if viewable.
* A reason must be entered to impersonate a user, and it triggers a
Report and email notification to the admin.
* User gallery pages will show at the top whether the user had granted
you access to their private photos.
* 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
Finish implementing the basic forum features:
* Pinned threads (admin or board owner only)
* Edit Thread settings when you edit the top-most comment.
* NoReply threads remove all the reply buttons.
* Explicit forums and threads are filtered out unless opted-in (admins
always see them).
* Count the unique members who participated in each forum.
* Get the most recently updated thread to show on forum list page.
* Contact/Report page: handle receiving a comment ID to report on.
Implement Likes & Notifications
* Like buttons added to Photos and Profile Pages. Implemented via simple
vanilla JS (likes.js) to make ajax requests to back-end to like/unlike.
* Notifications: for your photo or profile being liked. If you unlike,
the existing notifications about the like are revoked.
* The notifications appear as an alert number in the nav bar and are read
on the User Dashboard. Click to mark a notification as "read" or click
the "mark all as read" button.
Update DeleteUser to scrub likes, notifications, threads, and comments.
* Add the Contact page where users can contact the site admins for feedback or
to report a problematic user, photo or message.
* Reports go into the admin Feedback table.
* Admin nav bar indicates number of unread feedbacks.
* Add "Report" button to profile pages, photo cards, and the top of Direct
Message threads.
Misc changes:
* Send emails out asynchronously for more responsive page loads.