From ef98afc6b4ee6117f6a8af8bc3fd30480f2f1862 Mon Sep 17 00:00:00 2001 From: Peter Rotich <peter@osticket.com> Date: Tue, 1 Mar 2016 07:58:49 +0000 Subject: [PATCH] Ticket Source Unify ticket source and preserve original (e.g Wed) source on ticket edit. --- include/class.ticket.php | 10 ++++++++++ include/staff/ticket-edit.inc.php | 17 +++++++++++------ include/staff/ticket-open.inc.php | 4 +++- 3 files changed, 24 insertions(+), 7 deletions(-) diff --git a/include/class.ticket.php b/include/class.ticket.php index a58449fac..b2a225194 100644 --- a/include/class.ticket.php +++ b/include/class.ticket.php @@ -145,6 +145,11 @@ class TicketModel extends VerySimpleModel { /* @trans */ 'Phone', 'Email' => /* @trans */ 'Email', + + 'Web' => + /* @trans */ 'Web', + 'API' => + /* @trans */ 'API', 'Other' => /* @trans */ 'Other', ); @@ -2746,6 +2751,11 @@ implements RestrictedAccess, Threadable { $errors['duedate']=__('Due date must be in the future'); } + if (isset($vars['source']) // Check ticket source if provided + && !array_key_exists($vars['source'], Ticket::getSources())) + $errors['source'] = sprintf( __('Invalid source given - %s'), + Format::htmlchars($vars['source'])); + // Validate dynamic meta-data $forms = DynamicFormEntry::forTicket($this->getId()); foreach ($forms as $form) { diff --git a/include/staff/ticket-edit.inc.php b/include/staff/ticket-edit.inc.php index c79f36d60..37697ea8c 100644 --- a/include/staff/ticket-edit.inc.php +++ b/include/staff/ticket-edit.inc.php @@ -70,12 +70,17 @@ if ($_POST) </td> <td> <select name="source"> - <option value="" selected >— <?php echo __('Select Source');?> —</option> - <option value="Phone" <?php echo ($info['source']=='Phone')?'selected="selected"':''; ?>><?php echo __('Phone');?></option> - <option value="Email" <?php echo ($info['source']=='Email')?'selected="selected"':''; ?>><?php echo __('Email');?></option> - <option value="Web" <?php echo ($info['source']=='Web')?'selected="selected"':''; ?>><?php echo __('Web');?></option> - <option value="API" <?php echo ($info['source']=='API')?'selected="selected"':''; ?>><?php echo __('API');?></option> - <option value="Other" <?php echo ($info['source']=='Other')?'selected="selected"':''; ?>><?php echo __('Other');?></option> + <option value="" selected >— <?php + echo __('Select Source');?> —</option> + <?php + $source = $info['source'] ?: 'Phone'; + foreach (Ticket::getSources() as $k => $v) { + echo sprintf('<option value="%s" %s>%s</option>', + $k, + ($source == $k ) ? 'selected="selected"' : '', + $v); + } + ?> </select> <font class="error"><b>*</b> <?php echo $errors['source']; ?></font> </td> diff --git a/include/staff/ticket-open.inc.php b/include/staff/ticket-open.inc.php index b8330a0f5..c7680704f 100644 --- a/include/staff/ticket-open.inc.php +++ b/include/staff/ticket-open.inc.php @@ -131,7 +131,9 @@ if ($_POST) <select name="source"> <?php $source = $info['source'] ?: 'Phone'; - foreach (Ticket::getSources() as $k => $v) + $sources = Ticket::getSources(); + unset($sources['Web'], $sources['API']); + foreach ($sources as $k => $v) echo sprintf('<option value="%s" %s>%s</option>', $k, ($source == $k ) ? 'selected="selected"' : '', -- GitLab