Moved ShortCodes to a new controller, added Tabulator, bug fixes

This commit is contained in:
Kwesi Banson
2024-07-09 15:49:56 +00:00
parent 101012c684
commit 4a0248e40d
12 changed files with 1215 additions and 40 deletions

View File

@@ -0,0 +1,196 @@
@extends('layouts.master')
@section('page_title')
@if(isset($page_title))
{{ $page_title }}
@endif
@endsection
@section('css')
<link href="{!! url('public/assets/vendors/tabulator/css/bootstrap/tabulator_bootstrap.css') !!}" type="text/css" rel="stylesheet">
@endsection
@section('content')
<div class="">
<div class="page-title">
<div class="title_left">
<div class="title_left">
<ol class="breadcrumb">
<li><a href="{!! url('dashboard') !!}">Dashboard</a></li>
<!-- <li><a href="{!! url('clients') !!}">Clients</a></li> -->
<li class="active">SMS Short Codes </li>
</ol>
</div>
</div>
<div class="title_right">
</div>
</div>
<div class="clearfix"></div>
<div class="row">
@include('commons.notifications')
<div class="col-md-12 col-sm-12 col-xs-12">
<div class="x_panel">
<div class="x_title">
<h2> Client Short Codes </h2>
<div class="pull-right">
<!-- <a class="btn btn-primary btn-sm" href="{!! url('clients/create') !!}"><i class="fa fa-plus-circle"></i> Add Client</a> -->
</div>
<div class="clearfix"></div>
</div>
<div class="x_content">
<div role="tabpanel" class="tab-pane fade active in" id="tab_sms" aria-labelledby="sms-tab">
<div class="pull-left">
<button id="smscodes-download-xlsx" class="btn btn-success btn-sm"><i class="fa fa-file-excel-o"></i> Download XLSX</button>
<button id="smscodes-download-pdf" class="btn btn-danger btn-sm"><i class="fa fa-file-pdf-o"></i> Download PDF</button>
</div>
<div class="pull-right">
<form method="GET" action="{!! url('shortcodes') !!}">
<input type="hidden" name="code_type" value="sms">
<div class="col-md-5 col-sm-5 col-xs-12 form-group">
<div style="margin-top:1px; margin-right:-90px;" class="top_search">
</div>
</div>
<div class="col-md-12 form-group pull-left top_search" style="margin-top: -2px;">
<div class="input-group bg-info">
<input type="text" name="keyword" class="form-control" id="keywordField" placeholder="Keyword here...">
<span class="input-group-btn">
<!-- <button type="submit" class="btn btn-primary" style="color: #fff;" type="button">Go!</button> -->
</span>
</div>
</div>
</form>
</div>
<div id="smsShortCodeTable"></div>
</div>
<div role="tabpanel" class="tab-pane fade" id="tab_ussd" aria-labelledby="ussd-tab">
<div id="ussdShortCodeTable"></div>
</div>
<div role="tabpanel" class="tab-pane fade" id="tab_voice" aria-labelledby="voice-tab">
<div id="voiceShortCodeTable"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@section('javascript')
<script src="{!! url('public/assets/vendors/tabulator/js/tabulator.js') !!}"></script>
<script type="text/javascript" src="{!! url('public/assets/vendors/tabulator/js/xlsx.full.min.js') !!}"></script>
<script type="text/javascript" src="{!! url('public/assets/vendors/tabulator/js/jspdf.min.js') !!}"></script>
<script type="text/javascript" src="{!! url('public/assets/vendors/tabulator/js/jspdf.plugin.autotable.js') !!}"></script>
<script type="text/javascript">
$(document).ready(function(){
function link(cell, formatterParams){
var url = cell.getValue();
var rowID = cell.getData().id
return "<a href='"+ base_url + "/smsshortcodes/"+rowID+"' class='btn btn-link'>"+url+"</a>";
//return '<a href="'+ base_url + '"/clients/"'+rowID+'" class="btn btn-link">'+ url +'</a>';
}
function link(cell, formatterParams){
var url = cell.getValue();
var rowID = cell.getData().id
return "<a href='"+ base_url + "/smsshortcodes/"+rowID+"/edit' class='btn btn-link'>"+url+"</a>";
}
function cellDesign (cell, formatterParams){
var value = cell.getValue();
return "<span style='color:#54B4D3; font-weight:bold;'>" + value + "</span>";
}
function statusDesign (cell, formatterParams){
var value = cell.getValue();
if(value === 'LIVE'){
return "<span style='color:#3FB449; font-weight:bold;'>" + value + "</span>";
}
else{
return "<span style='color:#E4A11B;'>" + value + "</span>";
}
}
var table = new Tabulator("#smsShortCodeTable", {
ajaxURL: "smsshortcodes/all",
paginationSize: 15,
layout: "fitColumns",
pagination: "remote",
selectable: false,
printAsHtml: true,
ajaxLoaderLoading: $('#logo_spinner').html(),
columns: [
{
title: "Friendly Name",
field: "name",
sorter: "string",
formatter:link,
},
{
title: "Short Code",
field: "shortcode",
sorter: "string",
},
{ title:"Network",
field:"network",
sorter:"string",
},
{ title:"Client",
field:"clientName",
sorter:"string",
},
{
title: "Status",
field: "status",
sorter: "string",
formatter: statusDesign,
},
{
title: "Launch Date",
field: "launch_date",
sorter: "string",
},
{
title: "Expirty Date",
field: "expiry_date",
sorter: "string",
},
{
title: "Last Modified By",
field: "modifiedBy",
sorter: "string",
}
],
// $('#clients-download-xlsx').click(function(){
// table.download("xlsx", "client-list.xlsx", {sheetName:"Sheet 1"});
// });
rowClick:function(e, row){
var userID = row.getData().id;
//$('#userEditModal').modal('show');
},
});
document.getElementById("smscodes-download-xlsx").addEventListener("click", function(){
table.download("xlsx", "sms-shortcode-list.xlsx", {sheetName:"Sheet 1"});
});
//trigger download of data.pdf file
document.getElementById("smscodes-download-pdf").addEventListener("click", function(){
table.download("pdf", "sms-shortcode-list.pdf", {
orientation:"portrait", //set page orientation to portrait
title:"Click Mobile - SMS Short Codes", //add title to report
});
});
$('#keywordField').on('keyup', function(){
console.log('up');
var keyword = $(this).val();
table.setData("smsshortcodes/all?keyword=" + keyword + "&code_type=sms");
});
});
</script>
@endsection