From 089da409416921b9e8ddc8f58229ae55727cd51a Mon Sep 17 00:00:00 2001 From: Molkobain Date: Tue, 23 Jul 2024 23:14:47 +0200 Subject: [PATCH] =?UTF-8?q?N=C2=B07552=20-=20CKEditor:=20Fix=20error=20mes?= =?UTF-8?q?sage=20not=20disappearing=20when=20mandatory=20field=20is=20fil?= =?UTF-8?q?led?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FieldRenderer/BsSimpleFieldRenderer.php | 60 ++++++++++++++----- 1 file changed, 46 insertions(+), 14 deletions(-) diff --git a/sources/Renderer/Bootstrap/FieldRenderer/BsSimpleFieldRenderer.php b/sources/Renderer/Bootstrap/FieldRenderer/BsSimpleFieldRenderer.php index 053a33d8af..5e9e886c65 100644 --- a/sources/Renderer/Bootstrap/FieldRenderer/BsSimpleFieldRenderer.php +++ b/sources/Renderer/Bootstrap/FieldRenderer/BsSimpleFieldRenderer.php @@ -230,25 +230,57 @@ EOF case 'Combodo\\iTop\\Form\\Field\\UrlField': case 'Combodo\\iTop\\Form\\Field\\EmailField': case 'Combodo\\iTop\\Form\\Field\\PhoneField': - case 'Combodo\\iTop\\Form\\Field\\TextAreaField': - case 'Combodo\\iTop\\Form\\Field\\CaseLogField': case 'Combodo\\iTop\\Form\\Field\\SelectField': case 'Combodo\\iTop\\Form\\Field\\MultipleSelectField': case 'Combodo\\iTop\\Form\\Field\\HiddenField': - $oOutput->AddJs( - <<oField->GetGlobalId()}").off("change keyup").on("change keyup", function(){ - var me = this; - - $(this).closest(".field_set").trigger("field_change", { - id: $(me).attr("id"), - name: $(me).closest(".form_field").attr("data-field-id"), - value: $(me).val() - }); - }).on("mouseup", function(){this.focus();}); -EOF + $oOutput->AddJs(<<oField->GetGlobalId()}").off("change keyup").on("change keyup", function(){ + var me = this; + + $(this).closest(".field_set").trigger("field_change", { + id: $(me).attr("id"), + name: $(me).closest(".form_field").attr("data-field-id"), + value: $(me).val() + }); + }).on("mouseup", function(){this.focus();}); +JS ); break; + + case 'Combodo\\iTop\\Form\\Field\\TextAreaField': + case 'Combodo\\iTop\\Form\\Field\\CaseLogField': + if ($this->oField->GetFormat() === TextAreaField::ENUM_FORMAT_HTML) { + $oOutput->AddJs(<<oField->GetGlobalId()}") + .then((oCKEditor) => { + oCKEditor.model.document.on("change:data", () => { + console.log("desc changed!"); + const oFieldElem = $("#{$this->oField->GetGlobalId()}"); + oFieldElem.closest(".field_set").trigger("field_change", { + id: oFieldElem.attr("id"), + name: oFieldElem.closest(".form_field").attr("data-field-id"), + value: oCKEditor.getData() + }); + }); + }); +JS + ); + } else { + $oOutput->AddJs(<<oField->GetGlobalId()}").off("change keyup").on("change keyup", function(){ + var me = this; + + $(this).closest(".field_set").trigger("field_change", { + id: $(me).attr("id"), + name: $(me).closest(".form_field").attr("data-field-id"), + value: $(me).val() + }); + }).on("mouseup", function(){this.focus();}); +JS + ); + } + break; + case 'Combodo\\iTop\\Form\\Field\\DateTimeField': // We need the focusout event has the datepicker widget seems to override the change event $oOutput->AddJs(