public function testRemoveManyExtraClasses() { $field = new FormField('MyField'); $field->addExtraClass('class1 class2 class3 class4 class5'); //test we can remove a single class we just added $field->removeExtraClass('class3'); $this->assertStringEndsWith('class1 class2 class4 class5', $field->extraClass()); //check we can remove many classes at once $field->removeExtraClass('class1 class5'); $this->assertStringEndsWith('class2 class4', $field->extraClass()); //check that removing a dud class is fine $field->removeExtraClass('dudClass'); $this->assertStringEndsWith('class2 class4', $field->extraClass()); }
/** * Override removeExtraClass * * @param string $class */ public function removeExtraClass($class) { $this->fieldPostcode->removeExtraClass($class); $this->fieldCountry->removeExtraClass($class); return $this; }
/** * Override removeExtraClass * * @param string $class */ public function removeExtraClass($class) { $this->fieldAddress->removeExtraClass($class); return $this; }
/** * Override removeExtraClass * * @param string $class */ public function removeExtraClass($class) { $this->fieldLatitude->removeExtraClass($class); $this->fieldLongditude->removeExtraClass($class); return $this; }
/** * @param ISurveyStep $current_step * @param ISurveyQuestionTemplate $question * @param array $static_rules * @param FormField $field */ public function apply(ISurveyStep $current_step, ISurveyQuestionTemplate $question, array $static_rules, FormField $field) { if (count($static_rules)) { foreach ($static_rules as $id => $info) { $q = $info['question']; $values = $info['values']; $operator = $info['operator']; $visibility = $info['visibility']; $default = $info['default']; $boolean_operator = $info['boolean_operator']; $initial_condition = $info['initial_condition']; $answer = $current_step->survey()->findAnswerByQuestion($q); if (is_null($answer)) { continue; } //checks the condition switch ($operator) { case 'Equal': foreach ($values as $vid) { if ($boolean_operator === 'And') { $initial_condition &= strpos($answer->value(), $vid) !== false; } else { $initial_condition |= strpos($answer->value(), $vid) !== false; } } break; case 'Not-Equal': foreach ($values as $vid) { if ($boolean_operator === 'And') { $initial_condition &= strpos($answer->value(), $vid) === false; } else { $initial_condition |= strpos($answer->value(), $vid) === false; } } break; } //visibility switch ($visibility) { case 'Visible': if (!$initial_condition) { $field->addExtraClass('hidden'); // if not visible clean it $field->setValue(''); } else { $field->removeExtraClass('hidden'); } break; case 'Not-Visible': if ($initial_condition) { $field->addExtraClass('hidden'); // if not visible clean it $field->setValue(''); } else { $field->removeExtraClass('hidden'); } break; } // set the default value set on the rule if (!empty($default)) { $field->setValue($default); if ($question instanceof IMultiValueQuestionTemplate) { $value_template = $question->getValueByValue($default); if (!is_null($value_template)) { $field->setValue($value_template->getIdentifier()); } } } } } }