N°1243 Fix MUST_CHANGE/MANDATORY checks on transition in the console on an HTML Attribute.

SVN:trunk[5192]
This commit is contained in:
Guillaume Lajarige
2018-01-02 16:18:18 +00:00
parent 1f8bd69aef
commit 4c652a87c0
2 changed files with 23 additions and 5 deletions

View File

@@ -97,7 +97,7 @@ class UIHTMLEditorWidget
// The most relevant solution would be to implement a plugin to CKEdit, and handle the internal events like: setData, insertHtml, insertElement, loadSnapshot, key, afterUndo, afterRedo
// Could also be bound to 'instanceReady.ckeditor'
$oPage->add_ready_script("$('#$iId').bind('validate', function(evt, sFormId) { return ValidateCKEditField('$iId', '', {$this->m_sMandatory}, sFormId, '') } );\n");
$oPage->add_ready_script("$('#$iId').bind('validate', function(evt, sFormId) { return ValidateCKEditField('$iId', '', {$this->m_sMandatory}, sFormId, '', '$sValue') } );\n");
$oPage->add_ready_script(
<<<EOF
$('#$iId').bind('update', function(evt){

View File

@@ -245,9 +245,10 @@ function ValidateField(sFieldId, sPattern, bMandatory, sFormId, nullValue, origi
return true; // Do not stop propagation ??
}
function ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue)
function ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue, originalValue)
{
var bValid;
var sExplain = '';
var sTextContent;
if ($('#'+sFieldId).attr('disabled'))
@@ -277,10 +278,27 @@ function ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue)
}
}
}
// Get the original value without the tags
var oFormattedOriginalContents = (originalValue !== undefined) ? $('<div></div>').html(originalValue) : undefined;
var sTextOriginalContents = (oFormattedOriginalContents !== null) ? oFormattedOriginalContents.text() : undefined;
if (bMandatory && (sTextContent == ''))
if (bMandatory && (sTextContent == nullValue))
{
bValid = false;
sExplain = Dict.S('UI:ValueMustBeSet');
}
else if ((sTextOriginalContents != undefined) && (sTextContent == sTextOriginalContents))
{
bValid = false;
if (sTextOriginalContents == nullValue)
{
sExplain = Dict.S('UI:ValueMustBeSet');
}
else
{
sExplain = Dict.S('UI:ValueMustBeChanged');
}
}
else
{
@@ -288,9 +306,9 @@ function ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue)
}
}
ReportFieldValidationStatus(sFieldId, sFormId, bValid, '');
ReportFieldValidationStatus(sFieldId, sFormId, bValid, sExplain);
setTimeout(function(){ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue);}, 500);
setTimeout(function(){ValidateCKEditField(sFieldId, sPattern, bMandatory, sFormId, nullValue, originalValue);}, 500);
}
/*