dashboard-core/theme/dbd-soft-ui/views/admin.ejs

653 lines
29 KiB
Text
Raw Normal View History

2023-06-19 14:21:58 +05:00
<!DOCTYPE html>
<html lang="en">
<head>
2023-06-22 19:36:52 +05:00
<%- 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;
}
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
#backButton::after {
content: "\f077";
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
font-size: 2em;
line-height: 50px;
color: #fff;
}
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
#backButton:hover {
cursor: pointer;
background-color: #333;
}
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
#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 %>
2023-06-19 14:21:58 +05:00
</head>
<body class="g-sidenav-show bg-gray-100" id="scroll">
<%- include('partials/preload.ejs') %>
<script>
2023-06-22 19:36:52 +05:00
const maxUsed = <%- allFeedsUsed %>;
2023-06-19 14:21:58 +05:00
</script>
<%- include('partials/sidebar.ejs', {config: config, now:'admin'}) %>
<div class="main-content position-relative bg-gray-100 max-height-vh-100 h-100">
2023-06-22 19:36:52 +05:00
<!-- 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>
<% } %>
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
</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 %>">
<% }); %>
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
</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>
2023-06-19 14:21:58 +05:00
</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?a
</script>
<script>
2023-06-22 19:36:52 +05:00
$(window).scroll(async function () {
if ($(window).scrollTop() > 300) {
$("#backButton").slideDown();
$("#themeButton").fadeOut();
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
} else {
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
$("#backButton").slideUp();
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
$("#themeButton").show();
}
});
2023-06-19 14:21:58 +05:00
2023-06-22 19:36:52 +05:00
$("#backButton").on('click', function (e) {
$('html, body').animate({scrollTop: 0}, '250');
});
2023-06-19 14:21:58 +05:00
</script>
<%- include('partials/scripts.ejs', {now: "admin"}) %>
</body>
</html>