From 7fddd6acdca0d52bb091840330c4205cdd3f5661 Mon Sep 17 00:00:00 2001
From: Molkobain
Date: Wed, 3 Oct 2018 15:08:54 +0200
Subject: [PATCH] =?UTF-8?q?N=C2=B01624=20Fix=20bulk=20transition=20integri?=
=?UTF-8?q?ty=20exception=20when=20"org=5Fid"=20was=20not=20checked.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
js/utils.js | 8 ++++++--
pages/UI.php | 27 +++++++++++++++------------
2 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/js/utils.js b/js/utils.js
index 979f4f007..5f1ebaa8c 100644
--- a/js/utils.js
+++ b/js/utils.js
@@ -409,8 +409,12 @@ function ToggleDurationField(field_id) {
function PropagateCheckBox(bCurrValue, aFieldsList, bCheck) {
if (bCurrValue == bCheck) {
for (var i = 0; i < aFieldsList.length; i++) {
- $('#enable_'+aFieldsList[i]).attr('checked', bCheck);
- ToogleField(bCheck, aFieldsList[i]);
+ var sFieldId = aFieldsList[i];
+ $('#enable_'+sFieldId).attr('checked', bCheck);
+ ToogleField(bCheck, sFieldId);
+
+ // Cascade propagation
+ $('#enable_'+sFieldId).trigger('change');
}
}
}
diff --git a/pages/UI.php b/pages/UI.php
index 110a07acf..a34a020c6 100644
--- a/pages/UI.php
+++ b/pages/UI.php
@@ -1205,6 +1205,8 @@ EOF
$aExpectedAttributes = MetaModel::GetTransitionAttributes($sClass, $sStimulus, $sState);
$aDetails = array();
+ $sFormId = 'apply_stimulus';
+ $sFormPrefix = $sFormId.'_';
$iFieldIndex = 0;
$aFieldsMap = array();
$aValues = array();
@@ -1220,6 +1222,7 @@ EOF
$sReadyScript = '';
foreach($aExpectedAttributes as $sAttCode => $iExpectCode)
{
+ $sFieldInputId = $sFormPrefix.$sAttCode;
// Prompt for an attribute if
// - the attribute must be changed or must be displayed to the user for confirmation
// - or the field is mandatory and currently empty
@@ -1232,19 +1235,19 @@ EOF
if (count($aPrerequisites) > 0)
{
// When 'enabling' a field, all its prerequisites must be enabled too
- $sFieldList = "['".implode("','", $aPrerequisites)."']";
- $oP->add_ready_script("$('#enable_{$sAttCode}').bind('change', function(evt, sFormId) { return PropagateCheckBox( this.checked, $sFieldList, true); } );\n");
+ $sFieldList = "['{$sFormPrefix}".implode("','{$sFormPrefix}", $aPrerequisites)."']";
+ $oP->add_ready_script("$('#enable_{$sFieldInputId}').bind('change', function(evt, sFormId) { return PropagateCheckBox( this.checked, $sFieldList, true); } );\n");
}
$aDependents = MetaModel::GetDependentAttributes($sClass, $sAttCode); // List of attributes that are needed for the current one
if (count($aDependents) > 0)
{
// When 'disabling' a field, all its dependent fields must be disabled too
- $sFieldList = "['".implode("','", $aDependents)."']";
- $oP->add_ready_script("$('#enable_{$sAttCode}').bind('change', function(evt, sFormId) { return PropagateCheckBox( this.checked, $sFieldList, false); } );\n");
+ $sFieldList = "['{$sFormPrefix}".implode("','{$sFormPrefix}", $aDependents)."']";
+ $oP->add_ready_script("$('#enable_{$sFieldInputId}').bind('change', function(evt, sFormId) { return PropagateCheckBox( this.checked, $sFieldList, false); } );\n");
}
$aArgs = array('this' => $oObj);
- $sHTMLValue = cmdbAbstractObject::GetFormElementForField($oP, $sClass, $sAttCode, $oAttDef, $oObj->Get($sAttCode), $oObj->GetEditValue($sAttCode), $sAttCode, '', $iExpectCode, $aArgs);
- $sComments = '';
+ $sHTMLValue = cmdbAbstractObject::GetFormElementForField($oP, $sClass, $sAttCode, $oAttDef, $oObj->Get($sAttCode), $oObj->GetEditValue($sAttCode), $sFieldInputId, '', $iExpectCode, $aArgs);
+ $sComments = '';
if (!isset($aValues[$sAttCode]))
{
$aValues[$sAttCode] = array();
@@ -1272,11 +1275,11 @@ EOF
}
$sTip .= "
";
$sTip = addslashes($sTip);
- $sReadyScript .= "$('#multi_values_$sAttCode').qtip( { content: '$sTip', show: 'mouseover', hide: 'mouseout', style: { name: 'dark', tip: 'leftTop' }, position: { corner: { target: 'rightMiddle', tooltip: 'leftTop' }} } );\n";
- $sComments .= ''.count($aValues[$sAttCode]).'
';
+ $sReadyScript .= "$('#multi_values_$sFieldInputId').qtip( { content: '$sTip', show: 'mouseover', hide: 'mouseout', style: { name: 'dark', tip: 'leftTop' }, position: { corner: { target: 'rightMiddle', tooltip: 'leftTop' }} } );\n";
+ $sComments .= ''.count($aValues[$sAttCode]).'
';
}
- $aDetails[] = array('label' => ''.$oAttDef->GetLabel().'', 'value' => "$sHTMLValue", 'comments' => $sComments);
- $aFieldsMap[$sAttCode] = $sAttCode;
+ $aDetails[] = array('label' => ''.$oAttDef->GetLabel().'', 'value' => "$sHTMLValue", 'comments' => $sComments);
+ $aFieldsMap[$sAttCode] = $sFieldInputId;
$iFieldIndex++;
}
}
@@ -1289,7 +1292,7 @@ EOF
$oP->add('');
}
$oP->add("