Merge branch 'frost' of https://github.com/Aevann1/Drama into frost

master
Aevann1 2021-12-24 03:16:22 +02:00
commit eec7bf22b5
34 changed files with 490 additions and 397 deletions

View File

@ -735,6 +735,10 @@ video {
line-height: 1.5;
--tw-text-opacity: 1;
color: rgba(var(--color-700), var(--tw-text-opacity));
}
.dark .label {
--tw-text-opacity: 1;
color: rgba(var(--color-500), var(--tw-text-opacity));
}
.container {
width: 100%;
@ -845,6 +849,9 @@ video {
.-right-2 {
right: -0.5rem;
}
.top-1 {
top: 0.25rem;
}
.bottom-3 {
bottom: 0.75rem;
}
@ -921,6 +928,10 @@ video {
margin-left: 1rem;
margin-right: 1rem;
}
.mx-2 {
margin-left: 0.5rem;
margin-right: 0.5rem;
}
.my-0 {
margin-top: 0px;
margin-bottom: 0px;
@ -1113,9 +1124,6 @@ video {
.h-9 {
height: 2.25rem;
}
.h-screen {
height: 100vh;
}
.h-10 {
height: 2.5rem;
}
@ -1146,6 +1154,9 @@ video {
.h-1 {
height: 0.25rem;
}
.h-screen {
height: 100vh;
}
.h-3 {
height: 0.75rem;
}
@ -1379,16 +1390,16 @@ video {
.gap-y-2 {
row-gap: 0.5rem;
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-x-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-x-3 > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.75rem * var(--tw-space-x-reverse));
@ -1399,6 +1410,11 @@ video {
margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
@ -1419,11 +1435,6 @@ video {
margin-right: calc(1.25rem * var(--tw-space-x-reverse));
margin-left: calc(1.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.divide-x > :not([hidden]) ~ :not([hidden]) {
--tw-divide-x-reverse: 0;
border-right-width: calc(1px * var(--tw-divide-x-reverse));
@ -1465,6 +1476,9 @@ video {
.overflow-y-auto {
overflow-y: auto;
}
.overflow-x-hidden {
overflow-x: hidden;
}
.overflow-y-hidden {
overflow-y: hidden;
}
@ -1615,14 +1629,14 @@ video {
.bg-primary\/20 {
background-color: rgba(var(--color-primary), 0.2);
}
.bg-gray-500 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-500), var(--tw-bg-opacity));
}
.bg-gray-700 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-700), var(--tw-bg-opacity));
}
.bg-gray-500 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-500), var(--tw-bg-opacity));
}
.bg-gray-300 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-300), var(--tw-bg-opacity));
@ -1722,13 +1736,21 @@ video {
--tw-bg-opacity: 1;
background-color: rgba(219, 39, 119, var(--tw-bg-opacity));
}
.bg-\[\#d4d4d8\] {
.bg-\[\#524737\] {
--tw-bg-opacity: 1;
background-color: rgba(212, 212, 216, var(--tw-bg-opacity));
background-color: rgba(82, 71, 55, var(--tw-bg-opacity));
}
.bg-\[\#e4e4e7\] {
.bg-\[\#dbd8d1\] {
--tw-bg-opacity: 1;
background-color: rgba(228, 228, 231, var(--tw-bg-opacity));
background-color: rgba(219, 216, 209, var(--tw-bg-opacity));
}
.bg-\[\#ebe9e5\] {
--tw-bg-opacity: 1;
background-color: rgba(235, 233, 229, var(--tw-bg-opacity));
}
.bg-\[\#155e75\] {
--tw-bg-opacity: 1;
background-color: rgba(21, 94, 117, var(--tw-bg-opacity));
}
.bg-\[\#334155\] {
--tw-bg-opacity: 1;
@ -1786,10 +1808,6 @@ video {
--tw-bg-opacity: 1;
background-color: rgba(219, 218, 209, var(--tw-bg-opacity));
}
.bg-\[\#ebe9e5\] {
--tw-bg-opacity: 1;
background-color: rgba(235, 233, 229, var(--tw-bg-opacity));
}
.bg-\[\#059669\] {
--tw-bg-opacity: 1;
background-color: rgba(5, 150, 105, var(--tw-bg-opacity));
@ -1838,10 +1856,6 @@ video {
--tw-bg-opacity: 1;
background-color: rgba(14, 116, 144, var(--tw-bg-opacity));
}
.bg-\[\#155e75\] {
--tw-bg-opacity: 1;
background-color: rgba(21, 94, 117, var(--tw-bg-opacity));
}
.bg-\[\#0d9488\] {
--tw-bg-opacity: 1;
background-color: rgba(13, 148, 136, var(--tw-bg-opacity));
@ -1906,13 +1920,13 @@ video {
--tw-bg-opacity: 1;
background-color: rgba(72, 236, 135, var(--tw-bg-opacity));
}
.bg-\[\#524737\] {
.bg-\[\#d4d4d8\] {
--tw-bg-opacity: 1;
background-color: rgba(82, 71, 55, var(--tw-bg-opacity));
background-color: rgba(212, 212, 216, var(--tw-bg-opacity));
}
.bg-\[\#dbd8d1\] {
.bg-\[\#e4e4e7\] {
--tw-bg-opacity: 1;
background-color: rgba(219, 216, 209, var(--tw-bg-opacity));
background-color: rgba(228, 228, 231, var(--tw-bg-opacity));
}
.bg-gray-300\/40 {
background-color: rgba(var(--color-300), 0.4);
@ -1947,10 +1961,6 @@ video {
--tw-gradient-from: rgb(var(--color-800));
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(var(--color-800), 0));
}
.from-red-700 {
--tw-gradient-from: #b91c1c;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(185, 28, 28, 0));
}
.from-green-700 {
--tw-gradient-from: #15803d;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(21, 128, 61, 0));
@ -1959,6 +1969,10 @@ video {
--tw-gradient-from: #d97706;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0));
}
.from-red-700 {
--tw-gradient-from: #b91c1c;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(185, 28, 28, 0));
}
.to-gray-200 {
--tw-gradient-to: rgb(var(--color-200));
}
@ -1971,15 +1985,15 @@ video {
.to-gray-700 {
--tw-gradient-to: rgb(var(--color-700));
}
.to-red-600 {
--tw-gradient-to: #dc2626;
}
.to-green-600 {
--tw-gradient-to: #16a34a;
}
.to-yellow-500 {
--tw-gradient-to: #f59e0b;
}
.to-red-600 {
--tw-gradient-to: #dc2626;
}
.bg-cover {
background-size: cover;
}
@ -2146,6 +2160,9 @@ video {
.pt-0 {
padding-top: 0px;
}
.pb-2 {
padding-bottom: 0.5rem;
}
.pt-16 {
padding-top: 4rem;
}
@ -2206,15 +2223,15 @@ video {
.text-\[8px\] {
font-size: 8px;
}
.font-medium {
font-weight: 500;
}
.font-bold {
font-weight: 700;
}
.font-normal {
font-weight: 400;
}
.font-medium {
font-weight: 500;
}
.uppercase {
text-transform: uppercase;
}
@ -2315,6 +2332,10 @@ video {
--tw-text-opacity: 1;
color: rgba(185, 28, 28, var(--tw-text-opacity));
}
.text-red-400 {
--tw-text-opacity: 1;
color: rgba(248, 113, 113, var(--tw-text-opacity));
}
.text-yellow-600 {
--tw-text-opacity: 1;
color: rgba(217, 119, 6, var(--tw-text-opacity));
@ -2345,6 +2366,10 @@ video {
.text-white\/50 {
color: rgba(255, 255, 255, 0.5);
}
.text-\[\#155e75\] {
--tw-text-opacity: 1;
color: rgba(21, 94, 117, var(--tw-text-opacity));
}
.text-\[\#0284c7\] {
--tw-text-opacity: 1;
color: rgba(2, 132, 199, var(--tw-text-opacity));
@ -2389,10 +2414,6 @@ video {
--tw-text-opacity: 1;
color: rgba(72, 236, 135, var(--tw-text-opacity));
}
.text-\[\#155e75\] {
--tw-text-opacity: 1;
color: rgba(21, 94, 117, var(--tw-text-opacity));
}
.antialiased {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
@ -2573,7 +2594,7 @@ video {
--color-200: 226,232,240;
--color-300: 203,213,225;
--color-400: 148,163,184;
--color-500: 100,116,139;
--color-500: 114,129,149;
--color-600: 71,85,105;
--color-700: 45,60,80;
--color-800: 30,41,59;
@ -3093,11 +3114,6 @@ video {
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(var(--color-100), 0));
}
.hover\:from-red-600:hover {
--tw-gradient-from: #dc2626;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(220, 38, 38, 0));
}
.hover\:from-green-600:hover {
--tw-gradient-from: #16a34a;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(22, 163, 74, 0));
@ -3118,6 +3134,11 @@ video {
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(217, 119, 6, 0));
}
.hover\:from-red-600:hover {
--tw-gradient-from: #dc2626;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(220, 38, 38, 0));
}
.hover\:from-green-800:hover {
--tw-gradient-from: #166534;
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(22, 101, 52, 0));
@ -3127,10 +3148,6 @@ video {
--tw-gradient-to: rgb(var(--color-200));
}
.hover\:to-red-700:hover {
--tw-gradient-to: #b91c1c;
}
.hover\:to-green-700:hover {
--tw-gradient-to: #15803d;
}
@ -3139,13 +3156,17 @@ video {
--tw-gradient-to: #d97706;
}
.hover\:to-red-700:hover {
--tw-gradient-to: #b91c1c;
}
.hover\:to-yellow-500:hover {
--tw-gradient-to: #f59e0b;
}
.hover\:text-red-600:hover {
.hover\:text-primary:hover {
--tw-text-opacity: 1;
color: rgba(220, 38, 38, var(--tw-text-opacity));
color: rgba(var(--color-primary), var(--tw-text-opacity));
}
.hover\:text-gray-900:hover {
@ -3178,11 +3199,6 @@ video {
color: rgba(255, 255, 255, var(--tw-text-opacity));
}
.hover\:text-primary:hover {
--tw-text-opacity: 1;
color: rgba(var(--color-primary), var(--tw-text-opacity));
}
.hover\:text-green-700:hover {
--tw-text-opacity: 1;
color: rgba(21, 128, 61, var(--tw-text-opacity));
@ -3223,6 +3239,11 @@ video {
color: rgba(239, 68, 68, var(--tw-text-opacity));
}
.hover\:text-red-600:hover {
--tw-text-opacity: 1;
color: rgba(220, 38, 38, var(--tw-text-opacity));
}
.hover\:underline:hover {
text-decoration: underline;
}
@ -3314,11 +3335,6 @@ video {
color: rgba(var(--color-500), var(--tw-text-opacity));
}
.focus\:text-gray-400:focus {
--tw-text-opacity: 1;
color: rgba(var(--color-400), var(--tw-text-opacity));
}
.focus\:text-yellow-500:focus {
--tw-text-opacity: 1;
color: rgba(245, 158, 11, var(--tw-text-opacity));
@ -3329,6 +3345,11 @@ video {
color: rgba(var(--color-200), var(--tw-text-opacity));
}
.focus\:text-gray-400:focus {
--tw-text-opacity: 1;
color: rgba(var(--color-400), var(--tw-text-opacity));
}
.focus\:shadow-inner:focus {
--tw-shadow: inset 0 2px 4px 0 rgba(0, 0, 0, 0.06);
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
@ -3396,6 +3417,10 @@ video {
outline-offset: 2px;
}
.group:hover .group-hover\:block {
display: block;
}
.peer:checked ~ .peer-checked\:border-blue-500 {
--tw-border-opacity: 1;
border-color: rgba(14, 165, 233, var(--tw-border-opacity));
@ -3419,6 +3444,11 @@ video {
border-bottom-width: 1px;
}
.dark .dark\:border-gray-900 {
--tw-border-opacity: 1;
border-color: rgba(var(--color-900), var(--tw-border-opacity));
}
.dark .dark\:border-gray-700 {
--tw-border-opacity: 1;
border-color: rgba(var(--color-700), var(--tw-border-opacity));
@ -3434,25 +3464,24 @@ video {
border-color: rgba(var(--color-800), var(--tw-border-opacity));
}
.dark .dark\:border-gray-900 {
--tw-border-opacity: 1;
border-color: rgba(var(--color-900), var(--tw-border-opacity));
.dark .dark\:border-transparent {
border-color: transparent;
}
.dark .dark\:border-white\/\[\.05\] {
border-color: rgba(255, 255, 255, .05);
}
.dark .dark\:bg-gray-900 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-900), var(--tw-bg-opacity));
}
.dark .dark\:bg-gray-700 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-700), var(--tw-bg-opacity));
}
.dark .dark\:bg-gray-900 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-900), var(--tw-bg-opacity));
}
.dark .dark\:bg-gray-800 {
--tw-bg-opacity: 1;
background-color: rgba(var(--color-800), var(--tw-bg-opacity));
@ -3462,6 +3491,10 @@ video {
background-color: rgba(255, 255, 255, .05);
}
.dark .dark\:bg-white\/10 {
background-color: rgba(255, 255, 255, 0.1);
}
.dark .dark\:bg-gray-700\/40 {
background-color: rgba(var(--color-700), 0.4);
}
@ -3470,16 +3503,16 @@ video {
background-image: none;
}
.dark .dark\:text-gray-400 {
--tw-text-opacity: 1;
color: rgba(var(--color-400), var(--tw-text-opacity));
}
.dark .dark\:text-gray-100 {
--tw-text-opacity: 1;
color: rgba(var(--color-100), var(--tw-text-opacity));
}
.dark .dark\:text-gray-400 {
--tw-text-opacity: 1;
color: rgba(var(--color-400), var(--tw-text-opacity));
}
.dark .dark\:text-gray-200 {
--tw-text-opacity: 1;
color: rgba(var(--color-200), var(--tw-text-opacity));
@ -3569,10 +3602,6 @@ video {
justify-content: flex-start;
}
.sm\:overflow-y-auto {
overflow-y: auto;
}
.sm\:px-0 {
padding-left: 0px;
padding-right: 0px;
@ -3640,10 +3669,6 @@ video {
margin-bottom: 1rem;
}
.md\:mb-0 {
margin-bottom: 0px;
}
.md\:ml-\[4\.5rem\] {
margin-left: 4.5rem;
}
@ -3738,6 +3763,10 @@ video {
border-color: rgba(var(--color-300), var(--tw-divide-opacity));
}
.md\:overflow-x-visible {
overflow-x: visible;
}
.md\:border-t {
border-top-width: 1px;
}
@ -3853,6 +3882,10 @@ video {
display: block;
}
.lg\:inline-block {
display: inline-block;
}
.lg\:flex {
display: flex;
}

View File

@ -99,7 +99,7 @@
--color-200: 226,232,240;
--color-300: 203,213,225;
--color-400: 148,163,184;
--color-500: 100,116,139;
--color-500: 114,129,149;
--color-600: 71,85,105;
--color-700: 45,60,80;
--color-800: 30,41,59;
@ -340,7 +340,7 @@
}
/*Inputs*/
.label {
@apply block font-bold text-gray-700 text-sm leading-normal mb-1;
@apply block font-bold text-gray-700 dark:text-gray-500 text-sm leading-normal mb-1;
}
}

View File

@ -1,13 +1,23 @@
{% for c in p.bet_options %}
<span id="span-{{c.id}}" {% if c.poll_voted(v) %}class="bet_voted"{% endif %}>
<input {% if c.poll_voted(v) %}checked{% endif %} class="bet" {% if not (v and v.coins > 200) or p.total_bet_voted(v) %}disabled{% endif %} type="radio" id="{{c.id}}" onchange="bet_vote('{{c.id}}')">
</span>
<label for="{{c.id}}">
{{c.body_html | safe}} -
<a href="/votes?link=t3_{{c.id}}">
<span id="bet-{{c.id}}">{{c.upvotes}}</span> bets
</a>
{% if not p.total_bet_voted(v) %} (cost of entry: 200 coins){% endif %}
</label>
<br>
{% endfor %}
<ul class="mb-0 list-none">
{% for c in p.bet_options %}
<li class="group flex items-center space-x-2">
<span id="span-{{c.id}}" {% if c.poll_voted(v) %}class="bet_voted"{% endif %}>
<input type="radio" id="{{c.id}}" {% if c.poll_voted(v) %}checked{% endif %} class="bet" onchange="bet_vote('{{c.id}}')" {% if not (v and v.coins > 200) or p.total_bet_voted(v) %}disabled{% endif %}>
</span>
<label for="{{c.id}}">
{{c.body_html | safe}} -
<a href="/votes?link=t3_{{c.id}}">
<span id="bet-{{c.id}}">{{c.upvotes}}</span> bets
</a>
{% if not p.total_bet_voted(v) %} (cost of entry: 200 coins){% endif %}
</label>
{% if v and v.admin_level > 2 %}
<div class="hidden group-hover:block">
<button class="btn btn-gray" onclick="post_toast('/distribute/{{c.id}}')">
Declare winner
</button>
</div>
{% endif %}
</li>
{% endfor %}
</ul>

View File

@ -1,14 +1,16 @@
<div class="md:inline-block px-4 py-2 md:py-3 bg-gray-100 border border-gray-300 rounded-md shadow-inset-t-white-10 select-none">
<ul class="flex flex-col space-y-2 mb-0">
{% for c in p.options %}
<li>
<input type="checkbox" id="{{c.id}}" name="option" {% if c.poll_voted(v) %}checked{% endif %} onchange="poll_vote('{{c.id}}')">
<label class="inline-block pl-2 text-black" for="{{c.id}}">{{c.body_html | safe}} -
<a href="/votes?link=t3_{{c.id}}" class="font-bold text-gray-600 hover:text-red-600">
<span id="poll-{{c.id}}">{{c.upvotes}}</span> votes
</a>
</label>
</li>
{% endfor %}
<div class="md:inline-block px-4 py-2 md:py-3 bg-gray-100 dark:bg-gray-700 border border-gray-300 dark:border-gray-900 rounded-md shadow-inset-t-white-10 select-none">
<ul class="flex flex-col space-y-1 mb-0">
{% for c in p.options %}
<li>
<input type="checkbox" id="{{c.id}}" name="option" {% if c.poll_voted(v) %}checked{% endif %} onchange="{% if v %}poll_vote('{{c.id}}'){% else %}poll_vote_no_v(){% endif %}">
<label class="inline-block pl-2" for="{{c.id}}">{{c.body_html | safe}}
<span class="presult {% if not p.total_poll_voted(v) %}hidden{% endif %}"> -
<a href="/votes?link=t3_{{c.id}}" class="font-medium text-gray-500 hover:text-primary">
<span id="poll-{{c.id}}">{{c.upvotes}}</span> votes
</a>
</span>
</label>
</li>
{% endfor %}
</ul>
</div>

View File

@ -1,14 +1,14 @@
<div style="display:none" id="popover">
<div class="popover-user-profile" role="tooltip">
<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 shadow-sm">
<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">
<h5 class="pop-username truncate ellipsis text-black"></h5>
<h5 class="pop-username truncate ellipsis"></h5>
</div>
</div>
<div class="px-3">
<span class="pop-bio popover-bio text-black"></span>
<span class="pop-bio popover-bio"></span>
</div>
<div class="pop-badges ml-3 mr-3 my-2">
@ -16,16 +16,16 @@
<div class="border-t flex items-center p-3 gap-3 text-sm">
<span>
<strong class="pop-postcount text-black"></strong>
<span class="text-black">posts</span>
<strong class="pop-postcount"></strong>
<span class="text-gray-500">posts</span>
</span>
<span class="ml-3">
<strong class="pop-commentcount text-black"></strong>
<span class="text-black">comments</span>
<strong class="pop-commentcount"></strong>
<span class="text-gray-500">comments</span>
</span>
<span class="ml-3">
<strong class="pop-coins text-black"></strong>
<span class="text-black">coins</span>
<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

View File

@ -56,7 +56,11 @@
{% for k, v in badge_types.items() %}
<tr>
<td><input type="radio" id="badge-{{k}}" name="badge_id" value="{{k}}"></td>
<td><label for="badge-{{k}}"><img loading="lazy" src="/assets/CHRISTMAS/images/badges/{{v['name']}}.webp?v=205" class="object-contain w-16 h-16 p-2"></label></td>
<td>
<label for="badge-{{k}}">
<img loading="lazy" src="/assets/CHRISTMAS/images/badges/{{v['name']}}.webp?v=205" class="object-contain w-16 h-16 p-2" alt="{{v['name']}} badge"/>
</label>
</td>
<td>{{v['name']}}</td>
<td>{{v['description']}}</td>
</tr>

View File

@ -5,12 +5,8 @@
{% endblock %}
{% block content %}
<pre>
</pre>
<table class="table table-striped mb-5">
<div class="col-span-full my-2 px-2.5 md:px-0">
<table class="w-full table table-striped mb-5">
<thead class="bg-primary text-white">
<tr>
<th style="font-weight:bold;">Domain</th>
@ -33,5 +29,6 @@
<input name="reason" placeholder="Enter ban reason here.." onchange="document.getElementById('ban-submit').disabled=false" class="form-control">
<input id="ban-submit" type="submit" class="btn btn-primary" value="Toggle ban" disabled>
</form>
</div>
{% endblock %}

View File

@ -1,4 +1,4 @@
<script src="/assets/CHRISTMAS/js/award_modal.js?v=200"></script>
<script src="/assets/CHRISTMAS/js/award_modal.js?v=203"></script>
<div class="modal fade" id="awardModal" tabindex="-1" role="dialog" aria-labelledby="awardModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered" role="document">
@ -16,8 +16,8 @@
{% for award in v.user_awards %}
<div class="my-4 px-4 w-1/2 overflow-hidden lg:w-1/4 flex items-center justify-center">
{% if award.owned %}
<input hidden name="kind" value="{{award.kind}}" type="radio" id="{{award.kind}}-award" class="peer">
<label for="{{award.kind}}-award" onclick="document.getElementById('giveaward').disabled=false" class="w-full h-full p-2 text-center hover:bg-gray-300 peer-checked:shadow-inner peer-checked:bg-gray-400 rounded">
<input hidden name="kind" value="{{award.kind}}" type="radio" id="{{award.kind}}-award" class="peer" onchange="checkAward(this.value)">
<label for="{{award.kind}}-award" onclick="document.getElementById('giveaward').disabled=false;" class="w-full h-full p-2 text-center hover:bg-gray-300 peer-checked:shadow-inner peer-checked:bg-gray-400 rounded">
{% else %}
<input hidden name="kind" value="{{award.kind}}" type="radio" id="{{award.kind}}-award" class="peer" disabled>
<label for="{{award.kind}}-award" onclick="document.getElementById('giveaward').disabled=false" class="w-full h-full p-2 text-center hover:bg-gray-300 peer-checked:shadow-inner peer-checked:bg-gray-400 rounded cursor-not-allowed opacity-50">
@ -28,15 +28,10 @@
</label>
</div>
{% endfor %}
<a class="card disabled d-md-none" style="border:none">
<i class="fas fa-volume-mute" style="opacity:0"></i>
<div class="pt-2" style="font-weight: bold; font-size: 14px; color:#E1E1E1">&nbsp;</div>
<div class="text-muted">&nbsp;</div>
</a>
</div>
<label id="notelabel" for="note" class="pt-4 label">
Note
<small class="font-normal text-gray-500">Optional</small>
<small id="notelabel-helper" class="font-normal text-gray-500">Optional</small>
</label>
<textarea id="note" maxlength="200" name="note" class="form-input" placeholder="Note to include in award notification..."></textarea>
<div class="flex justify-end space-x-2 border-t border-gray-300 p-4 -mx-4 mt-4">
@ -49,39 +44,4 @@
</div>
</div>
</div>
</div>
<style>
.awards-wrapper input[type="radio"] {
display: none;
}
.awards-wrapper a {
cursor: pointer;
padding: 15px !important;
text-align: center;
text-transform: none!important;
}
.awards-wrapper a i {
font-size: 25px;
}
.awards-wrapper a.disabled {
opacity: 0.6;
}
.awards-wrapper a:hover:not(.disabled), .awards-wrapper .picked {
background-color: var(--primary)!important;
}
.awards-wrapper input[type="radio"]:checked+a {
background-color: var(--primary)!important;
}
@media (min-width: 767.98px) {
.award-columns {
column-count: 7 !important;
}
}
</style>
</div>

View File

@ -1,16 +1,13 @@
{% extends "CHRISTMAS/default.html" %}
{% block content %}
<pre>
</pre>
<h1>User Badges</h1>
<div>This page describes the requirements for obtaining all profile badges.</div>
<pre>
</pre>
<table class="table table-striped mb-5">
<div class="col-span-full my-4">
<h1 class="h3">
User Badges
</h1>
<p class="text-gray-500 dark:text-gray-400">
This page describes the requirements for obtaining all profile badges.
</p>
<table class="w-full table table-striped mb-5">
<thead class="bg-primary text-white">
<tr>
<th>Name</th>
@ -21,10 +18,10 @@
{% for k,v in badges.items() %}
<tr>
<td>{{v['name']}}</td>
<td><img loading="lazy" src="/assets/CHRISTMAS/images/badges/{{v['name']}}.webp?v=200" width=50 height=50>
<td><img loading="lazy" src="/assets/CHRISTMAS/images/badges/{{v['name']}}.webp?v=200" class="object-contain w-16 h-16 p-2" alt="{{v['name']}} badge"/>
<td>{{v['description']}}</td>
</tr>
{% endfor %}
</table>
</div>
{% endblock %}

View File

@ -1,18 +1,18 @@
{% if v %}
{% include "CHRISTMAS/award_modal.html" %}
<script defer src="/assets/CHRISTMAS/js/marked.js?v=202"></script>
<script defer src="/assets/CHRISTMAS/js/comments_v.js?v=200"></script>
<script defer src="/assets/CHRISTMAS/js/comments_v.js?v=202"></script>
{% endif %}
{% if v and v.admin_level > 1 %}
<script defer src="/assets/CHRISTMAS/js/comments_admin.js?v=200"></script>
{% endif %}
<script defer src="/assets/CHRISTMAS/js/comments.js?v=200"></script>
<script defer src="/assets/CHRISTMAS/js/comments.js?v=201"></script>
{% include "CHRISTMAS/expanded_image_modal.html" %}
<script defer>
<!-- <script defer>
function poll_vote(cid, parentid) {
{% if v %}
for(let el of document.getElementsByClassName('presult-'+parentid)) {
@ -33,8 +33,7 @@
document.getElementById('toast-post-error-text').innerText = "Only logged-in users can vote!";
{% endif %}
}
</script>
</script> -->
{% macro single_comment(c, level=1) %}
@ -78,25 +77,21 @@
<div id="comment-{{c.id}}" class="comment">
<span class="comment-collapse-desktop hidden d-md-block" style="border-left: 2px solid #{{c.author.namecolor}};" onclick="collapse_comment('{{c.id}}')"></span>
<div class="comment-body">
<div id="comment-{{c.id}}-only">
<div class="user-info">
<span class="comment-collapse-icon" onclick="collapse_comment('{{c.id}}')"></span>
<button class="p-2 md:hidden" onclick="collapse_comment('{{c.id}}')">
<i class="fas fa-minus-circle fa-sm fa-fw comment-toggle-icon-{{c.id}}"></i>
</button>
{% if standalone and c.over_18 %}<span class="badge badge-red">+18</span>{% endif %}
{% if c.is_banned %}removed by @{{c.ban_reason}}{% elif c.deleted_utc > 0 %}Deleted by author{% elif c.is_blocking %}You are blocking @{{c.author.username}}{% endif %}
</div>
<div class="user-info">
<span class="comment-collapse-icon" onclick="collapse_comment('{{c.id}}')"></span>
<button class="p-2 md:hidden" onclick="collapse_comment('{{c.id}}')">
<i class="fas fa-minus-circle fa-sm fa-fw comment-toggle-icon-{{c.id}}"></i>
</button>
{% if standalone and c.over_18 %}<span class="badge badge-red">+18</span>{% endif %}
{% if c.is_banned %}removed by @{{c.ban_reason}}{% elif c.deleted_utc > 0 %}Deleted by author{% elif c.is_blocking %}You are blocking @{{c.author.username}}{% endif %}
</div>
</div>
{% if render_replies %}
{% if level<10 %}
<div id="replies-of-{{c.id}}" class="">
@ -124,17 +119,14 @@
</div>
</div>
{% else %}
{% set score=c.score %}
{% if v %}
{% set voted=c.voted %}
{% set voted=c.voted %}
{% else %}
{% set voted=-2 %}
{% set voted=-2 %}
{% endif %}
{% if standalone and level==1 %}
@ -356,7 +348,7 @@
{% include "CHRISTMAS/comments/CommentEditForm.html" %}
{% endif %}
<!-- Comment actions -->
<div id="comment-{{c.id}}-actions" class="hidden-on-collapse py-3 {% if voted==1 %} upvoted{% elif voted==-1 %} downvoted{% endif %}">
<div id="comment-{{c.id}}-actions" class="hidden-on-collapse pt-3 pb-2 {% if voted==1 %} upvoted{% elif voted==-1 %} downvoted{% endif %}">
{% include "CHRISTMAS/comments/CommentActions.html" %}
</div>
{% endif %}
@ -424,17 +416,15 @@
<div class="modal-dialog modal-dialog-centered" 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="modal-title">Delete comment?</h5>
<h5 class="font-bold text-xl leading-normal">Delete comment?</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 text-center">
<div class="py-4">
<i class="fad fa-trash-alt text-gray-400" style="font-size: 3.5rem;"></i>
<div class="mb-3">
<i class="fad fa-trash-alt fa-lg text-red-600"></i>
</div>
<p>
Your comment will be removed everywhere on {{'SITE_NAME' | app_config}}. This action can be undone.
</p>

View File

@ -1,4 +1,4 @@
<ul class="flex items-center justify-end md:justify-start space-x-5 text-sm text-gray-500 mb-0">
<ul class="flex flex-wrap items-center justify-end md:justify-start space-x-3 gap-2 text-sm text-gray-500 mb-0">
{% if v and request.path.startswith('/@') and v.admin_level == 0%}
{% if voted==1 %}
@ -42,7 +42,7 @@
</li>
<li class="list-inline-item text-muted hidden md:block">
<button href="javascript:void(0)" data-bs-toggle="modal" data-bs-target="#awardModal" onclick="awardModal('/comment/{{c.id}}/awards')">
<i class="fas fa-gift fa-fw mr-2" aria-hidden="true"></i>Gift Award
<i class="fas fa-gift fa-fw mr-2" aria-hidden="true"></i>Award
</button>
</li>
<li id="unsave-{{c.id}}" class="hidden {% if c.id in v.saved_comment_idlist() %}md:block{% endif %}">
@ -73,6 +73,14 @@
</a>
</li>
{% if v and c.parent_submission and c.author_id==v.id %}
<li>
<button class="hover:text-gray-400" onclick="toggleEdit('{{c.id}}')">
<i class="fas fa-pencil fa-fw mr-2"></i>Edit
</button>
</li>
{% endif %}
<li class="hidden md:block">
<div class="dropdown">
<button type="button" id="dropdownComment-{{c.id}}Actions" data-bs-toggle="dropdown" aria-expanded="false" data-bs-auto-close="outside">
@ -90,12 +98,11 @@
</a>
</li>
{% if v and c.parent_submission and c.author_id==v.id %}
<li class="hidden md:block">
<li class="hidden">
<button class="dropdown-item dropdown-item-primary" onclick="toggleEdit('{{c.id}}')">
<i class="fas fa-edit fa-sm fa-fw mr-4"></i>Edit
<i class="fas fa-pencil fa-sm fa-fw mr-4"></i>Edit
</button>
</li>
{% if c.deleted_utc > 0 %}
<li class="hidden md:block">
<button class="dropdown-item dropdown-item-primary" onclick="post_toast('/undelete/comment/{{c.id}}')">

View File

@ -1,5 +1,11 @@
{% if v and v.theme2 %}
{% set theme = v.theme2 %}
{% else %}
{% set theme = 'theme-iron dark' %}
{% endif %}
<!DOCTYPE html>
<html lang="en">
<html lang="en" class="{{ theme }}">
<head>
{% if v and v.agendaposter %}
<script src="/assets/CHRISTMAS/js/agendaposter.js"></script>
@ -188,7 +194,7 @@
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=440">
<link rel="stylesheet" href="/static/dist/main.css?v=440">
<link rel="stylesheet" href="/static/dist/main.css?v=450">
<link rel="stylesheet" href="/assets/CHRISTMAS/css/mistletoe.css?v=400">
@ -217,13 +223,7 @@
</head>
{% if v and v.theme2 %}
{% set theme = v.theme2 %}
{% else %}
{% set theme = 'theme-iron dark' %}
{% endif %}
<body id="{% if request.path != '/comments' %}{% block pagetype %}frontpage{% endblock %}{% endif %}" class="{{ theme }} overflow-hidden overflow-y-auto sm:overflow-y-none antialiased bg-cover bg-center bg-gray-500 text-black dark:bg-gray-700 dark:text-gray-100">
<body id="{% if request.path != '/comments' %}{% block pagetype %}frontpage{% endblock %}{% endif %}" class="overflow-hidden overflow-y-auto antialiased text-black bg-gray-700 dark:text-gray-100">
{% block Banner %}
{% endblock %}
@ -239,8 +239,8 @@
{% block postNav %}
{% endblock %}
<div class="flex h-screen pt-16 bg-gray-500 dark:bg-gray-700 dark:text-gray-200">
<div class="w-full sm:overflow-y-auto">
<div class="flex h-full pt-16 bg-gray-500 dark:bg-gray-700 dark:text-gray-200">
<div class="w-full">
{% block desktopUserBanner %}
{% endblock %}
@ -342,7 +342,7 @@
<script defer src="/assets/CHRISTMAS/js/popover.js?v=200"></script>
<script src="/assets/CHRISTMAS/js/mobile_navigation_bar.js?v=204"></script>
<script src="/assets/CHRISTMAS/js/mobile_navigation_bar.js?v=208"></script>
{% if v %}
<script>function formkey() {return '{{v.formkey}}';}</script>
@ -350,19 +350,19 @@
<script>
var previousTheme = '{{ v.theme2 }}'.split(' ');
function changeTheme(theme) {
const body = document.body;
// if previous selection has a value, remove them from body tag
const root = document.documentElement
// if previous selection has a value, remove them from root html tag
if (previousTheme.length) {
previousTheme.map(v => body.classList.toggle(v));
previousTheme.map(v => root.classList.toggle(v));
}
// toggle classes in body tag
theme.map(v => body.classList.toggle(v));
// toggle classes in root html tag
theme.map(v => root.classList.toggle(v));
// Set global previous selection to current selection
previousTheme = theme;
}
</script>
{% endif %}
<script src="/assets/CHRISTMAS/js/default.js?v=205"></script>
<script src="/assets/CHRISTMAS/js/default.js?v=206"></script>
</body>
</html>

View File

@ -1,38 +1,25 @@
<script src="/assets/CHRISTMAS/js/delete_post_modal.js?v=200"></script>
<script src="/assets/CHRISTMAS/js/delete_post_modal.js?v=201"></script>
<div class="modal fade modal-sm-bottom" id="deletePostModal" tabindex="-1" role="dialog" aria-labelledby="deletePostModalTitle" aria-hidden="true">
<div class="modal fade" id="deletePostModal" tabindex="-1" role="dialog" aria-labelledby="deletePostModalTitle" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header d-none d-md-flex">
<h5 class="modal-title">Delete post?</h5>
<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 leading-normal">Delete post?</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 text-center">
<div class="py-4">
<i class="fad fa-trash-alt text-muted d-none d-md-block" style="font-size: 3.5rem;"></i>
<div class="mb-3">
<i class="fad fa-trash-alt fa-lg text-red-600"></i>
</div>
<div class="h4 d-md-none">Delete post?</div>
<p class="d-none d-md-block">Your post will be removed everywhere on {{'SITE_NAME' | app_config}}. This action can be undone.</p>
<p class="text-muted d-md-none">Your post will be removed everywhere on {{'SITE_NAME' | app_config}}. This action can be undone.</p>
<div class="d-md-none">
<button type="button" id="deletePostButton-mobile" class="btn btn-danger btn-block btn-lg">Delete post</button>
<button type="button" class="btn btn-secondary btn-block btn-lg" data-bs-dismiss="modal">Cancel</button>
</div>
<p>
Your post will be removed everywhere on {{'SITE_NAME' | app_config}}. This action can be undone.
</p>
</div>
<div class="modal-footer d-none d-md-flex">
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
<button type="button" id="deletePostButton" class="btn btn-danger">Delete post</button>
<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 type="button" id="deletePostButton" class="btn btn-red">Delete post</button>
</div>
</div>
</div>

View File

@ -126,14 +126,16 @@
</div>
<!-- Mobile menu, show/hide based on menu state. -->
<div class="offcanvas offcanvas-end bg-gray-200" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel">
<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-16 px-4 items-center snowcaps">
<a class="block" href="{{ '/' if v else '/logged_out'}}">
<img class="block lg:hidden w-32 object-contain" src="/assets/CHRISTMAS/images/logos/winter/logo-{{ random }}.png" alt="logo">
<img class="hidden lg:block w-32 object-contain" src="/assets/CHRISTMAS/images/logos/winter/logo-{{ random }}.png" alt="logo">
</a>
<button type="button" class="ml-auto close" data-bs-dismiss="offcanvas" aria-label="Close">
<span aria-hidden="true"><i class="far fa-times"></i></span>
<button type="button" class="ml-auto close p-2" data-bs-dismiss="offcanvas" aria-label="Close">
<span aria-hidden="true">
<i class="far fa-times"></i>
</span>
</button>
</div>
<div class="offcanvas-body">
@ -160,7 +162,10 @@
<div class="flex space-x-3 mt-1">
<small class="flex items-center block mt-1 text-gray-500">
<img data-bs-toggle="tooltip" data-bs-placement="bottom" src="/assets/images/emojis/marseycoin.webp" data-bs-original-title="{{'COINS_NAME' | app_config}}" aria-label="{{'COINS_NAME' | app_config}}" class="w-6 h-6 object-contain" alt="coin icon"/>
<span class="pl-1">{{v.coins}} {{'COINS_NAME' | app_config}}</span>
<span class="pl-1">
<span id="user-coins-amount">{{v.coins}}</span>
{{'COINS_NAME' | app_config}}
</span>
</small>
{% if v.procoins %}
<small class="flex items-center block mt-1 text-gray-500">

View File

@ -1,6 +1,6 @@
<div class="container inline-flex sm:hidden">
<div class="z-100 fixed shadow-sm bottom-0 w-full dark:bg-none bg-gradient-to-t from-gray-200 to-gray-100 dark:bg-gray-700 border-t border-gray-300 dark:border-gray-900 px-4 py-3" id="mobile-bottom-navigation-bar" style="transition: transform cubic-bezier(0, 0, 0.2, 1) 220ms;">
<div class="z-100 fixed shadow-sm bottom-0 w-full dark:bg-none bg-gradient-to-t from-gray-200 to-gray-100 dark:bg-gray-700 border-t border-gray-300 dark:border-transparent px-4 py-3" id="mobile-bottom-navigation-bar" style="transition: transform cubic-bezier(0, 0, 0.2, 1) 220ms;">
<ul class="flex flex-nowrap justify-around text-shadow mb-0">
<li>

View File

@ -2,7 +2,7 @@
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content rounded-t-md w-full bg-gray-200">
<div class="relative rounded-t-md border-b border-gray-300 p-3">
<h5 class="font-bold font-heading text-lg mb-0">More options</h5>
<h5 class="font-bold text-black text-lg mb-0">More options</h5>
<button type="button" class="close absolute right-3.5 top-3.5" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">
<i class="fas fa-times-circle text-gray-500"></i>
@ -19,7 +19,7 @@
{% if v %}
<li>
<button class="btn btn-gray w-full text-left" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#awardModal" onclick="awardModal('/comment/{{c.id}}/awards')">
<i class="fas fa-gift fa-fw mr-4"></i>Give Award
<i class="fas fa-gift fa-fw mr-4"></i>Award
</button>
</li>
<li id="save2-{{c.id}}" class="{% if c.id in v.saved_comment_idlist() %}hidden{% endif %}">

View File

@ -1,8 +1,8 @@
<div class="modal fade" id="giftCoinsModal" tabindex="-1" role="dialog" aria-labelledby="giftCoinsTitle" aria-hidden="true">
<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 rounded-md shadow-lg">
<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 text-black font-heading leading-normal">Gift Dramacoin to @{{u.username}}</h5>
<h5 class="font-bold text-xl leading-normal">Gift Dramacoin to @{{u.username}}</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>
@ -10,8 +10,8 @@
<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 z-10">
<p class="text-lg font-bold text-gray-900 mb-0">
<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">
<p class="text-lg font-bold mb-0">
You need at least 100 dramacoin to send coins.
</p>
<small class="mt-1 block text-gray-500">
@ -21,8 +21,8 @@
{% endif %}
<!-- Form -->
<form class="profile-toggleable" id="message" action="/@{{u.username}}/message" method="post">
<div class="relative rounded-lg border border-gray-300 bg-gray-100 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 shadow-inner resize-y focus:outline-none" aria-label="With textarea" placeholder="'tis the season of giving..." rows="3"></textarea>
<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">
<li>
<button type="button" class="text-gray-400 hover:text-gray-500" onclick="makeBold('gift-message')">

View File

@ -17,7 +17,7 @@
<button type="button" class="px-4 py-2 text-sm font-bold text-gray-500 hover:text-gray-700" data-bs-dismiss="modal">
Cancel
</button>
<button type="button" id="reportCommentButton" class="block px-4 py-2 bg-gradient-to-t from-red-700 to-red-600 hover:from-red-600 hover:to-red-700 active:shadow-inner border border-red-900 rounded-md text-shadow-t shadow-inset-t-white-10 text-sm font-bold text-gray-100 focus:text-gray-400 focus:outline-none">
<button type="button" id="reportCommentButton" class="btn btn-red">
Report comment
</button>
</div>

View File

@ -2,7 +2,7 @@
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content rounded-t-md w-full bg-gray-200">
<div class="relative rounded-t-md border-b border-gray-300 p-3">
<h5 class="font-bold font-heading text-lg mb-0">More options</h5>
<h5 class="font-bold text-black text-lg mb-0">More options</h5>
<button type="button" class="close absolute right-3.5 top-3.5" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">
<i class="fas fa-times-circle text-gray-500"></i>
@ -65,7 +65,7 @@
{% if v %}
<li>
<button class="btn btn-gray w-full text-left" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#awardModal" onclick="awardModal('/post/{{p.id}}/awards')">
<i class="fas fa-gift fa-fw mr-4"></i>Give Award
<i class="fas fa-gift fa-fw mr-4"></i>Award
</button>
</li>

View File

@ -66,7 +66,7 @@
{% if v %}
<li>
<button class="btn btn-gray w-full text-left" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#awardModal" onclick="awardModal('/post/{{p.id}}/awards')">
<i class="fas fa-gift fa-fw mr-4"></i>Give Award
<i class="fas fa-gift fa-fw mr-4"></i>Award
</button>
</li>
{% endif %}

View File

@ -88,13 +88,13 @@
{% set path = request.full_path %}
{% endif %}
{% if request.full_path == "/notifications" %}
<small><a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="{{path}}?page={{page-1}}">Previous</a></small>
<small><a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="{{path}}?page={{page-1}}">Back</a></small>
{% else %}
<small><a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="{{path}}&page={{page-1}}">Previous</a></small>
<small><a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="{{path}}&page={{page-1}}">Back</a></small>
{% endif %}
</li>
{% else %}
<li><span class="block px-2 py-1 text-sm font-bold text-gray-700 bg-gray-800 disabled">Prev</span></li>
<li><button disabled class="block px-2 py-1 text-sm font-bold text-gray-700 bg-gray-800 cursor-not-allowed">Back</button></li>
{% endif %}
{% if next_exists %}
@ -113,7 +113,7 @@
{% endif %}
</li>
{% else %}
<li><span class="block px-2 py-1 text-sm font-bold text-gray-700 bg-gray-800 disabled">Next</span></li>
<li><button disabled class="block px-2 py-1 text-sm font-bold text-gray-700 bg-gray-800 cursor-not-allowed">Next</button></li>
{% endif %}
</ul>
</div>

View File

@ -2,9 +2,9 @@
<div class="modal fade" id="reportPostModal" tabindex="-1" role="dialog" aria-labelledby="reportPostModalTitle" aria-hidden="true">
<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 rounded-md shadow-lg">
<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 text-black font-heading leading-normal">Report post</h5>
<h5 class="font-bold text-xl font-heading leading-normal">Report post</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>
@ -15,11 +15,11 @@
<small class="text-gray-500">Please enter a reason for reporting below.</small>
<input maxlength="100" id="reason" class="mt-3 form-input" placeholder="e.g. this post violates community standards">
</div>
<div class="flex justify-end space-x-2 border-t border-gray-300 p-4">
<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-700" data-bs-dismiss="modal">
Cancel
</button>
<button type="button" id="reportPostButton" class="block px-4 py-2 bg-gradient-to-t from-red-700 to-red-600 hover:from-red-600 hover:to-red-700 active:shadow-inner border border-red-900 rounded-md text-shadow-t shadow-inset-t-white-10 text-sm font-bold text-gray-100 focus:text-gray-400 focus:outline-none">
<button type="button" id="reportPostButton" class="btn btn-red">
Report post
</button>
</div>
@ -29,7 +29,7 @@
<div class="font-bold text-lg leading-normal">Thank you for reporting this post!</div>
<small class="text-gray-500">By the power of the mop, our internet janitors will take it from here.</small>
</div>
<div class="flex justify-end space-x-2 border-t border-gray-400 p-4">
<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">
Close
</button>

View File

@ -72,17 +72,30 @@
{% endblock %}
{% block pagenav %}
<nav aria-label="Page navigation">
<ul class="pagination pagination-sm mb-0">
<li class="page-item{% if page==1 %} disabled{% endif %}">
<small><a class="page-link" href="?sort={{sort}}&q={{query | urlencode}}&t={{t}}&page={{page-1}}" tabindex="-1"{% if page==1 %} aria-disabled="true"{% endif %}>Back</a></small>
<div class="col-span-full">
<ul class="flex flex-wrap items-center mb-4">
<li>
{% if page > 1 %}
<small>
<a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="?sort={{sort}}&q={{query | urlencode}}&t={{t}}&page={{page-1}}" tabindex="-1" {% if page==1 %}aria-disabled="true"{% endif %}>
Back
</a>
</small>
{% else %}
<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 class="page-item{% if not next_exists %} disabled{% endif %}">
<small><a class="page-link" href="?sort={{sort}}&q={{query | urlencode}}&t={{t}}&page={{page+1}}">Next</a></small>
<li>
{% if next_exists %}
<small>
<a class="block px-2 py-1 text-sm font-bold text-primary bg-gray-900" href="?sort={{sort}}&q={{query | urlencode}}&t={{t}}&page={{page+1}}">
Next
</a>
</small>
{% else %}
<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>
</div>
{% endblock %}

View File

@ -1,5 +1,11 @@
{% if v and v.theme2 %}
{% set theme = v.theme2 %}
{% else %}
{% set theme = 'theme-iron dark' %}
{% endif %}
<!DOCTYPE html>
<html lang="en">
<html lang="en" class="{{ theme }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
@ -30,7 +36,7 @@
<link rel="stylesheet" href="/assets/CHRISTMAS/css/main.css?v=440">
<link rel="stylesheet" href="/static/dist/main.css?v=440">
<link rel="stylesheet" href="/static/dist/main.css?v=450">
<link rel="stylesheet" href="/assets/CHRISTMAS/css/mistletoe.css?v=400">
@ -57,18 +63,12 @@
</style>
</head>
{% if v and v.theme2 %}
{% set theme = v.theme2 %}
{% else %}
{% set theme = 'theme-iron dark' %}
{% endif %}
<body class="{{ theme }} overflow-hidden overflow-y-auto sm:overflow-y-none antialiased bg-cover bg-center bg-gray-500 text-black dark:bg-gray-700 dark:text-gray-100">
<body class="overflow-hidden overflow-y-auto antialiased text-black bg-gray-700 dark:text-gray-100">
{% include "CHRISTMAS/header-tw.html" %}
<div class="flex h-screen pt-16 bg-gray-500 dark:bg-gray-700 dark:text-gray-200">
<div class="w-full sm:overflow-y-auto">
<div class="flex h-full pt-16 bg-gray-500 dark:bg-gray-700 dark:text-gray-200">
<div class="w-full">
<div class="md:px-4 bg-gray-700" id="sub-header-row">
<div class="relative max-w-screen-2xl mx-auto px-4 py-4 grid grid-cols-12 rounded-t">
@ -186,6 +186,8 @@
{% include "CHRISTMAS/modals/ModalThemePicker.html" %}
{% endif %}
{% include "CHRISTMAS/mobile_navigation_bar.html" %}
{% block modals %}{% endblock %}
{% block onload %}{% endblock %}
@ -217,7 +219,7 @@
});
</script>
<script src="/assets/CHRISTMAS/js/mobile_navigation_bar.js?v=200"></script>
<script src="/assets/CHRISTMAS/js/mobile_navigation_bar.js?v=207"></script>
{% if v %}
<script>function formkey() {return '{{v.formkey}}';}</script>
@ -225,13 +227,13 @@
<script>
var previousTheme = '{{ v.theme2 }}'.split(' ');
function changeTheme(theme) {
const body = document.body;
// if previous selection has a value, remove them from body tag
const root = document.documentElement
// if previous selection has a value, remove them from root html tag
if (previousTheme.length) {
previousTheme.map(v => body.classList.toggle(v));
previousTheme.map(v => root.classList.toggle(v));
}
// toggle classes in body tag
theme.map(v => body.classList.toggle(v));
// toggle classes in root html tag
theme.map(v => root.classList.toggle(v));
// Set global previous selection to current selection
previousTheme = theme;
}

View File

@ -56,7 +56,7 @@
</ul>
</div>
<hr class="mt-6 mb-5 h-0.5 border-b border-gray-300 dark:border-gray-900 shadow-inset-t-white-05"/>
<button data-bs-toggle="modal" data-bs-target="#expandImageModal" data-bs-url="/assets/CHRISTMAS/banners/banner-{{ random }}.jpg" onclick="expandDesktopImage('/assets/CHRISTMAS/banners/banner-{{ random }}.jpg')" class="w-full h-56 shadow-sm p-[3px] bg-white overflow-hidden">
<button data-bs-toggle="modal" data-bs-target="#expandImageModal" data-bs-url="/assets/CHRISTMAS/banners/banner-{{ random }}.jpg" onclick="expandDesktopImage('/assets/CHRISTMAS/banners/banner-{{ random }}.jpg')" class="w-full h-56 shadow-sm p-[3px] bg-white dark:bg-gray-900 overflow-hidden">
<img class="w-full h-full flex-shrink-0 object-contain cursor-pointer" src="/assets/CHRISTMAS/banners/banner-{{ random }}.jpg" alt="cat in a bar wearing a santa hat"/>
</button>
{% if v %}

View File

@ -70,7 +70,7 @@
</li>
{% endif %}
</ul>
<ul class="flex flex-col mb-0">
<ul class="flex flex-col space-y-1 mb-0">
<!-- Flair -->
{% if p.flair %}
<li>
@ -91,12 +91,18 @@
<span class="badge badge-yellow">Country Club</span>
</li>
{% endif %}
<!-- Stickied -->
{% if p.stickied %}
{% if p.stickied and p.stickied.startswith('t:') %}
<li>
<span class="badge badge-pink">
<span id="pinned-{{p.id}}-sidebar" class="badge badge-pink" data-bs-toggle="tooltip" data-bs-placement="bottom" data-timestamp={{p.stickied[2:]}} onmouseover="pinned_timestamp(this.id)"}>
<i class="fas fa-thumbtack fa-rotate--45 fa-sm fa-fw"></i>
Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}
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 %}
@ -118,6 +124,15 @@
</span>
</li>
{% endif %}
<!-- Reports -->
{% if p.active_flags %}
<li>
<button class="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>
</li>
{% endif %}
</ul>
</div>
</div>

View File

@ -9,12 +9,10 @@
<input type="checkbox" id="privateCheck" name="private" form="submitform">
<label class="leading-4 ml-2 inline-blue badge badge-blue select-nonee" for="privateCheck">Draft</label>
</div>
{% if v.paid_dues %}
<div class="flex items-center">
<input type="checkbox" id="clubCheck" name="club" form="submitform">
<label class="leading-4 ml-2 inline-block badge badge-yellow select-none" for="clubCheck">Country Club Thread</label>
<label class="leading-4 ml-2 inline-block badge badge-yellow select-none" for="clubCheck">Country Club</label>
</div>
{% endif %}
</div>
<hr class="my-2 border-t border-gray-300 dark:border-gray-900 h-1 shadow-inset-t-white-10"/>
<a href="https://www.youtube.com/watch?v=Qlpnt-6HQZo" target="_blank">

View File

@ -13,7 +13,7 @@
{% block title %}
{% if 'rama' not in request.host %}
<script defer>
<!-- <script defer>
function poll_vote(cid) {
{% if v %}
var type = document.getElementById(cid).checked;
@ -28,10 +28,10 @@
document.getElementById('toast-post-error-text').innerText = "Only logged-in users can vote!";
{% endif %}
}
</script>
</script> -->
{% if v %}
<script defer src="/assets/CHRISTMAS/js/comments_v.js?v=200"></script>
<!-- <script defer src="/assets/CHRISTMAS/js/comments_v.js?v=200"></script> -->
{% endif %}
{% endif %}
@ -42,7 +42,6 @@
{% if comment_info and not comment_info.is_banned and not linked_comment.deleted_utc > 0 %}
<title>{{'@'+comment_info.author.username}} comments on "{{p.plaintitle(v)}} - {{'SITE_NAME' | app_config}}"</title>
<meta property="og:article:author" content="{{'@'+comment_info.author.username}}" >
<meta property="article:published_time" content="{{comment_info.created_datetime}}" >
{% if comment_info.edited_utc %}<meta property="article:modified_time" content="{{comment_info.edited_string}}" >{% endif %}
@ -153,7 +152,36 @@
</div>
{% endif %}
</div>
{% endif %}
{% endif %}
{% if p.active_flags %}
<!-- Reports -->
<div class="p-2.5 md:p-0">
<div id="flaggers-{{p.id}}" class="relative mt-4 p-3 rounded-lg 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>
</div>
{% endif %}
{% if p.awards or p.over_18 or p.stickied or p.is_pinned or p.private or p.flair or p.club %}
<!-- Mobile post meta, awards, etc -->
@ -180,11 +208,18 @@
</li>
{% endif %}
<!-- Stickied -->
{% if p.stickied %}
{% if p.stickied and p.stickied.startswith('t:') %}
<li>
<span class="badge badge-pink">
<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(this.id)"}>
<i class="fas fa-thumbtack fa-rotate--45 fa-sm fa-fw"></i>
Pinned {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}
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 %}
@ -206,6 +241,15 @@
</span>
</li>
{% endif %}
<!-- Reports -->
{% if p.active_flags %}
<li>
<button class="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>
</li>
{% endif %}
<!-- Awards -->
{% if p.awards %}
{% for a in p.awards %}
@ -295,11 +339,17 @@
</bdi>
{% endif %}
<span class="flex-shrink-0" data-bs-toggle="tooltip" data-bs-placement="bottom" id="timestamp">{{p.age_string}}</span>
<span class="flex-shrink-0" data-bs-toggle="tooltip" data-bs-placement="bottom" id="timestamp" onmouseover="timestamp('timestamp','{{p.created_utc}}')">
{{p.age_string}}
</span>
{% if p.edited_utc %}
<span class="flex-shrink-0 italic">
Edited
<span class="flex-shrink-0" data-bs-toggle="tooltip" data-bs-placement="bottom" id="edited_timestamp">{{p.edited_string}}</span>
<span data-bs-toggle="tooltip" data-bs-placement="bottom" onmouseover="timestamp('edited_timestamp','{{p.edited_utc}}')" id="edited_timestamp">
{{ p.edited_string }}
</span>
</span>
{% endif %}
{% if p.is_image %}
@ -616,13 +666,10 @@
{% if v %}
<script defer src="/assets/CHRISTMAS/js/vote.js?v=200"></script>
{% if not p.comment_count %}
<script defer src="/assets/CHRISTMAS/js/comments_v.js?v=200"></script>
{% endif %}
{% endif %}
{% if v and (v.id == p.author_id or v.admin_level > 1 and v.admin_level > 2) %}
<script src="/assets/CHRISTMAS/js/submission.js?v=201"></script>
<script src="/assets/CHRISTMAS/js/submission.js?v=202"></script>
{% endif %}
{% if not v or v.highlightcomments %}

View File

@ -1,4 +1,4 @@
<ul class="flex items-center space-x-5 text-sm text-gray-500 mb-0">
<ul class="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 %}
<li>
@ -11,8 +11,9 @@
{% 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>
<i class="fas fa-comment-dots fa-fw mr-2"></i>{{ p.comment_count }}
<span class="hidden lg:inline-block">comment{{ '' if p.comment_count == 1 else 's' }}</span>
<span class="text-primary hidden new-comments"></span>
</a>
</li>
{% endif %}
@ -46,7 +47,7 @@
{% 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
<i class="fas fa-gift fa-fw mr-2"></i>Award
</button>
</li>
<li id="subscribe-{{p.id}}" class="{% if p.id in v.subscribed_idlist() %}hidden{% endif %}">

View File

@ -23,6 +23,13 @@
<i class="fas fa-link fa-fw"></i>
</button>
</li>
{% if v and (v.id==p.author_id or v.admin_level > 1 and v.admin_level > 2) and '/post/' in request.full_path %}
<li class="mr-5">
<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 %}
<li class="mr-5">
<button data-bs-toggle="modal" data-bs-target="#actionsModal-{{p.id}}">

View File

@ -21,15 +21,17 @@
{% endif %}
{% if p.active_flags %}
<div id="flaggers-{{p.id}}" class="mb-3 px-3 py-2 rounded-md bg-red-100 border border-red-200 hidden">
<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 font-bold space-y-3 divide-y divide-red-300">
<ul class="mb-0 flex flex-col space-y-3 divide-y divide-red-300 text-black">
{% for f in p.ordered_flags %}
<li>
<a class="text-gray-700 hover:text-gray-900" href="{{f.user.url}}">{{f.user.username}}</a>
{% if f.reason %}: {{f.reason | safe}}{% endif %} {% if v.admin_level==6 %}
<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>
@ -37,6 +39,9 @@
</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 %}
@ -84,33 +89,37 @@
{% endif %}
</div>
<div class="w-full">
<div class="w-full overflow-x-hidden md:overflow-x-visible">
<div class="relative z-10 no-scrollbar overflow-y-hidden overflow-x-auto flex items-center space-x-2 md:-ml-2 mb-1 md:mb-0 text-sm text-gray-500 leading-normal {% if p.award_count('ghosts') %}ghosts{% endif %}">
<div class="relative z-10 no-scrollbar overflow-y-hidden overflow-x-auto flex items-center space-x-2 md:-ml-2 mb-1 text-sm text-gray-500 leading-normal {% if p.award_count('ghosts') %}ghosts{% endif %}">
<div class="relative md:hidden flex-shrink-0 {{ 'santa' if p.author.patron else 'cap' }}">
<img loading="lazy" src="{{ p.author.profile_url }}" class="flex-shrink-0 w-9 h-9 p-[3px] 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>
{% 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}};">
@ -144,13 +153,14 @@
{% 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>
<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>(image post)</span>
<span class="flex-shrink-0">(image post)</span>
{% elif p.is_video %}
<span>(video post)</span>
<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}})
@ -160,7 +170,9 @@
{% endif %}
{% if p.active_flags %}
<button class="flex-shrink-0 badge badge-red" onclick="document.getElementById('flaggers-{{p.id}}').classList.toggle('hidden')">{{p.active_flags}} Reports
<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 %}
@ -169,10 +181,9 @@
<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 %}
</div>
{% 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="relative z-10 flex flex-wrap gap-2 items-center mb-1">
{% 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>
@ -194,20 +205,18 @@
</li>
{% endif %}
<!-- Stickied -->
{% if p.stickied %}
{% if p.stickied and p.stickied.startswith('t:') %}
<li>
<span class="badge badge-pink">
<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 {% if p.stickied.startswith('t:') %}until {{p.stickied[2:]}}{% else %}by @{{p.stickied}}{%endif%}
Pinned
</span>
</li>
{% endif %}
<!-- Pinned -->
{% if p.is_pinned and request.path.startswith('/@') %}
{% elif p.stickied %}
<li>
<span class="badge badge-green">
<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 to profile
Pinned
</span>
</li>
{% endif %}
@ -230,6 +239,7 @@
{% endif %}
</ul>
{% endif %}
</div>
<h5 class="post-title font-medium text-lg md:text-xl leading-5 mb-2">
<a {% if v and v.newtab %}target="_blank"{% endif %} href="{{p.permalink}}" class="stretched-link text-black dark:text-gray-200 hover:text-primary visited:text-gray-700 dark:visited:text-gray-400 break-words" style="word-break: break-word;">
@ -238,12 +248,12 @@
</h5>
{% if p.realbody(v) and not p.over_18 %}
<div class="relative z-10 gradient-mask max-h-10 overflow-hidden pointer-events-none text-gray-600 break-words" style="word-break: break-word;" id="post-text-{{p.id}}">
<div class="relative z-10 gradient-mask max-h-10 overflow-hidden pointer-events-none text-gray-500 break-words" style="word-break: break-word;" id="post-text-{{p.id}}">
{{p.realbody(v) | safe}}
</div>
{% endif %}
<div class="relative z-20 hidden md:block pt-2">
<div class="relative z-20 hidden md:block pt-3">
{% include "CHRISTMAS/submission/SubmissionActions.html" %}
</div>
</div>
@ -383,7 +393,7 @@
{% include "CHRISTMAS/expanded_image_modal.html" %}
<script defer src="/assets/CHRISTMAS/js/new_comments_count.js?v=200"></script>
<script defer src="/assets/CHRISTMAS/js/submission_listing.js?v=203"></script>
<script defer src="/assets/CHRISTMAS/js/submission_listing.js?v=205"></script>
<style>
.mod:before {

View File

@ -144,12 +144,10 @@
<input type="checkbox" id="privateCheck-mobile" name="private" form="submitform">
<label class="leading-4 ml-2 inline-blue badge badge-blue select-nonee" for="privateCheck">Draft</label>
</li>
{% if not v.club_banned %}
<li class="flex items-center">
<input type="checkbox" id="clubCheck-mobile" name="club" form="submitform">
<label class="leading-4 ml-2 inline-block badge badge-yellow select-none" for="clubCheck">Country Club Thread</label>
<label class="leading-4 ml-2 inline-block badge badge-yellow select-none" for="clubCheck">Country Club</label>
</li>
{% endif %}
</ul>
</div>

View File

@ -6,7 +6,7 @@
<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"></span>
<i class="fas fa-comment-alt-smile 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">

View File

@ -155,7 +155,7 @@
</li>
<li>
<div class="text-lg mb-0">{{ u.coins }}</div>
<small class="block text-gray-500">Dramacoin Earned</small>
<small class="block text-gray-500">Dramacoin Balance</small>
</li>
{% if u.procoins %}
<li>
@ -189,7 +189,7 @@
</li>
<li>
<div class="text-lg font-bold mb-0">{{ u.coins }}</div>
<small class="block font-bold text-gray-500">Dramacoin Earned</small>
<small class="block font-bold text-gray-500">Dramacoin Balance</small>
</li>
{% if u.procoins %}
<li>
@ -199,6 +199,16 @@
{% endif %}
</ul>
{% endif %}
{% if u.received_awards %}
<ul class="flex flex-row flex-wrap gap-2 mt-3 mb-0">
{% for a in u.received_awards %}
<li>
<i class="{{a['icon']}} {{a['color']}} fa-fw fa-sm" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{a['title']}} Awards received"></i>
<span class="text-gray-500 text-sm">x{{a['count']}}</span>
</li>
{% endfor %}
</ul>
{% endif %}
{% if u.badges %}
<ul class="flex flex-row flex-wrap gap-2 mt-3 mb-0">
{% for b in u.badges %}