public static function outputLimiterValueTextboxOrDropdown($field, $limiter_value = "") { global $Proj; $field = self::getFieldFromEventField($field); // For last field ("add new limiter"), disable the element $disabled = $field == "" ? "disabled" : ""; if ($field != '' && ($Proj->isMultipleChoice($field) || $Proj->metadata[$field]['element_type'] == 'sql')) { // Build enum options $enum = $Proj->metadata[$field]['element_enum']; $options = $Proj->metadata[$field]['element_type'] == 'sql' ? parseEnum(getSqlFieldEnum($enum)) : parseEnum($enum); // Make sure it has a blank option at the beginning (EXCEPT checkboxes) if ($Proj->metadata[$field]['element_type'] != 'checkbox') { $options = array('' => '') + $options; } // Multiple choice drop-down return RCView::select(array('name' => 'limiter_value[]', $disabled => $disabled, 'class' => 'x-form-text x-form-field limiter-value', 'style' => 'max-width:150px;padding-right:0;height:22px;'), $options, $limiter_value, 200); } else { // If field has validation, then add its validation as onblur $val_type = $Proj->metadata[$field]['element_type'] == 'text' ? $Proj->metadata[$field]['element_validation_type'] : ''; $onblur = ""; if ($val_type != '') { // Convert legacy validation types if ($val_type == 'int') { $val_type = 'integer'; } elseif ($val_type == 'float') { $val_type = 'number'; } // Add onblur $onblur = "redcap_validate(this,'{$Proj->metadata[$field]['element_validation_min']}','{$Proj->metadata[$field]['element_validation_max']}','hard','{$val_type}',1)"; } // If an MDY or DMY date/time field, then convert value if ($limiter_value != '') { if (substr($val_type, 0, 4) == 'date' && (substr($val_type, -4) == '_mdy' || substr($val_type, -4) == '_dmy')) { // Convert to MDY or DMY format $limiter_value = DateTimeRC::datetimeConvert($limiter_value, 'ymd', substr($val_type, -3)); } } // Adjust text box size for date/time fields if (strpos($val_type, 'datetime_seconds') === 0) { $style = 'width:120px;'; } elseif (strpos($val_type, 'datetime') === 0) { $style = 'width:103px;'; } elseif (strpos($val_type, 'date') === 0) { $style = 'width:70px;'; } else { $style = 'width:150px;'; } // Build date/time format text for date/time fields $dformat = MetaData::getDateFormatDisplay($val_type); $dformat_span = $dformat == '' ? '' : RCView::span(array('class' => 'df', 'style' => 'padding-left:4px;'), $dformat); // Return text field return RCView::text(array('name' => 'limiter_value[]', $disabled => $disabled, 'onblur' => $onblur, 'class' => $val_type . ' x-form-text x-form-field limiter-value', 'maxlength' => 255, 'style' => $style, 'value' => htmlspecialchars($limiter_value, ENT_QUOTES))) . $dformat_span; } }