Skip to content
Snippets Groups Projects
Commit 7ef1a378 authored by Jared Hancock's avatar Jared Hancock
Browse files

Fix regression saving ticket priority

parent 5b4b13f3
No related branches found
No related tags found
No related merge requests found
...@@ -356,6 +356,7 @@ class DynamicFormEntry extends VerySimpleModel { ...@@ -356,6 +356,7 @@ class DynamicFormEntry extends VerySimpleModel {
function setAnswer($name, $value, $id=false) { function setAnswer($name, $value, $id=false) {
foreach ($this->getAnswers() as $ans) { foreach ($this->getAnswers() as $ans) {
if ($ans->getField()->get('name') == $name) { if ($ans->getField()->get('name') == $name) {
$ans->getField()->reset();
$ans->set('value', $value); $ans->set('value', $value);
if ($id !== false) if ($id !== false)
$ans->set('value_id', $id); $ans->set('value_id', $id);
...@@ -523,6 +524,7 @@ class DynamicFormEntry extends VerySimpleModel { ...@@ -523,6 +524,7 @@ class DynamicFormEntry extends VerySimpleModel {
$a = DynamicFormEntryAnswer::create( $a = DynamicFormEntryAnswer::create(
array('field_id'=>$f->get('id'))); array('field_id'=>$f->get('id')));
$a->field = $f; $a->field = $f;
$a->field->setAnswer($a);
$inst->_values[] = $a; $inst->_values[] = $a;
} }
return $inst; return $inst;
...@@ -569,7 +571,7 @@ class DynamicFormEntryAnswer extends VerySimpleModel { ...@@ -569,7 +571,7 @@ class DynamicFormEntryAnswer extends VerySimpleModel {
if (!isset($this->field)) { if (!isset($this->field)) {
$f = DynamicFormField::lookup($this->get('field_id')); $f = DynamicFormField::lookup($this->get('field_id'));
$this->field = $f->getImpl($f); $this->field = $f->getImpl($f);
$this->field->answer = $this; $this->field->setAnswer($this);
} }
return $this->field; return $this->field;
} }
......
...@@ -116,6 +116,7 @@ class FormField { ...@@ -116,6 +116,7 @@ class FormField {
var $_clean; var $_clean;
var $_errors = array(); var $_errors = array();
var $_widget; var $_widget;
var $answer;
var $parent; var $parent;
var $presentation_only = false; var $presentation_only = false;
...@@ -179,6 +180,9 @@ class FormField { ...@@ -179,6 +180,9 @@ class FormField {
} }
return $this->_clean; return $this->_clean;
} }
function reset() {
$this->_clean = $this->_widget = null;
}
function errors() { function errors() {
return $this->_errors; return $this->_errors;
...@@ -312,6 +316,7 @@ class FormField { ...@@ -312,6 +316,7 @@ class FormField {
} }
function getAnswer() { return $this->answer; } function getAnswer() { return $this->answer; }
function setAnswer($ans) { $this->answer = $ans; }
function getFormName() { function getFormName() {
if (is_numeric($this->get('id'))) if (is_numeric($this->get('id')))
......
...@@ -2028,7 +2028,7 @@ class Ticket { ...@@ -2028,7 +2028,7 @@ class Ticket {
// Intenal mapping magic...see if we need to override anything // Intenal mapping magic...see if we need to override anything
if(isset($vars['topicId']) && ($topic=Topic::lookup($vars['topicId']))) { //Ticket created via web by user/or staff if(isset($vars['topicId']) && ($topic=Topic::lookup($vars['topicId']))) { //Ticket created via web by user/or staff
$deptId=$deptId?$deptId:$topic->getDeptId(); $deptId=$deptId?$deptId:$topic->getDeptId();
if (!$form->getAnswer('priority')) if (!$form->getAnswer('priority')->getIdValue())
$form->setAnswer('priority', null, $topic->getPriorityId()); $form->setAnswer('priority', null, $topic->getPriorityId());
if($autorespond) $autorespond=$topic->autoRespond(); if($autorespond) $autorespond=$topic->autoRespond();
$source=$vars['source']?$vars['source']:'Web'; $source=$vars['source']?$vars['source']:'Web';
...@@ -2047,14 +2047,14 @@ class Ticket { ...@@ -2047,14 +2047,14 @@ class Ticket {
}elseif($vars['emailId'] && !$vars['deptId'] && ($email=Email::lookup($vars['emailId']))) { //Emailed Tickets }elseif($vars['emailId'] && !$vars['deptId'] && ($email=Email::lookup($vars['emailId']))) { //Emailed Tickets
$deptId=$email->getDeptId(); $deptId=$email->getDeptId();
if (!$form->getAnswer('priority')) if (!$form->getAnswer('priority')->getIdValue())
$form->setAnswer('priority', null, $email->getPriorityId()); $form->setAnswer('priority', null, $email->getPriorityId());
if($autorespond) $autorespond=$email->autoRespond(); if($autorespond) $autorespond=$email->autoRespond();
$email=null; $email=null;
$source='Email'; $source='Email';
} }
//Last minute checks //Last minute checks
if (!$form->getAnswer('priority')) if (!$form->getAnswer('priority')->getIdValue())
$form->setAnswer('priority', null, $cfg->getDefaultPriorityId()); $form->setAnswer('priority', null, $cfg->getDefaultPriorityId());
$deptId=$deptId?$deptId:$cfg->getDefaultDeptId(); $deptId=$deptId?$deptId:$cfg->getDefaultDeptId();
$topicId=$vars['topicId']?$vars['topicId']:0; $topicId=$vars['topicId']?$vars['topicId']:0;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment