9 Commits

Author SHA1 Message Date
johnnyq
808c27a0fc AI stage 2: AI on tickets - Draft button in the ticket reply editor that writes the next reply from the ticket or from typed notes, for the reply type picked, leaving internal notes out of anything the client reads, with undo; richer ticket summary from the whole ticket with Save as a note, Copy and Again; Triage with AI suggesting a category and priority shown on the ticket to apply in part or dismiss, logged in the ticket history; automatic triage of new email, portal and API tickets with a Settings > Tickets mode of off, suggest or fill in and a new AI Triage cron job; Write up as a document drafting a knowledge base document from a ticket into the New Document form for the client or the company's own client record, linked to the ticket's asset, with passwords and keys left out as [removed]; new ticket features shown by name in AI Usage; database 3.3.9 adds config_ticket_ai_triage and ai_ticket_triage 2026-10-20 18:58:14 -04:00
johnnyq
80cdc4de41 AI stage 1: rebuild AI Providers and AI Models in the standard list pattern with ready-made provider kinds (OpenAI, Anthropic, Azure OpenAI, Gemini, Mistral, Groq, OpenRouter, Ollama, LM Studio, OpenAI-compatible), Test that lists a provider's models, Save anyway for a provider that doesn't answer, a first model offered when adding the first provider, the API key no longer shown, from-to audit lines, and delete confirms that say what goes and what stops; model window with suggested models, use case notes and Try it; new AI Usage page logging each request by feature, user, client, model, tokens, time and failure, with totals, views and filters, pruned with the audit log; passwords, keys, 2FA links and card numbers taken out before sending and put back in the answer, on by default per provider; new Use AI role permission; Reword shown only when set up and allowed, placed first in the toolbar, with its own instructions, undo in one step and a fixed endpoint on admin pages; ticket summary and template drafts purified; Settings overview warns while AI requests keep failing; database 3.3.8 adds provider kind and redact, ai_usage and module_ai 2026-10-20 17:45: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
ae28b9fc34 Rework ticket detail page: Details panel with click-to-change properties and status menu, plain-language reply types with who-sees-it line, slimmer header with billing in the menu, clearer modal titles and labels; fix billable wiped on edit by non-sales agents, email reply offered with no mail provider, timer JS error on resolved tickets, unshown due date 2026-10-10 12:50:59 -04:00
johnnyq
950d02d6ab Fix: Six ajax modals had dead JS - DOMContentLoaded had already fired before their scripts were injected. New itflowReady() helper restores jQuery .ready() semantics. Fixes notification pagination, asset OS autocomplete, contact auth toggle, AI ticket summary, AI document template generation 2026-08-28 19:41:00 -04:00
johnnyq
bbbfff7413 All Jquery removed replaced with stand JS and non jqery dependent libs 2026-08-14 17:28:06 -04:00
johnnyq
a084e37c39 Initial migration from AdminLTE 3 to 4, bootstrap 4 to 5 2026-08-14 13:22:11 -04:00
johnnyq
b3f959ac55 Use Short echo tags across the code 2026-07-28 18:47:52 -04: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