Skip to content
Snippets Groups Projects
Commit d8c73958 authored by catch's avatar catch
Browse files

Issue #1346760 by xjm, droplet, catch: Fixed Drag and drop needs a scalable weight select element.

parent 15ddbd88
No related branches found
No related tags found
2 merge requests!7452Issue #1797438. HTML5 validation is preventing form submit and not fully...,!789Issue #3210310: Adjust Database API to remove deprecated Drupal 9 code in Drupal 10
......@@ -3792,13 +3792,27 @@ function theme_password($variables) {
* Expand weight elements into selects.
*/
function form_process_weight($element) {
for ($n = (-1 * $element['#delta']); $n <= $element['#delta']; $n++) {
$weights[$n] = $n;
}
$element['#options'] = $weights;
$element['#type'] = 'select';
$element['#is_weight'] = TRUE;
$element += element_info('select');
// If the number of options is small enough, use a select field.
$max_elements = variable_get('drupal_weight_select_max', DRUPAL_WEIGHT_SELECT_MAX);
if ($element['#delta'] <= $max_elements) {
$element['#type'] = 'select';
for ($n = (-1 * $element['#delta']); $n <= $element['#delta']; $n++) {
$weights[$n] = $n;
}
$element['#options'] = $weights;
$element += element_info('select');
}
// Otherwise, use a text field.
else {
$element['#type'] = 'textfield';
// Use a field big enough to fit most weights.
$element['#size'] = 10;
$element['#element_validate'] = array('element_validate_integer');
$element += element_info('textfield');
}
return $element;
}
......
......@@ -45,6 +45,13 @@
*/
const DRUPAL_REQUIRED = 2;
/**
* Maximum number of values in a weight select element.
*
* If the number of values is over the maximum, a text field is used instead.
*/
const DRUPAL_WEIGHT_SELECT_MAX = 100;
/**
* Return only visible regions.
*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment