This commit is contained in:
tersiswilvin 2022-12-28 02:03:43 -08:00
parent c7390e4c61
commit 5eb11464b1
8 changed files with 662 additions and 30 deletions

View File

@ -476,6 +476,10 @@ body {
border-color: #00A2FF;
}
.content_special, #content_special {
overflow: visible;
}
#feed {
background-color: #fff;
box-shadow: 0 1px 4px 0 rgb(25 25 25 / 30%);
@ -517,6 +521,7 @@ body {
#footer_signup p,
#footer_signup a:nth-child(2) {
color: #b8b8b8;
transition: none;
}
#footer a:nth-child(2):hover,
@ -524,16 +529,18 @@ body {
#footer_signup a:nth-child(2):hover,
#footer_signup a:nth-child(2):focus {
color: #191919;
text-decoration: none;
}
#footer a:nth-child(1),
#footer_signup a:nth-child(1) {
#footer_signup a:nth-child(1), .content_signup a:hover, .content_signup p a:hover, #footer_signup a:hover, #footer_signup p a:hover, #footer a:hover, #footer p a:hover {
color: #00a2ff;
transition: none;
}
#footer a:nth-child(1):hover,
#footer_signup a:nth-child(1):hover {
text-decoration: underline;
text-decoration: none;
}
#footer p,
@ -630,6 +637,10 @@ p[style="color: darkred;"],
color: #D86868 !important;
}
.rightgamecontainer {
text-align: left;
}
a,
.content a,
.content_signup p a {

523
public/css/AdminPanel.css Normal file
View File

@ -0,0 +1,523 @@
/*/=={ Written by TersisWilvin (TersisWilvin#0087 | 9T2K#0016) for the New Admin Panel Pages }==/*/
/*/=={ Includes => Default theme > Light theme > Dark theme }==/*/
.EnableNewPanel ::selection {
background: rgba(0, 0, 0, 0.25);
color: #fff;
}
:focus-visible {
outline: 0;
}
.EnableNewPanel .AdminPanel {
display: none;
}
a, a:hover, a:focus, a:link, a:visited {
color: inherit;
font-weight: 300;
text-decoration: none;
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
h1, h2, h3, h4, h5, h6 {
margin: 0;
line-height: 1.2em;
}
h1 {
font-size: 32px;
font-weight: 900;
}
h2 {
font-size: 28px;
font-weight: 900;
}
h3 {
font-size: 24px;
font-weight: 600;
}
h4 {
font-size: 20px;
font-weight: 600;
}
h5 {
font-size: 16px;
font-weight: 300;
}
h6 {
font-size: 12px;
font-weight: 300;
}
body.EnableNewPanel {
background: #c3c5c9;
color: #3d3c3b;
font-family: Arial,Helvetica,sans-serif;
font-size: 16px;
font-weight: 300;
height: 100%;
width: 100%;
margin: 0;
}
.NewAdminPanel {
height: 100%;
width: 100%;
position: absolute;
}
.Admin-Navigation {
width: 100%;
height: 100px;
position: fixed;
left: 0;
right: 0;
top: 0;
}
.AdminContainer {
height: auto;
width: 100%;
}
.AdminContainer {
margin: 130px auto 0 auto;
top: 0;
position: absolute;
}
body.Segoe-Font {
font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
font-size: 16px;
font-weight: 400;
}
.Admin-Navigation .Header {
background: #a0a0a0;
color: #fff;
width: 100%;
height: 75px;
position: relative;
z-index: 10000;
}
.Admin-Navigation .SubHeader {
background: #a0a0a0;
background: linear-gradient(0deg, #5b5457 0%, #a0a0a0 100%);
width: 100%;
height: 25px;
position: absolute;
display: -webkit-box;
display: inline-flex;
list-style-type: none;
margin: 0;
padding: 0;
border-bottom-left-radius: 12px;
border-bottom-right-radius: 12px;
box-shadow: 0px 0px 10px 5px #606060;
box-shadow: 0px 0px 10px 5px rgba(0 0 0 / 50%);
z-index: 9999;
}
.Admin-Navigation .sub-menu {
display: block;
width: 25%;
text-align: center;
margin: auto;
}
.Admin-Navigation .Header .PanelLogo {
background-image: url(/img/MORBLOXlogo.png);
background-size: 200px 35px;
background-repeat: no-repeat;
background-position: center;
width: 200px;
height: 35px;
opacity: .8;
-webkit-transition: all .125s ease-in-out;
transition: all .125s ease-in-out;
transition-property: opacity, transform;
transform: scale(95%);
display: block;
margin: auto;
padding: 6px;
}
.Admin-Navigation .Header .PanelLogo:hover {
transform: scale(100%);
opacity: 1;
}
.Admin-Navigation .Header .PanelLogo:active {
transform: scale(92.5%);
opacity: .7;
}
.Admin-Navigation .Header .SubSlogan {
text-shadow: 2px 2px 2px #5b5457;
color: #3d3c3b;
letter-spacing: .2rem;
padding: 5px 0;
margin: auto;
display: block;
width: 100%;
text-align: center;
width: fit-content;
}
.Admin-Navigation .Header .usernamecontainer {
top: 10px;
right: 10px;
display: inline-block;
position: absolute;
}
.Y23R .Admin-Navigation .Header .usernamecontainer {
left: 10px;
right: auto;
}
.usernamecontainer .usernamelink {
color: #3d3c3b;
-webkit-transition: all .125s ease-in-out;
transition: .125s all ease-in-out;
transition-property: color, box-shadow;
}
.usernamecontainer .usernamelink:hover {
color: #efebec;
box-shadow: 0 2px 0 0 #efebec;
}
.Admin-Navigation .menu {
font-size: 14px;
-webkit-transition: all .125s ease-in-out;
transition: .1s all ease-in-out;
transition-property: color, box-shadow, padding;
}
.Admin-Navigation .menu[active] {
padding: 0 0 2px 0;
box-shadow: 0 2px 0 0 #0f7eda;
}
.Admin-Navigation .menu:hover {
color: #efebec;
padding: 0 0 2px 0;
box-shadow: 0 2px 0 0 #efebec;
}
.Btn-Demo {
width: 32.7%;
width: max-content;
margin: auto;
}
.Btn-Demo button {
margin-right: 5px;
}
.AdminContainer .Btn-Demo .H-24sB {
margin: 0 0 5px;
}
.AdminContainer .H-12sB, .AdminContainer .H-16sB, .AdminContainer .H-20sB, .AdminContainer .H-24sB, .AdminContainer .H-28sB, .AdminContainer .H-32sB {
display: block;
width: 100%;
text-align: center;
}
body.Y23R .AdminContainer .SH-8B07, body:not(.Y23R) .S-Ia06 .SSH-kR0q, body:not(.Y23R) .AdminContainer .UH-vXb0 {
display: none;
}
body:not(.Y23R) .AdminContainer .SH-8B07, body.Y23R .AdminContainer .UH-vXb0 {
margin: 15px 0;
}
.hidden {
display: none !important;
visibility: hidden !important;
}
/*/=={ Status }==/*/
.AdminContainer .S-Ia06 {
width: 720px;
height: 100%;
background: #929497;
background: rgba(0, 0, 0, 0.25);
border: 1px dashed #e4780d;
margin: auto;
padding: 15px;
}
.AdminContainer .SSH-kR0q {
padding-bottom: 15px;
}
.S-5mjl {
width: 100%;
height: 100%;
display: inline-block;
}
.S-aS25 {
width: 25%;
height: auto;
text-align: center;
float: left;
}
.S-aS50 {
width: 50%;
height: auto;
text-align: center;
float: left;
}
.S-5mjl:nth-child(3)::before {
content: '';
background: #3d3c3b;
background: linear-gradient(90deg, #3d3c3b00 0, #3d3c3b 50%, #3d3c3b00 100%);
display: block;
margin: 10px auto;
width: 75%;
height: 2px;
}
.S-H1sm {
color: #4f4e4d;
font-weight: 600;
margin-bottom: 5px;
}
@media (max-width: 752px) {
.AdminContainer .S-Ia06 {
width: unset;
}
}
/*/=={ Buttons }==/*/
/*/ Blue /*/
.sm-btn-blue {
background: #0f7eda;
border: 1px solid #0f7eda;
border-radius: 4px;
font-size: 16px;
padding: 4px;
color: #fff;
}
.sm-btn-blue:hover, .sm-btn-blue:focus {
background: #118ff7;
border-color: #118ff7;
color: #fff;
cursor: pointer;
}
.sm-btn-blue:active {
background: #118ff7;
color: #fff;
}
.md-btn-blue {
background: #0f7eda;
border: 1px solid #0f7eda;
border-radius: 4px;
font-size: 16px;
padding: 7px;
color: #fff;
}
.md-btn-blue:hover, .md-btn-blue:focus {
background: #118ff7;
border-color: #118ff7;
color: #fff;
cursor: pointer;
}
.md-btn-blue:active {
background: #118ff7;
color: #fff;
}
.lg-btn-blue {
background: #0f7eda;
border: 1px solid #0f7eda;
border-radius: 6px;
font-size: 22px;
padding: 14px;
color: #fff;
}
.lg-btn-blue:hover, .lg-btn-blue:focus {
background: #118ff7;
border-color: #118ff7;
color: #fff;
cursor: pointer;
}
.lg-btn-blue:active {
background: #118ff7;
color: #fff;
}
.sm-btn-blue[disabled], .sm-btn-blue[disabled]:hover, .sm-btn-blue[disabled]:focus, .sm-btn-blue[disabled]:active {
background: #0a5898;
border-color: #0a5898;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
.md-btn-blue[disabled], .md-btn-blue[disabled]:hover, .md-btn-blue[disabled]:focus, .md-btn-blue[disabled]:active {
background: #0a5898;
border-color: #0a5898;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
.lg-btn-blue[disabled], .lg-btn-blue[disabled]:hover, .lg-btn-blue[disabled]:focus, .lg-btn-blue[disabled]:active {
background: #0a5898;
border-color: #0a5898;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
/*/ Green /*/
.sm-btn-green {
background: #0caf63;
border: 1px solid #0caf63;
border-radius: 4px;
font-size: 16px;
padding: 4px;
color: #fff;
}
.sm-btn-green:hover, .sm-btn-green:focus {
background: #0fda7b;
border-color: #0fda7b;
color: #fff;
cursor: pointer;
}
.sm-btn-green:active {
background: #0fda7b;
color: #fff;
}
.md-btn-green {
background: #0caf63;
border: 1px solid #0caf63;
border-radius: 4px;
font-size: 16px;
padding: 7px;
color: #fff;
}
.md-btn-green:hover, .md-btn-green:focus {
background: #0fda7b;
border-color: #0fda7b;
color: #fff;
cursor: pointer;
}
.md-btn-green:active {
background: #0fda7b;
color: #fff;
}
.lg-btn-green {
background: #0caf63;
border: 1px solid #0caf63;
border-radius: 6px;
font-size: 22px;
padding: 14px;
color: #fff;
}
.lg-btn-green:hover, .lg-btn-green:focus {
background: #0fda7b;
border-color: #0fda7b;
color: #fff;
cursor: pointer;
}
.lg-btn-green:active {
background: #0fda7b;
color: #fff;
}
.sm-btn-green[disabled], .sm-btn-green[disabled]:hover, .sm-btn-green[disabled]:focus, .sm-btn-green[disabled]:active {
background: #0a9840;
border-color: #0a9840;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
.md-btn-green[disabled], .md-btn-green[disabled]:hover, .md-btn-green[disabled]:focus, .md-btn-green[disabled]:active {
background: #0a9840;
border-color: #0a9840;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
.lg-btn-green[disabled], .lg-btn-green[disabled]:hover, .lg-btn-green[disabled]:focus, .lg-btn-green[disabled]:active {
background: #0a9840;
border-color: #0a9840;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
/*/ Red /*/
.sm-btn-red {
background: #af320c;
border: 1px solid #af320c;
border-radius: 4px;
font-size: 16px;
padding: 4px;
color: #fff;
}
.sm-btn-red:hover, .sm-btn-red:focus {
background: #da380f;
border-color: #da380f;
color: #fff;
cursor: pointer;
}
.sm-btn-red:active {
background: #da380f;
color: #fff;
}
.md-btn-red {
background: #af320c;
border: 1px solid #af320c;
border-radius: 4px;
font-size: 16px;
padding: 7px;
color: #fff;
}
.md-btn-red:hover, .md-btn-red:focus {
background: #da380f;
border-color: #da380f;
color: #fff;
cursor: pointer;
}
.md-btn-red:active {
background: #da380f;
color: #fff;
}
.lg-btn-red {
background: #af320c;
border: 1px solid #af320c;
border-radius: 6px;
font-size: 22px;
padding: 14px;
color: #fff;
}
.lg-btn-red:hover, .lg-btn-red:focus {
background: #da380f;
border-color: #da380f;
color: #fff;
cursor: pointer;
}
.lg-btn-red:active {
background: #da380f;
color: #fff;
}
.sm-btn-red[disabled], .sm-btn-red[disabled]:hover, .sm-btn-red[disabled]:focus, .sm-btn-red[disabled]:active {
background: #98320a;
border-color: #98320a;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
.md-btn-red[disabled], .md-btn-red[disabled]:hover, .md-btn-red[disabled]:focus, .md-btn-red[disabled]:active {
background: #98320a;
border-color: #98320a;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}
.lg-btn-red[disabled], .lg-btn-red[disabled]:hover, .lg-btn-red[disabled]:focus, .lg-btn-red[disabled]:active {
background: #98320a;
border-color: #98320a;
box-shadow: none;
color: #fff;
opacity: .5;
cursor: not-allowed;
}

View File

@ -723,9 +723,13 @@ a {
border-color: #555;
}
body:not(.EnableNewPanel) .NewAdminPanel {
display: none;;
}
@media (max-width:990px) {
.AdminPanel #Body, .AdminPanel #BodyWrapper, .AdminPanel #MasterContainer {
width: 100% !important; /*!important since late 2012 roblox uses element.style CRINGE!*/
width: 100% !important;
padding: 0;
}
}

View File

@ -24,7 +24,7 @@ function addDatabaseBackupRestoreWarning() {
document.body.appendChild(alertsystemdiv);
}
if (window.document.location.hostname == "archblox.com") {
if (window.document.location.hostname == "archblox.com" || window.document.location.hostname == "localhost") {
console.log("User is on " + window.document.location.hostname + ". Supported URL.");
addDatabaseBackupRestoreWarning();
} else {

View File

@ -65,4 +65,63 @@
</div>
</div>
</div>
@endsection
@section('AdminPanel')
<div class="NewAdminPanel">
<nav class="Admin-Navigation">
<div class="Header">
<a href="{{ route('home') }}" title="ARCHBLOX Home" class="PanelLogo"></a>
<span class="SubSlogan">Admin Panel</span>
<div class="usernamecontainer">
<a class="usernamelink" href="@guest {{ route('login') }} @else {{ route('profile', Auth::id()) }} @endguest">{{ Auth::user()->name }}</a>
</div>
</div>
<ul class="SubHeader">
<li class="sub-menu">
<a class="menu" href="{{ route('admin_users') }}">Users</a>
</li>
<li class="sub-menu">
<a class="menu" href="{{ route('admin_index') }}" active>Status</a>
</li>
<li class="sub-menu">
<a class="menu" href="{{ route('admin_tree') }}">Invites</a>
</li>
</ul>
</nav>
<div class="AdminContainer">
<h4 class="H-20sB UH-vXb0">Welcome {{ Auth::user()->name }}</h4>
<h2 class="H-32sB SH-8B07">Status</h2>
<div class="S-Ia06">
<h3 class="H-24sB SSH-kR0q">Status</h3>
<div class="S-5mjl">
<div class="S-aS25">
<h5 class="S-H1sm">Registered</h5>
<h5 class="S-H2sm">{{ App\Models\User::count() }}</h5>
</div>
<div class="S-aS25">
<h5 class="S-H1sm">Admins</h5>
<h5 class="S-H2sm">{{ App\Models\User::where('admin', true)->count() }}</h5>
</div>
<div class="S-aS25">
<h5 class="S-H1sm">Online Past Day</h5>
<h5 class="S-H2sm">{{ App\Models\User::where('last_seen', '>', Carbon\Carbon::now()->subDay()->toDateTimeString())->count(); }}</h5>
</div>
<div class="S-aS25">
<h5 class="S-H1sm">Online</h5>
<h5 class="S-H2sm">{{ App\Models\User::where('last_seen', '>', Carbon\Carbon::now()->subMinute()->toDateTimeString())->count(); }}</h5>
</div>
</div>
<div class="S-5mjl">
<div class="S-aS50">
<h5 class="S-H1sm">Invite Key(s)</h5>
<h5 class="S-H2sm">{{ App\Models\InviteKey::count() }}</h5>
</div>
<div class="S-aS50">
<h5 class="S-H1sm">Unused Invite Key(s)</h5>
<h5 class="S-H2sm">{{ App\Models\InviteKey::where('active', true)->count() }}</h5>
</div>
</div>
</div>
</div>
</div>
@endsection

View File

@ -63,3 +63,29 @@
</div>
</div>
@endsection
@section('AdminPanel')
<div class="NewAdminPanel">
<nav class="Admin-Navigation">
<div class="Header">
<a href="{{ route('home') }}" title="ARCHBLOX Home" class="PanelLogo"></a>
<span class="SubSlogan">Admin Panel</span>
<div class="usernamecontainer">
<a class="usernamelink" href="@guest {{ route('login') }} @else {{ route('profile', Auth::id()) }} @endguest">{{ Auth::user()->name }}</a>
</div>
</div>
<ul class="SubHeader">
<li class="sub-menu">
<a class="menu" href="{{ route('admin_users') }}">Users</a>
</li>
<li class="sub-menu">
<a class="menu" href="{{ route('admin_index') }}">Status</a>
</li>
<li class="sub-menu">
<a class="menu" href="{{ route('admin_tree') }}" active>Invites</a>
</li>
</ul>
</nav>
<div class="AdminContainer">
</div>
</div>
@endsection

View File

@ -269,3 +269,29 @@
</div>
{{ $users->appends($_GET)->links() }}
@endsection
@section('AdminPanel')
<div class="NewAdminPanel">
<nav class="Admin-Navigation">
<div class="Header">
<a href="{{ route('home') }}" title="ARCHBLOX Home" class="PanelLogo"></a>
<span class="SubSlogan">Admin Panel</span>
<div class="usernamecontainer">
<a class="usernamelink" href="@guest {{ route('login') }} @else {{ route('profile', Auth::id()) }} @endguest">{{ Auth::user()->name }}</a>
</div>
</div>
<ul class="SubHeader">
<li class="sub-menu">
<a class="menu" href="{{ route('admin_users') }}" active>Users</a>
</li>
<li class="sub-menu">
<a class="menu" href="{{ route('admin_index') }}">Status</a>
</li>
<li class="sub-menu">
<a class="menu" href="{{ route('admin_tree') }}">Invites</a>
</li>
</ul>
</nav>
<div class="AdminContainer">
</div>
</div>
@endsection

View File

@ -18,6 +18,7 @@
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
<link href="{{ asset('css/app.css?id=e5Az527Gb1') }}" rel="stylesheet">
<link href="/css/AdminPanelCSS.css" rel="stylesheet">
<link href="/css/AdminPanel.css" rel="stylesheet">
<script src="{{ asset('js/detect_iphone.js') }}" defer></script>
</head>
@ -28,37 +29,19 @@
<div id="AdminWrapper" class="Navigation">
<div class="AdminHeader">
<span><a href="{{ route('home') }}" title="ARCHBLOX Home" class="SiteBrand"></a></span>
<a class="Slogan">
Admin Panel
</a>
<div class="AuthenticatedUserNameWrapper">
Logged in as <a class="AuthenticatedUserName" href="@guest {{ route('login') }} @else {{ route('profile', Auth::id()) }} @endguest">{{ Auth::user()->name }}</a>
</div>
<a class="Slogan">Admin Panel</a>
<div class="AuthenticatedUserNameWrapper">Logged in as <a class="AuthenticatedUserName" href="@guest {{ route('login') }} @else {{ route('profile', Auth::id()) }} @endguest">{{ Auth::user()->name }}</a></div>
<div class="logoutbtn">
<a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();" class="logout AuthenticatedUserName">Logout</a>
<span class="logoutarrow"><span>
</div>
</div>
<form id="logout-form" class="hidden" action="{{ route('logout') }}" method="POST">
@csrf
</form>
<form id="logout-form" class="hidden" action="{{ route('logout') }}" method="POST">@csrf</form>
<div class="AdminSubHeader">
<ul>
<li>
<a class="sub-menu" href="{{ route('admin_users') }}">
User List
</a>
</li>
<li>
<a class="sub-menu" href="{{ route('admin_index') }}">
Status
</a>
</li>
<li>
<a class="sub-menu" href="{{ route('admin_tree') }}">
Invite Tree
</a>
</li>
<li><a class="sub-menu" href="{{ route('admin_users') }}">User List</a></li>
<li><a class="sub-menu" href="{{ route('admin_index') }}">Status</a></li>
<li><a class="sub-menu" href="{{ route('admin_tree') }}">Invite Tree</a></li>
</ul>
</div>
</div>
@ -66,6 +49,6 @@
@yield('Body')
</div>
</div>
@yield('AdminPanel')
</body>
</html>
</html>