# Release 1.19.0

## 1. Safer financial operations: accounts, assets, and transactions

**WIFOX-540 – Safe delete for Accounts &amp; Assets (with rights and checks)**  
CRM now supports deleting **Accounts** and **Assets** from their modules, but only under strict conditions:

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-separate-rights%3A-%E2%80%9Cac"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Separate rights: “Accounts → Delete” and “Assets → Delete”.
- Delete action is shown only if the user has the right.
- Backend blocks deletion if:
    
    
    - an asset has any balance or transactions, or
    - an account contains any assets with balance or transactions.

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-admins-can-clean-up-"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Admins can clean up unused accounts/assets without risking financial history.
- Hard backend checks prevent accidental loss of data or money movements.

---

</div></div></div></div>**WIFOX-541 – Cancel internal transactions with “Canceled by manager” + reason + balance check**  
For **internal** transactions, managers can now set status **“Canceled by manager”**:

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-only-available-for-p"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Only available for `provider = internal`.
- A **reason** is mandatory and stored on the transaction.
- When canceling deposits, the system checks the client’s current balance; if there’s not enough balance to reverse the deposit, cancellation is blocked with a clear error.

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-gives-operations-a-c"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Gives operations a clean, auditable way to cancel internal deposits.
- Prevents negative balances and inconsistencies when reversing funds.

---

</div></div></div></div>## 2. Clients module: faster actions and better segmentation

**WIFOX-519 – “Add action” promoted to quick action in Clients table**  
In **CRM → Clients**, **“Add action”** is now a visible quick‑action icon directly in each row, right after Edit, instead of being hidden in the “⋮” menu.

**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-managers-can-create-"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Managers can create client actions in one click from the main list.
- Speeds up daily follow‑up and reduces extra clicks for high‑volume teams.

---

</div></div></div></div>**WIFOX-591 – New “Source ID” column + filter in Clients table**  
The Clients table now has a **“Source ID”** column (after “Affiliate ID”) with:

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-display-from-client."><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Display from `client.sourceId` (or equivalent).
- Text filter by Source ID.
- Inclusion in **Customize columns** (can be shown/hidden, order controlled per user).

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-business-can-quickly"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Business can quickly slice clients by acquisition source directly in the main Clients view.
- Easier analysis of which sources generate which clients, without exports.

---

</div></div></div></div>## 3. Fast filters and search: clearer, global vs personal, and always‑visible search

**WIFOX-321 – Clear visual separation of Global vs Personal fast filters**  
Fast filters across CRM (Clients, Requests, Actions, Transactions, etc.) now visually distinguish **Global** filters from **Personal** ones (using the approved design), without relying on the old “(G)” text suffix.

**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-users-instantly-see-"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Users instantly see which filters are organisation‑wide and which are their own.
- Less confusion, fewer mistakes when saving, editing, or teaching others to use filters.

---

</div></div></div></div>**WIFOX-517 – Move search out of Fast Filters and place above tables**  
In all relevant modules, the **search field** has been moved:

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-out-of-the-fast-filt"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Out of the Fast Filters panel.
- Into the main table header area, always visible above the table.  
    Existing saved Fast Filters that contained search parameters were migrated so nothing breaks.

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-search-is-now-obviou"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Search is now obvious and one‑click for all users.
- Fast Filters are cleaner and focused on structured conditions, while saved filters continue to work.

---

</div></div></div></div>## 4. Actions module: better filters and more complete data

**WIFOX-518 – Redesigned “Subtypes” selector in Actions Fast Filters**  
The **Subtypes** selector in Actions Fast Filters was redesigned to clearly show **Type → Subtype** relationships (per the new UX):

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-subtypes-visually-gr"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Subtypes visually grouped under their parent Action Type.
- Multi‑select across types and subtypes still works.
- No change to backend filtering logic.

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-users-understand-exa"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Users understand exactly which subtypes belong to which types when filtering.
- Reduces mis‑filters and speeds up building correct saved filters.

---

</div></div></div></div>**WIFOX-543 – “Completed” column in Actions table on Client card**  
The **Actions** table inside the client card now includes a **“Completed”** column, showing whether each action is done or not.

**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-account-managers-can"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Account managers can quickly see which actions are still open vs closed for a client.
- Easier to ensure no important tasks are left unfinished.

---

</div></div></div></div>**WIFOX-573 – Make Comments required for selected Actions**  
Certain action types can now require a **Comment** when being created or completed (per configuration). If an action type is marked as “comment required”, users cannot save it without filling the comment field.

**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-ensures-key-actions-"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Ensures key actions always have enough context in the history.
- Improves quality of follow‑up and auditability for important processes.

---

</div></div></div></div>## 5. Popovers and navigation: smoother UX in CRM

**WIFOX-571 – Wider, readable popovers for long text (e.g. action descriptions)**  
Popovers/tooltip previews (like long action descriptions) now expand **horizontally** up to a sensible max width, instead of becoming extremely tall and narrow. Text wraps nicely and handles long words/URLs.

**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-long-descriptions-ar"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Long descriptions are easier to read without scrolling a tiny box.
- Less friction when reviewing details directly from tables.

---

</div></div></div></div>**WIFOX-572 – Redirect each user to their last visited page after login**  
After login, CRM now redirects each user to their **own last visited page**, stored per user in local storage (`wbcs:{email}:lastVisitedPath`), if it’s still valid and accessible. If not, they go to the default start page.

**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-users-return-straigh"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Users return straight to where they left off (clients list, specific client, requests, etc.).
- Saves time and clicks at the start of every session.

---

</div></div></div></div>## 6. Configuration cleanup: labels &amp; employee emails

**WIFOX-285 – Remove “Label” from UI forms and auto‑generate it in backend**  
For many configurable entities (action types, buckets, client/request statuses, desks, banks, fee groups, transaction statuses/subtypes, etc.):

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-label-is-no-longer-e"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- **Label** is no longer entered in create forms; only **Name** is managed by business users.
- In edit forms, Label is still visible but **read‑only**.
- Backend automatically generates a unique `label` from Name (same logic as clients’ custom fields) and keeps it stable on edits.

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-business-users-stop-"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Business users stop dealing with technical IDs and “label” errors.
- Integrations keep stable identifiers even if visible names change.

---

</div></div></div></div>**WIFOX-287 &amp; WIFOX-289 – Safe email change for employees (with impact review and audit)**  
Together these tasks:

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-analysed-all-impacts"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- Analysed all impacts of changing an **employee email** (auth, analytics, permissions, audit, notifications, integrations).
- Implemented safe email change in the **Employee edit** form:
    
    
    - Email can now be updated with validation (format + uniqueness).
    - Active sessions, login, password reset, and analytics behavior were defined and handled as approved.
    - Every change is logged with old email, new email, who changed it, and when.

</div></div></div></div>**Business impact:**

<div class="_19itglyw _vchhusvi _r06hglyw" id="bkmrk-hr-and-admins-can-co"><div class="ak-renderer-wrapper is-undefined css-pw7jst"><div class="css-1lduhg5"><div class="ak-renderer-document">- HR and admins can correct or change employee emails without creating new accounts.
- System remains secure and auditable; analytics continues to make sense over time.

  
</div></div></div></div>