update patch 1

This commit is contained in:
fiqhpratama
2024-12-02 01:18:34 +07:00
parent 453d9bb470
commit 25026b0a85
3380 changed files with 103529 additions and 363623 deletions
@@ -0,0 +1,110 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<style>
.form-check-label {
text-transform: capitalize;
}
</style>
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title">{{ $pageInfo['title'] }}</h4>
@include('backend.layouts.partials.messages')
<form action="{{ route('admin.admins.store') }}" method="POST">
@csrf
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="name">Full Name</label>
<input type="text" class="form-control" id="name" name="name"
placeholder="Enter Name" required autofocus value="{{ old('name') }}">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="email">Email</label>
<input type="text" class="form-control" id="email" name="email"
placeholder="Enter Email" required value="{{ old('email') }}">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password"
placeholder="Enter Password">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="password_confirmation">Confirm Password</label>
<input type="password" class="form-control" id="password_confirmation"
name="password_confirmation" placeholder="Enter Password">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-6">
<label for="password">Assign Roles</label>
<select name="roles[]" id="roles" class="form-control select2" multiple
required>
@foreach ($roles as $role)
<option value="{{ $role->name }}">{{ $role->name }}</option>
@endforeach
</select>
</div>
<div class="form-group col-md-6 col-sm-6">
<label for="username">Username</label>
<input type="text" class="form-control" id="username" name="username"
placeholder="Enter Username" required value="{{ old('username') }}">
</div>
</div>
<button type="submit" class="btn btn-primary mt-4 pr-4 pl-4">Save</button>
<a href="{{ route('admin.admins.index') }}"
class="btn btn-secondary mt-4 pr-4 pl-4">Cancel</a>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
<script>
$(document).ready(function() {
$('.select2').select2();
})
</script>
@endsection
@@ -0,0 +1,112 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<style>
.form-check-label {
text-transform: capitalize;
}
</style>
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title">Edit Admin - {{ $admin->name }}</h4>
@include('backend.layouts.partials.messages')
<form action="{{ route('admin.admins.update', $admin->id) }}" method="POST">
@method('PUT')
@csrf
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="name">Admin Name</label>
<input type="text" class="form-control" id="name" name="name"
placeholder="Enter Name" value="{{ $admin->name }}" required autofocus>
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="email">Admin Email</label>
<input type="text" class="form-control" id="email" name="email"
placeholder="Enter Email" value="{{ $admin->email }}" required>
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="password">Password (Optional)</label>
<input type="password" class="form-control" id="password" name="password"
placeholder="Enter Password">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="password_confirmation">Confirm Password (Optional)</label>
<input type="password" class="form-control" id="password_confirmation"
name="password_confirmation" placeholder="Enter Password">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-6">
<label for="password">Assign Roles</label>
<select name="roles[]" id="roles" class="form-control select2" multiple
required>
@foreach ($roles as $role)
<option value="{{ $role->name }}"
{{ $admin->hasRole($role->name) ? 'selected' : '' }}>
{{ $role->name }}
</option>
@endforeach
</select>
</div>
<div class="form-group col-md-6 col-sm-6">
<label for="username">Admin Username</label>
<input type="text" class="form-control" id="username" name="username"
placeholder="Enter Username" required value="{{ $admin->username }}">
</div>
</div>
<button type="submit" class="btn btn-primary mt-4 pr-4 pl-4">Save</button>
<a href="{{ route('admin.admins.index') }}"
class="btn btn-secondary mt-4 pr-4 pl-4">Cancel</a>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
<script>
$(document).ready(function() {
$('.select2').select2();
})
</script>
@endsection
@@ -0,0 +1,107 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title float-left">{{ $pageInfo['title'] }}</h4>
<p class="float-right mb-2">
@if (auth()->user()->can('admin.edit'))
<a class="btn btn-primary text-white" href="{{ route('admin.admins.create') }}">
Add New User Access
</a>
@endif
</p>
<div class="clearfix"></div>
<div class="data-tables">
@include('backend.layouts.partials.messages')
<table id="dataTable" class="text-center">
<thead class="bg-light text-capitalize">
<tr>
<th width="5%">{{ __('Sl') }}</th>
<th width="10%">{{ __('Name') }}</th>
<th width="10%">{{ __('Email') }}</th>
<th width="40%">{{ __('Roles') }}</th>
<th width="15%">{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($admins as $admin)
<tr>
<td>{{ $loop->index + 1 }}</td>
<td>{{ $admin->name }}</td>
<td>{{ $admin->email }}</td>
<td>
@foreach ($admin->roles as $role)
<span class="badge badge-info mr-1">
{{ $role->name }}
</span>
@endforeach
</td>
<td>
@if (auth()->user()->can('admin.edit'))
<a class="btn btn-success text-white"
href="{{ route('admin.admins.edit', $admin->id) }}">Edit</a>
@endif
@if (auth()->user()->can('admin.delete'))
<a class="btn btn-danger text-white" href="javascript:void(0);"
onclick="event.preventDefault(); if(confirm('Are you sure you want to delete?')) { document.getElementById('delete-form-{{ $admin->id }}').submit(); }">
{{ __('Delete') }}
</a>
<form id="delete-form-{{ $admin->id }}"
action="{{ route('admin.admins.destroy', $admin->id) }}"
method="POST" style="display: none;">
@method('DELETE')
@csrf
</form>
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
<script>
if ($('#dataTable').length) {
$('#dataTable').DataTable({
responsive: true
});
}
</script>
@endsection
@@ -0,0 +1,55 @@
<script>
/**
* Check all the permissions
*/
$("#checkPermissionAll").click(function(){
if($(this).is(':checked')){
// check all the checkbox
$('input[type=checkbox]').prop('checked', true);
}else{
// un check all the checkbox
$('input[type=checkbox]').prop('checked', false);
}
});
function checkPermissionByGroup(className, checkThis){
const groupIdName = $("#"+checkThis.id);
const classCheckBox = $('.'+className+' input');
if(groupIdName.is(':checked')){
classCheckBox.prop('checked', true);
}else{
classCheckBox.prop('checked', false);
}
implementAllChecked();
}
function checkSinglePermission(groupClassName, groupID, countTotalPermission) {
const classCheckbox = $('.'+groupClassName+ ' input');
const groupIDCheckBox = $("#"+groupID);
// if there is any occurance where something is not selected then make selected = false
if($('.'+groupClassName+ ' input:checked').length == countTotalPermission){
groupIDCheckBox.prop('checked', true);
}else{
groupIDCheckBox.prop('checked', false);
}
implementAllChecked();
}
function implementAllChecked() {
const countPermissions = {{ count($all_permissions) }};
const countPermissionGroups = {{ count($permission_groups) }};
// console.log((countPermissions + countPermissionGroups));
// console.log($('input[type="checkbox"]:checked').length);
if($('input[type="checkbox"]:checked').length >= (countPermissions + countPermissionGroups)){
$("#checkPermissionAll").prop('checked', true);
}else{
$("#checkPermissionAll").prop('checked', false);
}
}
</script>
@@ -0,0 +1,33 @@
@extends('layouts.app')
@section('title')
Dashboard
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>Home</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('dashboard.index') }}">Dashboard</a></li>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="card card-primary card-outline">
<div class="card-body text-center">
<p class="lead">Welcome to {{ config('app.name') }} (development version).</p>
</div>
</div>
</div>
</section>
@endsection
@@ -0,0 +1,127 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/default/easyui.css">
<link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/icon.css">
<style>
.easyui-tree li {
padding-left: 10px;
}
</style>
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<p class="float-right mb-2">
<a class="btn btn-secondary text-white" href="{{ route('admin.roles.index') }}">
<i class="fa fa-arrow-left"></i> Back</a>
<a class="btn btn-primary text-white" onclick="submitMenuSelection()">
<i class="fa fa-save"></i> Save Selection</a>
</p>
<form id="menuForm" method="POST" action="">
@csrf
<input type="hidden" id="role_id" name="role_id" value="{{ $role_id }}">
<div class="col-md-8">
<ul id="menuTree" class="easyui-tree" data-options="checkbox:true,animate:true">
{{-- Data di-parse ke JSON format --}}
</ul>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
<script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.min.js"></script>
<script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"></script>
<script>
if ($('#dataTable').length) {
$('#dataTable').DataTable({
responsive: false
});
}
$(document).ready(function() {
// Tree data dari Laravel (parsed sebagai JSON)
const treeData = {!! json_encode($menuTree) !!};
// Initialize EasyUI tree dengan data dari controller
$('#menuTree').tree({
data: treeData,
cascadeCheck: $(this).is(':checked'),
});
});
// Submit menu selection
function submitMenuSelection() {
const checkedNodes = $('#menuTree').tree('getChecked');
const selectedIds = checkedNodes.map(node => node.id);
var listMenu = JSON.stringify(selectedIds);
var roleId = $('#role_id').val();
$.ajax({
url: '{{ route('auth.menurole.submit') }}',
type: 'POST',
data: {
menu_ids: listMenu,
role_id: roleId
},
success: function(response) {
Swal.fire({
title: 'Success!',
text: 'Menu selection saved successfully!',
icon: 'success',
confirmButtonText: 'OK'
});
},
error: function(xhr) {
Swal.fire({
title: 'Error!',
text: 'An error occurred while saving menu selection.',
icon: 'error',
confirmButtonText: 'OK'
});
}
});
}
</script>
@endsection
@@ -0,0 +1,115 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<style>
.form-check-label {
text-transform: capitalize;
}
</style>
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<form action="{{ route('admin.roles.store') }}" method="POST">
@csrf
<div class="row mb-2">
<div class="col-md-6">
<h4 class="header-title">Create New Role</h4>
</div>
<div class="col-md-6 text-right">
<button type="submit" class="btn btn-primary pr-4 pl-4">Save</button>
</div>
</div>
@include('backend.layouts.partials.messages')
<div class="form-group">
<label for="name">Role Name</label>
<input type="text" class="form-control" id="name" name="name"
placeholder="Enter a Role Name" required autofocus value="{{ old('name') }}">
</div>
<div class="form-group">
<label for="name">Permissions</label>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="checkPermissionAll"
value="1">
<label class="form-check-label" for="checkPermissionAll">All</label>
</div>
<hr>
@php $i = 1; @endphp
@foreach ($permission_groups as $group)
<div class="row">
<div class="col-3">
<div class="form-check">
<input type="checkbox" class="form-check-input"
id="{{ $i }}Management" value="{{ $group->name }}"
onclick="checkPermissionByGroup('role-{{ $i }}-management-checkbox', this)">
<label class="form-check-label"
for="checkPermission">{{ $group->name }}</label>
</div>
</div>
<div class="col-9 role-{{ $i }}-management-checkbox">
@php
$permissions = App\User::getpermissionsByGroupName($group->name);
$j = 1;
@endphp
@foreach ($permissions as $permission)
<div class="form-check">
<input type="checkbox" class="form-check-input" name="permissions[]"
id="checkPermission{{ $permission->id }}"
value="{{ $permission->name }}">
<label class="form-check-label"
for="checkPermission{{ $permission->id }}">{{ $permission->name }}</label>
</div>
@php $j++; @endphp
@endforeach
<br>
</div>
</div>
@php $i++; @endphp
@endforeach
</div>
<button type="submit" class="btn btn-primary mt-4 pr-4 pl-4">Save</button>
<a href="{{ route('admin.roles.index') }}" class="btn btn-secondary mt-4 pr-4 pl-4">
Back</a>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@include('backend.pages.roles.partials.scripts')
@endsection
@@ -0,0 +1,125 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<style>
.form-check-label {
text-transform: capitalize;
}
</style>
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<form action="{{ route('admin.roles.update', $role->id) }}" method="POST">
@method('PUT')
@csrf
<div class="row mb-2">
<div class="col-md-6">
<h4 class="header-title">Role Edit - {{ $role->name }}</h4>
</div>
<div class="col-md-6 text-right">
<button type="submit" class="btn btn-primary pr-4 pl-4">Save</button>
</div>
</div>
@include('backend.layouts.partials.messages')
<div class="form-group">
<label for="name">Role Name</label>
<input type="text" class="form-control" id="name" value="{{ $role->name }}"
name="name" placeholder="Enter a Role Name" required autofocus>
</div>
<div class="form-group">
<label for="name">Permissions</label>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="checkPermissionAll"
value="1"
{{ App\User::roleHasPermissions($role, $all_permissions) ? 'checked' : '' }}>
<label class="form-check-label" for="checkPermissionAll">All</label>
</div>
<hr>
@php $i = 1; @endphp
@foreach ($permission_groups as $group)
<div class="row">
@php
$permissions = App\User::getpermissionsByGroupName($group->name);
$j = 1;
@endphp
<div class="col-3">
<div class="form-check">
<input type="checkbox" class="form-check-input"
id="{{ $i }}Management" value="{{ $group->name }}"
onclick="checkPermissionByGroup('role-{{ $i }}-management-checkbox', this)"
{{ App\User::roleHasPermissions($role, $permissions) ? 'checked' : '' }}>
<label class="form-check-label"
for="checkPermission">{{ $group->name }}</label>
</div>
</div>
<div class="col-9 role-{{ $i }}-management-checkbox">
@foreach ($permissions as $permission)
<div class="form-check">
<input type="checkbox" class="form-check-input"
onclick="checkSinglePermission('role-{{ $i }}-management-checkbox', '{{ $i }}Management', {{ count($permissions) }})"
name="permissions[]"
{{ $role->hasPermissionTo($permission->name) ? 'checked' : '' }}
id="checkPermission{{ $permission->id }}"
value="{{ $permission->name }}">
<label class="form-check-label"
for="checkPermission{{ $permission->id }}">{{ $permission->name }}</label>
</div>
@php $j++; @endphp
@endforeach
<br>
</div>
</div>
@php $i++; @endphp
@endforeach
</div>
<button type="submit" class="btn btn-primary mt-4 pr-4 pl-4">Save</button>
<a href="{{ route('admin.roles.index') }}"
class="btn btn-secondary mt-4 pr-4 pl-4">Cancel</a>
</form>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
@include('backend.pages.roles.partials.scripts')
@endsection
@@ -0,0 +1,97 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('admin-content')
<section class="content-header">
<div class="container-fluid">
<div class="row mb-2">
<div class="col-sm-6">
<h1>{{ $pageInfo['title'] }}</h1>
</div>
<div class="col-sm-6">
<ol class="breadcrumb float-sm-right">
<li class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">{{ __('Dashboard') }}</a></li>
<li class="breadcrumb-item active"><a href="{{ $pageInfo['path'] }}">{{ $pageInfo['title'] }}</a>
</li>
</ol>
</div>
</div>
</div>
</section>
<section class="content">
<div class="container-fluid">
<div class="row">
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title float-left">{{ $pageInfo['sub_title'] }}</h4>
<p class="float-right mb-2">
@if (Auth::user()->can('role.create'))
<a class="btn btn-primary text-white" href="{{ route('admin.roles.create') }}">Create
New Role</a>
@endif
</p>
<div class="clearfix"></div>
<div class="dataTables_wrapper dt-bootstrap4">
@include('backend.layouts.partials.messages')
<table id="dataTable"
class="table table-bordered table-striped table-head-fixed dataTable dtr-inline"
style="width:100%">
<thead class="bg-light text-capitalize">
<tr>
<th width="5%">{{ __('Sl') }}</th>
<th width="10%">{{ __('Role Name') }}</th>
<th width="30%">{{ __('Permission List') }}</th>
<th width="10%">{{ __('Action') }}</th>
</tr>
</thead>
<tbody>
@foreach ($roles as $role)
<tr>
<td>{{ $loop->index + 1 }}</td>
<td>{{ $role->name }}</td>
<td>
@foreach ($role->permissions as $permission)
<span class="badge badge-info mr-1">
{{ $permission->name }}
</span>
@endforeach
</td>
<td>
@if (auth::user()->can('admin.edit'))
<a class="btn btn-success btn-sm text-white"
href="{{ route('admin.roles.edit', $role->id) }}">Edit</a>
@endif
<a class="btn btn-primary btn-sm text-white"
href="{{ route('auth.menurole.index', $role->id) }}">Assign
Menus</a>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
@endsection
@section('scripts')
<script>
if ($('#dataTable').length) {
$('#dataTable').DataTable({
responsive: false
});
}
</script>
@endsection
@@ -0,0 +1,55 @@
<script>
/**
* Check all the permissions
*/
$("#checkPermissionAll").click(function(){
if($(this).is(':checked')){
// check all the checkbox
$('input[type=checkbox]').prop('checked', true);
}else{
// un check all the checkbox
$('input[type=checkbox]').prop('checked', false);
}
});
function checkPermissionByGroup(className, checkThis){
const groupIdName = $("#"+checkThis.id);
const classCheckBox = $('.'+className+' input');
if(groupIdName.is(':checked')){
classCheckBox.prop('checked', true);
}else{
classCheckBox.prop('checked', false);
}
implementAllChecked();
}
function checkSinglePermission(groupClassName, groupID, countTotalPermission) {
const classCheckbox = $('.'+groupClassName+ ' input');
const groupIDCheckBox = $("#"+groupID);
// if there is any occurance where something is not selected then make selected = false
if($('.'+groupClassName+ ' input:checked').length == countTotalPermission){
groupIDCheckBox.prop('checked', true);
}else{
groupIDCheckBox.prop('checked', false);
}
implementAllChecked();
}
function implementAllChecked() {
const countPermissions = {{ count($all_permissions) }};
const countPermissionGroups = {{ count($permission_groups) }};
// console.log((countPermissions + countPermissionGroups));
// console.log($('input[type="checkbox"]:checked').length);
if($('input[type="checkbox"]:checked').length >= (countPermissions + countPermissionGroups)){
$("#checkPermissionAll").prop('checked', true);
}else{
$("#checkPermissionAll").prop('checked', false);
}
}
</script>
@@ -0,0 +1,103 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
<style>
.form-check-label {
text-transform: capitalize;
}
</style>
@endsection
@section('admin-content')
<!-- page title area start -->
<div class="page-title-area">
<div class="row align-items-center">
<div class="col-sm-6">
<div class="breadcrumbs-area clearfix">
<h4 class="page-title pull-left">User Create</h4>
<ul class="breadcrumbs pull-left">
<li><a href="{{ route('admin.dashboard') }}">Dashboard</a></li>
<li><a href="{{ route('admin.users.index') }}">All Users</a></li>
<li><span>Create User</span></li>
</ul>
</div>
</div>
<div class="col-sm-6 clearfix">
@include('backend.layouts.partials.logout')
</div>
</div>
</div>
<!-- page title area end -->
<div class="main-content-inner">
<div class="row">
<!-- data table start -->
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title">Create New User</h4>
@include('backend.layouts.partials.messages')
<form action="{{ route('admin.users.store') }}" method="POST">
@csrf
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="name">User Name</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter Name">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="email">User Email</label>
<input type="text" class="form-control" id="email" name="email" placeholder="Enter Email">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Enter Password">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="password_confirmation">Confirm Password</label>
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Enter Password">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="password">Assign Roles</label>
<select name="roles[]" id="roles" class="form-control select2" multiple>
@foreach ($roles as $role)
<option value="{{ $role->name }}">{{ $role->name }}</option>
@endforeach
</select>
</div>
</div>
<button type="submit" class="btn btn-primary mt-4 pr-4 pl-4">Save User</button>
</form>
</div>
</div>
</div>
<!-- data table end -->
</div>
</div>
@endsection
@section('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('.select2').select2();
})
</script>
@endsection
@@ -0,0 +1,104 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
<style>
.form-check-label {
text-transform: capitalize;
}
</style>
@endsection
@section('admin-content')
<!-- page title area start -->
<div class="page-title-area">
<div class="row align-items-center">
<div class="col-sm-6">
<div class="breadcrumbs-area clearfix">
<h4 class="page-title pull-left">User Create</h4>
<ul class="breadcrumbs pull-left">
<li><a href="{{ route('admin.dashboard') }}">Dashboard</a></li>
<li><a href="{{ route('admin.users.index') }}">All Users</a></li>
<li><span>Edit User - {{ $user->name }}</span></li>
</ul>
</div>
</div>
<div class="col-sm-6 clearfix">
@include('backend.layouts.partials.logout')
</div>
</div>
</div>
<!-- page title area end -->
<div class="main-content-inner">
<div class="row">
<!-- data table start -->
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title">Edit User - {{ $user->name }}</h4>
@include('backend.layouts.partials.messages')
<form action="{{ route('admin.users.update', $user->id) }}" method="POST">
@method('PUT')
@csrf
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="name">User Name</label>
<input type="text" class="form-control" id="name" name="name" placeholder="Enter Name" value="{{ $user->name }}">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="email">User Email</label>
<input type="text" class="form-control" id="email" name="email" placeholder="Enter Email" value="{{ $user->email }}">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="password">Password</label>
<input type="password" class="form-control" id="password" name="password" placeholder="Enter Password">
</div>
<div class="form-group col-md-6 col-sm-12">
<label for="password_confirmation">Confirm Password</label>
<input type="password" class="form-control" id="password_confirmation" name="password_confirmation" placeholder="Enter Password">
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 col-sm-12">
<label for="password">Assign Roles</label>
<select name="roles[]" id="roles" class="form-control select2" multiple>
@foreach ($roles as $role)
<option value="{{ $role->name }}" {{ $user->hasRole($role->name) ? 'selected' : '' }}>{{ $role->name }}</option>
@endforeach
</select>
</div>
</div>
<button type="submit" class="btn btn-primary mt-4 pr-4 pl-4">Save User</button>
</form>
</div>
</div>
</div>
<!-- data table end -->
</div>
</div>
@endsection
@section('scripts')
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<script>
$(document).ready(function() {
$('.select2').select2();
})
</script>
@endsection
@@ -0,0 +1,121 @@
@extends('layouts.app')
@section('title')
{{ $pageInfo['title'] }}
@endsection
@section('styles')
<!-- Start datatable css -->
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.18/css/dataTables.bootstrap4.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.jqueryui.min.css">
@endsection
@section('admin-content')
<!-- page title area start -->
<div class="page-title-area">
<div class="row align-items-center">
<div class="col-sm-6">
<div class="breadcrumbs-area clearfix">
<h4 class="page-title pull-left">Users</h4>
<ul class="breadcrumbs pull-left">
<li><a href="{{ route('admin.dashboard') }}">Dashboard</a></li>
<li><span>All Users</span></li>
</ul>
</div>
</div>
<div class="col-sm-6 clearfix">
@include('backend.layouts.partials.logout')
</div>
</div>
</div>
<!-- page title area end -->
<div class="main-content-inner">
<div class="row">
<!-- data table start -->
<div class="col-12 mt-5">
<div class="card">
<div class="card-body">
<h4 class="header-title float-left">Users List</h4>
<p class="float-right mb-2">
<a class="btn btn-primary text-white" href="{{ route('admin.users.create') }}">Create New User</a>
</p>
<div class="clearfix"></div>
<div class="data-tables">
@include('backend.layouts.partials.messages')
<table id="dataTable" class="text-center">
<thead class="bg-light text-capitalize">
<tr>
<th width="5%">Sl</th>
<th width="10%">Name</th>
<th width="10%">Email</th>
<th width="40%">Roles</th>
<th width="15%">Action</th>
</tr>
</thead>
<tbody>
@foreach ($users as $user)
<tr>
<td>{{ $loop->index+1 }}</td>
<td>{{ $user->name }}</td>
<td>{{ $user->email }}</td>
<td>
@foreach ($user->roles as $role)
<span class="badge badge-info mr-1">
{{ $role->name }}
</span>
@endforeach
</td>
<td>
<a class="btn btn-success text-white" href="{{ route('admin.users.edit', $user->id) }}">Edit</a>
<a class="btn btn-danger text-white" href="{{ route('admin.users.destroy', $user->id) }}"
onclick="event.preventDefault(); document.getElementById('delete-form-{{ $user->id }}').submit();">
Delete
</a>
<form id="delete-form-{{ $user->id }}" action="{{ route('admin.users.destroy', $user->id) }}" method="POST" style="display: none;">
@method('DELETE')
@csrf
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- data table end -->
</div>
</div>
@endsection
@section('scripts')
<!-- Start datatable js -->
<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script src="https://cdn.datatables.net/1.10.18/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.10.18/js/dataTables.bootstrap4.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js"></script>
<script src="https://cdn.datatables.net/responsive/2.2.3/js/responsive.bootstrap.min.js"></script>
<script>
/*================================
datatable active
==================================*/
if ($('#dataTable').length) {
$('#dataTable').DataTable({
responsive: true
});
}
</script>
@endsection
@@ -0,0 +1,55 @@
<script>
/**
* Check all the permissions
*/
$("#checkPermissionAll").click(function(){
if($(this).is(':checked')){
// check all the checkbox
$('input[type=checkbox]').prop('checked', true);
}else{
// un check all the checkbox
$('input[type=checkbox]').prop('checked', false);
}
});
function checkPermissionByGroup(className, checkThis){
const groupIdName = $("#"+checkThis.id);
const classCheckBox = $('.'+className+' input');
if(groupIdName.is(':checked')){
classCheckBox.prop('checked', true);
}else{
classCheckBox.prop('checked', false);
}
implementAllChecked();
}
function checkSinglePermission(groupClassName, groupID, countTotalPermission) {
const classCheckbox = $('.'+groupClassName+ ' input');
const groupIDCheckBox = $("#"+groupID);
// if there is any occurance where something is not selected then make selected = false
if($('.'+groupClassName+ ' input:checked').length == countTotalPermission){
groupIDCheckBox.prop('checked', true);
}else{
groupIDCheckBox.prop('checked', false);
}
implementAllChecked();
}
function implementAllChecked() {
const countPermissions = {{ count($all_permissions) }};
const countPermissionGroups = {{ count($permission_groups) }};
// console.log((countPermissions + countPermissionGroups));
// console.log($('input[type="checkbox"]:checked').length);
if($('input[type="checkbox"]:checked').length >= (countPermissions + countPermissionGroups)){
$("#checkPermissionAll").prop('checked', true);
}else{
$("#checkPermissionAll").prop('checked', false);
}
}
</script>