forked from rDrama/rDrama
use my own modal system instead of bootstrap in preparation for potentially not using bootstrap.js anymore (also I like it more and wanna see if anybody notices any changes at all)
parent
8fd8a5ed9c
commit
92a5174466
|
@ -1807,6 +1807,11 @@ button.close {
|
||||||
.modal-open {
|
.modal-open {
|
||||||
overflow: hidden !important;
|
overflow: hidden !important;
|
||||||
}
|
}
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.modal-open {
|
||||||
|
padding-right: 21px;
|
||||||
|
}
|
||||||
|
}
|
||||||
.modal-open .modal {
|
.modal-open .modal {
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
@ -5851,6 +5856,10 @@ html {
|
||||||
padding: 12px;
|
padding: 12px;
|
||||||
padding-bottom: 4px;
|
padding-bottom: 4px;
|
||||||
}
|
}
|
||||||
|
[id^="m-"]:target {
|
||||||
|
display: block !important;
|
||||||
|
background: rgba(33,38,45,.8) !important;
|
||||||
|
}
|
||||||
|
|
||||||
.mod {
|
.mod {
|
||||||
padding: 2px 5px 3px 5px;
|
padding: 2px 5px 3px 5px;
|
||||||
|
|
|
@ -116,6 +116,24 @@ for (const element of TH) {
|
||||||
element.addEventListener('click', () => {sort_table(element)});
|
element.addEventListener('click', () => {sort_table(element)});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const dismiss_modal = document.querySelectorAll("[dismiss_modal]");
|
||||||
|
for (const element of dismiss_modal) {
|
||||||
|
element.addEventListener('click', (e) => {
|
||||||
|
if (location.hash.startsWith("#m-")) {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const modals = document.getElementsByClassName("modal");
|
||||||
|
for (const element of modals) {
|
||||||
|
element.addEventListener('click', (e) => {
|
||||||
|
if (location.hash.startsWith("#m-") && e.target == element) {
|
||||||
|
history.back();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function register_new_elements(e) {
|
function register_new_elements(e) {
|
||||||
const oninput = e.querySelectorAll('[data-oninput]');
|
const oninput = e.querySelectorAll('[data-oninput]');
|
||||||
for (const element of oninput) {
|
for (const element of oninput) {
|
||||||
|
|
|
@ -8,7 +8,6 @@ reason_comment.addEventListener('keydown', (e) => {
|
||||||
if (!(targetDOM instanceof HTMLInputElement)) return;
|
if (!(targetDOM instanceof HTMLInputElement)) return;
|
||||||
|
|
||||||
reportCommentButton.click()
|
reportCommentButton.click()
|
||||||
bootstrap.Modal.getOrCreateInstance(document.getElementById('reportCommentModal')).hide()
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -129,11 +129,10 @@ if (!location.pathname.endsWith('/submit'))
|
||||||
}
|
}
|
||||||
|
|
||||||
const submitButtonDOMs = formDOM.querySelectorAll('input[type=submit], .btn-primary');
|
const submitButtonDOMs = formDOM.querySelectorAll('input[type=submit], .btn-primary');
|
||||||
if (submitButtonDOMs.length === 0)
|
if (submitButtonDOMs) {
|
||||||
throw new TypeError("I am unable to find the submit button :(. Contact the head custodian immediately.")
|
|
||||||
|
|
||||||
const btn = submitButtonDOMs[0]
|
const btn = submitButtonDOMs[0]
|
||||||
btn.click();
|
btn.click();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -182,8 +181,6 @@ function formkey() {
|
||||||
else return null;
|
else return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
const expandImageModal = document.getElementById('expandImageModal')
|
|
||||||
|
|
||||||
function expandImage(url) {
|
function expandImage(url) {
|
||||||
const e = this.event
|
const e = this.event
|
||||||
if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey)
|
if (e.ctrlKey || e.metaKey || e.shiftKey || e.altKey)
|
||||||
|
@ -201,7 +198,7 @@ function expandImage(url) {
|
||||||
document.getElementById("desktop-expanded-image").src = url.replace("200w.webp", "giphy.webp");
|
document.getElementById("desktop-expanded-image").src = url.replace("200w.webp", "giphy.webp");
|
||||||
document.getElementById("desktop-expanded-image-wrap-link").href = url.replace("200w.webp", "giphy.webp");
|
document.getElementById("desktop-expanded-image-wrap-link").href = url.replace("200w.webp", "giphy.webp");
|
||||||
|
|
||||||
bootstrap.Modal.getOrCreateInstance(expandImageModal).show();
|
location.hash = 'm-expandImage'
|
||||||
};
|
};
|
||||||
|
|
||||||
function bs_trigger(e) {
|
function bs_trigger(e) {
|
||||||
|
@ -405,6 +402,12 @@ function focusSearchBar(element)
|
||||||
{
|
{
|
||||||
if (screen_width >= 768) {
|
if (screen_width >= 768) {
|
||||||
element.focus();
|
element.focus();
|
||||||
|
setTimeout(() => {
|
||||||
|
element.focus();
|
||||||
|
}, 200);
|
||||||
|
setTimeout(() => {
|
||||||
|
element.focus();
|
||||||
|
}, 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -634,35 +637,6 @@ function handleUploadProgress(e, upload_prog) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (screen_width <= 768) {
|
|
||||||
let object
|
|
||||||
if (gbrowser == 'iphone' && expandImageModal)
|
|
||||||
object = expandImageModal
|
|
||||||
if (gbrowser != 'iphone')
|
|
||||||
object = document
|
|
||||||
|
|
||||||
if (object) {
|
|
||||||
object.addEventListener('shown.bs.modal', function (e) {
|
|
||||||
const new_href = `${location.href.split('#')[0]}#m-${e.target.id}`
|
|
||||||
history.pushState({}, '', new_href)
|
|
||||||
});
|
|
||||||
|
|
||||||
object.addEventListener('hide.bs.modal', function (e) {
|
|
||||||
if (location.hash == `#m-${e.target.id}`) {
|
|
||||||
history.back();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
addEventListener('hashchange', function () {
|
|
||||||
if (!location.hash.startsWith("#m-")) {
|
|
||||||
const curr_modal = bootstrap.Modal.getInstance(document.getElementsByClassName('show')[0])
|
|
||||||
if (curr_modal) curr_modal.hide()
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
document.querySelectorAll('form').forEach(form => {
|
document.querySelectorAll('form').forEach(form => {
|
||||||
form.addEventListener('submit', (e) => {
|
form.addEventListener('submit', (e) => {
|
||||||
if (form.classList.contains('is-submitting')) {
|
if (form.classList.contains('is-submitting')) {
|
||||||
|
@ -719,3 +693,13 @@ function enablePushNotifications() {
|
||||||
console.error(e)
|
console.error(e)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const body = document.getElementsByTagName('body')[0]
|
||||||
|
function body_fix() {
|
||||||
|
if (location.hash.startsWith("#m-"))
|
||||||
|
body.classList.add('modal-open')
|
||||||
|
else
|
||||||
|
body.classList.remove('modal-open')
|
||||||
|
}
|
||||||
|
body_fix()
|
||||||
|
addEventListener('hashchange', body_fix)
|
||||||
|
|
|
@ -221,8 +221,8 @@ function fetchEmojis() {
|
||||||
let classSelectorDOM = document.createElement("li");
|
let classSelectorDOM = document.createElement("li");
|
||||||
classSelectorDOM.classList.add("nav-item");
|
classSelectorDOM.classList.add("nav-item");
|
||||||
|
|
||||||
let classSelectorLinkDOM = document.createElement("a");
|
let classSelectorLinkDOM = document.createElement("button");
|
||||||
classSelectorLinkDOM.href = "#";
|
classSelectorLinkDOM.type = "button";
|
||||||
classSelectorLinkDOM.classList.add("nav-link", "emojitab");
|
classSelectorLinkDOM.classList.add("nav-link", "emojitab");
|
||||||
classSelectorLinkDOM.dataset.bsToggle = "tab";
|
classSelectorLinkDOM.dataset.bsToggle = "tab";
|
||||||
classSelectorLinkDOM.dataset.className = className;
|
classSelectorLinkDOM.dataset.className = className;
|
||||||
|
@ -256,7 +256,7 @@ function switchEmojiTab(e)
|
||||||
const className = e.currentTarget.dataset.className;
|
const className = e.currentTarget.dataset.className;
|
||||||
|
|
||||||
emojiSearchBarDOM.value = "";
|
emojiSearchBarDOM.value = "";
|
||||||
focusSearchBar(emojiSearchBarDOM);
|
emojiSearchBarDOM.focus();
|
||||||
emojiNotFoundDOM.hidden = true;
|
emojiNotFoundDOM.hidden = true;
|
||||||
|
|
||||||
// Special case: favorites
|
// Special case: favorites
|
||||||
|
@ -559,12 +559,8 @@ function loadEmojis(inputTargetIDName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('emojiModal').addEventListener('shown.bs.modal', function () {
|
addEventListener('hashchange', function () {
|
||||||
|
if (location.hash == "#m-emoji") {
|
||||||
focusSearchBar(emojiSearchBarDOM);
|
focusSearchBar(emojiSearchBarDOM);
|
||||||
setTimeout(() => {
|
}
|
||||||
focusSearchBar(emojiSearchBarDOM);
|
|
||||||
}, 200);
|
|
||||||
setTimeout(() => {
|
|
||||||
focusSearchBar(emojiSearchBarDOM);
|
|
||||||
}, 1000);
|
|
||||||
});
|
});
|
||||||
|
|
|
@ -15,16 +15,6 @@ function insertGIF(url) {
|
||||||
if (typeof checkForRequired === "function") checkForRequired();
|
if (typeof checkForRequired === "function") checkForRequired();
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('gifModal').addEventListener('shown.bs.modal', function () {
|
|
||||||
focusSearchBar(gifSearchBar);
|
|
||||||
setTimeout(() => {
|
|
||||||
focusSearchBar(gifSearchBar);
|
|
||||||
}, 200);
|
|
||||||
setTimeout(() => {
|
|
||||||
focusSearchBar(gifSearchBar);
|
|
||||||
}, 1000);
|
|
||||||
});
|
|
||||||
|
|
||||||
async function getGifs(form) {
|
async function getGifs(form) {
|
||||||
commentFormID = form;
|
commentFormID = form;
|
||||||
|
|
||||||
|
@ -126,7 +116,7 @@ async function searchGifs(searchTerm) {
|
||||||
if (data.length) {
|
if (data.length) {
|
||||||
for (const e of data) {
|
for (const e of data) {
|
||||||
const url = "https://media.giphy.com/media/" + e.id + "/giphy.webp";
|
const url = "https://media.giphy.com/media/" + e.id + "/giphy.webp";
|
||||||
const insert = `<img class="giphy" loading="lazy" data-bs-dismiss="modal" src="${url}"></div>`
|
const insert = `<img class="giphy" loading="lazy" dismiss_modal src="${url}"></div>`
|
||||||
container.insertAdjacentHTML('beforeend', insert);
|
container.insertAdjacentHTML('beforeend', insert);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -141,3 +131,9 @@ async function searchGifs(searchTerm) {
|
||||||
}
|
}
|
||||||
|
|
||||||
gifSearchBar.addEventListener('change', () => {searchGifs(gifSearchBar.value)});
|
gifSearchBar.addEventListener('change', () => {searchGifs(gifSearchBar.value)});
|
||||||
|
|
||||||
|
addEventListener('hashchange', function () {
|
||||||
|
if (location.hash == "#m-gif") {
|
||||||
|
focusSearchBar(gifSearchBar);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
|
@ -8,7 +8,6 @@ reason_post.addEventListener('keydown', (e) => {
|
||||||
if (!(targetDOM instanceof HTMLInputElement)) return;
|
if (!(targetDOM instanceof HTMLInputElement)) return;
|
||||||
|
|
||||||
reportPostButton.click()
|
reportPostButton.click()
|
||||||
bootstrap.Modal.getOrCreateInstance(document.getElementById('reportPostModal')).hide()
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function report_postModal(id) {
|
function report_postModal(id) {
|
||||||
|
|
|
@ -3,10 +3,11 @@ document.getElementById('new_email').addEventListener('input', function () {
|
||||||
document.getElementById("email-password-label").classList.remove("d-none");
|
document.getElementById("email-password-label").classList.remove("d-none");
|
||||||
document.getElementById("emailpasswordRequired").classList.remove("d-none");
|
document.getElementById("emailpasswordRequired").classList.remove("d-none");
|
||||||
});
|
});
|
||||||
const twoStepModal = bootstrap.Modal.getOrCreateInstance(document.getElementById('2faModal'))
|
|
||||||
|
|
||||||
function emailVerifyText() {
|
function emailVerifyText() {
|
||||||
document.getElementById("email-verify-text").innerHTML = "Verification email sent! Please check your inbox.";
|
document.getElementById("email-verify-text").innerHTML = "Verification email sent! Please check your inbox.";
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('2faToggle').addEventListener('change', () => {twoStepModal.show()})
|
document.getElementById('2faToggle').addEventListener('change', () => {
|
||||||
|
location.hash = 'm-2fa'
|
||||||
|
})
|
||||||
|
|
|
@ -282,7 +282,7 @@
|
||||||
<ul class="list-inline text-right d-flex">
|
<ul class="list-inline text-right d-flex">
|
||||||
<li class="list-inline-item mr-auto">
|
<li class="list-inline-item mr-auto">
|
||||||
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
||||||
<button type="button" data-bs-toggle="modal" data-bs-target="#adminModal-{{c.id}}">
|
<button type="button" href="#m-adminModal-{{c.id}}">
|
||||||
<i class="fas fa-broom"></i>
|
<i class="fas fa-broom"></i>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -293,7 +293,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<button type="button" data-bs-toggle="modal" data-bs-target="#actionsModal-{{c.id}}">
|
<button type="button" href="#m-actionsModal-{{c.id}}">
|
||||||
<i class="fas fa-ellipsis-h"></i>
|
<i class="fas fa-ellipsis-h"></i>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
@ -349,7 +349,7 @@
|
||||||
<button type="button" tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('comment', '{{c.id}}', '1')" class="comment-{{c.id}}-up btn caction py-0 m-0 px-3 nobackground arrow-up upvote-button mx-0 comment-{{c.id}}-up {% if voted==1 %}active{% endif %}"></button>
|
<button type="button" tabindex="0" data-nonce="{{g.nonce}}" data-onclick="vote('comment', '{{c.id}}', '1')" class="comment-{{c.id}}-up btn caction py-0 m-0 px-3 nobackground arrow-up upvote-button mx-0 comment-{{c.id}}-up {% if voted==1 %}active{% endif %}"></button>
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
<a type="button" tabindex="0" class="comment-{{c.id}}-up btn caction nobackground py-0 m-0 px-3 arrow-up" href="/login?redirect={{request.full_path | urlencode}}"></a>
|
<a tabindex="0" class="comment-{{c.id}}-up btn caction nobackground py-0 m-0 px-3 arrow-up" href="/login?redirect={{request.full_path | urlencode}}"></a>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -366,7 +366,7 @@
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
<a type="button" {% if DISABLE_DOWNVOTES %}style="display:None!important"{% endif %} tabindex="0" class="comment-{{c.id}}-down btn caction py-0 m-0 px-3 nobackground arrow-down" href="/login?redirect={{request.full_path | urlencode}}"></a>
|
<a {% if DISABLE_DOWNVOTES %}style="display:None!important"{% endif %} tabindex="0" class="comment-{{c.id}}-down btn caction py-0 m-0 px-3 nobackground arrow-down" href="/login?redirect={{request.full_path | urlencode}}"></a>
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -383,10 +383,10 @@
|
||||||
<button id="toggle-reply-{{c.fullname}}" type="button" class="btn caction py-0 nobackground px-1 text-muted" data-nonce="{{g.nonce}}" data-onclick="toggleReplyBox(this, 'reply-to-{{c.fullname}}')"><i class="fas fa-reply"></i>Reply</button>
|
<button id="toggle-reply-{{c.fullname}}" type="button" class="btn caction py-0 nobackground px-1 text-muted" data-nonce="{{g.nonce}}" data-onclick="toggleReplyBox(this, 'reply-to-{{c.fullname}}')"><i class="fas fa-reply"></i>Reply</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="button" class="btn caction py-0 nobackground px-1 text-muted" data-bs-toggle="modal" data-bs-target="#reportCommentModal" data-nonce="{{g.nonce}}" data-onclick="report_commentModal('{{c.id}}','{{c.author_name}}',)"><i class="fas fa-flag fa-fw"></i>Report</button>
|
<a class="btn caction py-0 nobackground px-1 text-muted" href="#m-reportComment" data-nonce="{{g.nonce}}" data-onclick="report_commentModal('{{c.id}}','{{c.author_name}}',)"><i class="fas fa-flag fa-fw"></i>Report</a>
|
||||||
|
|
||||||
{% if FEATURES['AWARDS'] -%}
|
{% if FEATURES['AWARDS'] -%}
|
||||||
<button type="button" class="btn caction py-0 nobackground px-1 text-muted" data-bs-toggle="modal" data-bs-target="#awardModal" data-url="/award/comment/{{c.id}}" data-ghost="{{c.ghost}}" data-nonce="{{g.nonce}}" {% if c.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift"></i>Give Award</button>
|
<a class="btn caction py-0 nobackground px-1 text-muted" href="#m-award" data-url="/award/comment/{{c.id}}" data-ghost="{{c.ghost}}" data-nonce="{{g.nonce}}" {% if c.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift"></i>Give Award</a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
<button type="button" id="save-{{c.id}}" class="btn caction py-0 nobackground px-1 {% if c.id not in v.saved_comment_idlist %}d-md-inline-block{% endif %} text-muted d-none" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_comment/{{c.id}}','save-{{c.id}}','unsave-{{c.id}}','d-md-inline-block')"><i class="fas fa-save"></i>Save {% if c.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this comment">[{{c.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="save-{{c.id}}" class="btn caction py-0 nobackground px-1 {% if c.id not in v.saved_comment_idlist %}d-md-inline-block{% endif %} text-muted d-none" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_comment/{{c.id}}','save-{{c.id}}','unsave-{{c.id}}','d-md-inline-block')"><i class="fas fa-save"></i>Save {% if c.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this comment">[{{c.num_savers}}]</span>{% endif %}</button>
|
||||||
|
@ -402,7 +402,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if c.author_id == v.id %}
|
{% if c.author_id == v.id %}
|
||||||
<button type="button" id="delete-{{c.id}}" class="btn caction py-0 nobackground px-1 text-muted {% if c.deleted_utc %}d-none{% endif %}" data-bs-toggle="modal" data-bs-target="#deleteCommentModal" data-nonce="{{g.nonce}}" data-onclick="delete_commentModal('{{c.id}}')"><i class="fas fa-trash-alt fa-fw"></i>Delete</button>
|
<a id="delete-{{c.id}}" class="btn caction py-0 nobackground px-1 text-muted {% if c.deleted_utc %}d-none{% endif %}" href="#m-deleteComment" data-nonce="{{g.nonce}}" data-onclick="delete_commentModal('{{c.id}}')"><i class="fas fa-trash-alt fa-fw"></i>Delete</a>
|
||||||
|
|
||||||
<button type="button" id="undelete-{{c.id}}" class="btn caction py-0 nobackground px-1 text-muted {% if not c.deleted_utc %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete/comment/{{c.id}}','delete-{{c.id}}','undelete-{{c.id}}','d-none')" data-toggleelement=".comment-{{c.id}}-only" data-toggleattr="deleted"><i class="fas fa-trash-alt fa-fw"></i>Undelete</button>
|
<button type="button" id="undelete-{{c.id}}" class="btn caction py-0 nobackground px-1 text-muted {% if not c.deleted_utc %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete/comment/{{c.id}}','delete-{{c.id}}','undelete-{{c.id}}','d-none')" data-toggleelement=".comment-{{c.id}}-only" data-toggleattr="deleted"><i class="fas fa-trash-alt fa-fw"></i>Undelete</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -433,9 +433,9 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if url != "" %}
|
{% if url != "" %}
|
||||||
<button type="button" id="pin-{{c.id}}" class="dropdown-item list-inline-item {% if not c.stickied %}d-md-block{% endif %} text-muted d-none text-info" data-bs-dismiss="modal" data-bs-target="#actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}','d-md-block')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Pin</button>
|
<a id="pin-{{c.id}}" class="dropdown-item list-inline-item {% if not c.stickied %}d-md-block{% endif %} text-muted d-none text-info" href="#m-actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}','d-md-block')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Pin</a>
|
||||||
|
|
||||||
<button type="button" id="unpin-{{c.id}}" class="dropdown-item list-inline-item {% if c.stickied %}d-md-block{% endif %} text-muted d-none text-info" data-bs-dismiss="modal" data-bs-target="#actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/un{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}','d-md-block')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Unpin</button>
|
<a id="unpin-{{c.id}}" class="dropdown-item list-inline-item {% if c.stickied %}d-md-block{% endif %} text-muted d-none text-info" href="#m-actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/un{{url}}/{{c.id}}','pin-{{c.id}}','unpin-{{c.id}}','d-md-block')"><i class="fas fa-thumbtack fa-rotate--45 text-info fa-fw"></i>Unpin</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -476,13 +476,13 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level >= PERMS['USER_BAN'] and v.id != c.author_id %}
|
{% if v.admin_level >= PERMS['USER_BAN'] and v.id != c.author_id %}
|
||||||
<button type="button" class="{% if c.author.is_permabanned %}d-none{% endif %} dropdown-item list-inline-item d-mob-none text-danger" data-bs-toggle="modal" data-bs-target="#banModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</button>
|
<a class="{% if c.author.is_permabanned %}d-none{% endif %} dropdown-item list-inline-item d-mob-none text-danger" href="#m-ban" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a>
|
||||||
|
|
||||||
<button type="button" id="unban-{{c.fullname}}" class="dropdown-item list-inline-item d-mob-none {% if not c.author.is_suspended %}d-none{% endif %} text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{c.fullname}}')"><i class="fas fa-user-slash text-success fa-fw"></i>Unban user</button>
|
<button type="button" id="unban-{{c.fullname}}" class="dropdown-item list-inline-item d-mob-none {% if not c.author.is_suspended %}d-none{% endif %} text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{c.fullname}}')"><i class="fas fa-user-slash text-success fa-fw"></i>Unban user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level >= PERMS['USER_CHUD'] and v.id != c.author_id %}
|
{% if v.admin_level >= PERMS['USER_CHUD'] and v.id != c.author_id %}
|
||||||
<button type="button" class="{% if c.author.chud == 1 %}d-none{% endif %} dropdown-item list-inline-item d-mob-none text-danger" data-bs-toggle="modal" data-bs-target="#chudModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-face-sleeping text-danger fa-fw"></i>Chud user</button>
|
<a class="{% if c.author.chud == 1 %}d-none{% endif %} dropdown-item list-inline-item d-mob-none text-danger" href="#m-chud" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-face-sleeping text-danger fa-fw"></i>Chud user</a>
|
||||||
|
|
||||||
<button type="button" id="unchud-{{c.fullname}}" class="dropdown-item list-inline-item d-mob-none {% if not c.author.chud %}d-none{% endif %} text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{c.fullname}}')"><i class="fas fa-face-sleeping text-success fa-fw"></i>Unchud user</button>
|
<button type="button" id="unchud-{{c.fullname}}" class="dropdown-item list-inline-item d-mob-none {% if not c.author.chud %}d-none{% endif %} text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{c.fullname}}')"><i class="fas fa-face-sleeping text-success fa-fw"></i>Unchud user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -539,7 +539,7 @@
|
||||||
{% if c.author_id != v.id and request.path == '/notifications/messages' %}
|
{% if c.author_id != v.id and request.path == '/notifications/messages' %}
|
||||||
<button type="button" id="mute-notifs-{{c.id}}" class="btn btn-danger nobackground ml-2 mt-2 {% if v.has_muted(c.author) %}d-none{% endif %}" data-areyousure="postToastSwitch(this,'/mute_notifs/{{c.author.id}}','mute-notifs-{{c.id}}','unmute-notifs-{{c.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal">Mute notifications from user</button>
|
<button type="button" id="mute-notifs-{{c.id}}" class="btn btn-danger nobackground ml-2 mt-2 {% if v.has_muted(c.author) %}d-none{% endif %}" data-areyousure="postToastSwitch(this,'/mute_notifs/{{c.author.id}}','mute-notifs-{{c.id}}','unmute-notifs-{{c.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal">Mute notifications from user</button>
|
||||||
|
|
||||||
<button type="button" id="unmute-notifs-{{c.id}}" data-bs-dismiss="modal" class="btn btn-success nobackground ml-2 mt-2 {% if not v.has_muted(c.author) %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmute_notifs/{{c.author.id}}','mute-notifs-{{c.id}}','unmute-notifs-{{c.id}}','d-none')">Unmute notifications from user</button>
|
<button type="button" id="unmute-notifs-{{c.id}}" dismiss_modal class="btn btn-success nobackground ml-2 mt-2 {% if not v.has_muted(c.author) %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmute_notifs/{{c.author.id}}','mute-notifs-{{c.id}}','unmute-notifs-{{c.id}}','d-none')">Unmute notifications from user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div id="reply-to-{{c.fullname}}" class="d-none">
|
<div id="reply-to-{{c.fullname}}" class="d-none">
|
||||||
|
@ -571,12 +571,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="modal fade d-md-none" id="actionsModal-{{c.id}}" tabindex="-1">
|
<div class="modal d-md-none" id="actionsModal-{{c.id}}" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h6 class="modal-title">More options</h6>
|
<h6 class="modal-title">More options</h6>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -589,62 +589,62 @@
|
||||||
|
|
||||||
<a class="list-group-item" href="{{c.permalink}}"><i class="fas fa-book-open mr-2"></i>Context</a>
|
<a class="list-group-item" href="{{c.permalink}}"><i class="fas fa-book-open mr-2"></i>Context</a>
|
||||||
|
|
||||||
<button type="button" class="list-group-item copy-link" data-bs-dismiss="modal" data-clipboard-text="{% if SITE == 'rdrama.net' %}{{SITE_FULL}}{{c.shortlink}}{% else %}{{c.permalink}}{% endif %}"><i class="fas fa-copy mr-2"></i>Copy link</button>
|
<button type="button" class="list-group-item copy-link" dismiss_modal data-clipboard-text="{% if SITE == 'rdrama.net' %}{{SITE_FULL}}{{c.shortlink}}{% else %}{{c.permalink}}{% endif %}"><i class="fas fa-copy mr-2"></i>Copy link</button>
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<button type="button" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportCommentModal" data-nonce="{{g.nonce}}" data-onclick="report_commentModal('{{c.id}}','{{c.author_name}}')" class="list-group-item"><i class="fas fa-flag mr-2"></i>Report</button>
|
<a href="#m-reportComment" data-nonce="{{g.nonce}}" data-onclick="report_commentModal('{{c.id}}','{{c.author_name}}')" class="list-group-item"><i class="fas fa-flag mr-2"></i>Report</a>
|
||||||
|
|
||||||
{% if FEATURES['AWARDS'] -%}
|
{% if FEATURES['AWARDS'] -%}
|
||||||
<button type="button" class="list-group-item" data-bs-toggle="modal" data-bs-target="#awardModal" data-url="/award/comment/{{c.id}}" data-ghost="{{c.ghost}}" data-nonce="{{g.nonce}}" {% if c.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift mr-2"></i>Give Award</button>
|
<a class="list-group-item" href="#m-award" data-url="/award/comment/{{c.id}}" data-ghost="{{c.ghost}}" data-nonce="{{g.nonce}}" {% if c.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift mr-2"></i>Give Award</a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
<button type="button" id="save2-{{c.id}}" class="list-group-item {% if c.id in v.saved_comment_idlist %}d-none{% endif %}" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_comment/{{c.id}}','save2-{{c.id}}','unsave2-{{c.id}}','d-none')"><i class="fas fa-save mr-2"></i>Save {% if c.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this comment">[{{c.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="save2-{{c.id}}" class="list-group-item {% if c.id in v.saved_comment_idlist %}d-none{% endif %}" dismiss_modal data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_comment/{{c.id}}','save2-{{c.id}}','unsave2-{{c.id}}','d-none')"><i class="fas fa-save mr-2"></i>Save {% if c.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this comment">[{{c.num_savers}}]</span>{% endif %}</button>
|
||||||
<button type="button" id="unsave2-{{c.id}}" class="list-group-item {% if c.id not in v.saved_comment_idlist %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsave_comment/{{c.id}}','save2-{{c.id}}','unsave2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-save mr-2"></i>Unsave {% if c.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this comment">[{{c.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="unsave2-{{c.id}}" class="list-group-item {% if c.id not in v.saved_comment_idlist %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsave_comment/{{c.id}}','save2-{{c.id}}','unsave2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-save mr-2"></i>Unsave {% if c.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this comment">[{{c.num_savers}}]</span>{% endif %}</button>
|
||||||
|
|
||||||
{% if c.author_id == v.id %}
|
{% if c.author_id == v.id %}
|
||||||
<button type="button" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="toggleEdit('{{c.id}}')" class="list-group-item"><i class="fas fa-edit mr-2"></i>Edit</button>
|
<button type="button" dismiss_modal data-nonce="{{g.nonce}}" data-onclick="toggleEdit('{{c.id}}')" class="list-group-item"><i class="fas fa-edit mr-2"></i>Edit</button>
|
||||||
|
|
||||||
<button type="button" id="delete2-{{c.id}}" class="{% if c.deleted_utc %}d-none{% endif %} list-group-item text-danger" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deleteCommentModal" data-nonce="{{g.nonce}}" data-onclick="delete_commentModal('{{c.id}}')"><i class="fas fa-trash-alt text-danger mr-2"></i>Delete</button>
|
<a id="delete2-{{c.id}}" class="{% if c.deleted_utc %}d-none{% endif %} list-group-item text-danger" href="#m-deleteComment" data-nonce="{{g.nonce}}" data-onclick="delete_commentModal('{{c.id}}')"><i class="fas fa-trash-alt text-danger mr-2"></i>Delete</a>
|
||||||
<button type="button" id="undelete2-{{c.id}}" class="{% if not c.deleted_utc %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete/comment/{{c.id}}', 'delete2-{{c.id}}', 'undelete2-{{c.id}}','d-none')" data-toggleelement=".comment-{{c.id}}-only" data-toggleattr="deleted" data-bs-dismiss="modal"><i class="fas fa-trash-alt text-success mr-2"></i>Undelete</button>
|
<button type="button" id="undelete2-{{c.id}}" class="{% if not c.deleted_utc %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete/comment/{{c.id}}', 'delete2-{{c.id}}', 'undelete2-{{c.id}}','d-none')" data-toggleelement=".comment-{{c.id}}-only" data-toggleattr="deleted" dismiss_modal><i class="fas fa-trash-alt text-success mr-2"></i>Undelete</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if c.body %}
|
{% if c.body %}
|
||||||
<button type="button" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="expandMarkdown('{{c.fullname}}')" class="list-group-item"><i class="fas text-expand-icon-{{c.fullname}} fa-expand-alt mr-2"></i><span class="expand-text-{{c.fullname}}">View source</span></button>
|
<button type="button" dismiss_modal data-nonce="{{g.nonce}}" data-onclick="expandMarkdown('{{c.fullname}}')" class="list-group-item"><i class="fas text-expand-icon-{{c.fullname}} fa-expand-alt mr-2"></i><span class="expand-text-{{c.fullname}}">View source</span></button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if not c.ghost %}
|
{% if not c.ghost %}
|
||||||
<button type="button" id="block2-{{c.id}}" class="{% if c.is_blocking %}d-none{% endif %} list-group-item text-danger" data-areyousure="postToastSwitch(this,'/block_user?username={{c.author_name}}','block2-{{c.id}}','unblock2-{{c.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-eye-slash fa-fw text-danger mr-2"></i>Block user</button>
|
<button type="button" id="block2-{{c.id}}" class="{% if c.is_blocking %}d-none{% endif %} list-group-item text-danger" data-areyousure="postToastSwitch(this,'/block_user?username={{c.author_name}}','block2-{{c.id}}','unblock2-{{c.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-eye-slash fa-fw text-danger mr-2"></i>Block user</button>
|
||||||
|
|
||||||
<button type="button" id="unblock2-{{c.id}}" data-bs-dismiss="modal" class="text-success list-group-item {% if not c.is_blocking %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unblock_user?username={{c.author_name}}','block2-{{c.id}}','unblock2-{{c.id}}','d-none')"><i class="fas fa-eye text-success mr-2"></i>Unblock user</button>
|
<button type="button" id="unblock2-{{c.id}}" dismiss_modal class="text-success list-group-item {% if not c.is_blocking %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unblock_user?username={{c.author_name}}','block2-{{c.id}}','unblock2-{{c.id}}','d-none')"><i class="fas fa-eye text-success mr-2"></i>Unblock user</button>
|
||||||
|
|
||||||
{% if c.is_notif and c.author_id != AUTOJANNY_ID %}
|
{% if c.is_notif and c.author_id != AUTOJANNY_ID %}
|
||||||
<button type="button" id="mute-notifs2-{{c.id}}" class="{% if v.has_muted(c.author) %}d-none{% endif %} list-group-item text-danger" data-areyousure="postToastSwitch(this,'/mute_notifs/{{c.author.id}}','mute-notifs2-{{c.id}}','unmute-notifs2-{{c.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-bell-slash fa-fw text-danger mr-2"></i>Mute notifications from user</button>
|
<button type="button" id="mute-notifs2-{{c.id}}" class="{% if v.has_muted(c.author) %}d-none{% endif %} list-group-item text-danger" data-areyousure="postToastSwitch(this,'/mute_notifs/{{c.author.id}}','mute-notifs2-{{c.id}}','unmute-notifs2-{{c.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-bell-slash fa-fw text-danger mr-2"></i>Mute notifications from user</button>
|
||||||
|
|
||||||
<button type="button" id="unmute-notifs2-{{c.id}}" data-bs-dismiss="modal" class="text-success list-group-item {% if not v.has_muted(c.author) %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmute_notifs/{{c.author.id}}','mute-notifs2-{{c.id}}','unmute-notifs2-{{c.id}}','d-none')"><i class="fas fa-bell text-success mr-2"></i>Unmute notifications from user</button>
|
<button type="button" id="unmute-notifs2-{{c.id}}" dismiss_modal class="text-success list-group-item {% if not v.has_muted(c.author) %}d-none{% endif %}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmute_notifs/{{c.author.id}}','mute-notifs2-{{c.id}}','unmute-notifs2-{{c.id}}','d-none')"><i class="fas fa-bell text-success mr-2"></i>Unmute notifications from user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if FEATURES['NSFW_MARKING'] and (c.author_id == v.id or (c.post.sub and v.mods(c.post.sub))) %}
|
{% if FEATURES['NSFW_MARKING'] and (c.author_id == v.id or (c.post.sub and v.mods(c.post.sub))) %}
|
||||||
<button type="button" id="mark2-{{c.id}}" class="{% if c.over_18 %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-danger mr-2"></i>Mark 18+</button>
|
<button type="button" id="mark2-{{c.id}}" class="{% if c.over_18 %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-danger mr-2"></i>Mark 18+</button>
|
||||||
|
|
||||||
<button type="button" id="unmark2-{{c.id}}" class="{% if not c.over_18 %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-success mr-2"></i>Unmark 18+</button>
|
<button type="button" id="unmark2-{{c.id}}" class="{% if not c.over_18 %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-success mr-2"></i>Unmark 18+</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level < PERMS['POST_COMMENT_MODERATION'] %}
|
{% if v.admin_level < PERMS['POST_COMMENT_MODERATION'] %}
|
||||||
{% if c.parent_post and v.id == c.post.author_id %}
|
{% if c.parent_post and v.id == c.post.author_id %}
|
||||||
<button type="button" id="pin2-{{c.id}}" class="list-group-item {% if c.stickied %}d-none{% endif %} text-info" data-bs-target="#actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Pin</button>
|
<a id="pin2-{{c.id}}" class="list-group-item {% if c.stickied %}d-none{% endif %} text-info" href="#m-actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Pin</a>
|
||||||
<button type="button" id="unpin2-{{c.id}}" class="list-group-item {% if not c.stickied %}d-none{% endif %} text-info" data-bs-target="#actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unpin_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Unpin</button>
|
<a id="unpin2-{{c.id}}" class="list-group-item {% if not c.stickied %}d-none{% endif %} text-info" href="#m-actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unpin_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Unpin</a>
|
||||||
{% elif c.post.sub and v.mods(c.post.sub) %}
|
{% elif c.post.sub and v.mods(c.post.sub) %}
|
||||||
<button type="button" id="pin2-{{c.id}}" class="list-group-item {% if c.stickied %}d-none{% endif %} text-info" data-bs-target="#actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin_comment_mod/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Pin</button>
|
<a id="pin2-{{c.id}}" class="list-group-item {% if c.stickied %}d-none{% endif %} text-info" href="#m-actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin_comment_mod/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Pin</a>
|
||||||
<button type="button" id="unpin2-{{c.id}}" class="list-group-item {% if not c.stickied %}d-none{% endif %} text-info" data-bs-target="#actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unpin_comment_mod/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Unpin</button>
|
<a id="unpin2-{{c.id}}" class="list-group-item {% if not c.stickied %}d-none{% endif %} text-info" href="#m-actionsModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unpin_comment_mod/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Unpin</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if c.parent_post %}
|
{% if c.parent_post %}
|
||||||
{% set sub = c.post.sub %}
|
{% set sub = c.post.sub %}
|
||||||
{% if sub and v.mods(sub) and not c.author.mods(sub) %}
|
{% if sub and v.mods(sub) and not c.author.mods(sub) %}
|
||||||
<button type="button" data-bs-dismiss="modal" id="exile2-{{c.id}}" class="{% if c.author.exiler_username(sub) %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/exile/comment/{{c.id}}','exile2-{{c.id}}','unexile2-{{c.id}}','d-none')"><i class="fas fa-campfire text-danger mr-2"></i>Exile user</button>
|
<button type="button" dismiss_modal id="exile2-{{c.id}}" class="{% if c.author.exiler_username(sub) %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/exile/comment/{{c.id}}','exile2-{{c.id}}','unexile2-{{c.id}}','d-none')"><i class="fas fa-campfire text-danger mr-2"></i>Exile user</button>
|
||||||
<button type="button" data-bs-dismiss="modal" id="unexile2-{{c.id}}" class="{% if not c.author.exiler_username(sub) %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{sub}}/unexile/{{c.author_id}}','exile2-{{c.id}}','unexile2-{{c.id}}','d-none')"><i class="fas fa-campfire text-success mr-2"></i>Unexile user</button>
|
<button type="button" dismiss_modal id="unexile2-{{c.id}}" class="{% if not c.author.exiler_username(sub) %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{sub}}/unexile/{{c.author_id}}','exile2-{{c.id}}','unexile2-{{c.id}}','d-none')"><i class="fas fa-campfire text-success mr-2"></i>Unexile user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -660,12 +660,12 @@
|
||||||
|
|
||||||
|
|
||||||
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
||||||
<div class="modal fade d-md-none" id="adminModal-{{c.id}}" tabindex="-1">
|
<div class="modal d-md-none" id="adminModal-{{c.id}}" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h6 class="modal-title">Admin options</h6>
|
<h6 class="modal-title">Admin options</h6>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -677,43 +677,43 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level >= PERMS['POST_COMMENT_EDITING'] %}
|
{% if v.admin_level >= PERMS['POST_COMMENT_EDITING'] %}
|
||||||
<button type="button" class="list-group-item text-muted" data-nonce="{{g.nonce}}" data-onclick="toggleEdit('{{c.id}}')" data-bs-dismiss="modal">
|
<button type="button" class="list-group-item text-muted" data-nonce="{{g.nonce}}" data-onclick="toggleEdit('{{c.id}}')" dismiss_modal>
|
||||||
<i class="fas fa-edit text-muted mr-2"></i>Edit
|
<i class="fas fa-edit text-muted mr-2"></i>Edit
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level >= PERMS['POST_COMMENT_DISTINGUISH'] %}
|
{% if v.admin_level >= PERMS['POST_COMMENT_DISTINGUISH'] %}
|
||||||
<button type="button" id="distinguish2-{{c.id}}" class="list-group-item {% if c.distinguish_level %}d-none{% endif %} text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish_comment/{{c.id}}','distinguish2-{{c.id}}','undistinguish2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-id-badge text-info mr-2"></i>Distinguish</button>
|
<button type="button" id="distinguish2-{{c.id}}" class="list-group-item {% if c.distinguish_level %}d-none{% endif %} text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish_comment/{{c.id}}','distinguish2-{{c.id}}','undistinguish2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-id-badge text-info mr-2"></i>Distinguish</button>
|
||||||
<button type="button" id="undistinguish2-{{c.id}}" class="list-group-item {% if not c.distinguish_level %}d-none{% endif %} text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish_comment/{{c.id}}','distinguish2-{{c.id}}','undistinguish2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-id-badge text-info mr-2"></i>Undistinguish</button>
|
<button type="button" id="undistinguish2-{{c.id}}" class="list-group-item {% if not c.distinguish_level %}d-none{% endif %} text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish_comment/{{c.id}}','distinguish2-{{c.id}}','undistinguish2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-id-badge text-info mr-2"></i>Undistinguish</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="button" id="pin2-{{c.id}}" class="list-group-item {% if c.stickied %}d-none{% endif %} text-info" data-bs-target="#adminModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/sticky_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Pin</button>
|
<a id="pin2-{{c.id}}" class="list-group-item {% if c.stickied %}d-none{% endif %} text-info" href="#m-adminModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/sticky_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Pin</a>
|
||||||
<button type="button" id="unpin2-{{c.id}}" class="list-group-item {% if not c.stickied %}d-none{% endif %} text-info" data-bs-target="#adminModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsticky_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Unpin</button>
|
<a id="unpin2-{{c.id}}" class="list-group-item {% if not c.stickied %}d-none{% endif %} text-info" href="#m-adminModal-{{c.id}}" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsticky_comment/{{c.id}}','pin2-{{c.id}}','unpin2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-info mr-2"></i>Unpin</a>
|
||||||
|
|
||||||
{% if FEATURES['NSFW_MARKING'] %}
|
{% if FEATURES['NSFW_MARKING'] %}
|
||||||
<button type="button" id="mark2-{{c.id}}" class="{% if c.over_18 %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-danger mr-2"></i>Mark 18+</button>
|
<button type="button" id="mark2-{{c.id}}" class="{% if c.over_18 %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-danger mr-2"></i>Mark 18+</button>
|
||||||
<button type="button" id="unmark2-{{c.id}}" class="{% if not c.over_18 %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-success mr-2"></i>Unmark 18+</button>
|
<button type="button" id="unmark2-{{c.id}}" class="{% if not c.over_18 %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/toggle_comment_nsfw/{{c.id}}','mark2-{{c.id}}','unmark2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-success mr-2"></i>Unmark 18+</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level >= PERMS['PROGSTACK'] %}
|
{% if v.admin_level >= PERMS['PROGSTACK'] %}
|
||||||
<button type="button" id="progstack2-{{c.id}}" class="{% if c.is_approved == PROGSTACK_ID %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/progstack/comment/{{c.id}}','progstack2-{{c.id}}','unprogstack2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-bullhorn text-danger fa-fw mr-2"></i>Apply Progressive Stack</button>
|
<button type="button" id="progstack2-{{c.id}}" class="{% if c.is_approved == PROGSTACK_ID %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/progstack/comment/{{c.id}}','progstack2-{{c.id}}','unprogstack2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-bullhorn text-danger fa-fw mr-2"></i>Apply Progressive Stack</button>
|
||||||
<button type="button" id="unprogstack2-{{c.id}}" class="{% if c.is_approved != PROGSTACK_ID %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/unprogstack/comment/{{c.id}}','progstack2-{{c.id}}','unprogstack2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-bullhorn text-danger fa-fw mr-2"></i>Remove Progressive Stack</button>
|
<button type="button" id="unprogstack2-{{c.id}}" class="{% if c.is_approved != PROGSTACK_ID %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/unprogstack/comment/{{c.id}}','progstack2-{{c.id}}','unprogstack2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-bullhorn text-danger fa-fw mr-2"></i>Remove Progressive Stack</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.id != c.author_id and v.admin_level >= PERMS['USER_BAN'] %}
|
{% if v.id != c.author_id and v.admin_level >= PERMS['USER_BAN'] %}
|
||||||
<button type="button" class="list-group-item text-danger {% if c.author.is_permabanned %}d-none{% endif %}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-user-slash text-danger fa-fw mr-2"></i>Ban user</button>
|
<a class="list-group-item text-danger {% if c.author.is_permabanned %}d-none{% endif %}" href="#m-ban" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-user-slash text-danger fa-fw mr-2"></i>Ban user</a>
|
||||||
<button type="button" id="unban2-{{c.fullname}}" class="{% if not c.author.is_suspended %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{c.fullname}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus fa-fw text-success mr-2"></i>Unban user</button>
|
<button type="button" id="unban2-{{c.fullname}}" class="{% if not c.author.is_suspended %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{c.fullname}}')" dismiss_modal><i class="fas fa-user-minus fa-fw text-success mr-2"></i>Unban user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.id != c.author_id and v.admin_level >= PERMS['USER_CHUD'] %}
|
{% if v.id != c.author_id and v.admin_level >= PERMS['USER_CHUD'] %}
|
||||||
<button type="button" class="list-group-item text-danger {% if c.author.chud == 1 %}d-none{% endif %}" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#chudModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-face-sleeping text-danger fa-fw mr-2"></i>Chud user</button>
|
<a class="list-group-item text-danger {% if c.author.chud == 1 %}d-none{% endif %}" href="#m-chud" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/comment/{{c.id}}', '{{c.author_name}}', '{{c.fullname}}')"><i class="fas fa-face-sleeping text-danger fa-fw mr-2"></i>Chud user</a>
|
||||||
<button type="button" id="unchud2-{{c.fullname}}" class="{% if not c.author.chud %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{c.fullname}}')" data-bs-dismiss="modal"><i class="fas fa-face-sleeping fa-fw text-success mr-2"></i>Unchud user</button>
|
<button type="button" id="unchud2-{{c.fullname}}" class="{% if not c.author.chud %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{c.fullname}}')" dismiss_modal><i class="fas fa-face-sleeping fa-fw text-success mr-2"></i>Unchud user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
{% if v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
||||||
<button type="button" id="remove2-{{c.id}}" class="{% if c.is_banned %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="removeComment(this,'{{c.id}}','approve2-{{c.id}}','remove2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-ban text-danger mr-2"></i>Remove</button>
|
<button type="button" id="remove2-{{c.id}}" class="{% if c.is_banned %}d-none{% endif %} list-group-item text-danger" data-nonce="{{g.nonce}}" data-onclick="removeComment(this,'{{c.id}}','approve2-{{c.id}}','remove2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-ban text-danger mr-2"></i>Remove</button>
|
||||||
<button type="button" id="approve2-{{c.id}}" class="{% if not c.is_banned and request.path != '/admin/reported/comments' %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="approveComment(this,'{{c.id}}','approve2-{{c.id}}','remove2-{{c.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-check text-success mr-2"></i>Approve</button>
|
<button type="button" id="approve2-{{c.id}}" class="{% if not c.is_banned and request.path != '/admin/reported/comments' %}d-none{% endif %} list-group-item text-success" data-nonce="{{g.nonce}}" data-onclick="approveComment(this,'{{c.id}}','approve2-{{c.id}}','remove2-{{c.id}}','d-none')" dismiss_modal><i class="fas fa-check text-success mr-2"></i>Approve</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
@ -740,12 +740,12 @@
|
||||||
{% include "modals/punish.html" %}
|
{% include "modals/punish.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="modal fade" id="deleteCommentModal" tabindex="-1">
|
<div class="modal" id="m-deleteComment" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header d-none d-md-flex">
|
<div class="modal-header d-none d-md-flex">
|
||||||
<h5 class="modal-title">Delete comment?</h5>
|
<h5 class="modal-title">Delete comment?</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -761,20 +761,20 @@
|
||||||
|
|
||||||
<p class="text-muted d-md-none">Your comment will be deleted everywhere on {{SITE_NAME}}.</p>
|
<p class="text-muted d-md-none">Your comment will be deleted everywhere on {{SITE_NAME}}.</p>
|
||||||
|
|
||||||
<button type="button" id="deleteCommentButton" class="btn btn-danger btn-block mt-5" data-bs-dismiss="modal">Delete comment</button>
|
<button type="button" id="deleteCommentButton" class="btn btn-danger btn-block mt-5" dismiss_modal>Delete comment</button>
|
||||||
|
|
||||||
<button type="button" class="btn btn-secondary btn-block" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-secondary btn-block" dismiss_modal>Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal fade" id="reportCommentModal" tabindex="-1">
|
<div class="modal" id="m-reportComment" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title">Report <span id="comment-author"></span>'s comment</h5>
|
<h5 class="modal-title">Report <span id="comment-author"></span>'s comment</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -784,8 +784,8 @@
|
||||||
<input autocomplete="off" maxlength="100" id="reason_comment" class="allow-emojis form-control">
|
<input autocomplete="off" maxlength="100" id="reason_comment" class="allow-emojis form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-link text-muted" dismiss_modal>Cancel</button>
|
||||||
<button type="button" id="reportCommentButton" class="btn btn-primary btn-danger" data-bs-dismiss="modal">Report comment</button>
|
<button type="button" id="reportCommentButton" class="btn btn-primary btn-danger" dismiss_modal>Report comment</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.watchpeopledie.tv">
|
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.watchpeopledie.tv">
|
||||||
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
||||||
|
|
||||||
<div class="modal" id="expandImageModal" tabindex="-1">
|
<div class="modal" id="m-expandImage" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-body text-center p-0">
|
<div class="modal-body text-center p-0">
|
||||||
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
<input hidden="" type="submit">
|
<input hidden="" type="submit">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<a href="/donate" type="button" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
<a href="/donate" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.watchpeopledie.tv">
|
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.watchpeopledie.tv">
|
||||||
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
||||||
|
|
||||||
<div class="modal" id="expandImageModal" tabindex="-1">
|
<div class="modal" id="m-expandImage" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-body text-center p-0">
|
<div class="modal-body text-center p-0">
|
||||||
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
<input hidden="" type="submit">
|
<input hidden="" type="submit">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<a href="/donate" type="button" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
<a href="/donate" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.rdrama.net">
|
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.rdrama.net">
|
||||||
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
||||||
|
|
||||||
<div class="modal" id="expandImageModal" tabindex="-1">
|
<div class="modal" id="m-expandImage" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-body text-center p-0">
|
<div class="modal-body text-center p-0">
|
||||||
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
<input hidden="" type="submit">
|
<input hidden="" type="submit">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<a href="/donate" type="button" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
<a href="/donate" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.rdrama.net">
|
<input hidden="" id="SITE_FULL_IMAGES" value="https://i.rdrama.net">
|
||||||
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
<script src="/assets/js/top.js?x=93d0aa41"></script>
|
||||||
|
|
||||||
<div class="modal" id="expandImageModal" tabindex="-1">
|
<div class="modal" id="m-expandImage" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-body text-center p-0">
|
<div class="modal-body text-center p-0">
|
||||||
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
<input hidden="" type="submit">
|
<input hidden="" type="submit">
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<a href="/donate" type="button" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
<a href="/donate" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="" data-bs-original-title="Donate">Donate</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
@ -154,16 +154,16 @@
|
||||||
|
|
||||||
{% if not (v and v.patron) and not (v and v.admin_level) %}
|
{% if not (v and v.patron) and not (v and v.admin_level) %}
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<a href="/donate" type="button" class="mobile-nav-icon d-md-none donate-link" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Donate">
|
<a href="/donate" class="mobile-nav-icon d-md-none donate-link" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Donate">
|
||||||
<i class="fas fa-dollar-sign align-middle text-gray-500 black"></i>
|
<i class="fas fa-dollar-sign align-middle text-gray-500 black"></i>
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a href="/donate" type="button" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Donate">Donate</a>
|
<a href="/donate" class="btn btn-primary mobile-nav-icon d-md-none donate-link mr-3" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Donate">Donate</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if g.browser == 'webview' %}
|
{% if g.browser == 'webview' %}
|
||||||
<a href="" type="button" class="mobile-nav-icon d-md-none" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Refresh">
|
<a href="" class="mobile-nav-icon d-md-none" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Refresh">
|
||||||
<i class="fas fa-arrow-rotate-right align-middle text-gray-500 black"></i>
|
<i class="fas fa-arrow-rotate-right align-middle text-gray-500 black"></i>
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -210,7 +210,7 @@
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" data-bs-target="#navbarResponsive">
|
<button type="button" class="navbar-toggler" data-bs-toggle="collapse" href="#m-navbarResponsive">
|
||||||
<span class="navbar-toggler-icon {% if v and v.notifications_count %}position-relative{% endif %}"><i class="fas fa-bars align-middle text-gray-500 black"></i>
|
<span class="navbar-toggler-icon {% if v and v.notifications_count %}position-relative{% endif %}"><i class="fas fa-bars align-middle text-gray-500 black"></i>
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<script defer src="{{'js/award_modal.js' | asset}}"></script>
|
<script defer src="{{'js/award_modal.js' | asset}}"></script>
|
||||||
|
|
||||||
<div class="modal fade" id="awardModal" tabindex="-1">
|
<div class="modal" id="m-award" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered awardmodal pt-5">
|
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered awardmodal pt-5">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title">Give Award</h5>
|
<h5 class="modal-title">Give Award</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -58,7 +58,7 @@
|
||||||
<textarea autocomplete="off" id="note" maxlength="200" class="form-control" placeholder="Note to include in award notification..."></textarea>
|
<textarea autocomplete="off" id="note" maxlength="200" class="form-control" placeholder="Note to include in award notification..."></textarea>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<input autocomplete="off" id="giveaward" class="awardbtn btn btn-primary mt-3 fl-r" type="submit" data-nonce="{{g.nonce}}" data-onclick="giveaward(this)" value="Give Award" data-bs-dismiss="modal" disabled>
|
<input autocomplete="off" id="giveaward" class="awardbtn btn btn-primary mt-3 fl-r" type="submit" data-nonce="{{g.nonce}}" data-onclick="giveaward(this)" value="Give Award" dismiss_modal disabled>
|
||||||
|
|
||||||
<button type="button" id="buy" class="awardbtn btn btn-primary mt-3 mr-3 fl-r" disabled data-areyousure="buy()" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)">Buy</button>
|
<button type="button" id="buy" class="awardbtn btn btn-primary mt-3 mr-3 fl-r" disabled data-areyousure="buy()" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)">Buy</button>
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="modal fade" id="deletePostModal" tabindex="-1">
|
<div class="modal" id="m-deletePost" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header d-none d-md-flex">
|
<div class="modal-header d-none d-md-flex">
|
||||||
<h5 class="modal-title">Delete post?</h5>
|
<h5 class="modal-title">Delete post?</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -19,9 +19,9 @@
|
||||||
|
|
||||||
<p class="text-muted d-md-none">Your post will be deleted everywhere on {{SITE_NAME}}.</p>
|
<p class="text-muted d-md-none">Your post will be deleted everywhere on {{SITE_NAME}}.</p>
|
||||||
|
|
||||||
<button type="button" id="deletePostButton" class="btn btn-danger btn-block mt-5" data-bs-dismiss="modal">Delete post</button>
|
<button type="button" id="deletePostButton" class="btn btn-danger btn-block mt-5" dismiss_modal>Delete post</button>
|
||||||
|
|
||||||
<button type="button" class="btn btn-secondary btn-block" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-secondary btn-block" dismiss_modal>Cancel</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
<div id="form" class="d-none"></div>
|
<div id="form" class="d-none"></div>
|
||||||
<div class="modal fade" id="emojiModal" tabindex="-1">
|
<div class="modal" id="m-emoji" tabindex="-1">
|
||||||
<div id="emojiModalInternalDivIDK" class="modal-dialog modal-dialog-scrollable modal-dialog-centered emoji-modal">
|
<div id="emojiModalInternalDivIDK" class="modal-dialog modal-dialog-scrollable modal-dialog-centered emoji-modal">
|
||||||
<div class="modal-content" id="emojiTabs">
|
<div class="modal-content" id="emojiTabs">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<div id="emoji-modal-tabs-container">
|
<div id="emoji-modal-tabs-container">
|
||||||
<ul class="nav nav-pills py-2" id="emoji-modal-tabs">
|
<ul class="nav nav-pills py-2" id="emoji-modal-tabs">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active emojitab" data-class-name="favorite" data-bs-toggle="tab" href="#">⭐ Favorite ⭐</a>
|
<button type="button" class="nav-link active emojitab" data-class-name="favorite" data-bs-toggle="tab">⭐ Favorite ⭐</button>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<i class="fas fa-times text-muted"></i>
|
<i class="fas fa-times text-muted"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<div class="modal" id="expandImageModal" tabindex="-1">
|
<div class="modal" id="m-expandImage" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-body text-center p-0">
|
<div class="modal-body text-center p-0">
|
||||||
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
<a rel="nofollow noopener" target="_blank" id="desktop-expanded-image-wrap-link">
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
<div class="modal fade" id="gifModal" tabindex="-1">
|
<div class="modal" id="m-gif" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered p-5 pb-sm-0" style="max-width:100% !important">
|
<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered p-5 pb-sm-0" style="max-width:100% !important">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header border-bottom-0 shadow-md p-3">
|
<div class="modal-header border-bottom-0 shadow-md p-3">
|
||||||
<div class="form-group d-flex align-items-center w-100 mb-0">
|
<div class="form-group d-flex align-items-center w-100 mb-0">
|
||||||
<div id="gifs-back-btn"><button class="btn btn-link mx-2" id="gifs-back-btn"><i class="fas fa-long-arrow-left text-muted"></i></button></div>
|
<div id="gifs-back-btn"><button class="btn btn-link mx-2" id="gifs-back-btn"><i class="fas fa-long-arrow-left text-muted"></i></button></div>
|
||||||
<input autocomplete="off" type="text" class="form-control" id="gifSearch" placeholder="Search and press enter">
|
<input autocomplete="off" type="text" class="form-control" id="gifSearch" placeholder="Search and press enter">
|
||||||
<button class="btn btn-link mx-2" data-bs-dismiss="modal"><i class="fas fa-times text-muted"></i></button>
|
<button class="btn btn-link mx-2" dismiss_modal><i class="fas fa-times text-muted"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="overflow-y: auto">
|
<div style="overflow-y: auto">
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="modal fade" id="banModal" tabindex="-1">
|
<div class="modal" id="m-ban" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header pt-3">
|
<div class="modal-header pt-3">
|
||||||
<h5 id="banModalTitle"></h5>
|
<h5 id="banModalTitle"></h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,20 +22,20 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal-footer pr-0">
|
<div class="modal-footer pr-0">
|
||||||
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-link text-muted" dismiss_modal>Cancel</button>
|
||||||
<button type="button" id="banUserButton" class="btn btn-danger btn-primary mr-0" data-bs-dismiss="modal"></button>
|
<button type="button" id="banUserButton" class="btn btn-danger btn-primary mr-0" dismiss_modal></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal fade" id="chudModal" tabindex="-1">
|
<div class="modal" id="m-chud" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header pt-3">
|
<div class="modal-header pt-3">
|
||||||
<h5 id="chudModalTitle"></h5>
|
<h5 id="chudModalTitle"></h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -46,8 +46,8 @@
|
||||||
<input autocomplete="off" type="number" step="any" name="days" max="{{max_days()}}" id="chud_days" class="form-control" placeholder="Leave blank for permanent">
|
<input autocomplete="off" type="number" step="any" name="days" max="{{max_days()}}" id="chud_days" class="form-control" placeholder="Leave blank for permanent">
|
||||||
|
|
||||||
<div class="modal-footer pr-0">
|
<div class="modal-footer pr-0">
|
||||||
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-link text-muted" dismiss_modal>Cancel</button>
|
||||||
<button type="button" id="chudUserButton" class="btn btn-danger btn-primary mr-0" data-bs-dismiss="modal"></button>
|
<button type="button" id="chudUserButton" class="btn btn-danger btn-primary mr-0" dismiss_modal></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="modal fade" id="reportPostModal" tabindex="-1">
|
<div class="modal" id="m-reportPost" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title">Report post</h5>
|
<h5 class="modal-title">Report post</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -13,8 +13,8 @@
|
||||||
<input autocomplete="off" maxlength="100" id="reason_post" class="allow-emojis form-control b2 mt-1">
|
<input autocomplete="off" maxlength="100" id="reason_post" class="allow-emojis form-control b2 mt-1">
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-link text-muted" dismiss_modal>Cancel</button>
|
||||||
<button type="button" id="reportPostButton" class="btn btn-primary btn-danger" data-bs-dismiss="modal">Report post</button>
|
<button type="button" id="reportPostButton" class="btn btn-primary btn-danger" dismiss_modal>Report post</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -41,21 +41,21 @@
|
||||||
{% block actionsModal %}
|
{% block actionsModal %}
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<div class="modal fade d-md-none" id="actionsModal" tabindex="-1">
|
<div class="modal d-md-none" id="m-actions" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header p-3">
|
<div class="modal-header p-3">
|
||||||
<h6 class="col modal-title text-center">More options</h6>
|
<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">
|
<button type="button" class="close position-absolute py-3" style="right: 1rem" dismiss_modal>
|
||||||
<span><i class="fas fa-times-circle text-gray-500"></i></span>
|
<span><i class="fas fa-times-circle text-gray-500"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<ul class="list-group post-actions">
|
<ul class="list-group post-actions">
|
||||||
{% if v.id==p.author_id %}
|
{% if v.id==p.author_id %}
|
||||||
<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>
|
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" 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'] %}
|
{% 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>
|
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" 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>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% include "post_actions_mobile.html" %}
|
{% include "post_actions_mobile.html" %}
|
||||||
|
@ -253,7 +253,7 @@
|
||||||
<span class="text-info d-none {{p.id}}-new-comments"></span>
|
<span class="text-info d-none {{p.id}}-new-comments"></span>
|
||||||
</a>
|
</a>
|
||||||
{% if v and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
{% 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}}">
|
<button type="button" class="ml-2" href="#m-adminModal-{{p.id}}">
|
||||||
<i class="fas fa-broom"></i>
|
<i class="fas fa-broom"></i>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -261,7 +261,7 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<button type="button" data-bs-toggle="modal" data-bs-target="#actionsModal">
|
<button type="button" href="#m-actions">
|
||||||
<i class="fas fa-ellipsis-h"></i>
|
<i class="fas fa-ellipsis-h"></i>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v and FEATURES['AWARDS'] %}
|
{% if v and FEATURES['AWARDS'] %}
|
||||||
<button type="button" class="list-inline-item d-none d-md-inline-block" data-bs-toggle="modal" data-bs-target="#awardModal" data-url='/award/post/{{p.id}}' data-ghost="{{p.ghost}}" data-nonce="{{g.nonce}}" {% if p.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift fa-fw"></i>Give Award</button>
|
<a class="list-inline-item d-none d-md-inline-block" href="#m-award" data-url='/award/post/{{p.id}}' data-ghost="{{p.ghost}}" data-nonce="{{g.nonce}}" {% if p.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift fa-fw"></i>Give Award</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="button" class="list-inline-item copy-link" data-clipboard-text="{% if SITE == 'rdrama.net' %}{{SITE_FULL}}{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="fas fa-copy"></i>Copy link</button>
|
<button type="button" class="list-inline-item copy-link" data-clipboard-text="{% if SITE == 'rdrama.net' %}{{SITE_FULL}}{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="fas fa-copy"></i>Copy link</button>
|
||||||
|
@ -20,7 +20,7 @@
|
||||||
<button type="button" id="save-{{p.id}}" class="{% if p.id in v.saved_idlist %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}','d-none')"><i class="fas fa-save"></i>Save {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="save-{{p.id}}" class="{% if p.id in v.saved_idlist %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}','d-none')"><i class="fas fa-save"></i>Save {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
||||||
<button type="button" id="unsave-{{p.id}}" class="{% if not p.id in v.saved_idlist %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsave_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}','d-none')"><i class="fas fa-save"></i>Unsave {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="unsave-{{p.id}}" class="{% if not p.id in v.saved_idlist %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsave_post/{{p.id}}','save-{{p.id}}','unsave-{{p.id}}','d-none')"><i class="fas fa-save"></i>Unsave {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
||||||
|
|
||||||
<button type="button" class="list-inline-item" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" data-nonce="{{g.nonce}}" data-onclick="report_postModal('{{p.id}}')"><i class="fas fa-flag"></i>Report</button>
|
<a class="list-inline-item" href="#m-reportPost" data-nonce="{{g.nonce}}" data-onclick="report_postModal('{{p.id}}')"><i class="fas fa-flag"></i>Report</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v and v.id==p.author_id %}
|
{% if v and v.id==p.author_id %}
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
<button type="button" id="unpin-profile-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin/{{p.id}}','unpin-profile-{{p.id}}','pin-profile-{{p.id}}','d-none')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin from profile</button>
|
<button type="button" id="unpin-profile-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin/{{p.id}}','unpin-profile-{{p.id}}','pin-profile-{{p.id}}','d-none')"><i class="fas fa-thumbtack fa-rotate--45"></i>Unpin from profile</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="button" id="delete2-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} list-inline-item" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" data-nonce="{{g.nonce}}" data-onclick="delete_postModal('{{p.id}}')"><i class="fas fa-trash-alt"></i>Delete</button>
|
<a id="delete2-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} list-inline-item" href="#m-deletePost" data-nonce="{{g.nonce}}" data-onclick="delete_postModal('{{p.id}}')"><i class="fas fa-trash-alt"></i>Delete</a>
|
||||||
<button type="button" id="undelete2-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete_post/{{p.id}}', 'delete2-{{p.id}}', 'undelete2-{{p.id}}','d-none')" data-toggleelement="#post-{{p.id}}" data-toggleattr="deleted"><i class="fas fa-trash-alt"></i>Undelete</button>
|
<button type="button" id="undelete2-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} list-inline-item" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete_post/{{p.id}}', 'delete2-{{p.id}}', 'undelete2-{{p.id}}','d-none')" data-toggleelement="#post-{{p.id}}" data-toggleattr="deleted"><i class="fas fa-trash-alt"></i>Undelete</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -83,12 +83,12 @@
|
||||||
<button type="button" id="unprogstack-{{p.id}}" class="dropdown-item {% if p.is_approved != PROGSTACK_ID %}d-none{% endif %} list-inline-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/unprogstack/post/{{p.id}}','progstack-{{p.id}}','unprogstack-{{p.id}}','d-none')"><i class="fas fa-bullhorn"></i>Remove Progressive Stack</button>
|
<button type="button" id="unprogstack-{{p.id}}" class="dropdown-item {% if p.is_approved != PROGSTACK_ID %}d-none{% endif %} list-inline-item text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/unprogstack/post/{{p.id}}','progstack-{{p.id}}','unprogstack-{{p.id}}','d-none')"><i class="fas fa-bullhorn"></i>Remove Progressive Stack</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.admin_level >= PERMS['USER_BAN'] and v.id != p.author_id %}
|
{% if v.admin_level >= PERMS['USER_BAN'] and v.id != p.author_id %}
|
||||||
<button type="button" class="dropdown-item list-inline-item text-danger {% if p.author.is_permabanned %}d-none{% endif %}" data-bs-toggle="modal" data-bs-target="#banModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</button>
|
<a class="dropdown-item list-inline-item text-danger {% if p.author.is_permabanned %}d-none{% endif %}" href="#m-ban" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')"><i class="fas fa-user-slash text-danger fa-fw"></i>Ban user</a>
|
||||||
|
|
||||||
<button type="button" id="unban-{{p.fullname}}" class="dropdown-item list-inline-item text-success {% if not p.author.is_suspended %}d-none{% endif %}" id="unexile2-user-{{p.id}}" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{p.fullname}}')"><i class="fas fa-user-slash"></i>Unban user</button>
|
<button type="button" id="unban-{{p.fullname}}" class="dropdown-item list-inline-item text-success {% if not p.author.is_suspended %}d-none{% endif %}" id="unexile2-user-{{p.id}}" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{p.fullname}}')"><i class="fas fa-user-slash"></i>Unban user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.admin_level >= PERMS['USER_CHUD'] and v.id != p.author_id %}
|
{% if v.admin_level >= PERMS['USER_CHUD'] and v.id != p.author_id %}
|
||||||
<button type="button" class="dropdown-item list-inline-item text-danger {% if p.author.chud == 1 %}d-none{% endif %}" data-bs-toggle="modal" data-bs-target="#chudModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')"><i class="fas fa-face-sleeping text-danger fa-fw"></i>Chud user</button>
|
<a class="dropdown-item list-inline-item text-danger {% if p.author.chud == 1 %}d-none{% endif %}" href="#m-chud" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')"><i class="fas fa-face-sleeping text-danger fa-fw"></i>Chud user</a>
|
||||||
|
|
||||||
<button type="button" id="unchud-{{p.fullname}}" class="dropdown-item {% if not p.author.chud %}d-none{% endif %} list-inline-item text-success" id="unexile2-user-{{p.id}}" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{p.fullname}}')"><i class="fas fa-face-sleeping"></i>Unchud user</button>
|
<button type="button" id="unchud-{{p.fullname}}" class="dropdown-item {% if not p.author.chud %}d-none{% endif %} list-inline-item text-success" id="unexile2-user-{{p.id}}" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{p.fullname}}')"><i class="fas fa-face-sleeping"></i>Unchud user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -11,55 +11,55 @@
|
||||||
</a>
|
</a>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<button type="button" data-bs-dismiss="modal" class="copy-link nobackground btn btn-link btn-block btn-lg text-left text-muted" data-clipboard-text="{% if SITE == 'rdrama.net' %}{{SITE_FULL}}{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="fas fa-copy text-center text-muted mr-2"></i>Copy link</button>
|
<button type="button" dismiss_modal class="copy-link nobackground btn btn-link btn-block btn-lg text-left text-muted" data-clipboard-text="{% if SITE == 'rdrama.net' %}{{SITE_FULL}}{{p.shortlink}}{% else %}{{p.permalink}}{% endif %}"><i class="fas fa-copy text-center text-muted mr-2"></i>Copy link</button>
|
||||||
|
|
||||||
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#reportPostModal" data-nonce="{{g.nonce}}" data-onclick="report_postModal('{{p.id}}')"><i class="fas fa-flag text-center text-muted mr-2"></i>Report</button>
|
<a class="nobackground btn btn-link btn-block btn-lg text-left text-muted" href="#m-reportPost" data-nonce="{{g.nonce}}" data-onclick="report_postModal('{{p.id}}')"><i class="fas fa-flag text-center text-muted mr-2"></i>Report</a>
|
||||||
|
|
||||||
{% if FEATURES['AWARDS'] -%}
|
{% if FEATURES['AWARDS'] -%}
|
||||||
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#awardModal" data-url='/award/post/{{p.id}}' data-ghost="{{p.ghost}}" data-nonce="{{g.nonce}}" {% if p.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift text-center text-muted mr-2"></i>Give Award</button>
|
<a class="nobackground btn btn-link btn-block btn-lg text-left text-muted" href="#m-award" data-url='/award/post/{{p.id}}' data-ghost="{{p.ghost}}" data-nonce="{{g.nonce}}" {% if p.author.immune_to_awards(v) %}disabled{% endif %}><i class="fas fa-gift text-center text-muted mr-2"></i>Give Award</a>
|
||||||
{%- endif %}
|
{%- endif %}
|
||||||
|
|
||||||
<button type="button" id="subscribe2-{{p.id}}" class="{% if p.id in v.subscribed_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-areyousure="postToastSwitch(this,'/subscribe/{{p.id}}','subscribe2-{{p.id}}','unsubscribe2-{{p.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-bell text-center text-muted mr-2"></i>Subscribe {% if p.num_subscribers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of subscribers">[{{p.num_subscribers}}]</span>{% endif %}</button>
|
<button type="button" id="subscribe2-{{p.id}}" class="{% if p.id in v.subscribed_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-areyousure="postToastSwitch(this,'/subscribe/{{p.id}}','subscribe2-{{p.id}}','unsubscribe2-{{p.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-bell text-center text-muted mr-2"></i>Subscribe {% if p.num_subscribers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of subscribers">[{{p.num_subscribers}}]</span>{% endif %}</button>
|
||||||
|
|
||||||
<button type="button" id="unsubscribe2-{{p.id}}" class="{% if not p.id in v.subscribed_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsubscribe/{{p.id}}','subscribe2-{{p.id}}','unsubscribe2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-bell-slash text-center text-muted mr-2"></i>Unsubscribe {% if p.num_subscribers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of subscribers">[{{p.num_subscribers}}]</span>{% endif %}</button>
|
<button type="button" id="unsubscribe2-{{p.id}}" class="{% if not p.id in v.subscribed_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsubscribe/{{p.id}}','subscribe2-{{p.id}}','unsubscribe2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-bell-slash text-center text-muted mr-2"></i>Unsubscribe {% if p.num_subscribers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of subscribers">[{{p.num_subscribers}}]</span>{% endif %}</button>
|
||||||
|
|
||||||
<button type="button" id="save2-{{p.id}}" class="{% if p.id in v.saved_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_post/{{p.id}}','save2-{{p.id}}','unsave2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-save text-center text-muted mr-2"></i>Save {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="save2-{{p.id}}" class="{% if p.id in v.saved_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/save_post/{{p.id}}','save2-{{p.id}}','unsave2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-save text-center text-muted mr-2"></i>Save {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
||||||
<button type="button" id="unsave2-{{p.id}}" class="{% if not p.id in v.saved_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsave_post/{{p.id}}','save2-{{p.id}}','unsave2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-save text-center text-muted mr-2"></i>Unsave {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
<button type="button" id="unsave2-{{p.id}}" class="{% if not p.id in v.saved_idlist %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-muted" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unsave_post/{{p.id}}','save2-{{p.id}}','unsave2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-save text-center text-muted mr-2"></i>Unsave {% if p.num_savers %}<span data-bs-toggle="tooltip" data-bs-placement="bottom" title="Number of users who saved this post">[{{p.num_savers}}]</span>{% endif %}</button>
|
||||||
|
|
||||||
{% if v.id==p.author_id and request.path.startswith('/@') %}
|
{% if v.id==p.author_id and request.path.startswith('/@') %}
|
||||||
<button type="button" id="pin-profile2-{{p.id}}" class="{% if p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center mr-2"></i>Pin to profile</button>
|
<button type="button" id="pin-profile2-{{p.id}}" class="{% if p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-center mr-2"></i>Pin to profile</button>
|
||||||
<button type="button" id="unpin-profile2-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center mr-2"></i>Unpin from profile</button>
|
<button type="button" id="unpin-profile2-{{p.id}}" class="{% if not p.is_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-muted text-left" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/pin/{{p.id}}','pin-profile2-{{p.id}}','unpin-profile2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-center mr-2"></i>Unpin from profile</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if p.sub and v.mods(p.sub) %}
|
{% if p.sub and v.mods(p.sub) %}
|
||||||
<button type="button" id="hole-pin2-{{p.id}}" class="{% if p.hole_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/hole_pin/{{p.id}}','hole-pin2-{{p.id}}','hole-unpin2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-info mr-2"></i>Pin to /h/{{p.sub}}</button>
|
<button type="button" id="hole-pin2-{{p.id}}" class="{% if p.hole_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/hole_pin/{{p.id}}','hole-pin2-{{p.id}}','hole-unpin2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-center text-info mr-2"></i>Pin to /h/{{p.sub}}</button>
|
||||||
<button type="button" id="hole-unpin2-{{p.id}}" class="{% if not p.hole_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/hole_unpin/{{p.id}}','hole-pin2-{{p.id}}','hole-unpin2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-info mr-2"></i>Unpin from /h/{{p.sub}}</button>
|
<button type="button" id="hole-unpin2-{{p.id}}" class="{% if not p.hole_pinned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-info" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/hole_unpin/{{p.id}}','hole-pin2-{{p.id}}','hole-unpin2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-center text-info mr-2"></i>Unpin from /h/{{p.sub}}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.id==p.author_id %}
|
{% if v.id==p.author_id %}
|
||||||
<button type="button" id="delete-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-bs-toggle="modal" data-bs-dismiss="modal" data-bs-target="#deletePostModal" data-nonce="{{g.nonce}}" data-onclick="delete_postModal('{{p.id}}')"><i class="fas fa-trash-alt mr-2"></i>Delete</button>
|
<a id="delete-{{p.id}}" class="{% if p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" href="#m-deletePost" data-nonce="{{g.nonce}}" data-onclick="delete_postModal('{{p.id}}')"><i class="fas fa-trash-alt mr-2"></i>Delete</a>
|
||||||
<button type="button" id="undelete-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete_post/{{p.id}}', 'delete-{{p.id}}', 'undelete-{{p.id}}','d-none')" data-toggleelement="#post-{{p.id}}" data-toggleattr="deleted" data-bs-dismiss="modal"><i class="fas fa-trash-alt text-center mr-2"></i>Undelete</button>
|
<button type="button" id="undelete-{{p.id}}" class="{% if not p.deleted_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/undelete_post/{{p.id}}', 'delete-{{p.id}}', 'undelete-{{p.id}}','d-none')" data-toggleelement="#post-{{p.id}}" data-toggleattr="deleted" dismiss_modal><i class="fas fa-trash-alt text-center mr-2"></i>Undelete</button>
|
||||||
{% else %}
|
{% else %}
|
||||||
{% if not p.ghost %}
|
{% if not p.ghost %}
|
||||||
<button type="button" id="block2-{{p.id}}" class="blockuser nobackground btn btn-link btn-block btn-lg text-danger text-left" data-areyousure="postToastSwitch(this,'/block_user?username={{p.author_name}}','block2-{{p.id}}','unblock2-{{p.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-eye-slash mr-2 text-danger"></i>Block user</button>
|
<button type="button" id="block2-{{p.id}}" class="blockuser nobackground btn btn-link btn-block btn-lg text-danger text-left" data-areyousure="postToastSwitch(this,'/block_user?username={{p.author_name}}','block2-{{p.id}}','unblock2-{{p.id}}','d-none')" data-nonce="{{g.nonce}}" data-onclick="areyousure(this)" data-dismiss="modal"><i class="fas fa-eye-slash mr-2 text-danger"></i>Block user</button>
|
||||||
<button type="button" id="unblock2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-success text-left {% if not p.is_blocking %}d-none{% endif %}" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unblock_user?username={{p.author_name}}','block2-{{p.id}}','unblock2-{{p.id}}','d-none')"><i class="fas fa-eye mr-2 text-success"></i>Unblock user</button>
|
<button type="button" id="unblock2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-success text-left {% if not p.is_blocking %}d-none{% endif %}" dismiss_modal data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unblock_user?username={{p.author_name}}','block2-{{p.id}}','unblock2-{{p.id}}','d-none')"><i class="fas fa-eye mr-2 text-success"></i>Unblock user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if p.sub %}
|
{% if p.sub %}
|
||||||
<button type="button" id="block-sub2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-danger text-left {% if v.blocks(p.sub) %}d-none{% endif %}" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{p.sub}}/block','block-sub2-{{p.id}}','unblock-sub2-{{p.id}}','d-none')"><i class="fas fa-eye mr-2 text-danger"></i>Block /h/{{p.sub}}</button>
|
<button type="button" id="block-sub2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-danger text-left {% if v.blocks(p.sub) %}d-none{% endif %}" dismiss_modal data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{p.sub}}/block','block-sub2-{{p.id}}','unblock-sub2-{{p.id}}','d-none')"><i class="fas fa-eye mr-2 text-danger"></i>Block /h/{{p.sub}}</button>
|
||||||
<button type="button" id="unblock-sub2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-success text-left {% if not v.blocks(p.sub) %}d-none{% endif %}" data-bs-dismiss="modal" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{p.sub}}/unblock','block-sub2-{{p.id}}','unblock-sub2-{{p.id}}','d-none')"><i class="fas fa-eye mr-2 text-success"></i>Unblock /h/{{p.sub}}</button>
|
<button type="button" id="unblock-sub2-{{p.id}}" class="nobackground btn btn-link btn-block btn-lg text-success text-left {% if not v.blocks(p.sub) %}d-none{% endif %}" dismiss_modal data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{p.sub}}/unblock','block-sub2-{{p.id}}','unblock-sub2-{{p.id}}','d-none')"><i class="fas fa-eye mr-2 text-success"></i>Unblock /h/{{p.sub}}</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if FEATURES['NSFW_MARKING'] and (v.id==p.author_id or (p.sub and v.mods(p.sub))) %}
|
{% if FEATURES['NSFW_MARKING'] and (v.id==p.author_id or (p.sub and v.mods(p.sub))) %}
|
||||||
<button type="button" id="mark3-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/mark_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-center mr-2"></i>Mark 18+</button>
|
<button type="button" id="mark3-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/mark_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-center mr-2"></i>Mark 18+</button>
|
||||||
<button type="button" id="unmark3-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmark_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-center mr-2"></i>Unmark 18+</button>
|
<button type="button" id="unmark3-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmark_post_nsfw/{{p.id}}','mark3-{{p.id}}','unmark3-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-center mr-2"></i>Unmark 18+</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if p.sub and v.mods(p.sub) %}
|
{% if p.sub and v.mods(p.sub) %}
|
||||||
<button type="button" data-bs-dismiss="modal" class="nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/kick/{{p.id}}')"><i class="fas fa-sign-out text-danger text-center mr-2"></i>Kick</button>
|
<button type="button" dismiss_modal class="nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/kick/{{p.id}}')"><i class="fas fa-sign-out text-danger text-center mr-2"></i>Kick</button>
|
||||||
|
|
||||||
{% if not p.author.mods(p.sub) %}
|
{% if not p.author.mods(p.sub) %}
|
||||||
<button type="button" data-bs-dismiss="modal" id="exile2" class="{% if p.author.exiler_username(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/exile/post/{{p.id}}','exile2','unexile2','d-none')"><i class="fas fa-campfire mr-2 text-danger"></i>Exile user</button>
|
<button type="button" dismiss_modal id="exile2" class="{% if p.author.exiler_username(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/exile/post/{{p.id}}','exile2','unexile2','d-none')"><i class="fas fa-campfire mr-2 text-danger"></i>Exile user</button>
|
||||||
<button type="button" data-bs-dismiss="modal" id="unexile2" class="{% if not p.author.exiler_username(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{sub}}/unexile/{{p.author_id}}','exile2','unexile2','d-none')"><i class="fas fa-campfire mr-2 text-success"></i>Unexile user</button>
|
<button type="button" dismiss_modal id="unexile2" class="{% if not p.author.exiler_username(p.sub) %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/h/{{sub}}/unexile/{{p.author_id}}','exile2','unexile2','d-none')"><i class="fas fa-campfire mr-2 text-success"></i>Unexile user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
<div class="modal fade d-md-none" id="adminModal-{{p.id}}" tabindex="-1">
|
<div class="modal d-md-none" id="adminModal-{{p.id}}" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header p-3">
|
<div class="modal-header p-3">
|
||||||
<h6 class="col modal-title text-center">Admin options</h6>
|
<h6 class="col modal-title text-center">Admin options</h6>
|
||||||
<button type="button" class="close position-absolute py-3" style="right: 1rem" data-bs-dismiss="modal">
|
<button type="button" class="close position-absolute py-3" style="right: 1rem" dismiss_modal>
|
||||||
<span><i class="fas fa-times-circle text-gray-500"></i></span>
|
<span><i class="fas fa-times-circle text-gray-500"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -14,42 +14,42 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if (request.path.startswith('/post/') or request.path.startswith('/h/')) and v.admin_level >= PERMS['POST_COMMENT_EDITING'] and p.id %}
|
{% if (request.path.startswith('/post/') or request.path.startswith('/h/')) and v.admin_level >= PERMS['POST_COMMENT_EDITING'] and p.id %}
|
||||||
<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>
|
<button type="button" class="nobackground btn btn-link btn-block btn-lg text-left text-muted" 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>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.can_edit(p) %}
|
{% if v.can_edit(p) %}
|
||||||
<button id="{{p.id}}-sort-new-mobile" type="button" class="{% if p.new %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this, '/post/{{p.id}}/new', '{{p.id}}-sort-new-mobile', '{{p.id}}-unsort-new-mobile', 'd-none', 'null')" data-bs-dismiss="modal"><i class="fas fa-sparkles text-center text-primary mr-2"></i>Set Default Sort New</button>
|
<button id="{{p.id}}-sort-new-mobile" type="button" class="{% if p.new %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this, '/post/{{p.id}}/new', '{{p.id}}-sort-new-mobile', '{{p.id}}-unsort-new-mobile', 'd-none', 'null')" dismiss_modal><i class="fas fa-sparkles text-center text-primary mr-2"></i>Set Default Sort New</button>
|
||||||
<button id="{{p.id}}-unsort-new-mobile" type="button" class="{% if not p.new %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" id="{{p.id}}-unsort-new-mobile" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this, '/post/{{p.id}}/hot', '{{p.id}}-unsort-new-mobile', '{{p.id}}-sort-new-mobile', 'd-none', 'null')" data-bs-dismiss="modal"><i class="fas fa-fire text-center text-primary mr-2"></i>Set Default Sort Hot</button>
|
<button id="{{p.id}}-unsort-new-mobile" type="button" class="{% if not p.new %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" id="{{p.id}}-unsort-new-mobile" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this, '/post/{{p.id}}/hot', '{{p.id}}-unsort-new-mobile', '{{p.id}}-sort-new-mobile', 'd-none', 'null')" dismiss_modal><i class="fas fa-fire text-center text-primary mr-2"></i>Set Default Sort Hot</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.admin_level >= PERMS['POST_COMMENT_DISTINGUISH'] %}
|
{% if v.admin_level >= PERMS['POST_COMMENT_DISTINGUISH'] %}
|
||||||
<button type="button" id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-2"></i>Distinguish</button>
|
<button type="button" id="distinguish2-{{p.id}}" class="{% if p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-crown text-center text-primary mr-2"></i>Distinguish</button>
|
||||||
|
|
||||||
<button type="button" id="undistinguish2-{{p.id}}" class="{% if not p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-crown text-center text-primary mr-2"></i>Undistinguish</button>
|
<button type="button" id="undistinguish2-{{p.id}}" class="{% if not p.distinguish_level %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/distinguish/{{p.id}}','distinguish2-{{p.id}}','undistinguish2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-crown text-center text-primary mr-2"></i>Undistinguish</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
{% if v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
||||||
<button type="button" id="pin2-{{p.id}}" class="{% if p.stickied and not p.stickied_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="pinPost(this,'{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-2"></i>Pin {% if p.stickied_utc %}permanently{% else %}for 1 hour{% endif %}</button>
|
<button type="button" id="pin2-{{p.id}}" class="{% if p.stickied and not p.stickied_utc %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="pinPost(this,'{{p.id}}')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-2"></i>Pin {% if p.stickied_utc %}permanently{% else %}for 1 hour{% endif %}</button>
|
||||||
<button type="button" id="unpin2-{{p.id}}" class="{% if not p.stickied %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="unpinPost(this,'{{p.id}}')" data-bs-dismiss="modal"><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-2"></i>Unpin</button>
|
<button type="button" id="unpin2-{{p.id}}" class="{% if not p.stickied %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-primary" data-nonce="{{g.nonce}}" data-onclick="unpinPost(this,'{{p.id}}')" dismiss_modal><i class="fas fa-thumbtack fa-rotate--45 text-center text-primary mr-2"></i>Unpin</button>
|
||||||
|
|
||||||
<button type="button" id="remove2-{{p.id}}" class="{% if p.is_banned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" data-nonce="{{g.nonce}}" data-onclick="removePost(this,'{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-ban text-center mr-2"></i>Remove</button>
|
<button type="button" id="remove2-{{p.id}}" class="{% if p.is_banned %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-danger text-left" data-nonce="{{g.nonce}}" data-onclick="removePost(this,'{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-ban text-center mr-2"></i>Remove</button>
|
||||||
<button type="button" id="approve2-{{p.id}}" class="{% if not p.is_banned and request.path != '/admin/reported/posts' %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" data-nonce="{{g.nonce}}" data-onclick="approvePost(this,'{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-check text-center mr-2"></i>Approve</button>
|
<button type="button" id="approve2-{{p.id}}" class="{% if not p.is_banned and request.path != '/admin/reported/posts' %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" data-nonce="{{g.nonce}}" data-onclick="approvePost(this,'{{p.id}}','remove2-{{p.id}}','approve2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-check text-center mr-2"></i>Approve</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if FEATURES['NSFW_MARKING'] and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
{% if FEATURES['NSFW_MARKING'] and v.admin_level >= PERMS['POST_COMMENT_MODERATION'] %}
|
||||||
<button type="button" id="mark2-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/mark_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-center text-danger mr-2"></i>Mark 18+</button>
|
<button type="button" id="mark2-{{p.id}}" class="{% if p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/mark_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-center text-danger mr-2"></i>Mark 18+</button>
|
||||||
<button type="button" id="unmark2-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmark_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-eye-evil text-center text-success mr-2"></i>Unmark 18+</button>
|
<button type="button" id="unmark2-{{p.id}}" class="{% if not p.over_18 %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-success" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/unmark_post_nsfw/{{p.id}}','mark2-{{p.id}}','unmark2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-eye-evil text-center text-success mr-2"></i>Unmark 18+</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.admin_level >= PERMS['PROGSTACK'] %}
|
{% if v.admin_level >= PERMS['PROGSTACK'] %}
|
||||||
<button type="button" id="progstack2-{{p.id}}" class="{% if p.is_approved == PROGSTACK_ID %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/progstack/post/{{p.id}}','progstack2-{{p.id}}','unprogstack2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-bullhorn text-center text-danger mr-2"></i>Apply Progressive Stack</button>
|
<button type="button" id="progstack2-{{p.id}}" class="{% if p.is_approved == PROGSTACK_ID %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/progstack/post/{{p.id}}','progstack2-{{p.id}}','unprogstack2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-bullhorn text-center text-danger mr-2"></i>Apply Progressive Stack</button>
|
||||||
<button type="button" id="unprogstack2-{{p.id}}" class="{% if p.is_approved != PROGSTACK_ID %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/unprogstack/post/{{p.id}}','progstack2-{{p.id}}','unprogstack2-{{p.id}}','d-none')" data-bs-dismiss="modal"><i class="fas fa-bullhorn text-center text-danger mr-2"></i>Remove Progressive Stack</button>
|
<button type="button" id="unprogstack2-{{p.id}}" class="{% if p.is_approved != PROGSTACK_ID %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-left text-danger" data-nonce="{{g.nonce}}" data-onclick="postToastSwitch(this,'/admin/unprogstack/post/{{p.id}}','progstack2-{{p.id}}','unprogstack2-{{p.id}}','d-none')" dismiss_modal><i class="fas fa-bullhorn text-center text-danger mr-2"></i>Remove Progressive Stack</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.id != p.author_id and v.admin_level >= PERMS['USER_BAN'] %}
|
{% if v.id != p.author_id and v.admin_level >= PERMS['USER_BAN'] %}
|
||||||
<button type="button" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#banModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')" class="nobackground btn btn-link btn-block btn-lg text-danger text-left {% if p.author.is_permabanned %}d-none{% endif %}"><i class="fas fa-user-minus mr-2"></i>Ban user</button>
|
<a href="#m-ban" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'ban', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')" class="nobackground btn btn-link btn-block btn-lg text-danger text-left {% if p.author.is_permabanned %}d-none{% endif %}"><i class="fas fa-user-minus mr-2"></i>Ban user</a>
|
||||||
|
|
||||||
<button type="button" id="unban2-{{p.fullname}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{p.fullname}}')" data-bs-dismiss="modal"><i class="fas fa-user-minus mr-2"></i>Unban user</button>
|
<button type="button" id="unban2-{{p.fullname}}" class="{% if not p.author.is_suspended %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unban_user/{{p.fullname}}')" dismiss_modal><i class="fas fa-user-minus mr-2"></i>Unban user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.id != p.author_id and v.admin_level >= PERMS['USER_CHUD'] %}
|
{% if v.id != p.author_id and v.admin_level >= PERMS['USER_CHUD'] %}
|
||||||
<button type="button" data-bs-dismiss="modal" data-bs-toggle="modal" data-bs-target="#chudModal" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')" class="nobackground btn btn-link btn-block btn-lg text-danger text-left {% if p.author.chud == 1 %}d-none{% endif %}"><i class="fas fa-face-sleeping mr-2"></i>Chud user</button>
|
<a href="#m-chud" data-nonce="{{g.nonce}}" data-onclick="punishModal(this, 'chud', '/post/{{p.id}}', '{{p.author_name}}', '{{p.fullname}}')" class="nobackground btn btn-link btn-block btn-lg text-danger text-left {% if p.author.chud == 1 %}d-none{% endif %}"><i class="fas fa-face-sleeping mr-2"></i>Chud user</a>
|
||||||
|
|
||||||
<button type="button" id="unchud2-{{p.fullname}}" class="{% if not p.author.chud %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{p.fullname}}')" data-bs-dismiss="modal"><i class="fas fa-face-sleeping mr-2"></i>Unchud user</button>
|
<button type="button" id="unchud2-{{p.fullname}}" class="{% if not p.author.chud %}d-none{% endif %} nobackground btn btn-link btn-block btn-lg text-success text-left" data-nonce="{{g.nonce}}" data-onclick="unchud_or_unban(this,'/unchud_user/{{p.fullname}}')" dismiss_modal><i class="fas fa-face-sleeping mr-2"></i>Unchud user</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -127,7 +127,7 @@
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
{% if v and v.admin_level >= PERMS['ADMIN_HOME_VISIBLE'] %}
|
{% if v and v.admin_level >= PERMS['ADMIN_HOME_VISIBLE'] %}
|
||||||
<button type="button" class="ml-2" data-bs-toggle="modal" data-bs-target="#adminModal-{{p.id}}">
|
<button type="button" class="ml-2" href="#m-adminModal-{{p.id}}">
|
||||||
<i class="fas fa-broom"></i>
|
<i class="fas fa-broom"></i>
|
||||||
</button>
|
</button>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -140,7 +140,7 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<li class="list-inline-item">
|
<li class="list-inline-item">
|
||||||
<button type="button" data-bs-toggle="modal" data-bs-target="#actionsModal-{{p.id}}">
|
<button type="button" href="#m-actionsModal-{{p.id}}">
|
||||||
<i class="fas fa-ellipsis-h"></i>
|
<i class="fas fa-ellipsis-h"></i>
|
||||||
</button>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
|
@ -182,12 +182,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<div class="modal fade d-md-none" id="actionsModal-{{p.id}}" tabindex="-1">
|
<div class="modal d-md-none" id="actionsModal-{{p.id}}" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header p-3">
|
<div class="modal-header p-3">
|
||||||
<h6 class="col modal-title text-center">More options</h6>
|
<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">
|
<button type="button" class="close position-absolute py-3" style="right: 1rem" dismiss_modal>
|
||||||
<span><i class="fas fa-times-circle text-gray-500"></i></span>
|
<span><i class="fas fa-times-circle text-gray-500"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
<input minlength={{minlength}} maxlength={{maxlength}} pattern="{{pattern}}" autocomplete="off" id="{{id}}-body" type="text" name="{{form_name}}" class="form-control" placeholder='{{placeholder_text}}' value="{% if contents %}{{contents}}{% endif %}" {% if disabled %}disabled{% endif %}>
|
<input minlength={{minlength}} maxlength={{maxlength}} pattern="{{pattern}}" autocomplete="off" id="{{id}}-body" type="text" name="{{form_name}}" class="form-control" placeholder='{{placeholder_text}}' value="{% if contents %}{{contents}}{% endif %}" {% if disabled %}disabled{% endif %}>
|
||||||
<div class="d-flex mt-2">
|
<div class="d-flex mt-2">
|
||||||
{% if show_emojis %}
|
{% if show_emojis %}
|
||||||
<div class="ml-2"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('{{id}}-body')" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></div>
|
<div class="ml-2"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('{{id}}-body')" href="#m-emoji" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<small class="ml-1">{{below_text}}</small>
|
<small class="ml-1">{{below_text}}</small>
|
||||||
<input autocomplete="off" class="btn btn-primary ml-auto" id="{{id}}-save" type="submit" value="{{button_text}}" {% if disabled %}disabled{% endif %}>
|
<input autocomplete="off" class="btn btn-primary ml-auto" id="{{id}}-save" type="submit" value="{{button_text}}" {% if disabled %}disabled{% endif %}>
|
||||||
|
|
|
@ -272,17 +272,17 @@
|
||||||
{% set ns = namespace(slurtext='Enable if you would like to automatically replace slurs.', profanitytext='Enable if you would like to automatically replace profanities.') %}
|
{% set ns = namespace(slurtext='Enable if you would like to automatically replace slurs.', profanitytext='Enable if you would like to automatically replace profanities.') %}
|
||||||
{% if FEATURES['USERS_PERMANENT_WORD_FILTERS'] %}
|
{% if FEATURES['USERS_PERMANENT_WORD_FILTERS'] %}
|
||||||
{% if v.slurreplacer == 0 %}
|
{% if v.slurreplacer == 0 %}
|
||||||
{% set slurtext = 'Enable if you would like to automatically replace slurs. <a hidden id="slurreplacer-perma-link" href="#" class="text-primary" data-bs-toggle="modal" data-bs-target="#modal-slurreplacer">Make filter permanent for a badge!</a>' %}
|
{% set slurtext = 'Enable if you would like to automatically replace slurs. <a hidden id="slurreplacer-perma-link" class="text-primary" href="#m-slurreplacer">Make filter permanent for a badge!</a>' %}
|
||||||
{% elif v.slurreplacer == 1 %}
|
{% elif v.slurreplacer == 1 %}
|
||||||
{% set slurtext = 'Enable if you would like to automatically replace slurs. <a id="slurreplacer-perma-link" href="#" class="text-primary" data-bs-toggle="modal" data-bs-target="#modal-slurreplacer">Make filter permanent for a badge!</a>' %}
|
{% set slurtext = 'Enable if you would like to automatically replace slurs. <a id="slurreplacer-perma-link" class="text-primary" href="#m-slurreplacer">Make filter permanent for a badge!</a>' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set slurtext = "You've enabled the slur replacer permanently! ✊🏿" %}
|
{% set slurtext = "You've enabled the slur replacer permanently! ✊🏿" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if v.profanityreplacer == 0 %}
|
{% if v.profanityreplacer == 0 %}
|
||||||
{% set profanitytext = 'Enable if you would like to automatically replace profanities. <a hidden id="profanityreplacer-perma-link" href="#" class="text-primary" data-bs-toggle="modal" data-bs-target="#modal-profanityreplacer">Make filter permanent for a badge!</a>' %}
|
{% set profanitytext = 'Enable if you would like to automatically replace profanities. <a hidden id="profanityreplacer-perma-link" class="text-primary" href="#m-profanityreplacer">Make filter permanent for a badge!</a>' %}
|
||||||
{% elif v.profanityreplacer == 1 %}
|
{% elif v.profanityreplacer == 1 %}
|
||||||
{% set profanitytext = 'Enable if you would like to automatically replace profanities. <a id="profanityreplacer-perma-link" href="#" class="text-primary" data-bs-toggle="modal" data-bs-target="#modal-profanityreplacer">Make filter permanent for a badge!</a>' %}
|
{% set profanitytext = 'Enable if you would like to automatically replace profanities. <a id="profanityreplacer-perma-link" class="text-primary" href="#m-profanityreplacer">Make filter permanent for a badge!</a>' %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% set profanitytext = "You've enabled the profanity replacer permanently! 😇" %}
|
{% set profanitytext = "You've enabled the profanity replacer permanently! 😇" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -343,13 +343,13 @@
|
||||||
|
|
||||||
{% macro permanent_filter_modal(id, form_action, field, friendly_name, badge_name) %}
|
{% macro permanent_filter_modal(id, form_action, field, friendly_name, badge_name) %}
|
||||||
{% if FEATURES['USERS_PERMANENT_WORD_FILTERS'] -%}
|
{% if FEATURES['USERS_PERMANENT_WORD_FILTERS'] -%}
|
||||||
<div class="modal fade" id="modal-{{id}}" tabindex="-1">
|
<div class="modal" id="m-{{id}}" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<form class="m-auto" action="{{form_action}}" id="{{id}}-form" method="post" data-nonce="{{g.nonce}}" data-onsubmit="sendFormXHRReload(this)">
|
<form class="m-auto" action="{{form_action}}" id="{{id}}-form" method="post" data-nonce="{{g.nonce}}" data-onsubmit="sendFormXHRReload(this)">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title">Make {{friendly_name}} Permanent</h5>
|
<h5 class="modal-title">Make {{friendly_name}} Permanent</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -361,7 +361,7 @@
|
||||||
<input autocomplete="off" type="text" name="username" placeholder="Enter your username to confirm" id="username-{{id}}" class="form-control" pattern="{{v.username}}" required>
|
<input autocomplete="off" type="text" name="username" placeholder="Enter your username to confirm" id="username-{{id}}" class="form-control" pattern="{{v.username}}" required>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-link text-muted" dismiss_modal>Cancel</button>
|
||||||
<button type="submit" class="btn btn-danger" id="submit-{{id}}-form">Make Permanent</button>
|
<button type="submit" class="btn btn-danger" id="submit-{{id}}-form">Make Permanent</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -125,7 +125,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="modal fade" id="2faModal" tabindex="-1">
|
<div class="modal" id="m-2fa" tabindex="-1">
|
||||||
<div class="modal-dialog modal-dialog-centered">
|
<div class="modal-dialog modal-dialog-centered">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
|
@ -138,7 +138,7 @@
|
||||||
Disable two-step login
|
Disable two-step login
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</h5>
|
</h5>
|
||||||
<button type="button" class="close" data-bs-dismiss="modal">
|
<button type="button" class="close" dismiss_modal>
|
||||||
<span><i class="fas fa-times"></i></span>
|
<span><i class="fas fa-times"></i></span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -174,7 +174,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-link text-muted" data-bs-dismiss="modal">Cancel</button>
|
<button type="button" class="btn btn-link text-muted" dismiss_modal>Cancel</button>
|
||||||
<input autocomplete="off" id="toggle2faButton" class="btn btn-primary" type="submit" value="{{action}} two-factor authentication" disabled>
|
<input autocomplete="off" id="toggle2faButton" class="btn btn-primary" type="submit" value="{{action}} two-factor authentication" disabled>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
</div>
|
</div>
|
||||||
<label class='mt-4' for="title">Post Title</label>
|
<label class='mt-4' for="title">Post Title</label>
|
||||||
<textarea autocomplete="off" class="form-control allow-emojis" id="post-title" type="text" name="title" placeholder="Required" value="{{title}}" minlength="1" maxlength="500" required data-nonce="{{g.nonce}}" data-oninput="checkForRequired();savetext()"></textarea>
|
<textarea autocomplete="off" class="form-control allow-emojis" id="post-title" type="text" name="title" placeholder="Required" value="{{title}}" minlength="1" maxlength="500" required data-nonce="{{g.nonce}}" data-oninput="checkForRequired();savetext()"></textarea>
|
||||||
<button type="button" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('post-title')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn-2" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-smile-beam"></i></button>
|
<a data-nonce="{{g.nonce}}" data-onclick="loadEmojis('post-title')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn-2" href="#m-emoji" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-smile-beam"></i></a>
|
||||||
<div id="urlblock">
|
<div id="urlblock">
|
||||||
<label for="URL" class="mt-3">URL</label>
|
<label for="URL" class="mt-3">URL</label>
|
||||||
<input autocomplete="off" class="form-control" id="post-url" name="url" type="url" placeholder="Optional if you have text." value="{{request.values.get('url','')}}" required data-nonce="{{g.nonce}}" data-oninput="checkForRequired();savetext();checkRepost();autoSuggestTitle()">
|
<input autocomplete="off" class="form-control" id="post-url" name="url" type="url" placeholder="Optional if you have text." value="{{request.values.get('url','')}}" required data-nonce="{{g.nonce}}" data-oninput="checkForRequired();savetext();checkRepost();autoSuggestTitle()">
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
<input hidden name="formkey" value="{{v|formkey}}">
|
<input hidden name="formkey" value="{{v|formkey}}">
|
||||||
<input maxlength=100 autocomplete="off" id="customtitlebody-{{deviceType}}" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if u.customtitleplain %}{{u.customtitleplain}}{% endif %}">
|
<input maxlength=100 autocomplete="off" id="customtitlebody-{{deviceType}}" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if u.customtitleplain %}{{u.customtitleplain}}{% endif %}">
|
||||||
<div class="d-flex">
|
<div class="d-flex">
|
||||||
<div class="format pl-0"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('customtitlebody-{{deviceType}}')" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></div>
|
<div class="format pl-0"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('customtitlebody-{{deviceType}}')" href="#m-emoji" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></div>
|
||||||
<div class="custom-control custom-checkbox ml-2 mt-1">
|
<div class="custom-control custom-checkbox ml-2 mt-1">
|
||||||
<input autocomplete="off" type="checkbox" class="custom-control-input" id="locked-{{deviceType}}" name="locked" {% if u.flairchanged %}checked{% endif %}>
|
<input autocomplete="off" type="checkbox" class="custom-control-input" id="locked-{{deviceType}}" name="locked" {% if u.flairchanged %}checked{% endif %}>
|
||||||
<label class="custom-control-label" for="locked-{{deviceType}}">locked</label>
|
<label class="custom-control-label" for="locked-{{deviceType}}">locked</label>
|
||||||
|
|
|
@ -105,9 +105,9 @@
|
||||||
|
|
||||||
{% macro file_input(input_id, textarea_id, disabled) %}
|
{% macro file_input(input_id, textarea_id, disabled) %}
|
||||||
<div class="comment-format">
|
<div class="comment-format">
|
||||||
<button type="button" class="btn btn-secondary format m-0 font-weight-bolder text-uppercase" data-nonce="{{g.nonce}}" data-onclick="getGifs('{{textarea_id}}')" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</button>
|
<a class="btn btn-secondary format m-0 font-weight-bolder text-uppercase" data-nonce="{{g.nonce}}" data-onclick="getGifs('{{textarea_id}}')" href="#m-gif" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</a>
|
||||||
|
|
||||||
<button type="button" class="btn btn-secondary format m-0 ml-2" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('{{textarea_id}}')" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-smile-beam"></i></button>
|
<a class="btn btn-secondary format m-0 ml-2" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('{{textarea_id}}')" href="#m-emoji" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-smile-beam"></i></a>
|
||||||
|
|
||||||
<label class="btn btn-secondary format m-0 ml-2" for="{{input_id}}" {% if g.is_tor or disabled %}disabled{% endif %}>
|
<label class="btn btn-secondary format m-0 ml-2" for="{{input_id}}" {% if g.is_tor or disabled %}disabled{% endif %}>
|
||||||
<i class="fas fa-{% if image_only %}image{% else %}file{% endif %}"></i>
|
<i class="fas fa-{% if image_only %}image{% else %}file{% endif %}"></i>
|
||||||
|
@ -326,7 +326,7 @@
|
||||||
<span id="loading-indicator" class="d-none"></span>
|
<span id="loading-indicator" class="d-none"></span>
|
||||||
</div>
|
</div>
|
||||||
<span class="my-auto">
|
<span class="my-auto">
|
||||||
<i class="btn btn-secondary fas fa-smile-beam" style="font-size:1.3rem!important" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('input-text-chat')" data-bs-toggle="modal" data-bs-target="#emojiModal"></i>
|
<i class="btn btn-secondary fas fa-smile-beam" style="font-size:1.3rem!important" data-nonce="{{g.nonce}}" data-onclick="loadEmojis('input-text-chat')" href="#m-emoji"></i>
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span class="my-auto ml-1">
|
<span class="my-auto ml-1">
|
||||||
|
|
Loading…
Reference in New Issue