Merge pull request #298 from Focuslinkstech/Development
add styles to some tables
This commit is contained in:
commit
5f50d725f1
@ -13,25 +13,27 @@ class Admin
|
||||
{
|
||||
global $db_pass, $config;
|
||||
$enable_session_timeout = $config['enable_session_timeout'];
|
||||
if ($enable_session_timeout) {
|
||||
$timeout = 60;
|
||||
if ($config['session_timeout_duration']) {
|
||||
$timeout = intval($config['session_timeout_duration']);
|
||||
$session_timeout_duration = $config['session_timeout_duration'] ? intval($config['session_timeout_duration'] * 60) : intval(60 * 60); // Convert minutes to seconds
|
||||
|
||||
// Check if the session is active and valid
|
||||
if (isset($_SESSION['aid']) && isset($_SESSION['aid_expiration'])) {
|
||||
if ($_SESSION['aid_expiration'] > time()) {
|
||||
if ($enable_session_timeout) {
|
||||
$_SESSION['aid_expiration'] = time() + $session_timeout_duration;
|
||||
}
|
||||
return $_SESSION['aid'];
|
||||
}
|
||||
// Session expired, log out the user
|
||||
elseif ($enable_session_timeout && $_SESSION['aid_expiration'] <= time()) {
|
||||
self::removeCookie();
|
||||
session_destroy();
|
||||
_alert(Lang::T('Session has expired. Please log in again.'), 'danger', "admin");
|
||||
return 0;
|
||||
}
|
||||
$session_timeout_duration = $timeout * 60; // Convert minutes to seconds
|
||||
}
|
||||
|
||||
if (isset($_SESSION['aid']) && isset($_SESSION['aid_expiration']) && $_SESSION['aid_expiration'] > time()) {
|
||||
return $_SESSION['aid'];
|
||||
} elseif ($enable_session_timeout && isset($_SESSION['aid']) && isset($_SESSION['aid_expiration']) && $_SESSION['aid_expiration'] <= time()) {
|
||||
self::removeCookie();
|
||||
session_destroy();
|
||||
_alert(Lang::T('Session has expired. Please log in again.'), 'danger', "admin");
|
||||
return 0;
|
||||
}
|
||||
// Check if cookie is set and valid
|
||||
// Check if the cookie is set and valid
|
||||
elseif (isset($_COOKIE['aid'])) {
|
||||
// id.time.sha1
|
||||
$tmp = explode('.', $_COOKIE['aid']);
|
||||
if (sha1($tmp[0] . '.' . $tmp[1] . '.' . $db_pass) == $tmp[2]) {
|
||||
if (time() - $tmp[1] < 86400 * 7) {
|
||||
|
@ -214,6 +214,12 @@ if ($config['router_check']) {
|
||||
$ui->assign('routeroffs', $routeroffs);
|
||||
}
|
||||
|
||||
$timestampFile = "$UPLOAD_PATH/cron_last_run.txt";
|
||||
if (file_exists($timestampFile)) {
|
||||
$lastRunTime = file_get_contents($timestampFile);
|
||||
$ui->assign('run_date', date('Y-m-d h:i:s A', $lastRunTime));
|
||||
}
|
||||
|
||||
// Assign the monthly sales data to Smarty
|
||||
$ui->assign('start_date', $start_date);
|
||||
$ui->assign('current_date', $current_date);
|
||||
|
@ -1,6 +1,27 @@
|
||||
<?php
|
||||
|
||||
include "../init.php";
|
||||
$lockFile = "$CACHE_PATH/router_monitor.lock";
|
||||
|
||||
if (!is_dir($CACHE_PATH)) {
|
||||
echo "Directory '$CACHE_PATH' does not exist. Exiting...\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$lock = fopen($lockFile, 'c');
|
||||
|
||||
if ($lock === false) {
|
||||
echo "Failed to open lock file. Exiting...\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!flock($lock, LOCK_EX | LOCK_NB)) {
|
||||
echo "Script is already running. Exiting...\n";
|
||||
fclose($lock);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
||||
$isCli = true;
|
||||
if (php_sapi_name() !== 'cli') {
|
||||
$isCli = false;
|
||||
@ -81,27 +102,7 @@ foreach ($d as $ds) {
|
||||
|
||||
|
||||
if ($config['router_check']) {
|
||||
|
||||
$lockFile = $CACHE_PATH . '/router_monitor.lock';
|
||||
|
||||
if (!is_dir($CACHE_PATH)) {
|
||||
echo "Directory '$CACHE_PATH' does not exist. Exiting...\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
$lock = fopen($lockFile, 'c');
|
||||
|
||||
if ($lock === false) {
|
||||
echo "Failed to open lock file. Exiting...\n";
|
||||
exit;
|
||||
}
|
||||
|
||||
if (!flock($lock, LOCK_EX | LOCK_NB)) {
|
||||
echo "Script is already running. Exiting...\n";
|
||||
fclose($lock);
|
||||
exit;
|
||||
}
|
||||
|
||||
echo "Checking router status...\n";
|
||||
$routers = ORM::for_table('tbl_routers')->where('enabled', '1')->find_many();
|
||||
if (!$routers) {
|
||||
echo "No active routers found in the database.\n";
|
||||
@ -186,14 +187,20 @@ if ($config['router_check']) {
|
||||
Message::SendEmail($adminEmail, $subject, $message);
|
||||
sendTelegram($message);
|
||||
}
|
||||
|
||||
if (defined('PHP_SAPI') && PHP_SAPI === 'cli') {
|
||||
echo "Cronjob finished\n";
|
||||
} else {
|
||||
echo "</pre>";
|
||||
}
|
||||
|
||||
flock($lock, LOCK_UN);
|
||||
fclose($lock);
|
||||
unlink($lockFile);
|
||||
echo "Router monitoring finished\n";
|
||||
}
|
||||
|
||||
|
||||
if (defined('PHP_SAPI') && PHP_SAPI === 'cli') {
|
||||
echo "Cronjob finished\n";
|
||||
} else {
|
||||
echo "</pre>";
|
||||
}
|
||||
|
||||
flock($lock, LOCK_UN);
|
||||
fclose($lock);
|
||||
unlink($lockFile);
|
||||
|
||||
$timestampFile = "$UPLOAD_PATH/cron_last_run.txt";
|
||||
file_put_contents($timestampFile, time());
|
||||
|
||||
|
@ -194,6 +194,25 @@
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $run_date}
|
||||
{assign var="current_time" value=$smarty.now}
|
||||
{assign var="run_time" value=strtotime($run_date)}
|
||||
{if $current_time - $run_time > 3600}
|
||||
<div class="panel panel-warning panel-hovered mb20 activities">
|
||||
<div class="panel-heading"><i class="fa fa-clock-o"></i> {Lang::T('Cron has not run for over 1 hour. Please
|
||||
check your setup.')}</div>
|
||||
</div>
|
||||
{else}
|
||||
<div class="panel panel-success panel-hovered mb20 activities">
|
||||
<div class="panel-heading">{Lang::T('Cron Job last ran on')}: {$run_date}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{else}
|
||||
<div class="panel panel-danger panel-hovered mb20 activities">
|
||||
<div class="panel-heading"><i class="fa fa-warning"></i> {Lang::T('Cron appear not been setup, please check
|
||||
your cron setup.')}</div>
|
||||
</div>
|
||||
{/if}
|
||||
{if $_c['hide_pg'] != 'yes'}
|
||||
<div class="panel panel-success panel-hovered mb20 activities">
|
||||
<div class="panel-heading">{Lang::T('Payment Gateway')}: {str_replace(',',', ',$_c['payment_gateway'])}
|
||||
|
@ -35,8 +35,8 @@
|
||||
<select class="form-control" id="type2" name="type2">
|
||||
<option value="">{Lang::T('Type')}</option>
|
||||
{foreach $type2s as $t}
|
||||
<option value="{$t}" {if $type2 eq $t }selected{/if}>{Lang::T($t)}
|
||||
</option>
|
||||
<option value="{$t}" {if $type2 eq $t }selected{/if}>{Lang::T($t)}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -44,9 +44,9 @@
|
||||
<select class="form-control" id="bandwidth" name="bandwidth">
|
||||
<option value="">Bandwidth</option>
|
||||
{foreach $bws as $b}
|
||||
<option value="{$b['id']}" {if $bandwidth eq $b['id'] }selected{/if}>
|
||||
{$b['name_bw']}
|
||||
</option>
|
||||
<option value="{$b['id']}" {if $bandwidth eq $b['id'] }selected{/if}>
|
||||
{$b['name_bw']}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -54,8 +54,8 @@
|
||||
<select class="form-control" id="type3" name="type3">
|
||||
<option value="">{Lang::T('Category')}</option>
|
||||
{foreach $type3s as $t}
|
||||
<option value="{$t}" {if $type3 eq $t }selected{/if}>{$t}
|
||||
</option>
|
||||
<option value="{$t}" {if $type3 eq $t }selected{/if}>{$t}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -63,8 +63,8 @@
|
||||
<select class="form-control" id="valid" name="valid">
|
||||
<option value="">{Lang::T('Validity')}</option>
|
||||
{foreach $valids as $v}
|
||||
<option value="{$v}" {if $valid eq $v }selected{/if}>{$v}
|
||||
</option>
|
||||
<option value="{$v}" {if $valid eq $v }selected{/if}>{$v}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -72,7 +72,7 @@
|
||||
<select class="form-control" id="router" name="router">
|
||||
<option value="">{Lang::T('Location')}</option>
|
||||
{foreach $routers as $r}
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}</option>
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}</option>
|
||||
{/foreach}
|
||||
<option value="radius" {if $router eq 'radius' }selected{/if}>Radius</option>
|
||||
</select>
|
||||
@ -81,7 +81,7 @@
|
||||
<select class="form-control" id="device" name="device">
|
||||
<option value="">{Lang::T('Device')}</option>
|
||||
{foreach $devices as $r}
|
||||
<option value="{$r}" {if $device eq $r }selected{/if}>{$r}</option>
|
||||
<option value="{$r}" {if $device eq $r }selected{/if}>{$r}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -104,38 +104,40 @@
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th colspan="5" class="text-center">{Lang::T('Internet Package')}</th>
|
||||
<th colspan="2" class="text-center" style="background-color: rgb(246, 244, 244);">{Lang::T('Limit')}</th>
|
||||
<th colspan="2"></th>
|
||||
<th colspan="2" class="text-center" style="background-color: rgb(243, 241, 172);">
|
||||
{Lang::T('Expired')}</th>
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{Lang::T('Name')}</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th><a href="{$_url}bandwidth/list">Bandwidth</a></th>
|
||||
<th>{Lang::T('Category')}</th>
|
||||
<th>{Lang::T('Price')}</th>
|
||||
<th>{Lang::T('Validity')}</th>
|
||||
<th style="background-color: rgb(246, 244, 244);">{Lang::T('Time')}</th>
|
||||
<th style="background-color: rgb(246, 244, 244);">{Lang::T('Data')}</th>
|
||||
<th><a href="{$_url}routers/list">{Lang::T('Location')}</a></th>
|
||||
<th>{Lang::T('Device')}</th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Internet Package')}</th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Date')}</th>
|
||||
<th>{Lang::T('ID')}</th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<div style="margin-left: 5px; margin-right: 5px;">
|
||||
<table class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th colspan="5" class="text-center">{Lang::T('Internet Package')}</th>
|
||||
<th colspan="2" class="text-center" style="background-color: rgb(246, 244, 244);">
|
||||
{Lang::T('Limit')}</th>
|
||||
<th colspan="2"></th>
|
||||
<th colspan="2" class="text-center" style="background-color: rgb(243, 241, 172);">
|
||||
{Lang::T('Expired')}</th>
|
||||
<th colspan="3"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{Lang::T('Name')}</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th><a href="{$_url}bandwidth/list">Bandwidth</a></th>
|
||||
<th>{Lang::T('Category')}</th>
|
||||
<th>{Lang::T('Price')}</th>
|
||||
<th>{Lang::T('Validity')}</th>
|
||||
<th style="background-color: rgb(246, 244, 244);">{Lang::T('Time')}</th>
|
||||
<th style="background-color: rgb(246, 244, 244);">{Lang::T('Data')}</th>
|
||||
<th><a href="{$_url}routers/list">{Lang::T('Location')}</a></th>
|
||||
<th>{Lang::T('Device')}</th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Internet Package')}</th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Date')}</th>
|
||||
<th>{Lang::T('ID')}</th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['enabled'] !=1}class="danger" title="disabled" {elseif $ds['prepaid'] !='yes'
|
||||
}class="warning" title="Postpaid" {/if}>
|
||||
}class="warning" title="Postpaid" {/if}>
|
||||
<td class="headcol">{$ds['name_plan']}</td>
|
||||
<td>{if $ds['prepaid'] == no}<b>Postpaid</b>{else}Prepaid{/if} {$ds['plan_type']}</td>
|
||||
<td>{$ds['name_bw']}</td>
|
||||
@ -146,11 +148,11 @@
|
||||
<td>{$ds['data_limit']} {$ds['data_unit']}</td>
|
||||
<td>
|
||||
{if $ds['is_radius']}
|
||||
<span class="label label-primary">RADIUS</span>
|
||||
<span class="label label-primary">RADIUS</span>
|
||||
{else}
|
||||
{if $ds['routers']!=''}
|
||||
<a href="{$_url}routers/edit/0&name={$ds['routers']}">{$ds['routers']}</a>
|
||||
{/if}
|
||||
{if $ds['routers']!=''}
|
||||
<a href="{$_url}routers/edit/0&name={$ds['routers']}">{$ds['routers']}</a>
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
<td>{$ds['device']}</td>
|
||||
@ -163,13 +165,14 @@
|
||||
<a href="{$_url}services/edit/{$ds['id']}"
|
||||
class="btn btn-info btn-xs">{Lang::T('Edit')}</a>
|
||||
<a href="{$_url}services/delete/{$ds['id']}" id="{$ds['id']}"
|
||||
onclick="return confirm('{Lang::T('Delete')}?')" class="btn btn-danger btn-xs"><i
|
||||
class="glyphicon glyphicon-trash"></i></a>
|
||||
onclick="return confirm('{Lang::T('Delete')}?')"
|
||||
class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i></a>
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
{include file="pagination.tpl"}
|
||||
@ -182,4 +185,4 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="sections/footer.tpl"}
|
||||
{include file="sections/footer.tpl"}
|
@ -5,19 +5,19 @@
|
||||
<div class="panel panel-hovered mb20 panel-primary">
|
||||
<div class="panel-heading">
|
||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-primary btn-xs" title="save" href="{$_url}plan/sync"
|
||||
onclick="return confirm('This will sync/send Caustomer active plan to Mikrotik?')"><span
|
||||
class="glyphicon glyphicon-refresh" aria-hidden="true"></span> sync</a>
|
||||
</div>
|
||||
{* <div class="btn-group pull-right">
|
||||
<a class="btn btn-info btn-xs" title="save" href="{$_url}plan/csv{$append_url}"
|
||||
onclick="return confirm('This will export to CSV?')"><span class="glyphicon glyphicon-download"
|
||||
aria-hidden="true"></span> CSV</a>
|
||||
</div> *}
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-primary btn-xs" title="save" href="{$_url}plan/sync"
|
||||
onclick="return confirm('This will sync/send Caustomer active plan to Mikrotik?')"><span
|
||||
class="glyphicon glyphicon-refresh" aria-hidden="true"></span> sync</a>
|
||||
</div>
|
||||
{* <div class="btn-group pull-right">
|
||||
<a class="btn btn-info btn-xs" title="save" href="{$_url}plan/csv{$append_url}"
|
||||
onclick="return confirm('This will export to CSV?')"><span class="glyphicon glyphicon-download"
|
||||
aria-hidden="true"></span> CSV</a>
|
||||
</div> *}
|
||||
{/if}
|
||||
|
||||
{Lang::T('Active Customers')}
|
||||
{Lang::T('Active Customers')}
|
||||
</div>
|
||||
<form id="site-search" method="post" action="{$_url}plan/list/">
|
||||
<div class="panel-body">
|
||||
@ -36,8 +36,8 @@
|
||||
<select class="form-control" id="router" name="router">
|
||||
<option value="">{Lang::T('Location')}</option>
|
||||
{foreach $routers as $r}
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}
|
||||
</option>
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -45,8 +45,8 @@
|
||||
<select class="form-control" id="plan" name="plan">
|
||||
<option value="">{Lang::T('Plan Name')}</option>
|
||||
{foreach $plans as $p}
|
||||
<option value="{$p['id']}" {if $plan eq $p['id'] }selected{/if}>{$p['name_plan']}
|
||||
</option>
|
||||
<option value="{$p['id']}" {if $plan eq $p['id'] }selected{/if}>{$p['name_plan']}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -70,33 +70,34 @@
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-responsive">
|
||||
<table id="datatable" class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{Lang::T('Username')}</th>
|
||||
<th>{Lang::T('Plan Name')}</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th>{Lang::T('Created On')}</th>
|
||||
<th>{Lang::T('Expires On')}</th>
|
||||
<th>{Lang::T('Method')}</th>
|
||||
<th><a href="{$_url}routers/list">{Lang::T('Location')}</a></th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['status']=='off'}class="danger" {/if}>
|
||||
<div style="margin-left: 5px; margin-right: 5px;">
|
||||
<table id="datatable" class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{Lang::T('Username')}</th>
|
||||
<th>{Lang::T('Plan Name')}</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th>{Lang::T('Created On')}</th>
|
||||
<th>{Lang::T('Expires On')}</th>
|
||||
<th>{Lang::T('Method')}</th>
|
||||
<th><a href="{$_url}routers/list">{Lang::T('Location')}</a></th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['status']=='off' }class="danger" {/if}>
|
||||
<td>
|
||||
{if $ds['customer_id'] == '0'}
|
||||
<a href="{$_url}plan/voucher/&search={$ds['username']}">{$ds['username']}</a>
|
||||
<a href="{$_url}plan/voucher/&search={$ds['username']}">{$ds['username']}</a>
|
||||
{else}
|
||||
<a href="{$_url}customers/viewu/{$ds['username']}">{$ds['username']}</a>
|
||||
<a href="{$_url}customers/viewu/{$ds['username']}">{$ds['username']}</a>
|
||||
{/if}
|
||||
</td>
|
||||
{if $ds['type'] == 'Hotspot'}
|
||||
<td><a href="{$_url}services/edit/{$ds['plan_id']}">{$ds['namebp']}</a></td>
|
||||
<td><a href="{$_url}services/edit/{$ds['plan_id']}">{$ds['namebp']}</a></td>
|
||||
{else}
|
||||
<td><a href="{$_url}services/pppoe-edit/{$ds['plan_id']}">{$ds['namebp']}</a></td>
|
||||
<td><a href="{$_url}services/pppoe-edit/{$ds['plan_id']}">{$ds['namebp']}</a></td>
|
||||
{/if}
|
||||
<td>{$ds['type']}</td>
|
||||
<td>{Lang::dateAndTimeFormat($ds['recharged_on'],$ds['recharged_time'])}</td>
|
||||
@ -107,19 +108,20 @@
|
||||
<a href="{$_url}plan/edit/{$ds['id']}" class="btn btn-warning btn-xs"
|
||||
style="color: black;">{Lang::T('Edit')}</a>
|
||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||
<a href="{$_url}plan/delete/{$ds['id']}" id="{$ds['id']}"
|
||||
onclick="return confirm('{Lang::T('Delete')}?')" class="btn btn-danger btn-xs"><i
|
||||
class="glyphicon glyphicon-trash"></i></a>
|
||||
<a href="{$_url}plan/delete/{$ds['id']}" id="{$ds['id']}"
|
||||
onclick="return confirm('{Lang::T('Delete')}?')"
|
||||
class="btn btn-danger btn-xs"><i class="glyphicon glyphicon-trash"></i></a>
|
||||
{/if}
|
||||
{if $ds['status']=='off' && $_c['extend_expired']}
|
||||
<a href="javascript:extend('{$ds['id']}')"
|
||||
class="btn btn-info btn-xs">{Lang::T('Extend')}</a>
|
||||
<a href="javascript:extend('{$ds['id']}')"
|
||||
class="btn btn-info btn-xs">{Lang::T('Extend')}</a>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{include file="pagination.tpl"}
|
||||
</div>
|
||||
@ -131,10 +133,10 @@
|
||||
var res = prompt("Extend for many days?", "3");
|
||||
if (res) {
|
||||
if (confirm("Extend for " + res + " days?")) {
|
||||
window.location.href = "{$_url}plan/extend/"+idP+"/"+res+"&stoken={App::getToken()}";
|
||||
window.location.href = "{$_url}plan/extend/" + idP + "/" + res + "&stoken={App::getToken()}";
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
{include file="sections/footer.tpl"}
|
||||
{include file="sections/footer.tpl"}
|
@ -35,8 +35,8 @@
|
||||
<select class="form-control" id="type2" name="type2">
|
||||
<option value="">{Lang::T('Type')}</option>
|
||||
{foreach $type2s as $t}
|
||||
<option value="{$t}" {if $type2 eq $t }selected{/if}>{Lang::T($t)}
|
||||
</option>
|
||||
<option value="{$t}" {if $type2 eq $t }selected{/if}>{Lang::T($t)}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -44,9 +44,9 @@
|
||||
<select class="form-control" id="bandwidth" name="bandwidth">
|
||||
<option value="">Bandwidth</option>
|
||||
{foreach $bws as $b}
|
||||
<option value="{$b['id']}" {if $bandwidth eq $b['id'] }selected{/if}>
|
||||
{$b['name_bw']}
|
||||
</option>
|
||||
<option value="{$b['id']}" {if $bandwidth eq $b['id'] }selected{/if}>
|
||||
{$b['name_bw']}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -54,8 +54,8 @@
|
||||
<select class="form-control" id="type3" name="type3">
|
||||
<option value="">{Lang::T('Category')}</option>
|
||||
{foreach $type3s as $t}
|
||||
<option value="{$t}" {if $type3 eq $t }selected{/if}>{$t}
|
||||
</option>
|
||||
<option value="{$t}" {if $type3 eq $t }selected{/if}>{$t}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -63,8 +63,8 @@
|
||||
<select class="form-control" id="valid" name="valid">
|
||||
<option value="">{Lang::T('Validity')}</option>
|
||||
{foreach $valids as $v}
|
||||
<option value="{$v}" {if $valid eq $v }selected{/if}>{$v}
|
||||
</option>
|
||||
<option value="{$v}" {if $valid eq $v }selected{/if}>{$v}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -72,7 +72,7 @@
|
||||
<select class="form-control" id="router" name="router">
|
||||
<option value="">{Lang::T('Location')}</option>
|
||||
{foreach $routers as $r}
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}</option>
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}</option>
|
||||
{/foreach}
|
||||
<option value="radius" {if $router eq 'radius' }selected{/if}>Radius</option>
|
||||
</select>
|
||||
@ -81,7 +81,7 @@
|
||||
<select class="form-control" id="device" name="device">
|
||||
<option value="">{Lang::T('Device')}</option>
|
||||
{foreach $devices as $r}
|
||||
<option value="{$r}" {if $device eq $r }selected{/if}>{$r}</option>
|
||||
<option value="{$r}" {if $device eq $r }selected{/if}>{$r}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -104,36 +104,38 @@
|
||||
</div>
|
||||
</form>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th colspan="4" class="text-center">{Lang::T('Internet Plan')}</th>
|
||||
<th></th>
|
||||
<th colspan="2" class="text-center" style="background-color: rgb(243, 241, 172);">
|
||||
{Lang::T('Expired')}</th>
|
||||
<th colspan="4"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{Lang::T('Name')}</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th><a href="{$_url}bandwidth/list">{Lang::T('Bandwidth')}</a></th>
|
||||
<th>{Lang::T('Price')}</th>
|
||||
<th>{Lang::T('Validity')}</th>
|
||||
<th><a href="{$_url}pool/list">{Lang::T('IP Pool')}</a></th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Internet Plan')}</th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Date')}</th>
|
||||
<th><a href="{$_url}routers/list">{Lang::T('Location')}</a></th>
|
||||
<th>{Lang::T('Device')}</th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
<th>ID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['enabled'] != 1}class="danger" title="disabled" {/if}>
|
||||
<div style="margin-left: 5px; margin-right: 5px;">
|
||||
<table class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th colspan="4" class="text-center">{Lang::T('Internet Plan')}</th>
|
||||
<th></th>
|
||||
<th colspan="2" class="text-center" style="background-color: rgb(243, 241, 172);">
|
||||
{Lang::T('Expired')}</th>
|
||||
<th colspan="4"></th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>{Lang::T('Name')}</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th><a href="{$_url}bandwidth/list">{Lang::T('Bandwidth')}</a></th>
|
||||
<th>{Lang::T('Price')}</th>
|
||||
<th>{Lang::T('Validity')}</th>
|
||||
<th><a href="{$_url}pool/list">{Lang::T('IP Pool')}</a></th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Internet Plan')}</th>
|
||||
<th style="background-color: rgb(243, 241, 172);">{Lang::T('Date')}</th>
|
||||
<th><a href="{$_url}routers/list">{Lang::T('Location')}</a></th>
|
||||
<th>{Lang::T('Device')}</th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
<th>ID</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['enabled'] !=1}class="danger" title="disabled" {/if}>
|
||||
<td>{$ds['name_plan']}</td>
|
||||
<td>{$ds['plan_type']} {if $ds['prepaid'] != 'yes'}<b>{Lang::T('Postpaid')}</b>{else}{Lang::T('Prepaid')}{/if}</td>
|
||||
<td>{$ds['plan_type']} {if $ds['prepaid'] !=
|
||||
'yes'}<b>{Lang::T('Postpaid')}</b>{else}{Lang::T('Prepaid')}{/if}</td>
|
||||
<td>{$ds['name_bw']}</td>
|
||||
<td>{Lang::moneyFormat($ds['price'])}</td>
|
||||
<td>{$ds['validity']} {$ds['validity_unit']}</td>
|
||||
@ -144,11 +146,11 @@
|
||||
<td>{if $ds['prepaid'] == no}{$ds['expired_date']}{/if}</td>
|
||||
<td>
|
||||
{if $ds['is_radius']}
|
||||
<span class="label label-primary">RADIUS</span>
|
||||
<span class="label label-primary">RADIUS</span>
|
||||
{else}
|
||||
{if $ds['routers']!=''}
|
||||
<a href="{$_url}routers/edit/0&name={$ds['routers']}">{$ds['routers']}</a>
|
||||
{/if}
|
||||
{if $ds['routers']!=''}
|
||||
<a href="{$_url}routers/edit/0&name={$ds['routers']}">{$ds['routers']}</a>
|
||||
{/if}
|
||||
{/if}
|
||||
</td>
|
||||
<td>{$ds['device']}</td>
|
||||
@ -161,9 +163,10 @@
|
||||
</td>
|
||||
<td>{$ds['id']}</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-footer">
|
||||
{include file="pagination.tpl"}
|
||||
@ -176,4 +179,4 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{include file="sections/footer.tpl"}
|
||||
{include file="sections/footer.tpl"}
|
@ -148,12 +148,26 @@
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
border-bottom-right-radius: 21px;
|
||||
border-bottom-left-radius: 21px;
|
||||
}
|
||||
|
||||
.panel-primary>.panel-heading {
|
||||
color: inherit;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
.panel-success>.panel-heading {
|
||||
border-bottom-right-radius: 21px;
|
||||
border-bottom-left-radius: 21px;
|
||||
}
|
||||
|
||||
.panel-warning>.panel-heading {
|
||||
border-bottom-right-radius: 21px;
|
||||
border-bottom-left-radius: 21px;
|
||||
}
|
||||
|
||||
.panel-danger>.panel-heading {
|
||||
color: #a94442;
|
||||
background-color: #f2dede;
|
||||
border-color: #ebccd1;
|
||||
border-bottom-right-radius: 21px;
|
||||
border-bottom-left-radius: 21px;
|
||||
}
|
||||
|
||||
.panel-heading {
|
||||
@ -656,6 +670,9 @@
|
||||
}
|
||||
|
||||
.toggle-container {
|
||||
position: absolute;
|
||||
top: 17px;
|
||||
right: 15px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
@ -666,6 +683,11 @@
|
||||
}
|
||||
|
||||
@media (max-width: 600px) {
|
||||
.toggle-container {
|
||||
top: 15px;
|
||||
right: 60px;
|
||||
}
|
||||
|
||||
.toggle-container .toggle-icon {
|
||||
font-size: 20px;
|
||||
color: rgb(100 116 139);
|
||||
|
@ -17,11 +17,12 @@
|
||||
<div class="panel panel-hovered mb20 panel-primary">
|
||||
<div class="panel-heading">
|
||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-danger btn-xs" title="Remove used Voucher" href="{$_url}plan/remove-voucher"
|
||||
onclick="return confirm('Delete all used voucher code more than 3 months?')"><span class="glyphicon glyphicon-trash"
|
||||
aria-hidden="true"></span> {Lang::T('Delete')} > {Lang::T('3 Months')}</a>
|
||||
</div>
|
||||
<div class="btn-group pull-right">
|
||||
<a class="btn btn-danger btn-xs" title="Remove used Voucher" href="{$_url}plan/remove-voucher"
|
||||
onclick="return confirm('Delete all used voucher code more than 3 months?')"><span
|
||||
class="glyphicon glyphicon-trash" aria-hidden="true"></span> {Lang::T('Delete')} > {Lang::T('3
|
||||
Months')}</a>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
</div>
|
||||
@ -41,8 +42,8 @@
|
||||
<select class="form-control" id="router" name="router">
|
||||
<option value="">{Lang::T('Location')}</option>
|
||||
{foreach $routers as $r}
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}
|
||||
</option>
|
||||
<option value="{$r}" {if $router eq $r }selected{/if}>{$r}
|
||||
</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -50,7 +51,7 @@
|
||||
<select class="form-control" id="plan" name="plan">
|
||||
<option value="">{Lang::T('Plan Name')}</option>
|
||||
{foreach $plans as $p}
|
||||
<option value="{$p['id']}" {if $plan eq $p['id'] }selected{/if}>{$p['name_plan']}</option>
|
||||
<option value="{$p['id']}" {if $plan eq $p['id'] }selected{/if}>{$p['name_plan']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -65,7 +66,7 @@
|
||||
<select class="form-control" id="customer" name="customer">
|
||||
<option value="">{Lang::T('Customer')}</option>
|
||||
{foreach $customers as $c}
|
||||
<option value="{$c['user']}" {if $customer eq $c['user'] }selected{/if}>{$c['user']}</option>
|
||||
<option value="{$c['user']}" {if $customer eq $c['user'] }selected{/if}>{$c['user']}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
@ -76,8 +77,8 @@
|
||||
class="fa fa-search"></span></button>
|
||||
</div>
|
||||
<div class="btn-group" role="group">
|
||||
<a class="btn btn-warning btn-block" title="Clear Search Query" href="{$_url}plan/voucher/"><span
|
||||
class="glyphicon glyphicon-remove-circle"></span></a>
|
||||
<a class="btn btn-warning btn-block" title="Clear Search Query"
|
||||
href="{$_url}plan/voucher/"><span class="glyphicon glyphicon-remove-circle"></span></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -85,24 +86,25 @@
|
||||
</form>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table id="datatable" class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th>{Lang::T('Routers')}</th>
|
||||
<th>{Lang::T('Plan Name')}</th>
|
||||
<th>{Lang::T('Code Voucher')}</th>
|
||||
<th>{Lang::T('Status Voucher')}</th>
|
||||
<th>{Lang::T('Customer')}</th>
|
||||
<th>{Lang::T('Used Date')}</th>
|
||||
<th>{Lang::T('Generated By')}</th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['status'] eq '1'}class="danger" {/if}>
|
||||
<div style="margin-left: 5px; margin-right: 5px;">
|
||||
<table id="datatable" class="table table-bordered table-striped table-condensed">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>ID</th>
|
||||
<th>{Lang::T('Type')}</th>
|
||||
<th>{Lang::T('Routers')}</th>
|
||||
<th>{Lang::T('Plan Name')}</th>
|
||||
<th>{Lang::T('Code Voucher')}</th>
|
||||
<th>{Lang::T('Status Voucher')}</th>
|
||||
<th>{Lang::T('Customer')}</th>
|
||||
<th>{Lang::T('Used Date')}</th>
|
||||
<th>{Lang::T('Generated By')}</th>
|
||||
<th>{Lang::T('Manage')}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{foreach $d as $ds}
|
||||
<tr {if $ds['status'] eq '1' }class="danger" {/if}>
|
||||
<td>{$ds['id']}</td>
|
||||
<td>{$ds['type']}</td>
|
||||
<td>{$ds['routers']}</td>
|
||||
@ -112,33 +114,35 @@
|
||||
onmouseenter="this.style.backgroundColor = 'white';">
|
||||
{$ds['code']}</td>
|
||||
<td>{if $ds['status'] eq '0'} <label class="btn-tag btn-tag-success"> Not Use
|
||||
</label> {else} <label class="btn-tag btn-tag-danger">Used</label>
|
||||
</label> {else} <label class="btn-tag btn-tag-danger">Used</label>
|
||||
{/if}</td>
|
||||
<td>{if $ds['user'] eq '0'} -
|
||||
{else}<a href="{$_url}customers/viewu/{$ds['user']}">{$ds['user']}</a>
|
||||
{/if}</td>
|
||||
<td>{if $ds['used_date']}{Lang::dateTimeFormat($ds['used_date'])}{/if}</td>
|
||||
<td>{if $ds['generated_by']}
|
||||
<a href="{$_url}settings/users-view/{$ds['generated_by']}">{$admins[$ds['generated_by']]}</a>
|
||||
<a
|
||||
href="{$_url}settings/users-view/{$ds['generated_by']}">{$admins[$ds['generated_by']]}</a>
|
||||
{else} -
|
||||
{/if}
|
||||
</td>
|
||||
<td>
|
||||
{if $ds['status'] neq '1'}
|
||||
<a href="{$_url}plan/voucher-view/{$ds['id']}" id="{$ds['id']}" style="margin: 0px;"
|
||||
class="btn btn-success btn-xs"> {Lang::T('View')} </a>
|
||||
<a href="{$_url}plan/voucher-view/{$ds['id']}" id="{$ds['id']}" style="margin: 0px;"
|
||||
class="btn btn-success btn-xs"> {Lang::T('View')} </a>
|
||||
{/if}
|
||||
{if in_array($_admin['user_type'],['SuperAdmin','Admin'])}
|
||||
<a href="{$_url}plan/voucher-delete/{$ds['id']}" id="{$ds['id']}" class="btn btn-danger btn-xs"
|
||||
onclick="return confirm('{Lang::T('Delete')}?')"><i
|
||||
class="glyphicon glyphicon-trash"></i></a>
|
||||
<a href="{$_url}plan/voucher-delete/{$ds['id']}" id="{$ds['id']}"
|
||||
class="btn btn-danger btn-xs" onclick="return confirm('{Lang::T('Delete')}?')"><i
|
||||
class="glyphicon glyphicon-trash"></i></a>
|
||||
{/if}
|
||||
</td>
|
||||
</tr>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
{/foreach}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
{include file="pagination.tpl"}
|
||||
</div>
|
||||
{include file="sections/footer.tpl"}
|
||||
{include file="sections/footer.tpl"}
|
Loading…
x
Reference in New Issue
Block a user