From a70ed7fcc2d2b964c82a4837bcac4721c2c292a0 Mon Sep 17 00:00:00 2001 From: Stephen Abello Date: Fri, 30 Oct 2020 10:13:34 +0100 Subject: [PATCH] =?UTF-8?q?N=C2=B02847=20Lighter=20error=20display=20on=20?= =?UTF-8?q?inputs=20firts=20validation=20Note:=20Doesn't=20work=20with=20t?= =?UTF-8?q?agsets=20and=20enumsets?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/cmdbabstract.class.inc.php | 10 +++++----- application/ui.extkeywidget.class.inc.php | 2 +- js/forms-json-utils.js | 10 ++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/application/cmdbabstract.class.inc.php b/application/cmdbabstract.class.inc.php index e1ef7891f..88ad998c0 100644 --- a/application/cmdbabstract.class.inc.php +++ b/application/cmdbabstract.class.inc.php @@ -1922,7 +1922,7 @@ HTML $sPlaceholderValue = 'placeholder="'.htmlentities(AttributeDate::GetFormat()->ToPlaceholder(), ENT_QUOTES, 'UTF-8').'"'; - $sHTMLValue = "
{$sValidationSpan}{$sReloadSpan}"; break; @@ -1933,7 +1933,7 @@ HTML $sPlaceholderValue = 'placeholder="'.htmlentities(AttributeDateTime::GetFormat()->ToPlaceholder(), ENT_QUOTES, 'UTF-8').'"'; - $sHTMLValue = "
{$sValidationSpan}{$sReloadSpan}"; break; @@ -2329,7 +2329,7 @@ JS // generate form HTML output $sValidationSpan = ""; - $sHTMLValue = '
'.$sValidationSpan.$sReloadSpan; + $sHTMLValue = '
'.$sValidationSpan.$sReloadSpan; $sScript = "$('#$iId').set_widget({inputWidgetIdSuffix: '".AttributeSet::EDITABLE_INPUT_ID_SUFFIX."'});"; $oPage->add_ready_script($sScript); @@ -2361,7 +2361,7 @@ JS case 'select': default: $aEventsList[] = 'change'; - $sHTMLValue = "
\n"; $sHTMLValue .= "\n"; foreach($aAllowedValues as $key => $display_value) { @@ -2390,7 +2390,7 @@ EOF } else { - $sHTMLValue = "
{$sValidationSpan}{$sReloadSpan}"; $aEventsList[] = 'keyup'; $aEventsList[] = 'change'; diff --git a/application/ui.extkeywidget.class.inc.php b/application/ui.extkeywidget.class.inc.php index aa7c46e90..3a0930756 100644 --- a/application/ui.extkeywidget.class.inc.php +++ b/application/ui.extkeywidget.class.inc.php @@ -137,7 +137,7 @@ class UIExtKeyWidget $sMessage = Dict::S('UI:Message:EmptyList:UseSearchForm'); $sAttrFieldPrefix = ($this->bSearchMode) ? '' : 'attr_'; - $sHTMLValue = "
"; + $sHTMLValue = "
"; $sFilter = addslashes($oAllowedValues->GetFilter()->ToOQL()); if($this->bSearchMode) { diff --git a/js/forms-json-utils.js b/js/forms-json-utils.js index ac6d16812..9bdc89b1c 100644 --- a/js/forms-json-utils.js +++ b/js/forms-json-utils.js @@ -215,8 +215,14 @@ function ReportFieldValidationStatus(sFieldId, sFormId, bValid, sExplain) // Let's remember the first input with an error, so that we can put back the focus on it later oFormErrors['input_'+sFormId] = sFieldId; } - // TODO 3.0 Maybe use data role ? - $('#field_'+sFieldId+' .ibo-input-wrapper').addClass('is-error') + + if($('#field_'+sFieldId+' .ibo-input-wrapper').attr('data-validation') === 'untouched') { + $('#field_'+sFieldId+' .ibo-input-wrapper').removeAttr('data-validation'); + } + else{ + $('#field_'+sFieldId+' .ibo-input-wrapper').addClass('is-error'); + } + if ($('#v_'+sFieldId).text() == '') { $('#v_'+sFieldId).html(sExplain);