Merge branch 'Development' into Development

This commit is contained in:
iBNu Maksum 2024-08-15 14:13:17 +07:00 committed by GitHub
commit c548f8e307
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 298 additions and 261 deletions

View File

@ -233,7 +233,7 @@ try {
$v->status = "1"; $v->status = "1";
$v->used_date = date('Y-m-d H:i:s'); $v->used_date = date('Y-m-d H:i:s');
$v->save(); $v->save();
$tur = ORM::for_table('tbl_user_recharges')->whereRaw("BINARY `code` = '$username'")->find_one(); $tur = ORM::for_table('tbl_user_recharges')->whereRaw("BINARY `username` = '$username'")->find_one();
if ($tur) { if ($tur) {
process_radiust_rest($tur, $code); process_radiust_rest($tur, $code);
} else { } else {
@ -323,8 +323,8 @@ try {
$d->macaddr = _post('macAddr'); $d->macaddr = _post('macAddr');
$d->dateAdded = date('Y-m-d H:i:s'); $d->dateAdded = date('Y-m-d H:i:s');
$d->save(); $d->save();
if ($d->acctstatustype == 'Start') { if (_post('acctStatusType') == 'Start') {
$tur = ORM::for_table('tbl_user_recharges')->whereRaw("BINARY `code` = '$username'")->where('status', 'on')->where('routers', 'radius')->find_one(); $tur = ORM::for_table('tbl_user_recharges')->whereRaw("BINARY `username` = '$username'")->where('status', 'on')->where('routers', 'radius')->find_one();
$plan = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one(); $plan = ORM::for_table('tbl_plans')->where('id', $tur['plan_id'])->find_one();
if ($plan['limit_type'] == "Data_Limit" || $plan['limit_type'] == "Both_Limit") { if ($plan['limit_type'] == "Data_Limit" || $plan['limit_type'] == "Both_Limit") {
$totalUsage = $d['acctOutputOctets'] + $d['acctInputOctets']; $totalUsage = $d['acctOutputOctets'] + $d['acctInputOctets'];

View File

@ -702,5 +702,25 @@
"New_Voucher_Created": "New Voucher Created", "New_Voucher_Created": "New Voucher Created",
"New_Voucher_for_10mbps_Created": "New Voucher for 10mbps Created", "New_Voucher_for_10mbps_Created": "New Voucher for 10mbps Created",
"Show_Chart": "Show Chart", "Show_Chart": "Show Chart",
"": "" "For_PDF_Reports___Best_size_1078_x_200___uploaded_image_will_be_autosize": "For PDF Reports | Best size 1078 x 200 | uploaded image will be autosize",
"For_invoice_print_using_Thermal_Printer": "For invoice print using Thermal Printer",
"Theme": "Theme",
"Theme_Info": "Theme Info",
"This_used_for_admin_to_select_payment_in_recharge__using_comma_for_every_new_options": "This used for admin to select payment in recharge, using comma for every new options",
"Income_will_reset_every_this_day": "Income will reset every this day",
"edit_at_config_php": "edit at config.php",
"Hide_Dashboard_Content": "Hide Dashboard Content",
"Radius_Instructions": "Radius Instructions",
"Customer_can_request_to_extend_expirations": "Customer can request to extend expirations",
"i_agree_to_extends_and_will_paid_full_after_this": "i agree to extends and will paid full after this",
"Telegram_Bot_Token": "Telegram Bot Token",
"You_will_get_Payment_and_Error_notification_": "You will get Payment and Error notification<",
"Must_include": "Must include",
"it_will_be_replaced_": "it will be replaced.",
"Or_use_Mikrotik_SMS": "Or use Mikrotik SMS",
"You_can_use": "You can use",
"in_here_too_": "in here too.",
"Empty_this_to_use_internal_mail___PHP": "Empty this to use internal mail() PHP",
"Mail_Reply_To": "Mail Reply To",
"Customer_will_reply_email_to_this_address__empty_if_you_want_to_use_From_Address": "Customer will reply email to this address, empty if you want to use From Address"
} }

Binary file not shown.

View File

@ -83,7 +83,8 @@
</select> </select>
</div> </div>
<p class="help-block col-md-4"><a <p class="help-block col-md-4"><a
href="https://github.com/hotspotbilling/phpnuxbill/wiki/Themes" target="_blank">{Lang::T('Theme Info')}</a></p> href="https://github.com/hotspotbilling/phpnuxbill/wiki/Themes"
target="_blank">{Lang::T('Theme Info')}</a></p>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-md-2 control-label">{Lang::T('Recharge Using')}</label> <label class="col-md-2 control-label">{Lang::T('Recharge Using')}</label>
@ -92,8 +93,9 @@
value="{$_c['payment_usings']}" value="{$_c['payment_usings']}"
placeholder="{Lang::T('Cash')}, {Lang::T('Bank Transfer')}"> placeholder="{Lang::T('Cash')}, {Lang::T('Bank Transfer')}">
</div> </div>
<p class="help-block col-md-4">{Lang::T('This used for admin to select payment in recharge, using comma <p class="help-block col-md-4">
for every new options')}</p> {Lang::T('This used for admin to select payment in recharge, using comma for every new options')}
</p>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -191,8 +193,7 @@
</select> </select>
</div> </div>
<p class="help-block col-md-4"> <p class="help-block col-md-4">
{Lang::T('Customer just Login with Phone number and Voucher Code, Voucher will be {Lang::T('Customer just Login with Phone number and Voucher Code, Voucher will be password')}
password')}
</p> </p>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -202,8 +203,7 @@
placeholder="https://192.168.88.1/status" value="{$_c['voucher_redirect']}"> placeholder="https://192.168.88.1/status" value="{$_c['voucher_redirect']}">
</div> </div>
<p class="help-block col-md-4"> <p class="help-block col-md-4">
{Lang::T('After Customer activate voucher or login, customer will be redirected to this {Lang::T('After Customer activate voucher or login, customer will be redirected to this url')}
url')}
</p> </p>
</div> </div>
{/if} {/if}
@ -326,8 +326,9 @@
value="{$_c['telegram_target_id']}" placeholder="12345678"> value="{$_c['telegram_target_id']}" placeholder="12345678">
</div> </div>
</div> </div>
<small id="emailHelp" class="form-text text-muted">{Lang::T('You will get Payment and Error <small id="emailHelp" class="form-text text-muted">
notification')}</small> {Lang::T('You will get Payment and Error notification')}
</small>
</div> </div>
<div class="panel-heading"> <div class="panel-heading">
<div class="btn-group pull-right"> <div class="btn-group pull-right">
@ -344,7 +345,8 @@
<input type="text" class="form-control" id="sms_url" name="sms_url" value="{$_c['sms_url']}" <input type="text" class="form-control" id="sms_url" name="sms_url" value="{$_c['sms_url']}"
placeholder="https://domain/?param_number=[number]&param_text=[text]&secret="> placeholder="https://domain/?param_number=[number]&param_text=[text]&secret=">
</div> </div>
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> &amp; <b>[number]</b>, {Lang::T('it will be replaced.')} <p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> &amp; <b>[number]</b>,
{Lang::T('it will be replaced.')}
</p> </p>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -359,11 +361,13 @@
{/foreach} {/foreach}
</select> </select>
</div> </div>
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> &amp; <b>[number]</b>, {Lang::T('it will be replaced.')} <p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> &amp; <b>[number]</b>,
{Lang::T('it will be replaced.')}
</p> </p>
</div> </div>
<small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp {Lang::T('in here too.')} <a <small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp
href="https://wa.nux.my.id/login" target="_blank">Free Server</a></small> {Lang::T('in here too.')} <a href="https://wa.nux.my.id/login" target="_blank">Free
Server</a></small>
</div> </div>
<div class="panel-heading"> <div class="panel-heading">
<div class="btn-group pull-right"> <div class="btn-group pull-right">
@ -380,10 +384,12 @@
<input type="text" class="form-control" id="wa_url" name="wa_url" value="{$_c['wa_url']}" <input type="text" class="form-control" id="wa_url" name="wa_url" value="{$_c['wa_url']}"
placeholder="https://domain/?param_number=[number]&param_text=[text]&secret="> placeholder="https://domain/?param_number=[number]&param_text=[text]&secret=">
</div> </div>
<p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> &amp; <b>[number]</b>, {Lang::T('it will be replaced.')} <p class="help-block col-md-4">{Lang::T('Must include')} <b>[text]</b> &amp; <b>[number]</b>,
{Lang::T('it will be replaced.')}
</div> </div>
<small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp {Lang::T('in here too.')} <a <small id="emailHelp" class="form-text text-muted">{Lang::T('You can use')} WhatsApp
href="https://wa.nux.my.id/login" target="_blank">Free Server</a></small> {Lang::T('in here too.')} <a href="https://wa.nux.my.id/login" target="_blank">Free
Server</a></small>
</div> </div>
<div class="panel-heading"> <div class="panel-heading">
<div class="btn-group pull-right"> <div class="btn-group pull-right">
@ -449,8 +455,9 @@
<input type="text" class="form-control" id="mail_reply_to" name="mail_reply_to" <input type="text" class="form-control" id="mail_reply_to" name="mail_reply_to"
value="{$_c['mail_reply_to']}" placeholder="support@host.tld"> value="{$_c['mail_reply_to']}" placeholder="support@host.tld">
</div> </div>
<p class="help-block col-md-4">{Lang::T('Customer will reply email to this address, empty if you want to <p class="help-block col-md-4">
use From Address')}</p> {Lang::T('Customer will reply email to this address, empty if you want to use From Address')}
</p>
</div> </div>
</div> </div>
<div class="panel-heading"> <div class="panel-heading">
@ -585,19 +592,23 @@
<label class="col-md-2 control-label">{Lang::T('Enable Session Timeout')}</label> <label class="col-md-2 control-label">{Lang::T('Enable Session Timeout')}</label>
<div class="col-md-6"> <div class="col-md-6">
<label class="switch"> <label class="switch">
<input type="checkbox" id="enable_session_timeout" value="1" name="enable_session_timeout" {if $_c['enable_session_timeout']==1}checked{/if}> <input type="checkbox" id="enable_session_timeout" value="1"
name="enable_session_timeout" {if $_c['enable_session_timeout']==1}checked{/if}>
<span class="slider"></span> <span class="slider"></span>
</label> </label>
</div> </div>
<p class="help-block col-md-4">{Lang::T('Logout Admin if not Available/Online a period of time')}</p> <p class="help-block col-md-4">
{Lang::T('Logout Admin if not Available/Online a period of time')}</p>
</div> </div>
<div class="form-group" id="timeout_duration_input" style="display: none;"> <div class="form-group" id="timeout_duration_input" style="display: none;">
<label class="col-md-2 control-label">{Lang::T('Timeout Duration')}</label> <label class="col-md-2 control-label">{Lang::T('Timeout Duration')}</label>
<div class="col-md-6"> <div class="col-md-6">
<input type="number" value="{$_c['session_timeout_duration']}" class="form-control" name="session_timeout_duration" id="session_timeout_duration" <input type="number" value="{$_c['session_timeout_duration']}" class="form-control"
placeholder="{Lang::T('Enter the session timeout duration (minutes)')}" min="1"> name="session_timeout_duration" id="session_timeout_duration"
placeholder="{Lang::T('Enter the session timeout duration (minutes)')}" min="1">
</div> </div>
<p class="help-block col-md-4">{Lang::T('Idle Timeout, Logout Admin if Idle for xx minutes')}</p> <p class="help-block col-md-4">{Lang::T('Idle Timeout, Logout Admin if Idle for xx minutes')}
</p>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-md-2 control-label">{Lang::T('New Version Notification')}</label> <label class="col-md-2 control-label">{Lang::T('New Version Notification')}</label>
@ -624,8 +635,9 @@
</option> </option>
</select> </select>
</div> </div>
<p class="help-block col-md-4">{Lang::T('OTP is required when user want to change phone <p class="help-block col-md-4">
number')}</p> {Lang::T('OTP is required when user want to change phone number')}
</p>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="col-md-2 control-label">{Lang::T('OTP Method')}</label> <label class="col-md-2 control-label">{Lang::T('OTP Method')}</label>
@ -749,11 +761,11 @@
<div class="form-group"> <div class="form-group">
<label class="col-md-2 control-label">Github Username</label> <label class="col-md-2 control-label">Github Username</label>
<div class="col-md-6"> <div class="col-md-6">
<div class="input-group"> <div class="input-group">
<span class="input-group-addon">https://github.com/</span> <span class="input-group-addon">https://github.com/</span>
<input type="text" class="form-control" id="github_username" name="github_username" <input type="text" class="form-control" id="github_username" name="github_username"
value="{$_c['github_username']}" placeholder="ibnux"> value="{$_c['github_username']}" placeholder="ibnux">
</div> </div>
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
@ -764,7 +776,8 @@
onmouseleave="this.type = 'password'" onmouseenter="this.type = 'text'"> onmouseleave="this.type = 'password'" onmouseenter="this.type = 'text'">
</div> </div>
<span class="help-block col-md-4"><a href="https://github.com/settings/tokens/new" <span class="help-block col-md-4"><a href="https://github.com/settings/tokens/new"
target="_blank">Create GitHub personal access token (classic)</a>, only need repo scope</span> target="_blank">Create GitHub personal access token (classic)</a>, only need repo
scope</span>
</div> </div>
<div class="form-group"> <div class="form-group">
<label class="control-label col-md-offset-2 col-md-8" style="text-align: left;">This will allow <label class="control-label col-md-offset-2 col-md-8" style="text-align: left;">This will allow
@ -776,8 +789,9 @@
<div class="panel-body"> <div class="panel-body">
<div class="form-group"> <div class="form-group">
<button class="btn btn-success btn-block" type="submit">{Lang::T('Save <button class="btn btn-success btn-block" type="submit">
Changes')}</button> {Lang::T('Save Changes')}
</button>
</div> </div>
</div> </div>
@ -823,7 +837,8 @@ add dst-host=*.{$_domain}</pre>
}); });
document.querySelector('form').addEventListener('submit', function(event) { document.querySelector('form').addEventListener('submit', function(event) {
if (sectionTimeoutCheckbox.checked && (!timeoutDurationField.value || isNaN(timeoutDurationField.value))) { if (sectionTimeoutCheckbox.checked && (!timeoutDurationField.value || isNaN(
timeoutDurationField.value))) {
event.preventDefault(); event.preventDefault();
alert('Please enter a valid session timeout duration.'); alert('Please enter a valid session timeout duration.');
timeoutDurationField.focus(); timeoutDurationField.focus();
@ -880,4 +895,4 @@ add dst-host=*.{$_domain}</pre>
document.getElementById("tax_rate").addEventListener("change", toggleCustomTaxRate); document.getElementById("tax_rate").addEventListener("change", toggleCustomTaxRate);
}); });
</script> </script>
{include file="sections/footer.tpl"} {include file="sections/footer.tpl"}

View File

@ -1,101 +1,101 @@
</section> </section>
</div> </div>
<footer class="main-footer"> <footer class="main-footer">
<div class="pull-right" id="version" onclick="location.href = '{$_url}community#latestVersion';"></div> <div class="pull-right" id="version" onclick="location.href = '{$_url}community#latestVersion';"></div>
PHPNuxBill by <a href="https://github.com/hotspotbilling/phpnuxbill" rel="nofollow noreferrer noopener" PHPNuxBill by <a href="https://github.com/hotspotbilling/phpnuxbill" rel="nofollow noreferrer noopener"
target="_blank">iBNuX</a>, Theme by <a href="https://adminlte.io/" rel="nofollow noreferrer noopener" target="_blank">iBNuX</a>, Theme by <a href="https://adminlte.io/" rel="nofollow noreferrer noopener"
target="_blank">AdminLTE</a> target="_blank">AdminLTE</a>
</footer> </footer>
</div> </div>
<script src="{$app_url}/ui/ui/scripts/jquery.min.js"></script> <script src="ui/ui/scripts/jquery.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/bootstrap.min.js"></script> <script src="ui/ui/scripts/bootstrap.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/adminlte.min.js"></script> <script src="ui/ui/scripts/adminlte.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/plugins/select2.min.js"></script> <script src="ui/ui/scripts/plugins/select2.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/pace.min.js"></script> <script src="ui/ui/scripts/pace.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/custom.js"></script> <script src="ui/ui/scripts/custom.js"></script>
{if isset($xfooter)} {if isset($xfooter)}
{$xfooter} {$xfooter}
{/if} {/if}
{literal} {literal}
<script> <script>
$(document).ready(function() { $(document).ready(function() {
$('.select2').select2({theme: "bootstrap"}); $('.select2').select2({theme: "bootstrap"});
$('.select2tag').select2({theme: "bootstrap", tags: true}); $('.select2tag').select2({theme: "bootstrap", tags: true});
var listAtts = document.querySelectorAll(`button[type="submit"]`); var listAtts = document.querySelectorAll(`button[type="submit"]`);
listAtts.forEach(function(el) { listAtts.forEach(function(el) {
if (el.addEventListener) { // all browsers except IE before version 9 if (el.addEventListener) { // all browsers except IE before version 9
el.addEventListener("click", function() { el.addEventListener("click", function() {
$(this).html( $(this).html(
`<span class="loading"></span>` `<span class="loading"></span>`
); );
// setTimeout(() => { // setTimeout(() => {
// $(this).prop("disabled", true); // $(this).prop("disabled", true);
// }, 100); // }, 100);
}, false); }, false);
} else { } else {
if (el.attachEvent) { // IE before version 9 if (el.attachEvent) { // IE before version 9
el.attachEvent("click", function() { el.attachEvent("click", function() {
$(this).html( $(this).html(
`<span class="loading"></span>` `<span class="loading"></span>`
); );
// setTimeout(() => { // setTimeout(() => {
// $(this).prop("disabled", true); // $(this).prop("disabled", true);
// }, 100); // }, 100);
});
}
}
});
setTimeout(() => {
var listAttApi = document.querySelectorAll(`[api-get-text]`);
listAttApi.forEach(function(el) {
$.get(el.getAttribute('api-get-text'), function(data) {
el.innerHTML = data;
});
}); });
}, 500); }
}
});
setTimeout(() => {
var listAttApi = document.querySelectorAll(`[api-get-text]`);
listAttApi.forEach(function(el) {
$.get(el.getAttribute('api-get-text'), function(data) {
el.innerHTML = data;
});
}); });
}, 500);
});
function setKolaps() { function setKolaps() {
var kolaps = getCookie('kolaps'); var kolaps = getCookie('kolaps');
if (kolaps) { if (kolaps) {
setCookie('kolaps', false, 30); setCookie('kolaps', false, 30);
} else { } else {
setCookie('kolaps', true, 30); setCookie('kolaps', true, 30);
} }
return true; return true;
} }
function setCookie(name, value, days) { function setCookie(name, value, days) {
var expires = ""; var expires = "";
if (days) { if (days) {
var date = new Date(); var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString(); expires = "; expires=" + date.toUTCString();
} }
document.cookie = name + "=" + (value || "") + expires + "; path=/"; document.cookie = name + "=" + (value || "") + expires + "; path=/";
} }
function getCookie(name) { function getCookie(name) {
var nameEQ = name + "="; var nameEQ = name + "=";
var ca = document.cookie.split(';'); var ca = document.cookie.split(';');
for (var i = 0; i < ca.length; i++) { for (var i = 0; i < ca.length; i++) {
var c = ca[i]; var c = ca[i];
while (c.charAt(0) == ' ') c = c.substring(1, c.length); while (c.charAt(0) == ' ') c = c.substring(1, c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
} }
return null; return null;
} }
$(function() { $(function() {
$('[data-toggle="tooltip"]').tooltip() $('[data-toggle="tooltip"]').tooltip()
}) })
$("[data-toggle=popover]").popover(); $("[data-toggle=popover]").popover();
</script> </script>
{/literal} {/literal}
</body> </body>
</html> </html>

View File

@ -5,18 +5,18 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>{$_title} - {$_c['CompanyName']}</title> <title>{$_title} - {$_c['CompanyName']}</title>
<link rel="shortcut icon" href="{$app_url}/ui/ui/images/logo.png" type="image/x-icon" /> <link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
<link rel="stylesheet" href="{$app_url}/ui/ui/styles/bootstrap.min.css"> <link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
<link rel="stylesheet" href="{$app_url}/ui/ui/fonts/ionicons/css/ionicons.min.css"> <link rel="stylesheet" href="ui/ui/fonts/ionicons/css/ionicons.min.css">
<link rel="stylesheet" href="{$app_url}/ui/ui/fonts/font-awesome/css/font-awesome.min.css"> <link rel="stylesheet" href="ui/ui/fonts/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="{$app_url}/ui/ui/styles/modern-AdminLTE.min.css"> <link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
<link rel="stylesheet" href="{$app_url}/ui/ui/styles/select2.min.css" /> <link rel="stylesheet" href="ui/ui/styles/select2.min.css" />
<link rel="stylesheet" href="{$app_url}/ui/ui/styles/select2-bootstrap.min.css" /> <link rel="stylesheet" href="ui/ui/styles/select2-bootstrap.min.css" />
<link rel="stylesheet" href="{$app_url}/ui/ui/styles/sweetalert2.min.css" /> <link rel="stylesheet" href="ui/ui/styles/sweetalert2.min.css" />
<link rel="stylesheet" href="{$app_url}/ui/ui/styles/plugins/pace.css" /> <link rel="stylesheet" href="ui/ui/styles/plugins/pace.css" />
<script src="{$app_url}/ui/ui/scripts/sweetalert2.all.min.js"></script> <script src="ui/ui/scripts/sweetalert2.all.min.js"></script>
<style> <style>
::-moz-selection { ::-moz-selection {
/* Code for Firefox */ /* Code for Firefox */

View File

@ -1,114 +1,116 @@
</section> </section>
</div>
{if isset($_c['CompanyFooter'])}
<footer class="main-footer">
{$_c['CompanyFooter']}
<div class="pull-right">
<a href="javascript:showPrivacy()">Privacy</a>
&bull;
<a href="javascript:showTaC()">T &amp; C</a>
</div> </div>
{if isset($_c['CompanyFooter'])} </footer>
<footer class="main-footer"> {else}
{$_c['CompanyFooter']} <footer class="main-footer">
<div class="pull-right"> PHPNuxBill by <a href="https://github.com/hotspotbilling/phpnuxbill" rel="nofollow noreferrer noopener"
<a href="javascript:showPrivacy()">Privacy</a> target="_blank">iBNuX</a>, Theme by <a href="https://adminlte.io/" rel="nofollow noreferrer noopener"
&bull; target="_blank">AdminLTE</a>
<a href="javascript:showTaC()">T &amp; C</a> <div class="pull-right">
</div> <a href="javascript:showPrivacy()">Privacy</a>
</footer> &bull;
{else} <a href="javascript:showTaC()">T &amp; C</a>
<footer class="main-footer">
PHPNuxBill by <a href="https://github.com/hotspotbilling/phpnuxbill" rel="nofollow noreferrer noopener"
target="_blank">iBNuX</a>, Theme by <a href="https://adminlte.io/" rel="nofollow noreferrer noopener"
target="_blank">AdminLTE</a>
<div class="pull-right">
<a href="javascript:showPrivacy()">Privacy</a>
&bull;
<a href="javascript:showTaC()">T &amp; C</a>
</div>
</footer>
{/if}
</div> </div>
</footer>
{/if}
</div>
<!-- Modal --> <!-- Modal -->
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog"> <div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button> aria-hidden="true">&times;</span></button>
</div> </div>
<div class="modal-body" id="HTMLModal_konten"></div> <div class="modal-body" id="HTMLModal_konten"></div>
<div class="modal-footer"> <div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">&times;</button> <button type="button" class="btn btn-default" data-dismiss="modal">&times;</button>
</div>
</div>
</div> </div>
</div> </div>
</div>
</div>
<script src="{$app_url}/ui/ui/scripts/jquery.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/bootstrap.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/adminlte.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/plugins/select2.min.js"></script>
<script src="{$app_url}/ui/ui/scripts/custom.js?v=2"></script>
{if isset($xfooter)} <script src="ui/ui/scripts/jquery.min.js"></script>
{$xfooter} <script src="ui/ui/scripts/bootstrap.min.js"></script>
{/if} <script src="ui/ui/scripts/adminlte.min.js"></script>
{if $_c['tawkto'] != ''} <script src="ui/ui/scripts/plugins/select2.min.js"></script>
<!--Start of Tawk.to Script--> <script src="ui/ui/scripts/custom.js?v=2"></script>
<script type="text/javascript">
var Tawk_API = Tawk_API || {},
Tawk_LoadStart = new Date();
(function() {
var s1 = document.createElement("script"),
s0 = document.getElementsByTagName("script")[0];
s1.async = true;
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
s1.charset = 'UTF-8';
s1.setAttribute('crossorigin', '*');
s0.parentNode.insertBefore(s1, s0);
})();
</script>
<!--End of Tawk.to Script-->
{/if}
{literal} {if isset($xfooter)}
<script> {$xfooter}
var listAtts = document.querySelectorAll(`[api-get-text]`); {/if}
listAtts.forEach(function(el) {
$.get(el.getAttribute('api-get-text'), function(data) {
el.innerHTML = data;
});
});
$(document).ready(function() {
var listAtts = document.querySelectorAll(`button[type="submit"]`);
listAtts.forEach(function(el) {
if (el.addEventListener) { // all browsers except IE before version 9
el.addEventListener("click", function() {
$(this).html(
`<span class="loading"></span>`
);
setTimeout(() => {
$(this).prop("disabled", true);
}, 100);
}, false);
} else {
if (el.attachEvent) { // IE before version 9
el.attachEvent("click", function() {
$(this).html(
`<span class="loading"></span>`
);
setTimeout(() => {
$(this).prop("disabled", true);
}, 100);
});
}
}
$(function() {
$('[data-toggle="tooltip"]').tooltip()
})
});
});
</script>
{/literal}
</body> {if $_c['tawkto'] != ''}
<!--Start of Tawk.to Script-->
<script type="text/javascript">
var Tawk_API = Tawk_API || {},
Tawk_LoadStart = new Date();
(function() {
var s1 = document.createElement("script"),
s0 = document.getElementsByTagName("script")[0];
s1.async = true;
s1.src='https://embed.tawk.to/{$_c['tawkto']}';
s1.charset = 'UTF-8';
s1.setAttribute('crossorigin', '*');
s0.parentNode.insertBefore(s1, s0);
})();
</script>
<!--End of Tawk.to Script-->
{/if}
{literal}
<script>
var listAtts = document.querySelectorAll(`[api-get-text]`);
listAtts.forEach(function(el) {
$.get(el.getAttribute('api-get-text'), function(data) {
el.innerHTML = data;
});
});
$(document).ready(function() {
var listAtts = document.querySelectorAll(`button[type="submit"]`);
listAtts.forEach(function(el) {
if (el.addEventListener) { // all browsers except IE before version 9
el.addEventListener("click", function() {
$(this).html(
`<span class="loading"></span>`
);
setTimeout(() => {
$(this).prop("disabled", true);
}, 100);
}, false);
} else {
if (el.attachEvent) { // IE before version 9
el.attachEvent("click", function() {
$(this).html(
`<span class="loading"></span>`
);
setTimeout(() => {
$(this).prop("disabled", true);
}, 100);
});
}
}
$(function() {
$('[data-toggle="tooltip"]').tooltip()
})
});
});
</script>
{/literal}
</body>
</html> </html>

View File

@ -5,15 +5,15 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>{$_title} - {$_c['CompanyName']}</title> <title>{$_title} - {$_c['CompanyName']}</title>
<link rel="shortcut icon" href="{$app_url}ui/ui/images/logo.png" type="image/x-icon" /> <link rel="shortcut icon" href="ui/ui/images/logo.png" type="image/x-icon" />
<link rel="stylesheet" href="{$app_url}ui/ui/styles/bootstrap.min.css"> <link rel="stylesheet" href="ui/ui/styles/bootstrap.min.css">
<link rel="stylesheet" href="{$app_url}ui/ui/fonts/ionicons/css/ionicons.min.css"> <link rel="stylesheet" href="ui/ui/fonts/ionicons/css/ionicons.min.css">
<link rel="stylesheet" href="{$app_url}ui/ui/fonts/font-awesome/css/font-awesome.min.css"> <link rel="stylesheet" href="ui/ui/fonts/font-awesome/css/font-awesome.min.css">
<link rel="stylesheet" href="{$app_url}ui/ui/styles/modern-AdminLTE.min.css"> <link rel="stylesheet" href="ui/ui/styles/modern-AdminLTE.min.css">
<link rel="stylesheet" href="{$app_url}ui/ui/styles/sweetalert2.min.css" /> <link rel="stylesheet" href="ui/ui/styles/sweetalert2.min.css" />
<script src="{$app_url}ui/ui/scripts/sweetalert2.all.min.js"></script> <script src="ui/ui/scripts/sweetalert2.all.min.js"></script>
<style> <style>
@ -77,7 +77,7 @@
<body class="hold-transition modern-skin-dark sidebar-mini"> <body class="hold-transition modern-skin-dark sidebar-mini">
<div class="wrapper"> <div class="wrapper">
<header class="main-header" style="position:fixed; width: 100%"> <header class="main-header" style="position:fixed; width: 100%">
<a href="{$app_url}home" class="logo"> <a href="{$_url}home" class="logo">
<span class="logo-mini"><b>N</b>uX</span> <span class="logo-mini"><b>N</b>uX</span>
<span class="logo-lg">{$_c['CompanyName']}</span> <span class="logo-lg">{$_c['CompanyName']}</span>
</a> </a>
@ -90,14 +90,14 @@
<li class="dropdown notifications-menu"> <li class="dropdown notifications-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<i class="fa fa-envelope-o"></i> <i class="fa fa-envelope-o"></i>
<span class="label label-warning" api-get-text="{$app_url}autoload_user/inbox_unread"></span> <span class="label label-warning" api-get-text="{$_url}autoload_user/inbox_unread"></span>
</a> </a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li> <li>
<!-- inner menu: contains the actual data --> <!-- inner menu: contains the actual data -->
<ul class="menu" api-get-text="{$app_url}autoload_user/inbox"></ul> <ul class="menu" api-get-text="{$_url}autoload_user/inbox"></ul>
</li> </li>
<li class="footer"><a href="{$app_url}mail">{Lang::T('Inbox')}</a></li> <li class="footer"><a href="{$_url}mail">{Lang::T('Inbox')}</a></li>
</ul> </ul>
</li> </li>
<li class="dropdown user user-menu"> <li class="dropdown user user-menu">
@ -127,18 +127,18 @@
<li class="user-body"> <li class="user-body">
<div class="row"> <div class="row">
<div class="col-xs-7 text-center text-sm"> <div class="col-xs-7 text-center text-sm">
<a href="{$app_url}accounts/change-password"><i class="ion ion-settings"></i> <a href="{$_url}accounts/change-password"><i class="ion ion-settings"></i>
{Lang::T('Change Password')}</a> {Lang::T('Change Password')}</a>
</div> </div>
<div class="col-xs-5 text-center text-sm"> <div class="col-xs-5 text-center text-sm">
<a href="{$app_url}accounts/profile"><i class="ion ion-person"></i> <a href="{$_url}accounts/profile"><i class="ion ion-person"></i>
{Lang::T('My Account')}</a> {Lang::T('My Account')}</a>
</div> </div>
</div> </div>
</li> </li>
<li class="user-footer"> <li class="user-footer">
<div class="pull-right"> <div class="pull-right">
<a href="{$app_url}logout" class="btn btn-default btn-flat"><i <a href="{$_url}logout" class="btn btn-default btn-flat"><i
class="ion ion-power"></i> {Lang::T('Logout')}</a> class="ion ion-power"></i> {Lang::T('Logout')}</a>
</div> </div>
</li> </li>
@ -153,14 +153,14 @@
<section class="sidebar"> <section class="sidebar">
<ul class="sidebar-menu" data-widget="tree"> <ul class="sidebar-menu" data-widget="tree">
<li {if $_system_menu eq 'home'}class="active" {/if}> <li {if $_system_menu eq 'home'}class="active" {/if}>
<a href="{$app_url}home"> <a href="{$_url}home">
<i class="ion ion-monitor"></i> <i class="ion ion-monitor"></i>
<span>{Lang::T('Dashboard')}</span> <span>{Lang::T('Dashboard')}</span>
</a> </a>
</li> </li>
{$_MENU_AFTER_DASHBOARD} {$_MENU_AFTER_DASHBOARD}
<li {if $_system_menu eq 'inbox'}class="active" {/if}> <li {if $_system_menu eq 'inbox'}class="active" {/if}>
<a href="{$app_url}mail"> <a href="{$_url}mail">
<i class="fa fa-envelope"></i> <i class="fa fa-envelope"></i>
<span>{Lang::T('Inbox')}</span> <span>{Lang::T('Inbox')}</span>
</a> </a>
@ -168,7 +168,7 @@
{$_MENU_AFTER_INBOX} {$_MENU_AFTER_INBOX}
{if $_c['disable_voucher'] != 'yes'} {if $_c['disable_voucher'] != 'yes'}
<li {if $_system_menu eq 'voucher'}class="active" {/if}> <li {if $_system_menu eq 'voucher'}class="active" {/if}>
<a href="{$app_url}voucher/activation"> <a href="{$_url}voucher/activation">
<i class="fa fa-ticket"></i> <i class="fa fa-ticket"></i>
<span>{Lang::T('Voucher')}</span> <span>{Lang::T('Voucher')}</span>
</a> </a>
@ -177,20 +177,20 @@
{if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' } {if $_c['payment_gateway'] != 'none' or $_c['payment_gateway'] == '' }
{if $_c['enable_balance'] == 'yes'} {if $_c['enable_balance'] == 'yes'}
<li {if $_system_menu eq 'balance'}class="active" {/if}> <li {if $_system_menu eq 'balance'}class="active" {/if}>
<a href="{$app_url}order/balance"> <a href="{$_url}order/balance">
<i class="ion ion-ios-cart"></i> <i class="ion ion-ios-cart"></i>
<span>{Lang::T('Buy Balance')}</span> <span>{Lang::T('Buy Balance')}</span>
</a> </a>
</li> </li>
{/if} {/if}
<li {if $_system_menu eq 'package'}class="active" {/if}> <li {if $_system_menu eq 'package'}class="active" {/if}>
<a href="{$app_url}order/package"> <a href="{$_url}order/package">
<i class="ion ion-ios-cart"></i> <i class="ion ion-ios-cart"></i>
<span>{Lang::T('Buy Package')}</span> <span>{Lang::T('Buy Package')}</span>
</a> </a>
</li> </li>
<li {if $_system_menu eq 'history'}class="active" {/if}> <li {if $_system_menu eq 'history'}class="active" {/if}>
<a href="{$app_url}order/history"> <a href="{$_url}order/history">
<i class="fa fa-file-text"></i> <i class="fa fa-file-text"></i>
<span>{Lang::T('Order History')}</span> <span>{Lang::T('Order History')}</span>
</a> </a>
@ -198,7 +198,7 @@
{/if} {/if}
{$_MENU_AFTER_ORDER} {$_MENU_AFTER_ORDER}
<li {if $_system_menu eq 'list-activated'}class="active" {/if}> <li {if $_system_menu eq 'list-activated'}class="active" {/if}>
<a href="{$app_url}voucher/list-activated"> <a href="{$_url}voucher/list-activated">
<i class="fa fa-list-alt"></i> <i class="fa fa-list-alt"></i>
<span>{Lang::T('Activation History')}</span> <span>{Lang::T('Activation History')}</span>
</a> </a>

View File

@ -1,3 +1,3 @@
{ {
"version": "2024.8.13" "version": "2024.8.15"
} }