Merge branch 'Development' into feature/radius

This commit is contained in:
Ibnu Maksum 2023-09-27 14:26:12 +07:00
commit a313d45b03
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
33 changed files with 653 additions and 232 deletions

View File

@ -2,12 +2,20 @@
# CHANGELOG # CHANGELOG
## 2023.9.15 ## 2023.9.21
- Customer can extend Plan
- Customer can Deactivate active plan
- add variable nux-router to select only plan from that router
- Show user expired until 30 items
## 2023.9.20
- Fix Customer balance header - Fix Customer balance header
- Deactivate Customer active plan - Deactivate Customer active plan
- Sync Customer Plan to Mikrotik - Sync Customer Plan to Mikrotik
- Recharge Customer from Customer Details - Recharge Customer from Customer Details
- Add Privacy Policy and Terms and Conditions Pages
## 2023.9.13 ## 2023.9.13

View File

@ -11,6 +11,11 @@ if(isset($_GET['nux-mac']) && !empty($_GET['nux-mac'])){
if(isset($_GET['nux-ip']) && !empty($_GET['nux-ip'])){ if(isset($_GET['nux-ip']) && !empty($_GET['nux-ip'])){
$_SESSION['nux-ip'] = $_GET['nux-ip']; $_SESSION['nux-ip'] = $_GET['nux-ip'];
} }
if(isset($_GET['nux-router']) && !empty($_GET['nux-router'])){
$_SESSION['nux-router'] = $_GET['nux-router'];
}
require_once 'system/vendor/autoload.php'; require_once 'system/vendor/autoload.php';
require_once 'system/boot.php'; require_once 'system/boot.php';
App::_run(); App::_run();

View File

@ -7,11 +7,10 @@
define('QR_CACHEABLE', true); // use cache - more disk reads but less CPU power, masks and format templates are stored there define('QR_CACHEABLE', true); // use cache - more disk reads but less CPU power, masks and format templates are stored there
define('QR_CACHE_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR); // used when QR_CACHEABLE === true define('QR_CACHE_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR); // used when QR_CACHEABLE === true
define('QR_LOG_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR); // default error logs dir //define('QR_LOG_DIR', dirname(__FILE__).DIRECTORY_SEPARATOR); // default error logs dir
define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code define('QR_FIND_BEST_MASK', true); // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
define('QR_FIND_FROM_RANDOM', false); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly define('QR_FIND_FROM_RANDOM', false); // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false define('QR_DEFAULT_MASK', 2); // when QR_FIND_BEST_MASK === false
define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images define('QR_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images

View File

@ -56,7 +56,11 @@ class Lang
} }
public static function arrayCount($arr){ public static function arrayCount($arr){
if(is_array($arr)){
return count($arr); return count($arr);
}else{
return 0;
}
} }
public static function getNotifText($key){ public static function getNotifText($key){

View File

@ -299,4 +299,23 @@ class Validator
return (bool)in_array($format, $formats); return (bool)in_array($format, $formats);
} }
public static function countRouterPlan($plans, $router){
$n = 0;
foreach ($plans as $plan){
if($plan['routers'] == $router){
$n++;
}
}
return $n;
}
public static function isRouterHasPlan($plans, $router){
foreach ($plans as $plan){
if($plan['routers'] == $router){
return true;
}
}
return false;
}
} }

View File

@ -75,6 +75,8 @@ switch ($action) {
$b->expiration = date('Y-m-d'); $b->expiration = date('Y-m-d');
$b->time = date('H:i:s'); $b->time = date('H:i:s');
$b->save(); $b->save();
_log('Admin ' . $admin['username'] . ' Deactivate '.$b['namebp'].' for '.$b['username'], 'User', $b['customer_id']);
Message::sendTelegram('Admin ' . $admin['username'] . ' Deactivate '.$b['namebp'].' for u'.$b['username']);
r2(U . 'customers/view/' . $id_customer, 's', 'Success deactivate customer to Mikrotik'); r2(U . 'customers/view/' . $id_customer, 's', 'Success deactivate customer to Mikrotik');
} }
r2(U . 'customers/view/' . $id_customer, 'e', 'Cannot find active plan'); r2(U . 'customers/view/' . $id_customer, 'e', 'Cannot find active plan');

View File

@ -50,7 +50,7 @@ if (empty($c_all)) {
$ui->assign('c_all', $c_all); $ui->assign('c_all', $c_all);
//user expire //user expire
$expire = ORM::for_table('tbl_user_recharges')->where('expiration', $mdate)->order_by_desc('id')->find_many(); $expire = ORM::for_table('tbl_user_recharges')->whereLte('expiration', $mdate)->order_by_desc('id')->limit(30)->find_many();
$ui->assign('expire', $expire); $ui->assign('expire', $expire);
//activity log //activity log

View File

@ -90,6 +90,41 @@ if (_post('send') == 'balance') {
$bill = User::_billing(); $bill = User::_billing();
$ui->assign('_bill', $bill); $ui->assign('_bill', $bill);
if(isset($_GET['recharge']) && $_GET['recharge'] == 1){
$router = ORM::for_table('tbl_routers')->where('name', $bill['routers'])->find_one();
if ($config['enable_balance'] == 'yes') {
$plan = ORM::for_table('tbl_plans')->find_one($bill['plan_id']);
if($user['balance']>$plan['price']){
r2(U . "order/pay/$router[id]/$bill[plan_id]", 'e', 'Order Plan');
}else{
r2(U . "order/buy/$router[id]/$bill[plan_id]", 'e', 'Order Plan');
}
}else{
r2(U . "order/buy/$router[id]/$bill[plan_id]", 'e', 'Order Plan');
}
}else if(isset($_GET['deactivate']) && $_GET['deactivate'] == 1){
if ($bill) {
$mikrotik = Mikrotik::info($bill['routers']);
$client = Mikrotik::getClient($mikrotik['ip_address'], $mikrotik['username'], $mikrotik['password']);
if ($bill['type'] == 'Hotspot') {
Mikrotik::removeHotspotUser($client, $bill['username']);
Mikrotik::removeHotspotActiveUser($client, $bill['username']);
} else if ($bill['type'] == 'PPPOE') {
Mikrotik::removePpoeUser($client, $bill['username']);
Mikrotik::removePpoeActive($client, $bill['username']);
}
$bill->status = 'off';
$bill->expiration = date('Y-m-d');
$bill->time = date('H:i:s');
$bill->save();
_log('User ' . $bill['username'] . ' Deactivate '.$bill['namebp'], 'User', $bill['customer_id']);
Message::sendTelegram('User u' . $bill['username'] . ' Deactivate '.$bill['namebp']);
r2(U . 'home', 's', 'Success deactivate '.$bill['namebp']);
}else{
r2(U . 'home', 'e', 'No Active Plan');
}
}
if (!empty($_SESSION['nux-mac']) && !empty($_SESSION['nux-ip'])) { if (!empty($_SESSION['nux-mac']) && !empty($_SESSION['nux-ip'])) {
$ui->assign('nux_mac', $_SESSION['nux-mac']); $ui->assign('nux_mac', $_SESSION['nux-mac']);
$ui->assign('nux_ip', $_SESSION['nux-ip']); $ui->assign('nux_ip', $_SESSION['nux-ip']);

View File

@ -35,9 +35,19 @@ switch ($action) {
} }
$ui->assign('_title', 'Order Plan'); $ui->assign('_title', 'Order Plan');
$ui->assign('_system_menu', 'package'); $ui->assign('_system_menu', 'package');
if(!empty($_SESSION['nux-router'])){
$routers = ORM::for_table('tbl_routers')->where('id',$_SESSION['nux-router'])->find_many();
$rs = [];
foreach($routers as $r){
$rs[] = $r['name'];
}
$plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where_in('routers', $rs)->where('type', 'PPPOE')->find_many();
$plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where_in('routers', $rs)->where('type', 'Hotspot')->find_many();
}else{
$routers = ORM::for_table('tbl_routers')->find_many(); $routers = ORM::for_table('tbl_routers')->find_many();
$plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'PPPOE')->find_many(); $plans_pppoe = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'PPPOE')->find_many();
$plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Hotspot')->find_many(); $plans_hotspot = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Hotspot')->find_many();
}
$plans_balance = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Balance')->find_many(); $plans_balance = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Balance')->find_many();
$ui->assign('routers', $routers); $ui->assign('routers', $routers);
$ui->assign('plans_pppoe', $plans_pppoe); $ui->assign('plans_pppoe', $plans_pppoe);

View File

@ -15,8 +15,15 @@ if(strpos($action,"-post")===false){
//echo $path; //echo $path;
run_hook('view_edit_pages'); #HOOK run_hook('view_edit_pages'); #HOOK
if(!file_exists($path)){ if(!file_exists($path)){
$temp = "pages_template/".str_replace(".","",$action).".html";
if(file_exists($temp)){
if(!copy($temp, $path)){
touch($path); touch($path);
} }
}else{
touch($path);
}
}
if(file_exists($path)){ if(file_exists($path)){
$html = file_get_contents($path); $html = file_get_contents($path);
$ui->assign("htmls",str_replace(["<div","</div>"],"",$html)); $ui->assign("htmls",str_replace(["<div","</div>"],"",$html));

View File

@ -258,10 +258,10 @@ switch ($action) {
break; break;
case 'print-voucher': case 'print-voucher':
$from_id = _post('from_id') * 1; $from_id = _post('from_id');
$planid = _post('planid') * 1; $planid = _post('planid');
$pagebreak = _post('pagebreak') * 1; $pagebreak = _post('pagebreak');
$limit = _post('limit') * 1; $limit = _post('limit');
if ($pagebreak < 1) $pagebreak = 6; if ($pagebreak < 1) $pagebreak = 6;

View File

@ -70,7 +70,7 @@ switch ($action) {
$username = _post('username'); $username = _post('username');
$password = _post('password'); $password = _post('password');
$description = _post('description'); $description = _post('description');
$enabled = _post('enabled')*1; $enabled = _post('enabled');
$msg = ''; $msg = '';
if(Validator::Length($name,30,4) == false){ if(Validator::Length($name,30,4) == false){
@ -113,7 +113,7 @@ switch ($action) {
$username = _post('username'); $username = _post('username');
$password = _post('password'); $password = _post('password');
$description = _post('description'); $description = _post('description');
$enabled = $_POST['enabled']*1; $enabled = $_POST['enabled'];
$msg = ''; $msg = '';
if(Validator::Length($name,30,4) == false){ if(Validator::Length($name,30,4) == false){
$msg .= 'Name should be between 5 to 30 characters'. '<br>'; $msg .= 'Name should be between 5 to 30 characters'. '<br>';

View File

@ -310,7 +310,6 @@ $_L['Please_enter_your_email_address'] = 'Please enter your email address';
$_L['Failed_to_create_Paypal_transaction'] = 'Failed to create Paypal transaction.'; $_L['Failed_to_create_Paypal_transaction'] = 'Failed to create Paypal transaction.';
$_L['Plugin'] = 'Plugin'; $_L['Plugin'] = 'Plugin';
$_L['Plugin_Manager'] = 'Plugin Manager'; $_L['Plugin_Manager'] = 'Plugin Manager';
$_L['Plugin_Manager'] = 'Plugin Manager';
$_L['User_Notification'] = 'User Notification'; $_L['User_Notification'] = 'User Notification';
$_L['Expired_Notification'] = 'Expired Notification'; $_L['Expired_Notification'] = 'Expired Notification';
$_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired'; $_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired';
@ -386,7 +385,6 @@ $_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer';
$_L['Minimum_Transfer'] = 'Minimum Transfer'; $_L['Minimum_Transfer'] = 'Minimum Transfer';
$_L['Company_Logo'] = 'Company Logo'; $_L['Company_Logo'] = 'Company Logo';
$_L['Expired_IP_Pool'] = 'Expired IP Pool'; $_L['Expired_IP_Pool'] = 'Expired IP Pool';
$_L['Expired_IP_Pool'] = 'Expired IP Pool';
$_L['Proxy'] = 'Proxy'; $_L['Proxy'] = 'Proxy';
$_L['Proxy_Server'] = 'Proxy Server'; $_L['Proxy_Server'] = 'Proxy Server';
$_L['Proxy_Server_Login'] = 'Proxy Server Login'; $_L['Proxy_Server_Login'] = 'Proxy Server Login';
@ -400,5 +398,8 @@ $_L['Recharge_a_friend'] = 'Recharge a friend';
$_L['Buy_for_friend'] = 'Buy for friend'; $_L['Buy_for_friend'] = 'Buy for friend';
$_L['Buy_this_for_friend_account'] = 'Buy this for friend account?'; $_L['Buy_this_for_friend_account'] = 'Buy this for friend account?';
$_L['Review_package_before_recharge'] = 'Review package before recharge'; $_L['Review_package_before_recharge'] = 'Review package before recharge';
$_L['Activate'] = 'Activate';
$_L['Deactivate'] = 'Deactivate'; $_L['Deactivate'] = 'Deactivate';
$_L['Sync'] = 'Sync'; $_L['Sync'] = 'Sync';
$_L['Failed_to_create_PaymeTrust_transaction'] = 'Failed to create PaymeTrust transaction.';
$_L['Location'] = 'Location';

View File

@ -346,3 +346,55 @@ $_L['Disable_Voucher'] = 'Disable Voucher';
$_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer'; $_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer';
$_L['Reminder_Notification'] = 'Reminder Notification'; $_L['Reminder_Notification'] = 'Reminder Notification';
$_L['Invoice_Footer'] = 'Invoice Footer'; $_L['Invoice_Footer'] = 'Invoice Footer';
$_L['Reminder_7_days'] = 'Reminder 7 days';
$_L['Reminder_3_days'] = 'Reminder 3 days';
$_L['Reminder_1_day'] = 'Reminder 1 day';
$_L['PPPOE_Password'] = 'PPPOE Password';
$_L['User_Cannot_change_this_only_admin_if_it_Empty_it_will_use_user_password'] = 'User Cannot change this, only admin. if it Empty it will use user password';
$_L['Invoice_Balance_Message'] = 'Invoice Balance Message';
$_L['Invoice_Notification_Payment'] = 'Invoice Notification Payment';
$_L['Balance_Notification_Payment'] = 'Balance Notification Payment';
$_L['Buy_Balance'] = 'Buy Balance?';
$_L['Price'] = 'Price';
$_L['Validity'] = 'Validity';
$_L['Disable_auto_renewal'] = 'Disable auto renewal?';
$_L['Auto_Renewal_On'] = 'Auto Renewal On';
$_L['Enable_auto_renewal'] = 'Enable auto renewal?';
$_L['Auto_Renewal_Off'] = 'Auto Renewal Off';
$_L['Pay_With_Balance'] = 'Pay With Balance';
$_L['Pay_this_with_Balance_your_active_package_will_be_overwrite'] = 'Pay this with Balance? your active package will be overwrite';
$_L['Success_to_buy_package'] = 'Success to buy package';
$_L['Auto_Renewal'] = 'Auto Renewal';
$_L['View'] = 'View';
$_L['Back'] = 'Back';
$_L['Active'] = 'Active';
$_L['Transfer_Balance'] = 'Transfer Balance';
$_L['Send_your_balance'] = 'Send your balance?';
$_L['Send'] = 'Send';
$_L['Cannot_send_to_yourself'] = 'Cannot send to yourself';
$_L['Sending_balance_success'] = 'Sending balance success';
$_L['From'] = 'From';
$_L['To'] = 'To';
$_L['insufficient_balance'] = 'insufficient balance';
$_L['Send_Balance'] = 'Send Balance';
$_L['Received_Balance'] = 'Received Balance';
$_L['Minimum_Transfer'] = 'Minimum Transfer';
$_L['Proxy'] = 'Proxy';
$_L['Proxy_Server'] = 'Proxy Server';
$_L['Proxy_Server_Login'] = 'Proxy Server Login';
$_L['Hotspot_Plan'] = 'Hotspot Plan';
$_L['PPPOE_Plan'] = 'PPPOE Plan';
$_L['UNKNOWN'] = 'UNKNOWN';
$_L['Are_You_Sure'] = 'Are You Sure?';
$_L['Success_to_send_package'] = 'Success to send package';
$_L['Target_has_active_plan_different_with_current_plant'] = 'Target has active plan, different with current plant.';
$_L['Recharge_a_friend'] = 'Recharge a friend';
$_L['Buy_for_friend'] = 'Buy for friend';
$_L['Buy_this_for_friend_account'] = 'Buy this for friend account?';
$_L['Review_package_before_recharge'] = 'Review package before recharge';
$_L['Activate'] = 'Activate';
$_L['Deactivate'] = 'Deactivate';
$_L['Sync'] = 'Sync';
$_L['Failed_to_create_PaymeTrust_transaction'] = 'Failed to create PaymeTrust transaction.';
$_L['Location'] = 'Location';

View File

@ -149,7 +149,6 @@ $_L['Period_Reports'] = 'Informes del período';
$_L['All_Transactions'] = 'Todas las transacciones'; $_L['All_Transactions'] = 'Todas las transacciones';
$_L['Total_Income'] = 'Ingresos totales'; $_L['Total_Income'] = 'Ingresos totales';
$_L['All_Transactions_at_Date'] = 'Todas las transacciones en la fecha'; $_L['All_Transactions_at_Date'] = 'Todas las transacciones en la fecha';
$_L['Total_Income'] = 'Ingresos totales';
$_L['Export_for_Print'] = 'Exportar para imprimir'; $_L['Export_for_Print'] = 'Exportar para imprimir';
$_L['Print'] = 'Impresión'; $_L['Print'] = 'Impresión';
$_L['Export_to_PDF'] = 'Exportar a PDF'; $_L['Export_to_PDF'] = 'Exportar a PDF';
@ -310,7 +309,6 @@ $_L['Please_enter_your_email_address'] = 'Please enter your email address';
$_L['Failed_to_create_Paypal_transaction'] = 'Failed to create Paypal transaction.'; $_L['Failed_to_create_Paypal_transaction'] = 'Failed to create Paypal transaction.';
$_L['Plugin'] = 'Plugin'; $_L['Plugin'] = 'Plugin';
$_L['Plugin_Manager'] = 'Plugin Manager'; $_L['Plugin_Manager'] = 'Plugin Manager';
$_L['Plugin_Manager'] = 'Plugin Manager';
$_L['User_Notification'] = 'User Notification'; $_L['User_Notification'] = 'User Notification';
$_L['Expired_Notification'] = 'Expired Notification'; $_L['Expired_Notification'] = 'Expired Notification';
$_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired'; $_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired';
@ -342,3 +340,64 @@ $_L['Voucher_activation_menu_will_be_hidden'] = 'Voucher activation menu will be
$_L['Customer_can_deposit_money_to_buy_voucher'] = 'Customer can deposit money to buy voucher'; $_L['Customer_can_deposit_money_to_buy_voucher'] = 'Customer can deposit money to buy voucher';
$_L['Allow_balance_transfer_between_customers'] = 'Allow balance transfer between customers';$_L['Refill_Balance'] = 'Refill Balance'; $_L['Allow_balance_transfer_between_customers'] = 'Allow balance transfer between customers';$_L['Refill_Balance'] = 'Refill Balance';
$_L['Balance_Plans'] = 'Balance Plans'; $_L['Balance_Plans'] = 'Balance Plans';
$_L['Failed_to_create_transaction_'] = 'Failed to create transaction. ';
$_L['Failed_to_check_status_transaction_'] = 'Failed to check status transaction. ';
$_L['Disable_Voucher'] = 'Disable Voucher';
$_L['Reminder_Notification'] = 'Reminder Notification';
$_L['Reminder_Notification_Message'] = 'Reminder Notification Message';
$_L['Reminder_7_days'] = 'Reminder 7 days';
$_L['Reminder_3_days'] = 'Reminder 3 days';
$_L['Reminder_1_day'] = 'Reminder 1 day';
$_L['PPPOE_Password'] = 'PPPOE Password';
$_L['User_Cannot_change_this_only_admin_if_it_Empty_it_will_use_user_password'] = 'User Cannot change this, only admin. if it Empty it will use user password';
$_L['Invoice_Balance_Message'] = 'Invoice Balance Message';
$_L['Invoice_Notification_Payment'] = 'Invoice Notification Payment';
$_L['Balance_Notification_Payment'] = 'Balance Notification Payment';
$_L['Buy_Balance'] = 'Buy Balance?';
$_L['Price'] = 'Price';
$_L['Validity'] = 'Validity';
$_L['Disable_auto_renewal'] = 'Disable auto renewal?';
$_L['Auto_Renewal_On'] = 'Auto Renewal On';
$_L['Enable_auto_renewal'] = 'Enable auto renewal?';
$_L['Auto_Renewal_Off'] = 'Auto Renewal Off';
$_L['Invoice_Footer'] = 'Invoice Footer';
$_L['Pay_With_Balance'] = 'Pay With Balance';
$_L['Pay_this_with_Balance_your_active_package_will_be_overwrite'] = 'Pay this with Balance? your active package will be overwrite';
$_L['Success_to_buy_package'] = 'Success to buy package';
$_L['Auto_Renewal'] = 'Auto Renewal';
$_L['View'] = 'View';
$_L['Back'] = 'Back';
$_L['Active'] = 'Active';
$_L['Transfer_Balance'] = 'Transfer Balance';
$_L['Send_your_balance'] = 'Send your balance?';
$_L['Send'] = 'Send';
$_L['Cannot_send_to_yourself'] = 'Cannot send to yourself';
$_L['Sending_balance_success'] = 'Sending balance success';
$_L['From'] = 'From';
$_L['To'] = 'To';
$_L['insufficient_balance'] = 'insufficient balance';
$_L['Send_Balance'] = 'Send Balance';
$_L['Received_Balance'] = 'Received Balance';
$_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer';
$_L['Minimum_Transfer'] = 'Minimum Transfer';
$_L['Company_Logo'] = 'Company Logo';
$_L['Expired_IP_Pool'] = 'Expired IP Pool';
$_L['Proxy'] = 'Proxy';
$_L['Proxy_Server'] = 'Proxy Server';
$_L['Proxy_Server_Login'] = 'Proxy Server Login';
$_L['Hotspot_Plan'] = 'Hotspot Plan';
$_L['PPPOE_Plan'] = 'PPPOE Plan';
$_L['UNKNOWN'] = 'UNKNOWN';
$_L['Are_You_Sure'] = 'Are You Sure?';
$_L['Success_to_send_package'] = 'Success to send package';
$_L['Target_has_active_plan_different_with_current_plant'] = 'Target has active plan, different with current plant.';
$_L['Recharge_a_friend'] = 'Recharge a friend';
$_L['Buy_for_friend'] = 'Buy for friend';
$_L['Buy_this_for_friend_account'] = 'Buy this for friend account?';
$_L['Review_package_before_recharge'] = 'Review package before recharge';
$_L['Activate'] = 'Activate';
$_L['Deactivate'] = 'Deactivate';
$_L['Sync'] = 'Sync';
$_L['Failed_to_create_PaymeTrust_transaction'] = 'Failed to create PaymeTrust transaction.';
$_L['Location'] = 'Location';

View File

@ -131,7 +131,6 @@ $_L['Period_Reports'] = 'Dönem Raporları';
$_L['All_Transactions'] = 'Tüm İşlemler'; $_L['All_Transactions'] = 'Tüm İşlemler';
$_L['Total_Income'] = 'Toplam gelir'; $_L['Total_Income'] = 'Toplam gelir';
$_L['All_Transactions_at_Date'] = 'Tarihte Tüm İşlemler'; $_L['All_Transactions_at_Date'] = 'Tarihte Tüm İşlemler';
$_L['Total_Income'] = 'Toplam gelir';
$_L['Export_for_Print'] = 'Baskı için İhracat'; $_L['Export_for_Print'] = 'Baskı için İhracat';
$_L['Print'] = 'Baskı'; $_L['Print'] = 'Baskı';
$_L['Export_to_PDF'] = 'PDF\'ye Aktar'; $_L['Export_to_PDF'] = 'PDF\'ye Aktar';
@ -286,7 +285,6 @@ $_L['Please_enter_your_email_address'] = 'Please enter your email address';
$_L['Failed_to_create_Paypal_transaction'] = 'Failed to create Paypal transaction.'; $_L['Failed_to_create_Paypal_transaction'] = 'Failed to create Paypal transaction.';
$_L['Plugin'] = 'Plugin'; $_L['Plugin'] = 'Plugin';
$_L['Plugin_Manager'] = 'Plugin Manager'; $_L['Plugin_Manager'] = 'Plugin Manager';
$_L['Plugin_Manager'] = 'Plugin Manager';
$_L['User_Notification'] = 'User Notification'; $_L['User_Notification'] = 'User Notification';
$_L['Expired_Notification'] = 'Expired Notification'; $_L['Expired_Notification'] = 'Expired Notification';
$_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired'; $_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired';
@ -317,3 +315,66 @@ $_L['Country_Code_Phone'] = 'Country Code Phone';
$_L['Voucher_activation_menu_will_be_hidden'] = 'Voucher activation menu will be hidden'; $_L['Voucher_activation_menu_will_be_hidden'] = 'Voucher activation menu will be hidden';
$_L['Customer_can_deposit_money_to_buy_voucher'] = 'Customer can deposit money to buy voucher'; $_L['Customer_can_deposit_money_to_buy_voucher'] = 'Customer can deposit money to buy voucher';
$_L['Allow_balance_transfer_between_customers'] = 'Allow balance transfer between customers'; $_L['Allow_balance_transfer_between_customers'] = 'Allow balance transfer between customers';
$_L['Failed_to_create_transaction_'] = 'Failed to create transaction. ';
$_L['Failed_to_check_status_transaction_'] = 'Failed to check status transaction. ';
$_L['Disable_Voucher'] = 'Disable Voucher';
$_L['Reminder_Notification'] = 'Reminder Notification';
$_L['Reminder_Notification_Message'] = 'Reminder Notification Message';
$_L['Reminder_7_days'] = 'Reminder 7 days';
$_L['Reminder_3_days'] = 'Reminder 3 days';
$_L['Reminder_1_day'] = 'Reminder 1 day';
$_L['PPPOE_Password'] = 'PPPOE Password';
$_L['User_Cannot_change_this_only_admin_if_it_Empty_it_will_use_user_password'] = 'User Cannot change this, only admin. if it Empty it will use user password';
$_L['Invoice_Balance_Message'] = 'Invoice Balance Message';
$_L['Invoice_Notification_Payment'] = 'Invoice Notification Payment';
$_L['Balance_Notification_Payment'] = 'Balance Notification Payment';
$_L['Balance_Plans'] = 'Balance Plans';
$_L['Buy_Balance'] = 'Buy Balance?';
$_L['Price'] = 'Price';
$_L['Validity'] = 'Validity';
$_L['Disable_auto_renewal'] = 'Disable auto renewal?';
$_L['Auto_Renewal_On'] = 'Auto Renewal On';
$_L['Enable_auto_renewal'] = 'Enable auto renewal?';
$_L['Auto_Renewal_Off'] = 'Auto Renewal Off';
$_L['Refill_Balance'] = 'Refill Balance';
$_L['Invoice_Footer'] = 'Invoice Footer';
$_L['Pay_With_Balance'] = 'Pay With Balance';
$_L['Pay_this_with_Balance_your_active_package_will_be_overwrite'] = 'Pay this with Balance? your active package will be overwrite';
$_L['Success_to_buy_package'] = 'Success to buy package';
$_L['Auto_Renewal'] = 'Auto Renewal';
$_L['View'] = 'View';
$_L['Back'] = 'Back';
$_L['Active'] = 'Active';
$_L['Transfer_Balance'] = 'Transfer Balance';
$_L['Send_your_balance'] = 'Send your balance?';
$_L['Send'] = 'Send';
$_L['Cannot_send_to_yourself'] = 'Cannot send to yourself';
$_L['Sending_balance_success'] = 'Sending balance success';
$_L['From'] = 'From';
$_L['To'] = 'To';
$_L['insufficient_balance'] = 'insufficient balance';
$_L['Send_Balance'] = 'Send Balance';
$_L['Received_Balance'] = 'Received Balance';
$_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer';
$_L['Minimum_Transfer'] = 'Minimum Transfer';
$_L['Company_Logo'] = 'Company Logo';
$_L['Expired_IP_Pool'] = 'Expired IP Pool';
$_L['Proxy'] = 'Proxy';
$_L['Proxy_Server'] = 'Proxy Server';
$_L['Proxy_Server_Login'] = 'Proxy Server Login';
$_L['Hotspot_Plan'] = 'Hotspot Plan';
$_L['PPPOE_Plan'] = 'PPPOE Plan';
$_L['UNKNOWN'] = 'UNKNOWN';
$_L['Are_You_Sure'] = 'Are You Sure?';
$_L['Success_to_send_package'] = 'Success to send package';
$_L['Target_has_active_plan_different_with_current_plant'] = 'Target has active plan, different with current plant.';
$_L['Recharge_a_friend'] = 'Recharge a friend';
$_L['Buy_for_friend'] = 'Buy for friend';
$_L['Buy_this_for_friend_account'] = 'Buy this for friend account?';
$_L['Review_package_before_recharge'] = 'Review package before recharge';
$_L['Activate'] = 'Activate';
$_L['Deactivate'] = 'Deactivate';
$_L['Sync'] = 'Sync';
$_L['Failed_to_create_PaymeTrust_transaction'] = 'Failed to create PaymeTrust transaction.';
$_L['Location'] = 'Location';

BIN
ui/ui/images/loading.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

View File

@ -10,7 +10,7 @@
<a href="javascript:saveIt()" class="btn btn-primary btn-block">SAVE</a> <a href="javascript:saveIt()" class="btn btn-primary btn-block">SAVE</a>
<br> <br>
<p class="help-block">{$_L['Info_Page']}</p> <p class="help-block">{$_L['Info_Page']}</p>
<input type="text" class="form-control" onclick="this.select()" readonly value="{$app_url}/pages/{$pageHeader}.html"> <input type="text" class="form-control" onclick="this.select()" readonly value="{$app_url}/pages/{$PageFile}.html">
</div> </div>
{else} {else}
<div class="panel-footer"> <div class="panel-footer">
@ -20,7 +20,7 @@
</div> </div>
</div> </div>
</div> </div>
<form id="formpages" class="hidden" method="post" role="form" action="{$_url}pages/{$pageHeader}-post" > <form id="formpages" class="hidden" method="post" role="form" action="{$_url}pages/{$PageFile}-post" >
<textarea name="html" id="html"></textarea> <textarea name="html" id="html"></textarea>
</form> </form>
<script src="ui/ui/scripts/nicEdit.js"></script> <script src="ui/ui/scripts/nicEdit.js"></script>

View File

@ -105,9 +105,9 @@
</div> </div>
<br> <br>
<center> <center>
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a> <a href="javascript:showPrivacy()">Privacy</a>
&bull; &bull;
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a> <a href="javascript:showTaC()">T &amp; C</a>
</center> </center>
</div> </div>
</div> </div>
@ -116,6 +116,22 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Modal -->
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" id="HTMLModal_konten"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">&times;</button>
</div>
</div>
</div>
</div>
{if $_c['tawkto'] != ''} {if $_c['tawkto'] != ''}
<!--Start of Tawk.to Script--> <!--Start of Tawk.to Script-->
<script type="text/javascript"> <script type="text/javascript">
@ -133,7 +149,7 @@
</script> </script>
<!--End of Tawk.to Script--> <!--End of Tawk.to Script-->
{/if} {/if}
<script src="ui/ui/scripts/vendors.js"></script> <script src="ui/ui/scripts/vendors.js?v=1"></script>
</body> </body>
</html> </html>

View File

@ -80,9 +80,9 @@
</div> </div>
<br> <br>
<center> <center>
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a> <a href="javascript:showPrivacy()">Privacy</a>
&bull; &bull;
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a> <a href="javascript:showTaC()">T &amp; C</a>
</center> </center>
</div> </div>
</div> </div>
@ -90,6 +90,22 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Modal -->
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" id="HTMLModal_konten"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">&times;</button>
</div>
</div>
</div>
</div>
{if $_c['tawkto'] != ''} {if $_c['tawkto'] != ''}
<!--Start of Tawk.to Script--> <!--Start of Tawk.to Script-->
<script type="text/javascript"> <script type="text/javascript">
@ -107,7 +123,7 @@
</script> </script>
<!--End of Tawk.to Script--> <!--End of Tawk.to Script-->
{/if} {/if}
<script src="ui/ui/scripts/vendors.js"></script> <script src="ui/ui/scripts/vendors.js?v=1"></script>
</body> </body>
</html> </html>

View File

@ -96,9 +96,9 @@
</div> </div>
<br> <br>
<center> <center>
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a> <a href="javascript:showPrivacy()">Privacy</a>
&bull; &bull;
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a> <a href="javascript:showTaC()">T &amp; C</a>
</center> </center>
</div> </div>
</div> </div>
@ -107,6 +107,22 @@
</form> </form>
</div> </div>
</div> </div>
<!-- Modal -->
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" id="HTMLModal_konten"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">&times;</button>
</div>
</div>
</div>
</div>
{if $_c['tawkto'] != ''} {if $_c['tawkto'] != ''}
<!--Start of Tawk.to Script--> <!--Start of Tawk.to Script-->
<script type="text/javascript"> <script type="text/javascript">
@ -124,7 +140,7 @@
</script> </script>
<!--End of Tawk.to Script--> <!--End of Tawk.to Script-->
{/if} {/if}
<script src="ui/ui/scripts/vendors.js"></script> <script src="ui/ui/scripts/vendors.js?v=1"></script>
</body> </body>
</html> </html>

View File

@ -31,6 +31,7 @@
<table class="table table-bordered table-striped table-condensed"> <table class="table table-bordered table-striped table-condensed">
<thead> <thead>
<tr> <tr>
<th>ID</th>
<th>{$_L['Router_Name']}</th> <th>{$_L['Router_Name']}</th>
<th>{$_L['IP_Address']}</th> <th>{$_L['IP_Address']}</th>
<th>{$_L['Username']}</th> <th>{$_L['Username']}</th>
@ -42,6 +43,7 @@
<tbody> <tbody>
{foreach $d as $ds} {foreach $d as $ds}
<tr {if $ds['enabled'] != 1}class="danger" title="disabled" {/if}> <tr {if $ds['enabled'] != 1}class="danger" title="disabled" {/if}>
<td>{$ds['id']}</td>
<td>{$ds['name']}</td> <td>{$ds['name']}</td>
<td>{$ds['ip_address']}</td> <td>{$ds['ip_address']}</td>
<td>{$ds['username']}</td> <td>{$ds['username']}</td>
@ -50,7 +52,9 @@
<td> <td>
<a href="{$_url}routers/edit/{$ds['id']}" <a href="{$_url}routers/edit/{$ds['id']}"
class="btn btn-info btn-xs">{$_L['Edit']}</a> class="btn btn-info btn-xs">{$_L['Edit']}</a>
<a href="{$_url}routers/delete/{$ds['id']}" id="{$ds['id']}" onclick="return confirm('{$_L['Delete']}?')" class="btn btn-danger btn-xs">{$_L['Delete']}</a> <a href="{$_url}routers/delete/{$ds['id']}" id="{$ds['id']}"
onclick="return confirm('{$_L['Delete']}?')"
class="btn btn-danger btn-xs">{$_L['Delete']}</a>
</td> </td>
</tr> </tr>
{/foreach} {/foreach}

View File

@ -105,3 +105,29 @@ $(function() {
} }
}); });
}); });
function showPrivacy() {
$('#HTMLModal_title').html('Privacy Policy');
$('#HTMLModal_konten').html('<center><img src="ui/ui/images/loading.gif"></center>');
$('#HTMLModal').modal({
'show': true,
'backdrop': false,
});
$.get('pages/Privacy_Policy.html?' + (new Date()), function(data) {
$('#HTMLModal_konten').html(data);
});
}
function showTaC() {
$('#HTMLModal_title').html('Terms and Conditions');
$('#HTMLModal_konten').html('<center><img src="ui/ui/images/loading.gif"></center>');
$('#HTMLModal').modal({
'show': true,
'backdrop': false,
});
$.get('pages/Terms_and_Conditions.html?' + (new Date()), function(data) {
$('#HTMLModal_konten').html(data);
$('#HTMLModal').modal('handleUpdate')
});
}

File diff suppressed because one or more lines are too long

View File

@ -1,41 +1,40 @@
</section> </section>
</div> </div>
<footer class="main-footer"> <footer class="main-footer">
<div class="pull-right hidden-xs" 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="ui/ui/scripts/jquery.min.js"></script>
<script src="ui/ui/scripts/bootstrap.min.js"></script>
<script src="ui/ui/scripts/adminlte.min.js"></script>
<script src="ui/ui/scripts/plugins/select2.min.js"></script>
<script src="ui/ui/scripts/custom.js"></script>
<script src="ui/ui/scripts/jquery.min.js"></script> {if isset($xfooter)}
<script src="ui/ui/scripts/bootstrap.min.js"></script>
<script src="ui/ui/scripts/adminlte.min.js"></script>
<script src="ui/ui/scripts/plugins/select2.min.js"></script>
<script src="ui/ui/scripts/custom.js"></script>
{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"});
}); });
$(document).ready(function() { $(document).ready(function() {
$('.select2tag').select2({theme: "bootstrap", tags: true}); $('.select2tag').select2({theme: "bootstrap", tags: true});
}); });
var listAtts = document.querySelectorAll(`[api-get-text]`); var listAtts = document.querySelectorAll(`[api-get-text]`);
listAtts.forEach(function(el) { listAtts.forEach(function(el) {
$.get(el.getAttribute('api-get-text'), function(data) { $.get(el.getAttribute('api-get-text'), function(data) {
el.innerHTML = data; el.innerHTML = data;
}); });
}); });
</script> </script>
{/literal} {/literal}
</body> </body>
</html> </html>

View File

@ -225,8 +225,8 @@
href="{$_url}pages/Registration_Info">{$_L['Registration_Info']}</a></li> href="{$_url}pages/Registration_Info">{$_L['Registration_Info']}</a></li>
<li {if $_routes[1] eq 'Privacy_Policy'}class="active" {/if}><a <li {if $_routes[1] eq 'Privacy_Policy'}class="active" {/if}><a
href="{$_url}pages/Privacy_Policy">Privacy Policy</a></li> href="{$_url}pages/Privacy_Policy">Privacy Policy</a></li>
<li {if $_routes[1] eq 'Terms_of_Conditions'}class="active" {/if}><a <li {if $_routes[1] eq 'Terms_and_Conditions'}class="active" {/if}><a
href="{$_url}pages/Terms_of_Conditions">Terms and Conditions</a></li> href="{$_url}pages/Terms_and_Conditions">Terms and Conditions</a></li>
{$_MENU_PAGES} {$_MENU_PAGES}
</ul> </ul>
</li> </li>

View File

@ -4,9 +4,9 @@
<footer class="main-footer"> <footer class="main-footer">
{$_c['CompanyFooter']} {$_c['CompanyFooter']}
<div class="pull-right"> <div class="pull-right">
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a> <a href="javascript:showPrivacy()">Privacy</a>
&bull; &bull;
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a> <a href="javascript:showTaC()">T &amp; C</a>
</div> </div>
</footer> </footer>
{else} {else}
@ -15,20 +15,39 @@
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>
<div class="pull-right"> <div class="pull-right">
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a> <a href="javascript:showPrivacy()">Privacy</a>
&bull; &bull;
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a> <a href="javascript:showTaC()">T &amp; C</a>
</div> </div>
</footer> </footer>
{/if} {/if}
</div> </div>
<!-- Modal -->
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" id="HTMLModal_konten"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">&times;</button>
</div>
</div>
</div>
</div>
<script src="ui/ui/scripts/jquery.min.js"></script> <script src="ui/ui/scripts/jquery.min.js"></script>
<script src="ui/ui/scripts/bootstrap.min.js"></script> <script src="ui/ui/scripts/bootstrap.min.js"></script>
<script src="ui/ui/scripts/adminlte.min.js"></script> <script src="ui/ui/scripts/adminlte.min.js"></script>
<script src="ui/ui/scripts/plugins/select2.min.js"></script> <script src="ui/ui/scripts/plugins/select2.min.js"></script>
<script src="ui/ui/scripts/custom.js"></script> <script src="ui/ui/scripts/custom.js?v=2"></script>
{if isset($xfooter)} {if isset($xfooter)}
{$xfooter} {$xfooter}

View File

@ -61,7 +61,7 @@
<li class="dropdown user user-menu"> <li class="dropdown user user-menu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">
{if $_c['enable_balance'] == 'yes'} {if $_c['enable_balance'] == 'yes'}
<span style="color: whitesmoke;">{Lang::moneyFormat($_user['balance'])}</span> <span style="color: whitesmoke;">&nbsp;{Lang::moneyFormat($_user['balance'])}&nbsp;</span>
{else} {else}
<span>{$_user['fullname']}</span> <span>{$_user['fullname']}</span>
{/if} {/if}

View File

@ -70,9 +70,8 @@
<tr> <tr>
<td class="small text-success text-uppercase text-normal">{$_L['Password']}</td> <td class="small text-success text-uppercase text-normal">{$_L['Password']}</td>
<td class="small mb15"><input type="password" value="{$_user['password']}" <td class="small mb15"><input type="password" value="{$_user['password']}"
style="width:100%; border: 0px;" style="width:100%; border: 0px;" onmouseleave="this.type = 'password'"
onmouseleave="this.type = 'password'" onmouseenter="this.type = 'text'" onmouseenter="this.type = 'text'" onclick="this.select()"></td>
onclick="this.select()"></td>
</tr> </tr>
{if $_c['enable_balance'] == 'yes'} {if $_c['enable_balance'] == 'yes'}
<tr> <tr>
@ -89,9 +88,23 @@
</td> </td>
</tr> </tr>
{/if} {/if}
{if $_bill}
<tr>
<td class="small text-primary text-uppercase text-normal">{strtoupper(Lang::T('Location'))}</td>
<td class="small mb15">{$_bill['routers']}</td>
</tr>
<tr> <tr>
<td class="small text-primary text-uppercase text-normal">{$_L['Plan_Name']}</td> <td class="small text-primary text-uppercase text-normal">{$_L['Plan_Name']}</td>
<td class="small mb15">{$_bill['namebp']}</td> <td class="small mb15">
{$_bill['namebp']}
{if $_bill['status'] == 'on'}
<a class="label label-danger pull-right" href="{$_url}home&deactivate=1"
onclick="return confirm('{Lang::T('Deactivate')}?')">{Lang::T('Deactivate')}</a>
{else}
<a class="label label-warning pull-right" href="{$_url}order/package"
>{Lang::T('expired')}</a>
{/if}
</td>
</tr> </tr>
<tr> <tr>
<td class="small text-info text-uppercase text-normal">{$_L['Created_On']}</td> <td class="small text-info text-uppercase text-normal">{$_L['Created_On']}</td>
@ -101,8 +114,10 @@
</tr> </tr>
<tr> <tr>
<td class="small text-danger text-uppercase text-normal">{$_L['Expires_On']}</td> <td class="small text-danger text-uppercase text-normal">{$_L['Expires_On']}</td>
<td class="small mb15"> <td class="small mb15 text-danger">
{if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['expiration'],$_bill['time'])}{/if}&nbsp; {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['expiration'],$_bill['time'])}{/if}&nbsp;
<a class="label label-primary pull-right" href="{$_url}home&recharge=1"
onclick="return confirm('{Lang::T('Recharge')}?')">{Lang::T('Recharge')}</a>
</td> </td>
</tr> </tr>
{if $nux_ip} {if $nux_ip}
@ -121,10 +136,11 @@
<tr> <tr>
<td class="small text-primary text-uppercase text-normal">{Lang::T('Login Status')}</td> <td class="small text-primary text-uppercase text-normal">{Lang::T('Login Status')}</td>
<td class="small mb15" id="login_status"> <td class="small mb15" id="login_status">
Loading.... <img src="ui/ui/images/loading.gif">
</td> </td>
</tr> </tr>
{/if} {/if}
{/if}
</table> </table>
{if $_c['disable_voucher'] == 'yes'} {if $_c['disable_voucher'] == 'yes'}
<div class="box-footer"> <div class="box-footer">

View File

@ -77,10 +77,11 @@
<button type="submit" class="btn btn-primary">{$_L['Login']}</button> <button type="submit" class="btn btn-primary">{$_L['Login']}</button>
</div> </div>
</div> </div>
<br><center> <br>
<a href="./pages/Privacy_Policy.html" target="_blank">Privacy</a> <center>
<a href="javascript:showPrivacy()">Privacy</a>
&bull; &bull;
<a href="./pages/Terms_of_Conditions.html" target="_blank">ToC</a> <a href="javascript:showTaC()">T &amp; C</a>
</center> </center>
</form> </form>
</div> </div>
@ -88,7 +89,25 @@
</div> </div>
</div> </div>
</div> </div>
<script src="ui/ui/scripts/vendors.js"></script>
<!-- Modal -->
<div class="modal fade" id="HTMLModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button>
</div>
<div class="modal-body" id="HTMLModal_konten"></div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">&times;</button>
</div>
</div>
</div>
</div>
<script src="ui/ui/scripts/vendors.js?v=1"></script>
</body> </body>
</html> </html>

View File

@ -6,13 +6,13 @@
<div class="box-header">{Lang::T('Order Internet Package')}</div> <div class="box-header">{Lang::T('Order Internet Package')}</div>
</div> </div>
{if $_c['enable_balance'] == 'yes'} {if $_c['enable_balance'] == 'yes'}
<div class="box box-solid box-primary"> <div class="box box-solid box-success bg-gray-light">
<div class="box-header">{Lang::T('Balance Plans')}</div> <div class="box-header">{Lang::T('Balance Plans')}</div>
<div class="box-body row"> <div class="box-body row">
{foreach $plans_balance as $plan} {foreach $plans_balance as $plan}
<div class="col col-md-4"> <div class="col col-md-4">
<div class="box box-solid box-default"> <div class="box box-solid box-default">
<div class="box-header">{$plan['name_plan']}</div> <div class="box-header text-bold">{$plan['name_plan']}</div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<tbody> <tbody>
@ -35,21 +35,22 @@
</div> </div>
{/if} {/if}
{foreach $routers as $router} {foreach $routers as $router}
<div class="box box-solid box-info"> {if Validator::isRouterHasPlan($plans_hotspot, $router['name']) || Validator::isRouterHasPlan($plans_pppoe, $router['name'])}
<div class="box-header text-black">{$router['name']}</div> <div class="box box-solid box-info bg-gray-light">
<div class="box-header text-black text-bold">{$router['name']}</div>
{if $router['description'] != ''} {if $router['description'] != ''}
<div class="box-body"> <div class="box-body">
{$router['description']} {$router['description']}
</div> </div>
{/if} {/if}
{if count($plans_hotspot)>0} {if Validator::countRouterPlan($plans_hotspot, $router['name'])>0}
<div class="box-header">{Lang::T('Hotspot Plan')}</div> <div class="box-header text-black">{Lang::T('Hotspot Plan')}</div>
<div class="box-body row"> <div class="box-body row">
{foreach $plans_hotspot as $plan} {foreach $plans_hotspot as $plan}
{if $router['name'] eq $plan['routers']} {if $router['name'] eq $plan['routers']}
<div class="col col-md-4"> <div class="col col-md-4">
<div class="box box-solid box-default"> <div class="box box-primary">
<div class="box-header">{$plan['name_plan']}</div> <div class="box-header text-bold">{$plan['name_plan']}</div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<tbody> <tbody>
@ -91,14 +92,14 @@
{/foreach} {/foreach}
</div> </div>
{/if} {/if}
{if count($plans_pppoe)>0} {if Validator::countRouterPlan($plans_pppoe,$router['name'])>0}
<div class="box-header text-sm">{Lang::T('PPPOE Plan')}</div> <div class="box-header text-black">{Lang::T('PPPOE Plan')}</div>
<div class="box-body row"> <div class="box-body row">
{foreach $plans_pppoe as $plan} {foreach $plans_pppoe as $plan}
{if $router['name'] eq $plan['routers']} {if $router['name'] eq $plan['routers']}
<div class="col col-md-4"> <div class="col col-md-4">
<div class="box box-solid box-default"> <div class="box box- box-primary">
<div class="box-header">{$plan['name_plan']}</div> <div class="box-header text-bold">{$plan['name_plan']}</div>
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-bordered table-striped"> <table class="table table-bordered table-striped">
<tbody> <tbody>
@ -141,6 +142,7 @@
</div> </div>
{/if} {/if}
</div> </div>
{/if}
{/foreach} {/foreach}
</div> </div>
</div> </div>

View File

@ -1,3 +1,3 @@
{ {
"version": "2023.9.15" "version": "2023.9.21"
} }