Appearance
Working with Forms
PinkApple uses a centralised Form Engine for creating and editing records across the entire application. Whether you're creating a client, editing a GL posting rule, or submitting a batch of journal entries, the same form system powers the experience.
How Forms Work
When you click a Create or Edit button anywhere in the application, a form drawer slides in from the right side of the screen. This drawer contains the form fields, validation, and submission controls.
Form Drawer Layout
┌─────────────────────────────────────────────┐
│ 📄 Create Client ─ □ ✕ │ ← Title bar with minimize/maximize/close
├─────────────────────────────────────────────┤
│ │
│ ┌─ Basic Information ─────────────────┐ │ ← Sections group related fields
│ │ Client Name: [____________] │ │
│ │ Email: [____________] │ │
│ │ Phone: [____________] │ │
│ └─────────────────────────────────────┘ │
│ │
│ ┌─ Address Details ───────────────────┐ │
│ │ Street: [____________] │ │
│ │ City: [____________] │ │
│ │ Country: [▼ Select ] │ │
│ └─────────────────────────────────────┘ │
│ │
│ ┌─ Additional Information ────────────┐ │ ← Custom fields section (if configured)
│ │ Membership ID: [____________] │ │
│ │ Referral Source: [▼ Select ] │ │
│ └─────────────────────────────────────┘ │
│ │
├─────────────────────────────────────────────┤
│ [ Reset ] [ Submit ] │ ← Action buttons
└─────────────────────────────────────────────┘Title Bar Controls
| Control | Icon | Action |
|---|---|---|
| Minimize | ─ | Collapses the form to a small floating widget at the bottom of the screen |
| Maximize | □ | Expands the form to full width |
| Close | ✕ | Closes the form. If you have unsaved changes, a confirmation dialog appears |
TIP
You can minimize a form, work on something else in the application, and then restore it from the floating widget at the bottom-right of the screen. Your data is preserved.
Field Types
Forms contain a variety of field types depending on the record being created or edited:
| Field Type | Description | Example |
|---|---|---|
| Text | Free-text input | Client name, description |
| Number | Numeric input | Amount, quantity, percentage |
| Select | Dropdown selection | Status, type, category |
| Date | Date picker | Start date, end date |
| Lookup | Search and select from a table | COA account, business unit, client |
| Currency | Formatted monetary input | Transaction amount, limit |
| Checkbox | Toggle on/off | Active flag, approval required |
| Tags | Add/remove classification tags | System tags on GL rules |
| File | Upload a document or image | Attachments, photos |
| Rich Text | Formatted text editor | Long descriptions, notes |
Lookup Fields
Lookup fields are special — they let you search and select a record from a data table. When you click a lookup field:
- A modal opens with a searchable, filterable table
- Use the column filters or search box to find the record
- Click a row to select it
- The selected record's name appears in the field
Some lookup fields are read-only in edit mode, showing the selected record's details without allowing changes.
Tags Fields
Tags let you classify records with searchable labels. You can:
- Select existing tags — Click the "+" button to browse available tags in a table
- Create new tags — Define a new tag inline with a key, category, and description
- Edit tag bindings — Click any tag chip to set metadata like business unit, currency, priority, and validity period
Sections
Forms are organised into sections — collapsible groups of related fields:
- Click a section header to expand or collapse it
- Required sections are expanded by default
- Optional sections may start collapsed
Some sections are repeatable — you can add multiple instances. For example, an address section might let you add a home address, work address, and mailing address using an Add button.
Validation
The form engine validates your input at multiple levels:
Field-Level Validation
Each field can have rules like:
- Required — The field must have a value
- Email — Must be a valid email format
- Minimum/Maximum — Numeric or text length limits
- Pattern — Must match a specific format (e.g., account codes)
Validation errors appear as red text below the field immediately after you move to another field.
Form-Level Validation
When you click Submit, the entire form is validated. If any field has an error, the form scrolls to the first error and highlights all invalid fields.
WARNING
You cannot submit a form with validation errors. Fix all highlighted errors and try again.
Batch Mode
Some forms support batch mode — creating or editing multiple records in a single session. This is especially useful for operations like creating multiple journal entries or updating several records at once.
How Batch Mode Works
- Fill in the form for the first record
- Click Add to Batch to save it to the batch list
- The form resets (some fields may be preserved for convenience)
- Repeat for each record
- Review all entries in the batch table or batch cards below the form
- Click Submit to send all entries at once
Batch Table
The batch table shows all queued entries with columns matching the form fields:
| Feature | Description |
|---|---|
| View modes | Switch between table view and card view |
| Edit entries | Click a row to load it back into the form for editing (highlighted in orange) |
| Delete entries | Remove individual entries from the batch |
| Row colours | Orange = currently editing, Green = edited, White = original |
Batch Edit Mode
When editing existing records in batch:
- All records load into the batch table
- Click any row to edit it in the form
- Only changed records are submitted (unchanged records are skipped)
- The system tracks which fields were modified
INFO
The Submit button is disabled when the form has partially entered data. Either add the current entry to the batch or reset the form before submitting.
Custom Fields
PinkApple supports custom fields — additional fields defined by your organisation that appear automatically on relevant forms. Custom fields are configured in Administration → General Setup → Custom Fields.
When a form has custom fields configured for its entity (e.g., "Client", "Employee", "Loan Account"):
- A section called Additional Information appears at the bottom of the form
- Custom fields render with the same field types and validation as standard fields
- Custom field values are stored separately and can be searched and reported on
See Custom Fields for setup instructions.
Multi-Form Management
You can have multiple forms open simultaneously. This is useful when you need to reference data from one form while filling in another.
Minimized Forms Widget
When you minimize a form, it appears in the floating widget at the bottom-right of the screen:
- Shows the count of minimized forms
- Click the widget to see a list of all minimized forms
- Click a form name to restore it
- Each minimized form preserves all entered data
Switching Between Forms
- Only one form is visible at a time
- Minimized forms are accessible from the floating widget
- Each form operates independently — submitting one doesn't affect others
Draft Auto-Save
Some forms automatically save your progress as you type:
- If you accidentally close the browser, your data may be recoverable when you reopen the form
- Draft data is stored locally on your device
- A "Restore draft?" prompt appears if a previous draft is found
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
| Tab | Move to the next field |
| Shift + Tab | Move to the previous field |
| Enter | Submit the form (when the submit button is focused) |
| Escape | Close the current form (with confirmation if changes exist) |
Tips for Efficient Form Use
- Use Tab to navigate — Faster than clicking each field
- Leverage lookups — Type in the lookup search to quickly filter records
- Use batch mode — For repetitive data entry, batch mode saves significant time
- Minimize forms — Keep a form open while you look up information elsewhere
- Check validation early — Fix errors as they appear rather than waiting for submission
