Logo Practice with Ankit | Form and DB Operations

Client Survey

Id Name (Link) Surname Gender Mobile Age Last Updated On
Requirement: Form and DB Operation 8 - Bulk Permanent Delete

This exercise replaces the soft-delete functionality with a **bulk, permanent delete** operation, simulating how developers handle mass cleanup or irreversible data removal in the backend.

List Screen Updates:

  • The **Remove** column is replaced with a **Checkbox Column** at the start of the table.
  • The header of this new column must contain a **Select All** checkbox to select/deselect all displayed records.
  • A new action button, **Delete Selected**, must be placed before the **Add Survey** button.

Bulk Delete Functionality:

  1. Users can select multiple records using the row checkboxes or the **Select All** header checkbox.
  2. The **Delete Selected** button must be disabled when no records are selected and display the count of selected records (e.g., "Delete Selected (3)").
  3. Clicking **Delete Selected** must open a confirmation popup, clearly stating the **permanent** nature of the deletion.
  4. Upon confirmation (**Yes**):
    • The operation must perform a **Permanent Delete** (**Hard Delete**), removing the records entirely from the underlying data source (MOCK: the `clientSurveys` array).
    • A **Spinner** must be shown during the operation.
    • The list must refresh to show the remaining records.

Hint (OutSystems): Bulk operations usually involve passing a **List of Identifiers** to a Server Action which then executes an Advanced SQL or loop-based delete on the backend.

Ankit G Avatar
About the Author: Ankit Gangrade

Ankit Gangrade is a passionate Low-Code Architect, Developer, & Educator dedicated to helping students and professionals build modern applications faster using OutSystems and Cloud-Native technologies. His goal is to bridge the gap between traditional coding and modern low-code platforms — empowering the next generation of developers to build smart, scalable, and cloud-ready apps.