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');
};
}