johnnyq
6ecc27e7ca
Version ITFlow's scripts and stylesheets so browsers fetch the new copies after an update instead of needing a cache clear: add staticFileUrl() in functions/app.php, which adds ?v= and the file's modification time to the address, and send every script and stylesheet tag through it, libs included, with page-relative addresses changed to start from the site root; add js/tinymce_defaults.js to set TinyMCE's cache_suffix so the plugins, theme and skins it loads itself are versioned too; load ticket collision detection only when a ticket is shown, so a ticket that isn't found no longer throws a script error; add changelog entries and a CONTRIBUTING rule that new tags must use staticFileUrl()
2026-11-09 01:22:35 -05:00
johnnyq
f43d4a9127
Audit logs stage 2: record history and a client Audit Log for agents, scoped to their role; auditLogKinds() gives each kind the module that shows it, with new auditLogRoleSql() (everything for an admin, otherwise the kinds the role reads and never Denied), auditLogHistory(), auditLogHistoryUrl(), auditLogHistoryHtml(), auditLogHistoryCard() and auditLogHistorySection(); a History tab on contacts, assets, networks and projects, a History card on racks, documents and the ticket, project, document and license template pages, and a folded History on the file, expense, recurring expense and trip quick looks, each newest first with who, when and the IP for an admin, the latest 50 with how many more and a link to all of them; vendors, locations, licenses, services and products use the shared list, and vendorHistory(), locationHistory(), softwareHistory(), serviceHistory() and productHistory() are removed; new agent/audit_log.php in the client nav after Calendar, with search, who, type, action, one record by name, dates, sortable columns, paging and Changes, Deletions, Sign-ins and Data out views, plus the quick look and a link to Admin > Audit Logs for admins; the client overview's Recent activity is role-scoped and links there for everyone; Your account > Activity rebuilt as the same list over the agent's own entries; the document versions card is now called Versions; the admin audit log quick look links to itself absolutely so it opens from agent pages
2026-10-19 00:13:28 -04:00
johnnyq
bbb2456f0b
Projects modernization: projects list with Active/Mine/Overdue/Due soon/Stalled/Over budget/Ready to close/Completed/Archived/All views, ticket and task progress bars, time logged against budget with unbilled hours, due badges, manager changed in place, manager/client/created filters, bulk set manager, set due date, complete, reopen, archive, restore and delete, CSV/PDF export; project page with header actions, attention banners, tickets/tasks/time/due stat cards, Tickets/Tasks/Activity tabs, scope, details and team with hours; project quick look; New/Edit Project with client contact, start date, budget hours and template that can assign its tickets to the manager; Add tickets by picking or by number; add a project template's tickets to an existing project; template ticket subjects fill in [Client], [Project], [Month], [Quarter] and [Year]; project templates admin rework with ordered ticket templates, multi-add, duplicate, archive and restore; projects on the ticket page, client overview, dashboard, calendar, global search and client actions menu; New Ticket offers internal projects; tickets only join a project of their own client or an internal one; completing a project is checked on the server and completed projects can be reopened; deleting a project keeps its tickets; deleting a client deletes its projects; bulk ticket creation limits project choices to matching clients; project template reordering limited to admins; new manager notifications; new functions/project.php; removed project_link_closed_ticket.php; DB 2.8.6 adds project_start, project_budget_hours, project_contact_id and a ticket_project_id index, and cleans up orphaned projects, ticket project links and template links
2026-10-15 16:35:00 -04:00
johnnyq
64d938db7f
Tickets modernization: list redesign with Open/Mine/Unassigned/Needs reply/Waiting/Overdue/Scheduled/Closed/All views, whose-move indicator, SLA and due badges, in-row status/priority/agent pickers, collapsible filters and phone layout; kanban board redesign with drag-to-resolve/reopen rules and dark mode; new ticket quick look modal; New Ticket modal with asset/contact prefill and already-open warning; Edit Ticket modal rework; recurring tickets list rework with pause/resume, raise now, plain-language schedules, next-run preview and bulk actions, cron skips paused and raises missed runs once; shared ticket tables on asset/contact/location/vendor/project pages; Also open card on ticket detail; portal waiting-on-your-reply status; merge limited to same client; closed tickets no longer editable from modals or API; consistent access checks across ticket modals, post handlers and ajax endpoints; new functions/ticket.php helpers; removed recurring_ticket_model.php; DB 2.8.5 adds recurring_ticket_paused_at and cleans orphaned recurring ticket rows
2026-10-15 15:29:10 -04:00
johnnyq
ec205ca633
Agent picker for project managers and recurring tickets: pick the manager on the project page and projects list, and the agent on recurring tickets, inline like ticket assignees
2026-10-13 13:56:47 -04:00
johnnyq
9bfd26d57b
Add titles to icon-only buttons
...
- title on 294 icon-only buttons, named for what each one does
- aria-label on the 7 show-password buttons (title becomes the popover
header) and the portal mobile nav toggle
- Fix dead add-category button on products filter, credential bulk tag
button now preselects Credential, drop duplicate inner-icon titles
2026-10-08 17:12:21 -04:00
johnnyq
1666305a1c
UI: User Avatar pills for Assigned tickets, updated Icons for Ticket Mine and Unusassigned tickets
2026-09-29 18:02:05 -04:00
johnnyq
c07c10c610
Fix Guest Approve Modal Offscreen issue, added guest header and spruced up the UI a bit
2026-08-31 12:22:55 -04:00
johnnyq
bdab434707
Fix Margins in various areas
2026-08-15 13:34:38 -04:00
johnnyq
dc6b191eed
Update Font, Migrated away from JQUERY dependent libs: toastr to bootstrap5 toasts, daterangepicker to flatpickr, select2 to Tom Select, InputMask to IMask
2026-08-14 17:08:40 -04:00
johnnyq
a084e37c39
Initial migration from AdminLTE 3 to 4, bootstrap 4 to 5
2026-08-14 13:22:11 -04:00
johnnyq
108781db5b
Move more select * to column select for further optimization
2026-08-06 13:44:02 -04:00
johnnyq
b3744e9ed5
More sweeps to replace select * with actual returned column names dramatically reduces php memory usage and speeds up processing dramatically especially in the crons since they run all the time
2026-08-06 13:10:23 -04:00
johnnyq
b8c9d5b4cf
Query Optimization: Select only needed columns instead of SELECT * on looped queries
2026-08-06 12:59:43 -04:00
johnnyq
ddd9c2b56a
clientScopeSql sweep whicn now removed the extra unessesary client joins
2026-08-06 11:45:56 -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
b3f959ac55
Use Short echo tags across the code
2026-07-28 18:47:52 -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
38a042d435
Remove _details and use singular filename for certain objects
2026-07-15 00:12:27 -04:00