Files
usermanagement/resources/views/roles/create.blade.php
Daeng Deni Mardaeni a6c79c72b5 feat(roles): tambahkan fitur pengelolaan posisi dan tingkat jabatan pada modul role
- Modifikasi form pembuatan role:
  - Tambahkan class `tomselect` pada elemen dropdown posisi.
  - Update label tingkat jabatan pada tampilan opsi dropdown.

- Pembaruan tabel pada halaman list role:
  - Tambah kolom baru: "Position" dan "Tingkat Jabatan".
  - Kolom baru dapat diurutkan.

- Update logika pencarian dan pengurutan:
  - Izinkan pencarian berdasarkan nama posisi dan tingkat jabatan.
  - Tambahkan pengurutan data berdasarkan nama posisi dan tingkat jabatan dengan join table `positions`.

- Perbaikan pada paginasi dan penghitungan data:
  - Revisi query agar menghindari duplikasi data akibat join tabel.

- Ekspor data:
  - Tambahkan informasi kolom baru "Position" dan "Tingkat Jabatan" pada file Excel hasil ekspor.
  - Perbarui header dan pengaturan format kolom pada file Excel.

Perubahan ini memperluas fleksibilitas pada manajemen role dengan menambahkan dimensi posisi dan tingkat jabatan baik dalam tampilan UI maupun data backend.
2025-05-17 15:07:09 +07:00

103 lines
5.3 KiB
PHP

@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<form action="{{ isset($role->id) ? route('users.roles.update', $role->id) : route('users.roles.store') }}" method="POST" id="role_form">
@csrf
@if(isset($role->id))
<input type="hidden" name="id" value="{{ $role->id }}">
@method('PUT')
@endif
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($role->id) ? 'Edit' : 'Add' }} Role
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('users.roles.index') }}" class="btn btn-xs btn-info">Back</a>
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $role->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Position
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="select tomselect @error('position_id') border-danger @enderror" name="position_id">
<option value="">Select Position</option>
@foreach($positions as $position)
<option value="{{ $position->id }}" {{ (isset($role) && $role->position_id == $position->id) ? 'selected' : '' }}>
{{ $position->name }} | Tingkat Jabatan: {{ $position->level }}
</option>
@endforeach
</select>
@error('position_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Administrator/Superuser Access
</label>
<div class="flex flex-wrap items-baseline w-full">
<label class="switch">
<input name="check" id="select_all" type="checkbox" value="1"/>
<span class="switch-label">
Select All
</span>
</label>
</div>
</div>
@foreach($permissiongroups as $group)
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
{{ ucwords($group->name) }}
</label>
<div class="flex flex-wrap items-baseline w-full gap-2.5">
@foreach($group->getpermissionsByGroupId($group->id) as $permission)
<label class="switch">
@if(isset($role))
<input type="checkbox" value="{{ $permission->id }}" name="permissions[]" {{ $role->hasPermissionTo($permission->name) ? 'checked' : null }} />
@else
<input type="checkbox" value="{{ $permission->id }}" name="permissions[]"/>
@endif
@php
$permission_name = explode('.',$permission->name);
@endphp
<span class="switch-label">
{{ ucwords($permission_name[1]) }}
</span>
</label>
@endforeach
</div>
</div>
@endforeach
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
</div>
@endsection