diff --git a/CHANGELOG.md b/CHANGELOG.md index 586403e3..36258909 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,20 @@ # 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 - Deactivate Customer active plan - Sync Customer Plan to Mikrotik - Recharge Customer from Customer Details +- Add Privacy Policy and Terms and Conditions Pages ## 2023.9.13 diff --git a/index.php b/index.php index d1eac444..cd76b6b8 100644 --- a/index.php +++ b/index.php @@ -11,6 +11,11 @@ if(isset($_GET['nux-mac']) && !empty($_GET['nux-mac'])){ if(isset($_GET['nux-ip']) && !empty($_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/boot.php'; App::_run(); diff --git a/pages_template/Terms_of_Conditions.html b/pages_template/Terms_and_Conditions.html similarity index 100% rename from pages_template/Terms_of_Conditions.html rename to pages_template/Terms_and_Conditions.html diff --git a/qrcode/qrconfig.php b/qrcode/qrconfig.php index 62e7f974..31469d09 100644 --- a/qrcode/qrconfig.php +++ b/qrcode/qrconfig.php @@ -4,14 +4,13 @@ * * Config file, feel free to modify */ - + 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_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_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_PNG_MAXIMUM_SIZE', 1024); // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images - \ No newline at end of file diff --git a/system/autoload/Lang.php b/system/autoload/Lang.php index de8dca4c..ad91e02f 100644 --- a/system/autoload/Lang.php +++ b/system/autoload/Lang.php @@ -56,7 +56,11 @@ class Lang } public static function arrayCount($arr){ - return count($arr); + if(is_array($arr)){ + return count($arr); + }else{ + return 0; + } } public static function getNotifText($key){ diff --git a/system/autoload/Validator.php b/system/autoload/Validator.php index e7d46039..996caea2 100644 --- a/system/autoload/Validator.php +++ b/system/autoload/Validator.php @@ -299,4 +299,23 @@ class Validator 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; + } + } diff --git a/system/controllers/customers.php b/system/controllers/customers.php index d454a3d7..b992b74e 100644 --- a/system/controllers/customers.php +++ b/system/controllers/customers.php @@ -75,6 +75,8 @@ switch ($action) { $b->expiration = date('Y-m-d'); $b->time = date('H:i:s'); $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, 'e', 'Cannot find active plan'); diff --git a/system/controllers/dashboard.php b/system/controllers/dashboard.php index f609c719..484eca7d 100644 --- a/system/controllers/dashboard.php +++ b/system/controllers/dashboard.php @@ -50,7 +50,7 @@ if (empty($c_all)) { $ui->assign('c_all', $c_all); //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); //activity log diff --git a/system/controllers/home.php b/system/controllers/home.php index c2eef6ce..be779bc4 100644 --- a/system/controllers/home.php +++ b/system/controllers/home.php @@ -90,6 +90,41 @@ if (_post('send') == 'balance') { $bill = User::_billing(); $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'])) { $ui->assign('nux_mac', $_SESSION['nux-mac']); $ui->assign('nux_ip', $_SESSION['nux-ip']); diff --git a/system/controllers/order.php b/system/controllers/order.php index df5652ee..5460d791 100644 --- a/system/controllers/order.php +++ b/system/controllers/order.php @@ -35,9 +35,19 @@ switch ($action) { } $ui->assign('_title', 'Order Plan'); $ui->assign('_system_menu', 'package'); - $routers = ORM::for_table('tbl_routers')->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(); + 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(); + $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_balance = ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Balance')->find_many(); $ui->assign('routers', $routers); $ui->assign('plans_pppoe', $plans_pppoe); diff --git a/system/controllers/pages.php b/system/controllers/pages.php index 923002c2..86578eb6 100644 --- a/system/controllers/pages.php +++ b/system/controllers/pages.php @@ -15,7 +15,14 @@ if(strpos($action,"-post")===false){ //echo $path; run_hook('view_edit_pages'); #HOOK if(!file_exists($path)){ - touch($path); + $temp = "pages_template/".str_replace(".","",$action).".html"; + if(file_exists($temp)){ + if(!copy($temp, $path)){ + touch($path); + } + }else{ + touch($path); + } } if(file_exists($path)){ $html = file_get_contents($path); diff --git a/system/controllers/prepaid.php b/system/controllers/prepaid.php index 3aae837c..3fc4fed8 100644 --- a/system/controllers/prepaid.php +++ b/system/controllers/prepaid.php @@ -258,10 +258,10 @@ switch ($action) { break; case 'print-voucher': - $from_id = _post('from_id') * 1; - $planid = _post('planid') * 1; - $pagebreak = _post('pagebreak') * 1; - $limit = _post('limit') * 1; + $from_id = _post('from_id'); + $planid = _post('planid'); + $pagebreak = _post('pagebreak'); + $limit = _post('limit'); if ($pagebreak < 1) $pagebreak = 6; diff --git a/system/controllers/routers.php b/system/controllers/routers.php index a798aec4..8f4ed11f 100644 --- a/system/controllers/routers.php +++ b/system/controllers/routers.php @@ -70,7 +70,7 @@ switch ($action) { $username = _post('username'); $password = _post('password'); $description = _post('description'); - $enabled = _post('enabled')*1; + $enabled = _post('enabled'); $msg = ''; if(Validator::Length($name,30,4) == false){ @@ -113,7 +113,7 @@ switch ($action) { $username = _post('username'); $password = _post('password'); $description = _post('description'); - $enabled = $_POST['enabled']*1; + $enabled = $_POST['enabled']; $msg = ''; if(Validator::Length($name,30,4) == false){ $msg .= 'Name should be between 5 to 30 characters'. '
'; diff --git a/system/lan/english/common.lan.php b/system/lan/english/common.lan.php index 71a9a4c1..e36701e1 100644 --- a/system/lan/english/common.lan.php +++ b/system/lan/english/common.lan.php @@ -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['Plugin'] = 'Plugin'; $_L['Plugin_Manager'] = 'Plugin Manager'; -$_L['Plugin_Manager'] = 'Plugin Manager'; $_L['User_Notification'] = 'User Notification'; $_L['Expired_Notification'] = 'Expired Notification'; $_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['Company_Logo'] = 'Company Logo'; $_L['Expired_IP_Pool'] = 'Expired IP Pool'; -$_L['Expired_IP_Pool'] = 'Expired IP Pool'; $_L['Proxy'] = 'Proxy'; $_L['Proxy_Server'] = 'Proxy Server'; $_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_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'; diff --git a/system/lan/indonesia/common.lan.php b/system/lan/indonesia/common.lan.php index f789d5b7..96bb1a29 100644 --- a/system/lan/indonesia/common.lan.php +++ b/system/lan/indonesia/common.lan.php @@ -338,11 +338,63 @@ $_L['Country_Code_Phone'] = 'Kode Negara Telepon'; $_L['Voucher_activation_menu_will_be_hidden'] = 'Info Pembelian Voucher dan Redeem akan disembunyikan'; $_L['Customer_can_deposit_money_to_buy_voucher'] = 'Pelanggan dapat topup saldo untuk langganan Internet'; $_L['Allow_balance_transfer_between_customers'] = 'Bolehkan transfer saldo antar pelanggan'; -$_L['Refill_Balance'] = 'Refill Balance'; -$_L['Balance_Plans'] = 'Balance Plans'; -$_L['Expired_IP_Pool'] = 'Expired IP Pool'; -$_L['Company_Logo'] = 'Company Logo'; -$_L['Disable_Voucher'] = 'Disable Voucher'; -$_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer'; -$_L['Reminder_Notification'] = 'Reminder Notification'; -$_L['Invoice_Footer'] = 'Invoice Footer'; +$_L['Refill_Balance'] = 'Refill Balance'; +$_L['Balance_Plans'] = 'Balance Plans'; +$_L['Expired_IP_Pool'] = 'Expired IP Pool'; +$_L['Company_Logo'] = 'Company Logo'; +$_L['Disable_Voucher'] = 'Disable Voucher'; +$_L['Minimum_Balance_Transfer'] = 'Minimum Balance Transfer'; +$_L['Reminder_Notification'] = 'Reminder Notification'; +$_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'; diff --git a/system/lan/spanish/common.lan.php b/system/lan/spanish/common.lan.php index c4ca672a..d9992672 100644 --- a/system/lan/spanish/common.lan.php +++ b/system/lan/spanish/common.lan.php @@ -149,7 +149,6 @@ $_L['Period_Reports'] = 'Informes del período'; $_L['All_Transactions'] = 'Todas las transacciones'; $_L['Total_Income'] = 'Ingresos totales'; $_L['All_Transactions_at_Date'] = 'Todas las transacciones en la fecha'; -$_L['Total_Income'] = 'Ingresos totales'; $_L['Export_for_Print'] = 'Exportar para imprimir'; $_L['Print'] = 'Impresión'; $_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['Plugin'] = 'Plugin'; $_L['Plugin_Manager'] = 'Plugin Manager'; -$_L['Plugin_Manager'] = 'Plugin Manager'; $_L['User_Notification'] = 'User Notification'; $_L['Expired_Notification'] = 'Expired Notification'; $_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['Allow_balance_transfer_between_customers'] = 'Allow balance transfer between customers';$_L['Refill_Balance'] = 'Refill Balance'; $_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'; diff --git a/system/lan/turkish/common.lan.php b/system/lan/turkish/common.lan.php index c21d9b8b..6ac8f461 100755 --- a/system/lan/turkish/common.lan.php +++ b/system/lan/turkish/common.lan.php @@ -131,7 +131,6 @@ $_L['Period_Reports'] = 'Dönem Raporları'; $_L['All_Transactions'] = 'Tüm İşlemler'; $_L['Total_Income'] = 'Toplam gelir'; $_L['All_Transactions_at_Date'] = 'Tarihte Tüm İşlemler'; -$_L['Total_Income'] = 'Toplam gelir'; $_L['Export_for_Print'] = 'Baskı için İhracat'; $_L['Print'] = 'Baskı'; $_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['Plugin'] = 'Plugin'; $_L['Plugin_Manager'] = 'Plugin Manager'; -$_L['Plugin_Manager'] = 'Plugin Manager'; $_L['User_Notification'] = 'User Notification'; $_L['Expired_Notification'] = 'Expired Notification'; $_L['User_will_get_notification_when_package_expired'] = 'User will get notification when package expired'; @@ -316,4 +314,67 @@ $_L['Invoice'] = 'Invoice'; $_L['Country_Code_Phone'] = 'Country Code Phone'; $_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['Allow_balance_transfer_between_customers'] = 'Allow balance transfer between customers'; \ No newline at end of file +$_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'; diff --git a/ui/ui/images/loading.gif b/ui/ui/images/loading.gif new file mode 100644 index 00000000..c35d6583 Binary files /dev/null and b/ui/ui/images/loading.gif differ diff --git a/ui/ui/page-edit.tpl b/ui/ui/page-edit.tpl index 3eb0ce3c..de3f5c7d 100644 --- a/ui/ui/page-edit.tpl +++ b/ui/ui/page-edit.tpl @@ -10,7 +10,7 @@ SAVE

{$_L['Info_Page']}

- + {else} - diff --git a/ui/ui/register-otp.tpl b/ui/ui/register-otp.tpl index ab55baa0..4a0d167f 100644 --- a/ui/ui/register-otp.tpl +++ b/ui/ui/register-otp.tpl @@ -105,9 +105,9 @@
- Privacy + Privacy • - ToC + T & C
@@ -116,6 +116,22 @@ + + + {if $_c['tawkto'] != ''} {/if} - + \ No newline at end of file diff --git a/ui/ui/register-rotp.tpl b/ui/ui/register-rotp.tpl index 04a720a1..dbb5646a 100644 --- a/ui/ui/register-rotp.tpl +++ b/ui/ui/register-rotp.tpl @@ -80,9 +80,9 @@
- Privacy + Privacy • - ToC + T & C
@@ -90,6 +90,22 @@ + + + {if $_c['tawkto'] != ''} {/if} - + \ No newline at end of file diff --git a/ui/ui/register.tpl b/ui/ui/register.tpl index da77841a..09b02474 100644 --- a/ui/ui/register.tpl +++ b/ui/ui/register.tpl @@ -96,9 +96,9 @@
- Privacy + Privacy • - ToC + T & C
@@ -107,6 +107,22 @@ + + + {if $_c['tawkto'] != ''} {/if} - + \ No newline at end of file diff --git a/ui/ui/routers.tpl b/ui/ui/routers.tpl index e4857e62..57670c2e 100644 --- a/ui/ui/routers.tpl +++ b/ui/ui/routers.tpl @@ -31,6 +31,7 @@ + @@ -42,6 +43,7 @@ {foreach $d as $ds} + @@ -50,7 +52,9 @@ {/foreach} diff --git a/ui/ui/scripts/custom.js b/ui/ui/scripts/custom.js index b7f9b122..aa936ba2 100644 --- a/ui/ui/scripts/custom.js +++ b/ui/ui/scripts/custom.js @@ -104,4 +104,30 @@ $(function() { }); } }); -}); \ No newline at end of file +}); + + +function showPrivacy() { + $('#HTMLModal_title').html('Privacy Policy'); + $('#HTMLModal_konten').html('
'); + $('#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('
'); + $('#HTMLModal').modal({ + 'show': true, + 'backdrop': false, + }); + $.get('pages/Terms_and_Conditions.html?' + (new Date()), function(data) { + $('#HTMLModal_konten').html(data); + $('#HTMLModal').modal('handleUpdate') + }); +} \ No newline at end of file diff --git a/ui/ui/scripts/vendors.js b/ui/ui/scripts/vendors.js index d0e0e895..c877a9c3 100644 --- a/ui/ui/scripts/vendors.js +++ b/ui/ui/scripts/vendors.js @@ -1,5 +1,5 @@ !function(a,b){ - "object"==typeof module&&"object"==typeof + "object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0): function(a){ if(!a.document)throw new Error("jQuery requires a window with a document"); @@ -95,4 +95,30 @@ for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.2",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.2",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.2",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.2",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.2",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(' - - + + + + + + + + - - - - - + {if isset($xfooter)} + {$xfooter} + {/if} + {literal} + + {/literal} -var listAtts = document.querySelectorAll(`[api-get-text]`); -listAtts.forEach(function(el) { - $.get(el.getAttribute('api-get-text'), function(data) { - el.innerHTML = data; - }); -}); - -{/literal} - - + \ No newline at end of file diff --git a/ui/ui/sections/header.tpl b/ui/ui/sections/header.tpl index 12647559..47e31bb6 100644 --- a/ui/ui/sections/header.tpl +++ b/ui/ui/sections/header.tpl @@ -225,8 +225,8 @@ href="{$_url}pages/Registration_Info">{$_L['Registration_Info']}
  • Privacy Policy
  • -
  • Terms and Conditions
  • +
  • Terms and Conditions
  • {$_MENU_PAGES} diff --git a/ui/ui/sections/user-footer.tpl b/ui/ui/sections/user-footer.tpl index 45c89d1e..f4804336 100644 --- a/ui/ui/sections/user-footer.tpl +++ b/ui/ui/sections/user-footer.tpl @@ -4,9 +4,9 @@ {else} @@ -14,21 +14,40 @@ PHPNuxBill by iBNuX, Theme by AdminLTE -
    - Privacy - • - ToC -
    +
    + Privacy + • + T & C +
    {/if} + + + + + + - + {if isset($xfooter)} {$xfooter} diff --git a/ui/ui/sections/user-header.tpl b/ui/ui/sections/user-header.tpl index 7965899a..bdf8b379 100644 --- a/ui/ui/sections/user-header.tpl +++ b/ui/ui/sections/user-header.tpl @@ -61,7 +61,7 @@ + style="width:100%; border: 0px;" onmouseleave="this.type = 'password'" + onmouseenter="this.type = 'text'" onclick="this.select()"> {if $_c['enable_balance'] == 'yes'} @@ -89,41 +88,58 @@ {/if} - - - - - - - - - - - - - {if $nux_ip} + {if $_bill} - - + + - {/if} - {if $nux_mac} - - - - {/if} - {if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on'} - - - + + + + + + + + + + {if $nux_ip} + + + + + {/if} + {if $nux_mac} + + + + + {/if} + {if $_bill['type'] == 'Hotspot' && $_bill['status'] == 'on'} + + + + + {/if} {/if}
    ID {$_L['Router_Name']} {$_L['IP_Address']} {$_L['Username']}
    {$ds['id']} {$ds['name']} {$ds['ip_address']} {$ds['username']} {$_L['Edit']} - {$_L['Delete']} + {$_L['Delete']}
    {$_L['Password']}
    {$_L['Plan_Name']}{$_bill['namebp']}
    {$_L['Created_On']} - {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['recharged_on'],$_bill['recharged_time'])} - {/if} 
    {$_L['Expires_On']} - {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['expiration'],$_bill['time'])}{/if}  -
    {Lang::T('Current IP')}{$nux_ip}{strtoupper(Lang::T('Location'))}{$_bill['routers']}
    {Lang::T('Current MAC')}{$nux_mac}
    {Lang::T('Login Status')} - Loading.... + {$_L['Plan_Name']} + {$_bill['namebp']} + {if $_bill['status'] == 'on'} + {Lang::T('Deactivate')} + {else} + {Lang::T('expired')} + {/if}
    {$_L['Created_On']} + {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['recharged_on'],$_bill['recharged_time'])} + {/if} 
    {$_L['Expires_On']} + {if $_bill['time'] ne ''}{Lang::dateAndTimeFormat($_bill['expiration'],$_bill['time'])}{/if}  + {Lang::T('Recharge')} +
    {Lang::T('Current IP')}{$nux_ip}
    {Lang::T('Current MAC')}{$nux_mac}
    {Lang::T('Login Status')} + +
    {if $_c['disable_voucher'] == 'yes'} diff --git a/ui/ui/user-login.tpl b/ui/ui/user-login.tpl index be8bb430..0d09fb6d 100644 --- a/ui/ui/user-login.tpl +++ b/ui/ui/user-login.tpl @@ -77,10 +77,11 @@ -
    - Privacy - • - ToC +
    +
    + Privacy + • + T & C
    @@ -88,7 +89,25 @@ - + + + + + + \ No newline at end of file diff --git a/ui/ui/user-orderPlan.tpl b/ui/ui/user-orderPlan.tpl index 96a5829d..764d6c9f 100644 --- a/ui/ui/user-orderPlan.tpl +++ b/ui/ui/user-orderPlan.tpl @@ -6,13 +6,13 @@
    {Lang::T('Order Internet Package')}
    {if $_c['enable_balance'] == 'yes'} -
    +
    {Lang::T('Balance Plans')}
    {foreach $plans_balance as $plan}
    -
    {$plan['name_plan']}
    +
    {$plan['name_plan']}
    @@ -35,112 +35,114 @@ {/if} {foreach $routers as $router} -
    -
    {$router['name']}
    - {if $router['description'] != ''} -
    - {$router['description']} -
    - {/if} - {if count($plans_hotspot)>0} -
    {Lang::T('Hotspot Plan')}
    -
    - {foreach $plans_hotspot as $plan} - {if $router['name'] eq $plan['routers']} -
    -
    -
    {$plan['name_plan']}
    -
    -
    - - - - - - - - - - - - - - -
    {Lang::T('Type')}{$plan['type']}
    {Lang::T('Price')}{Lang::moneyFormat($plan['price'])}
    {Lang::T('Validity')}{$plan['validity']} {$plan['validity_unit']}
    -
    -
    -
    - Buy - {if $_c['enable_balance'] == 'yes' && $_user['balance']>=$plan['price']} - {Lang::T('Pay With Balance')} + {if Validator::isRouterHasPlan($plans_hotspot, $router['name']) || Validator::isRouterHasPlan($plans_pppoe, $router['name'])} +
    +
    {$router['name']}
    + {if $router['description'] != ''} +
    + {$router['description']} +
    + {/if} + {if Validator::countRouterPlan($plans_hotspot, $router['name'])>0} +
    {Lang::T('Hotspot Plan')}
    +
    + {foreach $plans_hotspot as $plan} + {if $router['name'] eq $plan['routers']} +
    +
    +
    {$plan['name_plan']}
    +
    + + + + + + + + + + + + + + + +
    {Lang::T('Type')}{$plan['type']}
    {Lang::T('Price')}{Lang::moneyFormat($plan['price'])}
    {Lang::T('Validity')}{$plan['validity']} {$plan['validity_unit']}
    +
    +
    +
    + Buy + {if $_c['enable_balance'] == 'yes' && $_user['balance']>=$plan['price']} + {Lang::T('Pay With Balance')} + {/if} +
    + {if $_c['enable_balance'] == 'yes' && $_c['allow_balance_transfer'] == 'yes' && $_user['balance']>=$plan['price']} + {Lang::T('Buy for friend')} {/if}
    - {if $_c['enable_balance'] == 'yes' && $_c['allow_balance_transfer'] == 'yes' && $_user['balance']>=$plan['price']} - {Lang::T('Buy for friend')} - {/if}
    -
    - {/if} - {/foreach} -
    - {/if} - {if count($plans_pppoe)>0} -
    {Lang::T('PPPOE Plan')}
    -
    - {foreach $plans_pppoe as $plan} - {if $router['name'] eq $plan['routers']} -
    -
    -
    {$plan['name_plan']}
    -
    - - - - - - - - - - - - - - - -
    {Lang::T('Type')}{$plan['type']}
    {Lang::T('Price')}{Lang::moneyFormat($plan['price'])}
    {Lang::T('Validity')}{$plan['validity']} {$plan['validity_unit']}
    -
    -
    -
    - Buy - {if $_c['enable_balance'] == 'yes' && $_user['balance']>=$plan['price']} - {Lang::T('Pay With Balance')} + {/if} + {/foreach} +
    + {/if} + {if Validator::countRouterPlan($plans_pppoe,$router['name'])>0} +
    {Lang::T('PPPOE Plan')}
    +
    + {foreach $plans_pppoe as $plan} + {if $router['name'] eq $plan['routers']} +
    +
    +
    {$plan['name_plan']}
    +
    + + + + + + + + + + + + + + + +
    {Lang::T('Type')}{$plan['type']}
    {Lang::T('Price')}{Lang::moneyFormat($plan['price'])}
    {Lang::T('Validity')}{$plan['validity']} {$plan['validity_unit']}
    +
    +
    +
    + Buy + {if $_c['enable_balance'] == 'yes' && $_user['balance']>=$plan['price']} + {Lang::T('Pay With Balance')} + {/if} +
    + {if $_c['enable_balance'] == 'yes' && $_c['allow_balance_transfer'] == 'yes' && $_user['balance']>=$plan['price']} + {Lang::T('Buy for friend')} {/if}
    - {if $_c['enable_balance'] == 'yes' && $_c['allow_balance_transfer'] == 'yes' && $_user['balance']>=$plan['price']} - {Lang::T('Buy for friend')} - {/if}
    -
    - {/if} - {/foreach} -
    - {/if} -
    + {/if} + {/foreach} +
    + {/if} +
    + {/if} {/foreach}
    diff --git a/version.json b/version.json index 5e926093..ff0448d2 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "2023.9.15" + "version": "2023.9.21" } \ No newline at end of file