MarseyWorld/files/templates/post.html

382 lines
18 KiB
HTML
Raw Normal View History

{% extends "default.html" %}
[DO NOT MERGE] titlesssssssssss (#468) * titles * testing * self * Revert "self" This reverts commit d6c12d5a5ba125feb44673f55e1fdac75f151cb5. * Revert "testing" This reverts commit 86d800f9fd552196b31f0e0b3891d4fc072a9bc0. * testing on devrama * rewrite the html head * reference error or smth idk * tempalte debug * template debug redux * default2 * rename default2 -> root, page title * fix settings2 * include the set_variables block * root scope variables 2 * test 3 * remove unnecessary set * add pagetitles to all settings2 pages * add pagetitle to casino * remove bloat * remove duplicate site name thingy * page titles 2 * page titles 3 * remove duplicate imports and add page titles everywhere iirc * ok but actually this time * remove unnecessary newlines * fix title lol * > * fsdfsfsfsfsfs * fsfs * template configurations * fix 500 * reduce login template bloat * move files and add status codes where needful * move authfroms to login * remove 2fa bloat * verification code * sign up fixes * readability * fssfsfsfs * move forgot password to login/ * readability * don't emit comments * add page titles where needful * gsgsgs * modals: move to respective pages * testing on devrama * get home garbage out of title * remove insane amount of icon duplication * sign up text * add votes pagetitle * fix blank lines * Revert "fix blank lines" This reverts commit b2c54339970725d00b6fc82bb458c1757909952c. * Fix blank lines on sign_up.html. * title: votes.html more meaningful identifier. * titles: Lottery, Directory, Notifications * head final in submission.html * fix missing comma * > * test * title: /comments * fsfsfsfsf * titles: user_cards * head: only load video and audio meta attributes if they actually exist * titlessssss: /admin/lottery/participants * titlessssssss: extra quote in search.html * titlessssss: userpage voters. * titties: /h/<sub>/{followers,blockers,exilees[sic]} * test banner * Revert "test banner" This reverts commit c3d875d03f3e60d72a60dab7d28bf108554a5826. * make submit.html inherit from default.html Co-authored-by: TLSM <duolsm@outlook.com>
2022-11-21 08:52:22 +00:00
{% block pagetitle %}
2023-10-29 12:51:00 +00:00
{%- if comment_info -%}
2024-01-19 08:54:25 +00:00
@{{comment_info.author_name}}'s comment on '{{p.plaintitle(v)}}'
2023-10-29 12:51:00 +00:00
{%- else -%}
{{p.plaintitle(v)}}
{%- endif -%}
[DO NOT MERGE] titlesssssssssss (#468) * titles * testing * self * Revert "self" This reverts commit d6c12d5a5ba125feb44673f55e1fdac75f151cb5. * Revert "testing" This reverts commit 86d800f9fd552196b31f0e0b3891d4fc072a9bc0. * testing on devrama * rewrite the html head * reference error or smth idk * tempalte debug * template debug redux * default2 * rename default2 -> root, page title * fix settings2 * include the set_variables block * root scope variables 2 * test 3 * remove unnecessary set * add pagetitles to all settings2 pages * add pagetitle to casino * remove bloat * remove duplicate site name thingy * page titles 2 * page titles 3 * remove duplicate imports and add page titles everywhere iirc * ok but actually this time * remove unnecessary newlines * fix title lol * > * fsdfsfsfsfsfs * fsfs * template configurations * fix 500 * reduce login template bloat * move files and add status codes where needful * move authfroms to login * remove 2fa bloat * verification code * sign up fixes * readability * fssfsfsfs * move forgot password to login/ * readability * don't emit comments * add page titles where needful * gsgsgs * modals: move to respective pages * testing on devrama * get home garbage out of title * remove insane amount of icon duplication * sign up text * add votes pagetitle * fix blank lines * Revert "fix blank lines" This reverts commit b2c54339970725d00b6fc82bb458c1757909952c. * Fix blank lines on sign_up.html. * title: votes.html more meaningful identifier. * titles: Lottery, Directory, Notifications * head final in submission.html * fix missing comma * > * test * title: /comments * fsfsfsfsf * titles: user_cards * head: only load video and audio meta attributes if they actually exist * titlessssss: /admin/lottery/participants * titlessssssss: extra quote in search.html * titlessssss: userpage voters. * titties: /h/<sub>/{followers,blockers,exilees[sic]} * test banner * Revert "test banner" This reverts commit c3d875d03f3e60d72a60dab7d28bf108554a5826. * make submit.html inherit from default.html Co-authored-by: TLSM <duolsm@outlook.com>
2022-11-21 08:52:22 +00:00
{% endblock %}
{% block pagetype %}thread{% endblock %}
2023-09-28 23:58:09 +00:00
{% if IS_HOMOWEEN() and p.award_count("haunt", v) %}
{% block hauntBg %}
<div id="haunt-bg"></div>
{% endblock %}
{% endif %}
[DO NOT MERGE] titlesssssssssss (#468) * titles * testing * self * Revert "self" This reverts commit d6c12d5a5ba125feb44673f55e1fdac75f151cb5. * Revert "testing" This reverts commit 86d800f9fd552196b31f0e0b3891d4fc072a9bc0. * testing on devrama * rewrite the html head * reference error or smth idk * tempalte debug * template debug redux * default2 * rename default2 -> root, page title * fix settings2 * include the set_variables block * root scope variables 2 * test 3 * remove unnecessary set * add pagetitles to all settings2 pages * add pagetitle to casino * remove bloat * remove duplicate site name thingy * page titles 2 * page titles 3 * remove duplicate imports and add page titles everywhere iirc * ok but actually this time * remove unnecessary newlines * fix title lol * > * fsdfsfsfsfsfs * fsfs * template configurations * fix 500 * reduce login template bloat * move files and add status codes where needful * move authfroms to login * remove 2fa bloat * verification code * sign up fixes * readability * fssfsfsfs * move forgot password to login/ * readability * don't emit comments * add page titles where needful * gsgsgs * modals: move to respective pages * testing on devrama * get home garbage out of title * remove insane amount of icon duplication * sign up text * add votes pagetitle * fix blank lines * Revert "fix blank lines" This reverts commit b2c54339970725d00b6fc82bb458c1757909952c. * Fix blank lines on sign_up.html. * title: votes.html more meaningful identifier. * titles: Lottery, Directory, Notifications * head final in submission.html * fix missing comma * > * test * title: /comments * fsfsfsfsf * titles: user_cards * head: only load video and audio meta attributes if they actually exist * titlessssss: /admin/lottery/participants * titlessssssss: extra quote in search.html * titlessssss: userpage voters. * titties: /h/<sub>/{followers,blockers,exilees[sic]} * test banner * Revert "test banner" This reverts commit c3d875d03f3e60d72a60dab7d28bf108554a5826. * make submit.html inherit from default.html Co-authored-by: TLSM <duolsm@outlook.com>
2022-11-21 08:52:22 +00:00
{% block head_final %}
2023-10-12 13:28:13 +00:00
{% if not (v and v.poor) %}
{% include "awards.html" %}
{% if IS_FISTMAS() %}
{% include "events/fistmas/awards.html" %}
{% elif IS_HOMOWEEN() %}
2023-09-28 23:58:09 +00:00
{% include "events/homoween/awards.html" %}
{% endif %}
{% endif %}
{% endblock %}
2023-09-28 23:58:09 +00:00
[DO NOT MERGE] titlesssssssssss (#468) * titles * testing * self * Revert "self" This reverts commit d6c12d5a5ba125feb44673f55e1fdac75f151cb5. * Revert "testing" This reverts commit 86d800f9fd552196b31f0e0b3891d4fc072a9bc0. * testing on devrama * rewrite the html head * reference error or smth idk * tempalte debug * template debug redux * default2 * rename default2 -> root, page title * fix settings2 * include the set_variables block * root scope variables 2 * test 3 * remove unnecessary set * add pagetitles to all settings2 pages * add pagetitle to casino * remove bloat * remove duplicate site name thingy * page titles 2 * page titles 3 * remove duplicate imports and add page titles everywhere iirc * ok but actually this time * remove unnecessary newlines * fix title lol * > * fsdfsfsfsfsfs * fsfs * template configurations * fix 500 * reduce login template bloat * move files and add status codes where needful * move authfroms to login * remove 2fa bloat * verification code * sign up fixes * readability * fssfsfsfs * move forgot password to login/ * readability * don't emit comments * add page titles where needful * gsgsgs * modals: move to respective pages * testing on devrama * get home garbage out of title * remove insane amount of icon duplication * sign up text * add votes pagetitle * fix blank lines * Revert "fix blank lines" This reverts commit b2c54339970725d00b6fc82bb458c1757909952c. * Fix blank lines on sign_up.html. * title: votes.html more meaningful identifier. * titles: Lottery, Directory, Notifications * head final in submission.html * fix missing comma * > * test * title: /comments * fsfsfsfsf * titles: user_cards * head: only load video and audio meta attributes if they actually exist * titlessssss: /admin/lottery/participants * titlessssssss: extra quote in search.html * titlessssss: userpage voters. * titties: /h/<sub>/{followers,blockers,exilees[sic]} * test banner * Revert "test banner" This reverts commit c3d875d03f3e60d72a60dab7d28bf108554a5826. * make submit.html inherit from default.html Co-authored-by: TLSM <duolsm@outlook.com>
2022-11-21 08:52:22 +00:00
{% set ups=p.upvotes %}
{% set downs=p.downvotes %}
{% set score=ups-downs %}
[DO NOT MERGE] titlesssssssssss (#468) * titles * testing * self * Revert "self" This reverts commit d6c12d5a5ba125feb44673f55e1fdac75f151cb5. * Revert "testing" This reverts commit 86d800f9fd552196b31f0e0b3891d4fc072a9bc0. * testing on devrama * rewrite the html head * reference error or smth idk * tempalte debug * template debug redux * default2 * rename default2 -> root, page title * fix settings2 * include the set_variables block * root scope variables 2 * test 3 * remove unnecessary set * add pagetitles to all settings2 pages * add pagetitle to casino * remove bloat * remove duplicate site name thingy * page titles 2 * page titles 3 * remove duplicate imports and add page titles everywhere iirc * ok but actually this time * remove unnecessary newlines * fix title lol * > * fsdfsfsfsfsfs * fsfs * template configurations * fix 500 * reduce login template bloat * move files and add status codes where needful * move authfroms to login * remove 2fa bloat * verification code * sign up fixes * readability * fssfsfsfs * move forgot password to login/ * readability * don't emit comments * add page titles where needful * gsgsgs * modals: move to respective pages * testing on devrama * get home garbage out of title * remove insane amount of icon duplication * sign up text * add votes pagetitle * fix blank lines * Revert "fix blank lines" This reverts commit b2c54339970725d00b6fc82bb458c1757909952c. * Fix blank lines on sign_up.html. * title: votes.html more meaningful identifier. * titles: Lottery, Directory, Notifications * head final in submission.html * fix missing comma * > * test * title: /comments * fsfsfsfsf * titles: user_cards * head: only load video and audio meta attributes if they actually exist * titlessssss: /admin/lottery/participants * titlessssssss: extra quote in search.html * titlessssss: userpage voters. * titties: /h/<sub>/{followers,blockers,exilees[sic]} * test banner * Revert "test banner" This reverts commit c3d875d03f3e60d72a60dab7d28bf108554a5826. * make submit.html inherit from default.html Co-authored-by: TLSM <duolsm@outlook.com>
2022-11-21 08:52:22 +00:00
{% if v %}
{% set voted=p.voted if p.voted else 0 %}
{% else %}
{% set voted=-2 %}
{% endif %}
[DO NOT MERGE] titlesssssssssss (#468) * titles * testing * self * Revert "self" This reverts commit d6c12d5a5ba125feb44673f55e1fdac75f151cb5. * Revert "testing" This reverts commit 86d800f9fd552196b31f0e0b3891d4fc072a9bc0. * testing on devrama * rewrite the html head * reference error or smth idk * tempalte debug * template debug redux * default2 * rename default2 -> root, page title * fix settings2 * include the set_variables block * root scope variables 2 * test 3 * remove unnecessary set * add pagetitles to all settings2 pages * add pagetitle to casino * remove bloat * remove duplicate site name thingy * page titles 2 * page titles 3 * remove duplicate imports and add page titles everywhere iirc * ok but actually this time * remove unnecessary newlines * fix title lol * > * fsdfsfsfsfsfs * fsfs * template configurations * fix 500 * reduce login template bloat * move files and add status codes where needful * move authfroms to login * remove 2fa bloat * verification code * sign up fixes * readability * fssfsfsfs * move forgot password to login/ * readability * don't emit comments * add page titles where needful * gsgsgs * modals: move to respective pages * testing on devrama * get home garbage out of title * remove insane amount of icon duplication * sign up text * add votes pagetitle * fix blank lines * Revert "fix blank lines" This reverts commit b2c54339970725d00b6fc82bb458c1757909952c. * Fix blank lines on sign_up.html. * title: votes.html more meaningful identifier. * titles: Lottery, Directory, Notifications * head final in submission.html * fix missing comma * > * test * title: /comments * fsfsfsfsf * titles: user_cards * head: only load video and audio meta attributes if they actually exist * titlessssss: /admin/lottery/participants * titlessssssss: extra quote in search.html * titlessssss: userpage voters. * titties: /h/<sub>/{followers,blockers,exilees[sic]} * test banner * Revert "test banner" This reverts commit c3d875d03f3e60d72a60dab7d28bf108554a5826. * make submit.html inherit from default.html Co-authored-by: TLSM <duolsm@outlook.com>
2022-11-21 08:52:22 +00:00
{% set v_forbid_deleted = (p.deleted_utc != 0) and not (v and v.admin_level >= PERMS['POST_COMMENT_MODERATION']) and not (v and v.id == p.author_id) %}
2023-10-29 12:51:00 +00:00
{% block actionsModal %}
{% if v %}
<div class="modal fade d-md-none" id="actionsModal" tabindex="-1">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header p-3">
<h6 class="col modal-title text-center">More options</h6>
<button type="button" class="close position-absolute py-3" style="right: 1rem" data-bs-dismiss="modal">
<span><i class="fas fa-times-circle text-gray-500"></i></span>
</button>
</div>
<div class="modal-body">
<ul class="list-group post-actions">
2023-10-29 14:27:55 +00:00
{% if v.id == p.author_id %}
2023-10-29 12:51:00 +00:00
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="togglePostEdit('{{p.id}}')"><i class="fas fa-edit text-center text-muted mr-2"></i>Edit</button>
{% elif p.body and v.admin_level < PERMS['POST_COMMENT_EDITING'] %}
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="expandMarkdown('{{p.fullname}}')"><i class="fas text-expand-icon-{{p.fullname}} fa-expand-alt text-center mr-2"></i><span class="expand-text-{{p.fullname}}">View Source</span></button>
2023-10-29 12:51:00 +00:00
{% endif %}
2023-10-29 12:51:00 +00:00
{% include "post_actions_mobile.html" %}
</ul>
</div>
</div>
</div>
</div>
2023-10-29 12:51:00 +00:00
{% endif %}
2023-10-29 12:51:00 +00:00
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
{% include "post_admin_actions_mobile.html" %}
{% endif %}
{% endblock %}
{% block content %}
2023-10-29 12:51:00 +00:00
<div class="row mb-3">
2023-10-29 12:51:00 +00:00
<div id="post-root" class="col-12">
2023-10-29 14:27:55 +00:00
<div class="card border-0 mt-3 {% if p.stickied %}stickied{% endif %} {% if voted == 1 %}upvoted{% elif voted==-1 %} downvoted{% endif %}">
2023-10-29 12:51:00 +00:00
<div id="post-{{p.id}}" class="actual-post {% if p.ghost %}ghost-post{% endif %} {% if p.is_banned %}banned{% endif %} {% if p.deleted_utc %}deleted {% endif %} d-flex flex-row-reverse flex-nowrap justify-content-end">
2023-10-29 12:51:00 +00:00
{% if p.thumb_url and not p.deleted_utc and not p.is_image and not p.is_video and not p.is_audio and not p.embed %}
<div class="card-header bg-transparent border-0 d-none d-md-flex flex-row flex-nowrap pl-3 p-0">
<a rel="noopener" href="{{p.realurl(v)}}" style="height: fit-content"{% if not v or v.newtabexternal %}target="_blank"{% endif %}><img loading="lazy" src="{{p.thumb_url}}" class="post-img d-mob-none" alt="Unable to load image"></a>
2023-10-29 12:51:00 +00:00
</div>
{% endif %}
2023-10-29 12:51:00 +00:00
<div id="post-content" class="card-block w-100 my-md-auto">
2023-10-29 12:51:00 +00:00
<div class="post-meta text-left mb-2">
{{macros.post_meta(p)}}
</div>
2023-10-29 12:51:00 +00:00
{{macros.reports(p, 'post')}}
2023-10-29 12:51:00 +00:00
<h1 id="post-title" class="{{p.award_classes(v, True)}} card-title post-title text-left mb-md-3">
2024-02-12 18:56:36 +00:00
{% if p.cw %}
<span class="post-flair bg-danger font-weight-bolder mr-1">CHILD WARNING</span>
{% endif %}
{% if p.effortpost %}
<a href="/?effortposts_only=True" class="post-flair effortpost-flair font-weight-bolder mr-1">EFFORTPOST</a>
{% endif %}
2023-10-29 12:51:00 +00:00
{% if p.realurl(v) and not v_forbid_deleted %}
2024-02-10 12:11:59 +00:00
<a class="novisited" {% if not v or v.newtabexternal %}target="_blank"{% endif %} rel="noopener" href="{{p.realurl(v)}}">
2023-10-29 12:51:00 +00:00
{% if p.flair %}<span class="post-flair font-weight-bolder mr-1">{{p.flair | safe}}</span>{% endif %}
{{p.realtitle(v) | safe}}
</a>
{% else %}
2023-10-09 17:07:01 +00:00
{% if p.flair %}<span class="post-flair font-weight-bolder mr-1">{{p.flair | safe}}</span>{% endif %}
{{p.realtitle(v) | safe}}
2023-09-26 15:59:27 +00:00
{% endif %}
2023-10-29 12:51:00 +00:00
</h1>
{% if not v_forbid_deleted %}
2024-01-10 22:15:07 +00:00
{% set tilt = p.award_count('tilt', v) %}
2024-01-12 05:28:25 +00:00
<div id="post-body" class="post-body mt-3" {% if tilt %}style="transform: rotate({{tilt}}deg); padding: {{tilt*4}}px min(10vw,{{tilt*10}}px)"{% endif %}>
2023-10-29 12:51:00 +00:00
{% if p.realurl(v) and not p.is_image and not p.is_video and not p.is_audio %}
<a rel="noopener" href="{{p.realurl(v)}}" {% if not v or v.newtabexternal %}target="_blank"{% endif %}>
2023-10-29 12:51:00 +00:00
<div class="d-flex justify-content-between align-items-center border rounded p-2 mb-3">
<span>{{p.realurl(v)}}</span>
<i class="fas fa-external-link-alt text-small"></i>
</div>
</a>
{% endif %}
2023-09-26 15:59:27 +00:00
2023-10-29 12:51:00 +00:00
{% if p.embed %}
{% if p.domain == "twitter.com" %}
2023-09-26 15:59:27 +00:00
{{p.embed | safe}}
2023-10-29 12:51:00 +00:00
{% if v and v.theme in LIGHT_THEMES %}
<script defer src="{{'js/vendor/twitterlight.js' | asset}}"></script>
{% else %}
<script defer src="{{'js/vendor/twitter.js' | asset}}"></script>
{% endif %}
{% elif p.domain in ['youtu.be','youtube.com'] and p.embed and p.embed.startswith('<lite-youtube') %}
<p class="resizable yt" style="width:100%">
{{p.embed | safe}}
</p>
{% else %}
<div id="crosspost-embed" class="mb-3">
<div class="row no-gutters">
<div id="frontpage" class="col-12 pt-0">
<div class="posts">
{{p.embed | post_embed(v) | safe}}
</div>
2023-09-26 15:59:27 +00:00
</div>
</div>
</div>
2023-10-29 12:51:00 +00:00
{% endif %}
2023-09-28 23:58:09 +00:00
{% endif %}
2023-01-01 11:36:20 +00:00
2023-10-29 12:51:00 +00:00
<div id="post-text" class="{{p.award_classes(v)}}">
{% if p.is_image %}
<div class="row no-gutters mb-4">
<div class="col">
<a {% if not v or v.newtabexternal %}target="_blank"{% endif %} rel="noopener" href="{{p.realurl(v)}}">
2023-10-29 12:51:00 +00:00
<img data-nonce="{{g.nonce}}" data-onclick="expandImage()" src="{{p.realurl(v)}}" class="post-linked-img" alt="Unable to load image">
</a>
</div>
2023-09-26 15:59:27 +00:00
</div>
2023-10-29 12:51:00 +00:00
{% elif p.is_video %}
<div class="row no-gutters mb-4">
<div class="col">
<p class="resizable">
<video {% if p.poster_url %}poster="{{p.poster_url}}"{% endif %} controls preload="none" src="{{p.realurl(v)}}"></video>
</p>
</div>
2023-09-26 15:59:27 +00:00
</div>
2023-10-29 12:51:00 +00:00
{% elif p.is_audio %}
<div class="row no-gutters mb-4">
<div class="col">
<audio controls preload="none" src="{{p.realurl(v)}}"></audio>
</div>
2023-09-26 15:59:27 +00:00
</div>
2023-10-29 12:51:00 +00:00
{% endif %}
{{p.realbody(v) | safe}}
2023-10-29 12:51:00 +00:00
{% if p.is_banned %}
2024-02-18 14:04:32 +00:00
<div class="text-removed mb-0">
Removed by
{% if FEATURES['ADMIN_TRANSPARENCY'] %}
@{{p.ban_reason}} (site admin)
{% else %}
site admins
{% endif %}
</div>
2023-10-29 12:51:00 +00:00
{% endif %}
</div>
{% if not p.ghost %}
{{p.author.rendered_sig(v) | safe}}
2023-09-26 15:59:27 +00:00
{% endif %}
</div>
2023-10-29 12:51:00 +00:00
{% else %}
<div id="post-body" class="post-body mt-3">
<div id="post-text"><code>[Deleted by author.]</code></div>
</div>
{% endif %}
2023-01-01 11:36:20 +00:00
2023-10-29 12:51:00 +00:00
{% if v and v.can_edit(p) and not v.is_suspended %}
<div id="edit-post-body-{{p.id}}" class="d-none comment-write collapsed child">
<form id="post-edit-form-{{p.id}}" action="/edit_post/{{p.id}}" method="post" enctype="multipart/form-data" data-nonce="{{g.nonce}}" data-onsubmit="sendFormXHRReload(this)">
<input hidden name="formkey" value="{{v|formkey}}">
<input hidden name="current_page" value="{{request.path}}">
<textarea id="post-edit-title" autocomplete="off" maxlength="500" name="title" class="comment-box form-control rounded" required placeholder="title">{{p.title}}</textarea>
<textarea autocomplete="off" name="body" {% if v.longpost %}minlength="280"{% endif %} maxlength="{% if v.bird %}140{% else %}{{POST_BODY_LENGTH_LIMIT(v)}}{% endif %}" data-preview="post-edit-{{p.id}}" data-nonce="{{g.nonce}}" data-oninput="markdown(this);charLimit('post-edit-box-{{p.id}}','charcount-post-edit')" id="post-edit-box-{{p.id}}" form="post-edit-form-{{p.id}}" class="file-ta comment-box form-control rounded" placeholder="Add text to your post..." rows="10" data-id="{{p.id}}">{{p.body}}</textarea>
2023-10-29 12:51:00 +00:00
<div class="text-small font-weight-bold mt-1" id="charcount-post-edit" style="right: 1rem; bottom: 0.5rem; z-index: 3"></div>
2023-10-29 12:51:00 +00:00
<div class="format-btns">
{{macros.emoji_btn('post-edit-box-' ~ p.id)}}
{{macros.gif_btn('post-edit-box-' ~ p.id)}}
{{macros.file_btn('file-upload-edit-' ~ p.id)}}
</div>
<a class="text-small mt-3 d-inline-block" href="/formatting" data-target="t" target="_blank">Formatting help</a>
2023-10-29 12:51:00 +00:00
<button type="submit" form="post-edit-form-{{p.id}}" class="btn btn-primary ml-2 fl-r" data-nonce="{{g.nonce}}" data-onclick="remove_dialog()">Save Edit</button>
<button type="button" data-nonce="{{g.nonce}}" data-onclick="togglePostEdit('{{p.id}}');remove_dialog()" class="btn btn-link text-muted ml-auto fl-r">Cancel</button>
</form>
<div id="post-edit-{{p.id}}" class="preview mb-3 mt-5"></div>
</div>
{% endif %}
<div class="d-none d-md-flex justify-content-between align-items-center mt-2">
<div class="post-actions mt-2">
<ul class="list-inline text-right d-flex">
<a class="list-inline-item" {% if v and v.newtab %}data-target="t" target="_blank"{% endif %} href="{{p.permalink}}">
<i class="fas fa-comment-dots mr-2"></i>{{p.comment_count}}
<span class="text-info d-none {{p.id}}-new-comments"></span>
</a>
{% if v and v.can_edit(p) %}
<button type="button" class="list-inline-item" data-nonce="{{g.nonce}}" data-onclick="togglePostEdit('{{p.id}}')"><i class="fas fa-edit"></i>Edit</button>
{% elif v and v.id != p.author_id and p.body and not v_forbid_deleted %}
<button type="button" class="list-inline-item" data-nonce="{{g.nonce}}" data-onclick="expandMarkdown('{{p.fullname}}')"><i class="fas text-expand-icon-{{p.fullname}} fa-expand-alt"></i><span class="expand-text-{{p.fullname}}">View Source</span></button>
2023-10-29 12:51:00 +00:00
{% endif %}
2023-10-29 12:51:00 +00:00
{% include 'post_actions.html' %}
</ul>
</div>
</div>
</div>
2023-10-29 12:51:00 +00:00
{% if v %}
<div id="voting" class="voting d-mob-none mb-auto mt-1">
2023-10-29 14:27:55 +00:00
<div tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('post', '{{p.id}}', '1')" class="post-{{p.id}}-up mx-auto arrow-up upvote-button post-{{p.id}}-up {% if voted == 1 %}active{% endif %}"></div>
2023-10-29 14:27:55 +00:00
<span class="post-score-{{p.id}} score post-score-{{p.id}} {% if voted == 1 %}score-up{% elif voted==-1 %}score-down{% endif %}{% if p.controversial %} controversial{% endif %}" data-bs-toggle="tooltip" data-bs-placement="right" title="+{{ups}} | -{{downs}}" style="cursor: default">{{score}}</span>
2023-12-01 14:43:03 +00:00
<div {% if DISABLE_DOWNVOTES %}style="display:none!important"{% endif %} tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('post', '{{p.id}}', '-1')" class="post-{{p.id}}-down text-muted mx-auto arrow-down downvote-button post-{{p.id}}-down {% if voted==-1 %}active{% endif %}"></div>
2023-10-29 12:51:00 +00:00
</div>
{% else %}
<div id="voting" class="voting d-mob-none mb-auto mt-1">
<a tabindex="0" class="post-{{p.id}}-up arrow-up mx-auto" href="/login?redirect={{request.full_path | urlencode}}">
</a>
<span class="post-{{p.id}}-score-none score text-muted{% if p.controversial %} controversial{% endif %}"{% if not p.is_banned %} data-bs-toggle="tooltip" data-bs-placement="right" title="+{{ups}} | -{{downs}}"{% endif %}style="cursor: default">{{score}}</span>
2023-12-01 14:43:03 +00:00
<a {% if DISABLE_DOWNVOTES %}style="display:none!important"{% endif %} tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('post', '{{p.id}}', '-1')" class="post-{{p.id}}-down arrow-down mx-auto" href="/login?redirect={{request.full_path | urlencode}}"></a>
2023-10-29 12:51:00 +00:00
</div>
{% endif %}
</div>
</div>
</div>
</div>
2023-10-29 12:51:00 +00:00
<div class="row mb-3 d-md-none">
<div class="col-12">
<div class="post-actions">
<ul class="list-inline text-right d-flex">
<li class="list-inline-item mr-auto">
<a href="{{p.permalink}}">
<i class="fas fa-comment-dots mr-2"></i>{{p.comment_count}}
<span class="text-info d-none {{p.id}}-new-comments"></span>
</a>
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
<button type="button" class="ml-2" data-bs-toggle="modal" data-bs-target="#adminModal-{{p.id}}">
<i class="fas fa-broom"></i>
</button>
{% endif %}
2023-10-29 00:07:53 +00:00
</li>
2023-10-29 12:51:00 +00:00
{% if v %}
2023-10-29 12:51:00 +00:00
<li class="list-inline-item">
<button type="button" data-bs-toggle="modal" data-bs-target="#actionsModal">
<i class="fas fa-ellipsis-h"></i>
</button>
</li>
{% endif %}
2023-10-29 14:27:55 +00:00
<li id="voting-{{p.id}}-mobile" class="voting list-inline-item d-md-none{% if voted == 1 %} upvoted{% elif voted==-1 %} downvoted{% endif %}">
2023-10-29 12:51:00 +00:00
{% if v %}
2023-10-29 14:27:55 +00:00
<span tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('post-mobile', '{{p.id}}', '1')" class="post-mobile-{{p.id}}-up mx-0 pr-1 arrow-up upvote-button post-{{p.id}}-up {% if voted == 1 %}active{% endif %}">
2023-10-29 12:51:00 +00:00
</span>
{% else %}
<a tabindex="0" class="arrow-{{p.id}}-mobile-up mx-0 pr-1 arrow-mobile-up" href="/login?redirect={{request.full_path | urlencode}}">
<i class="fas fa-arrow-alt-up mx-0"></i>
</a>
{% endif %}
2023-10-29 14:27:55 +00:00
<span class="post-mobile-score-{{p.id}} score post-score-{{p.id}} {% if voted == 1 %}score-up{% elif voted==-1 %}score-down{% endif %}{% if p.controversial %} controversial{% endif %}" data-bs-toggle="tooltip" data-bs-placement="top" title="+{{ups}} | -{{downs}}" style="cursor: default">{{score}}</span>
2023-10-29 12:51:00 +00:00
{% if v %}
2023-12-01 14:43:03 +00:00
<span {% if DISABLE_DOWNVOTES %}style="display:none!important"{% endif %} tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('post-mobile', '{{p.id}}', '-1')" class="post-mobile-{{p.id}}-down mx-0 pl-1 my-0 arrow-down downvote-button post-{{p.id}}-down {% if voted==-1 %}active{% endif %}"></span>
2023-10-29 12:51:00 +00:00
{% else %}
2023-12-01 14:43:03 +00:00
<a {% if DISABLE_DOWNVOTES %}style="display:none!important"{% endif %} tabindex="0" class="arrow-{{p.id}}-mobile-down arrow-mobile-down mx-0 pl-1 my-0" href="/login?redirect={{request.full_path | urlencode}}">
2023-10-29 12:51:00 +00:00
<i class="fas fa-arrow-alt-down mx-0"></i>
</a>
{% endif %}
</li>
</ul>
</div>
</div>
</div>
2023-10-29 12:51:00 +00:00
{% if v and v.id != p.author_id and p.body and not v_forbid_deleted and v.admin_level < PERMS['POST_COMMENT_EDITING'] %}
<div autocomplete="off" class="markdown d-none border my-2 p-3 rounded" id="markdown-{{p.fullname}}" readonly>{{p.body.strip()}}</div>
{% endif %}
2023-10-29 12:51:00 +00:00
<div class="row border-md-0 comment-section pb-3">
<div class="col border-top">
<div class="comments-count py-3">
{%- import 'util/macros.html' as macros with context -%}
{{- macros.sorting_buttons(COMMENT_SORTS, True) -}}
</div>
2023-10-29 12:51:00 +00:00
{{macros.comment_reply_box(p.fullname, 'comment-reply-' + p.fullname, subwrapper_css_classes='mb-3', enable_cancel_button=false)}}
2023-10-29 12:51:00 +00:00
{% if comment_info %}
<div class="total mt-1"><a href="{{p.permalink}}">View entire discussion <i class="fas fa-long-arrow-right ml-1"></i></a></div>
{% endif %}
2023-10-29 12:51:00 +00:00
{% if p.replies %}
<div class="comment-section" id="replies-of-{{p.fullname}}">
{% with comments=p.replies %}
{% include "comments.html" %}
{% endwith %}
</div>
2023-01-01 11:36:20 +00:00
2023-10-29 12:51:00 +00:00
{% if offset %}
<script defer src="{{'js/view_more.js' | asset}}"></script>
{% endif %}
2023-10-29 12:51:00 +00:00
{% elif not p.replies and p.deleted_utc == 0 %}
<div class="comment-section no-replies" id="replies-of-{{p.fullname}}">
{% if v %}
{% set ghost_town = 'This comment section is a ghost town...' %}
{% else %}
{% set ghost_town = 'This comment section is a ghost town... <a href="/login?redirect={{request.full_path | urlencode}}">Sign in</a></p> '%}
{% endif %}
{{macros.ghost_box('Be the first to comment!', ghost_town, 1)}}
</div>
{% endif %}
</div>
</div>
2023-10-29 12:51:00 +00:00
{% if v %}
2024-02-14 12:49:29 +00:00
{% if v.id == p.author_id %}
{% include "modals/delete_post.html" %}
{% endif %}
2023-10-29 12:51:00 +00:00
{% include "modals/report_post.html" %}
2024-02-14 12:49:29 +00:00
{% if p.hole_changable(v) %}
{% include "modals/change_hole.html" %}
{% endif %}
2023-10-29 12:51:00 +00:00
{% if v.can_edit(p) %}
<script defer src="{{'js/edit_post.js' | asset}}"></script>
{% endif %}
{% if v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
<script defer src="{{'js/admin/pinpost.js' | asset}}"></script>
{% endif %}
{% endif %}
2023-10-29 12:51:00 +00:00
<script defer src="{{'js/vendor/clipboard.js' | asset}}"></script>
2023-10-29 12:51:00 +00:00
{% if not p.replies %}{% include "comments.html" %}{% endif %}
2023-10-29 12:51:00 +00:00
<input hidden class="twoattrs" value="{{p.id}},{{p.comment_count}}">
<script defer src="{{'js/new_comments.js' | asset}}"></script>
<script defer src="{{'js/post.js' | asset}}"></script>
2023-10-29 12:51:00 +00:00
{% if fart and not (v and v.has_badge(128)) %}
<script defer src="{{'js/fart.js' | asset}}"></script>
{% endif %}
2022-10-25 13:41:49 +00:00
2023-10-29 12:51:00 +00:00
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
<script defer src="{{'js/admin/post.js' | asset}}"></script>
{% endif %}
{% endblock %}