(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

@@ -878,6 +878,9 @@ class ObjectFormManager extends FormManager
// Ending transaction with a commit as everything was fine
CMDBSource::Query('COMMIT');
// Resetting caselog fields value, otherwise the value will stay in it after submit.
$this->oForm->ResetCaseLogFields();
if ($bWasModified)
{
$aData['messages']['success'] += array('_main' => array(Dict::S('Brick:Portal:Object:Form:Message:Saved')));

View File

@@ -135,16 +135,6 @@ $(function()
// If everything is okay, we close the form and reload it.
if(oValidation.valid)
{
// Resetting textarea fields (delay is necessary has we have to wait for the form to be built.
setTimeout(function(){
me.options.field_set.find('.portal_form_field_html').each(function(iIndex, oElem){
if($(oElem).find('.cke').length > 0)
{
$(oElem).triggerHandler('set_current_value', '');
}
});
}, 200);
if(me.options.is_modal)
{
me.element.closest('.modal').modal('hide');

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;
/**