public function testBase()
 {
     $field = Builder::collectionMultiple(['section' => ['title' => Builder::text()->label('Title'), 'text' => Builder::textarea()->label('Text')], 'picture' => ['caption' => Builder::text()->label('Caption'), 'image' => Builder::file()->label('Image')], 'quote' => ['cite' => Builder::textarea()->label('Cite'), 'author' => Builder::text()->label('Author')]]);
     $this->assertInstanceOf('FormManager\\Containers\\CollectionMultiple', $field);
     $this->assertInstanceOf('FormManager\\Containers\\Group', $field->template['section']);
     return $field;
 }
Exemplo n.º 2
0
 public function testBase()
 {
     $field = Builder::group(['name' => Builder::text()->label('Name'), 'email' => Builder::email()->label('email'), 'age' => Builder::number()->label('Age'), 'image' => Builder::file()->label('Image')]);
     $this->assertInstanceOf('FormManager\\Containers\\Group', $field);
     $this->assertInstanceOf('FormManager\\Fields\\Text', $field['name']);
     return $field;
 }
Exemplo n.º 3
0
 public function testTwo()
 {
     $input = Builder::text()->id('my-id')->label('Hello');
     $input->label->id('my-label-id');
     $this->assertEquals('my-id', $input->attr('id'));
     $this->assertEquals('<label id="my-label-id" for="my-id">Hello</label> <input type="text" id="my-id" aria-labelledby="my-label-id"> ', (string) $input);
 }
Exemplo n.º 4
0
 public function testOne()
 {
     $input = Builder::text()->datalist(['Hello' => 'World'])->id('my-id');
     $input->datalist->id('my-datalist-id');
     $this->assertEquals('my-id', $input->attr('id'));
     $this->assertEquals(' <input type="text" id="my-id" list="my-datalist-id"><datalist id="my-datalist-id"><option value="Hello">World</option></datalist> ', (string) $input);
 }
Exemplo n.º 5
0
 public function testLocales()
 {
     $input = Builder::text()->required();
     $message = 'custom error message';
     FormManager\Validators\Required::$error_message = $message;
     $this->assertFalse($input->isValid());
     $this->assertEquals($message, $input->error());
 }
Exemplo n.º 6
0
 public function testBasic()
 {
     $this->_testElement(Builder::text());
     $this->_testField(Builder::text());
     $this->_testRequired(Builder::text());
     $this->_testMaxlength(Builder::text());
     $this->_testPattern(Builder::text());
     $this->_testValidator(Builder::text());
 }
Exemplo n.º 7
0
 public function testFieldsets()
 {
     $form = Builder::form(['submit' => Builder::submit()])->fieldsets(['personal' => ['name' => Builder::text(), 'surname' => Builder::text(), 'age' => Builder::number()]]);
     $this->assertCount(4, $form);
     $this->assertCount(1, $form->fieldsets());
     $this->assertCount(3, $form->fieldsets()['personal']);
     $form->clear()->add(['other' => Builder::text()]);
     $this->assertCount(1, $form);
 }
Exemplo n.º 8
0
 public function testValidation()
 {
     $form = Builder::form(['name' => Builder::text()->maxlength(200)->label('Name'), 'email' => Builder::email()->label('Email'), 'password' => Builder::password()->label('Password'), 'repeat_password' => Builder::password()->label('Repeat password')])->addValidator(function ($form) {
         $password1 = $form['password']->val();
         $password2 = $form['repeat_password']->val();
         if ($password1 != $password2) {
             throw new InvalidValueException('The passwords does not match');
         }
     });
     $form->val(['name' => 'Oscar', 'email' => '*****@*****.**', 'password' => '1234', 'repeat_password' => '12345']);
     $this->assertFalse($form->isValid());
     $this->assertEquals('The passwords does not match', $form->error());
     $this->assertCount(1, $form->getElementsWithErrors());
     $form['repeat_password']->val('1234');
     $this->assertTrue($form->isValid());
     $this->assertNull($form->error());
     $this->assertCount(0, $form->getElementsWithErrors());
 }
Exemplo n.º 9
0
<?php

require __DIR__ . '/src/autoloader.php';
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/php.log');
use FormManager\Builder as F;
use FormManager\InvalidValueException;
$form = F::Form(['data' => F::group(['dia' => F::number()->label('Dia'), 'mes' => F::number()->label('Mes')]), 'colores' => F::choose(['red' => F::radio()->label('Red'), 'blue' => F::radio()->label('Blue'), 'green' => F::radio()->label('Green')]), 'personas' => F::collection(['nome' => F::text()->label('Nome'), 'apelido' => F::text()->label('Apelidos')]), 'bloques' => F::collectionMultiple(['texto' => ['titulo' => F::text()->label('Titulo'), 'texto' => F::textarea()->label('Texto')], 'cita' => ['texto' => F::textarea()->label('Texto'), 'autor' => F::text()->label('Autor')]]), 'enviar' => F::submit()->html('Enviar')]);
$form->fieldsets(['personal' => ['nome' => F::text()->label('O teu nome')->addValidator(function ($input) {
    if ($input->val() !== 'Lolo') {
        throw new InvalidValueException('Nome non valido, debe ser Lolo');
    }
})->datalist(['Lolo' => 'Lolo', 'Manolo' => 'Manolo']), 'apelido' => F::text()->label('O teu apelido'), 'idade' => F::select()->options([1 => 'Menor de idade', 2 => 'Maiore de idade'])->label('Idade')->render(function ($input) {
    return '<p>' . $input . '</p>';
})]]);
$form['nome']->errorLabel->class('my-error');
$form->loadFromGlobals();
if (!$form->isValid()) {
    echo 'Invalid values';
}
echo $form;
Exemplo n.º 10
0
 public function __construct()
 {
     return $this->method('post')->add(['id' => B::hidden(), '_processor' => B::hidden()->value('edit'), 'name' => B::text()->required()->attr(['placeholder' => __('Name')]), 'user' => B::text()->required()->attr(['placeholder' => __('User')]), 'password' => B::password()->attr(['placeholder' => __('Password')]), 'password_repeat' => B::password()->attr(['placeholder' => __('Repeat Password')]), 'admin' => B::checkbox()->attr(['placeholder' => __('Admin'), 'value' => '1']), 'enabled' => B::checkbox()->attr(['placeholder' => __('Enabled'), 'value' => '1'])])->setRender('Bootstrap');
 }
Exemplo n.º 11
0
 public function __construct()
 {
     return $this->method('post')->add(['_processor' => B::hidden()->val('login'), 'user' => B::text()->attr(['placeholder' => __('Tu usuario'), 'autofocus' => true, 'required' => true]), 'password' => B::password()->attr(['placeholder' => __('Tu contraseña'), 'required' => true]), 'remember' => B::checkbox()->attr(['placeholder' => __('Recuérdame'), 'value' => '1'])])->setRender('Bootstrap');
 }