← Quay lại mục lục

Bài 22 — Bulk Delete với Select-all

Bảng 15 items với checkbox + Select-all + indeterminate state + modal confirm.

Khó #bulk-action #checkbox #indeterminate #modal #delete

🗑️ Bài 22: Bulk Delete với Select-all

Bảng 15 items có checkbox mỗi row + checkbox "Select all" ở header + nút Delete + modal xác nhận. Bài tập về indeterminate checkbox state + bulk action UI.

📋 Quy tắc tương tác

  1. Click row checkbox: toggle item.
  2. Click "Select all":
    • Nếu chưa chọn item nào → chọn tất cả.
    • Nếu đã chọn 1 phần → chọn tất cả.
    • Nếu đã chọn tất cả → bỏ chọn tất cả.
  3. Indeterminate state của Select-all:
    • Đã chọn 0 → unchecked.
    • Đã chọn 1..N-1 → indeterminate (dấu gạch ngang).
    • Đã chọn tất cả → checked.
  4. Counter: hiển thị "X items selected".
  5. Delete button:
    • Disabled khi 0 items selected.
    • Click → hiển thị modal "Delete X items? This cannot be undone."
    • Confirm → xóa khỏi list, reset checkboxes.

🎯 Yêu cầu

  1. Test indeterminate state ở các trạng thái: 0/1/2/.../14/15 selected.
  2. Test Select-all toggle behavior.
  3. Test Delete button enable/disable theo selected count.
  4. Test modal confirm: số items hiển thị đúng?
  5. Test sau khi xóa: counter, indeterminate, list refresh.
  6. Test: chọn 5 items → xóa 2 items → còn lại đúng items chưa chọn.
⚠️ Bug được cài cắm: indeterminate logic, Select-all toggle, modal count, delete behavior, counter.
🔐

Vui lòng đăng nhập để nộp bài.

Đăng nhập
🔐

Tab dành cho giảng viên

Tab này chứa danh sách các lỗi đã cài cắm trong form. Vui lòng nhập mã giảng viên để mở khóa. Mã sẽ ghi nhớ trong phiên làm việc — chỉ cần nhập 1 lần cho cả 3 bài.