diff --git a/extension/Classes/Core/AbstractBuildForm.php b/extension/Classes/Core/AbstractBuildForm.php index ecb21a67bd421915b378d1cc3563d8964c627021..6d9ceeed6468197eb2725ec9dc0d851bd0a50b03 100644 --- a/extension/Classes/Core/AbstractBuildForm.php +++ b/extension/Classes/Core/AbstractBuildForm.php @@ -3161,7 +3161,7 @@ abstract class AbstractBuildForm { $chatFieldsetStart = '<fieldset ' . $fieldsetAttribute . '>'; - if ($formElement[FE_LABEL] !== '') { + if ($formElement[FE_LABEL] !== '' && $formElement[FE_BS_LABEL_COLUMNS] == 0) { $chatFieldsetStart .= '<legend>' . $formElement[FE_LABEL] . '</legend>'; } $chatFieldsetEnd = '</fieldset>'; @@ -3251,6 +3251,7 @@ abstract class AbstractBuildForm { $inputAttribute .= Support::doAttribute('cols', $colsRows[0]); $inputAttribute .= Support::doAttribute('rows', $colsRows[1]); + $inputAttribute .= Support::doAttribute('id', $formElement[FE_HTML_ID] . '-chat-i'); // Check if $colsRows[2] != 0 >> enable auto-grow (if nothing is defined: enable auto-grow) $maxHeight = $colsRows[2] ?? '350'; diff --git a/javascript/src/Core/FormGroup.js b/javascript/src/Core/FormGroup.js index 7d707635e76093717934139a3555e683d3ce72c5..f536d63ed129d9d209b7f2d5dea641213498221b 100644 --- a/javascript/src/Core/FormGroup.js +++ b/javascript/src/Core/FormGroup.js @@ -95,6 +95,10 @@ QfqNS.Element = QfqNS.Element || {}; var idArray = $enclosedElement.attr('id').split("-"); var searchString = "#"; for(var i = 0; i < 8 && i < idArray.length; i++) { + // Handle form-group for chat input element + if (idArray[i] === 'chat') { + continue; + } searchString += idArray[i] + "-"; } var $formGroup = $(searchString + 'i'); diff --git a/javascript/src/Helper/qfqChat.js b/javascript/src/Helper/qfqChat.js index 64a2187283b5e22614e0fe19a983f80db78b79ca..90ffa9774d0174464987e38d106e0a5f8c32cb69 100644 --- a/javascript/src/Helper/qfqChat.js +++ b/javascript/src/Helper/qfqChat.js @@ -313,6 +313,12 @@ QfqNS.Helper = QfqNS.Helper || {}; messageElement.scrollTo({ top: messageElement.scrollHeight, behavior: 'smooth' }); }; + qfqChat.setInputState = function (element, configItem) { + let inputElement = element.nextElementSibling; + inputElement.disabled = configItem.disabled; + inputElement.required = configItem.required; + } + qfqChat.createNewMessage = function (key, chatConfig) { let chatContainerElement = document.createElement('div'); chatContainerElement.className = 'chat-container ' + chatConfig.bubbleClass; diff --git a/javascript/src/QfqForm.js b/javascript/src/QfqForm.js index 32dd536ce96423715c70250ddfa62ddd459c165d..105fabeb363343928568cb51a35ec1111e11e4e2 100644 --- a/javascript/src/QfqForm.js +++ b/javascript/src/QfqForm.js @@ -1418,8 +1418,9 @@ var QfqNS = QfqNS || {}; // Chats needs to be loaded with new data // It refreshes the output - if (element.classList.contains('qfq-chat-window') && configurationItem.chat !== undefined) { + if (element.classList !== undefined && element.classList.contains('qfq-chat-window') && configurationItem.chat !== undefined) { n.Helper.qfqChat.refreshChat(element, configurationItem.chat); + n.Helper.qfqChat.setInputState(element, configurationItem); } }