feat: add invoice listing page with DataTables integration and update routing

This commit is contained in:
Focuslinkstech 2025-04-08 18:59:15 +01:00
parent 24b713804a
commit f0b9b56bb0
3 changed files with 225 additions and 218 deletions

View File

@ -7,20 +7,20 @@
**/ **/
_auth(); _admin();
$ui->assign('_title', Lang::T('Invoices')); $ui->assign('_title', Lang::T('Invoice Lists'));
$ui->assign('_system_menu', 'Reports'); $ui->assign('_system_menu', 'reports');
$action = $routes['1']; $action = $routes['1'];
$user = User::_info(); $ui->assign('_admin', $admin);
$ui->assign('_user', $user);
if (empty($action)) {
$action = 'list';
}
switch ($action) { switch ($action) {
case 'list': case 'list':
$ui->assign('xheader', '<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.3/css/jquery.dataTables.min.css">'); $ui->assign('xheader', '<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.11.3/css/jquery.dataTables.min.css">');
$ui->assign('invoices', Invoice::getAll()); $ui->assign('invoices', Invoice::getAll());
$ui->display('admin/invoice/list.tpl'); $ui->display('admin/invoices/list.tpl');
break; break;
default: default:
$ui->display('admin/404.tpl'); $ui->display('admin/404.tpl');

View File

@ -30,7 +30,7 @@
</style> </style>
{if isset($xheader)} {if isset($xheader)}
{$xheader} {$xheader}
{/if} {/if}
</head> </head>
@ -78,8 +78,8 @@
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<li class="user-header"> <li class="user-header">
<img src="{$app_url}/{$UPLOAD_PATH}{$_admin['photo']}.thumb.jpg" <img src="{$app_url}/{$UPLOAD_PATH}{$_admin['photo']}.thumb.jpg"
onerror="this.src='{$app_url}/{$UPLOAD_PATH}/admin.default.png'" class="img-circle" onerror="this.src='{$app_url}/{$UPLOAD_PATH}/admin.default.png'"
alt="Avatar"> class="img-circle" alt="Avatar">
<p> <p>
{$_admin['fullname']} {$_admin['fullname']}
<small>{Lang::T($_admin['user_type'])}</small> <small>{Lang::T($_admin['user_type'])}</small>
@ -128,63 +128,64 @@
</li> </li>
{$_MENU_AFTER_CUSTOMERS} {$_MENU_AFTER_CUSTOMERS}
{if !in_array($_admin['user_type'],['Report'])} {if !in_array($_admin['user_type'],['Report'])}
<li class="{if $_routes[0] eq 'plan' || $_routes[0] eq 'coupons'}active{/if} treeview"> <li class="{if $_routes[0] eq 'plan' || $_routes[0] eq 'coupons'}active{/if} treeview">
<a href="#"> <a href="#">
<i class="fa fa-ticket"></i> <span>{Lang::T('Services')}</span> <i class="fa fa-ticket"></i> <span>{Lang::T('Services')}</span>
<span class="pull-right-container"> <span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i> <i class="fa fa-angle-left pull-right"></i>
</span> </span>
</a> </a>
<ul class="treeview-menu"> <ul class="treeview-menu">
<li {if $_routes[1] eq 'list' }class="active" {/if}><a <li {if $_routes[1] eq 'list' }class="active" {/if}><a
href="{Text::url('plan/list')}">{Lang::T('Active Customers')}</a></li> href="{Text::url('plan/list')}">{Lang::T('Active Customers')}</a></li>
{if $_c['disable_voucher'] != 'yes'} {if $_c['disable_voucher'] != 'yes'}
<li {if $_routes[1] eq 'refill' }class="active" {/if}><a <li {if $_routes[1] eq 'refill' }class="active" {/if}><a
href="{Text::url('plan/refill')}">{Lang::T('Refill Customer')}</a></li> href="{Text::url('plan/refill')}">{Lang::T('Refill Customer')}</a></li>
{/if} {/if}
{if $_c['disable_voucher'] != 'yes'} {if $_c['disable_voucher'] != 'yes'}
<li {if $_routes[1] eq 'voucher' }class="active" {/if}><a <li {if $_routes[1] eq 'voucher' }class="active" {/if}><a
href="{Text::url('plan/voucher')}">{Lang::T('Vouchers')}</a></li> href="{Text::url('plan/voucher')}">{Lang::T('Vouchers')}</a></li>
{/if} {/if}
{if $_c['enable_coupons'] == 'yes'} {if $_c['enable_coupons'] == 'yes'}
<li {if $_routes[0] eq 'coupons' }class="active" {/if}><a <li {if $_routes[0] eq 'coupons' }class="active" {/if}><a
href="{Text::url('coupons')}">{Lang::T('Coupons')}</a></li> href="{Text::url('coupons')}">{Lang::T('Coupons')}</a></li>
{/if} {/if}
<li {if $_routes[1] eq 'recharge' }class="active" {/if}><a <li {if $_routes[1] eq 'recharge' }class="active" {/if}><a
href="{Text::url('plan/recharge')}">{Lang::T('Recharge Customer')}</a></li> href="{Text::url('plan/recharge')}">{Lang::T('Recharge Customer')}</a></li>
{if $_c['enable_balance'] == 'yes'} {if $_c['enable_balance'] == 'yes'}
<li {if $_routes[1] eq 'deposit' }class="active" {/if}><a <li {if $_routes[1] eq 'deposit' }class="active" {/if}><a
href="{Text::url('plan/deposit')}">{Lang::T('Refill Balance')}</a></li> href="{Text::url('plan/deposit')}">{Lang::T('Refill Balance')}</a></li>
{/if} {/if}
{$_MENU_SERVICES} {$_MENU_SERVICES}
</ul> </ul>
</li> </li>
{/if} {/if}
{$_MENU_AFTER_SERVICES} {$_MENU_AFTER_SERVICES}
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<li class="{if $_system_menu eq 'services'}active{/if} treeview"> <li class="{if $_system_menu eq 'services'}active{/if} treeview">
<a href="#"> <a href="#">
<i class="ion ion-cube"></i> <span>{Lang::T('Internet Plan')}</span> <i class="ion ion-cube"></i> <span>{Lang::T('Internet Plan')}</span>
<span class="pull-right-container"> <span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i> <i class="fa fa-angle-left pull-right"></i>
</span> </span>
</a> </a>
<ul class="treeview-menu"> <ul class="treeview-menu">
<li {if $_routes[1] eq 'hotspot' }class="active" {/if}><a <li {if $_routes[1] eq 'hotspot' }class="active" {/if}><a
href="{Text::url('services/hotspot')}">Hotspot</a></li> href="{Text::url('services/hotspot')}">Hotspot</a></li>
<li {if $_routes[1] eq 'pppoe' }class="active" {/if}><a <li {if $_routes[1] eq 'pppoe' }class="active" {/if}><a
href="{Text::url('services/pppoe')}">PPPOE</a></li> href="{Text::url('services/pppoe')}">PPPOE</a></li>
<li {if $_routes[1] eq 'vpn' }class="active" {/if}><a href="{Text::url('services/vpn')}">VPN</a> <li {if $_routes[1] eq 'vpn' }class="active" {/if}><a
</li> href="{Text::url('services/vpn')}">VPN</a>
<li {if $_routes[1] eq 'list' }class="active" {/if}><a </li>
href="{Text::url('bandwidth/list')}">Bandwidth</a></li> <li {if $_routes[1] eq 'list' }class="active" {/if}><a
{if $_c['enable_balance'] == 'yes'} href="{Text::url('bandwidth/list')}">Bandwidth</a></li>
<li {if $_routes[1] eq 'balance' }class="active" {/if}><a {if $_c['enable_balance'] == 'yes'}
href="{Text::url('services/balance')}">{Lang::T('Customer Balance')}</a></li> <li {if $_routes[1] eq 'balance' }class="active" {/if}><a
{/if} href="{Text::url('services/balance')}">{Lang::T('Customer Balance')}</a></li>
{$_MENU_PLANS} {/if}
</ul> {$_MENU_PLANS}
</li> </ul>
</li>
{/if} {/if}
{$_MENU_AFTER_PLANS} {$_MENU_AFTER_PLANS}
<li class="{if in_array($_routes[0], ['maps'])}active{/if} treeview"> <li class="{if in_array($_routes[0], ['maps'])}active{/if} treeview">
@ -204,18 +205,20 @@
</li> </li>
<li class="{if $_system_menu eq 'reports'}active{/if} treeview"> <li class="{if $_system_menu eq 'reports'}active{/if} treeview">
{if in_array($_admin['user_type'],['SuperAdmin','Admin', 'Report'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin', 'Report'])}
<a href="#"> <a href="#">
<i class="ion ion-clipboard"></i> <span>{Lang::T('Reports')}</span> <i class="ion ion-clipboard"></i> <span>{Lang::T('Reports')}</span>
<span class="pull-right-container"> <span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i> <i class="fa fa-angle-left pull-right"></i>
</span> </span>
</a> </a>
{/if} {/if}
<ul class="treeview-menu"> <ul class="treeview-menu">
<li {if $_routes[1] eq 'reports' }class="active" {/if}><a <li {if $_routes[1] eq 'reports' }class="active" {/if}><a
href="{Text::url('reports')}">{Lang::T('Daily Reports')}</a></li> href="{Text::url('reports')}">{Lang::T('Daily Reports')}</a></li>
<li {if $_routes[1] eq 'activation' }class="active" {/if}><a <li {if $_routes[1] eq 'activation' }class="active" {/if}><a
href="{Text::url('reports/activation')}">{Lang::T('Activation History')}</a></li> href="{Text::url('reports/activation')}">{Lang::T('Activation History')}</a></li>
{* <li {if $_routes[0] eq 'invoices' }class="active" {/if}><a
href="{Text::url('invoices')}">{Lang::T('Invoices')}</a></li> *}
{$_MENU_REPORTS} {$_MENU_REPORTS}
</ul> </ul>
</li> </li>
@ -237,68 +240,71 @@
</li> </li>
{$_MENU_AFTER_MESSAGE} {$_MENU_AFTER_MESSAGE}
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<li class="{if $_system_menu eq 'network'}active{/if} treeview"> <li class="{if $_system_menu eq 'network'}active{/if} treeview">
<a href="#"> <a href="#">
<i class="ion ion-network"></i> <span>{Lang::T('Network')}</span> <i class="ion ion-network"></i> <span>{Lang::T('Network')}</span>
<span class="pull-right-container"> <span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i> <i class="fa fa-angle-left pull-right"></i>
</span> </span>
</a> </a>
<ul class="treeview-menu"> <ul class="treeview-menu">
<li {if $_routes[0] eq 'routers' and $_routes[1] eq '' }class="active" {/if}><a <li {if $_routes[0] eq 'routers' and $_routes[1] eq '' }class="active" {/if}><a
href="{Text::url('routers')}">Routers</a></li> href="{Text::url('routers')}">Routers</a></li>
<li {if $_routes[0] eq 'pool' and $_routes[1] eq 'list' }class="active" {/if}><a <li {if $_routes[0] eq 'pool' and $_routes[1] eq 'list' }class="active" {/if}><a
href="{Text::url('pool/list')}">IP Pool</a></li> href="{Text::url('pool/list')}">IP Pool</a></li>
<li {if $_routes[0] eq 'pool' and $_routes[1] eq 'port' }class="active" {/if}><a <li {if $_routes[0] eq 'pool' and $_routes[1] eq 'port' }class="active" {/if}><a
href="{Text::url('pool/port')}">Port Pool</a></li> href="{Text::url('pool/port')}">Port Pool</a></li>
{$_MENU_NETWORK} {$_MENU_NETWORK}
</ul> </ul>
</li> </li>
{$_MENU_AFTER_NETWORKS} {$_MENU_AFTER_NETWORKS}
{if $_c['radius_enable']} {if $_c['radius_enable']}
<li class="{if $_system_menu eq 'radius'}active{/if} treeview"> <li class="{if $_system_menu eq 'radius'}active{/if} treeview">
<a href="#"> <a href="#">
<i class="fa fa-database"></i> <span>{Lang::T('Radius')}</span> <i class="fa fa-database"></i> <span>{Lang::T('Radius')}</span>
<span class="pull-right-container"> <span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i> <i class="fa fa-angle-left pull-right"></i>
</span> </span>
</a> </a>
<ul class="treeview-menu"> <ul class="treeview-menu">
<li {if $_routes[0] eq 'radius' and $_routes[1] eq 'nas-list' }class="active" {/if}><a <li {if $_routes[0] eq 'radius' and $_routes[1] eq 'nas-list' }class="active" {/if}><a
href="{Text::url('radius/nas-list')}">{Lang::T('Radius NAS')}</a></li> href="{Text::url('radius/nas-list')}">{Lang::T('Radius NAS')}</a></li>
{$_MENU_RADIUS} {$_MENU_RADIUS}
</ul> </ul>
</li>
{/if}
{$_MENU_AFTER_RADIUS}
<li class="{if $_system_menu eq 'pages'}active{/if} treeview">
<a href="#">
<i class="ion ion-document"></i> <span>{Lang::T("Static Pages")}</span>
<span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i>
</span>
</a>
<ul class="treeview-menu">
<li {if $_routes[1] eq 'Order_Voucher' }class="active" {/if}><a
href="{Text::url('pages/Order_Voucher')}">{Lang::T('Order Voucher')}</a></li>
<li {if $_routes[1] eq 'Voucher' }class="active" {/if}><a
href="{Text::url('pages/Voucher')}">{Lang::T('Theme Voucher')}</a></li>
<li {if $_routes[1] eq 'Announcement' }class="active" {/if}><a
href="{Text::url('pages/Announcement')}">{Lang::T('Announcement')}</a></li>
<li {if $_routes[1] eq 'Announcement_Customer' }class="active" {/if}><a
href="{Text::url('pages/Announcement_Customer')}">{Lang::T('Customer
Announcement')}</a>
</li> </li>
{/if} <li {if $_routes[1] eq 'Registration_Info' }class="active" {/if}><a
{$_MENU_AFTER_RADIUS} href="{Text::url('pages/Registration_Info')}">{Lang::T('Registration Info')}</a>
<li class="{if $_system_menu eq 'pages'}active{/if} treeview"> </li>
<a href="#"> <li {if $_routes[1] eq 'Payment_Info' }class="active" {/if}><a
<i class="ion ion-document"></i> <span>{Lang::T("Static Pages")}</span> href="{Text::url('pages/Payment_Info')}">{Lang::T('Payment Info')}</a></li>
<span class="pull-right-container"> <li {if $_routes[1] eq 'Privacy_Policy' }class="active" {/if}><a
<i class="fa fa-angle-left pull-right"></i> href="{Text::url('pages/Privacy_Policy')}">{Lang::T('Privacy Policy')}</a></li>
</span> <li {if $_routes[1] eq 'Terms_and_Conditions' }class="active" {/if}><a
</a> href="{Text::url('pages/Terms_and_Conditions')}">{Lang::T('Terms and
<ul class="treeview-menu"> Conditions')}</a></li>
<li {if $_routes[1] eq 'Order_Voucher' }class="active" {/if}><a {$_MENU_PAGES}
href="{Text::url('pages/Order_Voucher')}">{Lang::T('Order Voucher')}</a></li> </ul>
<li {if $_routes[1] eq 'Voucher' }class="active" {/if}><a </li>
href="{Text::url('pages/Voucher')}">{Lang::T('Theme Voucher')}</a></li>
<li {if $_routes[1] eq 'Announcement' }class="active" {/if}><a
href="{Text::url('pages/Announcement')}">{Lang::T('Announcement')}</a></li>
<li {if $_routes[1] eq 'Announcement_Customer' }class="active" {/if}><a
href="{Text::url('pages/Announcement_Customer')}">{Lang::T('Customer Announcement')}</a>
</li>
<li {if $_routes[1] eq 'Registration_Info' }class="active" {/if}><a
href="{Text::url('pages/Registration_Info')}">{Lang::T('Registration Info')}</a></li>
<li {if $_routes[1] eq 'Payment_Info' }class="active" {/if}><a
href="{Text::url('pages/Payment_Info')}">{Lang::T('Payment Info')}</a></li>
<li {if $_routes[1] eq 'Privacy_Policy' }class="active" {/if}><a
href="{Text::url('pages/Privacy_Policy')}">{Lang::T('Privacy Policy')}</a></li>
<li {if $_routes[1] eq 'Terms_and_Conditions' }class="active" {/if}><a
href="{Text::url('pages/Terms_and_Conditions')}">{Lang::T('Terms and Conditions')}</a></li>
{$_MENU_PAGES}
</ul>
</li>
{/if} {/if}
{$_MENU_AFTER_PAGES} {$_MENU_AFTER_PAGES}
<li <li
@ -311,84 +317,85 @@
</a> </a>
<ul class="treeview-menu"> <ul class="treeview-menu">
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<li {if $_routes[1] eq 'app' }class="active" {/if}><a <li {if $_routes[1] eq 'app' }class="active" {/if}><a
href="{Text::url('settings/app')}">{Lang::T('General Settings')}</a></li> href="{Text::url('settings/app')}">{Lang::T('General Settings')}</a></li>
<li {if $_routes[1] eq 'localisation' }class="active" {/if}><a <li {if $_routes[1] eq 'localisation' }class="active" {/if}><a
href="{Text::url('settings/localisation')}">{Lang::T('Localisation')}</a></li> href="{Text::url('settings/localisation')}">{Lang::T('Localisation')}</a></li>
<li {if $_routes[0] eq 'customfield' }class="active" {/if}><a <li {if $_routes[0] eq 'customfield' }class="active" {/if}><a
href="{Text::url('customfield')}">{Lang::T('Custom Fields')}</a></li> href="{Text::url('customfield')}">{Lang::T('Custom Fields')}</a></li>
<li {if $_routes[1] eq 'miscellaneous' }class="active" {/if}><a <li {if $_routes[1] eq 'miscellaneous' }class="active" {/if}><a
href="{Text::url('settings/miscellaneous')}">{Lang::T('Miscellaneous')}</a></li> href="{Text::url('settings/miscellaneous')}">{Lang::T('Miscellaneous')}</a></li>
<li {if $_routes[1] eq 'maintenance' }class="active" {/if}><a <li {if $_routes[1] eq 'maintenance' }class="active" {/if}><a
href="{Text::url('settings/maintenance')}">{Lang::T('Maintenance Mode')}</a></li> href="{Text::url('settings/maintenance')}">{Lang::T('Maintenance Mode')}</a></li>
<li {if $_routes[0] eq 'widgets' }class="active" {/if}><a <li {if $_routes[0] eq 'widgets' }class="active" {/if}><a
href="{Text::url('widgets')}">{Lang::T('Widgets')}</a></li> href="{Text::url('widgets')}">{Lang::T('Widgets')}</a></li>
<li {if $_routes[1] eq 'notifications' }class="active" {/if}><a <li {if $_routes[1] eq 'notifications' }class="active" {/if}><a
href="{Text::url('settings/notifications')}">{Lang::T('User Notification')}</a></li> href="{Text::url('settings/notifications')}">{Lang::T('User Notification')}</a></li>
<li {if $_routes[1] eq 'devices' }class="active" {/if}><a <li {if $_routes[1] eq 'devices' }class="active" {/if}><a
href="{Text::url('settings/devices')}">{Lang::T('Devices')}</a></li> href="{Text::url('settings/devices')}">{Lang::T('Devices')}</a></li>
{/if} {/if}
{if in_array($_admin['user_type'],['SuperAdmin','Admin','Agent'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin','Agent'])}
<li {if $_routes[1] eq 'users' }class="active" {/if}><a <li {if $_routes[1] eq 'users' }class="active" {/if}><a
href="{Text::url('settings/users')}">{Lang::T('Administrator Users')}</a></li> href="{Text::url('settings/users')}">{Lang::T('Administrator Users')}</a></li>
{/if} {/if}
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<li {if $_routes[1] eq 'dbstatus' }class="active" {/if}><a <li {if $_routes[1] eq 'dbstatus' }class="active" {/if}><a
href="{Text::url('settings/dbstatus')}">{Lang::T('Backup/Restore')}</a></li> href="{Text::url('settings/dbstatus')}">{Lang::T('Backup/Restore')}</a></li>
<li {if $_system_menu eq 'paymentgateway' }class="active" {/if}> <li {if $_system_menu eq 'paymentgateway' }class="active" {/if}>
<a href="{Text::url('paymentgateway')}"> <a href="{Text::url('paymentgateway')}">
<span class="text">{Lang::T('Payment Gateway')}</span> <span class="text">{Lang::T('Payment Gateway')}</span>
</a> </a>
</li> </li>
{$_MENU_SETTINGS} {$_MENU_SETTINGS}
<li {if $_routes[0] eq 'pluginmanager' }class="active" {/if}> <li {if $_routes[0] eq 'pluginmanager' }class="active" {/if}>
<a href="{Text::url('pluginmanager')}"><i class="glyphicon glyphicon-tasks"></i> <a href="{Text::url('pluginmanager')}"><i class="glyphicon glyphicon-tasks"></i>
{Lang::T('Plugin Manager')}</a> {Lang::T('Plugin Manager')}</a>
</li> </li>
{/if} {/if}
</ul> </ul>
</li> </li>
{$_MENU_AFTER_SETTINGS} {$_MENU_AFTER_SETTINGS}
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<li class="{if $_system_menu eq 'logs' }active{/if} treeview"> <li class="{if $_system_menu eq 'logs' }active{/if} treeview">
<a href="#"> <a href="#">
<i class="ion ion-clock"></i> <span>{Lang::T('Logs')}</span> <i class="ion ion-clock"></i> <span>{Lang::T('Logs')}</span>
<span class="pull-right-container"> <span class="pull-right-container">
<i class="fa fa-angle-left pull-right"></i> <i class="fa fa-angle-left pull-right"></i>
</span> </span>
</a> </a>
<ul class="treeview-menu"> <ul class="treeview-menu">
<li {if $_routes[1] eq 'list' }class="active" {/if}><a <li {if $_routes[1] eq 'list' }class="active" {/if}><a
href="{Text::url('logs/phpnuxbill')}">PhpNuxBill</a></li> href="{Text::url('logs/phpnuxbill')}">PhpNuxBill</a></li>
{if $_c['radius_enable']} {if $_c['radius_enable']}
<li {if $_routes[1] eq 'radius' }class="active" {/if}><a <li {if $_routes[1] eq 'radius' }class="active" {/if}><a
href="{Text::url('logs/radius')}">Radius</a> href="{Text::url('logs/radius')}">Radius</a>
</li> </li>
{/if} {/if}
<li {if $_routes[1] eq 'message' }class="active" {/if}><a <li {if $_routes[1] eq 'message' }class="active" {/if}><a
href="{Text::url('logs/message')}">Message</a></li> href="{Text::url('logs/message')}">Message</a></li>
{$_MENU_LOGS} {$_MENU_LOGS}
</ul> </ul>
</li> </li>
{/if} {/if}
{$_MENU_AFTER_LOGS} {$_MENU_AFTER_LOGS}
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])} {if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
<li {if $_routes[1] eq 'docs' }class="active" {/if}> <li {if $_routes[1] eq 'docs' }class="active" {/if}>
<a href="{if $_c['docs_clicked'] != 'yes'}{Text::url('settings/docs')}{else}{$app_url}/docs{/if}"> <a
<i class="ion ion-ios-bookmarks"></i> href="{if $_c['docs_clicked'] != 'yes'}{Text::url('settings/docs')}{else}{$app_url}/docs{/if}">
<span class="text">{Lang::T('Documentation')}</span> <i class="ion ion-ios-bookmarks"></i>
{if $_c['docs_clicked'] != 'yes'} <span class="text">{Lang::T('Documentation')}</span>
<span class="pull-right-container"><small {if $_c['docs_clicked'] != 'yes'}
class="label pull-right bg-green">New</small></span> <span class="pull-right-container"><small
{/if} class="label pull-right bg-green">New</small></span>
</a> {/if}
</li> </a>
<li {if $_system_menu eq 'community' }class="active" {/if}> </li>
<a href="{Text::url('community')}"> <li {if $_system_menu eq 'community' }class="active" {/if}>
<i class="ion ion-chatboxes"></i> <a href="{Text::url('community')}">
<span class="text">Community</span> <i class="ion ion-chatboxes"></i>
</a> <span class="text">Community</span>
</li> </a>
</li>
{/if} {/if}
{$_MENU_AFTER_COMMUNITY} {$_MENU_AFTER_COMMUNITY}
</ul> </ul>
@ -396,11 +403,11 @@
</aside> </aside>
{if $_c['maintenance_mode'] == 1} {if $_c['maintenance_mode'] == 1}
<div class="notification-top-bar"> <div class="notification-top-bar">
<p>{Lang::T('The website is currently in maintenance mode, this means that some or all functionality may be <p>{Lang::T('The website is currently in maintenance mode, this means that some or all functionality may be
unavailable to regular users during this time.')}<small> &nbsp;&nbsp;<a unavailable to regular users during this time.')}<small> &nbsp;&nbsp;<a
href="{Text::url('settings/maintenance')}">{Lang::T('Turn Off')}</a></small></p> href="{Text::url('settings/maintenance')}">{Lang::T('Turn Off')}</a></small></p>
</div> </div>
{/if} {/if}
<div class="content-wrapper"> <div class="content-wrapper">
@ -412,19 +419,19 @@
<section class="content"> <section class="content">
{if isset($notify)} {if isset($notify)}
<script> <script>
// Display SweetAlert toast notification // Display SweetAlert toast notification
Swal.fire({ Swal.fire({
icon: '{if $notify_t == "s"}success{else}error{/if}', icon: '{if $notify_t == "s"}success{else}error{/if}',
title: '{$notify}', title: '{$notify}',
position: 'top-end', position: 'top-end',
showConfirmButton: false, showConfirmButton: false,
timer: 5000, timer: 5000,
timerProgressBar: true, timerProgressBar: true,
didOpen: (toast) => { didOpen: (toast) => {
toast.addEventListener('mouseenter', Swal.stopTimer) toast.addEventListener('mouseenter', Swal.stopTimer)
toast.addEventListener('mouseleave', Swal.resumeTimer) toast.addEventListener('mouseleave', Swal.resumeTimer)
} }
}); });
</script> </script>
{/if} {/if}

View File

@ -35,7 +35,7 @@
<span class="label label-warning">{Lang::T('Pending')}</span> <span class="label label-warning">{Lang::T('Pending')}</span>
{/if} {/if}
</td> </td>
<td>{$invoice->created_date}</td> <td>{$invoice->created_at}</td>
<td>{$invoice->due_date}</td> <td>{$invoice->due_date}</td>
<td> <td>
<a href="{$app_url}/system/uploads/invoices/{$invoice->filename}" class="btn btn-primary btn-xs">{Lang::T('View')}</a> <a href="{$app_url}/system/uploads/invoices/{$invoice->filename}" class="btn btn-primary btn-xs">{Lang::T('View')}</a>