687 lines
No EOL
40 KiB
Text
687 lines
No EOL
40 KiB
Text
<!--
|
||
=========================================================
|
||
* Soft UI Dashboard - v1.0.3
|
||
=========================================================
|
||
|
||
* Product Page: https://www.creative-tim.com/product/soft-ui-dashboard
|
||
* Copyright 2021 Creative Tim (https://www.creative-tim.com)
|
||
* Licensed under MIT (https://www.creative-tim.com/license)
|
||
|
||
* Coded by Creative Tim
|
||
|
||
=========================================================
|
||
|
||
* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||
-->
|
||
<!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 class="card h-10">
|
||
<div class="card-header pb-0 p-3">
|
||
<h6 class="mb-0">Admin Controls</h6>
|
||
<h7 style="text-align:center;">CHECK FOR UPDATES</h7>
|
||
</div>
|
||
<div class="card-body p-3">
|
||
<div class="row">
|
||
<div class="col-12"><a disabled href="#"
|
||
onclick="window.location = '../control?action=update&type=live'"
|
||
type="button" class="btn bg-gradient-info btn-lg w-100"><i
|
||
class="fas fa-exclamation-circle" style="color: white !important;" ></i> LIVE</a>
|
||
</div>
|
||
<div class="col-12"><a href="#"
|
||
onclick="window.location = '../control?action=update&type=npm'"
|
||
type="button" class="btn bg-gradient-danger btn-lg w-100"><i
|
||
class="fab fa-npm" style="color: white !important;"></i> NPM</a></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> |