44 Commits

Author SHA1 Message Date
johnnyq
7ec4f4ff4f Add CSV Escaping to the Sample Export CSV Files 2026-01-17 15:13:42 -05:00
johnnyq
7f928533df Convert all Import / Export Modals to Ajax and a few other lingering modals that were not converted yet 2026-01-17 15:13:41 -05:00
johnnyq
941ed96d23 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. 2026-01-17 15:13:38 -05:00
johnnyq
d6591ad85d Fix dupe ticket numbering when being created in parallel Atomically update and get the next ticket number in one SQL query. 2026-01-17 15:13:38 -05:00
johnnyq
d43e7ded81 Updated bulk action js to pass the checkboxe names into the get array this allows the use of multiple checkbox name arrays to be passed at once instead of just selected_ids had to update each bulk model from selected_ids to to the array that was passed. This was important so we could mix files and documents together 2026-01-17 15:13:37 -05:00
wrongecho
861dc65f9c Invoices - Allow specifying discount during creation 2026-01-17 15:13:37 -05:00
johnnyq
9c28ee4bf1 Add back deleted client edit in post 2026-01-17 15:13:35 -05:00
johnnyq
941b589a88 Add function copyDirectory so when creating a document from a template copy the document_template folder to documents folder and update links 2026-01-17 15:13:35 -05:00
johnnyq
8013cf09be Also Delete Documents/Document_id folder during bulk delete 2026-01-17 15:13:34 -05:00
johnnyq
8478a3f12f use saveBase64Image function for edit document as well and when document is deleted, delete the corresponding folder uploads/documents/document_id 2026-01-17 15:13:34 -05:00
johnnyq
37680e5f07 Add Exclude uploads/documents to gitignore 2026-01-17 15:13:34 -05:00
johnnyq
423584177e Implemented saveBase64Images() to convert base64 <img> tags into real files stored under /uploads/<module>/<id>/ with secure filenames. Added wrapper functions and updated document creation to use processed image paths. 2026-01-17 15:13:34 -05:00
johnnyq
de79ffd87c Update Add Client to use prepared statments 2026-01-17 15:13:33 -05:00
johnnyq
2466c6b99e Add TOTP Secret to Export / Offboard Client Documentation PDF 2026-01-17 15:13:29 -05:00
johnnyq
3e62fc8118 Afer Ticket Merge Redirect to new ticket Details 2026-01-17 15:13:29 -05:00
johnnyq
5989aee602 Fix Mail Queue link when sending a test email, updated the quote send email wording to Quote sent 2026-01-17 15:13:28 -05:00
johnnyq
0f2edbe982 [Feature] Added Asset Tags 2026-01-17 15:13:27 -05:00
johnnyq
723a423b06 After ticket Creation Redirect to ticket details with Client Side bar and Top bar, Remove Currency code from Client Add / Edit defaults to company currency for now 2025-11-07 14:27:22 -05:00
johnnyq
44de049f3b Remove image optimization on upload for now as this will later be added a cron task 2025-11-06 11:44:22 -05:00
johnnyq
0cf1e338c2 Added data-bulk to the ajax modal to allow for bulk GET collection of selected ids that have a class of bulk-select, converted expense and client bulk modals to use the the new ajax-modal 2025-11-06 11:26:08 -05:00
wrongecho
49d3dbad9a Fix client delete 2025-11-05 10:24:39 +00: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
johnnyq
52c67f4139 Remove unused budget code 2025-10-30 14:29:51 -04:00
johnnyq
13ea48bff8 Seperate out recurring expenses and expenses into their own post file 2025-10-29 16:21:56 -04: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
82da54740f Moved recurring ticket posts to its own post file 2025-10-29 15:58:04 -04:00
johnnyq
e02b10d12a [Feature] Added Billable column in recurring ticket list view along with bulk actions to set priority, agent, billable status, category and next run date 2025-10-29 15:51:14 -04:00
johnnyq
04bae8dc37 Add Archive and Delete buttons to document details along with button titles to state what the button does, also added a from var to fix redirect behavior if deleting from document details go back to documents listing 2025-10-24 14:46:09 -04:00
johnnyq
0cacf83ae5 Fix Sending Email when Forcing a Recurring Invoice into an Invoice 2025-10-22 16:28:53 -04:00
johnnyq
303f9174c9 Added Bulk Create Tickets for Clients 2025-10-22 14:50:50 -04:00
wrongecho
93bb5db019 typo 2025-10-15 21:56:21 +01:00
wrongecho
65ff008ccf Bugfix - Email not including ticket guest key 2025-10-15 15:36:07 +01:00
wrongecho
079b0d5024 Asset import - allow importing notes 2025-10-15 10:32:16 +01:00
wrongecho
0bb7d24e07 Allow importing TOTP credential info 2025-10-15 10:18:44 +01:00
wrongecho
b7a9f9ea38 When exporting credential info, include the TOTP secret 2025-10-15 10:12:14 +01:00
wrongecho
9a5a4be64a When archiving a client, cancel recurring invoices 2025-10-15 09:20:08 +01:00
wrongecho
db7f8501d0 When archiving a client, cancel recurring invoices 2025-10-15 09:18:53 +01:00
johnnyq
e3e7c2e38b Add Signature in ticket reply POST dont add a signature if Internal 2025-10-08 14:48:13 -04:00
johnnyq
3fcbe440d3 Fix Missing Missing Country code in Guest View Ticket 2025-10-07 12:34:26 -04:00
johnnyq
32bfd298a1 Added Project Edit Function for Ticket 2025-10-03 17:37:25 -04:00
johnnyq
00f5198bed Update appNotidfy links to use Absolute paths, updated gitignore 2025-09-25 13:31:16 -04:00
johnnyq
92209c7125 Updated edit ticket asset to new ajax-modal and add additonal assets field 2025-09-24 14:51:34 -04:00
johnnyq
dba08714bf moved user preferences and user settings into /agent/user/ directory 2025-09-23 19:17:14 -04:00
johnnyq
edabc5c33f rename /user/ to /agent/ and update links to use agent/ instead 2025-09-23 18:04:23 -04:00