public static void
draggable
(string $tableId = '', string $formId = '', string $sortDir = 'asc', string $saveOrderingUrl = '', mixed $redundant = null, bool $nestedList = false)
/**
* Method to load the Dragula script and make table sortable
*
* @param string $tableId DOM id of the table
* @param string $formId DOM id of the form
* @param string $sortDir Sort direction
* @param string $saveOrderingUrl Save ordering url, ajax-load after an item dropped
* @param string $redundant Not used
* @param boolean $nestedList Set whether the list is a nested list
*
* @return void
*
* @since 4.0.0
*/
public static function draggable(string $tableId = '', string $formId = '', string $sortDir = 'asc', string $saveOrderingUrl = '', $redundant = null, bool $nestedList = false)
{
// Only load once
if (isset(static::$loaded[__METHOD__])) {
return;
}
$doc = Factory::getDocument();
// Please consider using data attributes instead of passing arguments here!
if (!empty($tableId) && !empty($saveOrderingUrl) && !empty($formId) && !empty($sortDir)) {
$doc->addScriptOptions('draggable-list', ['id' => '#' . $tableId . ' tbody', 'formId' => $formId, 'direction' => $sortDir, 'url' => $saveOrderingUrl . '&' . Session::getFormToken() . '=1', 'nested' => $nestedList]);
}
$doc->getWebAssetManager()->usePreset('dragula')->useScript('joomla.draggable');
// Set static array
static::$loaded[__METHOD__] = true;
}