N°2381 - Not possible to create a ticket in "resolved" with lnk objects

This commit is contained in:
Eric
2019-12-10 15:30:53 +01:00
parent 60769dc4b7
commit 374946505a
3 changed files with 35 additions and 5 deletions

View File

@@ -2443,6 +2443,7 @@ EOF
* @throws \MySQLException
* @throws \MySQLHasGoneAwayException
* @throws \OQLException
* @throws \Exception
*/
public function DisplayModifyForm(WebPage $oPage, $aExtraParams = array())
{
@@ -2615,7 +2616,17 @@ HTML
$sStateCode).'</option>';
}
$sStatesSelection .= '</select>';
$oPage->add_ready_script("$('.state_select_{$this->m_iFormId}').change( function() { oWizardHelper$sPrefix.ReloadObjectCreationForm('form_{$this->m_iFormId}', $(this).val()); } );");
$sStatesSelection .= '<input type="hidden" id="obj_state_orig" name="obj_state_orig" value="'.$this->GetState().'"/>';
$oPage->add_ready_script(<<<JAVASCRIPT
$('.state_select_{$this->m_iFormId}').change( function() {
if ($('#obj_state_orig').val() != $(this).val()) {
$('.state_select_{$this->m_iFormId}').val($(this).val());
$('#form_{$this->m_iFormId}').data('force_submit', true);
$('#form_{$this->m_iFormId}').submit();
}
});
JAVASCRIPT
);
}
}

View File

@@ -125,6 +125,11 @@ function OnUnload(sTransactionId, sObjClass, iObjKey, sToken)
function OnSubmit(sFormId)
{
window.bInSubmit=true; // This is a submit, make sure that when the page gets unloaded we don't cancel the action
if ($('#'+sFormId).data('force_submit')) {
return true;
}
var bResult = CheckFields(sFormId, true);
if (!bResult)
{

View File

@@ -1070,8 +1070,9 @@ EOF
$oP->DisableBreadCrumb();
$sClass = utils::ReadPostedParam('class', '', 'class');
$sClassLabel = MetaModel::GetName($sClass);
$sTransactionId = utils::ReadPostedParam('transaction_id', '', 'transaction_id');
$sTransactionId = utils::ReadPostedParam('transaction_id', '', 'transaction_id');
$aErrors = array();
$aWarnings = array();
if ( empty($sClass) ) // TO DO: check that the class name is valid !
{
throw new ApplicationException(Dict::Format('UI:Error:1ParametersMissing', 'class'));
@@ -1092,6 +1093,11 @@ EOF
$sTargetState = utils::ReadPostedParam('obj_state', '');
if ($sTargetState != '')
{
$sOrigState = utils::ReadPostedParam('obj_state_orig', '');
if ($sTargetState != $sOrigState)
{
$aWarnings[] = 'State changed';
}
$oObj->Set($sStateAttCode, $sTargetState);
}
}
@@ -1104,7 +1110,7 @@ EOF
try
{
if (!empty($aErrors))
if (!empty($aErrors) || !empty($aWarnings))
{
throw new CoreCannotSaveObjectException(array('id' => $oObj->GetKey(), 'class' => $sClass, 'issues' => $aErrors));
}
@@ -1140,7 +1146,15 @@ EOF
$oP->set_title(Dict::Format('UI:CreationPageTitle_Class', $sClassLabel));
$oP->add("<h1>".MetaModel::GetClassIcon($sClass)."&nbsp;".Dict::Format('UI:CreationTitle_Class', $sClassLabel)."</h1>\n");
$oP->add("<div class=\"wizContainer\">\n");
$oP->AddHeaderMessage($e->getHtmlMessage(), 'message_error');
if (!empty($aIssues))
{
$oP->AddHeaderMessage($e->getHtmlMessage(), 'message_error');
}
if (!empty($aWarnings))
{
$sWarnings = implode(', ', $aWarnings);
$oP->AddHeaderMessage($sWarnings, 'message_info');
}
cmdbAbstractObject::DisplayCreationForm($oP, $sClass, $oObj);
$oP->add("</div>\n");
}
@@ -1858,4 +1872,4 @@ catch(Exception $e)
IssueLog::Error($e->getMessage());
}
}
}