feat: GSP 1.0 baseline – module versions, FAQ refresh, XML editor validation, Obsidian theme

Agent-Logs-Url: https://github.com/GameServerPanel/GSP/sessions/40ca313f-3f17-4f62-8f05-ba72540a8d30

Co-authored-by: iaretechnician <2749183+iaretechnician@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-05-03 23:31:07 +00:00 committed by GitHub
parent 1b3b79447f
commit d564476d1c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
178 changed files with 3327 additions and 44 deletions

View file

@ -0,0 +1,4 @@
</div>
</div>
</div>
</div>

View file

@ -0,0 +1,19 @@
<script>
(function() {
var nodes = document.getElementById('submenu_0').getElementsByTagName('span');
for(var i=0; i<nodes.length; i++) {
iconPath = nodes[i].getAttribute("data-icon_path");
if(typeof iconPath != "undefined" && iconPath != "")
{
nodes[i].style.background = "url("+iconPath+") 0% 50% / 16px 16px no-repeat scroll transparent";
nodes[i].style.padding = "5px 0 5px 25px";
}
}
})();
</script>
<div id="bottomWrapper">
<div class="image" style="padding-top:20px"> Crafted with <i class="fa fa-heart pulse_heart" original-title="Love"></i> by <a href="https://github.com/hmrserver/" style="color: rgb(23, 108, 235);">HMR</a>
%footer%
</div>
</div>
</div>

View file

@ -0,0 +1,82 @@
<?php
if(!isset($_SESSION)){
session_name("opengamepanel_web");
session_start();
}
if ($_POST && ($_SESSION['users_group'] == 'admin')) {
if(isset($_POST['favicon'])) {
ConfigWrite('favicon', $_POST['favicon']);
}
if(isset($_POST['loginbg'])) {
ConfigWrite('loginbg', $_POST['loginbg']);
}
if(isset($_POST['bgblur'])) {
ConfigWrite('bgblur', $_POST['bgblur']);
}
if(isset($_POST['logo'])) {
ConfigWrite('logo', $_POST['logo']);
}
if(isset($_POST['pace']) && file_get_contents("../css/pace/".$_POST['pace'].".css")) {
ConfigWrite('pace', $_POST['pace']);
copyemz("../css/pace/".$_POST['pace'].".css","../css/pace/pace.css");
}
if(isset($_POST['responsive'])) {
ConfigWrite('responsive', $_POST['responsive']);
}
}
function copyemz($file1,$file2){
$error = null;
$contentx = '';
$econtex = '';
if(!file_get_contents($file1)) {
$error[1]=error_get_last();
} else {
$contentx =@file_get_contents($file1);
}
if(!fopen($file2, "w")) {
$error[2]=error_get_last();
} else {
$openedfile = fopen($file2, "w");
}
if(!@fwrite($openedfile, $contentx)) {
$error[3]=error_get_last();
}
if(!@fclose($openedfile)) {
$error[4]=error_get_last();
}
if($error) {
$errorlog = fopen("error.log", "w");
foreach($error as $element) {
if($element) {
$econtex = $element['message'];
break;
}
}
fwrite($errorlog, $econtex);
fclose($errorlog);
}
}
function ConfigWrite( $type, $data) {
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load('config.xml');
$theme = $xml->getElementsByTagName('theme')->item(0);
$type = $theme->getElementsByTagName($type)->item(0);
$type->nodeValue = $data;
htmlentities($xml->save('config.xml'));
}
function ConfigRead($type) {
$xml = new DOMDocument('1.0', 'UTF-8');
$xml->formatOutput = true;
$xml->preserveWhiteSpace = false;
$xml->load('config.xml');
$theme = $xml->getElementsByTagName('theme')->item(0);
$type = $theme->getElementsByTagName($type)->item(0);
return $type->nodeValue;
}
?>

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<theme>
<favicon>themes/Obsidian/images/favicon.ico</favicon>
<loginbg>themes/Obsidian/images/bg.jpg</loginbg>
<bgblur>0</bgblur>
<logo>themes/Obsidian/images/logo.png</logo>
<pace>default</pace>
<responsive>0</responsive>
</theme>

View file

@ -0,0 +1 @@
.login_header{font-size:20px!important;text-transform:uppercase;font-weight:400;padding:10px 25px 2px 25px;background-color:rgba(25,48,65,0.301)}.register_header{font-size:20px!important;text-transform:uppercase;font-weight:400;padding:10px 25px 2px 25px;background-color:#1930414d}#ulogin,input[name="upassword"],#ulogin:hover,input[name="upassword"]:hover{width:320px;height:25px;padding:3px;border-bottom:1px solid #b1b0b0!important;background:transparent;color:#eee;border:1px solid transparent}#ulogin::-webkit-input-placeholder,input[name="upassword"]::-webkit-input-placeholder{color:#eee}#ulogin:focus,input[name="upassword"]:focus{border-bottom:2px solid #fff!important;border:1px solid transparent;color:#37b799;outline:-webkit-focus-ring-color auto 0}.uregister,.uregister:hover{width:320px;height:25px;padding:3px!important;border-color:none!important;border-radius:0;background:transparent!Important;color:#eee!important;border:1px solid transparent!important;border-bottom:1px solid #b1b0b0!important}.uregister:focus{border-bottom:2px solid #fff!important;border:1px solid transparent}.login_button:hover{color:#398bba;transition:all 300ms linear}.login_button{width:320px;background-color:#378cd5;padding:8px!important;color:#fff;text-transform:uppercase;font-size:14px;cursor:pointer;transition:all 300ms linear;border-radius:2px}.register_button:hover{color:#398bba;transition:all 300ms linear}.register_button{width:320px;background-color:#378cd5;padding:8px!important;color:#fff;text-transform:uppercase;font-size:14px;cursor:pointer;transition:all 300ms linear;border-radius:2px}#login-bg:before{content:"";position:fixed;left:-5%;top:-5%;right:0;z-index:-1;display:block;background-size:cover;background-repeat:no-repeat;width:110%;height:110%}@media(max-width:600px){.menu-bg {float: none !important;}}

View file

@ -0,0 +1 @@
.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace.pace-inactive .pace-progress{display:none}.pace .pace-progress{position:fixed;z-index:2000;top:0;right:0;height:5rem;width:5rem;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:after{display:block;position:absolute;top:0;right:.5rem;content:attr(data-progress-text);font-family:"Helvetica Neue",sans-serif;font-weight:100;font-size:5rem;line-height:1;text-align:right;color:rgba(0,255,255,0.19999999999999996)}

View file

@ -0,0 +1 @@
.pace{width:140px;height:300px;position:fixed;top:-90px;right:-20px;z-index:2000;-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all 2s linear 0s;-moz-transition:all 2s linear 0s;transition:all 2s linear 0s}.pace.pace-active{-webkit-transform:scale(.25);-moz-transform:scale(.25);-ms-transform:scale(.25);-o-transform:scale(.25);transform:scale(.25);opacity:1}.pace .pace-activity{width:140px;height:140px;border-radius:70px;background:cyan;position:absolute;top:0;z-index:1911;-webkit-animation:pace-bounce 1s infinite;-moz-animation:pace-bounce 1s infinite;-o-animation:pace-bounce 1s infinite;-ms-animation:pace-bounce 1s infinite;animation:pace-bounce 1s infinite}.pace .pace-progress{position:absolute;display:block;left:50%;bottom:0;z-index:1910;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-transform:scaleY(.3)!important;-moz-transform:scaleY(.3)!important;-ms-transform:scaleY(.3)!important;-o-transform:scaleY(.3)!important;transform:scaleY(.3)!important;-webkit-animation:pace-compress .5s infinite alternate;-moz-animation:pace-compress .5s infinite alternate;-o-animation:pace-compress .5s infinite alternate;-ms-animation:pace-compress .5s infinite alternate;animation:pace-compress .5s infinite alternate}@-webkit-keyframes pace-bounce{0%{top:0;-webkit-animation-timing-function:ease-in}50%{top:140px;height:140px;-webkit-animation-timing-function:ease-out}55%{top:160px;height:120px;border-radius:70px / 60px;-webkit-animation-timing-function:ease-in}65%{top:120px;height:140px;border-radius:70px;-webkit-animation-timing-function:ease-out}95%{top:0;-webkit-animation-timing-function:ease-in}100%{top:0;-webkit-animation-timing-function:ease-in}}@-moz-keyframes pace-bounce{0%{top:0;-moz-animation-timing-function:ease-in}50%{top:140px;height:140px;-moz-animation-timing-function:ease-out}55%{top:160px;height:120px;border-radius:70px / 60px;-moz-animation-timing-function:ease-in}65%{top:120px;height:140px;border-radius:70px;-moz-animation-timing-function:ease-out}95%{top:0;-moz-animation-timing-function:ease-in}100%{top:0;-moz-animation-timing-function:ease-in}}@keyframes pace-bounce{0%{top:0;animation-timing-function:ease-in}50%{top:140px;height:140px;animation-timing-function:ease-out}55%{top:160px;height:120px;border-radius:70px / 60px;animation-timing-function:ease-in}65%{top:120px;height:140px;border-radius:70px;animation-timing-function:ease-out}95%{top:0;animation-timing-function:ease-in}100%{top:0;animation-timing-function:ease-in}}@-webkit-keyframes pace-compress{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-webkit-animation-timing-function:ease-in}100%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-webkit-animation-timing-function:ease-out}}@-moz-keyframes pace-compress{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;-moz-animation-timing-function:ease-in}100%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;-moz-animation-timing-function:ease-out}}@keyframes pace-compress{0%{bottom:0;margin-left:-30px;width:60px;height:75px;background:rgba(20,20,20,.1);box-shadow:0 0 20px 35px rgba(20,20,20,.1);border-radius:30px / 40px;animation-timing-function:ease-in}100%{bottom:30px;margin-left:-10px;width:20px;height:5px;background:rgba(20,20,20,.3);box-shadow:0 0 20px 35px rgba(20,20,20,.3);border-radius:20px / 20px;animation-timing-function:ease-out}}

View file

@ -0,0 +1 @@
.pace.pace-inactive{display:none}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;height:60px;width:100px;margin:auto;top:0;left:0;right:0;bottom:0}.pace .pace-progress{z-index:2000;position:absolute;height:60px;width:100px;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:before{content:attr(data-progress-text);text-align:center;color:#fff;background:cyan;border-radius:50%;font-family:"Helvetica Neue",sans-serif;font-size:14px;font-weight:100;line-height:1;padding:20% 0 7px;width:50%;height:40%;margin:10px 0 0 30px;display:block;z-index:999;position:absolute}.pace .pace-activity{font-size:15px;line-height:1;z-index:2000;position:absolute;height:60px;width:100px;display:block;-webkit-animation:pace-theme-center-atom-spin 2s linear infinite;-moz-animation:pace-theme-center-atom-spin 2s linear infinite;-o-animation:pace-theme-center-atom-spin 2s linear infinite;animation:pace-theme-center-atom-spin 2s linear infinite}.pace .pace-activity{border-radius:50%;border:5px solid cyan;content:' ';display:block;position:absolute;top:0;left:0;height:60px;width:100px}.pace .pace-activity:after{border-radius:50%;border:5px solid cyan;content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px;-webkit-transform:rotate(60deg);-moz-transform:rotate(60deg);-o-transform:rotate(60deg);transform:rotate(60deg)}.pace .pace-activity:before{border-radius:50%;border:5px solid cyan;content:' ';display:block;position:absolute;top:-5px;left:-5px;height:60px;width:100px;-webkit-transform:rotate(120deg);-moz-transform:rotate(120deg);-o-transform:rotate(120deg);transform:rotate(120deg)}@-webkit-keyframes pace-theme-center-atom-spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes pace-theme-center-atom-spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-o-keyframes pace-theme-center-atom-spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes pace-theme-center-atom-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}

View file

@ -0,0 +1 @@
.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-perspective:12rem;-moz-perspective:12rem;-ms-perspective:12rem;-o-perspective:12rem;perspective:12rem;z-index:2000;position:fixed;height:6rem;width:6rem;margin:auto;top:0;left:0;right:0;bottom:0}.pace.pace-inactive .pace-progress{display:none}.pace .pace-progress{position:fixed;z-index:2000;display:block;position:absolute;left:0;top:0;height:6rem;width:6rem!important;line-height:6rem;font-size:2rem;border-radius:50%;background:rgba(0,255,255,0.8);color:#fff;font-family:"Helvetica Neue",sans-serif;font-weight:100;text-align:center;-webkit-animation:pace-theme-center-circle-spin linear infinite 2s;-moz-animation:pace-theme-center-circle-spin linear infinite 2s;-ms-animation:pace-theme-center-circle-spin linear infinite 2s;-o-animation:pace-theme-center-circle-spin linear infinite 2s;animation:pace-theme-center-circle-spin linear infinite 2s;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d}.pace .pace-progress:after{content:attr(data-progress-text);display:block}@-webkit-keyframes pace-theme-center-circle-spin{from{-webkit-transform:rotateY(0deg)}to{-webkit-transform:rotateY(360deg)}}@-moz-keyframes pace-theme-center-circle-spin{from{-moz-transform:rotateY(0deg)}to{-moz-transform:rotateY(360deg)}}@-ms-keyframes pace-theme-center-circle-spin{from{-ms-transform:rotateY(0deg)}to{-ms-transform:rotateY(360deg)}}@-o-keyframes pace-theme-center-circle-spin{from{-o-transform:rotateY(0deg)}to{-o-transform:rotateY(360deg)}}@keyframes pace-theme-center-circle-spin{from{transform:rotateY(0deg)}to{transform:rotateY(360deg)}}

View file

@ -0,0 +1 @@
.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;height:90px;width:90px;margin:auto;top:0;left:0;right:0;bottom:0}.pace.pace-inactive .pace-activity{display:none}.pace .pace-activity{position:fixed;z-index:2000;display:block;position:absolute;left:-30px;top:-30px;height:90px;width:90px;display:block;border-width:30px;border-style:double;border-color:cyan transparent transparent;border-radius:50%;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-animation:spin 1s linear infinite;-moz-animation:spin 1s linear infinite;-o-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.pace .pace-activity:before{content:' ';position:absolute;top:10px;left:10px;height:50px;width:50px;display:block;border-width:10px;border-style:solid;border-color:cyan transparent transparent;border-radius:50%;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}@-webkit-keyframes spin{100%{-webkit-transform:rotate(359deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(359deg)}}@-o-keyframes spin{100%{-moz-transform:rotate(359deg)}}@keyframes spin{100%{transform:rotate(359deg)}}

View file

@ -0,0 +1 @@
.pace,.pace .pace-progress{z-index:2000;height:60px;width:100px}.pace.pace-inactive{display:none}.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0}.pace .pace-progress{position:absolute;-webkit-transform:translate3d(0,0,0)!important;-ms-transform:translate3d(0,0,0)!important;transform:translate3d(0,0,0)!important}.pace .pace-progress:before{content:attr(data-progress-text);text-align:center;color:#fff;background:cyan;border-radius:50%;font-family:"Helvetica Neue",sans-serif;font-size:14px;font-weight:100;line-height:1;padding:20% 0 7px;width:50%;height:40%;margin:10px 0 0 30px;display:block;z-index:999;position:absolute}.pace .pace-activity{font-size:9px;margin:0 19px auto;text-indent:-9999em;width:8em;height:8em;border-radius:50%;background:rgba(0,255,255,0.501);background:-moz-linear-gradient(left,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:-webkit-linear-gradient(left,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:-o-linear-gradient(left,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:-ms-linear-gradient(to right,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);background:linear-gradient(to right,rgba(0,255,255,0.501) 10%,rgba(255,255,255,0) 42%);position:relative;-webkit-animation:load3 1.4s infinite linear;animation:load3 1.4s infinite linear;-webkit-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.pace .pace-activity:after,.pace .pace-activity:before{content:'';position:absolute;top:0;left:0}.pace .pace-activity:before{width:50%;height:50%;border-radius:100% 0 0}.pace .pace-activity:after{background:cyan;width:75%;height:75%;border-radius:50%;margin:auto;bottom:0;right:0}@-webkit-keyframes load3{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes load3{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}

View file

@ -0,0 +1 @@
.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:2000;position:fixed;margin:auto;top:0;left:0;right:0;bottom:0;height:5px;width:200px;background:#fff;border:1px solid cyan;overflow:hidden}.pace .pace-progress{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);-o-transform:translate3d(0,0,0);transform:translate3d(0,0,0);max-width:200px;position:fixed;z-index:2000;display:block;position:absolute;top:0;right:100%;height:100%;width:100%;background:cyan}.pace.pace-inactive{display:none}

View file

@ -0,0 +1 @@
.pace{-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.pace .pace-activity{display:block;position:fixed;z-index:2000;top:0;right:0;width:300px;height:300px;background:cyan;-webkit-transition:-webkit-transform .3s;transition:transform .3s;-webkit-transform:translateX(100%) translateY(-100%) rotate(45deg);transform:translateX(100%) translateY(-100%) rotate(45deg);pointer-events:none;opacity:0.9;}.pace.pace-active .pace-activity{-webkit-transform:translateX(50%) translateY(-50%) rotate(45deg);transform:translateX(50%) translateY(-50%) rotate(45deg)}.pace .pace-activity::before,.pace .pace-activity::after{-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;bottom:30px;left:50%;display:block;border:5px solid #fff;border-radius:50%;content:''}.pace .pace-activity::before{margin-left:-40px;width:80px;height:80px;border-right-color:rgba(0,0,0,.2);border-left-color:rgba(0,0,0,.2);-webkit-animation:pace-theme-corner-indicator-spin 3s linear infinite;animation:pace-theme-corner-indicator-spin 3s linear infinite}.pace .pace-activity::after{bottom:50px;margin-left:-20px;width:40px;height:40px;border-top-color:rgba(0,0,0,.2);border-bottom-color:rgba(0,0,0,.2);-webkit-animation:pace-theme-corner-indicator-spin 1s linear infinite;animation:pace-theme-corner-indicator-spin 1s linear infinite}@-webkit-keyframes pace-theme-corner-indicator-spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@keyframes pace-theme-corner-indicator-spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}

View file

@ -0,0 +1 @@
.pace {-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none } .pace-inactive {display:none } .pace .pace-progress {background:aqua;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px } .pace .pace-progress-inner {display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px aqua,0 0 5px aqua;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px,-4px);-moz-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);-o-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px) } .pace .pace-activity {display:block;position:fixed;z-index:2000;top:15px;right:15px;width:14px;height:14px;border:solid 2px transparent;border-top-color:aqua;border-left-color:aqua;border-radius:10px;-webkit-animation:pace-spinner 400ms linear infinite;-moz-animation:pace-spinner 400ms linear infinite;-ms-animation:pace-spinner 400ms linear infinite;-o-animation:pace-spinner 400ms linear infinite;animation:pace-spinner 400ms linear infinite } @-webkit-keyframes pace-spinner {0% {-webkit-transform:rotate(0deg);transform:rotate(0deg) } 100% {-webkit-transform:rotate(360deg);transform:rotate(360deg) }} @-moz-keyframes pace-spinner {0% {-moz-transform:rotate(0deg);transform:rotate(0deg) } 100% {-moz-transform:rotate(360deg);transform:rotate(360deg) }} @-o-keyframes pace-spinner {0% {-o-transform:rotate(0deg);transform:rotate(0deg) } 100% {-o-transform:rotate(360deg);transform:rotate(360deg) }} @-ms-keyframes pace-spinner {0% {-ms-transform:rotate(0deg);transform:rotate(0deg) } 100% {-ms-transform:rotate(360deg);transform:rotate(360deg) }} @keyframes pace-spinner {0% {transform:rotate(0deg);transform:rotate(0deg) } 100% {transform:rotate(360deg);transform:rotate(360deg) }}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1 @@
.pace {-webkit-pointer-events:none;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none } .pace-inactive {display:none } .pace .pace-progress {background:aqua;position:fixed;z-index:2000;top:0;right:100%;width:100%;height:2px } .pace .pace-progress-inner {display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px aqua,0 0 5px aqua;opacity:1.0;-webkit-transform:rotate(3deg) translate(0px,-4px);-moz-transform:rotate(3deg) translate(0px,-4px);-ms-transform:rotate(3deg) translate(0px,-4px);-o-transform:rotate(3deg) translate(0px,-4px);transform:rotate(3deg) translate(0px,-4px) } .pace .pace-activity {display:block;position:fixed;z-index:2000;top:15px;right:15px;width:14px;height:14px;border:solid 2px transparent;border-top-color:aqua;border-left-color:aqua;border-radius:10px;-webkit-animation:pace-spinner 400ms linear infinite;-moz-animation:pace-spinner 400ms linear infinite;-ms-animation:pace-spinner 400ms linear infinite;-o-animation:pace-spinner 400ms linear infinite;animation:pace-spinner 400ms linear infinite } @-webkit-keyframes pace-spinner {0% {-webkit-transform:rotate(0deg);transform:rotate(0deg) } 100% {-webkit-transform:rotate(360deg);transform:rotate(360deg) }} @-moz-keyframes pace-spinner {0% {-moz-transform:rotate(0deg);transform:rotate(0deg) } 100% {-moz-transform:rotate(360deg);transform:rotate(360deg) }} @-o-keyframes pace-spinner {0% {-o-transform:rotate(0deg);transform:rotate(0deg) } 100% {-o-transform:rotate(360deg);transform:rotate(360deg) }} @-ms-keyframes pace-spinner {0% {-ms-transform:rotate(0deg);transform:rotate(0deg) } 100% {-ms-transform:rotate(360deg);transform:rotate(360deg) }} @keyframes pace-spinner {0% {transform:rotate(0deg);transform:rotate(0deg) } 100% {transform:rotate(360deg);transform:rotate(360deg) }}

View file

@ -0,0 +1 @@
@media(max-width:600px){#wrapper{border-left:0!important}.menu-bg,.menu>ul{width:100%;margin-bottom:10px}}@media(max-width:512px){.datetime{display:none!important}.slider{float:right;top:0;padding:17px;right:0;left:0}}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,2 @@
/* TipTip CSS - Version 1.2 */
.tipsy{position:absolute;padding:5px;z-index:100000}.tipsy-inner{font-size:12px;background:#37b799;color:#fff;max-width:200px;padding:5px 8px;text-align:center;border-radius:2px;-moz-border-radius:2px;-webkit-border-radius:2px}.tipsy-arrow{position:absolute;width:0;height:0;line-height:0;border:5px dashed #37b799}.tipsy-arrow-n{border-bottom-color:#37b799}.tipsy-arrow-s{border-top-color:#37b799}.tipsy-arrow-e{border-left-color:#161616}.tipsy-arrow-w{border-right-color:#161616}.tipsy-n .tipsy-arrow{top:0;left:50%;margin-left:-5px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-nw .tipsy-arrow{top:0;left:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-ne .tipsy-arrow{top:0;right:10px;border-bottom-style:solid;border-top:0;border-left-color:transparent;border-right-color:transparent}.tipsy-s .tipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-sw .tipsy-arrow{bottom:0;left:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-se .tipsy-arrow{bottom:0;right:10px;border-top-style:solid;border-bottom:0;border-left-color:transparent;border-right-color:transparent}.tipsy-e .tipsy-arrow{right:0;top:50%;margin-top:-5px;border-left-style:solid;border-right:0;border-top-color:transparent;border-bottom-color:transparent}.tipsy-w .tipsy-arrow{left:0;top:50%;margin-top:-5px;border-right-style:solid;border-left:none;border-top-color:transparent;border-bottom-color:transparent}

Binary file not shown.

After

Width:  |  Height:  |  Size: 339 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 272 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 682 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 199 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 909 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 247 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 270 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 250 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 186 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 245 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 654 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 427 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 367 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 902 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 163 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 496 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 684 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 304 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 267 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 963 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 896 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 168 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

268
themes/Obsidian/js/Obsidian.min.js vendored Normal file
View file

@ -0,0 +1,268 @@
jQuery(function($){
$(".slider").click(function() { //The Left Side bar's Hide/Show button function
if ($("#wrapper").hasClass("wrapper-hidder")){
$(".menu-bg").removeClass("menu-hidder");
$("#wrapper").removeClass("wrapper-hidder");
$.cookie('menu-bg-options', "show", { expires: 365, path: '/' });
}
else {
$(".menu-bg").addClass("menu-hidder");
$("#wrapper").addClass("wrapper-hidder");
$.cookie('menu-bg-options', "hide", { expires: 365, path: '/' });
}
});
if($.cookie("menu-bg-options") == "show") {
$(".menu-bg").removeClass("menu-hidder");
$("#wrapper").removeClass("wrapper-hidder");
} else if($.cookie("menu-bg-options") == "hide") {
$(".menu-bg").addClass("menu-hidder");
$("#wrapper").addClass("wrapper-hidder");
}
if(window.location.href.indexOf("home.php?m=support&p=support") == -1 && window.location.href.indexOf("home.php?m=user_games&p=edit&home_id=") == -1){
//those Hover-info boxes
jQuery("a").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("title").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("img").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("i").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("span").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("div").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("label").tipsy({gravity: jQuery.fn.tipsy.autoNS});
jQuery("input").tipsy({gravity: jQuery.fn.tipsy.autoNS});
}
/* Login */
if((window.location.href.indexOf("index.php") != -1 && window.location.href.indexOf("index.php?") == -1 && $('div.bloc h4').length != false) || $('input[name=ulogin]').length != false) {
$("head").append('<link rel="stylesheet" href="themes/Obsidian/css/login.css">');
var username_text = $(".bloc > form > table > tbody > tr:nth-child(2) > td:first").html().replace(':','');
var pass_text = $(".bloc > form > table > tbody > tr:nth-child(3) > td:first").html().replace(':','');
$("body").attr("id", "login-bg");
$("div.bloc").attr('style', 'background-color: rgba(25,48,65,0.701);');
$("#bottomWrapper").attr('style', 'background-color: rgba(24,33,36,0.301);');
$(".menu-bg").addClass("menu-hidder");
$("#wrapper").addClass("wrapper-hidder");
/* Login Elements */
$("div.main-content").attr('style', 'box-shadow: none;');//Remove unwanted Shadow effect
$('div.bloc h4').addClass('login_header'); //Adds classes to main-content
$("div.main-content > table").removeAttr("style"); //Removes style from table.
$("div.main-content > table").attr('align', 'center');//Center it.
$("div.main-content > table").attr('style', 'padding: 0px 10px 1px 10px;margin-top: 80px;'); //Removes style from table + droping it little down..
$("input[name=login]").addClass('login_button');//Adding class
$("div.bloc > form > table > tbody > tr:first").appendTo("div.bloc > form > table > tbody");//droping language tr down.
$("div.bloc > form > table > tbody > tr:last").find('td').contents().unwrap();//Removing all Td tags
$("div.bloc > form > table > tbody > tr:last").contents().wrapAll("<span style='float: left;'></span>");//Wrapping who td with that.
$("div.bloc > form > table > tbody > tr:last").append("<span class='forgotp' style='float: right;'></span>");
$("div.bloc > form > table > tbody > tr:last").contents().wrapAll("<td>");
$("div.bloc > form > table > tbody > tr td > a").appendTo("div.bloc > form > table > tbody > tr:last > td > span.forgotp");
if ($(".g-recaptcha")[0]) { //There is Google Captcha
$("div.bloc > form > table > tbody > tr:nth-child(4)").appendTo("div.bloc > form > table > tbody");
$("div.bloc > form > table > tbody > tr:nth-child(3) > td:first").remove();
$("div.bloc > form > table > tbody > tr:nth-child(3) > td").attr('align', 'center');
$("div.bloc > form > table > tbody > tr:nth-child(4) > td:first").attr('style', 'padding: 20px 25px 10px;');
$(".g-recaptcha").attr('data-theme', 'dark'); // makes the Google Captcha dark!
}else {
$("div.bloc > form > table > tbody > tr:nth-child(3)").appendTo("div.bloc > form > table > tbody");
$("div.bloc > form > table > tbody > tr:nth-child(3) > td:first").attr('style', 'padding: 20px 25px 10px;');
}
$("div.bloc > form > table > tbody > tr:nth-child(2) > td:first").remove();
$("div.bloc > form > table > tbody > tr:first > td:first").remove();
$("div.bloc > form > table > tbody > tr:last > td:last").remove();
$('input[name=ulogin]').attr('placeholder', username_text);
$('input[name=upassword]').attr('placeholder', pass_text);
$("div.bloc > form > table > tbody > tr:first > td:first").attr('style', 'padding: 25px 20px 10px;');
$("div.bloc > form > table > tbody > tr:nth-child(2) > td:first").attr('style', 'padding: 5px 20px;');
$("div.bloc > form > table > tbody > tr:last > td:first").attr('style', 'text-align: center;');
if($('.menu > ul > li > a[href="?m=register&p=form"').length > 0) {
$("div.bloc > form > table > tbody > tr:last > td").append("<br>Need an account ? <a href='?m=register&p=form'>Register</a>")
}
}
//Replacing images/ path with themes/Obsidian/images/ path
$('img').each(function() {
if ($(this).attr('src') == 'images/edit.png') {
$(this).attr('src', 'themes/Obsidian/images/edit.png');
}else if ($(this).attr('src') == 'images/file_size.png') {
$(this).attr('src', 'themes/Obsidian/images/file_size.png');
}else if ($(this).attr('src') == 'images/ftp.png') {
$(this).attr('src', 'themes/Obsidian/images/ftp.png');
}else if ($(this).attr('src') == 'images/install.png') {
$(this).attr('src', 'themes/Obsidian/images/install.png');
}else if ($(this).attr('src') == 'images/txt.png') {
$(this).attr('src', 'themes/Obsidian/images/txt.png');
}else if ($(this).attr('src') == 'images/log.png') {
$(this).attr('src', 'themes/Obsidian/images/log.png');
}else if ($(this).attr('src') == 'images/rsync.png') {
$(this).attr('src', 'themes/Obsidian/images/rsync.png');
}else if ($(this).attr('src') == 'images/magnifglass.png') {
$(this).attr('src', 'themes/Obsidian/images/magnifglass.png');
}else if ($(this).attr('src') == 'images/icon_help_small.gif') {
$(this).attr('src', 'themes/Obsidian/images/icon_help_small.png');
}else if ($(this).attr('src') == 'images/steam.png') {
$(this).attr('src', 'themes/Obsidian/images/steam.png');
}else if ($(this).attr('src') == 'images/auto_update.png') {
$(this).attr('src', 'themes/Obsidian/images/auto_update.png');
}
});
$('#pagination').each(function() {
$(this).html($(this).html().replace(/, /g, ''));
$(this).html($(this).html().replace(/]|\[/g, ''));
$(this).find('[class$="_firstPageLink"]').addClass('g_fPL');
$(this).find('[class$="_pageLinks"]').addClass('g_pL');
$(this).find('[class$="_lastPageLink"]').addClass('g_lPL');
$(this).find('[class$="_previousPageLink"]').addClass('g_pPL');
$(this).find('[class$="_currentPageLink"]').addClass('g_cPL');
$(this).find('[class$="_nextPageLink"]').addClass('g_nPL');
});
$('.image-tip').each(function(){
var tip_text = $(this).find('.tip').text();
$(this).find('.tip').remove();
$(this).attr('title', tip_text)
});
$("#wrapper").removeAttr("style"); //Removes style from Wrapper.
$(".logout").text($(".logout").text().replace('[', '').replace(']', ''));
//sidebar//
$('div.menu li:has(ul)').addClass('treeview');
$('div.menu li:has(ul) > a').append('<i class="fa fa-angle-left pull-right"></i>');
$('div.menu ul ul').addClass('treeview-sub');
$('.treeview > a').addClass('treeview-a');
$.sidebarMenu = function(menu) {
var animationSpeed = 300;
$(menu).on('click', 'li a', function(e) {
var $this = $(this);
var checkElement = $this.next();
if (checkElement.is('.treeview-sub') && checkElement.is(':visible')) {
checkElement.slideUp(animationSpeed, function() {
checkElement.removeClass('menu-open');
});
checkElement.parent("li").removeClass("active");
}
//If the menu is not visible
else if ((checkElement.is('.treeview-sub')) && (!checkElement.is(':visible'))) {
//Get the parent menu
var parent = $this.parents('ul').first();
//Close all open menus within the parent
var ul = parent.find('ul:visible').slideUp(animationSpeed);
//Remove the menu-open class from the parent
ul.removeClass('menu-open');
//Get the parent li
var parent_li = $this.parent("li");
//Open the target menu and add the menu-open class
checkElement.slideDown(animationSpeed, function() {
//Add the class active to the parent li
checkElement.addClass('menu-open');
parent.find('li.active').removeClass('active');
parent_li.addClass('active');
});
}
//if this isn't a link, prevent the page from being redirected
if (checkElement.is('.treeview-sub')) {
e.preventDefault();
}
});
} //sidebarMenu end.
//GOT HELP//
$('li.treeview').each(function() {
$('<li class="copied"></li>').html($(this).children('a').clone()).prependTo($(this).children('ul')).find('> a > span').html('Overview');
});
$(".copied > a").removeClass('admin_menu_link_selected');
$(".copied > a").removeClass('user_menu_link_selected');
$(".copied > a > span").removeAttr('data-icon_path');
$(".treeview > a").removeClass('treeview-a');
$('.treeview').each(function() {
var $linked = $(this);
if ($linked.find('.admin_menu_link_selected').length > 0) {
$linked.addClass('active');
} else if ($linked.find('.user_menu_link_selected').length > 0) {
$linked.addClass('active');
}
}); //treeview.each end.
$.sidebarMenu($('.menu'));
$(".copied > a > span").css("background", "");
$(".copied > a > span").css("padding", "");
if(window.location.href.indexOf("home.php?m=") > -1) {
$(".menu").prepend('<div class="avatar-cover"><span class="avatar-username"></span><span class="avatar-status"><i class="fa fa-circle"></i>Online</span><form id="ava-form" method="POST" enctype="multipart/form-data"><label class="edit_avatar"><i class="fa fa-camera"></i><input class="avatarinput" name="image" accept="image/*" type="file" /></label></form><span id="remove_avatar"><i class="fa fa-trash"></i></span></div>');
$(".avatar-username").text($("li.treeview > a > span.username").text());
$.ajax({
url: "themes/Obsidian/upload/get.php",
type: 'get',
dataType: 'html',
async: false,
success: function(data) {
$(".menu .avatar-cover").prepend('<img id="avatar" src="themes/Obsidian/' + data + '">');
}
});
} //href index of end.
//You might want to do if check to see if localstorage set for theImage here
$('body').on('click', '#remove_avatar',function(){
$.ajax({
url: "themes/Obsidian/upload/remove.php",
type: "POST",
data: {remove: "1"},
success: function(data)
{
$("#avatar").remove();
$(".menu .avatar-cover").prepend('<img id="avatar" src="themes/Obsidian/images/default_avatar.png">');
},
error: function(data)
{
}
});
}); //body.on.click end.
$(".avatarinput").change((function(){
$("#avatar").remove();
$(".avatar-cover").prepend('<img id="avatar" src="themes/Obsidian/images/spinner_big.gif">');
var form = $('#ava-form').get(0);
$.ajax({
url: "themes/Obsidian/upload/upload.php",
type: "POST",
data: new FormData(form),
async: false,
contentType: false,
cache: false,
processData:false,
success: function(data)
{
$("#avatar").remove();
$(".avatar-cover").prepend(data).fadeIn();
$.cookie('avatar', data, { expires: 365, path: '/' });
},
error: function()
{
$("#avatar").remove();
$(".avatar-cover").prepend('<img id="avatar" src="themes/Obsidian/images/error.png">').fadeIn();
}
});
})); //body.on.change end.
if($("#refresh-manual").length > 0) {
$('.main-content').attr('style', 'background: rgba(22,37,53,0.4);');
}
$(window).load(function() {
$(".datetime").fadeIn(2000);
$(".menu > ul").fadeIn(2000);
$(".main-content").fadeIn(2000);
});
}); //document.ready end

1
themes/Obsidian/js/config.min.js vendored Normal file
View file

@ -0,0 +1 @@
jQuery(function(a){a.ajax({type:"GET",url:"themes/Obsidian/config/config.xml",dataType:"xml",success:function(g){var j=a.parseXML(g),c=a(j);var h=a(g).find("favicon").text();var i=a(g).find("loginbg").text();var e=a(g).find("bgblur").text();var d=a(g).find("logo").text();var b=a(g).find("pace").text();var f=a(g).find("responsive").text();a("#m_favicon").attr("href",h);a("head").append('<style>#login-bg:before{background-image: url("'+i+'");}</style>');if(e==1){window.onload=function(){a("head").append("<style>#login-bg:before{-webkit-filter: blur(5px);-moz-filter: blur(5px);-o-filter: blur(5px);-ms-filter: blur(5px);filter: blur(5px);}</style>")}}if(f==1){a("head").append('<meta name="viewport" content="width=device-width, initial-scale=1">')}a("#m_logo").attr("src",d);if(b==0){window.onload=function(){a("#m_pace_js").remove();a("#m_pace_css").remove()}}}})});

View file

@ -0,0 +1,10 @@
/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.cookie=function(name,value,options){if(typeof value!="undefined"){options=options||{};if(value===null){value="";options.expires=-1;}var expires="";if(options.expires&&(typeof options.expires=="number"||options.expires.toUTCString)){var date;if(typeof options.expires=="number"){date=new Date();date.setTime(date.getTime()+(options.expires*24*60*60*1000));}else{date=options.expires;}expires="; expires="+date.toUTCString();}var path=options.path?"; path="+(options.path):"";var domain=options.domain?"; domain="+(options.domain):"";var secure=options.secure?"; secure":"";document.cookie=[name,"=",encodeURIComponent(value),expires,path,domain,secure].join("");}else{var cookieValue=null;if(document.cookie&&document.cookie!=""){var cookies=document.cookie.split(";");for(var i=0;i<cookies.length;i++){var cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+"=")){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}return cookieValue;}};

2
themes/Obsidian/js/pace.min.js vendored Normal file

File diff suppressed because one or more lines are too long

6
themes/Obsidian/js/tip.min.js vendored Normal file
View file

@ -0,0 +1,6 @@
// tipsy, facebook style tooltips for jquery
// version 1.0.0a
// (c) 2008-2010 jason frame [jason@onehackoranother.com]
// released under the MIT license
(function(c){function b(e,d){return(typeof e=="function")?(e.call(d)):e}function a(e,d){this.$element=c(e);this.options=d;this.enabled=true;this.fixTitle()}a.prototype={show:function(){var g=this.getTitle();if(g&&this.enabled){var f=this.tip();f.find(".tipsy-inner")[this.options.html?"html":"text"](g);f[0].className="tipsy";f.remove().css({top:0,left:0,visibility:"hidden",display:"block"}).prependTo(document.body);var j=c.extend({},this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight});var d=f[0].offsetWidth,i=f[0].offsetHeight,h=b(this.options.gravity,this.$element[0]);var e;switch(h.charAt(0)){case"n":e={top:j.top+j.height+this.options.offset,left:j.left+j.width/2-d/2};break;case"s":e={top:j.top-i-this.options.offset,left:j.left+j.width/2-d/2};break;case"e":e={top:j.top+j.height/2-i/2,left:j.left-d-this.options.offset};break;case"w":e={top:j.top+j.height/2-i/2,left:j.left+j.width+this.options.offset};break}if(h.length==2){if(h.charAt(1)=="w"){e.left=j.left+j.width/2-15}else{e.left=j.left+j.width/2-d+15}}f.css(e).addClass("tipsy-"+h);f.find(".tipsy-arrow")[0].className="tipsy-arrow tipsy-arrow-"+h.charAt(0);if(this.options.className){f.addClass(b(this.options.className,this.$element[0]))}if(this.options.fade){f.stop().css({opacity:0,display:"block",visibility:"visible"}).animate({opacity:this.options.opacity})}else{f.css({visibility:"visible",opacity:this.options.opacity})}}},hide:function(){if(this.options.fade){this.tip().stop().fadeOut(function(){c(this).remove()})}else{this.tip().remove()}},fixTitle:function(){var d=this.$element;if(d.attr("title")||typeof(d.attr("original-title"))!="string"){d.attr("original-title",d.attr("title")||"").removeAttr("title")}},getTitle:function(){var f,d=this.$element,e=this.options;this.fixTitle();var f,e=this.options;if(typeof e.title=="string"){f=d.attr(e.title=="title"?"original-title":e.title)}else{if(typeof e.title=="function"){f=e.title.call(d[0])}}f=(""+f).replace(/(^\s*|\s*$)/,"");return f||e.fallback},tip:function(){if(!this.$tip){this.$tip=c('<div class="tipsy"></div>').html('<div class="tipsy-arrow"></div><div class="tipsy-inner"></div>')}return this.$tip},validate:function(){if(!this.$element[0].parentNode){this.hide();this.$element=null;this.options=null}},enable:function(){this.enabled=true},disable:function(){this.enabled=false},toggleEnabled:function(){this.enabled=!this.enabled}};c.fn.tipsy=function(h){if(h===true){return this.data("tipsy")}else{if(typeof h=="string"){var j=this.data("tipsy");if(j){j[h]()}return this}}h=c.extend({},c.fn.tipsy.defaults,h);function g(l){var m=c.data(l,"tipsy");if(!m){m=new a(l,c.fn.tipsy.elementOptions(l,h));c.data(l,"tipsy",m)}return m}function k(){var l=g(this);l.hoverState="in";if(h.delayIn==0){l.show()}else{l.fixTitle();setTimeout(function(){if(l.hoverState=="in"){l.show()}},h.delayIn)}}function f(){var l=g(this);l.hoverState="out";if(h.delayOut==0){l.hide()}else{setTimeout(function(){if(l.hoverState=="out"){l.hide()}},h.delayOut)}}if(!h.live){this.each(function(){g(this)})}if(h.trigger!="manual"){var d=h.live?"live":"bind",i=h.trigger=="hover"?"mouseenter":"focus",e=h.trigger=="hover"?"mouseleave":"blur";this[d](i,k)[d](e,f)}return this};c.fn.tipsy.defaults={className:null,delayIn:0,delayOut:0,fade:true,fallback:"",gravity:"n",html:false,live:false,offset:0,opacity:0.8,title:"title",trigger:"hover"};c.fn.tipsy.elementOptions=function(e,d){return c.metadata?c.extend({},d,c(e).metadata()):d};c.fn.tipsy.autoNS=function(){return c(this).offset().top>(c(document).scrollTop()+c(window).height()/2)?"s":"n"};c.fn.tipsy.autoWE=function(){return c(this).offset().left>(c(document).scrollLeft()+c(window).width()/2)?"e":"w"};c.fn.tipsy.autoBounds=function(e,d){return function(){var f={ns:d[0],ew:(d.length>1?d[1]:false)},i=c(document).scrollTop()+e,g=c(document).scrollLeft()+e,h=c(this);if(h.offset().top<i){f.ns="n"}if(h.offset().left<g){f.ew="w"}if(c(window).width()+c(document).scrollLeft()-h.offset().left<e){f.ew="e"}if(c(window).height()+c(document).scrollTop()-h.offset().top<e){f.ns="s"}return f.ns+(f.ew?f.ew:"")}}})(jQuery);

View file

@ -0,0 +1,50 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="generator" content="HTML Tidy for Linux/x86 (vers 25 March 2009), see www.w3.org" />
<title>%title%</title>
<link rel="stylesheet" type="text/css" href= "themes/Obsidian/css/style.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
%header_code%
<script src="themes/Obsidian/js/cookie.js"></script>
<link href='themes/Obsidian/images/favicon.ico' id='m_favicon' rel='icon' type='image/x-icon'/>
<script src='themes/Obsidian/js/config.min.js' async></script>
<link rel='stylesheet' href='themes/Obsidian/css/pace/pace.css' />
<script src='themes/Obsidian/js/pace.min.js'></script>
<link rel="stylesheet" href="themes/Obsidian/css/tip.css" />
<script src="themes/Obsidian/js/tip.min.js"></script>
<script src="themes/Obsidian/js/Obsidian.min.js"></script>
<link rel='stylesheet' href='themes/Obsidian/css/responsive.css' />
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i" rel="stylesheet">
</head>
<body>
%meta%
%body%
<script type="text/javascript">
// ===== Scroll to Top ====
$(document).ready(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 100) {
$('#return-to-top').addClass("return-to-top-active");
} else {
$('#return-to-top').removeClass("return-to-top-active");
}
});
$('#return-to-top').click(function () {
$("html, body").animate({
scrollTop: 0
}, 600);
return false;
});
});
</script>
<a href="javascript:" id="return-to-top"><i class="fa fa-chevron-up"></i></a>
</body>
</html>

View file

@ -0,0 +1,126 @@
.clear {
clear: both;
}
.main-content{
border:none;
}
div.main-content a{
text-decoration:none;
}
a, a:link, a:hover, a:active, a:visited {
text-decoration:none;
}
table,.table0 {
font-family: 'Open Sans', sans-serif;
margin: 10px 0 15px;
text-align: left;
border-collapse: collapse;
border-spacing: 1px;
border: 1px solid #0F1A26 !important;
}
table tr:nth-child(1) td,.table0 {
background-color: #0F1A26 !important;
font-size: 10pt;
padding: 6px 5px !important;
}
#serverview {
border: 1px solid #0F1A26 !important;
}
input[type="submit"] {
outline: none !important;
}
tr,.table2 {
color: #fff;
padding: 6px 4px !important;
background-color: #162535 !important;
}
td {
padding: 5px 8px;
color: #fff;
border-bottom: 1px solid #0F1A26 !important;
}
select
{
background: rgba(29,50,72,0.501) !important;
padding: 2px;
border: 1px solid rgba(21,37,54,0.501) !important;
color: #fff;
}
input, textarea, select {
font-family: 'Open Sans', sans-serif;
font-size: 13px;
}
.online {
background-color: #20aa52;
display: inline;
padding: .2em .6em .3em;
font-size: 78%;
font-weight: 700;
line-height: 2.5;
color: #fff !important;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
position: relative;
top: -2px;
}
.offline {
background-color: #dd4b39;
display: inline;
padding: .2em .6em .3em;
font-size: 78%;
font-weight: 700;
line-height: 2.5;
color: #fff !important;
text-align: center;
white-space: nowrap;
vertical-align: baseline;
border-radius: .25em;
position: relative;
top: -2px;
}
h1, h2, h3, h4 {
font-family: 'Open Sans', sans-serif !important;
}
input,select {
outline: none !important;
}
textarea,input[type=file] {
border: 1px solid #121c32 !important;
background-color: rgba(29,50,72,0.501) !important;
padding: 3px 7px;
margin: 0px 0px 5px 0px;
}
legend {
font-family: 'Open Sans', sans-serif !important;
font-size: 15px !important;
letter-spacing: 1px;
padding: 0px 6px 0px 0px !important;
margin: -21px 4px 0px 4px !important;
border-bottom: 1px solid #575757;
}
fieldset {
border: 1px solid #575757;
margin: 40px 10px 10px 10px;
padding: 12px;
}
.propHeadline {
/*! font-size: 15px !important; */
color: #fff !important;
border-bottom: none !important;
margin: 5px 0px 2px 0px !important;
padding: 0px 0px 0px 0px !important;
font-family: 'Open Sans', sans-serif !important;
}
img[style="visibility:hidden;"] {
display: none;
}img[style="visibility:visible;"] {
display: inline-block;
}

View file

@ -0,0 +1,33 @@
input[name="edit"] {
background-color: #f1c40f !important;
border: 2px solid #f1c40f !important;
}
input[name="edit"]:hover {
background-color: #f39c12 !important;
border: 2px solid #f39c12 !important;
}
input[name="edit"]:active,input[name="remove"]:active {
border: 2px solid #204d74 !important;
background: #204d74 !important;
}
input[name="remove"] {
background-color: #e74c3c !important;
border: 2px solid #e74c3c !important;
}
input[name="remove"]:hover {
background-color: #c0392b !important;
border: 2px solid #c0392b !important;
}
table.center:nth-last-child(2) > tbody > tr > td:nth-child(3) {
background-color: #20aa52;
display: inline;
padding: .2em .6em .3em;
font-size: 78%;
font-weight: 700;
line-height: 3;
color: #fff;
text-align: center;
border-radius: .25em;
top: -2px;
}

Some files were not shown because too many files have changed in this diff Show more