Commit Graph

635 Commits

Author SHA1 Message Date
johnnyq
69484a8a2e Replace Tom Select with ITFlow's own select picker: native select stays the source of truth, search, checklists for multi selects, add-your-own for tag fields, phone sheet, and client/agent/contact avatars, tag and category colours, priority dots and asset icons in the options 2026-10-13 12:41:29 -04:00
johnnyq
cc9f34e01a No gap between filter and client listing 2026-10-13 11:59:55 -04:00
johnnyq
a85987dcd1 Add Dark header to ticket dashboard card 2026-10-13 11:54:43 -04:00
johnnyq
81062aea0e Client overview redesign with technical and financial sections; client header on all client pages gets initials, industry, tags, open tickets and balance due, and an expandable panel matching the overview 2026-10-10 15:51:07 -04:00
johnnyq
2b2a6c8c42 Clients list: tags under industry with add-tag pill, whole client cell opens the client, gray header and select column 2026-10-10 14:43:35 -04:00
johnnyq
362a6dcfd2 Client side nav: coloured initials and client name under an All clients link, aligned with the menu, click to switch clients 2026-10-10 13:49:47 -04:00
johnnyq
4728797432 Rebuild clients list: compact rows, filter chips, ticket and balance columns, batched lookups 2026-10-10 13:11:40 -04:00
johnnyq
ae28b9fc34 Rework ticket detail page: Details panel with click-to-change properties and status menu, plain-language reply types with who-sees-it line, slimmer header with billing in the menu, clearer modal titles and labels; fix billable wiped on edit by non-sales agents, email reply offered with no mail provider, timer JS error on resolved tickets, unshown due date 2026-10-10 12:50:59 -04:00
johnnyq
3e36185198 Rebuild dashboard: needs-attention rail, your day (tickets, schedule, time, team workload), finance with cash flow forecast, receivables aging and top clients 2026-10-09 16:55:07 -04:00
johnnyq
5aba00c7fc Notifications: mobile polish
- Anchor the bell badge to the icon so it no longer covers the bell on phones
- 44px read/unread button on touch screens
- Full-width Unread/All toggle on phones
2026-10-09 15:59:06 -04:00
johnnyq
bab3d73c86 Rebuild notifications: bell panel and full page
- Bell opens a dropdown panel instead of a modal: Unread/All tabs, grouped
  by day, type icons, relative times, click-through marks read, per-row
  read/unread, mark all as read
- Unread badge refreshes every minute while the tab is visible
- Notifications page rebuilt on the same backend: search, type filter,
  date range, read/unread toggles, proper empty states
- Hide notifications for clients/modules the user cannot access
- Normalise relative notification links so they work from /admin pages
- Remove the old notifications modal and dismiss handlers
2026-10-09 15:52:40 -04:00
johnnyq
f7e5655e05 Rebuild global search as a live search palette
- Press / or Ctrl+K (or click the top bar box) for results as you type,
  grouped by type, with keyboard navigation and recent clients when empty
- Ticket/invoice/quote numbers jump to the top; Enter opens immediately
- Phone, IP (any interface) and MAC matching; app pages offered by name
- Full results page rebuilt on the same search: totals, links into each
  list page, ticket conversation and document text matches
- Passwords no longer rendered into the results page; reveal/copy go
  through the audited endpoint
- Fix stray }); breaking inline scripts on asset and contact pages
2026-10-08 17:40:46 -04:00
johnnyq
9bfd26d57b Add titles to icon-only buttons
- title on 294 icon-only buttons, named for what each one does
- aria-label on the 7 show-password buttons (title becomes the popover
  header) and the portal mobile nav toggle
- Fix dead add-category button on products filter, credential bulk tag
  button now preselects Credential, drop duplicate inner-icon titles
2026-10-08 17:12:21 -04:00
johnnyq
49106e2a80 UI fixes: confirm irreversible actions, keep reply drafts guarded, re-enable CSP on portal recurring invoices
- Add confirm-link to 14 one-click delete/disable links (asset, contact,
  files, templates, logo, MFA, calendar event, disable user, cancel schedule)
- confirm_modal.js treats btn-danger / btn-outline-danger as destructive
- Replace per-editor window.onbeforeunload with one guard over all editors
- New js/autosubmit.js replaces inline onchange in the portal; CSP back on
  recurring_invoices.php
- Fix blank user name in disable_user audit log
2026-10-08 16:47:12 -04:00
johnnyq
cd7ebc0a5f Security: enforce per-user client restrictions on client, financial and bulk handlers and per-client reports
Agents restricted from a client could still edit, archive, restore or delete it, run bulk actions on it (edits, tags, archive, email, tickets) and add credits. Every selected client is now checked before anything is written.

Expense, trip and recurring expense edits now check the client the record already belongs to, not just the submitted one. Recurring expense delete, revenue edit/delete and task approval handlers gained the same check.

Per-client reports and the dashboard payment/ticket lists now hide clients the agent is denied. Company-wide totals are unchanged.
2026-10-08 16:17:46 -04:00
johnnyq
5acb1802bb Security: scope set_recurring_payment to the client's own invoice and payment method 2026-10-08 16:02:21 -04:00
johnnyq
2c8fb8753c Fix Copy Paste Buttons in certain areas 2026-10-06 22:21:22 -04:00
johnnyq
c3018b7584 Restore the ability to manually typc a value in select boxes with data-tags=true including add ticket watcher 2026-10-01 15:11:58 -04:00
johnnyq
1666305a1c UI: User Avatar pills for Assigned tickets, updated Icons for Ticket Mine and Unusassigned tickets 2026-09-29 18:02:05 -04:00
johnnyq
b15ef69bf4 Fix pretty content js helper in modals, fixes the issue with images going out of the boundry of the modal window 2026-09-29 17:22:53 -04:00
Wrongecho
c4843095b2 Potential fix for Stripe charges being off by a cent 2026-09-22 16:01:46 +00:00
Wrongecho
8d51f1a64a Bug: Fix not being able to unarchive software 2026-09-22 09:18:51 +00:00
wrongecho
1ac44f02bd Bugfix: Assets not storing credentials when username not given 2026-09-16 14:13:30 +01:00
Wrongecho
c3429ecc8a Add ability for recurring invoices to be generated as draft to allow review and amendment prior to sending 2026-09-14 13:28:41 +00:00
Wrongecho
a41e738a9b Add ability for recurring invoices to be generated as draft to allow review and amendment prior to sending 2026-09-14 13:22:59 +00:00
Wrongecho
0cc3ac513d Show when network we're looking at is archived 2026-09-14 10:18:16 +00:00
Wrongecho
cb262139ae Invoicing - bug: fix not being able to add tickets to invoice; feature: add ability to remove tickets from invoice 2026-09-11 11:56:40 +00:00
wrongecho
38cb850f60 Flag as do not modify 2026-09-08 00:05:53 +01:00
wrongecho
d0dfc6aba8 Flag as do not modify 2026-09-08 00:04:48 +01:00
Wrongecho
d416406746 Scale sidebar business name to fit (@BoredManCodes) 2026-09-07 15:41:22 +00:00
wrongecho
4f3d9f88b0 Fix typo in placeholder for abbreviation input
(@BoredManCodes)
2026-09-06 20:33:39 +01:00
wrongecho
97fe67341a Fix typo in placeholder for abbreviation input 2026-09-06 20:33:10 +01:00
johnnyq
e7015d1595 Fix undefined item name when selecting from product list in quote or recurring invoice 2026-09-03 18:35:46 -04:00
johnnyq
3acb1ad754 Fix ticket creation emails always saying Open, API tickets staying New when assigned, and the bulk assignee list filter 2026-09-03 17:18:32 -04:00
johnnyq
98f8de68ae When opening a ticket on the Agent Area automatically assign ticket to self but the option to Unusassigned remains 2026-09-03 17:10:15 -04:00
johnnyq
22921f5999 Add a Sub-line on the amount column in invoices for Balance of Partially paid invoices 2026-09-03 16:44:54 -04:00
johnnyq
e9f9dac656 Fix dashboard Income by Category excluding partial payments and revenues 2026-09-03 13:20:37 -04:00
johnnyq
a0fe18fff1 Fix Tax Summary double counting tax on partially paid invoices 2026-09-03 13:12:31 -04:00
johnnyq
feae4719da Fix Unpaid widget miscalculating partially paid invoices 2026-09-03 12:38:52 -04:00
johnnyq
9e8c4d002a Shorten Description, Text dark IP and make table smaller in IPs 2026-09-01 18:54:44 -04:00
Wrongecho
491d459619 Make client delete modal even clearer 2026-09-01 15:03:31 +00:00
Wrongecho
d21d4c7fc0 Hide option to delete ticket when it is closed as we treat closed tickets as immutable 2026-09-01 12:23:00 +00:00
johnnyq
b0c12ac89d More Syntax Fixes 2026-08-31 17:58:02 -04:00
johnnyq
bcdfab996c Fix approval Syntax 2026-08-31 17:52:44 -04:00
johnnyq
accc1948be Fix Color Class 2026-08-31 12:46:00 -04:00
johnnyq
c07c10c610 Fix Guest Approve Modal Offscreen issue, added guest header and spruced up the UI a bit 2026-08-31 12:22:55 -04:00
Wrongecho
d9cb0251b0 Small payment bugfixes 2026-08-30 23:15:16 +01:00
Wrongecho
16b46c1f1a Stripe Invoice Payments
- Add ability to refund Stripe payments rather than just deleting & manually refunding
- Limit refunding / deleting payments to Full/3 Sales&Financial permissions, as this is a delete rather than modify action
2026-08-30 22:54:01 +01:00
johnnyq
d98b8bc427 Add ps-3 to table columns that don't have a checkbox and made sure all table listings conform 2026-08-29 19:45:28 -04:00
johnnyq
20b406c5b0 Add margin bottom to the ticket filter 2026-08-29 17:27:41 -04:00