(Retrofit from trunk) Portal: CaseLog fields value was kept in the form after object update instead of being reset.

SVN:2.3[4665]
This commit is contained in:
Guillaume Lajarige
2017-04-04 10:18:14 +00:00
parent 39f08d0ce0
commit b60dbf1389
4 changed files with 29 additions and 11 deletions

View File

@@ -19,10 +19,11 @@
namespace Combodo\iTop\Form;
use Combodo\iTop\Form\Field\SubFormField;
use \Exception;
use \Dict;
use \Combodo\iTop\Form\Field\Field;
use \Combodo\iTop\Form\Field\CaseLogField;
use \Combodo\iTop\Form\Field\SubFormField;
/**
* Description of Form
@@ -465,6 +466,28 @@ class Form
return $ret;
}
/**
* Resets CaseLog fields value in the form and its sub-forms
*
* @return Form
*/
public function ResetCaseLogFields()
{
foreach($this->GetFields() as $oField)
{
if($oField instanceof CaseLogField)
{
$oField->SetCurrentValue(null);
}
elseif($oField instanceof SubFormField)
{
$oField->GetForm()->ResetCaseLogFields();
}
}
return $this;
}
/**
* Finalizes each field, following the dependencies so that a field can compute its value or other properties,
* depending on other fields

View File

@@ -29,7 +29,9 @@ use \Combodo\iTop\Renderer\FormRenderer;
*/
abstract class FormManager
{
/** @var \Combodo\iTop\Form\Form $oForm */
protected $oForm;
/** @var \Combodo\iTop\Renderer\FormRenderer $oRenderer */
protected $oRenderer;
/**