diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index 7193a4f2a..f1d0154c5 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -3054,7 +3054,16 @@ EOF // Hook the cancel button via jQuery so that it can be unhooked easily as well if needed $sDefaultUrl = utils::GetAbsoluteUrlAppRoot().'pages/UI.php?operation=search_form&class='.$sClass.'&'.$oAppContext->GetForLink(); - $oPage->add_ready_script("$('#form_{$this->m_iFormId} button.cancel').on('click', function() { BackToDetails('$sClass', $iKey, '$sDefaultUrl', $sJSToken)} );"); + + $sCancelButtonOnClickScript = "let fOnClick{$this->m_iFormId}CancelButton = "; + if(isset($aExtraParams['js_handlers']['cancel_button_on_click'])){ + $sCancelButtonOnClickScript .= $aExtraParams['js_handlers']['cancel_button_on_click']; + } else { + $sCancelButtonOnClickScript .= "function() { BackToDetails('$sClass', $iKey, '$sDefaultUrl', $sJSToken)};"; + } + $sCancelButtonOnClickScript .= "$('#form_{$this->m_iFormId} button.cancel').on('click', fOnClick{$this->m_iFormId}CancelButton);"; + $oPage->add_ready_script($sCancelButtonOnClickScript); + $iFieldsCount = count($aFieldsMap); $sJsonFieldsMap = json_encode($aFieldsMap); diff --git a/application/ui.linksdirectwidget.class.inc.php b/application/ui.linksdirectwidget.class.inc.php index 1a750e327..cdefbeba8 100644 --- a/application/ui.linksdirectwidget.class.inc.php +++ b/application/ui.linksdirectwidget.class.inc.php @@ -211,7 +211,23 @@ class UILinksWidgetDirect $oObj = DBObject::MakeDefaultInstance($sRealClass); $aPrefillParam = array('source_obj' => $oSourceObj); $oObj->PrefillForm('creation_from_editinplace', $aPrefillParam); - cmdbAbstractObject::DisplayCreationForm($oPage, $sRealClass, $oObj, array(), array('formPrefix' => $this->sInputid, 'noRelations' => true, 'fieldsFlags' => $aFieldFlags)); + $aFormExtraParams = array( + 'formPrefix' => $this->sInputid, + 'noRelations' => true, + 'fieldsFlags' => $aFieldFlags, + 'js_handlers' => [ + 'cancel_button_on_click' => + <<