forked from MarseyWorld/MarseyWorld
Merge branch 'frost' of https://github.com/Aevann1/rDrama into frost
commit
36a4c7d7f4
|
@ -6060,7 +6060,6 @@ g {
|
|||
.fa-paw-simple:before{content:"\f701"}
|
||||
.fa-bat:before{content:"\f6b5"}
|
||||
.fa-star-of-david:before{content:"\f69a"}
|
||||
.fa-kiss-wink-heart:before{content:"\f598"}
|
||||
.fa-hat-cowboy:before{content:"\f8c0"}
|
||||
.fa-cloud-rainbow:before{content:"\f73e"}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ marseyaward_body_regex = re.compile(">[^<\s+]|[^>\s+]<", flags=re.A)
|
|||
|
||||
marseyaward_title_regex = re.compile("( *<img[^>]+>)+", flags=re.A)
|
||||
|
||||
marsey_regex = re.compile("[a-z0-9]{1,30}", flags=re.A)
|
||||
marsey_regex = re.compile("marsey[a-z0-9]{1,24}", flags=re.A)
|
||||
|
||||
hat_regex = re.compile("[a-zA-Z0-9\-() ,_]{1,50}", flags=re.A)
|
||||
|
||||
|
|
|
@ -13,12 +13,16 @@ from files.helpers.lottery import *
|
|||
@app.get("/casino")
|
||||
@auth_required
|
||||
def casino(v):
|
||||
if v.rehab: return {"error": "You are under Rehab award effect!"}
|
||||
|
||||
participants = get_users_participating_in_lottery()
|
||||
return render_template("casino.html", v=v, participants=participants)
|
||||
|
||||
@app.get("/casino/<game>")
|
||||
@auth_required
|
||||
def casino_game_page(v, game):
|
||||
if v.rehab: return {"error": "You are under Rehab award effect!"}
|
||||
|
||||
return render_template(
|
||||
f"casino/{game}_screen.html",
|
||||
v=v,
|
||||
|
@ -30,6 +34,8 @@ def casino_game_page(v, game):
|
|||
@limiter.limit("3/second;30/minute;600/hour;12000/day")
|
||||
@auth_required
|
||||
def pull_slots(v):
|
||||
if v.rehab: return {"error": "You are under Rehab award effect!"}
|
||||
|
||||
try:
|
||||
wager = int(request.values.get("wager"))
|
||||
except:
|
||||
|
@ -55,6 +61,8 @@ def pull_slots(v):
|
|||
@limiter.limit("3/second;30/minute;600/hour;12000/day")
|
||||
@auth_required
|
||||
def get_player_blackjack_status(v):
|
||||
if v.rehab: return {"error": "You are under Rehab award effect!"}
|
||||
|
||||
game, _, safe_state = get_active_game(v)
|
||||
|
||||
if game:
|
||||
|
@ -67,6 +75,8 @@ def get_player_blackjack_status(v):
|
|||
@limiter.limit("3/second;30/minute;600/hour;12000/day")
|
||||
@auth_required
|
||||
def player_took_blackjack_action(v):
|
||||
if v.rehab: return {"error": "You are under Rehab award effect!"}
|
||||
|
||||
try:
|
||||
action = request.values.get("action")
|
||||
except:
|
||||
|
|
|
@ -454,27 +454,39 @@ def submit_marseys(v):
|
|||
return render_template("submit_marseys.html", v=v, marseys=marseys)
|
||||
|
||||
|
||||
@app.post("/submit/marsey")
|
||||
@app.post("/submit/marseys")
|
||||
@auth_required
|
||||
def submit_marsey(v):
|
||||
if v.admin_level > 2:
|
||||
marseys = g.db.query(Marsey).filter(Marsey.submitter_id != None).all()
|
||||
else:
|
||||
marseys = g.db.query(Marsey).filter(Marsey.submitter_id == v.id).all()
|
||||
|
||||
for marsey in marseys:
|
||||
marsey.author = g.db.query(User.username).filter_by(id=marsey.author_id).one()[0]
|
||||
marsey.submitter = g.db.query(User.username).filter_by(id=marsey.submitter_id).one()[0]
|
||||
|
||||
def error(error):
|
||||
return render_template("submit_marseys.html", v=v, marseys=marseys, error=error)
|
||||
|
||||
if request.headers.get("cf-ipcountry") == "T1":
|
||||
return {"error":"Image uploads are not allowed through TOR."}
|
||||
return error("Image uploads are not allowed through TOR.")
|
||||
|
||||
file = request.files["image"]
|
||||
if not file or not file.content_type.startswith('image/'):
|
||||
return {"error": "You need to submit an image!"}
|
||||
return error("You need to submit an image!")
|
||||
|
||||
name = request.values.get('name').lower()
|
||||
if not marsey_regex.fullmatch(name):
|
||||
return {"error": "Invalid name!"}
|
||||
return error("Invalid name!")
|
||||
|
||||
existing = g.db.query(Marsey.name).filter_by(name=name).one_or_none()
|
||||
if existing:
|
||||
return {"error": "A marsey with this name already exists!"}
|
||||
return error("A marsey with this name already exists!")
|
||||
|
||||
tags = request.values.get('tags').lower()
|
||||
if not tags_regex.fullmatch(tags):
|
||||
return {"error": "Invalid tags!"}
|
||||
return error("Invalid tags!")
|
||||
|
||||
author = request.values.get('author')
|
||||
author = get_user(author)
|
||||
|
@ -486,19 +498,22 @@ def submit_marsey(v):
|
|||
marsey = Marsey(name=name, author_id=author.id, tags=tags, count=0, submitter_id=v.id)
|
||||
g.db.add(marsey)
|
||||
|
||||
return redirect('/submit/marseys')
|
||||
return render_template("submit_marseys.html", v=v, marseys=marseys, msg=f"'{name}' submitted successfully!")
|
||||
|
||||
|
||||
@app.post("/admin/approve/marsey/<name>")
|
||||
@admin_level_required(3)
|
||||
def approve_marsey(v, name):
|
||||
if CARP_ID and v.id != CARP_ID: abort(403)
|
||||
if CARP_ID and v.id != CARP_ID:
|
||||
return {"error": "Only Carp can approve marseys!"}
|
||||
|
||||
marsey = g.db.query(Marsey).filter_by(name=name).one_or_none()
|
||||
if not marsey: abort(404)
|
||||
if not marsey:
|
||||
return {"error": f"This marsey '{name}' doesn't exist!"}
|
||||
|
||||
tags = request.values.get('tags')
|
||||
if not tags: abort(400)
|
||||
if not tags:
|
||||
return {"error": "You need to include tags!"}
|
||||
|
||||
marsey.tags = tags
|
||||
g.db.add(marsey)
|
||||
|
@ -528,12 +543,14 @@ def approve_marsey(v, name):
|
|||
@app.post("/admin/reject/marsey/<name>")
|
||||
@admin_level_required(3)
|
||||
def reject_marsey(v, name):
|
||||
if CARP_ID and v.id != CARP_ID: abort(403)
|
||||
if CARP_ID and v.id != CARP_ID:
|
||||
return {"error": "Only Carp can approve marseys!"}
|
||||
|
||||
marsey = g.db.query(Marsey).filter_by(name=name).one_or_none()
|
||||
if not marsey: abort(404)
|
||||
if not marsey:
|
||||
return {"error": f"This marsey '{name}' doesn't exist!"}
|
||||
|
||||
msg = f'@{v.username} has rejected a marsey you submitted: `{marsey.name}`'
|
||||
msg = f"@{v.username} has rejected a marsey you submitted: '{marsey.name}'"
|
||||
send_repeatable_notification(marsey.submitter_id, msg)
|
||||
|
||||
g.db.delete(marsey)
|
||||
|
|
|
@ -975,6 +975,7 @@ def u_username(username, v=None):
|
|||
else: view = ViewerRelationship(viewer_id=v.id, user_id=u.id)
|
||||
|
||||
g.db.add(view)
|
||||
g.db.commit()
|
||||
|
||||
|
||||
if u.is_private and (not v or (v.id != u.id and v.admin_level < 2 and not v.eye)):
|
||||
|
|
|
@ -197,7 +197,7 @@
|
|||
<span id="typing-indicator"></span>
|
||||
<span id="loading-indicator" class="d-none"></span>
|
||||
</div>
|
||||
<i class="btn btn-secondary mr-2 fas fa-kiss-wink-heart" style="padding-top:0.65rem" onclick="loadEmojis('input-text')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-placement="bottom" title="Add Emoji"></i>
|
||||
<i class="btn btn-secondary mr-2 fas fa-smile-beam" style="padding-top:0.65rem" onclick="loadEmojis('input-text')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-placement="bottom" title="Add Emoji"></i>
|
||||
<textarea onclick="scroll_chat()" id="input-text" minlength="1" maxlength="{% if SITE == 'rdrama.net' %}200{% else %}1000{% endif %}" style="font-size:16px!important" class="form-control" placeholder="Message" autocomplete="off" autofocus rows="1"></textarea>
|
||||
<button id="chatsend" onclick="send()" class="btn btn-primary ml-3" type="submit" onclick="disable(this)">Send</button>
|
||||
</div>
|
||||
|
|
|
@ -278,7 +278,7 @@
|
|||
|
||||
<small class="btn btn-secondary format m-0" aria-hidden="true" onclick="commentForm('comment-edit-body-{{c.id}}');getGif()" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF"><span class="font-weight-bolder text-uppercase">GIF</span></small>
|
||||
|
||||
<small class="btn btn-secondary format m-0" aria-hidden="true" onclick="loadEmojis('comment-edit-body-{{c.id}}')" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-kiss-wink-heart"></i></small>
|
||||
<small class="btn btn-secondary format m-0" aria-hidden="true" onclick="loadEmojis('comment-edit-body-{{c.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></small>
|
||||
|
||||
|
||||
<label class="btn btn-secondary format m-0" for="file-edit-reply-{{c.id}}">
|
||||
|
@ -532,7 +532,7 @@
|
|||
</label>
|
||||
|
||||
<label class="btn btn-secondary format m-0" for="gif-reply-btn-{{c.fullname}}" onclick="loadEmojis('reply-form-body-{{c.fullname}}')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji">
|
||||
<i id="emoji-reply-btn-{{c.fullname}}" class="fas fa-kiss-wink-heart"></i>
|
||||
<i id="emoji-reply-btn-{{c.fullname}}" class="fas fa-smile-beam"></i>
|
||||
</label>
|
||||
|
||||
<label class="btn btn-secondary format m-0" for="file-upload-reply-{{c.fullname}}">
|
||||
|
@ -579,7 +579,7 @@
|
|||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<textarea required autocomplete="off" minlength="1" maxlength="10000" name="body" form="reply-to-c_{{c.id}}" data-id="{{c.id}}" class="comment-box form-control rounded" id="reply-form-body-{{c.id}}" aria-label="With textarea" rows="3" data-preview="message-reply-{{c.id}}" oninput="markdown(this)"></textarea>
|
||||
<div class="comment-format" id="comment-format-bar-{{c.id}}">
|
||||
<div onclick="loadEmojis('reply-form-body-{{c.id}}')" class="btn btn-secondary m-0 mt-3 mr-1" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-kiss-wink-heart"></i></div>
|
||||
<div onclick="loadEmojis('reply-form-body-{{c.id}}')" class="btn btn-secondary m-0 mt-3 mr-1" aria-hidden="true" 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></div>
|
||||
|
||||
{% if c.sentto == 2 %}
|
||||
<label class="btn btn-secondary m-0 mt-3" for="file-upload">
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<textarea autocomplete="off" maxlength="10000" id="input-message" form="contactform" name="message" class="form-control" required></textarea>
|
||||
<label class="btn btn-secondary format m-0 mt-3" onclick="loadEmojis('input-message')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji">
|
||||
<i class="fas fa-kiss-wink-heart"></i>
|
||||
<i class="fas fa-smile-beam"></i>
|
||||
</label>
|
||||
<label class="btn btn-secondary m-0 mt-3" for="file-upload">
|
||||
<div id="filename"><i class="fas fa-file"></i></div>
|
||||
|
|
|
@ -14,8 +14,14 @@
|
|||
),
|
||||
(
|
||||
'Submit Marseys',
|
||||
'For original Marseys or other emojis.',
|
||||
'For original Marseys.',
|
||||
'fa-cat', '#ffa500',
|
||||
'/submit/marseys',
|
||||
),
|
||||
(
|
||||
'Submit Other Emojis',
|
||||
'For non-Marsey Emojis.',
|
||||
'fa-smile-beam', '#ffa500',
|
||||
'/post/16583',
|
||||
),
|
||||
(
|
||||
|
|
|
@ -490,7 +490,7 @@
|
|||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input maxlength=100 {% if v.flairchanged %}disabled{% endif %} autocomplete="off" id="customtitlebody" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if v.customtitleplain %}{{v.customtitleplain}}{% endif %}">
|
||||
<div class="d-flex mt-2">
|
||||
<a class="format" role="button"><i class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('customtitlebody')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></a>
|
||||
<a class="format" role="button"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('customtitlebody')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></a>
|
||||
|
||||
<small>Limit of 100 characters</small>
|
||||
<input {% if v.flairchanged %}disabled{% endif %} autocomplete="off" class="btn btn-primary ml-auto" id="titleSave" type="submit" onclick="disable(this)" value="Change Flair">
|
||||
|
@ -620,7 +620,7 @@
|
|||
|
||||
<pre style="padding-top:0.7rem;line-height:1" class="btn btn-secondary format d-inline-block m-0 font-weight-bolder text-uppercase" onclick="commentForm('bio-text');getGif()" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</pre>
|
||||
|
||||
<pre style="padding-top:0.7rem" class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('bio-text')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
<pre style="padding-top:0.7rem" class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('bio-text')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
|
||||
<label class="btn btn-secondary format d-inline-block m-0">
|
||||
<div id="filename-show"><i class="fas fa-file"></i></div>
|
||||
|
@ -694,7 +694,7 @@
|
|||
|
||||
<pre style="padding-top:0.7rem;line-height:1" class="btn btn-secondary format d-inline-block m-0 font-weight-bolder text-uppercase" onclick="commentForm('sig-text');getGif()" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</pre>
|
||||
|
||||
<pre style="padding-top:0.7rem" class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('sig-text')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
<pre style="padding-top:0.7rem" class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('sig-text')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
</div>
|
||||
<pre></pre>
|
||||
<div class="d-flex">
|
||||
|
|
|
@ -810,7 +810,7 @@
|
|||
<a class="format btn btn-secondary" role="button"><i class="fas fa-italic" aria-hidden="true" onclick="makeItalics('post-edit-box-{{p.id}}')" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Italicize"></i></a>
|
||||
<a class="format btn btn-secondary" role="button"><i class="fas fa-quote-right" aria-hidden="true" onclick="makeQuote('post-edit-box-{{p.id}}')" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Quote"></i></a>
|
||||
<a class="format btn btn-secondary" role="button"><span class="font-weight-bolder text-uppercase" onclick="commentForm('post-edit-box-{{p.id}}');getGif()" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</span></a>
|
||||
<div onclick="loadEmojis('post-edit-box-{{p.id}}')" class="format btn btn-secondary" role="button" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-kiss-wink-heart"></i></div>
|
||||
<div onclick="loadEmojis('post-edit-box-{{p.id}}')" class="format btn btn-secondary" role="button" aria-hidden="true" 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></div>
|
||||
|
||||
<label class="format btn btn-secondary m-0 ml-1 {% if v %}d-inline-block{% else %}d-none{% endif %}" for="file-upload-edit-{{p.id}}">
|
||||
<div id="filename-show-edit-{{p.id}}"><i class="fas fa-file"></i></div>
|
||||
|
@ -999,7 +999,7 @@
|
|||
<span id="gif-reply-btn-{{p.fullname}}" class="font-weight-bolder text-uppercase" onclick="commentForm('reply-form-body-{{p.fullname}}');getGif()" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</span>
|
||||
</label>
|
||||
|
||||
<div onclick="loadEmojis('reply-form-body-{{p.fullname}}')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn-{{p.fullname}}" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-kiss-wink-heart"></i></div>
|
||||
<div onclick="loadEmojis('reply-form-body-{{p.fullname}}')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn-{{p.fullname}}" aria-hidden="true" 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></div>
|
||||
|
||||
<label class="format btn btn-secondary m-0 ml-1 {% if v %}d-inline-block{% else %}d-none{% endif %}" for="file-upload-reply-{{p.fullname}}">
|
||||
<div id="filename-show-reply-{{p.fullname}}"><i class="fas fa-file"></i></div>
|
||||
|
|
|
@ -104,7 +104,7 @@
|
|||
|
||||
<input autocomplete="off" class="form-control allow-emojis" id="post-title" aria-describedby="titleHelpRegister" type="text" name="title" placeholder="Required" value="{{title}}" minlength="1" maxlength="500" required oninput="checkForRequired();savetext()">
|
||||
|
||||
<div onclick="loadEmojis('post-title')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn-2" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-kiss-wink-heart"></i></div>
|
||||
<div onclick="loadEmojis('post-title')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn-2" aria-hidden="true" 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></div>
|
||||
|
||||
<div id="urlblock">
|
||||
<label for="URL" class="mt-3">URL</label>
|
||||
|
@ -151,7 +151,7 @@
|
|||
|
||||
<small class="btn btn-secondary format d-inline-block m-0"><span class="font-weight-bolder text-uppercase" aria-hidden="true" onclick="getGif();commentForm('post-text')" data-bs-toggle="modal" data-bs-target="#gifModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add GIF">GIF</span></small>
|
||||
|
||||
<div onclick="loadEmojis('post-text')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"><i class="fas fa-kiss-wink-heart"></i></div>
|
||||
<div onclick="loadEmojis('post-text')" class="btn btn-secondary format d-inline-block m-0" id="emoji-reply-btn" aria-hidden="true" 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></div>
|
||||
|
||||
<label class="format btn btn-secondary m-0 ml-1 {% if v %}d-inline-block{% else %}d-none{% endif %}" for="file-upload-submit">
|
||||
<div id="filename-show-submit"><i class="fas fa-file"></i></div>
|
||||
|
|
|
@ -2,9 +2,10 @@
|
|||
|
||||
{% block title %}
|
||||
<title>Submit Marseys</title>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block pagetype %}message{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<style>
|
||||
input:not(.btn) {
|
||||
|
@ -12,12 +13,35 @@
|
|||
}
|
||||
</style>
|
||||
|
||||
{% if error %}
|
||||
<div class="alert alert-danger alert-dismissible fade show mb-3 mt-4" role="alert">
|
||||
<i class="fas fa-exclamation-circle my-auto"></i>
|
||||
<span>
|
||||
{{error}}
|
||||
</span>
|
||||
<button class="close" data-bs-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true"><i class="far fa-times"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if msg %}
|
||||
<div class="alert alert-success alert-dismissible fade show my-3" role="alert">
|
||||
<i class="fas fa-check-circle my-auto" aria-hidden="true"></i>
|
||||
<span>
|
||||
{{msg}}
|
||||
</span>
|
||||
<button class="close" data-bs-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true"><i class="far fa-times"></i></span>
|
||||
</button>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="mx-4">
|
||||
<h2 class="mt-5">Submit Marsey</h2>
|
||||
<div class="settings-section rounded">
|
||||
<div class="d-lg-flex">
|
||||
<div class="body w-lg-100">
|
||||
<form action="/submit/marsey" method="post" enctype="multipart/form-data">
|
||||
<form action="/submit/marseys" method="post" enctype="multipart/form-data">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
|
||||
<div id="image-upload-block">
|
||||
|
@ -31,7 +55,7 @@
|
|||
</div>
|
||||
|
||||
<label class="mt-3" for="name">Name</label>
|
||||
<input autocomplete="off" type="text" id="name" class="form-control" name="name" maxlength="30" pattern='[a-z0-9]{1,30}' required>
|
||||
<input autocomplete="off" type="text" id="name" class="form-control" name="name" maxlength="30" pattern='marsey[a-z0-9]{1,24}' required>
|
||||
|
||||
<label class="mt-3" for="author">Author</label>
|
||||
<input autocomplete="off" type="text" id="author" class="form-control" name="author" value="{{v.username.lower()}}" maxlength="30" pattern='[a-z0-9_\-]{3,30}' required>
|
||||
|
@ -118,7 +142,7 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<h2 class="mt-5 mx-4">Current Applications</h2>
|
||||
<h2 class="mt-5 mx-4">Pending Carp Approval</h2>
|
||||
<div class="row mt-5 mx-4">
|
||||
<div class="col px-0">
|
||||
<div class="settings">
|
||||
|
|
|
@ -233,7 +233,7 @@
|
|||
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-quote-right" aria-hidden="true" onclick="makeQuote('input-message')" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Quote"></pre>
|
||||
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('input-message')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('input-message')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
|
||||
<input type="submit" onclick="disable(this);remove_dialog()" value="Submit" class="btn btn-primary">
|
||||
</form>
|
||||
|
@ -272,7 +272,7 @@
|
|||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input maxlength=100 autocomplete="off" id="customtitlebody" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if u.customtitleplain %}{{u.customtitleplain}}{% endif %}">
|
||||
<div class="d-flex mt-2">
|
||||
<a class="format" role="button"><i class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('customtitlebody')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></a>
|
||||
<a class="format" role="button"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('customtitlebody')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></a>
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input autocomplete="off" type="checkbox" class="custom-control-input" id="locked" name="locked" {% if u.flairchanged %}checked{% endif %}>
|
||||
|
@ -407,7 +407,7 @@
|
|||
<a rel="nofollow noopener noreferrer" href="{% if u.highres %}{{u.highres}}{% else %}{{u.profile_url}}{% endif %}" class="profile-pic-65-wrapper">
|
||||
<img onclick="expandDesktopImage('{% if u.highres %}{{u.highres}}{% else %}{{u.profile_url}}{% endif %}')" loading="lazy" src="{{u.profile_url}}" class="profile-pic-65 bg-white mb-2">
|
||||
{% if u.hat_active -%}
|
||||
<img onclick="expandDesktopImage('{% if u.highres %}{{u.highres}}{% else %}{{u.profile_url}}{% endif %}')" class="profile-pic-65-hat hat" loading="lazy" src="{{u.hat_active}}?h=4" data-bs-toggle="tooltip" data-bs-placement="bottom" title="{{u.hat_tooltip(v)}}">
|
||||
<img onclick="expandDesktopImage('{% if u.highres %}{{u.highres}}{% else %}{{u.profile_url}}{% endif %}')" class="profile-pic-65-hat hat" loading="lazy" src="{{u.hat_active}}?h=4">
|
||||
{%- endif %}
|
||||
</a>
|
||||
</div>
|
||||
|
@ -583,7 +583,7 @@
|
|||
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-quote-right" aria-hidden="true" onclick="makeQuote('input-message-mobile')" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Quote"></pre>
|
||||
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('input-message-mobile')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('input-message-mobile')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></pre>
|
||||
|
||||
<input type="submit" onclick="disable(this);remove_dialog()" value="Submit" class="btn btn-primary">
|
||||
</form>
|
||||
|
@ -620,7 +620,7 @@
|
|||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input maxlength=100 autocomplete="off" id="customtitlebody-mobile" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if u.customtitleplain %}{{u.customtitleplain}}{% endif %}">
|
||||
<div class="d-flex mt-2">
|
||||
<a class="format" role="button"><i class="btn btn-secondary format d-inline-block m-0 fas fa-kiss-wink-heart" onclick="loadEmojis('customtitlebody-mobile')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></a>
|
||||
<a class="format" role="button"><i class="btn btn-secondary format d-inline-block m-0 fas fa-smile-beam" onclick="loadEmojis('customtitlebody-mobile')" aria-hidden="true" data-bs-toggle="modal" data-bs-target="#emojiModal" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Add Emoji"></i></a>
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input autocomplete="off" type="checkbox" class="custom-control-input" id="locked-mobile" name="locked" {% if u.flairchanged %}checked{% endif %}>
|
||||
|
|
Loading…
Reference in New Issue