Esempio n. 1
0
 /**
  * @param Parameter $parameter
  * @param File|null $file
  * @return string
  */
 protected function renderImagePreservation(Parameter $parameter, File $file = null)
 {
     if ($file === null) {
         return '';
     }
     return (string) new Element('p', [], [new Element('input', ['type' => 'hidden', 'name' => $parameter->getName() . '[name]', 'value' => $file->getName()]), new Element('input', ['type' => 'hidden', 'name' => $parameter->getName() . '[type]', 'value' => $file->getType()]), new Element('input', ['type' => 'hidden', 'name' => $parameter->getName() . '[data]', 'value' => base64_encode($file->getContent())]), (new FileRenderer())->render($file)]);
 }
Esempio n. 2
0
 private function getInnerParameter(Parameter $parameter)
 {
     $type = $parameter->getType();
     if (!$type instanceof NullableType) {
         throw new \InvalidArgumentException("[{$type}] is not a NullableType");
     }
     return new Parameter($parameter->getName() . '-value', $type->getType());
 }
Esempio n. 3
0
 protected function renderComboBox(Parameter $parameter, $value, $fieldNameSuffix = '', $options = [])
 {
     $id = str_replace(['[', ']'], '-', $parameter->getName());
     $optionsString = json_encode($options);
     $children = $this->renderOptions($parameter, (string) $value);
     $children[] = new Element('script', [], ["\n              \$(function(){\n                \$('#{$id}').combobox({$optionsString});\n              });\n            "]);
     return (string) new Element('select', ['name' => $parameter->getName() . $fieldNameSuffix, 'id' => $id, 'class' => 'form-control combobox'], $children);
 }
Esempio n. 4
0
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  * @throws \Exception
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $param = new Parameter($parameter->getName(), $this->getType($parameter)->getOptionType());
     $options = $this->getType($parameter)->getOptions();
     if (!array_key_exists($serialized, $options)) {
         throw new \Exception("[{$serialized}] is not an option in [" . implode(',', array_keys($options)) . ']');
     }
     return $this->fields->getField($param)->inflate($param, $options[$serialized]);
 }
Esempio n. 5
0
 /**
  * @param Parameter $parameter
  * @param mixed $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     /** @var RangeType $range */
     $range = $parameter->getType();
     $min = $range->getMin();
     $max = $range->getMax();
     $step = $range->getStep();
     $value = is_null($value) ? $min : (int) $value;
     $name = $parameter->getName();
     $id = str_replace(['[', ']'], ['-', ''], $name);
     return (string) new Element('div', ['class' => 'form-group', 'id' => $id], [new Element('div', ['class' => 'slider']), new Element('input', ['class' => 'amount form-control', 'type' => 'number', 'name' => $name, 'value' => $value]), new Element('script', [], ["\$(function() {\n                    \$('#{$id} .slider').slider({\n                      range: 'min',\n                      value: {$value},\n                      min: {$min},\n                      max: {$max},\n                      step: {$step},\n                      slide: function(event, ui) {\n                            \$('#{$id} .amount').val(ui.value);\n                        }\n                    });\n                });"])]);
 }
 /**
  * @param Parameter $parameter
  * @return string
  * @throws \Exception
  */
 public function read(Parameter $parameter)
 {
     $prompt = $parameter->getName();
     if ($parameter->isRequired()) {
         $prompt = $prompt . '*';
     }
     $field = $this->getField($parameter);
     $description = $field->getDescription($parameter);
     if ($description !== null) {
         $prompt .= ' ' . $description;
     }
     $value = $this->console->read($prompt . ': ');
     while ($parameter->isRequired() && !$value) {
         $value = $this->console->read($prompt . ': ');
     }
     return $value;
 }
Esempio n. 7
0
 private function lineParameter(Parameter $parameter, $lineNumber)
 {
     return new Parameter($parameter->getName() . '-' . $lineNumber, $parameter->getType());
 }
Esempio n. 8
0
 /**
  * @param Parameter $parameter
  * @return boolean
  */
 public function has(Parameter $parameter)
 {
     return $this->console->hasOption($parameter->getName());
 }
Esempio n. 9
0
 /**
  * @param Parameter $parameter
  * @return boolean
  */
 public function has(Parameter $parameter)
 {
     return $this->request->getArguments()->has($parameter->getName());
 }
Esempio n. 10
0
 /**
  * @param Parameter $parameter
  * @param \DateInterval $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     return (string) new Element('div', [], [new Element('input', ['class' => 'form-control-inline', 'type' => 'number', 'size' => 3, 'name' => $parameter->getName() . '[d]', 'value' => $value->d]), new Element('span', [], ['days']), new Element('input', ['class' => 'form-control-inline', 'type' => 'number', 'size' => 3, 'name' => $parameter->getName() . '[h]', 'value' => $value->h]), new Element('span', [], ['hours']), new Element('input', ['class' => 'form-control-inline', 'type' => 'number', 'size' => 3, 'name' => $parameter->getName() . '[i]', 'value' => $value->i]), new Element('span', [], ['minutes'])]);
 }
Esempio n. 11
0
 /**
  * @param Parameter $parameter
  * @param mixed $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     return implode('', [new Element('input', ['type' => 'hidden', 'name' => $parameter->getName(), 'value' => 0]), new Element('input', array_merge(['class' => 'boolean-switch', 'type' => 'checkbox', 'name' => $parameter->getName(), 'value' => 1], $value ? ['checked' => 'checked'] : []))]);
 }
Esempio n. 12
0
 /**
  * @param Parameter $parameter
  * @param Text $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     return (string) new Element('textarea', array_merge(['name' => $parameter->getName(), 'class' => 'form-control'], $parameter->isRequired() ? ['required' => 'required'] : []), [$value ? $value->getContent() : null]);
 }
Esempio n. 13
0
 /**
  * @param Parameter $parameter
  * @param mixed $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     return (string) new Element('select', ['name' => $parameter->getName(), 'class' => 'form-control'], $this->renderOptions($parameter, $value));
 }
Esempio n. 14
0
 /**
  * @param Parameter $parameter
  * @param mixed|null $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     $id = str_replace(['[', ']'], '-', $parameter->getName());
     return implode("\n", array_merge([new Element('select', ['class' => 'form-control form-group', 'onchange' => "\$(this).next().hide().appendTo('body'); \$('#' + \$(this).val()).show().insertAfter(\$(this));"], $this->getOptions($parameter, $value, $id))], $this->renderOptions($parameter, $value, $id)));
 }
Esempio n. 15
0
 /**
  * @param Parameter $parameter
  * @param string $suffix
  * @return Parameter
  */
 private function makeInnerParameter(Parameter $parameter, $suffix = '')
 {
     /** @var ArrayType $type */
     $type = $parameter->getType();
     return new Parameter($parameter->getName() . $suffix, $type->getItemType());
 }
Esempio n. 16
0
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $param = new Parameter($parameter->getName(), $this->getType($parameter)->getOptionType());
     return $this->fields->getField($param)->inflate($param, $this->getType($parameter)->getOptions()[(int) $serialized]);
 }
Esempio n. 17
0
 private function get(Parameter $parameter, $array)
 {
     if (isset($array[$parameter->getName()])) {
         return $array[$parameter->getName()];
     }
     return null;
 }
Esempio n. 18
0
 /**
  * @param Parameter $parameter
  * @param Color $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     return (string) new Element('input', array_merge(['type' => 'color', 'name' => $parameter->getName(), 'value' => $value ? $value->asHex() : ''], $parameter->isRequired() ? ['required' => 'required'] : []));
 }
Esempio n. 19
0
 /**
  * @param Parameter $parameter
  * @param string $serialized
  * @return mixed
  */
 public function inflate(Parameter $parameter, $serialized)
 {
     $primitiveParameter = new Parameter($parameter->getName(), $this->getType($parameter)->getPrimitive());
     return $this->fields->getField($primitiveParameter)->inflate($primitiveParameter, $serialized);
 }
Esempio n. 20
0
 /**
  * @param Parameter $parameter
  * @return array|\rtens\domin\delivery\web\Element[]
  */
 public function headElements(Parameter $parameter)
 {
     $action = $this->actions->getAction($parameter->getName());
     $headElements = [self::descriptionCode()];
     foreach ($action->parameters() as $parameter) {
         $field = $this->fields->getField($parameter);
         if ($field instanceof WebField) {
             $headElements = array_merge($headElements, $field->headElements($parameter));
         }
     }
     return $headElements;
 }
Esempio n. 21
0
 private function makePropertyParameter(Parameter $parameter, Property $property)
 {
     return new Parameter($parameter->getName() . '[' . $property->name() . ']', $property->type(), $property->isRequired());
 }
Esempio n. 22
0
 /**
  * @param Parameter $parameter
  * @param null|\DateTimeInterface $value
  * @return string
  */
 public function render(Parameter $parameter, $value)
 {
     return (string) new Element('div', ['class' => 'input-group date datetimepicker', 'style' => 'width: 100%;'], [new Element('span', ['class' => 'input-group-addon', 'onclick' => "\$(this).closest('.datetimepicker').datetimepicker(dateTimePickerSettings); \$(this).siblings('.hidden').toggleClass('hidden'); \$(this).remove(); return false;"], [new Element('span', ['class' => 'glyphicon glyphicon-calendar', 'style' => 'opacity: 0.5'])]), new Element('span', ['class' => 'input-group-addon hidden'], [new Element('span', ['class' => 'glyphicon glyphicon-calendar'])]), new Element('input', array_merge(['type' => 'text', 'name' => $parameter->getName(), 'class' => 'form-control', 'value' => $value ? $this->serialize($value) : null], $parameter->isRequired() ? ['required' => 'required'] : []))]);
 }
Esempio n. 23
0
 /**
  * @param Parameter $parameter
  * @return boolean
  */
 public function has(Parameter $parameter)
 {
     return $this->request->files->has($parameter->getName()) || $this->request->get($parameter->getName(), '__NOPEDINOPE__') != '__NOPEDINOPE__';
 }
Esempio n. 24
0
 /**
  * @param Parameter $parameter
  * @return mixed The serialized paramater
  */
 public function read(Parameter $parameter)
 {
     return $this->console->getOption($parameter->getName());
 }
Esempio n. 25
0
 /**
  * @param Parameter $parameter
  * @return boolean
  */
 public function has(Parameter $parameter)
 {
     return array_key_exists($parameter->getName(), $this->parameters);
 }
Esempio n. 26
0
 public function render(Parameter $parameter, $value)
 {
     return (string) new Element('input', array_merge(['class' => 'form-control', 'type' => 'text', 'name' => $parameter->getName(), 'value' => $value], $parameter->isRequired() ? ['required' => 'required'] : []));
 }