Commit Graph

  • 0631c45040 Fix Cron Schedule and new directory includes created inside cron for the cron lock johnnyq 2026-07-30 17:06:07 -04:00
  • 119334ab71 Cron Fix johnnyq 2026-07-30 16:44:56 -04:00
  • 38e8edea19 Cron runs all jobs from a single dispatcher cron.php which should now be run every minute and all other cron jobs eliminated from cron johnnyq 2026-07-30 13:48:39 -04:00
  • 1005b73416 DB Structure Update johnnyq 2026-07-30 02:30:15 -04:00
  • 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 johnnyq 2026-07-30 02:18:30 -04:00
  • 3c8f812a16 Feature: On all export modals added Filter Tab and Selectable Columns tab with default selected, also you can now export to a PDF johnnyq 2026-07-30 00:46:15 -04:00
  • 729d22d19b Move Attachments to Assignment in new ticket get rid of help texts in reply for attachments and update changelog johnnyq 2026-07-29 18:39:43 -04:00
  • 2395a3ee16 Phase 2 of ticket attachements by agents johnnyq 2026-07-29 18:10:34 -04:00
  • 7c8c93c01c Feature allow agents to attach files to tickets in the app johnnyq 2026-07-29 17:58:04 -04:00
  • e74307eaea Feature: Add Dynamic Task editing in add ticket and add recurring ticket, recurring tickets now have their own task table as well johnnyq 2026-07-29 17:48:41 -04:00
  • 74a5359b80 Move Watchers into assignment in add ticket johnnyq 2026-07-29 17:28:57 -04:00
  • d01024931b Retire v1 Ticket and merge into 1 add ticket johnnyq 2026-07-29 17:24:55 -04:00
  • 8a092852cf Fixed Asset section in recurring ticket if global added project in add ticket johnnyq 2026-07-29 16:52:47 -04:00
  • 3296e48ac6 Unlink template from recurring ticket if template is deleted johnnyq 2026-07-29 16:36:47 -04:00
  • eaf3f5abd1 Add Badge next to recurring tickets with a template johnnyq 2026-07-29 16:28:17 -04:00
  • 75d8b4d37c Fix get FieldByID spots johnnyq 2026-07-29 16:16:32 -04:00
  • 7245ff0650 Fix Cron URL Key on recurring tickets johnnyq 2026-07-29 16:11:36 -04:00
  • bc64c9e3d1 Feature: Abiliry to assign Ticket Templates to Recurring Tickets johnnyq 2026-07-29 15:55:14 -04:00
  • 9c123c42d1 Update Changelog johnnyq 2026-07-29 14:34:59 -04:00
  • af9990ff13 Fix Contact Notes and Fix a few broken links johnnyq 2026-07-29 14:22:18 -04:00
  • a900b2cd74 Update DB Structure johnnyq 2026-07-29 14:15:15 -04:00
  • fc5cdeea82 Add UI Elements for Asset Notes similar to contact notes johnnyq 2026-07-29 14:13:55 -04:00
  • bb1f0d5489 SLA Fixes johnnyq 2026-07-29 13:50:00 -04:00
  • 566d74c15d Fix SLA resolve-time reporting, stale settings cache on save, and report N+1 johnnyq 2026-07-29 13:34:34 -04:00
  • 750c2e58cc Update DB Structure johnnyq 2026-07-29 13:23:02 -04:00
  • 9533da4053 Repair SLA verdicts missed by kanban/portal resolve; record first response on kanban resolve johnnyq 2026-07-29 13:21:37 -04:00
  • cc651c18be DB Structure Update johnnyq 2026-07-29 13:04:05 -04:00
  • 162a597da9 Add SLA pausing, SLA reports, SLA filtering and kanban SLA state (phase 3) johnnyq 2026-07-29 13:02:27 -04:00
  • e76b384606 Add ticket reply API endpoints johnnyq 2026-07-29 01:53:18 -04:00
  • 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 johnnyq 2026-07-29 00:49:31 -04:00
  • d5ed05017b Allow selecting client SLA assignments on client create/edit johnnyq 2026-07-29 00:21:13 -04:00
  • dd45a0f4f1 Update DB Structure johnnyq 2026-07-29 00:03:08 -04:00
  • d08ef6184a Add optional ticket SLAs johnnyq 2026-07-29 00:00:42 -04:00
  • 78ee38b39f Revert DB Update johnnyq 2026-07-28 22:08:01 -04:00
  • 1494d2cb5e Backed out of Refunds which still keeps the fix to properly set the invoice status when payment is deleted johnnyq 2026-07-28 22:03:35 -04:00
  • 31921ee99b Add Refunding capability along with Stripe Refunding johnnyq 2026-07-28 21:34:06 -04:00
  • b3f959ac55 Use Short echo tags across the code johnnyq 2026-07-28 18:47:52 -04:00
  • 0031438bce Update Contrubuting johnnyq 2026-07-28 18:12:42 -04:00
  • 556ab22c79 Enfoce Sales Permission Read on products export johnnyq 2026-07-28 17:53:13 -04:00
  • 78e7e1c49e Remove Normalize Scripts johnnyq 2026-07-28 17:46:39 -04:00
  • c5ff3e2a3f Normalize line endings to LF; add .gitattributes and .editorconfig johnnyq 2026-07-28 17:45:52 -04:00
  • 7f7880a4a7 Add Quick Payments view modal in Invoices johnnyq 2026-07-28 12:49:57 -04:00
  • 5f3a0bec46 Remove old payments and revenues and all ties to the pages as these are combined in income now johnnyq 2026-07-28 12:38:29 -04:00
  • c3896ba3d6 Add Export CSV to the new combined income page johnnyq 2026-07-28 12:26:50 -04:00
  • 7327ebb37c Stop parallel login attempts from bypassing the rate limits johnnyq 2026-07-28 01:01:43 -04:00
  • 2e855f62c9 Require credential module access to view or share credentials johnnyq 2026-07-28 00:40:33 -04:00
  • 4c65b8c561 Clear mail bodies after successful delivery johnnyq 2026-07-28 00:18:07 -04:00
  • c64c76c577 Rotate session ID on login and fix client portal Entra SSO johnnyq 2026-07-27 23:49:09 -04:00
  • 22e93589cb Fix share link view accounting and quote response handling johnnyq 2026-07-27 21:11:45 -04:00
  • f129311b2e Remove patch and update gitignore johnnyq 2026-07-27 21:02:13 -04:00
  • 70d165e8bc Claim shared item views atomically and log guest audit IPs johnnyq 2026-07-27 20:58:37 -04:00
  • b555a300bc Give the vault session key full entropy and guard empty-key credential writes johnnyq 2026-07-27 20:27:23 -04:00
  • 829527244e Fix broken ajax johnnyq 2026-07-27 20:25:48 -04:00
  • 50352fb779 Revert vault session key entropy change johnnyq 2026-07-27 20:13:46 -04:00
  • 8dcb45fc9d Remove Patch johnnyq 2026-07-27 20:00:42 -04:00
  • b18544c69b Give the vault session key full entropy and guard empty-key credential writes johnnyq 2026-07-27 20:00:09 -04:00
  • 8825661360 Dump new DB Structure johnnyq 2026-07-27 18:38:48 -04:00
  • a4fdced10f Rate limit 2FA code attempts and narrow the TOTP acceptance window johnnyq 2026-07-27 18:36:43 -04:00
  • 97490bef3b Security Fix in recurring invoices in cron johnnyq 2026-07-27 18:07:15 -04:00
  • a844d7b428 Adds a shared flock guard used by all five cron entry points, keyed per script and per install. Replaces the mail queue's own lock file, which was not atomic and could be deleted out from under a long run. Bounds the SMTP conversation so an unresponsive server cannot hold the lock. Recovers rows left at Sending by a run that died, which nothing previously picked up. johnnyq 2026-07-27 17:35:39 -04:00
  • 686fca99e1 Fix Possible duplicate emails in a race condition in mail queue johnnyq 2026-07-27 16:59:10 -04:00
  • 775e8f58f6 Fix Cents Calc johnnyq 2026-07-27 16:55:16 -04:00
  • 409d769eb7 Scope the cron lock per install so instances don't block each other Report an unopenable cron lock file instead of claiming cron is running johnnyq 2026-07-27 16:41:21 -04:00
  • cff416dd87 Remove Patch johnnyq 2026-07-27 15:22:46 -04:00
  • 65de8c35e6 Prevent duplicate Stripe payment bookings and overlapping cron runs johnnyq 2026-07-27 15:22:16 -04:00
  • 815802fb7c Gate Admin UI Modals to Admin johnnyq 2026-07-27 14:50:32 -04:00
  • 53842a50d2 Add URI Tabs to mail settings keeps the tab active upon saving johnnyq 2026-07-26 01:52:25 -04:00
  • 5fc2f93b38 Allow negative numbers in add expense johnnyq 2026-07-26 01:40:11 -04:00
  • 32be252261 Remove patch file johnnyq 2026-07-26 01:11:27 -04:00
  • 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 johnnyq 2026-07-26 01:10:52 -04:00
  • 276e84ad0b Expenses: Set Current Date in new expense johnnyq 2026-07-25 20:38:58 -04:00
  • cd34236716 Fix saved-payment setup Checkout: embedded_page ui_mode + attach existing Stripe customer johnnyq 2026-07-25 19:00:06 -04:00
  • a26ac2c4fc Fixed adding saved credit cards in stipe due to API change johnnyq 2026-07-25 18:47:13 -04:00
  • 497ea3b669 Centralize client portal access checks through contactCan() johnnyq 2026-07-25 17:55:30 -04:00
  • 887063394a Prevent client portal contacts from editing their own contact record johnnyq 2026-07-25 17:28:57 -04:00
  • 04bf3c234f Read API credential decrypt password from body instead of query string johnnyq 2026-07-25 17:08:22 -04:00
  • e6daf00528 Fix some broken API calls after RBAC update johnnyq 2026-07-25 16:59:03 -04:00
  • c509b7f693 Add user-based RBAC for API keys johnnyq 2026-07-25 16:50:58 -04:00
  • 8d46e2a7db Fix Client Permission overides to include deny allow list in projects prohect and edit ticket johnnyq 2026-07-25 13:28:47 -04:00
  • 3756561458 Feature: Add Deny Client Access to Client Access Permssions - BREAKS UI, MUST UPDATE DB USING php scripts/cli_update.php --db_update johnnyq 2026-07-25 13:22:52 -04:00
  • ff4b69b511 Client Enforcement via function on client edit instad of in sql query johnnyq 2026-07-25 00:35:47 -04:00
  • 761b2a7af4 Module permissions modal enforcement sweep to match its post counterpart johnnyq 2026-07-25 00:28:42 -04:00
  • 7a793cbbcc Add more enforceClientAccess to agent ajax gets johnnyq 2026-07-24 22:51:57 -04:00
  • 113ef4b9a4 Add more enforceClientAccess johnnyq 2026-07-24 22:49:18 -04:00
  • 3524010d7a Add enforceClientAccess to 4 bulk modals initially missing johnnyq 2026-07-24 22:06:42 -04:00
  • 8993bce53f Force No Indexes of empty directories even if enabled using .htaccess in uploads johnnyq 2026-07-24 20:52:35 -04:00
  • 8813b2c066 Use imapEngine lib for testing imap connection johnnyq 2026-07-24 18:56:16 -04:00
  • 5c4805b822 Neutralize CSV formula injection in generated exports using the new created escapeCsvFormula Function johnnyq 2026-07-24 18:12:45 -04:00
  • 28f1a965b8 Remove dead code johnnyq 2026-07-24 17:33:09 -04:00
  • 565aff35f6 Set SameSite=Lax on the session cookie johnnyq 2026-07-24 14:09:52 -04:00
  • 3549c2ef2a Harden CSRF handling and session cookies johnnyq 2026-07-24 14:06:04 -04:00
  • 8afc5aea89 Typo fix johnnyq 2026-07-24 13:45:52 -04:00
  • 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 johnnyq 2026-07-24 13:40:37 -04:00
  • dd358da65d Update missing CSRF endpoint checks missed update_db johnnyq 2026-07-24 13:22:17 -04:00
  • 91a1676e89 Update missing CSRF endpoint checks johnnyq 2026-07-24 13:16:51 -04:00
  • e7698f15bd Make better use of formatAddress function for clients listing johnnyq 2026-07-24 12:22:15 -04:00
  • c7b34fe107 Remove leftover getFallBack in client pdf export in favor of ?: '-' johnnyq 2026-07-23 18:29:11 -04:00
  • 5846119ec9 remove duplicate formatAddress johnnyq 2026-07-23 18:16:57 -04:00
  • 41b118ab87 Add formatAddress function and replace all addresses with it johnnyq 2026-07-23 18:10:39 -04:00
  • 9c65644adc Update the rest of the PHP functions to use camelCase johnnyq 2026-07-23 17:39:06 -04:00