public function testFieldPosition()
 {
     $compositeOuter = new CompositeField(new TextField('A'), new TextField('B'), $compositeInner = new CompositeField(new TextField('C1'), new TextField('C2')), new TextField('D'));
     $this->assertEquals(0, $compositeOuter->fieldPosition('A'));
     $this->assertEquals(1, $compositeOuter->fieldPosition('B'));
     $this->assertEquals(3, $compositeOuter->fieldPosition('D'));
     $this->assertEquals(0, $compositeInner->fieldPosition('C1'));
     $this->assertEquals(1, $compositeInner->fieldPosition('C2'));
     $compositeOuter->insertBefore('B', new TextField('AB'));
     $this->assertEquals(0, $compositeOuter->fieldPosition('A'));
     $this->assertEquals(1, $compositeOuter->fieldPosition('AB'));
     $this->assertEquals(2, $compositeOuter->fieldPosition('B'));
 }
 /**
  * Inserts a field before a particular field in a FieldSet.
  *
  * @param FormField $item The form field to insert
  * @param string $name Name of the field to insert before
  */
 public function insertBefore($field, $insertBefore)
 {
     parent::insertBefore($field, $insertBefore);
     if ($field instanceof Tab) {
         $field->setTabSet($this);
     }
     $this->sequentialSet = null;
 }
Exemplo n.º 3
0
 protected function baseTransform($nonEditableField, $originalField)
 {
     $fieldname = $originalField->Name();
     $nonEditableField_holder = new CompositeField($nonEditableField);
     $nonEditableField_holder->setName($fieldname . '_holder');
     $nonEditableField_holder->addExtraClass('originallang_holder');
     $nonEditableField->setValue($this->original->{$fieldname});
     $nonEditableField->setName($fieldname . '_original');
     $nonEditableField->addExtraClass('originallang');
     $nonEditableField->setTitle('Original ' . $originalField->Title());
     $nonEditableField_holder->insertBefore($originalField, $fieldname . '_original');
     return $nonEditableField_holder;
 }
 /**
  * Transform a translatable field to show the field value from the default language
  * DataObject below the translated field.
  * 
  * This is a fallback function which handles field types that aren't transformed by
  * $this->transform{FieldType} functions.
  * 
  * @param FormField $nonEditableField The readonly field to contain the original value
  * @param FormField $originalField The original editable field containing the translated value
  * @return \CompositeField The transformed field
  */
 protected function baseTransform($nonEditableField, $originalField)
 {
     $fieldname = $originalField->getName();
     $nonEditableField_holder = new CompositeField($nonEditableField);
     $nonEditableField_holder->setName($fieldname . '_holder');
     $nonEditableField_holder->addExtraClass('originallang_holder');
     $nonEditableField->setValue($this->original->{$fieldname});
     $nonEditableField->setName($fieldname . '_original');
     $nonEditableField->addExtraClass('originallang');
     $nonEditableField->setTitle(_t('Translatable_Transform.OriginalFieldLabel', 'Original {title}', 'Label for the original value of the translatable field.', array('title' => $originalField->Title())));
     $nonEditableField_holder->insertBefore($originalField, $fieldname . '_original');
     return $nonEditableField_holder;
 }
Exemplo n.º 5
0
 /**
  * Inserts a field before a particular field in a FieldList.
  *
  * @param string $insertBefore Name of the field to insert before
  * @param FormField $field The form field to insert
  * @return	FormField|null
  */
 public function insertBefore($insertBefore, $field)
 {
     if ($field instanceof Tab) {
         $field->setTabSet($this);
     }
     return parent::insertBefore($insertBefore, $field);
 }
 public function insertAfter($field, $insertAfter)
 {
     parent::insertBefore($field, $insertAfter);
     if ($field instanceof ComponentFieldHolder_Item) {
         $field->setHolder($this);
     }
     $this->sequentialSet = null;
 }
Exemplo n.º 7
0
 public function insertBefore($field, $insertBefore)
 {
     parent::insertBefore($field, $insertBefore);
     $field->setTabSet($this);
 }