diff --git a/init.php b/init.php index be43dae3..c5847536 100644 --- a/init.php +++ b/init.php @@ -367,7 +367,7 @@ function displayMaintenanceMessage(): void } http_response_code(503); $ui->assign('companyName', $config['CompanyName']); - $ui->display('maintenance.tpl'); + $ui->display('admin/maintenance.tpl'); die(); } diff --git a/system/boot.php b/system/boot.php index c887288e..4b417fb8 100644 --- a/system/boot.php +++ b/system/boot.php @@ -141,7 +141,7 @@ try { } $ui->assign("error_message", $e->getMessage() . '
' . $e->getTraceAsString() . '
'); $ui->assign("error_title", "PHPNuxBill Crash"); - $ui->display('error.tpl'); + $ui->display('admin/error.tpl'); die(); } catch (Exception $e) { Message::sendTelegram( @@ -154,6 +154,6 @@ try { } $ui->assign("error_message", $e->getMessage() . '
' . $e->getTraceAsString() . '
'); $ui->assign("error_title", "PHPNuxBill Crash"); - $ui->display('error.tpl'); + $ui->display('admin/error.tpl'); die(); } diff --git a/system/controllers/community.php b/system/controllers/community.php index df60c08c..0a1e6e55 100644 --- a/system/controllers/community.php +++ b/system/controllers/community.php @@ -19,8 +19,8 @@ switch ($action) { $ui->assign('masters', $masters); $ui->assign('devs', $devs); - $ui->display('community-rollback.tpl'); + $ui->display('admin/rollback.tpl'); break; default: - $ui->display('community.tpl'); + $ui->display('admin/community.tpl'); } \ No newline at end of file diff --git a/system/controllers/dashboard.php b/system/controllers/dashboard.php index fb5a7ffc..c8016e15 100644 --- a/system/controllers/dashboard.php +++ b/system/controllers/dashboard.php @@ -230,4 +230,4 @@ $ui->assign('stocks', $stocks); $ui->assign('plans', $plans); run_hook('view_dashboard'); #HOOK -$ui->display('dashboard.tpl'); +$ui->display('admin/dashboard.tpl'); diff --git a/system/controllers/export.php b/system/controllers/export.php index 9dad29d5..154d188f 100644 --- a/system/controllers/export.php +++ b/system/controllers/export.php @@ -83,7 +83,7 @@ switch ($action) { $ui->assign('mdate', $mdate); $ui->assign('recharged_on', $mdate); run_hook('print_by_date'); #HOOK - $ui->display('print-by-date.tpl'); + $ui->display('admin/print/by-date.tpl'); break; case 'pdf-by-date': @@ -281,7 +281,7 @@ EOF; $ui->assign('tdate', $tdate); $ui->assign('stype', $stype); run_hook('print_by_period'); #HOOK - $ui->display('print-by-period.tpl'); + $ui->display('admin/print/by-period.tpl'); break; diff --git a/system/controllers/logs.php b/system/controllers/logs.php index 7a6a752c..9f259721 100644 --- a/system/controllers/logs.php +++ b/system/controllers/logs.php @@ -97,7 +97,7 @@ switch ($action) { $ui->assign('d', $d); $ui->assign('q', $q); - $ui->display('logs.tpl'); + $ui->display('admin/logs/system.tpl'); break; case 'radius': $q = (_post('q') ? _post('q') : _get('q')); @@ -116,7 +116,7 @@ switch ($action) { $ui->assign('d', $d); $ui->assign('q', $q); - $ui->display('logs-radius.tpl'); + $ui->display('admin/logs/radius.tpl'); break; diff --git a/system/controllers/message.php b/system/controllers/message.php index 6733db2d..046ff092 100644 --- a/system/controllers/message.php +++ b/system/controllers/message.php @@ -46,7 +46,7 @@ EOT; $id = $routes['2']; $ui->assign('id', $id); $ui->assign('xfooter', $select2_customer); - $ui->display('message.tpl'); + $ui->display('admin/message/single.tpl'); break; case 'send-post': @@ -230,7 +230,7 @@ EOT; $ui->assign('totalSMSFailed', $totalSMSFailed); $ui->assign('totalWhatsappSent', $totalWhatsappSent); $ui->assign('totalWhatsappFailed', $totalWhatsappFailed); - $ui->display('message-bulk.tpl'); + $ui->display('admin/message/bulk.tpl'); break; default: diff --git a/system/controllers/pages.php b/system/controllers/pages.php index 9d42439e..9640f7e8 100644 --- a/system/controllers/pages.php +++ b/system/controllers/pages.php @@ -60,7 +60,7 @@ if (strpos($action, "-reset") !== false) { $ui->assign("writeable", is_writable($path)); $ui->assign("pageHeader", str_replace('_', ' ', $action)); $ui->assign("PageFile", $action); - $ui->display('page-edit.tpl'); + $ui->display('admin/settings/page.tpl'); } else $ui->display('admin/404.tpl'); } else { diff --git a/system/controllers/paymentgateway.php b/system/controllers/paymentgateway.php index 237c058b..408977be 100644 --- a/system/controllers/paymentgateway.php +++ b/system/controllers/paymentgateway.php @@ -34,7 +34,7 @@ switch ($action) { $ui->assign('pgs', $pgs); $ui->assign('pg', $pg); $ui->assign('q', $q); - $ui->display('paymentgateway-audit.tpl'); + $ui->display('admin/paymentgateway/audit.tpl'); break; case 'auditview': $pg = alphanumeric($routes[2]); @@ -43,7 +43,7 @@ switch ($action) { $d['pg_paid_response'] = (!empty($d['pg_paid_response']))? Text::jsonArray21Array(json_decode($d['pg_paid_response'], true)) : []; $ui->assign('_title', 'Payment Gateway Audit View'); $ui->assign('pg', $d); - $ui->display('paymentgateway-audit-view.tpl'); + $ui->display('admin/paymentgateway/audit-view.tpl'); break; default: if (_post('save') == 'actives') { @@ -92,7 +92,7 @@ switch ($action) { $ui->assign('_title', 'Payment Gateway Settings'); $ui->assign('pgs', $pgs); $ui->assign('actives', explode(',', $config['payment_gateway'])); - $ui->display('paymentgateway.tpl'); + $ui->display('admin/paymentgateway/list.tpl'); } } } diff --git a/system/controllers/plan.php b/system/controllers/plan.php index f2dbba2a..47f573b3 100644 --- a/system/controllers/plan.php +++ b/system/controllers/plan.php @@ -82,7 +82,7 @@ switch ($action) { } $ui->assign('usings', $usings); run_hook('view_recharge'); #HOOK - $ui->display('recharge.tpl'); + $ui->display('admin/plan/recharge.tpl'); break; case 'recharge-confirm': @@ -158,7 +158,7 @@ switch ($action) { $ui->assign('server', $server); $ui->assign('using', $using); $ui->assign('plan', $plan); - $ui->display('recharge-confirm.tpl'); + $ui->display('admin/plan/recharge-confirm.tpl'); } else { r2(getUrl('plan/recharge'), 'e', $msg); } @@ -180,7 +180,7 @@ switch ($action) { $username = App::getVoucherValue($svoucher); $in = ORM::for_table('tbl_transactions')->where('username', $username)->order_by_desc('id')->find_one(); Package::createInvoice($in); - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); die(); } @@ -239,7 +239,7 @@ switch ($action) { $in = ORM::for_table('tbl_transactions')->where('username', $cust['username'])->order_by_desc('id')->find_one(); Package::createInvoice($in); App::setVoucher($svoucher, $cust['username']); - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); _log('[' . $admin['username'] . ']: ' . 'Recharge ' . $cust['username'] . ' [' . $in['plan_name'] . '][' . Lang::moneyFormat($in['price']) . ']', $admin['user_type'], $admin['id']); } else { r2(getUrl('plan/recharge'), 'e', "Failed to recharge account"); @@ -263,7 +263,7 @@ switch ($action) { } Package::createInvoice($in); $ui->assign('_title', 'View Invoice'); - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); break; @@ -285,7 +285,7 @@ switch ($action) { $ui->assign('date', Lang::dateAndTimeFormat($d['recharged_on'], $d['recharged_time'])); } run_hook('print_invoice'); #HOOK - $ui->display('invoice-print.tpl'); + $ui->display('admin/plan/invoice-print.tpl'); break; case 'edit': @@ -312,7 +312,7 @@ switch ($action) { $ui->assign('p', $ps); run_hook('view_edit_customer_plan'); #HOOK $ui->assign('_title', 'Edit Plan'); - $ui->display('plan-edit.tpl'); + $ui->display('admin/plan/edit.tpl'); } else { r2(getUrl('plan/list'), 'e', Lang::T('Account Not Found')); } @@ -510,7 +510,7 @@ switch ($action) { $ui->assign('search', $search); $ui->assign('page', $page); run_hook('view_list_voucher'); #HOOK - $ui->display('voucher.tpl'); + $ui->display('admin/voucher/list.tpl'); break; case 'add-voucher': @@ -525,7 +525,7 @@ switch ($action) { $r = ORM::for_table('tbl_routers')->where('enabled', '1')->find_many(); $ui->assign('r', $r); run_hook('view_add_voucher'); #HOOK - $ui->display('voucher-add.tpl'); + $ui->display('admin/voucher/add.tpl'); break; case 'remove-voucher': @@ -684,7 +684,7 @@ switch ($action) { //for counting pagebreak $ui->assign('jml', 0); run_hook('view_print_voucher'); #HOOK - $ui->display('print-voucher.tpl'); + $ui->display('admin/print/voucher.tpl'); break; case 'voucher-post': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent', 'Sales'])) { @@ -916,7 +916,7 @@ switch ($action) { $ui->assign('xfooter', $select2_customer); $ui->assign('_title', Lang::T('Refill Account')); run_hook('view_refill'); #HOOK - $ui->display('refill.tpl'); + $ui->display('admin/plan/refill.tpl'); break; @@ -936,7 +936,7 @@ switch ($action) { $v1->save(); $in = ORM::for_table('tbl_transactions')->where('username', $user['username'])->order_by_desc('id')->find_one(); Package::createInvoice($in); - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); } else { r2(getUrl('plan/refill'), 'e', "Failed to refill account"); } @@ -956,7 +956,7 @@ switch ($action) { $ui->assign('p', ORM::for_table('tbl_plans')->where('enabled', '1')->where('type', 'Balance')->find_many()); } run_hook('view_deposit'); #HOOK - $ui->display('deposit.tpl'); + $ui->display('admin/plan/deposit.tpl'); break; case 'deposit-post': if (!in_array($admin['user_type'], ['SuperAdmin', 'Admin', 'Agent', 'Sales'])) { @@ -971,7 +971,7 @@ switch ($action) { if (App::getVoucherValue($svoucher)) { $in = ORM::for_table('tbl_transactions')->find_one(App::getVoucherValue($svoucher)); Package::createInvoice($in); - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); die(); } @@ -987,7 +987,7 @@ switch ($action) { if (!empty($svoucher)) { App::setVoucher($svoucher, $trxId); } - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); } else { r2(getUrl('plan/refill'), 'e', "Failed to refill account"); } @@ -1000,7 +1000,7 @@ switch ($action) { if (!empty($svoucher)) { App::setVoucher($svoucher, $trxId); } - $ui->display('invoice.tpl'); + $ui->display('admin/plan/invoice.tpl'); } else { r2(getUrl('plan/refill'), 'e', "Failed to refill account"); } @@ -1102,6 +1102,6 @@ switch ($action) { $d = Paginator::findMany($query, ['search' => $search], 25, $append_url); run_hook('view_list_billing'); #HOOK $ui->assign('d', $d); - $ui->display('plan.tpl'); + $ui->display('admin/plan/active.tpl'); break; } diff --git a/system/controllers/pluginmanager.php b/system/controllers/pluginmanager.php index 94dd524e..bbb2268c 100644 --- a/system/controllers/pluginmanager.php +++ b/system/controllers/pluginmanager.php @@ -345,7 +345,7 @@ switch ($action) { $ui->assign('plugins', $json['plugins']); $ui->assign('pgs', $json['payment_gateway']); $ui->assign('dvcs', $json['devices']); - $ui->display('plugin-manager.tpl'); + $ui->display('admin/settings/plugin-manager.tpl'); } diff --git a/system/controllers/pool.php b/system/controllers/pool.php index 14c44d7d..9085cff4 100644 --- a/system/controllers/pool.php +++ b/system/controllers/pool.php @@ -33,14 +33,14 @@ switch ($action) { $ui->assign('d', $d); run_hook('view_pool'); #HOOK - $ui->display('pool.tpl'); + $ui->display('admin/pool/list.tpl'); break; case 'add': $r = ORM::for_table('tbl_routers')->find_many(); $ui->assign('r', $r); run_hook('view_add_pool'); #HOOK - $ui->display('pool-add.tpl'); + $ui->display('admin/pool/add.tpl'); break; case 'edit': @@ -49,7 +49,7 @@ switch ($action) { if ($d) { $ui->assign('d', $d); run_hook('view_edit_pool'); #HOOK - $ui->display('pool-edit.tpl'); + $ui->display('admin/pool/edit.tpl'); } else { r2(getUrl('pool/list'), 'e', Lang::T('Account Not Found')); } @@ -162,14 +162,14 @@ switch ($action) { $ui->assign('d', $d); run_hook('view_port'); #HOOK - $ui->display('port.tpl'); + $ui->display('admin/port/list.tpl'); break; case 'add-port': $r = ORM::for_table('tbl_routers')->find_many(); $ui->assign('r', $r); run_hook('view_add_port'); #HOOK - $ui->display('port-add.tpl'); + $ui->display('admin/port/add.tpl'); break; case 'edit-port': @@ -178,7 +178,7 @@ switch ($action) { if ($d) { $ui->assign('d', $d); run_hook('view_edit_port'); #HOOK - $ui->display('port-edit.tpl'); + $ui->display('admin/port/edit.tpl'); } else { r2(getUrl('pool/port'), 'e', Lang::T('Account Not Found')); } diff --git a/system/controllers/radius.php b/system/controllers/radius.php index ca90e916..b7403825 100644 --- a/system/controllers/radius.php +++ b/system/controllers/radius.php @@ -22,7 +22,7 @@ switch ($action) { $ui->assign('_system_menu', 'radius'); $ui->assign('_title', "Network Access Server"); $ui->assign('routers', ORM::for_table('tbl_routers')->find_many()); - $ui->display('radius-nas-add.tpl'); + $ui->display('admin/radius/nas-add.tpl'); break; case 'nas-add-post': $shortname = _post('shortname'); @@ -78,7 +78,7 @@ switch ($action) { if ($d) { $ui->assign('routers', ORM::for_table('tbl_routers')->find_many()); $ui->assign('d', $d); - $ui->display('radius-nas-edit.tpl'); + $ui->display('admin/radius/nas-edit.tpl'); } else { r2(getUrl('radius/list'), 'e', Lang::T('Account Not Found')); } @@ -147,5 +147,5 @@ switch ($action) { } $ui->assign('name', $name); $ui->assign('nas', $nas); - $ui->display('radius-nas.tpl'); + $ui->display('admin/radius/nas.tpl'); } diff --git a/system/controllers/reports.php b/system/controllers/reports.php index 9f15bdcf..3c4a7554 100644 --- a/system/controllers/reports.php +++ b/system/controllers/reports.php @@ -269,7 +269,7 @@ switch ($action) { $ui->assign('activation', $d); $ui->assign('q', $q); - $ui->display('reports-activation.tpl'); + $ui->display('admin/reports/activation.tpl'); break; case 'by-period': @@ -277,7 +277,7 @@ switch ($action) { $ui->assign('mtime', $mtime); $ui->assign('tdate', $tdate); run_hook('view_reports_by_period'); #HOOK - $ui->display('reports-period.tpl'); + $ui->display('admin/reports/period.tpl'); break; case 'period-view': @@ -310,7 +310,7 @@ switch ($action) { $ui->assign('tdate', $tdate); $ui->assign('stype', $stype); run_hook('view_reports_period'); #HOOK - $ui->display('reports-period-view.tpl'); + $ui->display('admin/reports/period-view.tpl'); break; case 'daily-report': @@ -384,6 +384,6 @@ switch ($action) { $ui->assign('dr', $dr); $ui->assign('mdate', $mdate); run_hook('view_daily_reports'); #HOOK - $ui->display('reports.tpl'); + $ui->display('admin/reports/list.tpl'); break; } diff --git a/system/controllers/routers.php b/system/controllers/routers.php index ef3e1c8e..cf3fe0c7 100644 --- a/system/controllers/routers.php +++ b/system/controllers/routers.php @@ -36,11 +36,11 @@ switch ($action) { $ui->assign('_title', Lang::T('Routers Geo Location Information')); $ui->assign('xheader', $leafletpickerHeader); $ui->assign('xfooter', ''); - $ui->display('routers-maps.tpl'); + $ui->display('admin/routers/maps.tpl'); break; case 'add': run_hook('view_add_routers'); #HOOK - $ui->display('routers-add.tpl'); + $ui->display('admin/routers/add.tpl'); break; case 'edit': @@ -53,7 +53,7 @@ switch ($action) { if ($d) { $ui->assign('d', $d); run_hook('view_router_edit'); #HOOK - $ui->display('routers-edit.tpl'); + $ui->display('admin/routers/edit.tpl'); } else { r2(getUrl('routers/list'), 'e', Lang::T('Account Not Found')); } @@ -215,6 +215,6 @@ switch ($action) { $d = Paginator::findMany($query, ['name' => $name]); $ui->assign('d', $d); run_hook('view_list_routers'); #HOOK - $ui->display('routers.tpl'); + $ui->display('admin/routers/list.tpl'); break; } diff --git a/system/controllers/services.php b/system/controllers/services.php index f3244cd8..df22cfa4 100644 --- a/system/controllers/services.php +++ b/system/controllers/services.php @@ -516,7 +516,7 @@ switch ($action) { $ui->assign('d', $d); run_hook('view_list_ppoe'); #HOOK - $ui->display('pppoe.tpl'); + $ui->display('admin/pppoe/list.tpl'); break; case 'pppoe-add': @@ -535,7 +535,7 @@ switch ($action) { } $ui->assign('devices', $devices); run_hook('view_add_ppoe'); #HOOK - $ui->display('pppoe-add.tpl'); + $ui->display('admin/pppoe/add.tpl'); break; case 'pppoe-edit': @@ -578,7 +578,7 @@ switch ($action) { } $ui->assign('exps', $exps); run_hook('view_edit_ppoe'); #HOOK - $ui->display('pppoe-edit.tpl'); + $ui->display('admin/pppoe/edit.tpl'); } else { r2(getUrl('services/pppoe'), 'e', Lang::T('Account Not Found')); } @@ -1009,7 +1009,7 @@ switch ($action) { $ui->assign('d', $d); run_hook('view_list_vpn'); #HOOK - $ui->display('vpn.tpl'); + $ui->display('admin/vpn/list.tpl'); break; case 'vpn-add': @@ -1028,7 +1028,7 @@ switch ($action) { } $ui->assign('devices', $devices); run_hook('view_add_vpn'); #HOOK - $ui->display('vpn-add.tpl'); + $ui->display('admin/vpn/add.tpl'); break; case 'vpn-edit': @@ -1071,7 +1071,7 @@ switch ($action) { } $ui->assign('exps', $exps); run_hook('view_edit_vpn'); #HOOK - $ui->display('vpn-edit.tpl'); + $ui->display('admin/vpn/edit.tpl'); } else { r2(getUrl('services/vpn'), 'e', Lang::T('Account Not Found')); } diff --git a/system/controllers/settings.php b/system/controllers/settings.php index 3cfc2633..6fdd1d40 100644 --- a/system/controllers/settings.php +++ b/system/controllers/settings.php @@ -205,7 +205,7 @@ switch ($action) { $ui->assign("error_message", "Radius table not found.

" . $e->getMessage() . "

Download here or here and import it to database.

Check config.php for radius connection details"); - $ui->display('error.tpl'); + $ui->display('admin/error.tpl'); die(); } } @@ -527,7 +527,7 @@ switch ($action) { run_hook('view_list_admin'); #HOOK $csrf_token = Csrf::generateAndStoreToken(); $ui->assign('csrf_token', $csrf_token); - $ui->display('list.tpl'); + $ui->display('admin/admin/list.tpl'); break; case 'users-add': @@ -953,7 +953,7 @@ switch ($action) { } $ui->assign('tables', $tables); run_hook('view_database'); #HOOK - $ui->display('dbstatus.tpl'); + $ui->display('admin/settings/dbstatus.tpl'); } break; @@ -1043,7 +1043,7 @@ switch ($action) { } $csrf_token = Csrf::generateAndStoreToken(); $ui->assign('csrf_token', $csrf_token); - $ui->display('language-add.tpl'); + $ui->display('admin/settings/language-add.tpl'); break; case 'lang-post': @@ -1095,7 +1095,7 @@ switch ($action) { $ui->assign('csrf_token', $csrf_token); $ui->assign('_c', $config); $ui->assign('_title', Lang::T('Maintenance Mode Settings')); - $ui->display('maintenance-mode.tpl'); + $ui->display('admin/settings/maintenance-mode.tpl'); break; case 'miscellaneous': diff --git a/ui/ui/community.tpl b/ui/ui/admin/community.tpl similarity index 100% rename from ui/ui/community.tpl rename to ui/ui/admin/community.tpl diff --git a/ui/ui/dashboard.tpl b/ui/ui/admin/dashboard.tpl similarity index 100% rename from ui/ui/dashboard.tpl rename to ui/ui/admin/dashboard.tpl diff --git a/ui/ui/error.tpl b/ui/ui/admin/error.tpl similarity index 100% rename from ui/ui/error.tpl rename to ui/ui/admin/error.tpl diff --git a/ui/ui/logs-radius.tpl b/ui/ui/admin/logs/radius.tpl similarity index 100% rename from ui/ui/logs-radius.tpl rename to ui/ui/admin/logs/radius.tpl diff --git a/ui/ui/logs.tpl b/ui/ui/admin/logs/system.tpl similarity index 100% rename from ui/ui/logs.tpl rename to ui/ui/admin/logs/system.tpl diff --git a/ui/ui/maintenance.tpl b/ui/ui/admin/maintenance.tpl similarity index 100% rename from ui/ui/maintenance.tpl rename to ui/ui/admin/maintenance.tpl diff --git a/ui/ui/message-bulk.tpl b/ui/ui/admin/message/bulk.tpl similarity index 100% rename from ui/ui/message-bulk.tpl rename to ui/ui/admin/message/bulk.tpl diff --git a/ui/ui/message.tpl b/ui/ui/admin/message/single.tpl similarity index 100% rename from ui/ui/message.tpl rename to ui/ui/admin/message/single.tpl diff --git a/ui/ui/paymentgateway-audit-view.tpl b/ui/ui/admin/paymentgateway/audit-view.tpl similarity index 100% rename from ui/ui/paymentgateway-audit-view.tpl rename to ui/ui/admin/paymentgateway/audit-view.tpl diff --git a/ui/ui/paymentgateway-audit.tpl b/ui/ui/admin/paymentgateway/audit.tpl similarity index 100% rename from ui/ui/paymentgateway-audit.tpl rename to ui/ui/admin/paymentgateway/audit.tpl diff --git a/ui/ui/paymentgateway.tpl b/ui/ui/admin/paymentgateway/list.tpl similarity index 100% rename from ui/ui/paymentgateway.tpl rename to ui/ui/admin/paymentgateway/list.tpl diff --git a/ui/ui/plan.tpl b/ui/ui/admin/plan/active.tpl similarity index 100% rename from ui/ui/plan.tpl rename to ui/ui/admin/plan/active.tpl diff --git a/ui/ui/deposit.tpl b/ui/ui/admin/plan/deposit.tpl similarity index 100% rename from ui/ui/deposit.tpl rename to ui/ui/admin/plan/deposit.tpl diff --git a/ui/ui/plan-edit.tpl b/ui/ui/admin/plan/edit.tpl similarity index 100% rename from ui/ui/plan-edit.tpl rename to ui/ui/admin/plan/edit.tpl diff --git a/ui/ui/invoice-print.tpl b/ui/ui/admin/plan/invoice-print.tpl similarity index 100% rename from ui/ui/invoice-print.tpl rename to ui/ui/admin/plan/invoice-print.tpl diff --git a/ui/ui/invoice.tpl b/ui/ui/admin/plan/invoice.tpl similarity index 100% rename from ui/ui/invoice.tpl rename to ui/ui/admin/plan/invoice.tpl diff --git a/ui/ui/recharge-confirm.tpl b/ui/ui/admin/plan/recharge-confirm.tpl similarity index 100% rename from ui/ui/recharge-confirm.tpl rename to ui/ui/admin/plan/recharge-confirm.tpl diff --git a/ui/ui/recharge.tpl b/ui/ui/admin/plan/recharge.tpl similarity index 100% rename from ui/ui/recharge.tpl rename to ui/ui/admin/plan/recharge.tpl diff --git a/ui/ui/refill.tpl b/ui/ui/admin/plan/refill.tpl similarity index 100% rename from ui/ui/refill.tpl rename to ui/ui/admin/plan/refill.tpl diff --git a/ui/ui/pool-add.tpl b/ui/ui/admin/pool/add.tpl similarity index 100% rename from ui/ui/pool-add.tpl rename to ui/ui/admin/pool/add.tpl diff --git a/ui/ui/pool-edit.tpl b/ui/ui/admin/pool/edit.tpl similarity index 100% rename from ui/ui/pool-edit.tpl rename to ui/ui/admin/pool/edit.tpl diff --git a/ui/ui/pool.tpl b/ui/ui/admin/pool/list.tpl similarity index 100% rename from ui/ui/pool.tpl rename to ui/ui/admin/pool/list.tpl diff --git a/ui/ui/port-add.tpl b/ui/ui/admin/port/add.tpl similarity index 100% rename from ui/ui/port-add.tpl rename to ui/ui/admin/port/add.tpl diff --git a/ui/ui/port-edit.tpl b/ui/ui/admin/port/edit.tpl similarity index 100% rename from ui/ui/port-edit.tpl rename to ui/ui/admin/port/edit.tpl diff --git a/ui/ui/port.tpl b/ui/ui/admin/port/list.tpl similarity index 100% rename from ui/ui/port.tpl rename to ui/ui/admin/port/list.tpl diff --git a/ui/ui/pppoe-add.tpl b/ui/ui/admin/pppoe/add.tpl similarity index 100% rename from ui/ui/pppoe-add.tpl rename to ui/ui/admin/pppoe/add.tpl diff --git a/ui/ui/pppoe-edit.tpl b/ui/ui/admin/pppoe/edit.tpl similarity index 100% rename from ui/ui/pppoe-edit.tpl rename to ui/ui/admin/pppoe/edit.tpl diff --git a/ui/ui/pppoe.tpl b/ui/ui/admin/pppoe/list.tpl similarity index 100% rename from ui/ui/pppoe.tpl rename to ui/ui/admin/pppoe/list.tpl diff --git a/ui/ui/print-by-date.tpl b/ui/ui/admin/print/by-date.tpl similarity index 100% rename from ui/ui/print-by-date.tpl rename to ui/ui/admin/print/by-date.tpl diff --git a/ui/ui/print-by-period.tpl b/ui/ui/admin/print/by-period.tpl similarity index 100% rename from ui/ui/print-by-period.tpl rename to ui/ui/admin/print/by-period.tpl diff --git a/ui/ui/print-voucher.tpl b/ui/ui/admin/print/voucher.tpl similarity index 100% rename from ui/ui/print-voucher.tpl rename to ui/ui/admin/print/voucher.tpl diff --git a/ui/ui/radius-nas-add.tpl b/ui/ui/admin/radius/nas-add.tpl similarity index 100% rename from ui/ui/radius-nas-add.tpl rename to ui/ui/admin/radius/nas-add.tpl diff --git a/ui/ui/radius-nas-edit.tpl b/ui/ui/admin/radius/nas-edit.tpl similarity index 100% rename from ui/ui/radius-nas-edit.tpl rename to ui/ui/admin/radius/nas-edit.tpl diff --git a/ui/ui/radius-nas.tpl b/ui/ui/admin/radius/nas.tpl similarity index 100% rename from ui/ui/radius-nas.tpl rename to ui/ui/admin/radius/nas.tpl diff --git a/ui/ui/reports-activation.tpl b/ui/ui/admin/reports/activation.tpl similarity index 100% rename from ui/ui/reports-activation.tpl rename to ui/ui/admin/reports/activation.tpl diff --git a/ui/ui/reports.tpl b/ui/ui/admin/reports/list.tpl similarity index 100% rename from ui/ui/reports.tpl rename to ui/ui/admin/reports/list.tpl diff --git a/ui/ui/reports-period-view.tpl b/ui/ui/admin/reports/period-view.tpl similarity index 100% rename from ui/ui/reports-period-view.tpl rename to ui/ui/admin/reports/period-view.tpl diff --git a/ui/ui/reports-period.tpl b/ui/ui/admin/reports/period.tpl similarity index 100% rename from ui/ui/reports-period.tpl rename to ui/ui/admin/reports/period.tpl diff --git a/ui/ui/community-rollback.tpl b/ui/ui/admin/rollback.tpl similarity index 100% rename from ui/ui/community-rollback.tpl rename to ui/ui/admin/rollback.tpl diff --git a/ui/ui/routers-add.tpl b/ui/ui/admin/routers/add.tpl similarity index 100% rename from ui/ui/routers-add.tpl rename to ui/ui/admin/routers/add.tpl diff --git a/ui/ui/routers-edit.tpl b/ui/ui/admin/routers/edit.tpl similarity index 100% rename from ui/ui/routers-edit.tpl rename to ui/ui/admin/routers/edit.tpl diff --git a/ui/ui/routers.tpl b/ui/ui/admin/routers/list.tpl similarity index 100% rename from ui/ui/routers.tpl rename to ui/ui/admin/routers/list.tpl diff --git a/ui/ui/routers-maps.tpl b/ui/ui/admin/routers/maps.tpl similarity index 100% rename from ui/ui/routers-maps.tpl rename to ui/ui/admin/routers/maps.tpl diff --git a/ui/ui/dbstatus.tpl b/ui/ui/admin/settings/dbstatus.tpl similarity index 100% rename from ui/ui/dbstatus.tpl rename to ui/ui/admin/settings/dbstatus.tpl diff --git a/ui/ui/language-add.tpl b/ui/ui/admin/settings/language-add.tpl similarity index 100% rename from ui/ui/language-add.tpl rename to ui/ui/admin/settings/language-add.tpl diff --git a/ui/ui/maintenance-mode.tpl b/ui/ui/admin/settings/maintenance-mode.tpl similarity index 100% rename from ui/ui/maintenance-mode.tpl rename to ui/ui/admin/settings/maintenance-mode.tpl diff --git a/ui/ui/page-edit.tpl b/ui/ui/admin/settings/page.tpl similarity index 100% rename from ui/ui/page-edit.tpl rename to ui/ui/admin/settings/page.tpl diff --git a/ui/ui/plugin-manager.tpl b/ui/ui/admin/settings/plugin-manager.tpl similarity index 100% rename from ui/ui/plugin-manager.tpl rename to ui/ui/admin/settings/plugin-manager.tpl diff --git a/ui/ui/voucher-add.tpl b/ui/ui/admin/voucher/add.tpl similarity index 100% rename from ui/ui/voucher-add.tpl rename to ui/ui/admin/voucher/add.tpl diff --git a/ui/ui/voucher.tpl b/ui/ui/admin/voucher/list.tpl similarity index 100% rename from ui/ui/voucher.tpl rename to ui/ui/admin/voucher/list.tpl diff --git a/ui/ui/voucher-view.tpl b/ui/ui/admin/voucher/view.tpl similarity index 100% rename from ui/ui/voucher-view.tpl rename to ui/ui/admin/voucher/view.tpl diff --git a/ui/ui/vpn-add.tpl b/ui/ui/admin/vpn/add.tpl similarity index 100% rename from ui/ui/vpn-add.tpl rename to ui/ui/admin/vpn/add.tpl diff --git a/ui/ui/vpn-edit.tpl b/ui/ui/admin/vpn/edit.tpl similarity index 100% rename from ui/ui/vpn-edit.tpl rename to ui/ui/admin/vpn/edit.tpl diff --git a/ui/ui/vpn.tpl b/ui/ui/admin/vpn/list.tpl similarity index 100% rename from ui/ui/vpn.tpl rename to ui/ui/admin/vpn/list.tpl