Logo Practice with Ankit | Form and DB Operations

Client Survey

Id Name (Link) Surname Gender Marital Status Have Kids Mobile Age Last Updated On Remove
Requirement: Form and DB Operation 8 - Show Deleted Records (Soft Delete Management)

This exercise focuses on managing soft-deleted records by implementing a mechanism to view and restore them, demonstrating advanced conditional logic in the UI and filtering data based on the IsActive attribute.

List Screen Updates & Filtering:

  1. Add a Toggle Switch named "Show Deleted Record" next to the search field. It should be off by default.
  2. The table filter must be controlled by this switch:
    • OFF (Default): Show only records where IsActive = True.
    • ON: Show only records where IsActive = False (Deleted Records List).

Conditional Actions (Based on Record State):

  1. When the toggle is ON (showing deleted records):
    • The column header for the last column must change from "Remove" to "Restore".
    • For any deleted record, the Name link must be visually and functionally disabled.
    • For any deleted record, the action icon must change from the Trash icon (🗑️) to a Checkmark/Restore icon (✅).
  2. When the **Restore icon** is clicked, a confirmation popup asks to proceed: "This record will be restored and moved to the active records list. Would you like to proceed?". Upon confirmation, the record's IsActive is set back to True, and the list is refreshed.
  3. When the **Trash icon** is clicked for an active record, the confirmation popup says: **"This record will be soft deleted (IsActive = False). Would you like to proceed?"**.

Hint (OutSystems): Conditional column headers and icons are achieved using variables or expressions based on the toggle state. Disabling the link is done by setting its **Enabled** property to False or by conditionally rendering a different widget (like static text).

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.