From b7db24aa529b42fac0903663b7596d7769979168 Mon Sep 17 00:00:00 2001 From: aydreeihn <adriane@enhancesoft.com> Date: Wed, 16 May 2018 14:05:52 -0500 Subject: [PATCH] Creating Tasks/Tickets From Thread Entry Fixes: - say created from thread entry instead of created from thread - make sure that links to thread entry do not open in new window - make sure if default help topic is selected, message data carries over - make sure if issue details are not included for a help topic form, we make sure there is a message before trying to get attachments for one - do not pass in an object to session array. use id and do lookup after instead --- include/ajax.tasks.php | 4 ++-- include/ajax.tickets.php | 4 ++-- include/class.ticket.php | 18 +++++++++--------- include/staff/ticket-open.inc.php | 10 +++++----- scp/js/thread.js | 3 +++ 5 files changed, 21 insertions(+), 18 deletions(-) diff --git a/include/ajax.tasks.php b/include/ajax.tasks.php index 15a623c4d..19016e20c 100644 --- a/include/ajax.tasks.php +++ b/include/ajax.tasks.php @@ -126,7 +126,7 @@ class TasksAjaxAPI extends AjaxController { Format::datetime($_SESSION[':form-data']['timestamp'])); $note = array( - 'title' => __('Task Created From Thread'), + 'title' => __('Task Created From Thread Entry'), 'note' => __('Task ' . $taskLink . '<br /> Thread Entry ID: ' . $entryLink) ); @@ -139,7 +139,7 @@ class TasksAjaxAPI extends AjaxController { $originalTask->getNumber()); $note = array( - 'title' => __('Task Created From Thread'), + 'title' => __('Task Created From Thread Entry'), 'note' => __('This Task was created from Task ' . $taskLink)); $task->postNote($note, $errors, $thisstaff); diff --git a/include/ajax.tickets.php b/include/ajax.tickets.php index 5377996c6..0a7cf21bc 100644 --- a/include/ajax.tickets.php +++ b/include/ajax.tickets.php @@ -1362,7 +1362,7 @@ function refer($tid, $target=null) { Format::datetime($_SESSION[':form-data']['timestamp'])); $note = array( - 'title' => __('Task Created From Thread'), + 'title' => __('Task Created From Thread Entry'), 'body' => __('Task ' . $taskLink . '<br /> Thread Entry ID: ' . $entryLink) ); @@ -1375,7 +1375,7 @@ function refer($tid, $target=null) { $ticket->getNumber()); $note = array( - 'title' => __('Task Created From Thread'), + 'title' => __('Task Created From Thread Entry'), 'note' => __('This Task was created from Ticket ' . $ticketLink)); $task->postNote($note, $errors, $thisstaff); diff --git a/include/class.ticket.php b/include/class.ticket.php index f28f4e8e1..664ba874a 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -3887,20 +3887,19 @@ implements RestrictedAccess, Threadable, Searchable { } //check to see if ticket was created from a thread - if ($_SESSION[':form-data']['ticket'] || $_SESSION[':form-data']['task']) { - $oldTicket = $_SESSION[':form-data']['ticket']; - $oldTask = $_SESSION[':form-data']['task']; + if ($_SESSION[':form-data']['ticketId'] || $_SESSION[':form-data']['taskId']) { + $oldTicket = Ticket::lookup($_SESSION[':form-data']['ticketId']); + $oldTask = Task::lookup($_SESSION[':form-data']['taskId']); //add internal note to new ticket. //New ticket should have link to old task/ticket: - $link = sprintf('<a href="%s.php?id=%d#entry-%d"><b>#%s</b></a>', + $link = sprintf('<a href="%s.php?id=%d"><b>#%s</b></a>', $oldTicket ? 'tickets' : 'tasks', $oldTicket ? $oldTicket->getId() : $oldTask->getId(), - $_SESSION[':form-data']['eid'], $oldTicket ? $oldTicket->getNumber() : $oldTask->getNumber()); $note = array( - 'title' => __('Ticket Created From Thread'), + 'title' => __('Ticket Created From Thread Entry'), 'body' => sprintf(__('This Ticket was created from %s '. $link), $oldTicket ? 'Ticket' : 'Task') ); @@ -3919,12 +3918,12 @@ implements RestrictedAccess, Threadable, Searchable { Format::datetime($_SESSION[':form-data']['timestamp'])); $ticketNote = array( - 'title' => __('Ticket Created From Thread'), + 'title' => __('Ticket Created From Thread Entry'), 'body' => __('Ticket ' . $ticketLink). '<br /> Thread Entry ID: ' . $entryLink); $taskNote = array( - 'title' => __('Ticket Created From Thread'), + 'title' => __('Ticket Created From Thread Entry'), 'note' => __('Ticket ' . $ticketLink). '<br /> Thread Entry ID: ' . $entryLink); @@ -4142,7 +4141,8 @@ implements RestrictedAccess, Threadable, Searchable { $attachments = array(); $message = $ticket->getLastMessage(); if ($cfg->emailAttachments()) { - $attachments = $message->getAttachments(); + if ($message) + $attachments = $message->getAttachments(); if ($response && $response->getNumAttachments()) $attachments = $attachments->merge($response->getAttachments()); } diff --git a/include/staff/ticket-open.inc.php b/include/staff/ticket-open.inc.php index 277714d5b..17b9891b9 100644 --- a/include/staff/ticket-open.inc.php +++ b/include/staff/ticket-open.inc.php @@ -10,13 +10,13 @@ $info=Format::htmlchars(($errors && $_POST)?$_POST:$info); // Use thread entry to seed the ticket if (!$user && $_GET['tid'] && ($entry = ThreadEntry::lookup($_GET['tid']))) { if ($entry->getThread()->getObjectType() == 'T') - $oldTicket = Ticket::lookup($entry->getThread()->getObjectId()); + $oldTicketId = $entry->getThread()->getObjectId(); if ($entry->getThread()->getObjectType() == 'A') - $oldTask = Task::lookup($entry->getThread()->getObjectId()); + $oldTaskId = $entry->getThread()->getObjectId(); $_SESSION[':form-data']['message'] = Format::htmlchars($entry->getBody()); - $_SESSION[':form-data']['ticket'] = $oldTicket; - $_SESSION[':form-data']['task'] = $oldTask; + $_SESSION[':form-data']['ticketId'] = $oldTicketId; + $_SESSION[':form-data']['taskId'] = $oldTaskId; $_SESSION[':form-data']['eid'] = $entry->getId(); $_SESSION[':form-data']['timestamp'] = $entry->getCreateDate(); @@ -349,7 +349,7 @@ if ($_POST) <tbody id="dynamic-form"> <?php foreach ($forms as $form) { - print $form->getForm()->getMedia(); + print $form->getForm($_SESSION[':form-data'])->getMedia(); include(STAFFINC_DIR . 'templates/dynamic-form.tmpl.php'); } ?> diff --git a/scp/js/thread.js b/scp/js/thread.js index 0b4ebe502..bb67ca4ce 100644 --- a/scp/js/thread.js +++ b/scp/js/thread.js @@ -159,7 +159,10 @@ var thread = { } // Open thread body links in a new tab/window + // unless referring to thread entry on current page $('div.thread-body a', $container).each(function() { + var str = this.toString(); + if (!str.includes('#entry-')) $(this).attr('target', '_blank'); }); -- GitLab