Exemple #1
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $typeOptions = ['attr' => ['class' => 'form-control input-miniature'], 'error_bubbling' => true, 'constraints' => [new Choice(['message' => "Incorrect context type selected.", 'choices' => Context::getTypes(), 'multiple' => false]), new NotBlank(['message' => 'Context type is missing.'])]];
     if ($options['edit_mode_enabled']) {
         $typeOptions['choices'] = ArraysHelper::arrayFillEqualPairs(Context::getTypes());
         $typeOptions['multiple'] = false;
     }
     $builder->add('type', $options['edit_mode_enabled'] ? 'choice' : 'hidden', $typeOptions);
     $showTech = false;
     //$options['edit_mode_enabled'];
     $techOptions = ['attr' => ['class' => 'form-control input-miniature'], 'error_bubbling' => true, 'constraints' => [new Choice(['message' => "Incorrect technology selected.", 'choices' => Context::getTechnologies(), 'multiple' => false]), new NotBlank(['message' => 'Context technology missing.'])]];
     if ($showTech) {
         $techOptions['choices'] = Context::getTechnologiesLabels();
         $techOptions['multiple'] = false;
     }
     $builder->add('technology', $showTech ? 'choice' : 'hidden', $techOptions);
     $builder->add('fields', 'context_fields_collection', ['type' => 'field', 'allow_add' => true, 'allow_delete' => true, 'prototype' => false, 'by_reference' => false, 'options' => ['label' => false, 'edit_mode_enabled' => $options['edit_mode_enabled'], 'cascade_validation' => $options['cascade_validation']], 'cascade_validation' => $options['cascade_validation'], 'error_bubbling' => false, 'edit_mode_enabled' => $options['edit_mode_enabled'], 'attr' => ['class' => 'js-fields-container']]);
     $vulnTree = $builder->get('vulnTree');
     $builder->remove('vulnTree');
     $builder->add($vulnTree);
     $options['recursionLevel']--;
     if ($options['recursionLevel'] > 0) {
         $builder->add('children', 'context_collection', ['type' => 'context', 'allow_add' => true, 'allow_delete' => true, 'prototype' => false, 'options' => ['recursionLevel' => $options['recursionLevel'], 'label' => false, 'edit_mode_enabled' => $options['edit_mode_enabled'], 'cascade_validation' => $options['cascade_validation']], 'by_reference' => false, 'label' => false, 'cascade_validation' => $options['cascade_validation'], 'error_bubbling' => false, 'attr' => ['class' => 'js-child-contexts']]);
     }
     $builder->add('mappedTo', 'hidden');
 }
Exemple #2
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $sourceOptions = ['attr' => ['class' => 'form-control input-miniature field-source js-field-source'], 'constraints' => [new Choice(['message' => "At least one method must be selected.", 'choices' => FieldDescriptor::getSources(), 'multiple' => false]), new NotBlank()]];
     if ($options['edit_mode_enabled']) {
         $sourceOptions['choices'] = ArraysHelper::arrayFillEqualPairs(FieldDescriptor::getSources());
         $sourceOptions['multiple'] = false;
     } else {
         $sourceOptions['label'] = false;
     }
     $builder->add('source', $options['edit_mode_enabled'] ? 'choice' : 'hidden', $sourceOptions);
     $vulnTree = $builder->get('vulnTree');
     $builder->remove('vulnTree');
     $builder->add($vulnTree);
 }
Exemple #3
0
 protected function getEditFields()
 {
     return ['id' => [], 'created_by' => ['type' => 'select', 'option_list' => 'App\\Admin\\Controller\\User::getAvailableUsers', 'required' => true], 'assigned_to' => ['type' => 'select', 'option_list' => 'App\\Admin\\Controller\\User::getAvailableUsers'], 'title' => ['required' => true], 'description' => ['type' => 'textarea', 'required' => true], 'status' => ['type' => 'select', 'option_list' => ArraysHelper::arrayFillEqualPairs(['new', 'rejected', 'resolved'])], 'created_on' => ['data_type' => 'date'], 'updated_on'];
 }
Exemple #4
0
 protected function getEditFields()
 {
     return ['id' => [], 'status' => ['type' => 'select', 'option_list' => ArraysHelper::arrayFillEqualPairs(\App\Model\Order::getOrderStatuses()), 'required' => true], 'customer_id' => ['label' => 'Customer', 'type' => 'select', 'option_list' => 'App\\Admin\\Controller\\User::getAvailableUsers', 'required' => true], 'customer_firstname', 'customer_lastname', 'customer_email', 'payment_method' => ['required' => true], 'shipping_method' => ['required' => true], 'comment' => ['type' => 'textarea'], 'created_at' => ['data_type' => 'date'], 'updated_at' => ['data_type' => 'date']];
 }
Exemple #5
0
 protected function getEditFields()
 {
     return ['id' => [], 'status' => ['type' => 'select', 'option_list' => ArraysHelper::arrayFillEqualPairs(\App\Model\Order::getOrderStatuses()), 'required' => true, 'label' => 'Статус'], 'customer_id' => ['label' => 'Клиент', 'type' => 'select', 'option_list' => 'App\\Admin\\Controller\\User::getAvailableUsers', 'required' => true], 'customer_firstname' => ['label' => 'Имя клиента'], 'customer_lastname' => ['label' => 'Фамилия клиента'], 'customer_email' => ['label' => 'Email'], 'amount' => ['label' => 'Сумма'], 'comment' => ['type' => 'textarea', 'label' => 'Комментарий'], 'created_at' => ['data_type' => 'date', 'label' => 'Создан'], 'updated_at' => ['data_type' => 'date', 'label' => 'Обновлён']];
 }
 public function renderField($field, array $options = null)
 {
     if (in_array($field, $this->renderedFields)) {
         return;
     }
     if (!is_array($options)) {
         $options = $this->formatOptions[$field];
     } else {
         $options = array_merge($this->formatOptions[$field], $options);
     }
     if (isset($options['value'])) {
         $value = $options['value'];
     } else {
         if ($options['type'] == 'extra') {
             $value = $options['title'];
         } else {
             $value = isset($this->item->{$field}) ? $this->item->{$field} : $options['default_value'];
         }
     }
     $type = $options['type'];
     $escapedValue = htmlspecialchars($value);
     $fieldId = 'field_' . $field;
     $commonAttrs = ' name="' . $field . '" id="' . $fieldId . '" ';
     if ($options['required']) {
         $commonAttrs .= ' required ';
     }
     $label = '<label for="' . $fieldId . '">' . $options['label'] . '</label>';
     echo '<div class="form-group"> ';
     $method = 'render' . strtoupper($options['type'] . 'Field');
     if (method_exists($this, $method)) {
         $this->{$method}();
     } else {
         if ($options['readonly'] && in_array($options['type'], ['text', 'textarea', 'password', 'select'])) {
             echo $label . ': ' . $escapedValue;
         } else {
             if ($options['type'] == 'hidden') {
                 echo '<input type="hidden" value="' . $escapedValue . '" ' . $commonAttrs . ' />';
             } else {
                 if ($options['type'] == 'textarea') {
                     echo $label . '<textarea cols="40" rows="4" ' . $commonAttrs . ' ' . 'class="form-control ' . $options['class_names'] . '">' . $escapedValue . '</textarea>';
                 } else {
                     if ($type == 'select') {
                         $optionList = $options['option_list'];
                         if (is_callable($optionList)) {
                             $optionList = call_user_func_array($optionList, [$this->pixie, $options]);
                         } else {
                             if (!is_array($optionList)) {
                                 $optionList = ArraysHelper::arrayFillEqualPairs([$optionList]);
                             }
                         }
                         echo $label . '<br>' . $this->renderSelect($value, $optionList, array_merge(['name' => $field, 'id' => $fieldId, 'class' => 'form-control ' . $options['class_names']], $options['required'] ? ['required' => 'required'] : []));
                     } else {
                         if ($options['type'] == 'image') {
                             echo $label;
                             if ($value) {
                                 if ($options['use_external_dir']) {
                                     $src = "/upload/download.php?image=" . $escapedValue;
                                 } else {
                                     $src = htmlspecialchars($options['dir_path'] . $value);
                                 }
                                 echo '<br><img src="' . $src . '" alt="" ' . 'class="model-image model-' . htmlspecialchars($this->item->model_name) . '-image" /> <br>' . '<label><input type="checkbox" name="remove_image_' . htmlspecialchars($field) . '" /> Remove image</label>';
                             }
                             echo '<br><input type="file" ' . $commonAttrs . ' class="file-input btn btn-default btn-primary btn-lg" ' . 'title="Select image" value="' . $escapedValue . '">';
                         } else {
                             if ($options['type'] == 'boolean') {
                                 $checked = $value ? ' checked ' : (!$this->item->loaded() && $options['default_value'] ? ' checked ' : '');
                                 echo $label . ' <input type="checkbox" ' . $commonAttrs . $checked . ' class="form-horizontal ' . $options['class_names'] . '" value="1" />';
                             } else {
                                 $dataType = $options['data_type'] == 'email' ? 'email' : 'text';
                                 echo $label . '<input type="' . $dataType . '" value="' . $escapedValue . '" ' . $commonAttrs . ' class="form-control ' . $options['class_names'] . '"/>';
                             }
                         }
                     }
                 }
             }
         }
     }
     echo '</div>';
     $this->renderedFields[] = $field;
 }
Exemple #7
0
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     parent::buildForm($builder, $options);
     $builder->add('methods', 'choice', ['choices' => ArraysHelper::arrayFillEqualPairs(Request::getMethods()), 'multiple' => true, 'expanded' => true, 'label' => false, 'required' => true]);
 }
 public function buildForm(FormBuilderInterface $builder, array $options)
 {
     $builder->add('method', 'choice', ['choices' => ArraysHelper::arrayFillEqualPairs(Request::getMethods()), 'label' => 'Method', 'required' => false, 'empty_data' => '', 'multiple' => false, 'constraints' => [new Choice(['message' => "Method must be selected.", 'choices' => array_merge([''], Request::getMethods()), 'multiple' => false])], 'attr' => ['class' => 'form-control']]);
     $isAjaxChoices = ['no', 'yes'];
     $builder->add('is_ajax', 'choice', ['label' => 'Is Ajax', 'required' => true, 'empty_data' => '', 'choices' => ArraysHelper::arrayFillEqualPairs($isAjaxChoices), 'constraints' => [new Choice(['message' => "Incorrect value selected", 'choices' => $isAjaxChoices, 'multiple' => false])], 'attr' => ['class' => 'form-control']]);
 }
 protected function getEditFields()
 {
     return ['id' => [], 'title' => ['required' => true], 'type' => ['type' => 'select', 'option_list' => ArraysHelper::arrayFillEqualPairs(['html', 'txt'])], 'text' => ['type' => 'textarea', 'class_names' => 'js-editor']];
 }