create feat management role menu

This commit is contained in:
arifal
2025-02-11 17:59:03 +07:00
parent cb90f69d1e
commit 2bf4b8b327
13 changed files with 296 additions and 51 deletions

View File

@@ -18,10 +18,12 @@ class Roles {
name: "Action",
formatter: (cell) =>
gridjs.html(`
<div class="d-flex justify-content-end gap-x-2">
<a href="/roles/${cell}/edit" class="btn btn-yellow me-2">Update</a>
<button class="btn btn-red btn-delete btn-delete-role" data-id="${cell}">Delete</button>
`),
<div class="d-flex justify-content-end gap-x-2">
<a href="/roles/${cell}/edit" class="btn btn-yellow me-2">Update</a>
<a href="/roles/role-menu/${cell}" class="btn btn-yellow me-2">Role Menu</a>
<button class="btn btn-red btn-delete btn-delete-role" data-id="${cell}">Delete</button>
<div>
`),
},
],
pagination: {

View File

@@ -0,0 +1,36 @@
class RoleMenus {
init() {
this.initCheckboxRoles();
}
initCheckboxRoles() {
const childPermissions =
document.querySelectorAll(".child-permissions");
childPermissions.forEach((child) => {
child.addEventListener("change", function () {
const parentId = this.dataset.parentId;
const parentShow = document.querySelector(
`input[name='permissions[${parentId}][allow_show]']`
);
if (parentShow) {
// If any child permission is checked, check parent "Show"
if (
document.querySelectorAll(
`.child-permission[data-parent-id="${parentId}"]:checked`
).length > 0
) {
parentShow.checked = true;
} else {
parentShow.checked = false;
}
}
});
});
}
}
document.addEventListener("DOMContentLoaded", function (event) {
new RoleMenus().init();
});