cms-frontend/resources/views/pages/user-management.blade.php

83 lines
3.2 KiB
PHP

<!-- resources/views/pages/user-management.blade.php -->
@extends('layouts.app')
@section('page_title', 'User Management')
@section('content')
@include('components.table-component', [
'pageTitle' => 'User Management',
'data' => $users ?? [], // Data from API
'columns' => [
['name' => 'Username', 'key' => 'username', 'sortable' => true],
['name' => 'First Name', 'key' => 'firstName', 'sortable' => true],
['name' => 'Last Name', 'key' => 'lastName', 'sortable' => true],
['name' => 'User Role', 'key' => 'role', 'sortable' => true],
['name' => 'Email', 'key' => 'email', 'sortable' => true],
['name' => 'Status', 'key' => 'status', 'sortable' => true]
],
'allFields' => [
['name' => 'Username', 'key' => 'username', 'type' => 'text', 'required' => true],
['name' => 'First Name', 'key' => 'firstName', 'type' => 'text', 'required' => true],
['name' => 'Last Name', 'key' => 'lastName', 'type' => 'text', 'required' => true],
['name' => 'Email', 'key' => 'email', 'type' => 'email', 'required' => true],
['name' => 'Password', 'key' => 'password', 'type' => 'password', 'required' => true, 'showOnEdit' => false],
['name' => 'Role', 'key' => 'role', 'type' => 'select', 'options' => $roles ?? ['admin', 'user'], 'required' => true],
['name' => 'Status', 'key' => 'status', 'type' => 'select', 'options' => ['Active', 'Inactive'], 'required' => true]
],
'actions' => ['edit', 'view', 'delete'],
'showAddButton' => true,
'addButtonUrl' => route('user-management.create'),
'showCheckboxes' => true,
'showBatchDelete' => true,
'showEditModal' => true,
'showViewModal' => true,
'baseRoute' => 'user-management'
])
@endsection
@push('scripts')
<script>
$(document).ready(function() {
const dataTable = initializeDataTable({
route: '{{ route("user-management.data") }}',
columns: [
{ data: 'username' },
{ data: 'firstName' },
{ data: 'lastName' },
{ data: 'role' },
{ data: 'email' },
{
data: 'status',
render: function(data) {
return `<span class="badge badge-${data === 'Active' ? 'success' : 'danger'}">${data}</span>`;
}
}
]
});
// Handle form submissions
handleFormSubmission({
addRoute: '{{ route("user-management.store") }}',
editRoute: '{{ route("user-management.update", ":id") }}',
deleteRoute: '{{ route("user-management.destroy", ":id") }}',
dataTable: dataTable,
validation: {
username: {
required: true,
minlength: 3
},
email: {
required: true,
email: true
},
password: {
required: function() {
return !$('#editForm').length; // Required only for new users
},
minlength: 8
}
}
});
});
</script>
@endpush