/**
  * Creates a option field for the provided permission
  * @param zibo\library\security\model\Permission $permission
  * @return zibo\library\html\form\field\Field
  */
 public function createField(Permission $permission = null)
 {
     $name = $this->name . '[' . $this->role->getRoleName() . ']';
     $field = $this->fieldFactory->createField(FieldFactory::TYPE_OPTION, $name, $permission);
     $field->setKeyDecorator(new PermissionCodeDecorator());
     $field->setIsMultiple(true);
     return $field;
 }
Ejemplo n.º 2
0
 /**
  * Creates an form list field
  * @param zibo\library\html\form\field\FieldFactory $factory Factory for form fields
  * @param array $options Array with the options for the field
  * @param string $name Name for the field
  * @param mixed $value Value for the field
  * @return zibo\library\html\form\field\Field
  */
 private function createListField(FieldFactory $factory, array $options, $name, $value = null)
 {
     $field = $factory->createField(FieldFactory::TYPE_LIST, $name, $value);
     $field->setOptions($options);
     return $field;
 }
Ejemplo n.º 3
0
 /**
  * Creates a form field for the provided model relation field
  * @param zibo\library\html\form\field\FieldFactory $fieldFactory Instance of the field factory
  * @param zibo\library\orm\model\ModelMeta $meta Meta of the model of the relation field
  * @param zibo\library\orm\definition\field\RelationField $field Definition of the relation field
  * @param mixed $value Value for the form field
  * @return zibo\library\html\form\field\Field
  */
 protected function createFormFieldFromRelationField(FieldFactory $fieldFactory, ModelMeta $meta, RelationField $field, $value)
 {
     $relationModel = $meta->getRelationModel($field->getName());
     $list = $relationModel->getDataList();
     if (!is_array($value) && is_object($value)) {
         $value = $value->id;
     }
     $formField = $fieldFactory->createField(FieldFactory::TYPE_LIST, $field->getName(), $value);
     $formField->setOptions($list);
     if ($field instanceof HasManyField) {
         $formField->setIsMultiple(true);
         $formField->setShowSelectedOptionsFirst(true);
     } else {
         $formField->addEmpty('---', '');
     }
     return $formField;
 }