Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
f5b93f5d39 | |||
5dacc36836 | |||
453f84f0e3 |
55
common.js
55
common.js
@@ -358,6 +358,61 @@ function get_services() {
|
||||
});
|
||||
}
|
||||
|
||||
function get_proxy_html() {
|
||||
proxy_html = `
|
||||
<fieldset>
|
||||
<legend>Enable proxy</legend>
|
||||
<div class="input-group">
|
||||
<form class="form-install" action="#" method="post" id="save_vpn">
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="vpn_domain">Please add domain url to download the VPN hash from (default: https://portal.safebox.network):</label>
|
||||
<input type="text" class="form-control" name="VPN_DOMAIN" id="vpn_domain" value="https://portal.safebox.network">
|
||||
<div class="invalid-feedback">
|
||||
Please enter a valid domain.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="vpn_pass">Please type in the generated VPN passkey (8 digits):</label>
|
||||
<input type="text" class="form-control" name="VPN_PASS" id="vpn_pass" value="" maxlength="8" size="10">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="letsencrypt_mail">Please add the letsencrypt mail address:</label>
|
||||
<input type="email" class="form-control" name="LETSENCRYPT_MAIL" id="letsencrypt_mail" value="">
|
||||
<div class="invalid-feedback">
|
||||
Please enter a valid email.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="letsencrypt_servername">Please add letsencrypt server name (default is letsencrypt but you can add zerossl too):</label>
|
||||
<input type="text" class="form-control" name="LETSENCRYPT_SERVERNAME" id="letsencrypt_servername" value="letsencrypt">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row buttons">
|
||||
<div class="mb-3">
|
||||
<button class="btn btn-lg btn-primary btn-block" type="button" id="vpn_save_btn"> Save </button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</fieldset>
|
||||
<script>
|
||||
jQuery('#vpn_save_btn').click(function() {
|
||||
console.log('vpn save');
|
||||
jQuery('#vpn').html('Loading...');
|
||||
save_vpn();
|
||||
});
|
||||
</script>
|
||||
`;
|
||||
jQuery("#vpn").html(proxy_html);
|
||||
}
|
||||
|
||||
function check_containers() {
|
||||
var url = 'scan.php?op=check_containers';
|
||||
jQuery.get(url, function(data) {
|
||||
|
@@ -132,3 +132,55 @@ body#scan{
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
||||
.info-container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
.info-icon {
|
||||
background-color: #007BFF;
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
padding: 4px 8px;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
visibility: hidden;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
text-align: left;
|
||||
border-radius: 4px;
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 125%; /* above the icon */
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tooltip::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 100%; /* bottom of tooltip */
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #333 transparent transparent transparent;
|
||||
}
|
||||
|
||||
.info-container:hover .tooltip {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
|
@@ -8,7 +8,7 @@
|
||||
<!-- Bootstrap CSS -->
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.2.1/dist/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
|
||||
<!-- Custom styles for this template -->
|
||||
<link href="installer.css?t=5" rel="stylesheet">
|
||||
<link href="installer.css?t=6" rel="stylesheet">
|
||||
</head>
|
||||
<body id="manage" class="text-center">
|
||||
<div class="container-fluid">
|
||||
|
106
manage2.html
106
manage2.html
@@ -368,6 +368,58 @@
|
||||
background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='10' viewBox='0 0 14 10'%3E%3Cpolyline points='1 1 7 7 13 1' style='fill:none;stroke:white;stroke-width:2' /%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.info-container {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
font-family: Arial, sans-serif;
|
||||
}
|
||||
|
||||
.info-icon {
|
||||
background-color: #007BFF;
|
||||
color: white;
|
||||
border-radius: 50%;
|
||||
padding: 4px 8px;
|
||||
cursor: pointer;
|
||||
font-weight: bold;
|
||||
font-size: 14px;
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.tooltip {
|
||||
visibility: hidden;
|
||||
background-color: #333;
|
||||
color: #fff;
|
||||
text-align: left;
|
||||
border-radius: 4px;
|
||||
padding: 8px;
|
||||
position: absolute;
|
||||
z-index: 1;
|
||||
bottom: 125%; /* above the icon */
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
opacity: 0;
|
||||
transition: opacity 0.3s;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tooltip::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 100%; /* bottom of tooltip */
|
||||
left: 50%;
|
||||
margin-left: -5px;
|
||||
border-width: 5px;
|
||||
border-style: solid;
|
||||
border-color: #333 transparent transparent transparent;
|
||||
}
|
||||
|
||||
.info-container:hover .tooltip {
|
||||
visibility: visible;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@media (max-width: 768px) {
|
||||
header {
|
||||
flex-direction: column;
|
||||
@@ -433,6 +485,11 @@
|
||||
<div class="profile" id="profileSection">
|
||||
<!--<img src="image.png" alt="Profilkép">-->
|
||||
<div id="vpnBtn">Pro</div>
|
||||
</div>
|
||||
<div style="text-align:center">
|
||||
Proxy status
|
||||
<span id="vpn_on" class="hidden green"><b>ON</b></span>
|
||||
<span id="vpn_off" class="hidden red"><b>OFF</b></span>
|
||||
</div>
|
||||
<div class="buttons">
|
||||
<button id="servicesBtn">Services</button>
|
||||
@@ -450,10 +507,10 @@
|
||||
<br>
|
||||
<br>
|
||||
<div style="text-align:center;">
|
||||
<a href="manage2.html" id="refresh_btn">REFRESH</a>
|
||||
<a href="manage.html" id="refresh_btn">REFRESH</a>
|
||||
<br>
|
||||
<br>
|
||||
<a href="manage.html" id="old_btn">OLD DESIGN</a>
|
||||
<a href="manage2.html" id="old_btn">OLD DESIGN</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -599,48 +656,11 @@
|
||||
|
||||
function renderVPN() {
|
||||
myAppsContainer.innerHTML = `
|
||||
<fieldset>
|
||||
<legend>Enable proxy</legend>
|
||||
<form class="form-install" action="#" method="post" id="save_vpn">
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="vpn_domain">Please add domain url to download the VPN hash from (default: https://portal.safebox.network):</label>
|
||||
<input type="text" class="form-control" name="VPN_DOMAIN" id="vpn_domain" value="https://portal.safebox.network">
|
||||
<div class="invalid-feedback">
|
||||
Please enter a valid domain.
|
||||
<div id="vpn">
|
||||
Loading...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="vpn_pass">Please type in the generated VPN passkey (8 digits):</label>
|
||||
<input type="text" class="form-control" name="VPN_PASS" id="vpn_pass" value="" maxlength="8" size="10">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="letsencrypt_mail">Please add the letsencrypt mail address:</label>
|
||||
<input type="email" class="form-control" name="LETSENCRYPT_MAIL" id="letsencrypt_mail" value="">
|
||||
<div class="invalid-feedback">
|
||||
Please enter a valid email.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<label for="letsencrypt_servername">Please add letsencrypt server name (default is letsencrypt but you can add zerossl too):</label>
|
||||
<input type="text" class="form-control" name="LETSENCRYPT_SERVERNAME" id="letsencrypt_servername" value="letsencrypt">
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="mb-3">
|
||||
<button class="btn btn-lg btn-primary btn-block" type="submit" id="vpn_save_btn"> Save </button>
|
||||
<button class="btn btn-lg btn-primary btn-block" type="button" id="vpn_cancel_btn"> Cancel </button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
`;
|
||||
get_proxy_html();
|
||||
}
|
||||
|
||||
function renderServices() {
|
||||
@@ -743,6 +763,6 @@
|
||||
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.14.6/dist/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.2.1/dist/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
|
||||
<script src="common.js?t=4"></script>
|
||||
<script src="common.js?t=7"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
17
scan.php
17
scan.php
@@ -194,14 +194,27 @@ switch ($_GET["op"]) {
|
||||
}
|
||||
}
|
||||
echo '</div>';
|
||||
if (!empty($template->icon)) echo "<div class=\"row\"><img src=\"".$template->icon."\"></div>";
|
||||
if (!empty($template->description)) echo "<div class=\"row\"><label>".$template->description."</label></div>";
|
||||
foreach ($template->fields as $field) {
|
||||
if (!empty($field->title)) echo "<div class=\"row\"><b>".$field->title."</b></div>";
|
||||
if (isset($field->generated)) {
|
||||
echo "<input type=\"hidden\" value=\"generated:{$field->generated}\" name=\"{$field->key}\" id=\"{$template->name}_{$field->key}\" class=\"additional_{$template->name}\">";
|
||||
}
|
||||
else {
|
||||
echo "<div class=\"row\"><div class=\"mb-3\"><label>".$field->description."</label>
|
||||
echo "<div class=\"row\">";
|
||||
echo "<div>
|
||||
<label>".$field->description."</label>
|
||||
<input ".($field->required=="true" ? "required" : "")." type=\"".(!empty($field->type) ? $field->type : "text")."\" value=\"{$field->value}\" name=\"{$field->key}\" id=\"{$template->name}_{$field->key}\" class=\"additional_{$template->name}\">
|
||||
</div></div>";
|
||||
</div>";
|
||||
if (!empty($field->info)) echo "
|
||||
<div class=\"info-container\">
|
||||
<span class=\"info-icon\">i</span>
|
||||
<div class=\"tooltip\">{$field->info}</div>
|
||||
</div>
|
||||
";
|
||||
echo "</div>";
|
||||
if (!empty($field->details)) echo "<div class=\"row\"><i>".$field->details."</i></div>";
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user