dashboard-core/theme/dbd-soft-ui/views/admin.ejs
Jonny_Bro (Nikita) 0e22250f71 where?
2023-06-26 17:41:52 +05:00

653 lines
No EOL
29 KiB
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<%- include('partials/preloader.ejs', {now: 'admin'}) %>
<style>
#backButton {
display: inline-block;
background-color: #FF9800;
width: 50px;
height: 50px;
text-align: center;
border-radius: 4px;
position: fixed;
bottom: 30px;
right: 30px;
transition: background-color .1s;
z-index: 1000;
}
#backButton::after {
content: "\f077";
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
font-size: 2em;
line-height: 50px;
color: #fff;
}
#backButton:hover {
cursor: pointer;
background-color: #333;
}
#backButton:active {
background-color: #555;
}
</style>
<%
const icons = [
"address-book",
"address-card",
"adjust",
"air-freshener",
"align-center",
"align-left",
"align-right",
"ambulance",
"angle-double-down",
"angle-double-left",
"angle-double-right",
"angle-double-up",
"angle-down",
"angle-left",
"angle-right",
"angle-up",
"archive",
"arrow-alt-circle-down",
"arrow-alt-circle-left",
"arrow-alt-circle-right",
"arrow-alt-circle-up",
"arrow-down",
"arrow-left",
"arrow-right",
"arrow-up",
"arrows-alt",
"arrows-alt-h",
"arrows-alt-v",
"assistive-listening-systems",
"asterisk",
"at",
"atlas",
"award",
"backspace",
"backward",
"bahai",
"ban",
"band-aid",
"bars",
"battery-empty",
"battery-full",
"battery-half",
"battery-quarter",
"battery-three-quarters",
"bed",
"beer",
"bell",
"bell-slash",
"birthday-cake",
"bolt",
"bomb",
"bone",
"book",
"book-dead",
"book-medical",
"book-open",
"bookmark",
"border-all",
"border-none",
"border-style",
"bowling-ball",
"box",
"box-open",
"briefcase",
"broadcast-tower",
"bug",
"building",
"bullhorn",
"calculator",
"calendar",
"calendar-alt",
"calendar-check",
"calendar-day",
"calendar-minus",
"calendar-plus",
"calendar-times",
"calendar-week",
"camera",
"caret-down",
"caret-left",
"caret-right",
"caret-up",
"certificate",
"chair",
"chalkboard",
"charging-station",
"chart-bar",
"chart-line",
"chart-pie",
"check",
"check-circle",
"check-square",
"circle",
"circle-notch",
"clipboard",
"clock",
"clone",
"cloud",
"cloud-download-alt",
"cloud-meatball",
"cloud-moon",
"cloud-moon-rain",
"cloud-rain",
"cloud-showers-heavy",
"cloud-sun",
"cloud-sun-rain",
"cloud-upload-alt",
"code",
"code-branch",
"cog",
"cogs",
"columns",
"comment",
"comment-alt",
"comment-dollar",
"comment-dots",
"comment-medical",
"comment-slash",
"comments",
"comments-dollar",
"compact-disc",
"compass",
"compress-alt",
"cookie",
"cookie-bite",
"copy",
"credit-card",
"crop",
"crop-alt",
"cut",
"database",
"desktop",
"edit",
"envelope",
"envelope-open",
"eraser",
"ethernet",
"exchange-alt",
"exclamation",
"exclamation-circle",
"exclamation-triangle",
"expand",
"expand-alt",
"external-link-alt",
"eye",
"eye-dropper",
"eye-slash",
"fan",
"file",
"file-alt",
"file-archive",
"file-audio",
"file-code",
"file-download",
"fill",
"fill-drip",
"filter",
"fingerprint",
"fire",
"fire-alt",
"folder",
"folder-open",
"forward",
"gamepad",
"ghost",
"gift",
"gifts",
"globe",
"globe-africa",
"globe-asia",
"globe-europe",
"headphones",
"headphones-alt",
"headset",
"heart",
"heart-broken",
"heartbeat",
"history",
"home",
"info",
"keyboard",
"layer-group",
"list",
"lock",
"lock-open",
"map-marker",
"map-marker-alt",
"microphone",
"microphone-alt",
"microphone-alt-slash",
"minus",
"mobile",
"mobile-alt",
"moon",
"mouse",
"mouse-pointer",
"music",
"network-wired",
"neuter",
"paperclip",
"paste",
"pause",
"paw",
"pen",
"pencil-alt",
"percent",
"percentage",
"phone",
"phone-alt",
"phone-slash",
"phone-volume",
"photo-video",
"power-off",
"question",
"question-circle",
"redo",
"redo-alt",
"reply",
"robot",
"rocket",
"rss",
"satellite-dish",
"save",
"search",
"server",
"shapes",
"share",
"share-alt",
"shield-alt",
"signal",
"skull",
"skull-crossbones",
"sliders-h",
"sort",
"spinner",
"times",
"times-circle",
"toggle-off",
"toggle-on",
"toolbox",
"tools",
"trash",
"trash-alt",
"tv",
"undo",
"undo-alt",
"unlink",
"unlock",
"unlock-alt",
"upload",
"user",
"user-alt",
"volume-down",
"volume-mute",
"volume-off",
"volume-up",
"wifi",
"wrench"
]
const otherIcons = [
"youtube",
"discord",
"node",
"apple",
"sellsy",
"app-store",
"cloudflare",
"dev",
"github-alt",
"gitlab",
"google",
"itunes-note",
"node-js",
"npm",
"spotify",
"usb",
"windows"
]
%>
<style>
.input-group .form-control:focus {
/* border: none; */
border-right-color: rgba(0, 0, 0, 0) !important;
border-left-color: rgba(0, 0, 0, 0) !important;
border-left-color: rgba(0, 0, 0, 0) !important;
border-right-color: rgba(0, 0, 0, 0) !important;
}
</style>
<%- themeConfig?.customHtml %>
</head>
<body class="g-sidenav-show bg-gray-100" id="scroll">
<%- include('partials/preload.ejs') %>
<script>
const maxUsed = <%- allFeedsUsed %>;
</script>
<%- include('partials/sidebar.ejs', {config: config, now:'admin'}) %>
<div class="main-content position-relative bg-gray-100 max-height-vh-100 h-100">
<!-- Navbar -->
<%- include('partials/navbar.ejs', {now:'admin'}) %>
<!-- End Navbar -->
<div class="container-fluid py-4" style="padding-bottom: 0px !important;">
<%
if(themeConfig?.admin?.pterodactyl?.enabled) { %>
<div class="row">
<div class="modal fade" id="modal-notification" tabindex="-1" role="dialog"
aria-labelledby="modal-notification" aria-hidden="true">
<div class="modal-dialog modal-danger modal-dialog-centered modal-" role="document">
<div class="modal-content">
<div class="modal-header">
<h6 class="modal-title" id="modal-title-notification">Your attention is required</h6>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<div class="py-3 text-center">
<i class="ni ni-bell-55 ni-3x"></i>
<h4 class="text-gradient text-danger mt-4">Warning</h4>
<p>The maximum amount of feeds have been created.</p>
<p>If you publish this feed, the oldest feed will be deleted!</p>
</div>
</div>
<div class="modal-footer"
style="display: flex; justify-content: center; align-items: center;">
<button type="button" class="btn btn-danger" id="mfeedSubmit">Publish</button>
<button type="button" class="btn btn-light text-black ml-auto" data-bs-dismiss="modal">
Nevermind
</button>
</div>
</div>
</div>
</div>
<div class="col-12">
<div class="card mb-4">
<div class="card-header pb-0">
<h6>Pterodactyl List</h6>
</div>
<div class="card-body px-0 pt-0 pb-2">
<div class="table-responsive p-0">
<table class="table align-items-center mb-0">
<thead>
<tr>
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">
Server
</th>
<th class="text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 ps-2">
Info
</th>
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">
Status
</th>
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7">
Controls
</th>
</tr>
</thead>
<tbody>
<%
sData.forEach(data => {
%>
<tr style="border-bottom: rgba(0,0,0,0); border-width: 1.3px 0px 0px 0px;">
<td>
<div class="d-flex px-2 py-1">
<div>
<img src="https://www.svgrepo.com/show/35777/server.svg"
class="avatar avatar-sm me-3 invert-img"
alt="user1">
</div>
<div class="d-flex flex-column justify-content-center">
<h6 class="mb-0 text-sm"><%- data.name %></h6>
<p class="text-xs text-secondary mb-0"><%- data.uuid %></p>
</div>
</div>
</td>
<td>
<p class="text-xs font-weight-bold mb-0"><%- data.description %></p>
<p class="text-xs text-secondary mb-0"><%- data.node %></p>
</td>
<td class="align-middle text-center text-sm">
<%
if(data.status === "running") { %>
<span class="badge badge-sm bg-gradient-success">Online</span>
<% } else if(data.status === "starting") { %>
<span class="badge badge-sm bg-gradient-warning">Starting</span>
<% } else if(data.status === "stopping") { %>
<span class="badge badge-sm bg-gradient-warning">Stopping</span>
<% } else { %>
<span class="badge badge-sm bg-gradient-danger">Offline</span>
<% } %>
</td>
<td class="align-middle text-center text-sm">
<%
if(data.status === "running" || data.status === "starting") { %>
<a href="#"
onclick="controlServer('<%- data.uuid %>', 'stop');"><span
class="badge badge-sm bg-gradient-warning">Stop</span></a>
<a href="#" onclick="controlServer('<%- data.uuid %>', 'restart');"><span
class="badge badge-sm bg-gradient-info">Restart</span></a>
<a href="#"
onclick="controlServer('<%- data.uuid %>', 'kill');"><span
class="badge badge-sm bg-gradient-danger">Kill</span></a>
<% } else if(data.status === "restarting") { %>
<a href="#"
onclick="controlServer('<%- data.uuid %>', 'stop');"><span
class="badge badge-sm bg-gradient-warning">Stop</span></a>
<a href="#"
onclick="controlServer('<%- data.uuid %>', 'kill');"><span
class="badge badge-sm bg-gradient-danger">Kill</span></a>
<% } else if(data.status === "stopping") { %>
<a href="#"
onclick="controlServer('<%- data.uuid %>', 'kill');"><span
class="badge badge-sm bg-gradient-danger">Kill</span></a>
<% } else { %>
<a href="#"
onclick="controlServer('<%- data.uuid %>', 'start');"><span
class="badge badge-sm bg-gradient-success">Start</span></a>
</a>
<% } %>
</td>
</tr>
<%
});
%>
<script>
function controlServer(id, action) {
window.location = `../control?action=${action}&uuid=${id}`;
}
</script>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<br>
<% } %>
<% if (themeConfig.admin?.logs?.enabled) { %>
<div class="card h-100">
<div class="card-header pb-0 p-3">
<h6 class="mb-0">Bot Logs</h6>
</div>
<div class="card-body p-3">
<h6 class="text-uppercase text-body text-xs font-weight-bolder">Current Logs</h6>
<form>
<div class="form-group">
<% if (ldata !== undefined) { %>
<textarea disabled readonly class="form-control" id="botLogsText" rows="12"><%= ldata.map(x => x.description).join("\n")%></textarea>
<% } else { %>
<textarea disabled readonly class="form-control" id="botLogsText" rows="12">No logs found.</textarea>
<% } %>
</div>
</form>
</div>
</div>
<br>
<% } %>
<div class="row">
<div class="col-12 col-xl-6" style="margin-bottom: 20px;">
<div class="card h-100">
<div class="card-header pb-0 p-3">
<h6 class="mb-0">Feed Builder</h6>
</div>
<div class="card-body p-3">
<h6 class="text-uppercase text-body text-xs font-weight-bolder">Feed Icon</h6>
<ul class="list-group">
<li class="list-group-item border-0 px-0">
<div class="form-check form-switch ps-0">
<div class="input-group">
<input class="form-control" list="iconList" id="iconSelect">
<span class="btn btn-outline-dark mb-0 feed-builder-icon" type="button"
style="border: 1px solid #d2d6da;">
<i id="invalidIcon" class="fas fa-exclamation-triangle"
style="color: red; font-size: 120%;"></i>
<i id="validIcon" class="fas fa-check"
style="color: greenyellow; font-size: 120%; display: none;"></i>
</span>
</div>
</div>
</li>
</ul>
<h6 class="text-uppercase text-body text-xs font-weight-bolder mt-4">Feed Description</h6>
<ul class="list-group">
<li class="list-group-item border-0 px-0">
<div class="form-check form-switch ps-0">
<div class="input-group">
<input class="form-control" type="text" maxlength="128" id="feedDescription"
placeholder="Feed Description">
<span class="btn btn-outline-dark mb-0 feed-builder-icon" type="button"
style="border: 1px solid #d2d6da;">
<i id="invalidDesc" class="fas fa-exclamation-triangle" style="color: red; font-size: 120%;"></i>
<i id="validDesc" class="fas fa-check"
style="color: greenyellow; font-size: 120%; display: none;"></i>
</span>
</div>
</div>
</li>
</ul>
<h6 class="text-uppercase text-body text-xs font-weight-bolder mt-4">Feed Colour</h6>
<ul class="list-group">
<li class="list-group-item border-0 px-0">
<div class="form-check form-switch ps-0">
<select class="form-control" id="colorSelect">
<option value="pink">Pink</option>
<option value="red">Red</option>
<option value="orange">Orange</option>
<option value="green">Green</option>
<option value="gray">Gray</option>
<option value="blue">Blue</option>
<option value="dark">Dark</option>
</select>
</div>
</li>
</ul>
<br>
<button id="feedSubmit" class="btn bg-gradient-primary mb-0" type="button">Submit</button>
</div>
</div>
</div>
<div class="col-12 col-xl-6" style="margin-bottom: 20px;">
<div class="card h-10" style="margin-bottom: 20px;">
<div class="card-header pb-0 p-3">
<h6 class="mb-0">Feed Preview</h6>
</div>
<div class="card-body p-3">
<div>
<div class="alert alert-primary text-white font-weight-bold" role="alert"
style="display: flex; margin-top: 20px;" id="previewFeedColor">
<div class="icon icon-shape icon-sm shadow border-radius-md bg-white text-center me-2 d-flex align-items-center justify-content-center gray-icon-bg"
style="margin: auto 0px;">
<i id="previewFeedIcon" class="fas fa-camera invert-img"
style="font-size: 80%; color: black"></i>
</div>
<span id="previewFeedDescription" class="tagnamecolor"
style="margin: auto 0px; overflow: hidden; text-overflow: ellipsis; color: white !important;">
<div id="target"></div>
</span>
<span class="tagnamecolor-date"
style="color:rgb(155, 148, 148); margin: auto 0px; font-size: 75%; flex: 1; text-align: right; white-space: nowrap;">
Preview
</span>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-lg-12 mb-lg-0 mb-4">
<div class="card z-index-2">
<div class="card-body p-3">
<h6 class="ms-2 mt-3 mb-0" style="margin-top: 0px !important">Current Feeds</h6>
<%- include('partials/feeds.ejs', {require, admin:true}) %>
<div style="white-space: nowrap; overflow: hidden;">
<datalist id="iconList">
<%
icons.forEach(async(icon) => { %>
<option value="<%- icon %>">
<% }); %>
<%
otherIcons.forEach(async(icon) => { %>
<option value="<%- icon %>">
<% }); %>
</datalist>
<script>
$(document).ready(function () {
$('.js-example-basic-single').select2();
});
</script>
<button type="button" class="btn btn-light text-black ml-auto"
onclick="$('#bigIconsList').fadeToggle();">Show Icons
</button>
<%- include('partials/iconsList.ejs', {icons,otherIcons}) %>
<a id="backButton" style="display: none;"></a>
</div>
</div>
</div>
</div>
<div style="padding: 17px 0px">
<%- include('partials/footer.ejs') %>
</div>
</div>
</div>
</main>
<script>var _0xe6b70 = _0x4d17; (function (_0x1a2dc5, _0x148537) { var _0x103ca3 = _0x4d17, _0xf225e4 = _0x1a2dc5(); while (!![]) { try { var _0x46963f = parseInt(_0x103ca3(0x229)) / 0x1 + parseInt(_0x103ca3(0x1ab)) / 0x2 * (parseInt(_0x103ca3(0x21b)) / 0x3) + parseInt(_0x103ca3(0x21c)) / 0x4 * (-parseInt(_0x103ca3(0x1be)) / 0x5) + parseInt(_0x103ca3(0x1d7)) / 0x6 * (parseInt(_0x103ca3(0x1eb)) / 0x7) + -parseInt(_0x103ca3(0x1fe)) / 0x8 * (parseInt(_0x103ca3(0x1ae)) / 0x9) + parseInt(_0x103ca3(0x1df)) / 0xa + -parseInt(_0x103ca3(0x208)) / 0xb * (-parseInt(_0x103ca3(0x1aa)) / 0xc); if (_0x46963f === _0x148537) break; else _0xf225e4['push'](_0xf225e4['shift']()); } catch (_0x35ec83) { _0xf225e4['push'](_0xf225e4['shift']()); } } }(_0x9d96, 0x1bf3f)); var _0x3166de = [_0xe6b70(0x210), _0xe6b70(0x202), _0xe6b70(0x1c3), _0xe6b70(0x1c5), 'sellsy', _0xe6b70(0x20d), _0xe6b70(0x1e1), _0xe6b70(0x22a), _0xe6b70(0x1a4), _0xe6b70(0x1d5), 'google', _0xe6b70(0x1d6) + 'e', _0xe6b70(0x1f5), _0xe6b70(0x20b), _0xe6b70(0x227), _0xe6b70(0x1e3), _0xe6b70(0x207), _0xe6b70(0x217), _0xe6b70(0x22b), _0xe6b70(0x201), 'orange', _0xe6b70(0x1c4), _0xe6b70(0x1d9), 'green', _0xe6b70(0x1f6), _0xe6b70(0x1ea), 'color', 'danger', _0xe6b70(0x1f3), _0xe6b70(0x1a7) + 'y', _0xe6b70(0x1ac), _0xe6b70(0x1fc), 'info', 'on', _0xe6b70(0x228) + 'ct', _0xe6b70(0x1ca) + 'ertychange' + _0xe6b70(0x205), _0xe6b70(0x215), _0xe6b70(0x1ba) + 't', _0xe6b70(0x1a9) + _0xe6b70(0x1c1), _0xe6b70(0x1d3) + 'e', '\x27]', _0xe6b70(0x1c7), _0xe6b70(0x214), 'length', _0xe6b70(0x20a), _0xe6b70(0x209) + 'on', 'show', _0xe6b70(0x1b2), _0xe6b70(0x1ad), _0xe6b70(0x1ed), _0xe6b70(0x1ec) + 't', 'includes', _0xe6b70(0x1b9), _0xe6b70(0x1e0) + _0xe6b70(0x1dd), _0xe6b70(0x1a6) + 'n', _0xe6b70(0x203) + 'tion\x20set', _0xe6b70(0x1c0) + 'sc', _0xe6b70(0x1f4), _0xe6b70(0x1ff) + _0xe6b70(0x221), 'querySelec' + _0xe6b70(0x1fd), '[value=\x22or' + 'ange\x22]', _0xe6b70(0x1f7) + _0xe6b70(0x1e5), _0xe6b70(0x1f9) + _0xe6b70(0x22f), _0xe6b70(0x1f9) + _0xe6b70(0x216), _0xe6b70(0x222) + _0xe6b70(0x1b3), _0xe6b70(0x1b4) + _0xe6b70(0x206), _0xe6b70(0x1e4) + _0xe6b70(0x1e2), _0xe6b70(0x1d1) + _0xe6b70(0x220), _0xe6b70(0x1f0) + _0xe6b70(0x1ee) + _0xe6b70(0x1cd) + '\x22]', _0xe6b70(0x204), _0xe6b70(0x1ce) + _0xe6b70(0x1dc), _0xe6b70(0x1f2), 'error', _0xe6b70(0x1a5) + _0xe6b70(0x218) + _0xe6b70(0x1c6) + _0xe6b70(0x1d0) + 'n\x20element?', _0xe6b70(0x21f) + _0xe6b70(0x21e) + _0xe6b70(0x1e6) + 'icon\x20eleme' + _0xe6b70(0x1de), 'colorSelec' + 't', _0xe6b70(0x21d) + _0xe6b70(0x1d4) + _0xe6b70(0x1c9) + _0xe6b70(0x1a8) + '?', 'iMidnight\x20' + _0xe6b70(0x21a) + _0xe6b70(0x225) + 'f\x20you\x20if\x20h' + 'e\x20saw\x20what' + _0xe6b70(0x224) + _0xe6b70(0x1d2) + _0xe6b70(0x1cb) + _0xe6b70(0x213), _0xe6b70(0x1e9), ':selected', _0xe6b70(0x1bf) + _0xe6b70(0x1f8) + _0xe6b70(0x200) + _0xe6b70(0x1b1) + '?', _0xe6b70(0x20f) + _0xe6b70(0x1bb), 'You\x20delete' + _0xe6b70(0x1d4) + _0xe6b70(0x20c) + _0xe6b70(0x211) + _0xe6b70(0x1af), _0xe6b70(0x21d) + 'd\x20the\x20feed' + '\x20descripti' + _0xe6b70(0x1fb), _0xe6b70(0x1b7) + 'escription' + _0xe6b70(0x223) + _0xe6b70(0x1e8), '', '\x20', 'It\x27s\x20empty' + '..\x20what\x27s\x20' + _0xe6b70(0x1bd), _0xe6b70(0x1cc) + 'go.', 'modal', _0xe6b70(0x1b8) + 'ification', _0xe6b70(0x22d), _0xe6b70(0x1cf), _0xe6b70(0x1fa) + 'it', 'class', '#previewFe' + _0xe6b70(0x219), _0xe6b70(0x1b6) + _0xe6b70(0x1b5), 'html', _0xe6b70(0x1b6) + _0xe6b70(0x22c) + _0xe6b70(0x1c8), _0xe6b70(0x1f1) + 'd1', _0xe6b70(0x1f1) + 'd2', _0xe6b70(0x1f1) + 'd3']; function _0x9d96() { var _0x407989 = ['[value=\x22bl', '\x20is\x20not\x20lo', '\x20you\x20just\x20', 'be\x20proud\x20o', 'feed=2', 'spotify', '#colorSele', '193712eeVaLn', 'dev', 'value', 'edDescript', 'location', '&descripti', 'ay\x22]', 'github-alt', 'Why\x20would\x20', 'descriptio', 'pinkprimar', 'lor\x20select', 'option[val', '5052MZJcik', '68rxwBdl', 'secondary', 'disabled', '3114INpHZK', 'tion?', 'on=delete&', '\x20available', '#validIcon', 'ue\x22]', '[value=\x22da', 'edIcon', '#previewFe', 'The\x20feed\x20d', '#modal-not', 'icon', '#iconSelec', 'ption', '/feed?acti', 'the\x20point?', '1120165MnTnyA', 'That\x27s\x20not', '#invalidDe', 'ue=\x27', 'ght-bold', 'node', 'pink', 'apple', '\x20the\x20ID\x20fr', 'find', 'ion', 'rom\x20the\x20co', 'input\x20prop', '\x20color\x20sel', 'Invalid\x20lo', 'escription', 'getElement', 'click', 'om\x20the\x20ico', '[type=\x22tex', 'did\x20to\x20the', 'toLowerCas', 'd\x20the\x20ID\x20f', 'gitlab', 'itunes-not', '6mtNTIi', 'alert\x20aler', 'gray', 'color=', '\x20text-whit', 'ById', 'iption', 'nt?', '890570MOrdhD', '#feedDescr', 'cloudflare', '=\x22128\x22]', 'usb', '[maxlength', 'nk\x22]', 'moved\x20the\x20', 'feed=3', 'ng\x20enough.', 'text', 'dark', '434504fRsRoI', '#feedSubmi', 'attr', 'er=\x22Feed\x20D', 'fab\x20fa-', '[placehold', '#deleteFee', '[list]', 'warning', '#validDesc', 'node-js', 'blue', '[value=\x22pi', '\x20even\x20a\x20co', '[value=\x22gr', '#mfeedSubm', 'on?', 'success', 'tor', '5240IdkzGj', '[value=\x22re', 'lor\x20that\x27s', 'red', 'discord', 'No\x20descrip', 'iconSelect', '\x20paste', 'rk\x22]', 'windows', '429yGyKqS', '#invalidIc', 'hide', 'npm', 'rom\x20the\x20fe', 'app-store', 'feed=1', 'feedDescri', 'youtube', 'ed\x20descrip', 'on=create&', 'ect.', '#iconList', 'val', 'een\x22]', 'change', 'you\x20remove', 'edColor', 'would\x20not\x20', '17991BrxXDQ', '4CUGrwd', 'You\x20delete', 'pletely\x20re', 'So\x20you\x20com', 't\x22]', 'd\x22]']; _0x9d96 = function () { return _0x407989; }; return _0x9d96(); } const _0xc6908b = [_0x3166de[0x0], _0x3166de[0x1], _0x3166de[0x2], _0x3166de[0x3], _0x3166de[0x4], _0x3166de[0x5], _0x3166de[0x6], _0x3166de[0x7], _0x3166de[0x8], _0x3166de[0x9], _0x3166de[0xa], _0x3166de[0xb], _0x3166de[0xc], _0x3166de[0xd], _0x3166de[0xe], _0x3166de[0xf], _0x3166de[0x10]]; let _0x3b4879 = ![]; $(_0x3166de[0x22])[_0x3166de[0x21]](_0x3166de[0x11], function () { const _0x2ff1bf = this[_0x3166de[0x12]]; if (_0x2ff1bf !== _0x3166de[0x13] && _0x2ff1bf !== _0x3166de[0x14] && _0x2ff1bf !== _0x3166de[0x15] && _0x2ff1bf !== _0x3166de[0x16] && _0x2ff1bf !== _0x3166de[0x17] && _0x2ff1bf !== _0x3166de[0x18] && _0x2ff1bf !== _0x3166de[0x19]) return; if (_0x2ff1bf === _0x3166de[0x13]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x1b]); if (_0x2ff1bf === _0x3166de[0x14]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x1c]); if (_0x2ff1bf === _0x3166de[0x15]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x1d]); if (_0x2ff1bf === _0x3166de[0x16]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x1e]); if (_0x2ff1bf === _0x3166de[0x17]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x1f]); if (_0x2ff1bf === _0x3166de[0x18]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x20]); if (_0x2ff1bf === _0x3166de[0x19]) return _0x35c100(_0x3166de[0x1a], _0x3166de[0x19]); }), $(_0x3166de[0x25])[_0x3166de[0x21]](_0x3166de[0x23], function () { var _0x444cd0 = _0xe6b70, _0x2a3ec3 = $(_0x3166de[0x25])[_0x3166de[0x24]](), _0x2ab58f = $(_0x3166de[0x2a])[_0x3166de[0x29]](_0x3166de[0x26] + _0x2a3ec3[_0x3166de[0x27]]() + _0x3166de[0x28]); _0x2ab58f != null && _0x2ab58f[_0x3166de[0x2b]] > 0x0 ? ($(_0x3166de[0x2d])[_0x3166de[0x2c]](), $(_0x3166de[0x2f])[_0x3166de[0x2e]](), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], ![]), _0xc6908b[_0x3166de[0x33]](_0x2a3ec3) ? _0x35c100(_0x3166de[0x34], _0x444cd0(0x1ef) + _0x2a3ec3) : _0x35c100(_0x3166de[0x34], 'fas\x20fa-' + _0x2a3ec3)) : ($(_0x3166de[0x2d])[_0x3166de[0x2e]](), $(_0x3166de[0x2f])[_0x3166de[0x2c]](), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![])); }), $(_0x3166de[0x35])[_0x3166de[0x21]](_0x3166de[0x23], function () { var _0x1000a3 = $(_0x3166de[0x35])[_0x3166de[0x24]](); _0x35c100(_0x3166de[0x36], _0x1000a3 || _0x3166de[0x37]), !_0x1000a3 || _0x1000a3[_0x3166de[0x2b]] < 0x3 ? ($(_0x3166de[0x38])[_0x3166de[0x2e]](), $(_0x3166de[0x39])[_0x3166de[0x2c]](), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![])) : ($(_0x3166de[0x38])[_0x3166de[0x2c]](), $(_0x3166de[0x39])[_0x3166de[0x2e]](), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], ![])); }); function _0x21e83f() { if (document[_0x3166de[0x3b]](_0x3166de[0x3a])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x3c])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x3d])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x3e])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x3f])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x40])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x41])) return !![]; } function _0x1c078b() { if (document[_0x3166de[0x3b]](_0x3166de[0x42])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x43])) return !![]; if (document[_0x3166de[0x3b]](_0x3166de[0x44])) return !![]; } function _0x160caf() { var _0x39f97c = _0xe6b70; if (!document[_0x3166de[0x46]](_0x3166de[0x45]) && document[_0x3166de[0x3b]](_0x3166de[0x47])) return sweetalert(_0x3166de[0x48], _0x3166de[0x49], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); else { if (!document[_0x3166de[0x46]](_0x3166de[0x45])) return sweetalert(_0x3166de[0x48], _0x3166de[0x4a], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); } if (!document[_0x3166de[0x46]](_0x3166de[0x4b]) && _0x21e83f()) return sweetalert(_0x3166de[0x48], _0x3166de[0x4c], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); else { if (!document[_0x3166de[0x46]](_0x3166de[0x4b])) return sweetalert(_0x3166de[0x48], _0x3166de[0x4d], 0x1770), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); } const _0x2db721 = $(_0x3166de[0x22])[_0x3166de[0x29]](_0x3166de[0x4f])[_0x3166de[0x4e]]()[_0x3166de[0x27]](); if (_0x2db721 !== _0x3166de[0x13] && _0x2db721 !== _0x3166de[0x14] && _0x2db721 !== _0x3166de[0x15] && _0x2db721 !== _0x3166de[0x16] && _0x2db721 !== _0x3166de[0x17] && _0x2db721 !== _0x3166de[0x18] && _0x2db721 !== _0x3166de[0x19]) return sweetalert(_0x3166de[0x48], _0x3166de[0x50], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); var _0x405aad = $(_0x3166de[0x25])[_0x3166de[0x24]](), _0x30001e = $(_0x3166de[0x35])[_0x3166de[0x24]](); if (!document[_0x3166de[0x46]](_0x3166de[0x51]) && _0x1c078b()) return sweetalert(_0x3166de[0x48], _0x3166de[0x52], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); else { if (!document[_0x3166de[0x46]](_0x3166de[0x51])) return sweetalert(_0x3166de[0x48], _0x3166de[0x53], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); } var _0x59632f = $(_0x3166de[0x2a])[_0x3166de[0x29]](_0x3166de[0x26] + _0x405aad[_0x3166de[0x27]]() + _0x3166de[0x28]); if (_0x30001e[_0x3166de[0x2b]] < 0x3) return sweetalert(_0x3166de[0x48], _0x3166de[0x54], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); if (!_0x405aad || _0x405aad === _0x3166de[0x55] || _0x405aad === _0x3166de[0x56] || !_0x30001e || _0x30001e === _0x3166de[0x55] || _0x30001e === _0x3166de[0x56]) return sweetalert(_0x3166de[0x48], _0x3166de[0x57], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); if (_0x59632f != null && _0x59632f[_0x3166de[0x2b]] > 0x0) { } else return sweetalert(_0x3166de[0x48], _0x3166de[0x58], 0xfa0), $(_0x3166de[0x32])[_0x3166de[0x31]](_0x3166de[0x30], !![]); maxUsed && !_0x3b4879 ? (_0x3b4879 = !![], $(_0x3166de[0x5a])[_0x3166de[0x59]](_0x3166de[0x2e])) : window[_0x3166de[0x5b]] = _0x39f97c(0x1bc) + _0x39f97c(0x212) + _0x39f97c(0x1da) + _0x2db721 + (_0x39f97c(0x22e) + 'on=') + encodeURIComponent(_0x30001e) + '&icon=' + _0x405aad; } function _0x4d17(_0x57957e, _0x3d4293) { var _0x9d96d6 = _0x9d96(); return _0x4d17 = function (_0x4d1760, _0x3a9b54) { _0x4d1760 = _0x4d1760 - 0x1a4; var _0x4196d6 = _0x9d96d6[_0x4d1760]; return _0x4196d6; }, _0x4d17(_0x57957e, _0x3d4293); } $(_0x3166de[0x32])[_0x3166de[0x5c]](function () { _0x160caf(); }), $(_0x3166de[0x5d])[_0x3166de[0x5c]](function () { _0x160caf(); }); function _0x35c100(_0x379a69, _0x2b000c) { var _0x2fc28d = _0xe6b70; if (_0x379a69 === _0x3166de[0x1a]) return $(_0x3166de[0x5f])[_0x3166de[0x31]](_0x3166de[0x5e], _0x2fc28d(0x1d8) + 't-' + _0x2b000c + (_0x2fc28d(0x1db) + 'e\x20font-wei' + _0x2fc28d(0x1c2))); if (_0x379a69 === _0x3166de[0x34]) return $(_0x3166de[0x60])[_0x3166de[0x31]](_0x3166de[0x5e], _0x2b000c); if (_0x379a69 === _0x3166de[0x36]) return $(_0x3166de[0x62])[_0x3166de[0x61]](_0x2b000c); } $(_0x3166de[0x63])[_0x3166de[0x5c]](function () { var _0x113d11 = _0xe6b70; window[_0x3166de[0x5b]] = _0x113d11(0x1bc) + _0x113d11(0x1b0) + _0x113d11(0x20e); }), $(_0x3166de[0x64])[_0x3166de[0x5c]](function () { var _0x41169e = _0xe6b70; window[_0x3166de[0x5b]] = _0x41169e(0x1bc) + 'on=delete&' + _0x41169e(0x226); }), $(_0x3166de[0x65])[_0x3166de[0x5c]](function () { var _0x445762 = _0xe6b70; window[_0x3166de[0x5b]] = _0x445762(0x1bc) + _0x445762(0x1b0) + _0x445762(0x1e7); });
</script>
<script>
$(window).scroll(async function () {
if ($(window).scrollTop() > 300) {
$("#backButton").slideDown();
$("#themeButton").fadeOut();
} else {
$("#backButton").slideUp();
$("#themeButton").show();
}
});
$("#backButton").on('click', function (e) {
$('html, body').animate({scrollTop: 0}, '250');
});
</script>
<%- include('partials/scripts.ejs', {now: "admin"}) %>
</body>
</html>