diff --git a/libraries/src/HTML/Helpers/DraggableList.php b/libraries/src/HTML/Helpers/DraggableList.php index 028b653e27317..f220bbf306890 100644 --- a/libraries/src/HTML/Helpers/DraggableList.php +++ b/libraries/src/HTML/Helpers/DraggableList.php @@ -50,7 +50,7 @@ public static function draggable( bool $nestedList = false ) { // Only load once - if (isset(static::$loaded[__METHOD__])) { + if (isset(static::$loaded[$tableId][$formId][$sortDir][$saveOrderingUrl])) { return; } @@ -58,16 +58,17 @@ public static function draggable( // Please consider using data attributes instead of passing arguments here! if (!empty($tableId) && !empty($saveOrderingUrl) && !empty($formId) && !empty($sortDir)) { - $doc->addScriptOptions( - 'draggable-list', - [ + $options = $doc->getScriptOptions('draggable-list'); + + $options[] = [ 'id' => '#' . $tableId . ' tbody', 'formId' => $formId, 'direction' => $sortDir, 'url' => $saveOrderingUrl . '&' . Session::getFormToken() . '=1', 'nested' => $nestedList, - ] - ); + ]; + + $doc->addScriptOptions('draggable-list', $options); } $doc->getWebAssetManager() @@ -75,6 +76,6 @@ public static function draggable( ->useScript('joomla.draggable'); // Set static array - static::$loaded[__METHOD__] = true; + static::$loaded[$tableId][$formId][$sortDir][$saveOrderingUrl] = true; } }