diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ba28b3e..2b7b162a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -33,6 +33,12 @@ This file documents all notable changes made to ITFlow. > Run `--update_db` after **every** ITFlow update from now on, not just this one — any release may > contain database changes. > +> On an install with a lot of ticket history the database update can take **a minute or more** — +> one step generates a guest URL key for every ticket that is missing one, row by row. Let it run +> to completion. If it is interrupted it resumes cleanly on the next run, but this is another +> reason not to attempt the update through the web interface, which is bound by PHP's execution +> time limit. +> > **Back up your database before upgrading.** - **A new cron job is required if you intend to use ticket SLAs.** `cron/ticket_sla.php` moves @@ -79,6 +85,17 @@ This file documents all notable changes made to ITFlow. onto every ticket the schedule raises - from the nightly cron run and from a forced run alike. Clearing the template leaves the recurring ticket's own subject and details untouched. The recurring ticket list shows which schedules carry a template and how many tasks it adds. +- **Recurring tickets now own their task list.** A linked ticket template fills the list in when + it is picked, but the list can then be edited per schedule, and it is those edits the run reads. + Existing schedules are backfilled from their template by the database update, so every recurring + ticket keeps raising exactly the tasks it raises today. +- **Agents can attach files to tickets from within the app**, both when raising a ticket and on a + reply. Attachments are emailed to the contact through the mail queue. A 10 MB ceiling applies to + each message as a whole; anything that does not fit stays on the ticket for the recipient to + download instead. +- Tasks can now be added and edited inline in the add-ticket and add-recurring-ticket modals. +- The older add-ticket modal has been retired — there is now a single add-ticket modal. +- Watchers have moved into the assignment section of the add-ticket modal. - Added **ticket reply API endpoints** for creating and reading replies. - Payments and Revenues have been combined into a single **Income** page, keeping all income in one place, with CSV export. Revenue not tied to an invoice can still be added there; payments @@ -164,6 +181,10 @@ This file documents all notable changes made to ITFlow. and the confirmation message, reading an unrelated record's id in place of the name. - Bulk-creating tickets from a template against multiple assets only added the template's tasks to the first ticket, and dropped each task's completion estimate. +- Deleting a ticket template now unlinks it from any recurring ticket that referenced it, instead + of leaving the schedule pointing at a template that no longer exists. +- Fixed the asset section in the recurring ticket modal when opened outside a client, and project + selection when raising a ticket. - Tickets raised by the nightly recurring schedule were created without a guest URL key, so the "View ticket" link in reply and task-approval emails for those tickets could not be opened. Cron now generates a key like every other path that raises a ticket, and existing tickets diff --git a/agent/modals/ticket/ticket_add.php b/agent/modals/ticket/ticket_add.php index 17401afa..df6e1c83 100644 --- a/agent/modals/ticket/ticket_add.php +++ b/agent/modals/ticket/ticket_add.php @@ -203,11 +203,6 @@ ob_start(); -
- - -
-
@@ -302,6 +297,11 @@ ob_start();
+
+ + +
+ diff --git a/agent/recurring_tickets.php b/agent/recurring_tickets.php index 8f1696e0..156f1cb6 100644 --- a/agent/recurring_tickets.php +++ b/agent/recurring_tickets.php @@ -315,12 +315,14 @@ $num_rows = mysqli_fetch_row(mysqli_query($mysqli, "SELECT FOUND_ROWS()")); data-modal-url="modals/recurring_ticket/recurring_ticket_edit.php?id="> + + + + - to each ticket raised, from template: "> - + + diff --git a/agent/ticket.php b/agent/ticket.php index d1d3dd3d..10e3b63c 100644 --- a/agent/ticket.php +++ b/agent/ticket.php @@ -599,8 +599,8 @@ if (isset($_GET['ticket_id'])) { [View][Download]= 3) { ?>'>[Delete] - - @@ -643,9 +643,7 @@ if (isset($_GET['ticket_id'])) {
- - Stored against this reply, or against the ticket itself if you submit without any text. A Public + Email reply sends them to the contact and any watchers.
@@ -839,8 +837,8 @@ if (isset($_GET['ticket_id'])) { [View][Download]= 3) { ?>'>[Delete] - -