add search and pagination at Customer maps, fix query

This commit is contained in:
Ibnu Maksum 2024-04-29 13:44:59 +07:00
parent 980af58eb1
commit b6fde35eb6
No known key found for this signature in database
GPG Key ID: 7FC82848810579E5
6 changed files with 113 additions and 78 deletions

View File

@ -2,6 +2,13 @@
# CHANGELOG # CHANGELOG
## 2024.4.29
- Maps Pagination
- Maps Search
- Fix extend logic
- Fix logic customer recharge to not delete when customer not change the plan
## 2024.4.23 ## 2024.4.23
- Fix Pagination Voucher - Fix Pagination Voucher

View File

@ -20,7 +20,6 @@ class Paginator
} }
$url .= '&p='; $url .= '&p=';
$totalReq = $query->count(); $totalReq = $query->count();
$next = $page + 1;
$lastpage = ceil($totalReq / $per_page); $lastpage = ceil($totalReq / $per_page);
$lpm1 = $lastpage - 1; $lpm1 = $lastpage - 1;
$limit = $per_page; $limit = $per_page;

View File

@ -17,8 +17,14 @@ if (empty($action)) {
switch ($action) { switch ($action) {
case 'customer': case 'customer':
if(!empty(_req('search'))){
$c = ORM::for_table('tbl_customers')->find_many(); $search = _req('search');
$query = ORM::for_table('tbl_customers')->whereRaw("coordinates != '' AND fullname LIKE '%$search%' OR username LIKE '%$search%' OR email LIKE '%$search%' OR phonenumber LIKE '%$search%'")->order_by_desc('fullname');
$c = Paginator::findMany($query, ['search' => $search], 50);
}else{
$query = ORM::for_table('tbl_customers')->where_not_equal('coordinates','');
$c = Paginator::findMany($query, ['search'=>''], 50);
}
$customerData = []; $customerData = [];
foreach ($c as $customer) { foreach ($c as $customer) {
@ -34,7 +40,7 @@ switch ($action) {
]; ];
} }
} }
$ui->assign('search', $search);
$ui->assign('customers', $customerData); $ui->assign('customers', $customerData);
$ui->assign('xheader', '<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css">'); $ui->assign('xheader', '<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css">');
$ui->assign('_title', Lang::T('Customer Geo Location Information')); $ui->assign('_title', Lang::T('Customer Geo Location Information'));

View File

@ -12,7 +12,8 @@
<div class="input-group-addon"> <div class="input-group-addon">
<span class="fa fa-search"></span> <span class="fa fa-search"></span>
</div> </div>
<input type="text" name="name" class="form-control" placeholder="{Lang::T('Search by Name')}..."> <input type="text" name="name" class="form-control"
placeholder="{Lang::T('Search by Name')}...">
<div class="input-group-btn"> <div class="input-group-btn">
<button class="btn btn-success" type="submit">{Lang::T('Search')}</button> <button class="btn btn-success" type="submit">{Lang::T('Search')}</button>
</div> </div>
@ -20,7 +21,8 @@
</form> </form>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<a href="{$_url}bandwidth/add" class="btn btn-primary btn-block"><i class="ion ion-android-add"> </i> {Lang::T('New Bandwidth')}</a> <a href="{$_url}bandwidth/add" class="btn btn-primary btn-block"><i class="ion ion-android-add">
</i> {Lang::T('New Bandwidth')}</a>
</div>&nbsp; </div>&nbsp;
</div> </div>
<div class="table-responsive"> <div class="table-responsive">
@ -37,11 +39,16 @@
{foreach $d as $ds} {foreach $d as $ds}
<tr> <tr>
<td>{$ds['name_bw']}</td> <td>{$ds['name_bw']}</td>
<td>{$ds['rate_down']} {$ds['rate_down_unit']} / {$ds['rate_up']} {$ds['rate_up_unit']}</td> <td>{$ds['rate_down']} {$ds['rate_down_unit']} / {$ds['rate_up']} {$ds['rate_up_unit']}
</td>
<td>{$ds['burst']}</td> <td>{$ds['burst']}</td>
<td> <td>
<a href="{$_url}bandwidth/edit/{$ds['id']}" class="btn btn-sm btn-warning">{Lang::T('Edit')}</a> <a href="{$_url}bandwidth/edit/{$ds['id']}"
<a href="{$_url}bandwidth/delete/{$ds['id']}" id="{$ds['id']}" class="btn btn-danger btn-sm" onclick="return confirm('{Lang::T('Delete')}?')" ><i class="glyphicon glyphicon-trash"></i></a> class="btn btn-sm btn-warning">{Lang::T('Edit')}</a>
<a href="{$_url}bandwidth/delete/{$ds['id']}" id="{$ds['id']}"
class="btn btn-danger btn-sm"
onclick="return confirm('{Lang::T('Delete')}?')"><i
class="glyphicon glyphicon-trash"></i></a>
</td> </td>
</tr> </tr>
{/foreach} {/foreach}

View File

@ -1,8 +1,24 @@
{include file="sections/header.tpl"} {include file="sections/header.tpl"}
<!-- Map container div -->
<div id="map" class="well" style="width: '100%'; height: 78vh; margin: 20px auto"></div> <form id="site-search" method="post" action="{$_url}map/customer/">
<input type="hidden" name="_route" value="map/customer">
<div class="input-group">
<div class="input-group-addon">
<span class="fa fa-search"></span>
</div>
<input type="text" name="search" class="form-control" value="{$search}"
placeholder="{Lang::T('Search')}...">
<div class="input-group-btn">
<button class="btn btn-success" type="submit">{Lang::T('Search')}</button>
</div>
</div>
</form>
<!-- Map container div -->
<div id="map" class="well" style="width: '100%'; height: 70vh; margin: 20px auto"></div>
{include file="pagination.tpl"}
{literal} {literal}
<script> <script>

View File

@ -1,3 +1,3 @@
{ {
"version": "2024.4.23" "version": "2024.4.29"
} }