forked from rDrama/rDrama
fix
parent
45690b282e
commit
05a92a9547
|
@ -30,564 +30,25 @@
|
|||
<meta name="twitter:url" content="{{u.url | full_link}}" >
|
||||
{% endblock %}
|
||||
|
||||
{% block desktopUserBanner %}
|
||||
|
||||
<div class="row hidden md:block">
|
||||
<div class="col px-0">
|
||||
<div class="jumbotron jumbotron-fluid jumbotron-guild hidden md:block" style="background-image: url({{u.banner_url}})">
|
||||
<div class="jumbotron-overlay"></div>
|
||||
<div class="w-100 my-3">
|
||||
<div class="container-fluid nobackground">
|
||||
<div class="d-mflex text-center text-md-left">
|
||||
{% subHeader %}
|
||||
<div class="relative max-w-screen-2xl mx-auto px-4 py-4 grid grid-cols-12 rounded-t">
|
||||
<div class="absolute top-0 left-0 w-full h-full bg-gradient-to-t from-gray-300 to-gray-200 rounded-t sub-header-shadow"></div>
|
||||
<div class="relative col-span-full flex items-center">
|
||||
<div>
|
||||
<a rel="nofollow noopener noreferrer" href="{% if u.highres %}{{u.highres}}{% else %}{{u.profile_url}}{% endif %}"><img loading="lazy" src="{{u.profile_url}}" class="profile-pic profile-pic-100 mb-5"></a>
|
||||
</div>
|
||||
<div id="profilestuff" class="ml-3 w-100">
|
||||
{% if u.is_suspended %}
|
||||
<h5 style="color:#ff66ac;">BANNED USER{% if u.ban_reason %}:
|
||||
{% if u.ban_reason_link %}<a href="{{ u.ban_reason_link }}"><i class="fas fa-link"></i>{% endif %}
|
||||
{{ u.ban_reason }}
|
||||
{% if u.ban_reason_link %}</a>{% endif %}
|
||||
{% endif %}</h5>
|
||||
{% if u.unban_utc %}<h5 style="color:#ff66ac;">{{u.unban_string}}</h5>{% endif %}
|
||||
{% endif %}
|
||||
<div class="flex align-items-center mt-1 mb-2">
|
||||
<h1 class="font-weight-bolder h3 mb-0" style="color: #{{u.namecolor}}"><span {% if u.patron %}class="patron" style="background-color:#{{u.namecolor}};"{% endif %}>{{u.username}}</span></h1>
|
||||
{% if u.username != u.original_username %}
|
||||
<span>
|
||||
<i class="fad fa-user-tag text-info align-middle ml-2" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Original Username: @{{u.original_username}}"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if u.verified %}<span><i class="fas fa-badge-check align-middle ml-1" style="color:{% if u.verifiedcolor %}#{{u.verifiedcolor}}{% else %}#1DA1F2{% endif %}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{u.verified}}"></i></span>{% endif %}
|
||||
{% if u.admin_level > 1 or (u.admin_level == 1 and not(v and v.admin_level > 1)) %}
|
||||
<span>
|
||||
<i class="fas fa-broom text-admin align-middle ml-2" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Admin"></i>
|
||||
</span>
|
||||
{% elif u.admin_level == 1 and v and v.admin_level > 1 %}
|
||||
<span>
|
||||
<i class="fas fa-broom align-middle ml-2" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Meme Admin"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if v and v.has_follower(u) %}
|
||||
<span class="followsyou badge badge-secondary text-small align-middle ml-2">Follows you</span>
|
||||
{% endif %}
|
||||
<div class="profile-actions align-middle hidden ml-2">
|
||||
{% if v and v.id != u.id %}
|
||||
<div class="dropdown show hidden">
|
||||
<a href="javascript:void(0)" role="button" data-bs-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">
|
||||
<i class="far fa-ellipsis-h text-lg align-middle text-gray-600"></i>
|
||||
</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% if v and v.id == u.id %}
|
||||
<div class="dropdown show hidden">
|
||||
<a href="javascript:void(0)" role="button" id="dropdownProfileActionsLink" data-bs-toggle="dropdown"
|
||||
aria-haspopup="true" aria-expanded="false">
|
||||
<i class="far fa-ellipsis-h text-lg align-middle text-gray-600"></i>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-menu dropdown-menu-right border-0 shadow" aria-labelledby="dropdownMoreLink">
|
||||
<a class="dropdown-item" href="/settings/profile#bio"><i class="fas fa-edit"></i>Edit profile</a>
|
||||
<a class="dropdown-item" href="/settings/security"><i class="fas fa-cog"></i>Account details</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if u.customtitle %}<p class="font-weight-bolder" style="color: #{{u.titlecolor}}">{% if u.quadrant %}<img loading="lazy" height="20" src="/assets/images/quadrants/{{u.quadrant}}.webp?v=1">{% endif %}{{u.customtitle | safe}}</p>
|
||||
{% else %}<pre></pre>
|
||||
{% endif %}
|
||||
|
||||
<div class="font-weight-bolder mb-2"><a class="mr-1" href="/@{{u.username}}/upvoters">Simps</a> | <a class="mx-1" href="/@{{u.username}}/downvoters">Haters</a> | <a class="mx-1" href="/@{{u.username}}/upvoting">Simps for</a> | <a class="ml-1" href="/@{{u.username}}/downvoting">Hates</a></div>
|
||||
|
||||
<div class="font-weight-bolder">
|
||||
<span id="profile-coins-amount">{{u.coins}}</span>
|
||||
<img class="ml-1 mb-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{'COINS_NAME' | app_config}}" height="20" src="/assets/images/emojis/marseycoin.webp?v=1">
|
||||
|
||||
{% if u.procoins %}
|
||||
<span>{{u.procoins}}</span>
|
||||
<img class="ml-1 mb-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Marseybux" height="20" src="/assets/images/emojis/marseybux.webp?v=1">
|
||||
{% endif %}
|
||||
|
||||
{% if u.stored_subscriber_count >=1 and not u.is_nofollow %}<a href="/@{{u.username}}/followers">{{u.stored_subscriber_count}} follower{{'s' if u.stored_subscriber_count != 1 else ''}}</a> {% endif %}
|
||||
joined <span data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{u.created_datetime}}">{{u.created_date}}</span>
|
||||
</div>
|
||||
{% if u.basedcount %}<p class="text-muted">Based Count: {{u.basedcount}}</p>{% endif %}
|
||||
|
||||
{% if u.bio_html %}
|
||||
<pre></pre>
|
||||
{% if request.host == 'rdrama.net' and u.id == 2050 %}
|
||||
<div class="text-muted font-weight-bolder">{{u.friends_html | safe}}</div>
|
||||
{% else %}
|
||||
<div class="text-muted font-weight-bolder">{{u.bio_html | safe}}</div>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
<p class="text-muted">No bio...</p>
|
||||
{% endif %}
|
||||
|
||||
{% if u.friends_html %}
|
||||
<p class="text-muted font-weight-bold">Friends:</p>
|
||||
{% if request.host == 'rdrama.net' and u.id == 2050 %}
|
||||
{{u.bio_html | safe}}
|
||||
{% else %}
|
||||
{{u.friends_html | safe}}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
{% if u.enemies_html %}
|
||||
<p class="text-muted font-weight-bold">Enemies:</p>
|
||||
{{u.enemies_html | safe}}
|
||||
{% endif %}
|
||||
|
||||
{% if u.received_awards %}
|
||||
<div class="text-white rounded p-2 mb-3" style="background-color: rgba(50, 50, 50, 0.6); width: 30%;">
|
||||
<p class="text-uppercase my-0" style="font-weight: bold; font-size: 12px;">Awards received</p>
|
||||
{% for a in u.received_awards %}
|
||||
<span class="d-inline-block mx-1">
|
||||
<i class="{{a['icon']}} {{a['color']}} fa-fw" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{a['title']}} Awards received"></i>
|
||||
x{{a['count']}}
|
||||
</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="flex justify-content-between align-items-center">
|
||||
<div>
|
||||
{% if v and v.id != u.id %}
|
||||
{% if u.id != 995 %}<a id="button-unsub" class="btn btn-secondary {% if not is_following %}hidden{% endif %}" href="javascript:void(0)" onclick="post_toast2('/unfollow/{{u.username}}','button-unsub','button-sub')">Unfollow</a>{% endif %}
|
||||
<a id="button-sub" class="btn btn-primary {% if is_following or u.is_nofollow or u.is_blocked %}hidden{% endif %}" href="javascript:void(0)" onclick="post_toast2('/follow/{{u.username}}','button-unsub','button-sub')">Follow</a>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable', 'message')">Message</a>
|
||||
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/suicide')">Get them help</a>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable', 'coin-transfer')">Gift {{'COINS_NAME' | app_config}}</a>
|
||||
|
||||
{% if v.admin_level > 2 %}
|
||||
<a id="admin" class="{% if u.admin_level > 1 %}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin','unadmin')">Make admin</a>
|
||||
<a id="unadmin" class="{% if u.admin_level < 2 %}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin','unadmin')">Remove admin</a>
|
||||
|
||||
<a id="memeadmin" class="{% if u.admin_level == 1%}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_meme_admin','memeadmin','unmemeadmin')">Make meme admin</a>
|
||||
<a id="unmemeadmin" class="{% if u.admin_level != 1 %}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_meme_admin','memeadmin','unmemeadmin')">Remove meme admin</a>
|
||||
|
||||
{% if u.admin_level > 1 %}
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/revert_actions')">Revert admin actions</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<form class="hidden profile-toggleable" id="message" action="/@{{u.username}}/message" method="post">
|
||||
<pre></pre>
|
||||
<textarea id="input-message" form="message" name="message" rows="3" maxlength="1000" class="form-control b2" required></textarea>
|
||||
<pre></pre>
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-bold" aria-hidden="true" onclick="makeBold('input-message')" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Bold"></pre>
|
||||
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-italic" aria-hidden="true" onclick="makeItalics('input-message')" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Italicize"></pre>
|
||||
|
||||
<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" data-bs-original-title="Quote"></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" data-bs-original-title="Add Emoji"></pre>
|
||||
|
||||
<input type="submit" value="Submit" class="btn btn-primary mt-3">
|
||||
</form>
|
||||
|
||||
<div class="hidden mt-3 profile-toggleable" id="coin-transfer">
|
||||
<input autocomplete="off" id="coins-transfer-amount" class="form-control" name="amount" type="number" oninput="updateTax()">
|
||||
<div>{{u.username}} will receive <span id="coins-transfer-taxed">0</span> {{'COINS_NAME' | app_config}}</div>
|
||||
<button class="btn btn-primary mt-3" onclick="transferCoins()">Gift</button>
|
||||
</div>
|
||||
|
||||
{% elif v and v.id == u.id %}
|
||||
<a href="/settings/profile" class="btn btn-secondary">Edit profile</a>
|
||||
<a href="/views" class="btn btn-secondary">Profile views</a>
|
||||
{% endif %}
|
||||
|
||||
{% if u.song and v and v.mute and not u.unmutable %}
|
||||
<a id="pause1" class="btn btn-secondary" href="javascript:void(0)" onclick="pause()">Pause anthem</a>
|
||||
<a id="play1" class="btn btn-secondary hidden" href="javascript:void(0)" onclick="play()">Play anthem</a>
|
||||
{% endif %}
|
||||
|
||||
{% if v and v.id != u.id and v.admin_level > 1 %}
|
||||
<br><br>
|
||||
<div class="body d-lg-flex border-bottom">
|
||||
<div class="w-lg-100">
|
||||
|
||||
<form action="/admin/title_change/{{u.id}}" method="post">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input id="customtitlebody" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if u.customtitleplain %}{{u.customtitleplain}}{% endif %}">
|
||||
<div class="flex mt-2">
|
||||
<a class="format" href="javascript:void(0)"><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" data-bs-original-title="Add Emoji"></i></a>
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="locked" name="locked" {% if u.flairchanged %}checked{% endif %}>
|
||||
<label class="custom-control-label" for="locked">locked</label>
|
||||
</div>
|
||||
|
||||
<input class="btn btn-primary ml-auto" type="submit" value="Change Flair">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<pre></pre>
|
||||
{% if u.is_suspended %}
|
||||
<form action="/unban_user/{{u.id}}/" method="post" action="">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input type="hidden" name="redir" value="true">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" id="alts-1-desktop" class="custom-control-input" name="alts" value="1">
|
||||
<label class="custom-control-label" for="alts-1-desktop">Include alts</label>
|
||||
</div>
|
||||
<input type="submit" class="btn btn-success" value="Unban user">
|
||||
</form>
|
||||
{% else %}
|
||||
<form action="/ban_user/{{u.id}}" method="post" action="">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input type="hidden" name="redir" value="true">
|
||||
<input style="font-size:11px;" type="text" class="form-control" name="reason" placeholder="Ban Reason" onchange="document.getElementById('user-ban-submit').disabled=false">
|
||||
<input style="font-size:11px;" type="number" step="any" class="form-control" name="days" placeholder="Days (blank = permanent)">
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" id="alts-2-desktop" class="custom-control-input" name="alts" value="1">
|
||||
<label class="custom-control-label" for="alts-2-desktop">Include alts</label>
|
||||
</div>
|
||||
<input id="user-ban-submit" type="submit" class="btn btn-danger" value="Ban user" disabled>
|
||||
</form>
|
||||
{% endif %}
|
||||
<pre></pre>
|
||||
|
||||
<form id="agendaposter1" class="{% if u.agendaposter %}hidden{% endif %}" action="/agendaposter/{{u.id}}" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="number" step="any" name="days" class="form-control" placeholder="Days (0 or blank = permanent)" >
|
||||
<input type="submit" class="btn btn-danger" value="Lock Agendaposter Theme" >
|
||||
</form>
|
||||
<a id="unagendaposter" class="{% if not u.agendaposter %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/agendaposter/{{u.id}}','agendaposter1','unagendaposter')">Disable Agendaposter Theme</a>
|
||||
|
||||
<pre></pre>
|
||||
|
||||
<a id="shadowban" class="{% if u.shadowbanned %}hidden{% endif %} btn btn-danger" href="javascript:void(0)" onclick="post_toast2('/shadowban/{{u.id}}','shadowban','unshadowban')">Shadowban</a>
|
||||
|
||||
<a id="unshadowban" class="{% if not u.shadowbanned %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/unshadowban/{{u.id}}','shadowban','unshadowban')">Unshadowban</a>
|
||||
|
||||
|
||||
<pre></pre>
|
||||
|
||||
<a id="verify" class="{% if u.verified %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/admin/verify/{{u.id}}','verify','unverify')">Verify</a>
|
||||
<a id="unverify" class="{% if not u.verified %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/admin/unverify/{{u.id}}','verify','unverify')">Unverify</a>
|
||||
|
||||
<pre></pre>
|
||||
<form action="/admin/unnuke_user" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="hidden" name="user" value="{{u.username}}">
|
||||
<input type="submit" class="btn btn-success" value="Approve User's Content">
|
||||
</form>
|
||||
<pre></pre>
|
||||
<form action="/admin/nuke_user" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="hidden" name="user" value="{{u.username}}">
|
||||
<input type="submit" class="btn btn-danger" value="Remove User's Content">
|
||||
</form>
|
||||
|
||||
<button id="grant2" class="{% if u.paid_dues %}hidden{% endif %} btn btn-success" onclick="post_toast2('/@{{u.username}}/club_allow','grant2','bar2')">Grant club access</button>
|
||||
<button id="bar2" class="{% if u.club_banned %}hidden{% endif %} btn btn-danger" onclick="post_toast2('/@{{u.username}}/club_ban','grant2','bar2')">Bar from club</button>
|
||||
{% endif %}
|
||||
<pre></pre>
|
||||
<p>User ID: {{u.id}}</p>
|
||||
<p>Coins spent: {{u.coins_spent}}</p>
|
||||
{% if v and v.admin_level > 1 %}
|
||||
<p>True score: {{u.truecoins}}</p>
|
||||
{% if u.is_private %}
|
||||
<p>User has private mode enabled.</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if v and (v.admin_level > 1 or v.alt) %}
|
||||
<span>Alts:</span>
|
||||
<ul>
|
||||
{% for account in u.alts_unique %}
|
||||
<li><a href="{{account.url}}">@{{account.username}}</a>{% if account._is_manual %} [m]{% endif %}</li>
|
||||
{% endfor %}
|
||||
<h1 class="font-bold text-xl font-heading leading-normal mb-0">
|
||||
Thread
|
||||
</h1>
|
||||
<ul class="flex space-x-2 text-xs text-gray-500 leading-normal mb-0">
|
||||
<li>
|
||||
<a href="/" class="text-gray-500 hover:underline">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<i class="fas fa-arrow-alt-right text-shadow fa-fw fa-sm"></i>
|
||||
</li>
|
||||
<li>
|
||||
<a href="{{p.permalink}}" class="text-gray-700 hover:underline">{{p.author.username}}'s post</a>
|
||||
<li>
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if u.is_suspended %}
|
||||
<p>Banned by: <a href="{{u.banned_by.url}}">@{{u.banned_by.username}}</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
{% for b in u.badges %}
|
||||
{% if b.url %}
|
||||
<a rel="nofollow noopener noreferrer" href="{{b.url}}"><img width="60" loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{b.name}} - {{b.text}}"></a>
|
||||
{% else %}
|
||||
<img width="60" loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{b.name}} - {{b.text}}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block mobileUserBanner %}
|
||||
<div class="container-fluid text-center bg-white md:hidden" style="margin-top:-4px;border-radius:0!important;">
|
||||
<div class="row">
|
||||
<div class="col px-0">
|
||||
<a rel="nofollow noopener noreferrer" href="{{u.banner_url}}" {% if not v or v.newtabexternal %}target="_blank"{% endif %}>
|
||||
<img class="wtf" height="100" width="100%" loading="lazy" src="{{u.banner_url}}">
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row border-bottom">
|
||||
<div class="col">
|
||||
<div style="margin-top: -34px;">
|
||||
<a rel="nofollow noopener noreferrer" href="{% if u.highres %}{{u.highres}}{% else %}{{u.profile_url}}{% endif %}"><img loading="lazy" src="{{u.profile_url}}" class="profile-pic-65 bg-white border-2 border-white mb-2"></a>
|
||||
</div>
|
||||
<div class="mt-n3 py-3">
|
||||
{% if u.is_suspended %}
|
||||
<h5 style="color:#ff66ac;">BANNED USER{% if u.ban_reason %}: {{u.ban_reason}}{% endif %}</h5>
|
||||
{% if u.unban_utc %}<h5 style="color:#ff66ac;">{{u.unban_string}}</h5>{% endif %}
|
||||
{% endif %}
|
||||
{% if u.verified %}<span><i class="fas fa-badge-check align-middle ml-1" style="color:{% if u.verifiedcolor %}#{{u.verifiedcolor}}{% else %}#1DA1F2{% endif %}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{u.verified}}"></i></span> {% endif %}
|
||||
<a class="text-black"><h1 class="h5 d-inline-block" style="color: #{{u.namecolor}}"><span {% if u.patron %}class="patron" style="background-color:#{{u.namecolor}};"{% endif %}>{{u.username}}</span></h1></a>
|
||||
{% if u.username != u.original_username %}
|
||||
<span>
|
||||
<i class="fad fa-user-tag text-info align-middle ml-2" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Original Username: @{{u.original_username}}"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if u.admin_level > 1 or (u.admin_level == 1 and not(v and v.admin_level > 1)) %}
|
||||
<span>
|
||||
<i class="fas fa-broom text-admin align-middle ml-2" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Admin"></i>
|
||||
</span>
|
||||
{% elif u.admin_level == 1 and v and v.admin_level > 1 %}
|
||||
<span>
|
||||
<i class="fas fa-broom align-middle ml-2" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Meme Admin"></i>
|
||||
</span>
|
||||
{% endif %}
|
||||
{% if v and v.has_follower(u) and not v.is_nofollow %}
|
||||
<span class="followsyou badge badge-secondary text-small align-middle mx-1">Follows you</span>
|
||||
{% endif %}
|
||||
{% if u.customtitle %}<p style="color: #{{u.titlecolor}}">{% if u.quadrant %}<img loading="lazy" height="20" src="/assets/images/quadrants/{{u.quadrant}}.webp?v=1">{% endif %}{{u.customtitle | safe}}</p>
|
||||
{% else %}
|
||||
<pre></pre>
|
||||
{% endif %}
|
||||
|
||||
<div class="font-weight-bolder mb-2"><a class="mr-1" href="/@{{u.username}}/upvoters">Simps</a> | <a class="mx-1" href="/@{{u.username}}/downvoters">Haters</a> | <a class="mx-1" href="/@{{u.username}}/upvoting">Simps for</a> | <a class="ml-1" href="/@{{u.username}}/downvoting">Hates</a></div>
|
||||
|
||||
<div class="font-weight-normal">
|
||||
<span id="profile-coins-amount-mobile" class="font-weight-bold">{{u.coins}}</span>
|
||||
<img class="ml-1 mb-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{'COINS_NAME' | app_config}}" height="15" src="/assets/images/emojis/marseycoin.webp?v=1">
|
||||
|
||||
{% if u.procoins %}
|
||||
<span class="font-weight-bold">{{u.procoins}}</span>
|
||||
<img class="ml-1 mb-1" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Marseybux" height="15" src="/assets/images/emojis/marseybux.webp?v=1">
|
||||
{% endif %}
|
||||
|
||||
{% if u.stored_subscriber_count >=1 and not u.is_nofollow %}<a href="/@{{u.username}}/followers" class="font-weight-bold">{{u.stored_subscriber_count}} follower{{'s' if u.stored_subscriber_count != 1 else ''}}</a> {% endif %}
|
||||
{% if u.basedcount %}
|
||||
<br>Based count: {{u.basedcount}}
|
||||
{% endif %}
|
||||
|
||||
<br>joined <span data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{u.created_datetime}}" class="font-weight-bold">{{u.created_date}}</span>
|
||||
</div>
|
||||
{% if u.bio_html %}
|
||||
<p class="text-muted text-break">{{u.bio_html | safe}}</p>
|
||||
{% endif %}
|
||||
|
||||
{% if u.friends_html %}
|
||||
<p class="text-muted font-weight-bold mt-3">Friends:</p>
|
||||
{{u.friends_html | safe}}
|
||||
{% endif %}
|
||||
|
||||
{% if u.enemies_html %}
|
||||
<p class="text-muted font-weight-bold mt-3">Enemies:</p>
|
||||
{{u.enemies_html | safe}}
|
||||
{% endif %}
|
||||
|
||||
{% if u.received_awards %}
|
||||
<div class="text-white rounded p-2 my-3 text-center" style="background-color: rgba(50, 50, 50, 0.6);">
|
||||
<p class="text-uppercase my-0" style="font-weight: bold; font-size: 12px;">Awards received</p>
|
||||
{% for a in u.received_awards %}
|
||||
<span class="d-inline-block mx-1">
|
||||
<i class="{{a['icon']}} {{a['color']}} fa-fw" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{a['title']}} Awards received"></i>
|
||||
x{{a['count']}}
|
||||
</span>
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="mb-3">
|
||||
{% for b in u.badges %}
|
||||
{% if b.url %}
|
||||
<a rel="nofollow noopener noreferrer" href="{{b.url}}"><img width="32" loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{b.name}} - {{b.text}}"></a>
|
||||
{% else %}
|
||||
<img width="32" loading="lazy" src="{{b.path}}" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="{{b.name}} - {{b.text}}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% if v and v.id == u.id %}
|
||||
<a href="/settings/profile" class="btn btn-secondary ">Edit profile</a>
|
||||
<a href="/views" class="btn btn-secondary">Profile views</a>
|
||||
{% endif %}
|
||||
|
||||
{% if u.song and v and v.mute and not u.unmutable %}
|
||||
<a id="pause2" class="btn btn-secondary" href="javascript:void(0)" onclick="pause()">Pause anthem</a>
|
||||
<a id="play2" class="btn btn-secondary hidden" href="javascript:void(0)" onclick="play()">Play anthem</a>
|
||||
{% endif %}
|
||||
|
||||
{% if v and v.id != u.id %}
|
||||
{% if u.id != 995 %}<a id="button-unsub2" class="btn btn-secondary {% if not is_following %}hidden{% endif %}" href="javascript:void(0)" onclick="post_toast2('/unfollow/{{u.username}}','button-unsub2','button-sub2')">Unfollow</a>{% endif %}
|
||||
<a id="button-sub2" class="btn btn-primary {% if is_following or u.is_nofollow or u.is_blocked %}hidden{% endif %}" href="javascript:void(0)" onclick="post_toast2('/follow/{{u.username}}','button-unsub2','button-sub2')">Follow</a>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable-mobile', 'message-mobile')">Message</a>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/suicide')">Get them help</a>
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="toggleElement('profile-toggleable-mobile', 'coin-transfer-mobile')">Gift {{'COINS_NAME' | app_config}}</a>
|
||||
|
||||
{% if v.admin_level > 2 %}
|
||||
<a id="admin2" class="{% if u.admin_level > 1 %}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_admin','admin2','unadmin2')">Make admin</a>
|
||||
<a id="unadmin2" class="{% if u.admin_level < 2 %}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_admin','admin2','unadmin2')">Remove admin</a>
|
||||
|
||||
<a id="memeadmin2" class="{% if u.admin_level == 1%}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/make_meme_admin','memeadmin2','unmemeadmin2')">Make meme admin</a>
|
||||
<a id="unmemeadmin2" class="{% if u.admin_level != 1 %}hidden{% endif %} btn btn-primary" href="javascript:void(0)" onclick="post_toast2('/@{{u.username}}/remove_meme_admin','memeadmin2','unmemeadmin2')">Remove meme admin</a>
|
||||
|
||||
{% if u.admin_level > 1 %}
|
||||
<a class="btn btn-primary" href="javascript:void(0)" onclick="post_toast('/@{{u.username}}/revert_actions')">Revert admin actions</a>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
||||
<form class="hidden profile-toggleable-mobile" id='message-mobile' action="/@{{u.username}}/message" method="post">
|
||||
<pre></pre>
|
||||
<textarea id="input-message-mobile" form="message-mobile" name="message" rows="3" maxlength="1000" class="form-control" required></textarea>
|
||||
<pre></pre>
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-bold" aria-hidden="true" onclick="makeBold('input-message-mobile')" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Bold"></pre>
|
||||
|
||||
<pre class="btn btn-secondary format d-inline-block m-0 fas fa-italic" aria-hidden="true" onclick="makeItalics('input-message-mobile')" data-bs-toggle="tooltip" data-bs-placement="bottom" data-bs-original-title="Italicize"></pre>
|
||||
|
||||
<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" data-bs-original-title="Quote"></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" data-bs-original-title="Add Emoji"></pre>
|
||||
|
||||
<input type="submit" value="Submit" class="btn btn-primary mt-3">
|
||||
</form>
|
||||
|
||||
<div class="hidden mt-3 profile-toggleable-mobile" id="coin-transfer-mobile">
|
||||
<input autocomplete="off" id="coins-transfer-amount-mobile" class="form-control" name="amount" type="number" oninput="updateTax(true)">
|
||||
<div>{{u.username}} will receive <span id="coins-transfer-taxed-mobile">0</span> {{'COINS_NAME' | app_config}}</div>
|
||||
<button class="btn btn-primary mt-3" onclick="transferCoins(true)">Gift</button>
|
||||
</div>
|
||||
{% if v.admin_level > 1 %}
|
||||
|
||||
<button id="grant" class="{% if u.paid_dues %}hidden{% endif %} btn btn-success" onclick="post_toast2('/@{{u.username}}/club_allow','grant','bar')">Grant club access</button>
|
||||
<button id="bar" class="{% if u.club_banned %}hidden{% endif %} btn btn-danger" onclick="post_toast2('/@{{u.username}}/club_ban','grant','bar')">Bar from club</button>
|
||||
|
||||
<br><br>
|
||||
<div class="body d-lg-flex border-bottom">
|
||||
|
||||
<div class="w-lg-100">
|
||||
|
||||
<form action="/admin/title_change/{{u.id}}" method="post">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input id="customtitlebody-mobile" type="text" name="title" class="form-control" placeholder='Enter a flair here' value="{% if u.customtitle %}{{u.customtitle}}{% endif %}">
|
||||
<div class="flex mt-2">
|
||||
<a class="format" href="javascript:void(0)"><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" data-bs-original-title="Add Emoji"></i></a>
|
||||
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" class="custom-control-input" id="locked-mobile" name="locked" {% if u.flairchanged %}checked{% endif %}>
|
||||
<label class="custom-control-label" for="locked-mobile">locked</label>
|
||||
</div>
|
||||
|
||||
<input class="btn btn-primary ml-auto" type="submit" value="Change Flair">
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<pre></pre>
|
||||
{% if u.is_suspended %}
|
||||
<form action="/unban_user/{{u.id}}" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="hidden" name="redir" value="true">
|
||||
<br>
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" id="alts-1-mobile" class="custom-control-input" name="alts" value="1">
|
||||
<label class="custom-control-label" for="alts-1-mobile">Include alts</label>
|
||||
</div>
|
||||
<br >
|
||||
<input type="submit" class="btn btn-success" value="Unban user">
|
||||
</form>
|
||||
{% else %}
|
||||
<form action="/ban_user/{{u.id}}/" method="post">
|
||||
<input type="hidden" name="formkey" value="{{v.formkey}}">
|
||||
<input type="hidden" name="redir" value="true">
|
||||
<input style="font-size:11px;" type="text" class="form-control" name="reason" placeholder="Ban Reason" onchange="document.getElementById('user-ban-submit2').disabled=false">
|
||||
<input style="font-size:11px;" type="number" step="any" class="form-control" name="days" placeholder="Days (blank = permanent)">
|
||||
<br >
|
||||
<div class="custom-control custom-checkbox">
|
||||
<input type="checkbox" id="alts-2-mobile" class="custom-control-input" name="alts" value="1">
|
||||
<label class="custom-control-label" for="alts-2-mobile">Include alts</label>
|
||||
</div>
|
||||
<br >
|
||||
<input id="user-ban-submit2" type="submit" class="btn btn-danger" value="Ban user" disabled>
|
||||
</form>
|
||||
{% endif %}
|
||||
<pre></pre>
|
||||
|
||||
<form id="agendaposter2" class="{% if u.agendaposter %}hidden{% endif %}" action="/agendaposter/{{u.id}}" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="number" step="any" name="days" class="form-control" placeholder="Days (0 or blank = permanent)" >
|
||||
<input type="submit" class="btn btn-danger" value="Lock Agendaposter Theme" >
|
||||
</form>
|
||||
<a id="unagendaposter2" class="{% if not u.agendaposter %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/agendaposter/{{u.id}}','agendaposter2','unagendaposter2')">Disable Agendaposter Theme</a>
|
||||
|
||||
<pre></pre>
|
||||
|
||||
<a id="shadowban2" class="{% if u.shadowbanned %}hidden{% endif %} btn btn-danger" href="javascript:void(0)" onclick="post_toast2('/shadowban/{{u.id}}','shadowban2','unshadowban2')">Shadowban</a>
|
||||
|
||||
<a id="unshadowban2" class="{% if not u.shadowbanned %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/unshadowban/{{u.id}}','shadowban2','unshadowban2')">Unshadowban</a>
|
||||
|
||||
|
||||
<pre></pre>
|
||||
|
||||
<a id="verify2" class="{% if u.verified %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/admin/verify/{{u.id}}','verify2','unverify2')">Verify</a>
|
||||
<a id="unverify2" class="{% if not u.verified %}hidden{% endif %} btn btn-success" href="javascript:void(0)" onclick="post_toast2('/admin/unverify/{{u.id}}','verify2','unverify2')">Unverify</a>
|
||||
|
||||
<pre></pre>
|
||||
<form action="/admin/unnuke_user" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="hidden" name="user" value="{{u.username}}">
|
||||
<input type="submit" class="btn btn-success" value="Approve User's Content">
|
||||
</form>
|
||||
<pre></pre>
|
||||
<form action="/admin/nuke_user" method="post">
|
||||
<input type="hidden" name="formkey", value="{{v.formkey}}">
|
||||
<input type="hidden" name="user" value="{{u.username}}">
|
||||
<input type="submit" class="btn btn-danger" value="Remove User's Content">
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<pre></pre>
|
||||
<p>User ID: {{u.id}}</p>
|
||||
<p>Coins spent: {{u.coins_spent}}</p>
|
||||
{% if v and v.admin_level > 1 %}
|
||||
<p>True score: {{u.truecoins}}</p>
|
||||
{% if u.is_private %}
|
||||
<p>User has private mode enabled.</p>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if v and (v.admin_level > 1 or v.alt) %}
|
||||
<span>Alts:</span>
|
||||
<ul>
|
||||
{% for account in u.alts_unique %}
|
||||
<li><a href="{{account.url}}">@{{account.username}}</a>{% if account._is_manual %} [m]{% endif %}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% if u.is_suspended %}
|
||||
<p>Banned by: <a href="{{u.banned_by.url}}">@{{u.banned_by.username}}</a></p>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -595,6 +56,8 @@
|
|||
|
||||
{% block content %}
|
||||
|
||||
<div class="col-span-full xl:col-span-9">
|
||||
|
||||
<div id="profilecontent" class="row no-gutters">
|
||||
<div class="col">
|
||||
<div class="flex-row box-shadow-bottom flex justify-content-center justify-content-md-between align-items-center">
|
||||
|
@ -678,6 +141,8 @@
|
|||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block pagenav %}
|
||||
|
|
Loading…
Reference in New Issue