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
|
41b118ab87
|
Add formatAddress function and replace all addresses with it
|
2026-07-23 18:10:39 -04:00 |
|
johnnyq
|
9d540f4bfe
|
Replace Function customAction() with triggerCustomAction()
|
2026-07-14 17:43:55 -04:00 |
|
johnnyq
|
b8873039a4
|
Rename Functions: flash_alert, sanitizeFilename and display_folder_options using camelCase instead to match other custom php functions
|
2026-07-14 17:41:41 -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 |
|
wrongecho
|
7211426292
|
Invoices - Secure date/frequency input handling
|
2026-05-20 13:32:21 +01:00 |
|
johnnyq
|
6d2cb0aea3
|
Split out item edits into seperate posts and modals for editing invoice, quote and recurring invoice items
|
2026-03-07 12:12:27 -05:00 |
|
johnnyq
|
202f55c2ff
|
invoices: remove client_id post from edit and link modals as it should get the client_id in post, enforceClientAccess
|
2026-03-06 17:53:44 -05:00 |
|
johnnyq
|
4440581f14
|
Invoice: Add missing CSRF checks and missing permissions
|
2026-03-01 22:22:21 -05:00 |
|
johnnyq
|
3ed2582a9b
|
Remove TaxID from packing slip
|
2026-01-15 14:09:03 -05:00 |
|
wrongecho
|
5a274061f3
|
Invoice - add a basic picking/packaging slip
|
2026-01-15 13:58:53 +00:00 |
|
wrongecho
|
7322bd66df
|
Invoices - Show agent names in history
|
2026-01-15 10:19:56 +00: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
|
88a29b7599
|
Bugfix: Mail queue loop not sending invoices to all billing contacts
|
2026-01-09 16:56:11 +00:00 |
|
johnnyq
|
ad5710b1d8
|
Fix Invoice CSV Exporting
|
2025-12-18 20:00:56 -05: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 |
|
johnnyq
|
e1a579387f
|
Convert all Import / Export Modals to Ajax and a few other lingering modals that were not converted yet
|
2025-12-02 15:04:05 -05:00 |
|
johnnyq
|
99e2487d2b
|
Fix dupe race condition with ticket, invoice, quote, project, recurring ticket numbering when being created in parallel Atomically update and get the next ticket number in one SQL query everywhere.
|
2025-11-28 14:14:46 -05:00 |
|
wrongecho
|
0347382a34
|
Invoices - Allow specifying discount during creation
|
2025-11-27 09:53:35 +00:00 |
|
johnnyq
|
26bb430d6e
|
Seperate out posts into payment, invoice and recurring invoice instead of them all being under invoice post file
|
2025-10-29 16:18:32 -04:00 |
|
johnnyq
|
0cacf83ae5
|
Fix Sending Email when Forcing a Recurring Invoice into an Invoice
|
2025-10-22 16:28:53 -04:00 |
|
johnnyq
|
00f5198bed
|
Update appNotidfy links to use Absolute paths, updated gitignore
|
2025-09-25 13:31:16 -04:00 |
|
johnnyq
|
edabc5c33f
|
rename /user/ to /agent/ and update links to use agent/ instead
|
2025-09-23 18:04:23 -04:00 |
|