urutin ruang + text ruangan

This commit is contained in:
rendygaafk 2025-06-03 10:34:03 +07:00
parent efbde40b7e
commit c3776bea0b
1 changed files with 52 additions and 36 deletions

View File

@ -80,31 +80,39 @@ class="flex items-center px-5 py-2.5 bg-white border border-blue-500 text-blue-6
<i class="fas fa-check-circle mr-1"></i> Pilih Semua
</button>
</div>
@php
// Urutkan ruangan berdasarkan angka dalam nama_ruangan
$sortedRuangans = collect($ruangans)->sortBy(function($ruangan) {
preg_match('/\d+/', $ruangan->nama_ruangan, $matches);
return (int) ($matches[0] ?? PHP_INT_MAX); // PHP_INT_MAX agar yang tanpa angka muncul paling akhir
});
@endphp
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
@foreach($ruangans as $ruangan)
<div class="relative flex items-start p-3 rounded-lg border border-gray-200 hover:border-blue-300 transition-colors">
<div class="flex items-center h-5 mt-1">
<input id="manual-ruang-{{ $ruangan->nama_ruangan }}"
name="ruangans[]"
type="checkbox"
value="{{ $ruangan->nama_ruangan }}"
class="focus:ring-blue-500 h-4 w-4 text-blue-600 border-gray-300 rounded">
</div>
<div class="ml-3 text-sm flex-1">
<div class="flex items-center justify-between">
<label for="manual-ruang-{{ $ruangan->nama_ruangan }}" class="font-medium text-gray-700 flex items-center">
<span class="inline-block w-2.5 h-2.5 rounded-full bg-blue-500 mr-2"></span>
{{ $ruangan->nama_ruangan }}
</label>
<span id="status-ruang-{{ $ruangan->nama_ruangan }}"
class="text-xs px-2 py-0.5 rounded-full
{{ $ruangan->relay_state === 'on' ? 'bg-green-100 text-green-800' : 'bg-gray-100 text-gray-800' }}">
{{ $ruangan->relay_state === 'on' ? 'AKTIF' : 'NONAKTIF' }}
</span>
@foreach($sortedRuangans as $ruangan)
<div class="relative flex items-start p-3 rounded-lg border border-gray-200 hover:border-blue-300 transition-colors">
<div class="flex items-center h-5 mt-1">
<input id="manual-ruang-{{ $ruangan->nama_ruangan }}"
name="ruangans[]"
type="checkbox"
value="{{ $ruangan->nama_ruangan }}"
class="focus:ring-blue-500 h-4 w-4 text-blue-600 border-gray-300 rounded">
</div>
<div class="ml-3 text-sm flex-1">
<div class="flex items-center justify-between">
<label for="manual-ruang-{{ $ruangan->nama_ruangan }}" class="font-medium text-gray-700 flex items-center">
<span class="inline-block w-2.5 h-2.5 rounded-full bg-blue-500 mr-2"></span>
Ruangan {{ str_pad($ruangan->nama_ruangan, 2, '0', STR_PAD_LEFT) }}
</label>
<span id="status-ruang-{{ $ruangan->nama_ruangan }}"
class="text-xs px-2 py-0.5 rounded-full
{{ $ruangan->relay_state === 'on' ? 'bg-green-100 text-green-800' : 'bg-gray-100 text-gray-800' }}">
{{ $ruangan->relay_state === 'on' ? 'AKTIF' : 'NONAKTIF' }}
</span>
</div>
</div>
</div>
</div>
@endforeach
</div>
<div id="ruanganError" class="mt-2 text-sm text-red-600 hidden flex items-center">
@ -163,24 +171,32 @@ class="block w-full px-4 py-3 border border-gray-300 rounded-lg shadow-sm focus:
<i class="fas fa-check-circle mr-1"></i> Pilih Semua
</button>
</div>
@php
// Urutkan ruangan berdasarkan angka dalam nama_ruangan
$sortedRuangans = collect($ruangans)->sortBy(function($ruangan) {
preg_match('/\d+/', $ruangan->nama_ruangan, $matches);
return (int) ($matches[0] ?? PHP_INT_MAX); // PHP_INT_MAX agar yang tanpa angka muncul paling akhir
});
@endphp
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
@foreach($ruangans as $ruangan)
<div class="relative flex items-start p-3 rounded-lg border border-gray-200 hover:border-green-300 transition-colors">
<div class="flex items-center h-5 mt-1">
<input id="tts-ruang-{{ $ruangan->nama_ruangan }}"
name="ruangans[]"
type="checkbox"
value="{{ $ruangan->nama_ruangan }}"
class="focus:ring-green-500 h-4 w-4 text-green-600 border-gray-300 rounded">
@foreach($sortedRuangans as $ruangan)
<div class="relative flex items-start p-3 rounded-lg border border-gray-200 hover:border-green-300 transition-colors">
<div class="flex items-center h-5 mt-1">
<input id="tts-ruang-{{ $ruangan->nama_ruangan }}"
name="ruangans[]"
type="checkbox"
value="{{ $ruangan->nama_ruangan }}"
class="focus:ring-green-500 h-4 w-4 text-green-600 border-gray-300 rounded">
</div>
<div class="ml-3 text-sm">
<label for="tts-ruang-{{ $ruangan->nama_ruangan }}" class="font-medium text-gray-700 flex items-center">
<span class="inline-block w-2.5 h-2.5 rounded-full bg-green-500 mr-2"></span>
Ruangan {{ str_pad($ruangan->nama_ruangan, 2, '0', STR_PAD_LEFT) }}
</label>
</div>
</div>
<div class="ml-3 text-sm">
<label for="tts-ruang-{{ $ruangan->nama_ruangan }}" class="font-medium text-gray-700 flex items-center">
<span class="inline-block w-2.5 h-2.5 rounded-full bg-green-500 mr-2"></span>
{{ $ruangan->nama_ruangan }}
</label>
</div>
</div>
@endforeach
</div>
<div id="ttsRuanganError" class="mt-2 text-sm text-red-600 hidden flex items-center">