if (copyFingerBtn) { copyFingerBtn.disabled = true; copyFingerBtn.onclick = async () => { const text = visibleEmployeeRows .map((r) => (r?.id_finger || '').toString().trim()) .filter(Boolean) .join('\n'); if (!text) return; try { if (navigator.clipboard?.writeText) { await navigator.clipboard.writeText(text); } else { const ta = document.createElement('textarea'); ta.value = text; ta.style.position = 'fixed'; ta.style.left = '-9999px'; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); ta.remove(); } copyFingerBtn.innerHTML = ' Tersalin'; setTimeout(() => { copyFingerBtn.innerHTML = ' Copy KD Finger'; }, 1400); } catch (e) { alert('Gagal copy KD Finger.'); } }; } if (shiftBulkBtn) { shiftBulkBtn.disabled = true; shiftBulkBtn.onclick = () => { const rows = visibleEmployeeRows.filter((r) => statusClass(r?.status) === 'verify' && Number(r?.karyawan_id || 0) > 0 && (r?.work_date || '').toString().trim() !== ''); if (!rows.length) return; const ids = Array.from(new Set(rows.map((r) => String(r.karyawan_id)))); const dates = rows.map((r) => (r.work_date || '').toString()).filter(Boolean).sort(); const params = new URLSearchParams({ open_bulk: '1', karyawan_ids: ids.join(','), date_from: dates[0] || '', date_to: dates[dates.length - 1] || dates[0] || '', }); window.open(`{{ route('master_shift_schedule.index') }}?${params.toString()}`, '_blank'); }; } if (morningCheckBtn) { morningCheckBtn.disabled = true; morningCheckBtn.onclick = () => { const dates = visibleEmployeeRows.map((r) => (r?.work_date || '').toString()).filter(Boolean).sort(); if (!dates.length) return; const hasVerify = visibleEmployeeRows.some((r) => statusClass(r?.status) === 'verify'); const hasAlpha = visibleEmployeeRows.some((r) => statusClass(r?.status) === 'danger'); const params = new URLSearchParams({ date: dates[0], status_filter: hasVerify ? 'verify' : (hasAlpha ? 'alpha' : 'all'), }); window.open(`{{ route('attendance_morning_checkin_report.index') }}?${params.toString()}`, '_blank'); }; }