Merge branch 'frost' of https://github.com/Aevann1/Drama into frost
commit
0841968ac0
|
@ -450,6 +450,7 @@ class User(Base):
|
|||
def json_popover(self, v):
|
||||
data = {'username': self.username,
|
||||
'url': self.url,
|
||||
'id': self.id,
|
||||
'profile_url': self.profile_url,
|
||||
'bannerurl': self.banner_url,
|
||||
'bio_html': self.bio_html_eager,
|
||||
|
|
|
@ -100,7 +100,7 @@ def settings_profile_post(v):
|
|||
|
||||
elif request.values.get("compact", v.compact) != v.compact:
|
||||
updated = True
|
||||
v.teddit = request.values.get("compact", None) == 'true'
|
||||
v.compact = request.values.get("compact", None) == 'true'
|
||||
|
||||
elif request.values.get("nitter", v.nitter) != v.nitter:
|
||||
updated = True
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -250,7 +250,7 @@
|
|||
}
|
||||
|
||||
.theme-evergreen {
|
||||
--color-primary: 220, 38, 38;
|
||||
--color-primary: 87,138,157;
|
||||
--color-100: 244,246,244;
|
||||
--color-200: 229,235,231;
|
||||
--color-300: 209,219,213;
|
||||
|
@ -275,11 +275,6 @@
|
|||
--color-900: 40,31,17;
|
||||
}
|
||||
|
||||
/* ----------------------- VARIABLES --------------------- */
|
||||
/*:root {
|
||||
--color-primary: 220, 38, 38;
|
||||
}*/
|
||||
|
||||
/* ---------------- RESPONSIVE UTILITIES ----------------- */
|
||||
@responsive {
|
||||
.text-shadow {
|
||||
|
@ -468,6 +463,11 @@
|
|||
color: @apply text-white;
|
||||
}
|
||||
|
||||
/* ---------------------- POPOVER ----------------------- */
|
||||
.popover {
|
||||
@apply rounded-md w-96 shadow-lg overflow-hidden border-none bg-gray-100 dark:bg-gray-900;
|
||||
}
|
||||
|
||||
/* ----------------------- EMOJI ------------------------ */
|
||||
img.emoji {
|
||||
width: 30px;
|
||||
|
@ -486,9 +486,3 @@
|
|||
@apply inline-block object-contain
|
||||
}
|
||||
|
||||
.agendaposter {
|
||||
text-transform: uppercase !important;
|
||||
}
|
||||
code {
|
||||
text-transform: none !important;
|
||||
}
|
|
@ -1,36 +1,55 @@
|
|||
<div style="display:none" id="popover">
|
||||
<div class="popover-user-profile dark:bg-gray-700 text-black dark:text-gray-100" role="tooltip">
|
||||
<img loading="lazy" class="pop-banner w-100 h-32 object-cover">
|
||||
<div class="flex items-end px-3 -mt-12 mb-3">
|
||||
<img loading="lazy" class="pop-picture h-20 w-20 rounded-sm p-[3px] bg-white dark:bg-gray-900 shadow-sm">
|
||||
<div class="px-3 truncate">
|
||||
<div class="relative popover-user-profile bg-gray-100 dark:bg-gray-900" role="tooltip">
|
||||
<img loading="lazy" class="pop-banner w-full h-28 object-cover">
|
||||
<div class="flex items-end px-4 -mt-10">
|
||||
<img loading="lazy" class="pop-picture h-24 w-24 rounded-sm p-[3px] bg-white dark:bg-gray-900 shadow-sm">
|
||||
<div class="pl-3 truncate mb-1">
|
||||
<h5 class="pop-username truncate ellipsis"></h5>
|
||||
<div class="text-sm text-gray-500 flex items-center leading-4">
|
||||
<span>
|
||||
#<span class="pop-uid"></span>
|
||||
</span>
|
||||
<strong class="mx-1">·</strong>
|
||||
<span>
|
||||
<span class="pop-coins"></span>
|
||||
coins
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="px-3">
|
||||
</div>
|
||||
<div class="hidden px-4">
|
||||
<span class="pop-bio popover-bio"></span>
|
||||
</div>
|
||||
|
||||
<div class="pop-badges ml-3 mr-3 my-2">
|
||||
<div class="pop-badges p-4">
|
||||
</div>
|
||||
|
||||
<div class="border-t flex items-center p-3 gap-3 text-sm">
|
||||
<div class="border-t border-gray-300 dark:border-gray-800 flex items-center p-4 gap-2 text-sm">
|
||||
<span>
|
||||
<strong class="pop-postcount"></strong>
|
||||
<span class="text-gray-500">posts</span>
|
||||
</span>
|
||||
<span class="ml-3">
|
||||
<span>
|
||||
<strong class="pop-commentcount"></strong>
|
||||
<span class="text-gray-500">comments</span>
|
||||
</span>
|
||||
<span class="ml-3">
|
||||
<strong class="pop-coins"></strong>
|
||||
<span class="text-gray-500">coins</span>
|
||||
</span>
|
||||
<a target="_blank" class="pop-viewmore ml-auto text-decoration-none">
|
||||
View
|
||||
<i class="fas fa-arrow-right fa-sm fa-fw px-1"></i>
|
||||
<i class="fas fa-arrow-alt-right fa-sm fa-fw px-1"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{% if v %}
|
||||
<!-- Actionable buttons -->
|
||||
<div class="flex items-center space-x-2 absolute top-2 right-3" id="popoverWrapper">
|
||||
<!-- <a href="#" class="btn btn-gray" data-bs-toggle="modal" data-bs-target="#giftCoinsModal">
|
||||
<i class="fas fa-gift fa-fw fa-sm"></i>
|
||||
</a> -->
|
||||
<button class="btn btn-gray pop-dm-button" data-bs-toggle="modal" data-bs-target="#directMessageModal">
|
||||
<i class="fas fa-paper-plane fa-fw fa-sm mr-2"></i>
|
||||
Message
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
|
@ -71,13 +71,13 @@
|
|||
'icon': 'fa-republican',
|
||||
'title': 'Agenda Posters',
|
||||
'description': 'Users with agenda poster mode',
|
||||
'link': '/admin/agendaposters'
|
||||
'link': '/agendaposters'
|
||||
},
|
||||
{
|
||||
'icon': 'fa-seedling',
|
||||
'title': 'Grass Award',
|
||||
'description': 'Users with active grass award',
|
||||
'link': '/admin/grassed'
|
||||
'link': '/grassed'
|
||||
},
|
||||
{
|
||||
'icon': 'fa-users',
|
||||
|
|
|
@ -2,16 +2,18 @@
|
|||
{% if v %}
|
||||
<div class="flex items-center justify-center h-6 bg-gray-900 w-full">
|
||||
<span class="text-rainbow text-xs text-gray-200">
|
||||
💖🌈 rdrama.net stands with the LGBTQ+ community.
|
||||
<span class="font-medium hidden md:inline-block">Help keep our community inclusive and welcoming. </span>
|
||||
💖🌈 rdrama.net: <strong>/r/SubredditDrama official site.</strong>
|
||||
<span class="font-medium hidden lg:inline-block">
|
||||
We proudly stand with the LGBTQ+ community! Help keep our community inclusive and welcoming.
|
||||
</span>
|
||||
<strong><a href="https://secure.transequality.org/site/Donation2?df_id=1480">Learn more!</a></strong>
|
||||
</span>
|
||||
</div>
|
||||
{% else %}
|
||||
<div class="flex items-center justify-center h-6 bg-primary w-full">
|
||||
<span class="text-rainbow text-xs text-gray-200">
|
||||
✋😕 You are viewing a cached version of rdrama.net
|
||||
<span class="font-medium hidden md:inline-block">Join the community to see the latest content. </span>
|
||||
✋😕 Welcome to rdrama.net: <strong>/r/SubredditDrama official site.</strong>
|
||||
<span class="font-medium hidden md:inline-block">You are viewing a cached version of rdrama.net. </span>
|
||||
<strong><a href="/login">Login!</a></strong>
|
||||
</span>
|
||||
</div>
|
||||
|
|
|
@ -495,29 +495,6 @@
|
|||
text-shadow:-1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black;
|
||||
}
|
||||
|
||||
.popover {
|
||||
max-width: 50%;
|
||||
box-shadow: 0 1rem 3rem rgba(0, 0, 0, .175);
|
||||
border-color: #dadada;
|
||||
}
|
||||
|
||||
.popover-arrow {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.popover-user-profile {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
padding: 0;
|
||||
background: var(--gray-600);
|
||||
}
|
||||
|
||||
.popover-body {
|
||||
padding: 0;
|
||||
border-radius: .25rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.avatar-72 {
|
||||
width: 72px;
|
||||
height: 72px;
|
||||
|
|
|
@ -192,9 +192,9 @@
|
|||
|
||||
{% block stylesheets %}
|
||||
|
||||
<link rel="stylesheet" href="/static/assets/CHRISTMAS/css/main.css?a=7">
|
||||
<link rel="stylesheet" href="/static/assets/CHRISTMAS/css/main.css?a=10">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?a=7">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?a=15">
|
||||
|
||||
{% if v %}
|
||||
<style>:root{--primary:#dc2626}</style>
|
||||
|
@ -296,6 +296,7 @@
|
|||
|
||||
{% if v %}
|
||||
{% include "CHRISTMAS/modals/ModalThemePicker.html" %}
|
||||
{% include "CHRISTMAS/modals/ModalDirectMessage.html" %}
|
||||
{% endif %}
|
||||
|
||||
{% block popovers %}{% endblock %}
|
||||
|
@ -305,7 +306,7 @@
|
|||
{% block scripts %}{% endblock %}
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="/static/assets/CHRISTMAS/js/header.js?a=1"></script>
|
||||
<script src="/static/assets/CHRISTMAS/js/header.js?a=2"></script>
|
||||
|
||||
<!-- Lazy Loading -->
|
||||
<script src="/static/assets/CHRISTMAS/js/lozad.js?a=1"></script>
|
||||
|
@ -334,7 +335,7 @@
|
|||
<script src="/static/assets/CHRISTMAS/js/gif_modal.js?a=1"></script>
|
||||
<script src="/static/assets/CHRISTMAS/js/emoji_modal.js?a=16"></script>
|
||||
|
||||
<script defer src="/static/assets/CHRISTMAS/js/popover.js?a=1"></script>
|
||||
<script defer src="/static/assets/CHRISTMAS/js/popover.js?a=58"></script>
|
||||
|
||||
<script src="/static/assets/CHRISTMAS/js/mobile_navigation_bar.js?a=1"></script>
|
||||
|
||||
|
@ -356,7 +357,7 @@
|
|||
}
|
||||
</script>
|
||||
{% endif %}
|
||||
<script src="/static/assets/CHRISTMAS/js/default.js?a=2"></script>
|
||||
<script src="/static/assets/CHRISTMAS/js/default.js?a=39"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
<hr class="mt-2 mb-1.5 border-t border-black h-1 shadow-inset-t-white-05"/>
|
||||
</li>
|
||||
<li>
|
||||
<a class="dropdown-item dropdown-item-primary" href="/rules">
|
||||
<a class="dropdown-item dropdown-item-primary" href="/post/2510/">
|
||||
<i class="fas fa-balance-scale fa-sm fa-fw mr-4"></i>Community Rules
|
||||
</a>
|
||||
</li>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="dropdown">
|
||||
<button class="relative flex items-center px-3 py-2.5 rounded text-sm text-gray-100 hover:text-gray-400 focus:text-gray-200 focus:outline-none dropdown-toggle" type="button" id="dropdownProfileMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<button class="relative flex items-center px-3 py-2.5 rounded text-sm text-gray-100 hover:text-gray-400 focus:text-gray-200 focus:outline-none dropdown-toggle" type="button" id="dropdownProfileMenuButton" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-bs-offset="0,-2">
|
||||
<span class="sr-only">Open user menu</span>
|
||||
<img class="h-9 w-9 bg-white p-[3px] border border-gray-800" src="{{ v.profile_url }}" alt="Your avatar"/>
|
||||
<div class="pl-2 text-left">
|
||||
|
|
|
@ -4,40 +4,12 @@
|
|||
{% include "CHRISTMAS/banner.html" %}
|
||||
<!-- Navigation bar -->
|
||||
<div class="w-full max-w-screen-2xl mx-auto grid grid-cols-12 px-4">
|
||||
<div class="relative col-span-full flex items-center justify-between h-14 px-4">
|
||||
{% if not error %}
|
||||
<div class="absolute inset-y-0 left-0 flex items-center sm:hidden">
|
||||
<!-- Mobile menu button-->
|
||||
<button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-white" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar">
|
||||
<span class="sr-only">Open main menu</span>
|
||||
<!--
|
||||
Icon when menu is closed.
|
||||
|
||||
Heroicon name: outline/menu
|
||||
|
||||
Menu open: "hidden", Menu closed: "block"
|
||||
-->
|
||||
<svg class="block h-6 w-6" xmlns="https://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
||||
</svg>
|
||||
<!--
|
||||
Icon when menu is open.
|
||||
|
||||
Heroicon name: outline/x
|
||||
|
||||
Menu open: "block", Menu closed: "hidden"
|
||||
-->
|
||||
<svg class="hidden h-6 w-6" xmlns="https://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12" />
|
||||
</svg>
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="flex-1 flex items-center justify-center sm:items-stretch sm:justify-start">
|
||||
<div class="relative col-span-full flex items-center justify-between h-14 md:px-4">
|
||||
<div class="flex-1 flex items-center sm:items-stretch sm:justify-start">
|
||||
<div class="flex-shrink-0 flex items-center">
|
||||
<a class="flex items-center" href="{{ '/' if v else '/logged_out'}}">
|
||||
<img class="block lg:hidden h-6 w-6 object-contain" style="margin-left: -21px;" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<img class="hidden lg:block h-6 w-6 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<img class="block lg:hidden h-7 w-7 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<img class="hidden lg:block h-7 w-7 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<span class="pl-2 text-white text-2xl font-bold">rdrama</span>
|
||||
</a>
|
||||
</div>
|
||||
|
@ -59,9 +31,9 @@
|
|||
Comments
|
||||
</a>
|
||||
|
||||
<a href="/leaderboard" class="relative px-3 py-2.5 rounded text-sm leading-normal {{ 'text-gray-200 font-bold text-shadow' if request.path == '/leaderboard' else 'text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400' }}" aria-current="page">
|
||||
<a href="/leaderboard" class="hidden xl:inline-block relative px-3 py-2.5 rounded text-sm leading-normal {{ 'text-gray-200 font-bold text-shadow' if request.path == '/leaderboard' else 'text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400' }}" aria-current="page">
|
||||
<i class="fas fa-trophy fa-fw mr-2"></i>
|
||||
Leaderboard
|
||||
Leaderboards
|
||||
</a>
|
||||
|
||||
{% include "CHRISTMAS/dropdowns/NavbarExtraLinks.html" %}
|
||||
|
@ -74,7 +46,7 @@
|
|||
</div>
|
||||
</div>
|
||||
{% if not error %}
|
||||
<div class="absolute inset-y-0 right-0 flex items-center space-x-3 sm:static sm:inset-auto sm:ml-6 sm:pr-0">
|
||||
<div class="absolute inset-y-0 right-0 flex items-center space-x-2 sm:static sm:inset-auto -mr-2 sm:mr-0 sm:ml-6 sm:pr-0">
|
||||
<!-- Logged in -->
|
||||
{% if v %}
|
||||
<!-- Profile dropdown -->
|
||||
|
@ -83,21 +55,21 @@
|
|||
</div>
|
||||
{% if v.admin_level > 1 %}
|
||||
<!-- Admin link -->
|
||||
<a href="{{ '/admin' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="bg-transparent p-1 rounded-full text-yellow-500 hover:text-yellow-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<a href="{{ '/admin' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="inline-block bg-transparent p-2 rounded-full text-yellow-500 hover:text-yellow-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<span class="sr-only">Admin tools</span>
|
||||
<i class="fas fa-crown fa-fw"></i>
|
||||
<i class="fas fa-crown fa-fw text-lg sm:text-base"></i>
|
||||
</a>
|
||||
{% endif %}
|
||||
<!-- Profile link -->
|
||||
<a href="{{ '/me' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="bg-transparent p-1 rounded-full text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<a href="{{ '/me' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="inline-block bg-transparent p-2 rounded-full text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<span class="sr-only">My profile</span>
|
||||
<i class="fas fa-user fa-fw"></i>
|
||||
<i class="fas fa-user fa-fw text-lg sm:text-base"></i>
|
||||
</a>
|
||||
<!-- Notifications -->
|
||||
<a href="/notifications{% if v.notifications_count and v.notifications_count == v.post_notifications_count %}?posts=true{% endif %}" class="block bg-transparent p-1 rounded-full text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<a href="/notifications{% if v.notifications_count and v.notifications_count == v.post_notifications_count %}?posts=true{% endif %}" class="inline-block bg-transparent p-2 rounded-full text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<span class="sr-only">View notifications</span>
|
||||
<div class="relative">
|
||||
<i class="fas fa-envelope fa-fw"></i>
|
||||
<i class="fas fa-envelope fa-fw text-lg sm:text-base"></i>
|
||||
<!-- Counter -->
|
||||
{% if v.notifications_count %}
|
||||
<div class="absolute -top-1.5 -right-3 {{ 'w-10' if v.notifications_count > 99 else 'w-6' }} h-6 rounded-full border-2 border-gray-700 flex items-center justify-center bg-red-600">
|
||||
|
@ -107,9 +79,9 @@
|
|||
</div>
|
||||
</a>
|
||||
<!-- Post Creation -->
|
||||
<a href="{{ '/submit' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="bg-transparent p-1 rounded-full text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<a href="{{ '/submit' if v else '/signup?redirect={{request.path | urlencode}}' }}" class="inline-block bg-transparent p-2 rounded-full text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-gray-800 focus:ring-white">
|
||||
<span class="sr-only">Submit post</span>
|
||||
<i class="fas fa-plus fa-fw"></i>
|
||||
<i class="fas fa-pencil fa-fw text-lg sm:text-base"></i>
|
||||
</a>
|
||||
<!-- Not logged in -->
|
||||
{% else %}
|
||||
|
@ -118,24 +90,34 @@
|
|||
Login
|
||||
</a>
|
||||
<!-- Register button -->
|
||||
<a class="hidden sm:block px-4 py-2 active:shadow-inner border rounded-md text-shadow-t shadow-inset-t-white-10 text-sm font-bold focus:outline-none disabled:opacity- hover:bg-gradient-to-t hover:from-gray-100 hover:to-gray-200 border-gray-300 text-gray-200 hover:text-gray-700 focus:text-gray-900" href="/signup?redirect={{request.path | urlencode}}">
|
||||
<a class="hidden sm:inline-block px-4 py-2 active:shadow-inner border rounded-md text-shadow-t shadow-inset-t-white-10 text-sm font-bold focus:outline-none disabled:opacity- hover:bg-gradient-to-t hover:from-gray-100 hover:to-gray-200 border-gray-300 text-gray-200 hover:text-gray-700 focus:text-gray-900" href="/signup?redirect={{request.path | urlencode}}">
|
||||
Sign up
|
||||
</a>
|
||||
{% endif %}
|
||||
|
||||
{% if not error %}
|
||||
<!-- Mobile menu button-->
|
||||
<button type="button" class="flex items-center justify-center sm:hidden bg-transparent p-2 rounded text-gray-400 hover:text-gray-300 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none focus:ring-2 focus:ring-opacity-50 focus:ring-white" data-bs-toggle="offcanvas" data-bs-target="#offcanvasNavbar" aria-controls="offcanvasNavbar">
|
||||
<span class="sr-only">Open main menu</span>
|
||||
<svg class="block h-7 w-7" xmlns="https://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16" />
|
||||
</svg>
|
||||
</button>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile menu, show/hide based on menu state. -->
|
||||
<div class="offcanvas offcanvas-start bg-gray-200" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
|
||||
<div class="relative flex w-full bg-gray-700 h-20 px-4 items-center">
|
||||
<div class="offcanvas offcanvas-end bg-gray-200 dark:bg-gray-800" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
|
||||
<div class="relative flex w-full bg-gray-700 dark:bg-gray-800 h-20 px-4 items-center">
|
||||
<a class="flex items-center" href="{{ '/' if v else '/logged_out'}}">
|
||||
<img class="block lg:hidden h-6 w-6 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<img class="hidden lg:block h-6 w-6 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<img class="block lg:hidden h-7 w-7 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<img class="hidden lg:block h-7 w-7 object-contain" src="/static/assets/images/Drama/headericon.webp?a=7" alt="logo">
|
||||
<span class="pl-2 text-white text-2xl font-bold">rdrama</span>
|
||||
</a>
|
||||
<button type="button" class="ml-auto close p-2" data-bs-dismiss="offcanvas" aria-label="Close">
|
||||
<button type="button" class="-mr-4 ml-auto text-white/50 text-2xl font-bold p-4" data-bs-dismiss="offcanvas" aria-label="Close">
|
||||
<span aria-hidden="true">
|
||||
<i class="far fa-times"></i>
|
||||
</span>
|
||||
|
@ -144,7 +126,7 @@
|
|||
<div class="offcanvas-body">
|
||||
<!-- Search box -->
|
||||
<form action="/search/posts/" method="get" class="relative mb-4">
|
||||
<input placeholder="Search" class="block w-full rounded shadow-inner py-2 pl-2 pr-7 bg-white border border-gray-300 hover:border-gray-400 focus:border-blue-300 focus:ring focus:ring-blue-200 focus:ring-opacity-50" aria-label="Search" name="q" value="{{request.values.get('q', '')}}">
|
||||
<input placeholder="Search" class="block w-full rounded shadow-inner py-2 pl-2 pr-7 bg-white dark:bg-white/[.06] border border-gray-300 dark:border-gray-900 hover:border-gray-400 focus:border-blue-300 focus:ring focus:ring-blue-200 focus:ring-opacity-50" aria-label="Search" name="q" value="{{request.values.get('q', '')}}">
|
||||
<i class="fas fa-search text-gray-400 absolute top-3 right-3"></i>
|
||||
</form>
|
||||
{% if v %}
|
||||
|
@ -154,12 +136,12 @@
|
|||
Create post
|
||||
</a>
|
||||
<!-- Meta links -->
|
||||
<ul class="flex flex-col space-y-3 font-bold text-base text-gray-600">
|
||||
<ul class="flex flex-col space-y-3 font-bold text-base text-gray-600 dark:text-gray-200">
|
||||
<li>
|
||||
<a class="inline-flex items-center" aria-current="page" href="/me">
|
||||
<img src="{{ v.profile_url }}" class="w-14 h-14 p-[3px] bg-white border border-gray-300 object-cover"/>
|
||||
<img src="{{ v.profile_url }}" class="w-14 h-14 p-[3px] bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 object-cover"/>
|
||||
<div class="pl-3">
|
||||
<div class="text-base text-black leading-5">
|
||||
<div class="text-base text-black dark:text-gray-100 leading-5">
|
||||
{{ v.username }}
|
||||
</div>
|
||||
<div class="flex space-x-3 mt-1">
|
||||
|
@ -181,13 +163,13 @@
|
|||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="text-gray-700 hover:text-gray-900" href="/@me">
|
||||
<a class="text-gray-700 hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-400" href="/@me">
|
||||
<i class="fas fa-user fa-fw mr-2"></i>
|
||||
My Profile
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="text-gray-700 hover:text-gray-900" href="/notifications{% if v.notifications_count and v.notifications_count == v.post_notifications_count %}?posts=true{% endif %}">
|
||||
<a class="text-gray-700 hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-400" href="/notifications{% if v.notifications_count and v.notifications_count == v.post_notifications_count %}?posts=true{% endif %}">
|
||||
<i class="fas fa-envelope fa-fw mr-2"></i>
|
||||
Inbox
|
||||
{% if v.notifications_count %}
|
||||
|
@ -196,18 +178,18 @@
|
|||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a class="text-gray-700 hover:text-gray-900" href="/settings">
|
||||
<a class="text-gray-700 hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-400" href="/settings">
|
||||
<i class="fas fa-cog fa-fw mr-2"></i>
|
||||
Settings
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<button class="text-gray-700 hover:text-gray-900 font-bold" data-bs-toggle="modal" data-bs-target="#themePickerModal">
|
||||
<button class="text-gray-700 hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-400 font-bold" data-bs-toggle="modal" data-bs-target="#themePickerModal">
|
||||
<i class="fas fa-paint-brush fa-fw mr-2"></i>
|
||||
Pick theme
|
||||
</button>
|
||||
<li>
|
||||
<button class="text-gray-700 hover:text-gray-900 font-bold" onclick="post_toast('/logout', '1')">
|
||||
<button class="text-gray-700 hover:text-gray-900 dark:text-gray-200 dark:hover:text-gray-400 font-bold" onclick="post_toast('/logout', '1')">
|
||||
<i class="fas fa-power-off fa-fw mr-2"></i>
|
||||
Log out
|
||||
</button>
|
||||
|
|
|
@ -28,26 +28,34 @@
|
|||
<div class="col-span-full xl:col-span-9 dark:bg-gray-700 md:dark:bg-gray-800">
|
||||
|
||||
<ul class="flex flex-col sm:py-4 my-2.5 sm:my-0" id="posts">
|
||||
{% include "CHRISTMAS/submission_listing.html" %}
|
||||
{% include "CHRISTMAS/submission/SubmissionList.html" %}
|
||||
</ul>
|
||||
|
||||
{% if listing %}
|
||||
<nav aria-label="Page navigation">
|
||||
<ul class="pagination pagination-sm mb-0">
|
||||
<ul class="flex flex-wrap items-center mb-0 py-4 px-2.5 md:px-0">
|
||||
<li>
|
||||
{% if page > 1 %}
|
||||
<li class="page-item">
|
||||
<small><a class="page-link" href="?sort={{sort}}&page={{page-1}}&t={{t}}{% if only %}&only={{only}}{% endif %}" tabindex="-1">Prev</a></small>
|
||||
</li>
|
||||
<small>
|
||||
<a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="?sort={{sort}}&page={{page-1}}&t={{t}}{% if only %}&only={{only}}{% endif %}" tabindex="-1">
|
||||
Back
|
||||
</a>
|
||||
</small>
|
||||
{% else %}
|
||||
<li class="page-item disabled"><span class="page-link">Prev</span></li>
|
||||
<button disabled class="block px-2 py-1 text-sm font-bold text-gray-700 bg-gray-800 cursor-not-allowed">Back</button>
|
||||
{% endif %}
|
||||
</li>
|
||||
<li>
|
||||
{% if next_exists %}
|
||||
<li class="page-item">
|
||||
<small><a class="page-link" href="?sort={{sort}}&page={{page+1}}&t={{t}}{% if only %}&only={{only}}{% endif %}">Next</a></small>
|
||||
</li>
|
||||
<small>
|
||||
<a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="?sort={{sort}}&page={{page+1}}&t={{t}}{% if only %}&only={{only}}{% endif %}">
|
||||
Next
|
||||
</a>
|
||||
</small>
|
||||
{% else %}
|
||||
<li class="page-item disabled"><span class="page-link">Next</span></li>
|
||||
<button disabled class="block px-2 py-1 text-sm font-bold text-gray-700 bg-gray-800 cursor-not-allowed">Next</button>
|
||||
{% endif %}
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% endif %}
|
||||
|
|
|
@ -363,4 +363,51 @@
|
|||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% if users13 %}
|
||||
<div class="col-span-full mb-6">
|
||||
<div class="flex items-center px-4 py-4 bg-gradient-to-t from-gray-200 to-gray-100 dark:bg-none dark:bg-gray-800 sticky top-0 z-10">
|
||||
<h2 class="text-2xl font-heading font-bold mb-0">
|
||||
rDrama's 25 Biggest Marsey Artists
|
||||
</h2>
|
||||
</div>
|
||||
<div class="mb-4 flex flex-col bg-gray-100 dark:bg-gray-900 rounded-lg overflow-hidden">
|
||||
{% for user in users13 %}
|
||||
<div class="flex items-center border-b last:border-b-none border-gray-300 dark:border-gray-900 shadow-inset-t-white-05 px-5 py-3 {% if v.username == user.username %}text-red-900 text-shadow-light bg-red-600{% elif users13.index(user) % 2 != 0 %}bg-gray-200 dark:bg-gray-700{% endif %}">
|
||||
<!-- Rank -->
|
||||
<h2 class="flex-shrink-0 text-2xl font-bold font-heading text-center w-16 -ml-5 mb-0 {{ 'text-red-900' if v.username == user.username else 'text-gray-400' }}">
|
||||
{{loop.index}}
|
||||
</h2>
|
||||
<div class="relative flex-shrink-0">
|
||||
<img src="{{user[0].profile_url}}" class="flex-shrink-0 p-[3px] border w-13 h-13 object-cover {{ 'bg-red-800 border-red-900' if v.username == user[0].username else 'bg-white border-gray-300' }}" alt="{{ user[0].username }} avatar"/>
|
||||
{% if loop.index == 1 %}
|
||||
<img src="https://i.ibb.co/xFgG6yf/Coinfixed.gif" width="20px" height="13px" class="absolute -top-1 -right-2.5 object-contain"/>
|
||||
{% endif %}
|
||||
</div>
|
||||
<!-- User Details -->
|
||||
<div class="ml-3">
|
||||
{% if user[0]=='anton-d' %}
|
||||
<span class="block font-heading font-bold text-lg md:text-xl text-black dark:text-gray-200">
|
||||
{{user[0]}}
|
||||
</span>
|
||||
{% else %}
|
||||
<a class="block font-heading font-bold text-lg md:text-xl text-black dark:text-gray-200 hover:text-primary" href="/@{{user[0].username}}">
|
||||
{{user[0].username}}
|
||||
</a>
|
||||
{% if user[0].customtitle %}
|
||||
<p class="text-sm" style="#{{user.namecolor}}">
|
||||
{{user[0].customtitle | safe}}
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="ml-auto mr-4 pl-3">
|
||||
<span class="text-xl font-heading font-bold {{ 'text-red-900' if v.username == user.username else 'text-gray-700' }}">
|
||||
{{user[1]}}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endblock %}
|
|
@ -0,0 +1,28 @@
|
|||
{% extends "CHRISTMAS/default.html" %}
|
||||
{% block content %}
|
||||
<pre>
|
||||
|
||||
|
||||
</pre>
|
||||
<div class="overflow-x-auto"><table class="table table-striped mb-5">
|
||||
<thead class="bg-primary text-white">
|
||||
<tr>
|
||||
<th style="font-weight: bold">#</th>
|
||||
<th style="font-weight: bold">Name</th>
|
||||
<th style="font-weight: bold">Marsey</th>
|
||||
<th style="font-weight: bold">Author</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="followers-table">
|
||||
{% for marsey, author in marseys %}
|
||||
<tr>
|
||||
<td style="font-weight: bold">{{loop.index}}</td>
|
||||
<td style="font-weight: bold">{{marsey}}</td>
|
||||
<td><img loading="lazy" data-bs-toggle="tooltip" alt=":{{marsey}}:" title=":{{marsey}}:" delay="0" src="/static/assets/images/emojis/{{marsey}}.webp" ></td>
|
||||
<td>{% if author in ('anton-d','unknown') %}{{author}}{% else %}<a style="font-weight:bold;" href="/@{{author}}"><img alt="@{{author}}'s profile picture" loading="lazy" src="/@{{author}}/pic" class="pp20">{{author}}</a>{% endif %}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% endblock %}
|
|
@ -2,29 +2,30 @@
|
|||
<div class="modal-dialog modal-dialog-centered mx-auto max-w-xl" role="document">
|
||||
<div class="modal-content mx-auto max-w-xl bg-gray-100 dark:bg-gray-700 rounded-md shadow-lg">
|
||||
<div class="modal-header">
|
||||
<h5 class="font-bold text-xl font-heading leading-normal">Send message to @{{u.username}}</h5>
|
||||
<h5 class="modal-title font-bold text-xl font-heading leading-normal">Send message</h5>
|
||||
<button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
|
||||
<span aria-hidden="true"><i class="far fa-times"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="message" action="/@{{u.username}}/message" method="post" enctype="multipart/form-data">
|
||||
<!-- Form action loaded by JS -->
|
||||
<form id="message">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<div class="relative rounded border border-gray-300 dark:border-gray-900 bg-white dark:bg-white/[.05] w-full">
|
||||
<textarea maxlength="1000" id="input-message" name="message" form="message" class="rounded-t bg-transparent p-2 shadow-inner w-full" aria-label="With textarea" placeholder="Write your message..." rows="3"></textarea>
|
||||
<textarea maxlength="1000" id="direct-message-input" name="message" form="message" class="rounded-t bg-transparent p-2 shadow-inner w-full" aria-label="With textarea" placeholder="Write your message..." rows="3"></textarea>
|
||||
<ul class="-mt-1 flex space-x-4 px-3 py-2 border-t border-dashed border-gray-300 dark:border-white/[.05] mb-0">
|
||||
<li>
|
||||
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeBold('input-message')">
|
||||
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeBold('direct-message-input')">
|
||||
<i class="fas fa-bold fa-fw fa-sm" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Bold"></i>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeItalics('input-message')">
|
||||
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeItalics('direct-message-input')">
|
||||
<i class="fas fa-italic fa-fw fa-sm" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Italicize"></i>
|
||||
</button>
|
||||
</li>
|
||||
<li>
|
||||
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeQuote('input-message')">
|
||||
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeQuote('direct-message-input')">
|
||||
<i class="fas fa-quote-right fa-fw fa-sm" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Quote"></i>
|
||||
</button>
|
||||
</li>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<div class="relative modal-body">
|
||||
<!-- If user has less than 100 dramacoin, disable form -->
|
||||
{% if v.coins < 100 %}
|
||||
<div class="absolute left-0 bottom-0 flex flex-col items-center justify-center w-full h-full bg-white/60 dark:bg-white/10 z-10">
|
||||
<div class="absolute left-0 bottom-0 flex flex-col items-center justify-center w-full h-full bg-white/60 dark:bg-gray-700/90 z-10">
|
||||
<p class="text-lg font-bold mb-0">
|
||||
You need at least 100 dramacoin to send coins.
|
||||
</p>
|
||||
|
@ -20,7 +20,7 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
<!-- Form -->
|
||||
<form class="profile-toggleable" id="message" action="/@{{u.username}}/message" method="post">
|
||||
<div class="profile-toggleable" id="giftCoins">
|
||||
<div class="relative rounded-lg border border-gray-300 dark:border-gray-900 bg-gray-100 dark:bg-white/[.05] shadow-inner w-full">
|
||||
<textarea maxlength="1000" id="gift-message" name="message" form="message" class="w-full rounded-t-md p-3 bg-transparent focus:bg-white dark:focus:bg-transparent shadow-inner resize-y focus:outline-none placehoder:text-gray-400" aria-label="With textarea" placeholder="'tis the season of giving..." rows="3"></textarea>
|
||||
<ul class="-mt-1 flex space-x-4 px-3 py-2 border-t border-dashed border-gray-400 mb-0">
|
||||
|
@ -41,19 +41,19 @@
|
|||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="mt-3">
|
||||
<input autocomplete="off" id="coins-transfer-amount" class="form-input" name="amount" type="number" placeholder="0" oninput="updateTax()">
|
||||
<p class="mt-1 text-sm text-gray-400">
|
||||
{{u.username}} will receive <strong id="coins-transfer-taxed">0</strong> {{'COINS_NAME' | app_config}}
|
||||
Recipient will receive <strong id="coins-transfer-taxed">0</strong> coins
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-end space-x-2 border-t border-gray-300 p-4">
|
||||
<button type="button" class="px-4 py-2 text-sm font-bold text-gray-500 hover:text-gray-700" data-bs-dismiss="modal">
|
||||
<div class="flex justify-end space-x-2 border-t border-gray-300 dark:border-gray-800 p-4">
|
||||
<button type="button" class="px-4 py-2 text-sm font-bold text-gray-500 hover:text-gray-400" data-bs-dismiss="modal">
|
||||
Cancel
|
||||
</button>
|
||||
<button onclick="transferCoins()" class="btn btn-green {{ 'cursor-not-allowed' if v.coins < 100 }}" {% if v.coins < 100 %}disabled{% endif %}>
|
||||
<button onclick="transferCoins()" class="btn btn-yellow {{ 'cursor-not-allowed' if v.coins < 100 }}" {% if v.coins < 100 %}disabled{% endif %}>
|
||||
Gift coins
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -34,9 +34,9 @@
|
|||
|
||||
{% block stylesheets %}
|
||||
|
||||
<link rel="stylesheet" href="/static/assets/CHRISTMAS/css/main.css?a=7">
|
||||
<link rel="stylesheet" href="/static/assets/CHRISTMAS/css/main.css?a=10">
|
||||
|
||||
<link rel="stylesheet" href="/static/dist/main.css?a=7">
|
||||
<link rel="stylesheet" href="/static/dist/main.css?a=15">
|
||||
|
||||
{% if v %}
|
||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||
|
@ -237,6 +237,6 @@
|
|||
|
||||
{% endif %}
|
||||
|
||||
<script src="/assets/CHRISTMAS/js/default.js?a=2"></script>
|
||||
<script src="/assets/CHRISTMAS/js/default.js?a=39"></script>
|
||||
</body>
|
||||
</html>
|
|
@ -29,7 +29,7 @@
|
|||
|
||||
<h2 class="label text-black">Highlight New Comments</h2>
|
||||
|
||||
<div class="body w-lg-100">
|
||||
<div class="body w-lg-100 mb-4">
|
||||
|
||||
<div>
|
||||
<input type="checkbox" id="highlightcomments" name="highlightcomments"{% if v.highlightcomments %} checked{% endif %} onchange="post_toast('/settings/profile?highlightcomments='+document.getElementById('highlightcomments').checked);">
|
||||
|
@ -40,6 +40,16 @@
|
|||
|
||||
</div>
|
||||
|
||||
<h2 class="label text-black">
|
||||
Compact mode
|
||||
<span class="badge badge-yellow">New!</span>
|
||||
</h2>
|
||||
|
||||
<div class="mb-4">
|
||||
<input type="checkbox" id="compactMode" name="compact" {% if v.compact %}checked{% endif %} onchange="post_toast('/settings/profile?compact='+this.checked)">
|
||||
<label class="inline-block pl-2 text-gray-400" for="compactMode">View posts in a comapct format.</label>
|
||||
</div>
|
||||
|
||||
<h2 class="label text-black">Card view</h2>
|
||||
|
||||
<div>
|
||||
|
|
|
@ -42,6 +42,22 @@
|
|||
</a>
|
||||
</h2>
|
||||
<ul class="flex flex-col space-y-2 mb-0">
|
||||
<li class="flex">
|
||||
<div class="flex items-center justify-center px-2 flex-shrink-0">
|
||||
<img class="object-contain w-5 h-5" src="/assets/images/emojis/marseywords.webp" alt="marsey words icon">
|
||||
</div>
|
||||
<div class="pl-3 mt-[-1px] truncate">
|
||||
<a href="/post/32341/" class="block font-medium text-black dark:text-gray-200 hover:text-primary truncate ellipsis">
|
||||
Sidebar Artwork Megathread
|
||||
</a>
|
||||
<small class="block text-gray-500">
|
||||
posted by
|
||||
<a href="/@idio3" class="text-gray-500 hover:text-gray-600 dark:hover:text-gray-400">
|
||||
@idio3
|
||||
</a>
|
||||
</small>
|
||||
</div>
|
||||
</li>
|
||||
<li class="flex">
|
||||
<div class="flex items-center justify-center px-2 flex-shrink-0">
|
||||
<img class="object-contain w-5 h-5" src="/assets/images/emojis/marseywords.webp" alt="marsey words icon">
|
||||
|
@ -58,6 +74,22 @@
|
|||
</small>
|
||||
</div>
|
||||
</li>
|
||||
<li class="flex">
|
||||
<div class="flex items-center justify-center px-2 flex-shrink-0">
|
||||
<img class="object-contain w-5 h-5" src="/assets/images/emojis/marseywords.webp" alt="marsey words icon">
|
||||
</div>
|
||||
<div class="pl-3 mt-[-1px] truncate">
|
||||
<a href="/post/33652/" class="block font-medium text-black dark:text-gray-200 hover:text-primary truncate ellipsis">
|
||||
Snappy Quote Megathread
|
||||
</a>
|
||||
<small class="block text-gray-500">
|
||||
posted by
|
||||
<a href="/@Punished-Retard31" class="text-gray-500 hover:text-gray-600 dark:hover:text-gray-400">
|
||||
@Punished-Retard31
|
||||
</a>
|
||||
</small>
|
||||
</div>
|
||||
</li>
|
||||
<li class="flex">
|
||||
<div class="flex items-center justify-center px-2 flex-shrink-0">
|
||||
<img class="object-contain w-5 h-5" src="/assets/images/emojis/marseywords.webp" alt="marsey words icon">
|
||||
|
|
|
@ -319,7 +319,7 @@
|
|||
{% if not p.is_image and p.thumb_url and not p.embed_url %}
|
||||
<div class="hidden md:block pl-3 flex-shrink-0">
|
||||
<a rel="nofollow noopener noreferrer" href="{{p.realurl(v)}}" {% if not v or v.newtabexternal %}target="_blank"{% endif %}>
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0" alt="post thumbnail">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0" alt="post thumbnail">
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
|
|
@ -1,12 +1,20 @@
|
|||
<ul class="flex flex-wrap items-center space-x-3 gap-2 text-sm text-gray-500 mb-0">
|
||||
<ul class="inline-flex flex-wrap items-center space-x-3 gap-2 text-sm text-gray-500 mb-0">
|
||||
|
||||
{% if p.realbody(v) and '/post/' not in request.full_path and not p.over_18 %}
|
||||
{% if v and v.compact %}
|
||||
<li>
|
||||
<button class="hover:text-gray-400" onclick="expandTextCompact('{{p.id}}')">
|
||||
<i class="fas fa-expand-alt fa-fw text-expand-icon-{{p.id}}"></i>
|
||||
</button>
|
||||
</li>
|
||||
{% else %}
|
||||
<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 %}
|
||||
{% endif %}
|
||||
|
||||
{% if '/post/' not in request.full_path %}
|
||||
<li>
|
||||
|
|
|
@ -1,11 +1,19 @@
|
|||
<ul class="flex items-center text-sm text-gray-500 mb-0">
|
||||
{% if p.realbody(v) and '/post/' not in request.full_path and not p.over_18 %}
|
||||
{% if v and v.compact %}
|
||||
<li class="mr-5">
|
||||
<button class="hover:text-gray-400" onclick="expandTextCompact('{{p.id}}')">
|
||||
<i class="fas fa-expand-alt fa-fw text-expand-icon-{{p.id}}"></i>
|
||||
</button>
|
||||
</li>
|
||||
{% else %}
|
||||
<li class="mr-5">
|
||||
<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 %}
|
||||
{% endif %}
|
||||
<li class="mr-5">
|
||||
<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 }}
|
||||
|
|
|
@ -0,0 +1,6 @@
|
|||
<!-- Display list of posts -->
|
||||
{% if v and v.compact %}
|
||||
{% include "CHRISTMAS/submission_listing_compact.html" %}
|
||||
{% else %}
|
||||
{% include "CHRISTMAS/submission_listing.html" %}
|
||||
{% endif %}
|
|
@ -45,7 +45,7 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
<li id="post-{{p.id}}" class="relative p-2.5 mb-1 md:mb-4 md:pb-4 md:pt-0 md:px-0 border-b border-gray-300 dark:border-gray-700 {% if p.is_banned %}bg-red-200{% elif p.deleted_utc %}bg-yellow-200{% else %} md:bg-transparent bg-gray-200 dark:bg-gray-800 dark:md:bg-transparent{% endif %} {% if p.stickied %} stickied{% endif %}{% if voted==1 %} upvoted{% elif voted==-1 %} downvoted{% endif %}{% if p.over_18 %} nsfw{% endif %} list-none">
|
||||
<li id="post-{{p.id}}" class="relative p-2.5 mb-1 md:mb-4 md:pb-3.5 md:pt-0 md:px-0 border-b border-gray-300 dark:border-gray-700 {% if p.is_banned %}bg-red-200{% elif p.deleted_utc %}bg-yellow-200{% else %} md:bg-transparent bg-gray-200 dark:bg-gray-800 dark:md:bg-transparent{% endif %} {% if p.stickied %} stickied{% endif %}{% if voted==1 %} upvoted{% elif voted==-1 %} downvoted{% endif %}{% if p.over_18 %} nsfw{% endif %} list-none">
|
||||
|
||||
<div class="flex flex-nowrap">
|
||||
|
||||
|
@ -55,7 +55,7 @@
|
|||
</div>
|
||||
|
||||
{% if not postembed %}
|
||||
<div class="py-2 text-sm text-gray-400 text-center font-bold hidden md:block">
|
||||
<div class="pt-2 text-sm text-gray-400 text-center font-bold hidden md:block">
|
||||
{% if v and request.path.startswith('/@') and not v.admin_level %}
|
||||
|
||||
{% if voted==1 %}
|
||||
|
@ -253,33 +253,33 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="relative z-20 hidden md:block pt-3">
|
||||
<div class="relative z-20 hidden md:block pt-2">
|
||||
{% include "CHRISTMAS/submission/SubmissionActions.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10 flex flex-row flex-nowrap pl-3 md:pl-5 flex-shrink-0">
|
||||
{% if p.club and not (v and (v.paid_dues or v.id == p.author_id)) %}
|
||||
<img loading="lazy" src="/assets/images/emojis/marseyglow.webp" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
<img loading="lazy" src="/assets/images/emojis/marseyglow.webp" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
{% elif not p.url %}
|
||||
<a {% if v and v.newtab %}target="_blank"{% endif %} {% if v %}href="{{p.permalink}}"{% else %}href="/logged_out{{p.permalink}}"{% endif %}>
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% elif p.is_image %}
|
||||
<a href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#expandImageModal" data-bs-url="{{p.realurl(v)}}" onclick="expandDesktopImage('{{ p.realurl(v) }}')">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% elif p.is_video %}
|
||||
<a href="javascript:void(0)" onclick="toggleVideo({{p.id}})">
|
||||
<img alt="post thumnail" loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
<img alt="post thumnail" loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% elif p.is_youtube %}
|
||||
<a href="javascript:void(0)" onclick="document.getElementById('video-{{p.id}}').classList.toggle('hidden')">
|
||||
<img alt="post thumnail" loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
<img alt="post thumnail" loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% else %}
|
||||
<a {% if not v or v.newtabexternal %}target="_blank"{% endif %} rel="nofollow noopener noreferrer" href="{{p.realurl(v)}}">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-32 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-28 md:h-20 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
@ -387,8 +387,8 @@
|
|||
|
||||
{% include "CHRISTMAS/expanded_image_modal.html" %}
|
||||
|
||||
<script defer src="/assets/CHRISTMAS/js/new_comments_count.js?a=1"></script>
|
||||
<script defer src="/assets/CHRISTMAS/js/submission_listing.js?a=6"></script>
|
||||
<script defer src="/static/assets/CHRISTMAS/js/new_comments_count.js?a=1"></script>
|
||||
<script defer src="/static/assets/CHRISTMAS/js/submission_listing.js?a=7"></script>
|
||||
|
||||
<style>
|
||||
.mod:before {
|
||||
|
|
|
@ -0,0 +1,407 @@
|
|||
{% if v %}
|
||||
{% include "CHRISTMAS/award_modal.html" %}
|
||||
{% endif %}
|
||||
|
||||
{% for p in listing %}
|
||||
|
||||
{% set ups=p.upvotes %}
|
||||
{% set downs=p.downvotes %}
|
||||
{% set score=ups-downs %}
|
||||
|
||||
{% if v %}
|
||||
{% set voted= p.voted %}
|
||||
{% else %}
|
||||
{% set voted=-2 %}
|
||||
{% endif %}
|
||||
|
||||
{% if request.host == 'pcmemes.net' %}
|
||||
{% set cc='SPLASH MOUNTAIN' %}
|
||||
{% else %}
|
||||
{% set cc='COUNTRY CLUB' %}
|
||||
{% endif %}
|
||||
|
||||
{% if p.active_flags %}
|
||||
<div id="flaggers-{{p.id}}" class="relative mb-5 px-3 py-2 rounded-md bg-red-100 border border-red-200 hidden">
|
||||
<div class="font-medium uppercase text-sm tracking-wider text-red-700 leading-normal mb-2">
|
||||
<i class="fas fa-flag fa-fw mr-2 fa-sm"></i>Reported by:
|
||||
</div>
|
||||
<ul class="mb-0 flex flex-col space-y-3 divide-y divide-red-300 text-black">
|
||||
{% for f in p.ordered_flags %}
|
||||
<li class="flex flex-wrap">
|
||||
<a class="font-bold text-black hover:text-primary" href="{{f.user.url}}">
|
||||
{{f.user.username}}
|
||||
</a>
|
||||
<p class="pl-1">{% if f.reason %} - {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}</p>
|
||||
<button class="text-red-600 hover:underline" onclick="post_toast('/del_report/p{{ f.id }}')">
|
||||
remove
|
||||
</button>
|
||||
{% endif %}
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<button class="absolute top-1 right-3 text-red-400 hover:text-red-700" onclick="document.getElementById('flaggers-{{p.id}}').classList.toggle('hidden')">
|
||||
<i class="fas fa-times"></i>
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<li id="post-{{p.id}}" class="relative p-2.5 md:py-1 md:px-2.5 border-b border-gray-300 dark:border-white/[.05] {% if p.is_banned %}bg-red-200{% elif p.deleted_utc %}bg-yellow-200{% else %} md:bg-transparent bg-gray-200 hover:bg-gray-300 dark:bg-gray-800 dark:hover:bg-white/10 dark:md:bg-transparent{% endif %} {% if p.stickied %} stickied{% endif %}{% if voted==1 %} upvoted{% elif voted==-1 %} downvoted{% endif %}{% if p.over_18 %} nsfw{% endif %} list-none group">
|
||||
|
||||
<div class="flex flex-nowrap items-center">
|
||||
|
||||
<div class="relative z-10 hidden md:flex flex-col flex-shrink-0 items-center mr-4 w-20">
|
||||
|
||||
{% if not postembed %}
|
||||
<div class="text-sm text-gray-400 text-center font-bold hidden md:flex space-x-2">
|
||||
{% if v and request.path.startswith('/@') and not v.admin_level %}
|
||||
|
||||
{% if voted==1 %}
|
||||
<div class="mx-auto arrow-up post-{{p.id}}-up active"></div>
|
||||
{% endif %}
|
||||
|
||||
<span id="post-score-{{p.id}}" class="score post-score-{{p.id}} {% if voted==1 %}score-up{% elif voted==-1%}score-down{% endif %}"{% if not p.is_banned %} data-bs-toggle="tooltip" data-bs-placement="right" title="" data-bs-original-title="+{{ups}} | -{{downs}}"{% endif %}>{{score}}</span>
|
||||
|
||||
{% if voted==-1 %}
|
||||
<div class="mx-auto arrow-down post-{{p.id}}-down active"></div>
|
||||
{% endif %}
|
||||
|
||||
{% elif v %}
|
||||
|
||||
<div id="post-{{p.id}}-up" tabindex="0" href="javascript:void(0)" onclick="vote('post', '{{p.id}}', '1')" class="mx-auto arrow-up upvote-button post-{{p.id}}-up {% if voted==1 %}active{% endif %}"></div>
|
||||
|
||||
<span id="post-score-{{p.id}}" class="w-6 score post-score-{{p.id}} {% if voted==1 %}score-up{% elif voted==-1%}score-down{% endif %}"{% if not p.is_banned %} data-bs-toggle="tooltip" data-bs-placement="right" title="" data-bs-original-title="+{{ups}} | -{{downs}}"{% endif %}>{{score}}</span>
|
||||
|
||||
<div {% if environ.get('DISABLE_DOWNVOTES') == '1' %}style="display:None!important"{% endif %} id="post-{{p.id}}-down" tabindex="0" href="javascript:void(0)" onclick="vote('post', '{{p.id}}', '-1')" class="mx-auto arrow-down downvote-button post-{{p.id}}-down {% if voted==-1 %}active{% endif %}"></div>
|
||||
|
||||
{% else %}
|
||||
|
||||
<div id="post-{{p.id}}-up" tabindex="0" href="javascript:void(0)" onclick="vote('post', '{{p.id}}', '1')" class="mx-auto arrow-up" onclick="location.href='/login';"></div>
|
||||
|
||||
<span id="post-{{p.id}}-score-none" class="w-6 score"{% if not p.is_banned %} data-bs-toggle="tooltip" data-bs-placement="right" title="" data-bs-original-title="+{{ups}} | -{{downs}}"{% endif %}>{{score}}</span>
|
||||
|
||||
<div {% if environ.get('DISABLE_DOWNVOTES') == '1' %}style="display:None!important"{% endif %} id="post-{{p.id}}-down" tabindex="0" href="javascript:void(0)" onclick="vote('post', '{{p.id}}', '-1')" class="mx-auto arrow-down" onclick="location.href='/login';"></div>
|
||||
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="w-full overflow-x-hidden md:overflow-x-visible">
|
||||
|
||||
<div class="relative z-10 no-scrollbar overflow-y-hidden overflow-x-auto inline-flex items-center space-x-2 text-sm text-gray-500 leading-normal mb-0.5 {% if p.award_count('ghosts') %}ghosts{% endif %}">
|
||||
|
||||
<div class="relative flex-shrink-0">
|
||||
<img loading="lazy" src="{{ p.author.profile_url }}" class="flex-shrink-0 w-5 h-5 bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 object-cover" alt="{{ p.author.username }} avatar"/>
|
||||
</div>
|
||||
|
||||
{% if p.author.shadowbanned or p.distinguish_level or p.is_bot or p.is_blocking or p.is_blocked or p.author.verified %}
|
||||
<span class="flex-shrink-0">
|
||||
{% if v and v.admin_level==6 and p.author.shadowbanned %}
|
||||
<i class="fas fa-user-times fa-fw fa-sm text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Shadowbanned by @{{p.author.shadowbanned}}"></i>
|
||||
{% endif %}
|
||||
{% if p.distinguish_level %}
|
||||
<i class="fas fa-broom fa-fw fa-sm text-admin" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{'SITE_NAME' | app_config}} Admin, speaking officially"></i>
|
||||
{% endif %}
|
||||
{% if p.is_bot %}
|
||||
<i class="fad fa-robot fa-fw fa-sm text-info" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Bot"></i>
|
||||
{% endif %}
|
||||
{% if p.is_blocking %}
|
||||
<i class="fas fa-user-minus fa-fw fa-sm text-yellow-600" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="You're blocking this user, but you can see this post because you're an admin."></i>
|
||||
{% endif %}
|
||||
{% if p.is_blocked %}
|
||||
<i class="fas fa-user-minus fa-fw fa-sm text-red-600" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="This user is blocking you."></i>
|
||||
{% endif %}
|
||||
{% if p.author.verified %}
|
||||
<i class="fas fa-badge-check fa-fw fa-sm" style="color:{% if p.author.verifiedcolor %}#{{p.author.verifiedcolor}}{% else %}#1DA1F2{% endif %}" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="{{p.author.verified}}"></i>
|
||||
{% endif %}
|
||||
</span>
|
||||
{% endif %}
|
||||
|
||||
{% if not p.award_count('ghosts') %}
|
||||
<span class="flex-shrink-0">
|
||||
<a class="user-name" onclick='userPopover({{p.author.json_popover(v) | tojson}})' data-bs-placement="bottom" data-bs-toggle="popover" data-bs-trigger="focus" data-content-id="popover" href="javascript:void(0)" tabindex="0" style="color: #{{p.author.namecolor}};">
|
||||
<span class="inline-flex flex-shrink-0 items-center">
|
||||
{% if p.author.patron and not p.distinguish_level %}
|
||||
<span class="patron flex-shrink-0" style="background-color:#{{p.author.namecolor}};">
|
||||
{{p.author.username}}
|
||||
</span>
|
||||
{% elif p.distinguish_level and request.host == 'rdrama.net' %}
|
||||
<span class="mod flex-shrink-0">
|
||||
{{p.author.username}}
|
||||
</span>
|
||||
{% else %}
|
||||
{{p.author.username}}
|
||||
{% endif %}
|
||||
</span>
|
||||
</a>
|
||||
</span>
|
||||
{% if p.author.customtitle %}
|
||||
<bdi class="flex-shrink-0" style="color: #{{p.author.titlecolor}}">
|
||||
{% if p.author.quadrant %}
|
||||
<img loading="lazy" height="20" src="/assets/CHRISTMAS/images/PCM/quadrants/{{p.author.quadrant}}.gif">
|
||||
{% endif %}
|
||||
{{p.author.customtitle | safe}}
|
||||
</bdi>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<span class="flex-shrink-0" onmouseover="timestamp('timestamp-{{p.id}}','{{p.created_utc}}')" data-bs-toggle="tooltip" data-bs-placement="bottom" id="timestamp-{{p.id}}">
|
||||
{{p.age_string}}
|
||||
</span>
|
||||
|
||||
{% if p.edited_utc %}
|
||||
Edited
|
||||
<span class="flex-shrink-0" data-bs-toggle="tooltip" data-bs-placement="bottom" id="edited_timestamp-{{p.id}}">{{p.edited_string}}
|
||||
</span>
|
||||
{% endif %}
|
||||
|
||||
{% if p.is_image %}
|
||||
<span class="flex-shrink-0">(image post)</span>
|
||||
{% elif p.is_video %}
|
||||
<span class="flex-shrink-0">(video post)</span>
|
||||
{% elif p.realurl(v) %}
|
||||
<a class="flex-shrink-0" class="text-gray-500 hover:underline" href="/search/posts/?q=domain%3A{{p.domain}}&sort=new&t=all" {% if not v or v.newtabexternal %}target="_blank"{% endif %}>
|
||||
({{p.domain}})
|
||||
</a>
|
||||
{% else %}
|
||||
<span class="flex-shrink-0">(text post)</span>
|
||||
{% endif %}
|
||||
|
||||
{% if p.active_flags %}
|
||||
<button class="flex-shrink-0 badge badge-red" onclick="document.getElementById('flaggers-{{p.id}}').classList.toggle('hidden')">
|
||||
<i class="fas fa-gavel fa-sm fa-fw"></i>
|
||||
{{p.active_flags}} Reports
|
||||
</button>
|
||||
{% endif %}
|
||||
|
||||
{% if p.bannedfor and p.author.banned_by %}
|
||||
<span class="flex-shrink-0">
|
||||
<i class="fad fa-gavel fa-fw fa-sm text-red-600" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="User was banned for this post by @{{p.author.banned_by.username}}"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
|
||||
{% if p.flair or p.over_18 or p.club or p.stickied or (p.is_pinned and request.path.startswith('/@')) or p.private or p.awards %}
|
||||
<ul class="flex-shrink-0 flex space-x-2 items-center mb-0">
|
||||
<!-- Flair -->
|
||||
{% if p.flair %}
|
||||
<li>
|
||||
<span class="badge badge-purple">
|
||||
{{p.flair | safe}}
|
||||
</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
<!-- NSFW -->
|
||||
{% if p.over_18 %}
|
||||
<li>
|
||||
<span class="badge badge-red">+18</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
<!-- Country Club -->
|
||||
{% if p.club %}
|
||||
<li>
|
||||
<span class="badge badge-yellow">Country Club</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
<!-- Stickied -->
|
||||
{% if p.stickied and (p.stickied.startswith('t:') or p.stickied.startswith('j:')) %}
|
||||
<li>
|
||||
<span id="pinned-{{p.id}}" class="badge badge-pink" data-bs-toggle="tooltip" data-bs-placement="bottom" data-timestamp={{p.stickied[2:]}} onmouseover="pinned_timestamp('pinned-{{p.id}}')"}>
|
||||
<i class="fas fa-thumbtack fa-rotate--45 fa-sm fa-fw"></i>
|
||||
Pinned
|
||||
</span>
|
||||
</li>
|
||||
{% elif p.stickied %}
|
||||
<li>
|
||||
<span id="pinned-{{p.id}}" class="badge badge-pink" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Pinned by @{{p.stickied}}">
|
||||
<i class="fas fa-thumbtack fa-rotate--45 fa-sm fa-fw"></i>
|
||||
Pinned
|
||||
</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
<!-- Private -->
|
||||
{% if p.private %}
|
||||
<li>
|
||||
<span class="badge badge-blue">
|
||||
<i class="fas fa-lock-alt fa-sm fa-fw1"></i>
|
||||
Draft
|
||||
</span>
|
||||
</li>
|
||||
{% endif %}
|
||||
<!-- Awards -->
|
||||
{% if p.awards %}
|
||||
{% for a in p.awards %}
|
||||
<li>
|
||||
<i class="{{a.class_list}} fa-sm fa-fw" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{a.title}} Award given by @{{a.user.username}}"></i>
|
||||
</li>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<h5 class="post-title font-medium text-base leading-5 mb-0.5">
|
||||
<a {% if v and v.newtab %}target="_blank"{% endif %} href="{{p.permalink}}" class="{% if p.author.agendaposter %}agendaposter{% endif %} stretched-link text-black dark:text-gray-100 group-hover:text-primary dark:group-hover:text-primary visited:text-gray-700 dark:visited:text-gray-400 break-words" style="word-break: break-word;">
|
||||
{{p.realtitle(v) | safe}}
|
||||
</a>
|
||||
</h5>
|
||||
|
||||
<div class="relative z-10 group-hover:z-20 hidden md:inline-block">
|
||||
{% include "CHRISTMAS/submission/SubmissionActions.html" %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="relative z-10 flex flex-row flex-nowrap pl-3 md:pl-5 flex-shrink-0">
|
||||
{% if p.club and not (v and (v.paid_dues or v.id == p.author_id)) %}
|
||||
<img loading="lazy" src="/assets/images/emojis/marseyglow.webp" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-24 md:h-16 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
{% elif not p.url %}
|
||||
<a {% if v and v.newtab %}target="_blank"{% endif %} {% if v %}href="{{p.permalink}}"{% else %}href="/logged_out{{p.permalink}}"{% endif %}>
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-24 md:h-16 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% elif p.is_image %}
|
||||
<a href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#expandImageModal" data-bs-url="{{p.realurl(v)}}" onclick="expandDesktopImage('{{ p.realurl(v) }}')">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-24 md:h-16 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% elif p.is_video %}
|
||||
<a href="javascript:void(0)" onclick="toggleVideo({{p.id}})">
|
||||
<img alt="post thumnail" loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-24 md:h-16 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% elif p.is_youtube %}
|
||||
<a href="javascript:void(0)" onclick="document.getElementById('video-{{p.id}}').classList.toggle('hidden')">
|
||||
<img alt="post thumnail" loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-24 md:h-16 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% else %}
|
||||
<a {% if not v or v.newtabexternal %}target="_blank"{% endif %} rel="nofollow noopener noreferrer" href="{{p.realurl(v)}}">
|
||||
<img loading="lazy" src="{{p.thumb_url}}" class="post-thumbnail shadow-sm p-[3px] w-20 h-14 md:w-24 md:h-16 object-cover bg-white dark:bg-gray-900 border border-gray-300 dark:border-gray-700 flex-shrink-0">
|
||||
</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% if p.realbody(v) and not p.over_18 %}
|
||||
<div class="{% if p.author.agendaposter %}agendaposter{% endif %} shadow-inner post-text relative z-10 break-words p-4 bg-gray-100 dark:bg-white/[.06] border border-gray-300 dark:border-gray-900 mt-2 sm:mt-1 mb-1.5 rounded hidden" style="word-break: break-word;" id="post-text-{{p.id}}">
|
||||
{{p.realbody(v) | safe}}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if p.is_image and not p.over_18 and ((v and v.cardview) or (not v and environ.get('CARD_VIEW') == '1')) %}
|
||||
<div class="md:ml-[4.5rem] mt-4">
|
||||
<a target="_blank" rel="nofollow noopener noreferrer" href="{{p.url}}" class="inline-block">
|
||||
<img loading="lazy" src="/assets/CHRISTMAS/images/loading.gif" data-src="{{p.url}}" class="shadow-md p-1 bg-white dark:bg-gray-900 w-full md:w-64" alt="Post preview">
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% if not p.club or v and (v.paid_dues or v.id == p.author_id) and (p.is_video or p.is_youtube) %}
|
||||
<div class="relative z-10">
|
||||
{% if p.is_video %}
|
||||
<div id="video-{{p.id}}" class="text-center {% if p.over_18 or not ((v and v.cardview) or (not v and environ.get('CARD_VIEW') == '1')) %}hidden{% endif %} md:ml-[4.5rem] mt-3">
|
||||
<video controls loop preload="metadata" class="w-full max-h-[20rem]">
|
||||
<source src="{{p.realurl(v)}}" type="video/mp4">
|
||||
</video>
|
||||
</div>
|
||||
{% elif p.is_youtube %}
|
||||
<div id="video-{{p.id}}" class="{% if p.over_18 or not ((v and v.cardview) or (not v and environ.get('CARD_VIEW') == '1')) %}hidden{% endif %} md:ml-[4.5rem] mt-3">
|
||||
{{p.embed_url | safe}}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="relative z-10 group-hover:z-20 md:hidden pt-2 md:pt-0">
|
||||
{% include "CHRISTMAS/submission/SubmissionActionsMobile.html" %}
|
||||
</div>
|
||||
|
||||
{% include "CHRISTMAS/modals/ModalSubmissionActions.html" %}
|
||||
|
||||
</li>
|
||||
|
||||
{% else %}
|
||||
|
||||
{% if request.path.endswith('/admin/queue') %}
|
||||
|
||||
<div class="row no-gutters">
|
||||
<div class="col">
|
||||
<div class="text-center py-7">
|
||||
<div class="h4 p-2">This queue is empty. (That's a good thing.)</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% elif u %}
|
||||
{% if v and v.id == u.id %}
|
||||
<div class="row no-gutters">
|
||||
<div class="col">
|
||||
<div class="text-center px-3 my-3">
|
||||
<span class="fa-stack fa-2x text-muted mb-4">
|
||||
<i class="fas fa-square text-gray-500 opacity-25 fa-stack-2x"></i>
|
||||
<i class="fas text-gray-500 fa-ghost fa-stack-1x text-lg"></i>
|
||||
</span>
|
||||
<h2 class="h5">You haven't {% if "saved" in request.full_path %}saved{% else %}made{% endif %} a post yet</h2>
|
||||
<p class="text-muted mb-md-5">Your {% if "saved" in request.full_path %}saved posts{% else %}posting history{% endif %} will show here.</p>
|
||||
{% if "saved" not in request.full_path %}<a href="/submit" class="btn btn-primary">Create a post</a>{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
{% else %}
|
||||
<div class="row no-gutters">
|
||||
<div class="col">
|
||||
<div class="text-center px-3 my-3">
|
||||
<span class="fa-stack fa-2x text-muted mb-4">
|
||||
<i class="fas fa-square text-gray-500 opacity-25 fa-stack-2x"></i>
|
||||
<i class="fas text-gray-500 fa-scroll-old fa-stack-1x text-lg"></i>
|
||||
</span>
|
||||
<h2 class="h5">@{{u.username}} hasn't made a post yet</h2>
|
||||
<p class="text-muted">Their posting history will show here.</p>
|
||||
<pre>
|
||||
</pre>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% else %}
|
||||
<div class="flex flex-col items-center justify-center py-24 md:py-48">
|
||||
<img loading="lazy" src="https://c.tenor.com/NhDy-AkelhQAAAAM/marsey-drama.gif" class="w-20 h-20 mb-4 rounded-md object-cover"/>
|
||||
<h2 class="text-xl font-bold leading-normal font-heading text-black">No posts here -_-</h2>
|
||||
<p class="text-gray-500">
|
||||
Looks like there is no content atm.
|
||||
</p>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% if v %}
|
||||
{% include "CHRISTMAS/delete_post_modal.html" %}
|
||||
{% include "CHRISTMAS/report_post_modal.html" %}
|
||||
{% if v.admin_level == 6 %}
|
||||
{% include "CHRISTMAS/ban_modal.html" %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% include "CHRISTMAS/expanded_image_modal.html" %}
|
||||
|
||||
<script defer src="/static/assets/CHRISTMAS/js/new_comments_count.js?a=1"></script>
|
||||
<script defer src="/static/assets/CHRISTMAS/js/submission_listing.js?a=7"></script>
|
||||
|
||||
<style>
|
||||
.mod:before {
|
||||
content: '(((';
|
||||
}
|
||||
|
||||
.mod:after {
|
||||
content: ')))';
|
||||
}
|
||||
|
||||
.mod {
|
||||
padding: 2px 5px 3px 5px;
|
||||
border-radius: 5px;
|
||||
color:white!important;
|
||||
background: -moz-linear-gradient(180deg, red, orange, yellow, green, blue, indigo, violet);
|
||||
background: -webkit-linear-gradient(left, red, orange, yellow, green, blue, indigo, violet );
|
||||
text-shadow:-1px -1px 0 black,1px -1px 0 black,-1px 1px 0 black,1px 1px 0 black;
|
||||
}
|
||||
</style>
|
|
@ -1,16 +1,27 @@
|
|||
<!-- Clipboard copy toast -->
|
||||
<div class="toast clipboard" id="toast-success" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
||||
<div class="toast-body bg-green-500 border border-green-900 text-center text-white">
|
||||
<i class="fas fa-check-circle text-success mr-2"></i>Link copied to clipboard
|
||||
<div class="flex items-center justify-center p-3 bg-green-500 border border-green-600 text-center text-white rounded shadow-inset-t-white-10">
|
||||
<i class="fas fa-copy fa-fw mr-2"></i>
|
||||
<span>
|
||||
Link copied to clipboard!
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="toast" id="toast-post-success" style="position: fixed; bottom: 1.5rem; margin: 0 auto; left: 0; right: 0; width: 275px; z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
||||
<div class="toast-body bg-green-500 border border-green-900 text-center text-white">
|
||||
<i class="fas fa-comment-alt-smile mr-2"></i><span id="toast-post-success-text">Action successful!</span>
|
||||
<!-- Global success toast -->
|
||||
<div id="toast-post-success" class="toast fixed bottom-4 mx-auto left-0 right-0 w-96" style="z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
||||
<div class="flex items-center justify-center p-3 bg-green-500 border border-green-600 text-center text-white rounded shadow-inset-t-white-10">
|
||||
<i class="fas fa-check-circle fa-fw mr-2"></i>
|
||||
<span id="toast-post-success-text">
|
||||
Action successful!
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="toast" id="toast-post-error" style="position: fixed; bottom: 1.5rem; margin: 0 auto; left: 0; right: 0; width: 275px; z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
||||
<div class="toast-body bg-red-500 border border-red-900 text-center text-white">
|
||||
<i class="fas fa-exclamation-circle mr-2"></i><span id="toast-post-error-text">Error, please try again later.</span>
|
||||
<!-- Global error toast -->
|
||||
<div id="toast-post-error" class="toast fixed bottom-4 mx-auto left-0 right-0 w-96" style="z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-bs-animation="true" data-bs-autohide="true" data-bs-delay="5000">
|
||||
<div class="flex items-center justify-center p-3 bg-red-500 border border-red-600 text-center text-white rounded shadow-inset-t-white-10">
|
||||
<i class="fas fa-exclamation-circle fa-fw mr-2"></i>
|
||||
<span id="toast-post-error-text">
|
||||
Error, please try again later.
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
|
@ -38,7 +38,7 @@
|
|||
<div class="absolute -top-12 right-3">
|
||||
<ul class="flex flex-wrap space-x-2 items-center mb-0">
|
||||
{% if v.admin_level > 1 %}
|
||||
<li>
|
||||
<li class="md:hidden">
|
||||
{% include 'CHRISTMAS//dropdowns/ProfileAdminDropdown.html' %}
|
||||
</li>
|
||||
{% endif %}
|
||||
|
@ -70,7 +70,13 @@
|
|||
{% endif %}
|
||||
{% if v.id != u.id %}
|
||||
<li>
|
||||
<button class="btn btn-gray shadow" data-bs-toggle="modal" data-bs-target="#directMessageModal">
|
||||
<button class="btn btn-gray shadow" data-bs-toggle="modal" data-bs-target="#giftCoinsModal">
|
||||
<i class="fas fa-gift fa-sm fa-fw md:mr-1"></i>
|
||||
<span class="hidden md:inline-block">Gift Coins</span>
|
||||
</button >
|
||||
</li>
|
||||
<li>
|
||||
<button class="btn btn-gray shadow" data-bs-toggle="modal" data-bs-target="#directMessageModal" data-bs-recipient="{{ u.username }}">
|
||||
<i class="fas fa-paper-plane fa-sm fa-fw md:mr-1"></i>
|
||||
<span class="hidden md:inline-block">Message</span>
|
||||
</button >
|
||||
|
@ -390,7 +396,6 @@
|
|||
{% if v %}
|
||||
{% include "CHRISTMAS/emoji_modal.html" %}
|
||||
{% include "CHRISTMAS/gif_modal.html" %}
|
||||
{% include "CHRISTMAS/modals/ModalDirectMessage.html" %}
|
||||
{% include "CHRISTMAS/modals/ModalGiftCoins.html" %}
|
||||
{% if v.admin_level > 1 %}
|
||||
{% include "CHRISTMAS/modals/ModalAdminManageUser.html" %}
|
||||
|
|
Loading…
Reference in New Issue