recon/application/views/admin/users.php
2023-08-03 11:59:19 +05:30

539 lines
28 KiB
PHP

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>User Listing</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta content="A fully featured admin theme which can be used to build CRM, CMS, etc." name="description" />
<meta content="Coderthemes" name="author" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<!-- App favicon -->
<link rel="shortcut icon" href="<?php echo base_url(); ?>assets/images/favicon.ico">
<!-- third party css -->
<link href="<?php echo base_url(); ?>assets/libs/datatables.net-bs4/css/dataTables.bootstrap4.min.css" rel="stylesheet" type="text/css" />
<link href="<?php echo base_url(); ?>assets/libs/datatables.net-responsive-bs4/css/responsive.bootstrap4.min.css" rel="stylesheet" type="text/css" />
<link href="<?php echo base_url(); ?>assets/libs/datatables.net-buttons-bs4/css/buttons.bootstrap4.min.css" rel="stylesheet" type="text/css" />
<link href="<?php echo base_url(); ?>assets/libs/datatables.net-select-bs4/css//select.bootstrap4.min.css" rel="stylesheet" type="text/css" />
<!-- third party css end -->
<!-- App css -->
<link href="<?php echo base_url(); ?>assets/css/bootstrap-creative.min.css" rel="stylesheet" type="text/css" id="bs-default-stylesheet" />
<link href="<?php echo base_url(); ?>assets/css/app-creative.min.css" rel="stylesheet" type="text/css" id="app-default-stylesheet" />
<link href="<?php echo base_url(); ?>assets/css/bootstrap-creative-dark.min.css" rel="stylesheet" type="text/css" id="bs-dark-stylesheet" />
<link href="<?php echo base_url(); ?>assets/css/app-creative-dark.min.css" rel="stylesheet" type="text/css" id="app-dark-stylesheet" />
<!-- icons -->
<link href="<?php echo base_url(); ?>assets/css/icons.min.css" rel="stylesheet" type="text/css" />
<style>
.mb25{
margin-bottom: 25px;
}
.required{
color: red;
}
</style>
</head>
<body class="loading" data-layout-mode="horizontal" data-layout='{"mode": "light", "width": "fluid", "menuPosition": "fixed", "topbar": {"color": "dark"}, "showRightSidebarOnPageLoad": true}'>
<!-- Begin page -->
<div id="wrapper">
<?php include('includes/top_nav.php'); ?>
<!-- ============================================================== -->
<!-- Start Page Content here -->
<!-- ============================================================== -->
<div class="content-page">
<div class="content">
<!-- Start Content-->
<div class="container-fluid">
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<h4 class="page-title">User Listing</h4>
</div>
</div>
</div>
<!-- end page title -->
<div class="row">
<div class="col-12">
<div class="card">
<div class="card-body">
<div class="row">
<div class="col-md-10"></div>
<div class="col-md-2">
<button style="float:right" type="button" class="btn btn-primary waves-effect waves-light" data-toggle='modal' data-target="#add_modal">Add User</button>
</div>
</div>
<!--
<h4 class="header-title">Scroll - Horizontal</h4>
<p class="text-muted font-13 mb-4">
DataTables has the ability to show tables with horizontal scrolling, which is very useful for when you have a wide
table, but want to constrain it to a limited horizontal display area.
</p>
-->
<table id="datatable" class="table w-100 nowrap">
<thead>
<tr>
<th>Name</th>
<th>Email</th>
<th>Mobile</th>
<th>Company</th>
<th>Action</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div> <!-- end card body-->
</div> <!-- end card -->
</div><!-- end col-->
</div>
<!-- end row-->
</div> <!-- container -->
</div> <!-- content -->
<?php include('includes/footer.php'); ?>
</div>
<!-- ============================================================== -->
<!-- End Page content -->
<!-- ============================================================== -->
<div id="add_modal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Add User Details</h4>
<button type="button" class="close" data-dismiss="modal">&times;</button>
</div>
<form id="usrforma" class="form-horizontal editform" style="padding:10px;">
<div class="modal-body">
<div class="form-body">
<div class="form-group">
<!-- <div class="row"> -->
<div class="form-group">
<div class="row">
<div class="col-md-6 mb25">
<label>Name<span class="required">*</span></label>
<input onkeyup="this.value = this.value.toUpperCase();" required type="text" name="usr[u_name]" id="add_u_name" class="form-control"/>
</div>
<div class="col-md-6 mb25">
<label>Email<span class="required">*</span></label>
<input type="text" name="usr[u_email]" id="add_u_email" class="form-control" required/>
</div>
<div class="col-md-6 mb25">
<label>Password<span class="required">*</span></label>
<input type="password" name="usr[u_password]" id="add_u_password" class="form-control" required/>
</div>
<div class="col-md-6 mb25">
<label>Confirm Password<span class="required">*</span></label>
<input type="password" id="add_cnf_u_password" class="form-control" required/>
</div>
<div class="col-md-6 mb25">
<label>Mobile</label>
<input type="text" oninput="this.setCustomValidity('')" oninvalid="this.setCustomValidity('Valid format : 10 digit number')" pattern="[0-9]{10}" name="usr[u_number]" id="add_u_number" class="form-control"/>
</div>
<div class="col-md-6 mb25"><label>Role<span class="required">*</span></label>
<select class="form-control" name="usr[u_role]" id="add_u_role" required>
<option value="">--Select--</option>
<!-- <option value="internal">Internal</option> -->
<option value="corporate">Corporate</option>
<option value="tmc">TMC</option>
</select>
</div>
<div id="add_corp_div" style="display:none" class="col-md-6">
<label>Corporate<span class="required">*</span></label>
<select required class="form-control" name="usr[u_corporateid]" id="add_u_corporateid">
<option value="">--Select--</option>
</select>
</div>
<div class="col-md-6">
<label>Modules<span class="required">*</span></label> <br/>
<label class="radio-inline">
<input type="radio" name="usr[u_isactive]" id="add_u_isactive_1" value="1" required>&nbsp;&nbsp;Active
</label>&nbsp;&nbsp;&nbsp;&nbsp;
<label class="radio-inline">
<input type="radio" name="usr[u_isactive]" id="add_u_isactive_0" value="0">&nbsp;&nbsp;Deactive
</label>
</div>
</div>
</div>
<!-- </div> -->
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" id="addclose" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
<div id="edit_modal" class="modal fade" role="dialog">
<div class="modal-dialog">
<!-- Modal content-->
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Edit User Details</h4>
<button type="button" class="close" data-dismiss="modal">&times;</button>
</div>
<form id="usrforme" class="form-horizontal editform" style="padding:10px;">
<div class="modal-body">
<div class="form-group">
<div class="row">
<div class="col-md-6 mb25">
<input type="hidden" name="u_id" id="e_u_id" class="form-control"/>
<label>Name</label>
<input onkeyup="this.value = this.value.toUpperCase();" required type="text" name="usr[u_name]" id="e_u_name" class="form-control"/>
</div>
<div class="col-md-6 mb25">
<label>Email</label>
<input type="text" name="usr[u_email]" id="e_u_email" class="form-control" required/>
</div>
<div class="col-md-6 mb25">
<label>Password</label>
<input type="password" name="usr[u_password]" id="e_u_password" class="form-control" />
</div>
<div class="col-md-6 mb25">
<label>Confirm Password</label>
<input type="password" id="e_cnf_u_password" class="form-control"/>
</div>
<div class="col-md-6 mb25">
<label>Mobile</label>
<input type="text" oninput="this.setCustomValidity('')" oninvalid="this.setCustomValidity('Valid format : 10 digit number')" pattern="[0-9]{10}" name="usr[u_number]" id="e_u_number" class="form-control"/>
</div>
<div class="col-md-6 mb25"><label>Role</label>
<select class="form-control" name="usr[u_role]" id="e_u_role" required>
<option value="">--Select--</option>
<!-- <option value="internal">Internal</option> -->
<option value="corporate">Corporate</option>
<option value="tmc">TMC</option>
</select>
</div>
<div class="col-md-6 mb25" id="e_corp_div" style="display:none">
<label>Company Name</label>
<select class="form-control" name="usr[u_corporateid]" id="e_u_corporateid">
<option value="">--Select--</option>
<?php
foreach($corp_info->result() as $cinfo){
echo '<option value="'.$cinfo->c_id.'">'.$cinfo->c_name.'</option>';
}
?>
</select>
</div>
<div class="col-md-6">
<label>Status</label> <br/>
<label class="radio-inline">
<input type="radio" name="usr[u_isactive]" id="e_u_isactive_1" value="1" required>&nbsp;&nbsp;Active
</label>&nbsp;&nbsp;&nbsp;&nbsp;
<label class="radio-inline">
<input type="radio" name="usr[u_isactive]" id="e_u_isactive_0" value="0">&nbsp;&nbsp;Deactive
</label>
</div>
</div>
</div>
<!-- </div> -->
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">Submit</button>
<button type="button" id="editclose" class="btn btn-default" data-dismiss="modal">Close</button>
</div>
</form>
</div>
</div>
</div>
<button style="display:none" id="editref" type="button" class="btn btn-primary" data-toggle='modal' data-target="#edit_modal">edit ref</button>
<!-- END wrapper -->
<!-- Vendor js -->
<script src="<?php echo base_url(); ?>assets/js/vendor.min.js"></script>
<!-- third party js -->
<script src="<?php echo base_url(); ?>assets/libs/datatables.net/js/jquery.dataTables.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-bs4/js/dataTables.bootstrap4.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-responsive/js/dataTables.responsive.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-responsive-bs4/js/responsive.bootstrap4.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-buttons/js/dataTables.buttons.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-buttons-bs4/js/buttons.bootstrap4.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-buttons/js/buttons.html5.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-buttons/js/buttons.flash.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-buttons/js/buttons.print.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-keytable/js/dataTables.keyTable.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/datatables.net-select/js/dataTables.select.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/pdfmake/build/pdfmake.min.js"></script>
<script src="<?php echo base_url(); ?>assets/libs/pdfmake/build/vfs_fonts.js"></script>
<!-- third party js ends -->
<!-- Datatables init -->
<!-- <script src="<?php echo base_url(); ?>assets/js/pages/datatables.init.js"></script>-->
<script>
$("#usrforme").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
if($('#e_u_password').val() !='' || $('#e_cnf_u_password').val() != ''){
if($('#e_u_password').val() != $('#e_cnf_u_password').val()){
alert('Password and confirm password mismatch');
return false;
}
}
var form = $(this);
console.log('322',form);
$.ajax({
type: "POST",
url: '<?php echo base_url('admin/upd_usrdetail'); ?>',
data: form.serialize(), // serializes the form's elements.
success: function(data)
{
if(data == 1){
$('#editclose').trigger('click');
usrforme.reset();
alert('User details updated successfully.');
getusrlisting();
}
else if(data == 2){
alert('Error. Email ID already taken.');
}
else{
alert('Request failed. Kindly try after sometime');
}
},
error:function(){
alert('Request failed. Kindly try after sometime');
}
});
});
$("#usrforma").submit(function(e) {
e.preventDefault(); // avoid to execute the actual submit of the form.
if($('#add_u_password').val() != $('#add_cnf_u_password').val()){
alert('Password and confirm password mismatch');
return false;
}
var form = $(this);
console.log('355',form);
$.ajax({
type: "POST",
url: '<?php echo base_url('admin/add_usrdetail'); ?>',
data: form.serialize(), // serializes the form's elements.
success: function(data)
{
if(data == 1){
$('#addclose').trigger('click');
usrforma.reset();
alert('User details added successfully.');
getusrlisting();
}
else if(data == 2){
alert('Error. Email ID already taken.');
}
else{
alert('Request failed. Kindly try after sometime');
}
},
error:function(){
alert('Request failed. Kindly try after sometime');
}
});
});
function editfn(u_id){
$('#e_u_id').val(u_id);
var htmlData = '';
$.ajax({
url : '<?php echo base_url('admin/get_usrdetail') ?>',
data: {u_id:u_id},
type:'POST',
success:function(data){
var pdata = JSON.parse(data);
var pd = pdata.data;
$('#e_u_name').val(pd[0].u_name);
$('#e_u_email').val(pd[0].u_email);
$('#e_u_number').val(pd[0].u_number);
$('#e_u_corporateid').val(pd[0].u_corporateid);
$('#e_u_role').val(pd[0].u_role);
if($('#e_u_role').val() == 'corporate' || $('#e_u_role').val() == 'tmc')
{
$('#e_corp_div').show();
$("#e_u_corporateid").prop('required',true);
}else{
$('#e_corp_div').hide();
$("#e_u_corporateid").prop('required',false);
}
$.each(pd[0],function(k,v){
if(k == 'u_isactive')
{
console.log(v);
if((v == '0') || (v == '1')){
$('#e_'+k+'_'+v).prop('checked', true);
}
}
});
},
error:function(){
alert('Request failed. Kindly try after sometime.');
}
});
$('#editref').trigger('click');
}
$(document).ready(function() {
oTable = $('#datatable').DataTable({
dom: '<"top"Bf>rt<"bottom"ip><"clear">',
// dom:'B',
'lengthChange' : false,
"columnDefs": [
{
"targets": 4,
"width": "12%",
"render": function ( data, type, full, meta ) {
return '<a onclick="editfn('+data+')" href="javascript:void(0)" style="font-size:16px;"><i class="fa fa-edit" title="Edit"></i></a>&nbsp;<a href="javascript:void(0)" onclick="delfn('+data+')" style="font-size:16px;display:none;"><i class="fa fa-trash" title="Delete"></i> </a>';
}
}
// &nbsp;
// <a href='' style="font-size:16px;"><i class="fa fa-trash"></i> </a> &nbsp;
],
// order : [[ 4, "asc" ]],
columns : [
{ data : "u_name"},
{ data : "u_email"},
{ data : "u_number"},
{ data : "refrole"},
{ data : "u_id"}
],
buttons: ['excel']
// buttons: ['copy', 'excel', 'pdf']
});
getusrlisting();
} );
function getusrlisting(){
var url = "<?php echo site_url('admin/get_usr'); ?>"; // the script where you handle the form input.
$.ajax({
type: "POST",
url: url,
data: $("#idForm").serialize(), // serializes the form's elements.
success: function(data)
{
oTable.clear();
var jsonData = JSON.parse(data);
var jd = jsonData.data;
var htmlData = '';
var i=0;
$.each(jd,function(kk,vv){
$.each(vv,function(k,v){
// console.log(k,v);
htmlData += '<input type="text" id="'+jd[i].d_id+'_'+k+'" name="'+k+'" value="'+v+'" />';
});
i++;
// console.log(v);
});
$('#tempdata').html(htmlData);
var rowNode = oTable
.rows.add( jsonData.data )
.draw();
$('#wait').hide();
// $('#example1_filter').hide();
// $('#dtableid').show();
// get_all_pnr_counts();
}
});
}
$('#e_u_role').on('change',function(){
var utype = this.value;
if(utype == 'corporate' || utype == 'tmc'){
$('#e_u_corporateid').prop('disabled',false);
$('#e_corp_div').show();
}
else{
$('#e_u_corporateid').prop('disabled',true);
$('#e_corp_div').hide();
}
})
$('#add_u_role').on('change',function(){
var utype = this.value;
var htmlData = '<option value="">--Select--</option>';
// var htmlData = '<vadd_u_corporateid'
if(utype == 'corporate' || utype == 'tmc'){
$.ajax({
url:'<?php echo base_url('admin/get_corp'); ?>',
type:'POST',
success:function(data){
var pdata = JSON.parse(data);
$.each(pdata.data,function(k,v){
htmlData += '<option value="'+v.c_id+'">'+v.c_name+'</option>';
});
$('#add_u_corporateid').html(htmlData);
$('#add_u_corporateid').prop('disabled',false);
$('#add_corp_div').show();
},
error:function(){
alert('Request failed. Kindly try after sometime.');
}
})
}
else{
$('#add_u_corporateid').prop('disabled',true);
$('#add_corp_div').hide();
}
})
</script>
<!-- App js -->
<script src="<?php echo base_url(); ?>assets/js/app.min.js"></script>
</body>
</html>