From 1e533b24d1c126b113c33d0e208c94968b7b7306 Mon Sep 17 00:00:00 2001 From: Denis Flaven Date: Fri, 4 Sep 2015 09:52:22 +0000 Subject: [PATCH] Fix: Make sure that the "ownership lock" is always released when clicking on the "Cancel" button of a form. SVN:trunk[3716] --- application/cmdbabstract.class.inc.php | 4 ++-- application/itopwebpage.class.inc.php | 9 +++++++-- application/uilinkswizard.class.inc.php | 2 +- pages/UI.php | 5 +++++ 4 files changed, 15 insertions(+), 5 deletions(-) diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index f217b510d..cb0c2e930 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -2213,7 +2213,7 @@ 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=cancel&'.$oAppContext->GetForLink(); - $oPage->add_ready_script("$('#form_{$this->m_iFormId} button.cancel').click( function() { BackToDetails('$sClass', $iKey, '$sDefaultUrl')} );"); + $oPage->add_ready_script("$('#form_{$this->m_iFormId} button.cancel').click( function() { BackToDetails('$sClass', $iKey, '$sDefaultUrl', $sJSToken)} );"); $oPage->add("\n"); if (isset($aExtraParams['wizard_container']) && $aExtraParams['wizard_container']) @@ -2467,7 +2467,7 @@ EOF } $oAppContext = new ApplicationContext(); $oPage->add($oAppContext->GetForForm()); - $oPage->add("    \n"); + $oPage->add("    \n"); $oPage->add("\n"); $oPage->add("\n"); $oPage->add("\n"); diff --git a/application/itopwebpage.class.inc.php b/application/itopwebpage.class.inc.php index b236220c0..2d25b5a89 100644 --- a/application/itopwebpage.class.inc.php +++ b/application/itopwebpage.class.inc.php @@ -459,12 +459,17 @@ EOF window.history.back(); } - function BackToDetails(sClass, id, sDefaultUrl) + function BackToDetails(sClass, id, sDefaultUrl, sOwnershipToken) { window.bInCancel = true; if (id > 0) { - window.location.href = AddAppContext(GetAbsoluteUrlAppRoot()+'pages/UI.php?operation=release_lock_and_details&class='+sClass+'&id='+id); + sToken = ''; + if (sOwnershipToken != undefined) + { + sToken = '&token='+sOwnershipToken; + } + window.location.href = AddAppContext(GetAbsoluteUrlAppRoot()+'pages/UI.php?operation=release_lock_and_details&class='+sClass+'&id='+id+sToken); } else { diff --git a/application/uilinkswizard.class.inc.php b/application/uilinkswizard.class.inc.php index 39db9dba7..31433331e 100644 --- a/application/uilinkswizard.class.inc.php +++ b/application/uilinkswizard.class.inc.php @@ -275,7 +275,7 @@ EOF $this->DisplayFormTable($oP, $this->m_aTableConfig, $aForm); $oP->add("     "); $oP->add("   m_sLinkedClass))."\" onClick=\"AddObjects();\">\n"); - $oP->add("m_iObjectId.");\">"); + $oP->add("m_iObjectId.", '', '');\">"); $oP->add("   \n"); $oP->add("

 

\n"); $oP->add("\n"); diff --git a/pages/UI.php b/pages/UI.php index 15d607597..763542c26 100644 --- a/pages/UI.php +++ b/pages/UI.php @@ -356,6 +356,11 @@ try $sClass = utils::ReadParam('class', ''); $id = utils::ReadParam('id', ''); $oObj = MetaModel::GetObject($sClass, $id); + $sToken = utils::ReadParam('token', ''); + if ($sToken != '') + { + iTopOwnershipLock::ReleaseLock($sClass, $id, $sToken); + } cmdbAbstractObject::ReloadAndDisplay($oP, $oObj, array('operation' => 'details')); break;