N°7615 - Edition of a n-n link in edit mode not working

- Register input listeners on page ready
This commit is contained in:
Benjamin Dalsass
2024-07-04 07:53:56 +02:00
parent ac90d8036f
commit 989ba7bbe7
2 changed files with 14 additions and 8 deletions

View File

@@ -37,6 +37,7 @@ class BlockIndirectLinkSetEditTable extends UIContentBlock
// Overloaded constants // Overloaded constants
public const BLOCK_CODE = 'ibo-block-indirect-linkset-edit-table'; public const BLOCK_CODE = 'ibo-block-indirect-linkset-edit-table';
public const DEFAULT_JS_TEMPLATE_REL_PATH = 'application/links/indirect/block-indirect-linkset-edit-table/layout'; public const DEFAULT_JS_TEMPLATE_REL_PATH = 'application/links/indirect/block-indirect-linkset-edit-table/layout';
public const DEFAULT_JS_ON_READY_TEMPLATE_REL_PATH = 'application/links/indirect/block-indirect-linkset-edit-table/layout';
public const DEFAULT_JS_FILES_REL_PATH = [ public const DEFAULT_JS_FILES_REL_PATH = [
'js/links/links_widget.js', 'js/links/links_widget.js',
]; ];
@@ -327,20 +328,20 @@ EOF
if ($iUniqueId > 0) { if ($iUniqueId > 0) {
// Rows created with ajax call need OnLinkAdded call. // Rows created with ajax call need OnLinkAdded call.
// //
$oP->add_ready_script( $oP->add_ready_script(
<<<EOF <<<EOF
PrepareWidgets(); PrepareWidgets();
oWidget{$this->oUILinksWidget->GetInputId()}.OnLinkAdded($iUniqueId, $iRemoteObjKey); oWidget{$this->oUILinksWidget->GetInputId()}.OnLinkAdded($iUniqueId, $iRemoteObjKey);
EOF EOF
); );
} else { } else {
// Rows added before loading the form don't have to call OnLinkAdded. // Rows added before loading the form don't have to call OnLinkAdded.
// Listeners are already present and DOM is not recreated // Listeners are already present and DOM is not recreated
$iPositiveUniqueId = -$iUniqueId; $iPositiveUniqueId = -$iUniqueId;
$oP->add_ready_script(<<<EOF $oP->add_ready_script(<<<EOF
oWidget{$this->oUILinksWidget->GetInputId()}.AddLink($iPositiveUniqueId, $iRemoteObjKey); oWidget{$this->oUILinksWidget->GetInputId()}.AddLink($iPositiveUniqueId, $iRemoteObjKey);
EOF EOF
); );
} }
foreach ($this->oUILinksWidget->GetEditableFields() as $sFieldCode) { foreach ($this->oUILinksWidget->GetEditableFields() as $sFieldCode) {
@@ -352,11 +353,11 @@ EOF
$aFieldsMap[$sFieldCode] = $sSafeFieldId; $aFieldsMap[$sFieldCode] = $sSafeFieldId;
$sValue = $oNewLinkObj->Get($sFieldCode); $sValue = $oNewLinkObj->Get($sFieldCode);
$oP->add_ready_script( $oP->add_ready_script(
<<<JS <<<JS
oWidget{$this->oUILinksWidget->GetInputId()}.OnValueChange($iKey, $iUniqueId, '$sFieldCode', '$sValue'); oWidget{$this->oUILinksWidget->GetInputId()}.OnValueChange($iKey, $iUniqueId, '$sFieldCode', '$sValue');
JS JS
); );
} }
$sState = ''; $sState = '';

View File

@@ -0,0 +1,5 @@
{# @copyright Copyright (C) 2010-2024 Combodo SAS #}
{# @license http://opensource.org/licenses/AGPL-3.0 #}
{% apply spaceless %}
oWidget{{ oUIBlock.oUILinksWidget.GetInputId() }}.RegisterChange();
{% endapply %}