johnnyq
4fec57709a
Recurring Expense: Fix edit not keeping client
2026-08-01 12:09:39 -04:00
johnnyq
f2d5ac4a29
Feature: Calendars are now exportable shareable so Third Party Calendar services can read them, also added recoccurence to calendar, and all day along with sperating the time fields and click in a box to add calendar event is possible
2026-07-30 02:18:30 -04:00
johnnyq
3c8f812a16
Feature: On all export modals added Filter Tab and Selectable Columns tab with default selected, also you can now export to a PDF
2026-07-30 00:46:15 -04:00
johnnyq
729d22d19b
Move Attachments to Assignment in new ticket get rid of help texts in reply for attachments and update changelog
2026-07-29 18:39:43 -04:00
johnnyq
2395a3ee16
Phase 2 of ticket attachements by agents
2026-07-29 18:10:34 -04:00
johnnyq
7c8c93c01c
Feature allow agents to attach files to tickets in the app
2026-07-29 17:58:04 -04:00
johnnyq
e74307eaea
Feature: Add Dynamic Task editing in add ticket and add recurring ticket, recurring tickets now have their own task table as well
2026-07-29 17:48:41 -04:00
johnnyq
74a5359b80
Move Watchers into assignment in add ticket
2026-07-29 17:28:57 -04:00
johnnyq
d01024931b
Retire v1 Ticket and merge into 1 add ticket
2026-07-29 17:24:55 -04:00
johnnyq
8a092852cf
Fixed Asset section in recurring ticket if global added project in add ticket
2026-07-29 16:52:47 -04:00
johnnyq
eaf3f5abd1
Add Badge next to recurring tickets with a template
2026-07-29 16:28:17 -04:00
johnnyq
bc64c9e3d1
Feature: Abiliry to assign Ticket Templates to Recurring Tickets
2026-07-29 15:55:14 -04:00
johnnyq
af9990ff13
Fix Contact Notes and Fix a few broken links
2026-07-29 14:22:18 -04:00
johnnyq
fc5cdeea82
Add UI Elements for Asset Notes similar to contact notes
2026-07-29 14:13:55 -04:00
johnnyq
566d74c15d
Fix SLA resolve-time reporting, stale settings cache on save, and report N+1
2026-07-29 13:34:34 -04:00
johnnyq
9533da4053
Repair SLA verdicts missed by kanban/portal resolve; record first response on kanban resolve
2026-07-29 13:21:37 -04:00
johnnyq
162a597da9
Add SLA pausing, SLA reports, SLA filtering and kanban SLA state (phase 3)
...
Statuses can be flagged to pause the resolution clock; sla_history records the intervals a ticket's clock actually ran and the deadline is re-based on remaining budget when it resumes. Adds SLA Summary and SLA by Client reports, an SLA state filter on the ticket list, SLA colouring on kanban cards, and an Urgent column on the Tickets by Client report. DB update 2.5.1. Also fixes resolution SLA verdicts being skipped when resolving via kanban or the client portal.
2026-07-29 13:02:27 -04:00
johnnyq
07c73a6a04
Add Urgent Priority, move Per Client SLA Settings to notes tab in client add / edit modal remove unnessesary sla admin setting for client overide
2026-07-29 00:49:31 -04:00
johnnyq
d5ed05017b
Allow selecting client SLA assignments on client create/edit
2026-07-29 00:21:13 -04:00
johnnyq
d08ef6184a
Add optional ticket SLAs
...
Response/resolution targets stamped at creation from per-client/priority assignments, business-hours due date math, warn/breach alert stages via cron/ticket_sla.php, ticket list coloring, per-ticket SLA override, admin page for plans/assignments/business hours. DB update 2.5.0. No behavior change unless SLAs are assigned. Bulk reply now only counts Public replies as first response.
2026-07-29 00:00:42 -04:00
johnnyq
1494d2cb5e
Backed out of Refunds which still keeps the fix to properly set the invoice status when payment is deleted
2026-07-28 22:03:35 -04:00
johnnyq
31921ee99b
Add Refunding capability along with Stripe Refunding
2026-07-28 21:34:06 -04:00
johnnyq
b3f959ac55
Use Short echo tags across the code
2026-07-28 18:47:52 -04:00
johnnyq
556ab22c79
Enfoce Sales Permission Read on products export
2026-07-28 17:53:13 -04:00
johnnyq
c5ff3e2a3f
Normalize line endings to LF; add .gitattributes and .editorconfig
2026-07-28 17:45:52 -04:00
johnnyq
7f7880a4a7
Add Quick Payments view modal in Invoices
2026-07-28 12:49:57 -04:00
johnnyq
5f3a0bec46
Remove old payments and revenues and all ties to the pages as these are combined in income now
2026-07-28 12:38:29 -04:00
johnnyq
c3896ba3d6
Add Export CSV to the new combined income page
2026-07-28 12:26:50 -04:00
johnnyq
2e855f62c9
Require credential module access to view or share credentials
2026-07-28 00:40:33 -04:00
johnnyq
22e93589cb
Fix share link view accounting and quote response handling
2026-07-27 21:11:45 -04:00
johnnyq
829527244e
Fix broken ajax
2026-07-27 20:25:48 -04:00
johnnyq
a4fdced10f
Rate limit 2FA code attempts and narrow the TOTP acceptance window
2026-07-27 18:36:43 -04:00
johnnyq
97490bef3b
Security Fix in recurring invoices in cron
2026-07-27 18:07:15 -04:00
johnnyq
5fc2f93b38
Allow negative numbers in add expense
2026-07-26 01:40:11 -04:00
johnnyq
04014da21f
Combined Payments and Revenues as one View called income keeps all income in one place and still can add revenue not related to invoice
2026-07-26 01:10:52 -04:00
johnnyq
276e84ad0b
Expenses: Set Current Date in new expense
2026-07-25 20:38:58 -04:00
johnnyq
c509b7f693
Add user-based RBAC for API keys
...
API keys now run as a user and inherit that user's module, operation, and client permissions. Drops per-key client scoping and removes existing keys (must be recreated). Adds an edit modal to change a key's user.
2026-07-25 16:50:58 -04:00
johnnyq
8d46e2a7db
Fix Client Permission overides to include deny allow list in projects prohect and edit ticket
2026-07-25 13:28:47 -04:00
johnnyq
ff4b69b511
Client Enforcement via function on client edit instad of in sql query
2026-07-25 00:35:47 -04:00
johnnyq
761b2a7af4
Module permissions modal enforcement sweep to match its post counterpart
2026-07-25 00:28:42 -04:00
johnnyq
7a793cbbcc
Add more enforceClientAccess to agent ajax gets
2026-07-24 22:51:57 -04:00
johnnyq
113ef4b9a4
Add more enforceClientAccess
2026-07-24 22:49:18 -04:00
johnnyq
3524010d7a
Add enforceClientAccess to 4 bulk modals initially missing
2026-07-24 22:06:42 -04:00
johnnyq
5c4805b822
Neutralize CSV formula injection in generated exports using the new created escapeCsvFormula Function
2026-07-24 18:12:45 -04:00
johnnyq
af51c4316f
Updated validateCSRFToken to automatically grab and compare get or post csrf token no longer need to pass an argument to the function which fixed the issue if no hash was present
2026-07-24 13:40:37 -04:00
johnnyq
91a1676e89
Update missing CSRF endpoint checks
2026-07-24 13:16:51 -04:00
johnnyq
e7698f15bd
Make better use of formatAddress function for clients listing
2026-07-24 12:22:15 -04:00
johnnyq
c7b34fe107
Remove leftover getFallBack in client pdf export in favor of ?: '-'
2026-07-23 18:29:11 -04:00
johnnyq
41b118ab87
Add formatAddress function and replace all addresses with it
2026-07-23 18:10:39 -04:00
johnnyq
9c65644adc
Update the rest of the PHP functions to use camelCase
2026-07-23 17:39:06 -04:00