diff --git a/include/class.ticket.php b/include/class.ticket.php index a58449fac3e6a5a43c243a15f2cdd6c9c9ac2611..b2a225194708ff9bb1b43efe72f1dd9840885679 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 c79f36d60285e0732dc46387aa1aea406c9502b6..37697ea8c5059688306ceef2b077df57e1f1bf13 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 b8330a0f53b997a34bc54aa818cc16f16ed9bbde..c7680704fe2c8e8f9b6ec8d2100cb5592023b0cf 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"' : '',