Files
2024-12-02 01:18:34 +07:00

128 lines
4.4 KiB
PHP

@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