320 lines
14 KiB
PHP
Executable File
320 lines
14 KiB
PHP
Executable File
<style>
|
||
body {
|
||
.multiselect-native-select {
|
||
position: relative;
|
||
/* bottom: 32px; */
|
||
select {
|
||
border: 0 !important;
|
||
clip: rect(0 0 0 0) !important;
|
||
height: 1px !important;
|
||
margin: -1px -1px -1px -3px !important;
|
||
overflow: hidden !important;
|
||
padding: 0 !important;
|
||
position: absolute !important;
|
||
width: 1px !important;
|
||
left: 50%;
|
||
top: 30px;
|
||
}
|
||
}
|
||
|
||
.multiselect-container{
|
||
width: 100% !important;
|
||
}
|
||
|
||
.multiselect-selected-text{
|
||
float: left !important;
|
||
}
|
||
}
|
||
|
||
.table th,
|
||
.table td {
|
||
padding: 8px;
|
||
}
|
||
|
||
table.dataTable tbody td {
|
||
padding: 4px 4px !important;
|
||
}
|
||
</style>
|
||
<!-- End ADD and EDIT Page HTML -->
|
||
<div class="row" id="List-page">
|
||
<div class="col-12">
|
||
<div class="card">
|
||
<div class="card-body">
|
||
<div class="row" style="margin-bottom:1rem;">
|
||
<div class="col-6" style="align-self: center;">
|
||
<h4 style="position: relative;">User List</h4>
|
||
</div>
|
||
<div class="col-6" style="text-align: right; position: relative;top: 56px;">
|
||
<button type="button" id="btnAdd" class="btn btn-primary waves-effect waves-light" data-toggle="modal" data-target="#con-close-modal" data-placement="top" title="Add" data-trigger="hover">ADD</button>
|
||
</div>
|
||
</div>
|
||
<table class="table table-sm table-hover m-0 table-centered dt-responsive nowrap w-100" cellspacing="0" id="tickets-table">
|
||
<thead class="bg-light">
|
||
<tr>
|
||
<th class="font-weight-medium">Name</th>
|
||
<th class="font-weight-medium">Email</th>
|
||
<th class="font-weight-medium">Mobile No</th>
|
||
<th class="font-weight-medium">Role</th>
|
||
<th class="font-weight-medium">Status</th>
|
||
<th class="font-weight-medium">Action</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<?php foreach($UserList as $row) { ?>
|
||
<tr id="<?php echo $row->id;?>">
|
||
<td class="text-dark"><?php echo $row->first_name; ?></td>
|
||
<td><?php echo $row->email; ?></td>
|
||
<td><?php echo $row->mobile; ?></td>
|
||
<td><?php echo $row->user_role; ?></td>
|
||
<td>
|
||
<span class="<?php if($row->is_active == 1){ echo 'badge badge-success'; }else{ echo 'badge badge-danger'; } ?>">
|
||
<?php if($row->is_active == 1){ echo 'Active'; }else{ echo 'In-Active'; } ?>
|
||
</span>
|
||
</td>
|
||
<td>
|
||
<div class="btn-group dropdown" style="position: relative !important;left:0px !important;top:0px !important;">
|
||
<a href="javascript: void(0);" class="dropdown-toggle arrow-none btn btn-light btn-sm" data-toggle="dropdown" aria-expanded="false"><i class="mdi mdi-dots-horizontal"></i></a>
|
||
<div class="dropdown-menu dropdown-menu-right" style="cursor: pointer;">
|
||
<a data-toggle="modal" data-target="#con-close-modal" class="dropdown-item btnEdit" data-id="<?php echo $row->id; ?>"><i data-id="<?php echo $row->id; ?>" class="mdi mdi-pencil mr-2 text-muted font-18 vertical-middle btnEdit"></i>Edit</a>
|
||
<a class="dropdown-item btnDelete" data-id="<?php echo $row->id; ?>"><i data-id="<?php echo $row->id; ?>" class="mdi mdi-delete mr-2 text-muted font-18 vertical-middle btnDelete"></i>Delete</a>
|
||
</div>
|
||
</div>
|
||
</td>
|
||
</tr>
|
||
<?php } ?>
|
||
</tbody>
|
||
|
||
</table>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- end col -->
|
||
</div>
|
||
<!-- end row-->
|
||
|
||
|
||
|
||
<!-- modal content -->
|
||
|
||
<div id="con-close-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
|
||
<div class="modal-dialog">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h4 class="modal-title">Add User</h4>
|
||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||
</div>
|
||
|
||
<div class="modal-body p-4">
|
||
<div class="">
|
||
|
||
<form role="form" class="parsley-examples" method="post" id="UserForm" action="" enctype="multipart/form-data">
|
||
<input type="hidden" value="<?= csrf_hash() ?>" name="<?= csrf_token() ?>"/>
|
||
<input type="hidden" name="PrimaryKey" id="UserId"/>
|
||
<div class="form-group">
|
||
|
||
<div class="form-row">
|
||
<div class="form-group col-md-4">
|
||
<label for="emp_code">Employee Code<span class="text-danger">*</span></label>
|
||
<input type="text" class="form-control" id="emp_code" placeholder="Enter Code" name="emp_code" required>
|
||
</div>
|
||
<div class="form-group col-md-8">
|
||
<label for="first_name">Name<span class="text-danger">*</span></label>
|
||
<input type="text" class="form-control" id="first_name" placeholder="Ente Name" name="first_name" required>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="form-row">
|
||
<div class="form-group col-md-12">
|
||
<label for="email">Email<span class="text-danger">*</span></label>
|
||
<input type="text" class="form-control" id="email" placeholder="Enter Email" name="email" data-parsley-trigger="change" data-parsley-type="email" required>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="form-row">
|
||
<div class="form-group col-md-12">
|
||
<label for="mobile">Mobile Number<span class="text-danger">*</span></label>
|
||
<input type="text" class="form-control" id="mobile" placeholder="Enter Mobile Number ( starting with 6, 7, 8, or 9 only. )" name="mobile" onkeypress = "return onlyNumbers(event)" maxlength="10" minlength="10" pattern="^[6-9]\d{9}$" data-parsley-type-message="Please enter a valid 10-digit mobile number starting with 6, 7, 8, or 9." data-parsley-required-message="Please enter a valid 10-digit mobile number starting with 6, 7, 8, or 9." required>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="form-row">
|
||
<div class="form-group col-md-12">
|
||
<label for="emp_code">User Role<span class="text-danger">*</span></label>
|
||
<select class="form-control" id="role" name="role" required>
|
||
<option value="">Select Role</option>
|
||
<?php foreach($roleData as $value) { ?>
|
||
<option value="<?= $value['id'] ?>"><?= $value['role'] ?></option>
|
||
<?php } ?>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
<div class="form-row">
|
||
<div class="form-group col-md-12">
|
||
<label for="profile">User Team<span class="text-danger">*</span></label>
|
||
<select hidden class="form-control" id="team" name="team[]" multiple required>
|
||
<?php foreach($teamData as $value) { ?>
|
||
<option value="<?= $value['id'] ?>"><?= $value['name'] ?></option>
|
||
<?php } ?>
|
||
</select>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
<div class="form-group text-right m-b-0">
|
||
<button type="submit" class="btn btn-primary waves-effect waves-light mr-1" id="btnSubmit">Submit</button>
|
||
<!-- <button type="button" class="btn btn-secondry waves-effect waves-light mr-1" data-dismiss="modal" aria-hidden="true">Close</button> -->
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div><!-- /.modal -->
|
||
|
||
|
||
<script>
|
||
|
||
$(document).ready(function () {
|
||
|
||
|
||
$('#tickets-table').DataTable({
|
||
dom: "<'row'<'col-sm-0'f><'col-sm-9 text-right'B>>" + // Keep your original alignment for the search and buttons
|
||
"<'row'<'col-sm-12'tr>>" + // Table rows
|
||
"<'row'<'col-sm-6'i><'col-sm-6'p>>",
|
||
buttons: [
|
||
{
|
||
extend: 'csv',
|
||
text: 'CSV',
|
||
title: 'UserList',
|
||
exportOptions: {
|
||
columns: ':not(:last-child)'
|
||
}
|
||
}
|
||
],
|
||
|
||
|
||
language: {
|
||
search: "_INPUT_",
|
||
searchPlaceholder: "Search..."
|
||
},
|
||
|
||
});
|
||
|
||
|
||
$('#team').multiselect({
|
||
nonSelectedText: 'Select Team',
|
||
enableFiltering: false,
|
||
enableCaseInsensitiveFiltering: false,
|
||
includeSelectAllOption : false,
|
||
buttonWidth:'100%'
|
||
});
|
||
|
||
|
||
$('#btnAdd').click(function(){
|
||
$('#first_name').val('');
|
||
$('#last_name').val('');
|
||
$('#email').val('');
|
||
$('#mobile').val('');
|
||
$('#emp_code').val('');
|
||
$('#UserForm').attr('action', '<?php echo base_url('/user/create');?>');
|
||
})
|
||
|
||
|
||
$('.close').click(function(){
|
||
$('#UserId').val('');
|
||
$('#first_name').val('');
|
||
$('#email').val('');
|
||
$('#mobile').val('');
|
||
$('#emp_code').val('');
|
||
$('#role').val('')
|
||
})
|
||
|
||
|
||
$('body').on('click', '.btnEdit', function () {
|
||
var user_id = $(this).attr('data-id');
|
||
$.ajax({
|
||
url: '<?php echo base_url('user/getuser/');?>'+user_id,
|
||
type: "GET",
|
||
dataType: 'json',
|
||
success: function (res) {
|
||
console.log(res)
|
||
$('#updateModal').modal('show');
|
||
$('#role').val('')
|
||
$('#UserForm').attr('action', '<?php echo base_url('user/edit');?>');
|
||
$('#UserId').val(res.data.id);
|
||
$('#first_name').val(res.data.first_name);
|
||
$('#last_name').val(res.data.last_name);
|
||
$('#email').val(res.data.email);
|
||
$('#mobile').val(res.data.mobile);
|
||
$('#emp_code').val(res.data.emp_code);
|
||
$('#role option[value="' + res.data.role + '"]').prop('selected', true);
|
||
$('#btnSubmit').html('Update');
|
||
|
||
$.each(res.userTeamData, function(index, item) {
|
||
$('#team option[value="' + item.team_id + '"]').prop('selected', true);
|
||
$('#team').multiselect('refresh');
|
||
});
|
||
|
||
},
|
||
error: function (xhr, status, error) {
|
||
console.error("Error Details:");
|
||
console.error("Status Code:", xhr.status);
|
||
console.error("Status Text:", xhr.statusText);
|
||
console.error("Response Text:", xhr.responseText);
|
||
console.error("Ready State:", xhr.readyState);
|
||
console.error("Response Headers:", xhr.getAllResponseHeaders());
|
||
console.error("Error Thrown:", error);
|
||
console.error("Status:", status);
|
||
}
|
||
|
||
});
|
||
});
|
||
|
||
|
||
$('body').on('click', '.btnDelete', function () {
|
||
|
||
Swal.fire({
|
||
title: "Are you sure?",
|
||
text: "You need to remove this user",
|
||
icon: "info",
|
||
showCancelButton: true,
|
||
confirmButtonColor: "#3085d6",
|
||
confirmButtonText: "Yes",
|
||
}).then((result) => {
|
||
if (result.isConfirmed) {
|
||
|
||
var student_id = $(this).attr('data-id');
|
||
$.get('<?php echo base_url('user/deactive/');?>'+student_id, function (data) {
|
||
console.log(data);
|
||
toastr.success('User removed successfully', 'Success');
|
||
window.location.reload()
|
||
})
|
||
}
|
||
});
|
||
});
|
||
|
||
});
|
||
|
||
function onlyNumbers(event){
|
||
var charcode;
|
||
charcode = event.which || event.keyCode;
|
||
if(charcode>= 48 && charcode <= 57)return true;
|
||
return false;
|
||
}
|
||
|
||
var form = document.getElementById("UserForm");
|
||
|
||
// Add submit event listener to the form
|
||
form.addEventListener("submit", function(event) {
|
||
// Disable the submit button to avoid multiple submissions
|
||
// document.getElementById("btnSubmit").disabled = true;
|
||
});
|
||
|
||
|
||
</script>
|
||
|