Merge branch 'master' into mistletoe
This commit is contained in:
commit
a72b823f6d
31 changed files with 240 additions and 272 deletions
|
@ -1793,7 +1793,7 @@ a.badge:hover, a.badge:focus {
|
||||||
}
|
}
|
||||||
a.badge-secondary:hover, a.badge-secondary:focus {
|
a.badge-secondary:hover, a.badge-secondary:focus {
|
||||||
color: #fff;
|
color: #fff;
|
||||||
background-color: #545b62;
|
background-color: var(--primary);
|
||||||
}
|
}
|
||||||
a.badge-secondary:focus, a.badge-secondary.focus {
|
a.badge-secondary:focus, a.badge-secondary.focus {
|
||||||
outline: 0;
|
outline: 0;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
window.onload = function () {
|
window.addEventListener("load",function(event) {
|
||||||
var prevScrollpos = window.pageYOffset;
|
var prevScrollpos = window.pageYOffset;
|
||||||
window.onscroll = function () {
|
window.onscroll = function () {
|
||||||
var currentScrollPos = window.pageYOffset;
|
var currentScrollPos = window.pageYOffset;
|
||||||
|
@ -43,4 +43,4 @@ window.onload = function () {
|
||||||
}
|
}
|
||||||
prevScrollpos = currentScrollPos;
|
prevScrollpos = currentScrollPos;
|
||||||
}
|
}
|
||||||
}
|
})
|
|
@ -1,4 +1,4 @@
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
function eventasdf(value){
|
function eventasdf(value){
|
||||||
var content_id = value.getAttributeNode("data-content-id").value;
|
var content_id = value.getAttributeNode("data-content-id").value;
|
||||||
value.addEventListener("click", function(){jhkj(content_id)});
|
value.addEventListener("click", function(){jhkj(content_id)});
|
||||||
|
@ -29,8 +29,9 @@ window.onload = function() {
|
||||||
document.body.removeChild(popover_shit);
|
document.body.removeChild(popover_shit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
var usernames = document.querySelectorAll("a.user-name");
|
var usernames = document.querySelectorAll("a.user-name");
|
||||||
usernames.forEach(eventasdf);
|
usernames.forEach(eventasdf);
|
||||||
|
|
||||||
document.addEventListener("click", function(e){dfgh(e)});
|
document.addEventListener("click", function(e){dfgh(e)});
|
||||||
};
|
});
|
|
@ -13,8 +13,8 @@ from .flags import CommentFlag
|
||||||
from random import randint
|
from random import randint
|
||||||
|
|
||||||
site = environ.get("DOMAIN").strip()
|
site = environ.get("DOMAIN").strip()
|
||||||
if site == 'pcmemes.net': cc = "splash mountain"
|
if site == 'pcmemes.net': cc = "SPLASH MOUNTAIN"
|
||||||
else: cc = "country club"
|
else: cc = "COUNTRY CLUB"
|
||||||
|
|
||||||
class Comment(Base):
|
class Comment(Base):
|
||||||
|
|
||||||
|
@ -305,7 +305,7 @@ class Comment(Base):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def realbody(self, v):
|
def realbody(self, v):
|
||||||
if self.post and self.post.club and not (v and v.paid_dues): return f"<p>{cc} ONLY</p>"
|
if self.post and self.post.club and not (v and v.paid_dues) and not (v and v.id == self.author_id): return f"<p>{cc} ONLY</p>"
|
||||||
|
|
||||||
body = self.body_html
|
body = self.body_html
|
||||||
|
|
||||||
|
@ -342,7 +342,7 @@ class Comment(Base):
|
||||||
return body
|
return body
|
||||||
|
|
||||||
def plainbody(self, v):
|
def plainbody(self, v):
|
||||||
if self.post and self.post.club and not (v and v.paid_dues): return f"<p>{cc} ONLY</p>"
|
if self.post and self.post.club and not (v and v.paid_dues) and not (v and v.id == self.author_id): return f"<p>{cc} ONLY</p>"
|
||||||
|
|
||||||
body = self.body
|
body = self.body
|
||||||
|
|
||||||
|
|
|
@ -6,8 +6,8 @@ from files.helpers.lazy import lazy
|
||||||
from os import environ
|
from os import environ
|
||||||
|
|
||||||
site = environ.get("DOMAIN").strip()
|
site = environ.get("DOMAIN").strip()
|
||||||
if site == 'pcmemes.net': cc = "splash mountain"
|
if site == 'pcmemes.net': cc = "SPLASH MOUNTAIN"
|
||||||
else: cc = "country club"
|
else: cc = "COUNTRY CLUB"
|
||||||
|
|
||||||
class ModAction(Base):
|
class ModAction(Base):
|
||||||
__tablename__ = "modactions"
|
__tablename__ = "modactions"
|
||||||
|
@ -82,7 +82,7 @@ class ModAction(Base):
|
||||||
@lazy
|
@lazy
|
||||||
def string(self):
|
def string(self):
|
||||||
|
|
||||||
output = ACTIONTYPES[self.kind]["str"].format(self=self, cc=cc)
|
output = ACTIONTYPES[self.kind]["str"].format(self=self)
|
||||||
|
|
||||||
if self.note: output += f" <i>({self.note})</i>"
|
if self.note: output += f" <i>({self.note})</i>"
|
||||||
|
|
||||||
|
@ -93,7 +93,7 @@ class ModAction(Base):
|
||||||
def target_link(self):
|
def target_link(self):
|
||||||
if self.target_user: return f'<a href="{self.target_user.url}">{self.target_user.username}</a>'
|
if self.target_user: return f'<a href="{self.target_user.url}">{self.target_user.username}</a>'
|
||||||
elif self.target_post:
|
elif self.target_post:
|
||||||
if self.target_post.club: return f'<a href="{self.target_post.permalink}">{cc.upper()} ONLY</a>'
|
if self.target_post.club: return f'<a href="{self.target_post.permalink}">{cc} ONLY</a>'
|
||||||
return f'<a href="{self.target_post.permalink}">{self.target_post.title.replace("<","").replace(">","")}</a>'
|
return f'<a href="{self.target_post.permalink}">{self.target_post.title.replace("<","").replace(">","")}</a>'
|
||||||
elif self.target_comment_id: return f'<a href="/comment/{self.target_comment_id}?context=9#context">comment</a>'
|
elif self.target_comment_id: return f'<a href="/comment/{self.target_comment_id}?context=9#context">comment</a>'
|
||||||
|
|
||||||
|
|
|
@ -1016,8 +1016,7 @@ def api_ban_comment(c_id, v):
|
||||||
def api_unban_comment(c_id, v):
|
def api_unban_comment(c_id, v):
|
||||||
|
|
||||||
comment = g.db.query(Comment).filter_by(id=c_id).first()
|
comment = g.db.query(Comment).filter_by(id=c_id).first()
|
||||||
if not comment:
|
if not comment: abort(404)
|
||||||
abort(404)
|
|
||||||
g.db.add(comment)
|
g.db.add(comment)
|
||||||
|
|
||||||
if comment.is_banned:
|
if comment.is_banned:
|
||||||
|
@ -1037,24 +1036,18 @@ def api_unban_comment(c_id, v):
|
||||||
|
|
||||||
|
|
||||||
@app.post("/distinguish_comment/<c_id>")
|
@app.post("/distinguish_comment/<c_id>")
|
||||||
@auth_required
|
@admin_level_required(1)
|
||||||
def admin_distinguish_comment(c_id, v):
|
def admin_distinguish_comment(c_id, v):
|
||||||
|
|
||||||
if v.admin_level == 0: abort(403)
|
|
||||||
|
|
||||||
comment = get_comment(c_id, v=v)
|
comment = get_comment(c_id, v=v)
|
||||||
|
|
||||||
if comment.author_id != v.id:
|
if comment.author_id != v.id: abort(403)
|
||||||
abort(403)
|
|
||||||
|
|
||||||
comment.distinguish_level = 0 if comment.distinguish_level else v.admin_level
|
comment.distinguish_level = 0 if comment.distinguish_level else v.admin_level
|
||||||
|
|
||||||
g.db.add(comment)
|
g.db.add(comment)
|
||||||
html=render_template(
|
html = render_template("comments.html", v=v, comments=[comment])
|
||||||
"comments.html",
|
|
||||||
v=v,
|
|
||||||
comments=[comment],
|
|
||||||
)
|
|
||||||
|
|
||||||
html = str(BeautifulSoup(html, features="html.parser").find(id=f"comment-{comment.id}-only"))
|
html = str(BeautifulSoup(html, features="html.parser").find(id=f"comment-{comment.id}-only"))
|
||||||
|
|
||||||
|
|
|
@ -646,17 +646,13 @@ def u_username_comments(username, v=None):
|
||||||
if request.headers.get("Authorization"): return {"error": "That userpage is private"}
|
if request.headers.get("Authorization"): return {"error": "That userpage is private"}
|
||||||
else: return render_template("userpage_private.html", time=int(time.time()), u=u, v=v)
|
else: return render_template("userpage_private.html", time=int(time.time()), u=u, v=v)
|
||||||
|
|
||||||
if hasattr(u, 'is_blocking') and u.is_blocking and (not v or v.admin_level < 2):
|
if v and hasattr(u, 'is_blocking') and u.is_blocking:
|
||||||
if request.headers.get("Authorization"): return {"error": f"You are blocking @{u.username}."}
|
if request.headers.get("Authorization"): return {"error": f"You are blocking @{u.username}."}
|
||||||
else: return render_template("userpage_blocking.html",
|
else: return render_template("userpage_blocking.html", u=u, v=v)
|
||||||
u=u,
|
|
||||||
v=v)
|
|
||||||
|
|
||||||
if hasattr(u, 'is_blocked') and u.is_blocked and (not v or v.admin_level < 2):
|
if v and v.admin_level < 2 and hasattr(u, 'is_blocked') and u.is_blocked:
|
||||||
if request.headers.get("Authorization"): return {"error": "This person is blocking you."}
|
if request.headers.get("Authorization"): return {"error": "This person is blocking you."}
|
||||||
else: return render_template("userpage_blocked.html",
|
else: return render_template("userpage_blocked.html", u=u, v=v)
|
||||||
u=u,
|
|
||||||
v=v)
|
|
||||||
|
|
||||||
|
|
||||||
page = int(request.values.get("page", "1"))
|
page = int(request.values.get("page", "1"))
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
{% block fixedMobileBarJS %}
|
{% block fixedMobileBarJS %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
var prevScrollpos = window.pageYOffset;
|
var prevScrollpos = window.pageYOffset;
|
||||||
window.onscroll = function () {
|
window.onscroll = function () {
|
||||||
var currentScrollPos = window.pageYOffset;
|
var currentScrollPos = window.pageYOffset;
|
||||||
|
@ -32,8 +32,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
prevScrollpos = currentScrollPos;
|
prevScrollpos = currentScrollPos;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@
|
||||||
|
|
||||||
{% block fixedMobileBarJS %}
|
{% block fixedMobileBarJS %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
var prevScrollpos = window.pageYOffset;
|
var prevScrollpos = window.pageYOffset;
|
||||||
window.onscroll = function () {
|
window.onscroll = function () {
|
||||||
var currentScrollPos = window.pageYOffset;
|
var currentScrollPos = window.pageYOffset;
|
||||||
|
@ -60,8 +60,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
prevScrollpos = currentScrollPos;
|
prevScrollpos = currentScrollPos;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
||||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=124">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=124">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
|
||||||
const banModal = function(link, id, name) {
|
const banModal = function(link, id, name) {
|
||||||
document.getElementById("banModalTitle").innerHTML = `Ban @${name}`;
|
document.getElementById("banModalTitle").innerHTML = `Ban @${name}`;
|
||||||
document.getElementById("ban-modal-link").value = link;
|
document.getElementById("ban-modal-link").value = link;
|
||||||
|
@ -23,8 +22,6 @@ window.onload = function() {
|
||||||
xhr.send(fd);
|
xhr.send(fd);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true">
|
<div class="modal fade" id="banModal" tabindex="-1" role="dialog" aria-labelledby="banModalTitle" aria-hidden="true">
|
||||||
|
|
|
@ -2,8 +2,7 @@
|
||||||
<script defer src="/assets/js/twitter.js" charset="utf-8">
|
<script defer src="/assets/js/twitter.js" charset="utf-8">
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
document.getElementById('twitter-widget-0').setAttribute('sandbox','')
|
document.getElementById('twitter-widget-0').setAttribute('sandbox','')
|
||||||
|
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
|
@ -2,8 +2,7 @@
|
||||||
<script defer src="https://platform.twitter.com/widgets.js" charset="utf-8">
|
<script defer src="https://platform.twitter.com/widgets.js" charset="utf-8">
|
||||||
</script>
|
</script>
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
document.getElementById('twitter-widget-0').setAttribute('sandbox','')
|
document.getElementById('twitter-widget-0').setAttribute('sandbox','')
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
|
@ -84,7 +84,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script defer src="/assets/js/emoji_modal.js?v=123"></script>
|
<script defer src="/assets/js/emoji_modal.js?v=124"></script>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
a.emojitab {
|
a.emojitab {
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{% extends "default.html" %}
|
{% extends "default.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
function removeFollower(event, username) {
|
function removeFollower(event, username) {
|
||||||
post_toast('/remove_follow/' + username);
|
post_toast('/remove_follow/' + username);
|
||||||
let table = document.getElementById("followers-table");
|
let table = document.getElementById("followers-table");
|
||||||
table.removeChild(event.target.parentElement.parentElement);
|
table.removeChild(event.target.parentElement.parentElement);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,13 @@
|
||||||
{% extends "default.html" %}
|
{% extends "default.html" %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
function removeFollower(event, username) {
|
function removeFollower(event, username) {
|
||||||
post_toast('/unfollow/' + username);
|
post_toast('/unfollow/' + username);
|
||||||
let table = document.getElementById("followers-table");
|
let table = document.getElementById("followers-table");
|
||||||
table.removeChild(event.target.parentElement.parentElement);
|
table.removeChild(event.target.parentElement.parentElement);
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
<pre>
|
<pre>
|
||||||
|
|
||||||
|
|
|
@ -6,11 +6,11 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
||||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=124">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=124">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="row justify-content-around">
|
<div class="row justify-content-around">
|
||||||
|
|
|
@ -114,7 +114,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
<title>2-Step Login - {{'SITE_NAME' | app_config}}</title>
|
<title>2-Step Login - {{'SITE_NAME' | app_config}}</title>
|
||||||
|
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
|
@ -36,10 +36,10 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<link href="/assets/css/fa.css?v=52" rel="stylesheet">
|
<link href="/assets/css/fa.css?v=52" rel="stylesheet">
|
||||||
|
@ -168,7 +168,7 @@
|
||||||
{% block scripts %}
|
{% block scripts %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
function formkey() {return '{{v.formkey}}';}
|
function formkey() {return '{{v.formkey}}';}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
block_user=function() {
|
block_user=function() {
|
||||||
|
|
||||||
var exileForm = document.getElementById("exile-form");
|
var exileForm = document.getElementById("exile-form");
|
||||||
|
@ -40,8 +40,7 @@ window.onload = function() {
|
||||||
xhr.send(f)
|
xhr.send(f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
|
@ -38,7 +38,7 @@
|
||||||
</div>
|
</div>
|
||||||
{% if v.agendaposter %}
|
{% if v.agendaposter %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
const flip = (e) => {
|
const flip = (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
document.getElementsByTagName("body")[0].setAttribute("style", "-moz-transform: scale(-1, -1);-o-transform: scale(-1, -1);-webkit-transform: scale(-1, -1);transform: scale(-1, -1);");
|
document.getElementsByTagName("body")[0].setAttribute("style", "-moz-transform: scale(-1, -1);-o-transform: scale(-1, -1);-webkit-transform: scale(-1, -1);transform: scale(-1, -1);");
|
||||||
|
@ -46,7 +46,7 @@ window.onload = function() {
|
||||||
|
|
||||||
document.getElementById("submit-btn").onclick = flip;
|
document.getElementById("submit-btn").onclick = flip;
|
||||||
|
|
||||||
};
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -5,15 +5,13 @@
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
window.addEventListener('DOMContentLoaded', function() {
|
window.addEventListener("load",function(event) {
|
||||||
document.getElementById('new_email').addEventListener('input', function () {
|
document.getElementById('new_email').addEventListener('input', function () {
|
||||||
document.getElementById("email-password").classList.remove("d-none");
|
document.getElementById("email-password").classList.remove("d-none");
|
||||||
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 = new bootstrap.Modal(document.getElementById('2faModal'))
|
const twoStepModal = new bootstrap.Modal(document.getElementById('2faModal'))
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@
|
||||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
|
||||||
|
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -146,7 +146,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
|
||||||
<script defer src="/assets/js/signup.js?v=63"></script>
|
<script defer src="/assets/js/signup.js?v=63"></script>
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
|
<link href="https://fonts.googleapis.com/css?family=Open+Sans:400,600&display=swap" rel="stylesheet">
|
||||||
|
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@
|
||||||
<input type="submit" value="{% if p.stickied %}Un-sticky{% else %}Pin{% endif %}">
|
<input type="submit" value="{% if p.stickied %}Un-sticky{% else %}Pin{% endif %}">
|
||||||
</form>
|
</form>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if v.admin_level > 1 and v.id==p.author_id %}
|
{% if v.admin_level > 0 and v.id==p.author_id %}
|
||||||
<form action="/distinguish/{{p.id}}" method="post">
|
<form action="/distinguish/{{p.id}}" method="post">
|
||||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||||
<input type="submit" value="{% if p.distinguish_level %}Un-distinguish{% else %}Distinguish{% endif %}">
|
<input type="submit" value="{% if p.distinguish_level %}Un-distinguish{% else %}Distinguish{% endif %}">
|
||||||
|
|
|
@ -23,11 +23,11 @@
|
||||||
{% block stylesheets %}
|
{% block stylesheets %}
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<style>:root{--primary:#{{v.themecolor}}}</style>
|
<style>:root{--primary:#{{v.themecolor}}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132"><link rel="stylesheet" href="/assets/css/{{v.theme}}.css?v=124">
|
||||||
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=124">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/css/agendaposter.css?v=124">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
<style>:root{--primary:#{{'DEFAULT_COLOR' | app_config}}</style>
|
||||||
<link rel="stylesheet" href="/assets/css/main.css?v=131">
|
<link rel="stylesheet" href="/assets/css/main.css?v=132">
|
||||||
<link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
<link rel="stylesheet" href="/assets/css/{{'DEFAULT_THEME' | app_config}}.css?v=124">
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -173,7 +173,7 @@
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.1/dist/js/bootstrap.bundle.min.js"></script>
|
||||||
<script defer src="https://cdn.jsdelivr.net/npm/marked@3.0.8/lib/marked.min.js"></script>
|
<script defer src="https://cdn.jsdelivr.net/npm/marked@3.0.8/lib/marked.min.js"></script>
|
||||||
|
|
||||||
<script defer src="/assets/js/submit.js?v=72"></script>
|
<script defer src="/assets/js/submit.js?v=72"></script>
|
||||||
|
|
|
@ -35,7 +35,6 @@
|
||||||
|
|
||||||
{% if v %}
|
{% if v %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
|
||||||
const TRANSFER_TAX = {% if v.patron or u.patron %}0{% else %}0.03{% endif %};
|
const TRANSFER_TAX = {% if v.patron or u.patron %}0{% else %}0.03{% endif %};
|
||||||
|
|
||||||
function updateTax(mobile=false) {
|
function updateTax(mobile=false) {
|
||||||
|
@ -67,14 +66,12 @@ window.onload = function() {
|
||||||
|
|
||||||
setTimeout(_ => t.disabled = false, 2000);
|
setTimeout(_ => t.disabled = false, 2000);
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if u.song %}
|
{% if u.song %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
var audio = new Audio('/songs/{{u.id}}');
|
var audio = new Audio('/songs/{{u.id}}');
|
||||||
audio.loop=true;
|
audio.loop=true;
|
||||||
|
|
||||||
|
@ -96,15 +93,11 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
window.addEventListener( 'load', function() {
|
|
||||||
audio.play();
|
audio.play();
|
||||||
document.getElementById('userpage').addEventListener('click', () => {
|
document.getElementById('userpage').addEventListener('click', () => {
|
||||||
if (audio.paused) audio.play();
|
if (audio.paused) audio.play();
|
||||||
}, {once : true});
|
}, {once : true});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block fixedMobileBarJS %}
|
{% block fixedMobileBarJS %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
var prevScrollpos = window.pageYOffset;
|
var prevScrollpos = window.pageYOffset;
|
||||||
window.onscroll = function () {
|
window.onscroll = function () {
|
||||||
var currentScrollPos = window.pageYOffset;
|
var currentScrollPos = window.pageYOffset;
|
||||||
|
@ -24,8 +24,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
prevScrollpos = currentScrollPos;
|
prevScrollpos = currentScrollPos;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block fixedMobileBarJS %}
|
{% block fixedMobileBarJS %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
var prevScrollpos = window.pageYOffset;
|
var prevScrollpos = window.pageYOffset;
|
||||||
window.onscroll = function () {
|
window.onscroll = function () {
|
||||||
var currentScrollPos = window.pageYOffset;
|
var currentScrollPos = window.pageYOffset;
|
||||||
|
@ -24,8 +24,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
prevScrollpos = currentScrollPos;
|
prevScrollpos = currentScrollPos;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
{% block fixedMobileBarJS %}
|
{% block fixedMobileBarJS %}
|
||||||
<script>
|
<script>
|
||||||
window.onload = function() {
|
window.addEventListener("load",function(event) {
|
||||||
var prevScrollpos = window.pageYOffset;
|
var prevScrollpos = window.pageYOffset;
|
||||||
window.onscroll = function () {
|
window.onscroll = function () {
|
||||||
var currentScrollPos = window.pageYOffset;
|
var currentScrollPos = window.pageYOffset;
|
||||||
|
@ -24,8 +24,7 @@ window.onload = function() {
|
||||||
}
|
}
|
||||||
prevScrollpos = currentScrollPos;
|
prevScrollpos = currentScrollPos;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue