/** * @param ITrackQuestionTemplate $question * @param ITrackAnswer $answer * @return FormField */ public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer) { $options = array(); if ($question->IsCountrySelector) { $extra_options = array('Worldwide' => 'Worldwide', 'Prefer not to say' => 'Prefer not to say', 'Too many to list' => 'Too many to list'); $options = array_merge($extra_options, CountryCodes::$iso_3166_countryCodes); } else { foreach ($question->Values()->sort('Order') as $val) { $options[$val->ID] = empty($val->Label) ? $val->Value : $val->Label; } } $default_value = $question->DefaultValue(); $field = $question->IsMultiSelect ? new MultiDropdownField($question->name(), $question->label(), $options) : new DropdownField($question->name(), $question->label(), $options); $field->setFieldHolderTemplate('BootstrapFieldHolder'); if ($question->isReadOnly()) { $field->setDisabled(true); } if ($question->isMandatory()) { $field->setAttribute('data-rule-required', 'true'); $field->setAttribute('aria-required', 'true'); } if (!is_null($default_value) && $default_value->exists()) { $field->setValue($default_value->ID); } if (!is_null($answer)) { $field->setValue($answer->value()); } $empty_string = $question->EmptyString; if (!empty($empty_string)) { if ($question->UseChosenPlugin && $question->IsMultiSelect) { $field->setAttribute('data-placeholder', $empty_string); } else { $field->setEmptyString($empty_string); } } if ($question->UseChosenPlugin) { $field->addExtraClass('chosen'); $field->addExtraClass('chosen-visible'); Requirements::customScript("jQuery(document).ready(function(\$){\n var form = \$('form');\n var form_id = form.attr('id');\n \$('#'+form_id+'_{$question->name()}').chosen({width: '30%'});\n });\n "); } return $field; }
/** * @param ITrackQuestionTemplate $question * @param ITrackAnswer $answer * @return FormField */ public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer) { $field = new CheckboxField($question->name(), $question->label()); $field->setFieldHolderTemplate('BootstrapFieldHolder'); $field->setValue($question->initialValue()); if ($question->isReadOnly()) { $field->setDisabled(true); } if ($question->isMandatory()) { $field->setAttribute('data-rule-required', 'true'); } if (!is_null($answer)) { $field->setValue($answer->value()); } $field->setFieldHolderTemplate('RSVPCheckboxField_holder'); return $field; }
/** * @param ITrackQuestionTemplate $question * @param ITrackAnswer $answer * @return FormField */ public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer) { $options = array(); foreach ($question->Values()->sort('Order') as $val) { $options[$val->ID] = empty($val->Label) ? $val->Value : $val->Label; } $field = new TrackCheckboxSetField($question->name(), $question->label(), $options, $value = '', $form = null, $emptyString = null, $question); $field->setFieldHolderTemplate('BootstrapFieldHolder'); if ($question->isReadOnly()) { $field->setDisabled(true); } if ($question->isMandatory()) { $field->setRequired(); } if (!is_null($answer)) { $field->setValue($answer->value()); } $field->setTemplate('RSVPCheckboxSetField'); return $field; }
/** * @param ITrackQuestionTemplate $question * @param ITrackAnswer $answer * @return FormField */ public function build(ITrackQuestionTemplate $question, ITrackAnswer $answer) { $options = array(); foreach ($question->Values()->sort('Order') as $val) { $options[$val->ID] = empty($val->Label) ? $val->Value : $val->Label; } $field = new OptionsetField($question->name(), $question->label(), $options); $field->setFieldHolderTemplate('BootstrapFieldHolder'); $default_value = $question->getDefaultValue(); if (!is_null($default_value) && $default_value->ID > 0) { $field->setValue($default_value->ID); } if ($question->isReadOnly()) { $field->setDisabled(true); } if ($question->isMandatory()) { $field->setAttribute('data-rule-required', 'true'); } if (!is_null($answer)) { $field->setValue($answer->value()); } $field->setTemplate('RSVPOptionSetField'); return $field; }