johnnyq
23a09f54fc
Reworked getFieldById to remove escaping and and reworked everything that uses the function to also escape, was causing double escaping in many places this standardizes the function
2026-08-01 15:33:48 -04:00
johnnyq
75028ba09a
Fix some Ticket History gaps
2026-08-01 14:33:37 -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
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
2e855f62c9
Require credential module access to view or share credentials
2026-07-28 00:40:33 -04:00
johnnyq
829527244e
Fix broken ajax
2026-07-27 20:25:48 -04:00
johnnyq
7a793cbbcc
Add more enforceClientAccess to agent ajax gets
2026-07-24 22:51:57 -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
2c09ce097c
More Client Enforcement in modals across the app
2026-07-16 13:10:02 -04:00
johnnyq
b1c57fc5c7
Feature: Add new js function to retrieve and Audit log Password reveals, still need to get the edit modals
2026-07-15 20:32:50 -04:00
johnnyq
21a23e79b0
Replace Function getSSL() with getSslCertificate()
2026-07-14 17:54:31 -04:00
johnnyq
9d540f4bfe
Replace Function customAction() with triggerCustomAction()
2026-07-14 17:43:55 -04:00
johnnyq
f1836c70cd
Replace Function logAction() with logAudit()
2026-07-14 17:35:23 -04:00
johnnyq
b57ddc0e5c
Replace Function sanitizeInput() with just escapeSql() and update all instances throughout
2026-07-14 17:17:50 -04:00
johnnyq
7bc47a58fe
Replace Function nullable_htmlentities() with just escapeHtml() and update all instances throughout
2026-07-14 17:10:45 -04:00
johnnyq
8da3a107fb
Rename plugins to libs and update all file references
2026-07-10 13:24:20 -04:00
johnnyq
c34e4f5ff0
EnforceClientAccess on Generating Guest Share Links
2026-07-03 12:27:46 -04:00
johnnyq
fe9e3274fe
Fix missing )
2026-07-01 11:11:30 -04:00
johnnyq
48c33ae1ab
Enforce Client Access and Role Access for AI Ticket Summary
2026-06-26 12:40:47 -04:00
johnnyq
63d86917ae
Generate Secure link: Use intval for item_expires and include HOUR in the insert query
2026-06-02 14:56:21 -04:00
wrongecho
c5d67cd4f9
Kanban - Enforce per-client perms (ajax)
2026-05-20 14:01:55 +01:00
johnnyq
e0f2fc1e1b
Enforce Client Access Restriction on ajax call get_totp_token_via_id
2026-05-04 15:48:40 -04:00
johnnyq
6122efc870
Updated all Queries related to invoice items to reflect their new tables quote, invoice, recurring invoice items
2026-03-07 19:35:44 -05:00
johnnyq
e44d571331
Allow Project template ticket templates to be Drag and drop sorted instead of manually typing in the order
2026-03-07 17:56:39 -05:00
johnnyq
a81edc122d
Add CSRF Checks on Agent ajax endpoints that would update / delete or add something to the db
2026-03-05 17:12:44 -05:00
johnnyq
1d06e6d9c8
Revert to old ajax-modal js code for now, Fix Assets not lising in create ticket.
2026-02-11 13:33:28 -05:00
johnnyq
f39e6ccbc9
Remove old ticket merge code, rename kanban_v2 to to just kanban
2026-02-03 17:20:19 -05:00
johnnyq
0a30300bde
replace all instances of mysqli_fetch_array with mysqli_fetch_assoc for better performance and memory usage
2026-01-14 17:30:23 -05:00
wrongecho
58bcb38617
Add task approval system (tidy)
2026-01-12 12:21:10 +00:00
wrongecho
77e4d2b566
Add task approval system
2026-01-09 17:14:44 +00:00
johnnyq
a79ce23ae5
Fix randomString() to generate cryptographically secure URL-safe tokens, reduced url keys to 32 Characters for performance and easy copy and paste and compatibility while still mainitaining ubreakable cryptographic keys
2025-12-18 14:24:53 -05:00
wrongecho
81550bd7a8
Ticket merge input - strip text
2025-12-03 15:13:52 +00:00
wrongecho
3813fbf8f2
When adding a domain, flag if no SOA record exists (prevents most sub-domains)
2025-11-06 10:41:52 +00:00
wrongecho
16001f8d4e
When adding a contact, flag duplicate or invalid e-mail addresses
2025-11-05 22:22:28 +00:00
johnnyq
a297b8d6d8
Migrate many admin Add modals to the new ajax-modal
2025-11-05 01:39:22 -05:00
johnnyq
9fcaf9f5cc
[Feature] Updated Invoice Ticket to include more details in the description, predefined along with optional Invoice Title, helper texts below qty and price to show how it gets its information, fixed ticket number not showing in ticket reply when adding ticket to an existing invoice. Add to Existing Invoice is default if open invoices exist, migrated many more ticket related modals to use ajax-modal
2025-11-04 17:48:21 -05:00
wrongecho
2850c35bdc
Flag duplicate clients/leads when using the client_add modal
2025-11-01 18:48:23 +00:00
johnnyq
edabc5c33f
rename /user/ to /agent/ and update links to use agent/ instead
2025-09-23 18:04:23 -04:00