diff --git a/datamodels/2.x/itop-portal-base/portal/src/helpers/applicationhelper.class.inc.php b/datamodels/2.x/itop-portal-base/portal/src/helpers/applicationhelper.class.inc.php index 0d8d980918..447d7f7381 100644 --- a/datamodels/2.x/itop-portal-base/portal/src/helpers/applicationhelper.class.inc.php +++ b/datamodels/2.x/itop-portal-base/portal/src/helpers/applicationhelper.class.inc.php @@ -957,6 +957,7 @@ class ApplicationHelper if ($oModeNode->getAttribute('id') === 'apply_stimulus') { $oStimuliNode = $oModeNode->GetOptionalElement('stimuli'); + // if stimuli are defined, we overwrite the form that could have been set by the generic form if($oStimuliNode !== null) { foreach ($oStimuliNode->GetNodes('stimulus') as $oStimulusNode) @@ -1083,7 +1084,8 @@ class ApplicationHelper foreach($aChildStimuli as $sFormStimulus) { - if(!isset($aForms[$sChildClass][$sMode][$sFormStimulus])) + // Setting form if not defined OR if it was defined by a parent (abstract) class + if(!isset($aForms[$sChildClass][$sMode][$sFormStimulus]) || !empty($aFormStimuli)) { $aForms[$sChildClass][$sMode][$sFormStimulus] = $aFields; $aForms[$sChildClass][$sMode][$sFormStimulus]['id'] = 'apply_stimulus-'.$sChildClass.'-'.$sFormStimulus;