/** * @param type $fieldName * @param type $htmlOptions */ public function renderInput($fieldName, $htmlOptions = array()) { switch ($fieldName) { case 'color': $field = $this->getField($fieldName); $options = Dropdowns::getItems($field->linkType, null, false); $enableDropdownLegend = Yii::app()->settings->enableColorDropdownLegend; if ($enableDropdownLegend) { $htmlOptions['options'] = array(); foreach ($options as $value => $label) { $brightness = X2Color::getColorBrightness($value); $fontColor = $brightness > 127.5 ? 'black' : 'white'; $htmlOptions['options'][$value] = array('style' => 'background-color: ' . $value . '; color: ' . $fontColor); } } return CHtml::activeDropDownList($this, $field->fieldName, $options, $htmlOptions); case 'priority': return CHtml::activeDropdownList($this, 'priority', self::getPriorityLabels()); case 'associationType': return X2Html::activeMultiTypeAutocomplete($this, 'associationType', 'associationId', array('calendar' => Yii::t('app', 'Select an option')) + X2Model::getAssociationTypeOptions()); case 'reminder': $reminderInput = parent::renderInput($fieldName, array('class' => 'reminder-checkbox')); $reminderInput .= X2Html::openTag('div', X2Html::mergeHtmlOptions($htmlOptions, array('class' => 'reminder-config'))) . Yii::t('actions', 'Create a notification reminder for {user} {time} before this {action} ' . 'is due', array('{user}' => CHtml::activeDropDownList($this, 'notificationUsers', array('me' => Yii::t('actions', 'me'), 'assigned' => Yii::t('actions', 'the assigned user'), 'both' => Yii::t('actions', 'me and the assigned user'))), '{time}' => CHtml::activeDropDownList($this, 'notificationTime', array(1 => Yii::t('actions', '1 minute'), 5 => Yii::t('actions', '5 minutes'), 10 => Yii::t('actions', '10 minutes'), 15 => Yii::t('actions', '15 minutes'), 30 => Yii::t('actions', '30 minutes'), 60 => Yii::t('actions', '1 hour'), 1440 => Yii::t('actions', '1 day'), 10080 => Yii::t('actions', '1 week'))), '{action}' => lcfirst(Modules::displayName(false, 'Actions')))) . '</div>'; return $reminderInput; default: return parent::renderInput($fieldName, $htmlOptions); } }
/** * @param type $fieldName * @param type $htmlOptions */ public function renderInput($fieldName, $htmlOptions = array()) { if ($fieldName === 'color') { $field = $this->getField($fieldName); $options = Dropdowns::getItems($field->linkType, null, false); $enableDropdownLegend = Yii::app()->settings->enableColorDropdownLegend; if ($enableDropdownLegend) { $htmlOptions['options'] = array(); foreach ($options as $value => $label) { $brightness = X2Color::getColorBrightness($value); $fontColor = $brightness > 127.5 ? 'black' : 'white'; $htmlOptions['options'][$value] = array('style' => 'background-color: ' . $value . '; color: ' . $fontColor); } } return CHtml::activeDropDownList($this, $field->fieldName, $options, $htmlOptions); } elseif ($fieldName == 'priority') { return CHtml::activeDropdownList($this, 'priority', self::getPriorityLabels()); } return parent::renderInput($fieldName, $htmlOptions); }