189 lines
11 KiB
HTML
189 lines
11 KiB
HTML
<ul class="flex items-center space-x-5 text-sm text-gray-500 mb-0">
|
|
|
|
{% if p.realbody(v) and '/post/' not in request.full_path %}
|
|
<li>
|
|
<button class="hover:text-gray-400" onclick="expandText('{{p.id}}')">
|
|
<i class="fas fa-expand-alt fa-fw text-expand-icon-{{p.id}}"></i>
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% if '/post/' not in request.full_path %}
|
|
<li>
|
|
<a {% if v %}href="{{p.permalink}}"{% else %}href="/logged_out{{p.permalink}}"{% endif %} class="text-gray-500 hover:text-gray-400">
|
|
<i class="fas fa-comment-dots fa-fw mr-2"></i>{{ p.comment_count }} comment{{ '' if p.comment_count == 1 else 's' }}
|
|
<span class="text-info hidden new-comments"></span>
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% if '/post/' not in request.full_path %}
|
|
<li>
|
|
<span>
|
|
<i class="fas fa-eye fa-fw mr-2"></i>{{ p.views }}
|
|
</span>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% if v and (v.id==p.author_id or v.admin_level==6 and v.id in [1,28,995,2513]) and '/post/' in request.full_path %}
|
|
<li class="hidden md:inline-block">
|
|
<button class="hover:text-gray-400" onclick="togglePostEdit('{{p.id}}')">
|
|
<i class="fas fa-pencil fa-fw mr-2"></i>Edit
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% if v and v.id==p.author_id %}
|
|
{% if p.private %}
|
|
<li class="hidden md:inline-block">
|
|
<button class="hover:text-gray-400" onclick="post_toast('/publish/{{p.id}}')">
|
|
<i class="fas fa-globe fa-fw mr-2"></i>Publish
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
{% if v %}
|
|
<li class="hidden md:inline-block">
|
|
<button class="hover:text-gray-400" data-bs-toggle="modal" data-bs-target="#awardModal" onclick="awardModal('/post/{{p.id}}/awards')">
|
|
<i class="fas fa-gift fa-fw mr-2"></i>Gift Award
|
|
</button>
|
|
</li>
|
|
<li id="subscribe-{{p.id}}" class="{% if p.id in v.subscribed_idlist() %}hidden{% endif %}">
|
|
<button class="hover:text-gray-400" onclick="post_toast2('/subscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')">
|
|
<i class="fas fa-bell fa-fw mr-2"></i>Subscribe
|
|
</button>
|
|
</li>
|
|
<li id="unsubscribe-{{p.id}}" class="{% if p.id not in v.subscribed_idlist() %}hidden{% endif %}">
|
|
<button class="hover:text-gray-400" onclick="post_toast2('/unsubscribe/{{p.id}}','subscribe-{{p.id}}','unsubscribe-{{p.id}}')">
|
|
<i class="fas fa-bell-slash fa-fw mr-2"></i>Unsubscribe
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
<!-- Does not require auth -->
|
|
<li class="hidden md:inline-block">
|
|
<a href="/votes?link={{p.fullname}}" class="text-gray-500 hover:text-gray-400">
|
|
<i class="fas fa-poll fa-fw mr-2"></i>Votes
|
|
</a>
|
|
</li>
|
|
<li class="hidden md:inline-block">
|
|
<div class="dropdown">
|
|
<button type="button" id="dropdownPostActions" data-bs-toggle="dropdown" aria-expanded="false" data-bs-auto-close="outside">
|
|
<i class="fas fa-ellipsis-h fa-fw"></i>
|
|
</button>
|
|
<ul class="dropdown-menu w-56 bg-gray-900 rounded-md shadow-lg" aria-labelledby="dropdownPostActions">
|
|
|
|
{% if v %}
|
|
<!-- Requires auth and admin and author -->
|
|
{% if v.admin_level >=3 or v.id == p.author.id and v.paid_dues %}
|
|
<li>
|
|
<hr class="mt-2 mb-1.5 border-t border-black h-1 shadow-inset-t-white-05"/>
|
|
</li>
|
|
<li class="{% if p.club %}hidden{% endif %}">
|
|
<button id="club-{{p.id}}" class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}')">
|
|
<i class="fas fa-eye-slash fa-sm fa-fw mr-4"></i>Mark club
|
|
</button>
|
|
</li>
|
|
<li class="{% if not p.club %}hidden{% endif %}">
|
|
<button id="unclub-{{p.id}}" class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/toggle_club/{{p.id}}','club-{{p.id}}','unclub-{{p.id}}')"><i class="fas fa-eye fa-sm fa-fw mr-4"></i>Unmark club
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
<!-- Requires admin and post has been reported -->
|
|
{% if v.admin_level >=3 %}
|
|
<!-- Requires non author -->
|
|
{% if v.id != p.author.id %}
|
|
<li id="remove-{{p.id}}" class="{% if p.is_banned %}hidden{% endif %} text-red-600">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-red-600 hover:text-white bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/ban_post/{{p.id}}','remove-{{p.id}}','approve-{{p.id}}')">
|
|
<i class="fas fa-ban fa-sm fa-fw mr-4"></i>Remove
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
<li id="approve-{{p.id}}" class="{% if not p.is_banned %}hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/unban_post/{{p.id}}','remove-{{p.id}}','approve-{{p.id}}')">
|
|
<i class="fas fa-check fa-sm fa-fw mr-4"></i>Approve
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
<!-- Requires admin or author -->
|
|
{% if v.id == p.author_id or v.admin_level >= 3 %}
|
|
<li id="mark-{{p.id}}" class="{% if p.over_18 %}hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-red-600 hover:text-white bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/toggle_post_nsfw/{{p.id}}','mark-{{p.id}}','unmark-{{p.id}}')">
|
|
<i class="fas fa-eye-evil fa-sm fa-fw mr-4"></i>Mark +18
|
|
</button>
|
|
</li>
|
|
<li id="unmark-{{p.id}}" class="{% if not p.over_18 %}hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/toggle_post_nsfw/{{p.id}}','mark-{{p.id}}','unmark-{{p.id}}')">
|
|
<i class="fas fa-eye-evil fa-sm fa-fw mr-4"></i>Unmark +18
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% if v.id != p.author_id and v.admin_level == 1 %}
|
|
<li id="sex-user-{{p.id}}" class="{% if p.is_blocking %}hidden{% endif %} text-red-600">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-red-600 hover:text-white bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/settings/block?username={{p.author.username}}','sex-user-{{p.id}}','unsex-user-{{p.id}}')">
|
|
<i class="fas fa-user-slash fa-sm fa-fw mr-4"></i>Ban user
|
|
</button>
|
|
</li>
|
|
<li id="unsex-user-{{p.id}}" class="{% if not p.is_blocking %}hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/settings/unblock?username={{p.author.username}}','sex-user-{{p.id}}','unsex-user-{{p.id}}')">
|
|
<i class="fas fa-user-check fa-sm fa-fw mr-4"></i>Unban user
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
|
|
{% if v.admin_level >=3 and v.id != p.author_id %}
|
|
<li id="ban-{{p.id}}" class="{% if p.author.is_suspended %}hidden{% endif %} text-red-600">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-red-600 hover:text-white bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" data-bs-toggle="modal" data-bs-target="#banModal" onclick="banModal('/post/{{p.id}}', '{{ p.author.id }}', '{{p.author.username}}')">
|
|
<i class="fas fa-user-slash fa-sm fa-fw mr-4"></i>Ban user
|
|
</button>
|
|
</li>
|
|
<li id="unban-{{p.id}}" class="{% if not p.author.is_suspended %}hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" id="unexile2-user-{{p.id}}" onclick="post_toast2('/unban_user/{{p.author_id}}','ban-{{p.id}}','unban-{{p.id}}')">
|
|
<i class="fas fa-user-check fa-sm fa-fw mr-4"></i>Unban user
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
|
|
<!-- Requires super admin and app -->
|
|
{% if v.admin_level >= 4 and p.oauth_app %}
|
|
<li>
|
|
<a class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" href="{{p.oauth_app.permalink}}">
|
|
<i class="fas fa-code fa-sm fa-fw mr-4"></i>API App
|
|
</a>
|
|
</li>
|
|
{% endif %}
|
|
<!-- Requires not author -->
|
|
{% if not v.id==p.author_id and not p.award_count('ghosts') %}
|
|
<li>
|
|
<hr class="mt-2 mb-1.5 border-t border-black h-1 shadow-inset-t-white-05"/>
|
|
</li>
|
|
<li id="unblock-{{p.id}}" class="{% if not p.is_blocking %} hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-green-800 hover:to-green-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-green-800 focus:to-green-700" onclick="post_toast2('/settings/unblock?username={{p.author.username}}','block-{{p.id}}','unblock-{{p.id}}')">
|
|
<i class="fas fa-user-check fa-sm fa-fw mr-4"></i>Unblock user
|
|
</button>
|
|
</li>
|
|
<li id="prompt-{{p.id}}" class="blockuser hidden">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="post_toast2('/settings/block?username={{p.author.username}}','prompt-{{p.id}}','unblock-{{p.id}}')">
|
|
<i class="fas fa-question-circle fa-sm fa-fw mr-4"></i>Are you sure?
|
|
</button>
|
|
</li>
|
|
<li id="block-{{p.id}}" class="text-red-600 blockuser{% if p.is_blocking %} hidden{% endif %}">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700" onclick="document.getElementById('block-{{p.id}}').classList.toggle('hidden');document.getElementById('prompt-{{p.id}}').classList.toggle('hidden');">
|
|
<i class="fas fa-user-slash fa-sm fa-fw mr-4"></i>Block user
|
|
</button>
|
|
</li>
|
|
{% endif %}
|
|
<li>
|
|
<hr class="mt-2 mb-1.5 border-t border-black h-1 shadow-inset-t-white-05"/>
|
|
</li>
|
|
<li class="text-red-600">
|
|
<button class="dropdown-item block w-full text-left px-4 py-2 text-sm text-gray-200 bg-gradient-to-t hover:from-red-800 hover:to-red-700 hover:shadow-inner focus:shadow-inner focus:bg-gradient-to-t focus:from-red-800 focus:to-red-700"data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" onclick="report_postModal('{{p.id}}')">
|
|
<i class="fas fa-flag fa-sm fa-fw mr-4"></i>Report
|
|
</button>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
{% endif %}
|
|
</ul> |