Passed
Push — master ( acf3f9...98cfe3 )
by Derek Stephen
03:04
created

HorizontalFormErrorRender   A

Complexity

Total Complexity 7

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 7
eloc 24
c 1
b 0
f 0
dl 0
loc 63
ccs 27
cts 27
cp 1
rs 10

4 Methods

Rating   Name   Duplication   Size   Complexity  
A appendMessage() 0 7 1
A render() 0 15 3
A addErrorMessages() 0 8 2
A addCustomErrorMessage() 0 6 1
1
<?php
2
/**
3
 * User: delboy1978uk
4
 * Date: 04/12/2016
5
 * Time: 23:36
6
 */
7
8
namespace Del\Form\Renderer\Error;
9
10
11
use Del\Form\Field\FieldInterface;
12
use DOMElement;
13
use DOMText;
14
15
class HorizontalFormErrorRender extends AbstractErrorRender implements ErrorRendererInterface
16
{
17
    /**
18
     * @param FieldInterface $field
19
     * @return DOMElement
20
     */
21 1
    public function render(FieldInterface $field)
22
    {
23 1
        $helpBlock = $this->createElement('span');
24 1
        $helpBlock->setAttribute('class', 'text-danger');
25
26 1
        if ($this->shouldRender($field)) {
27 1
            $helpBlock = $field->hasCustomErrorMessage()
28 1
                ? $this->addCustomErrorMessage($helpBlock, $field)
29 1
                : $this->addErrorMessages($helpBlock, $field);
30
        }
31
32 1
        $div = $this->createElement('div');
33 1
        $div->setAttribute('class', 'col-sm-offset-2 col-sm-10');
34 1
        $div->appendChild($helpBlock);
35 1
        return $div;
36
    }
37
38
    /**
39
     * @param DOMElement $helpBlock
40
     * @param FieldInterface $field
41
     * @return DOMElement
42
     */
43 1
    private function addCustomErrorMessage(DOMElement $helpBlock, FieldInterface $field)
44
    {
45 1
        $message = $field->getCustomErrorMessage();
46 1
        $text = $this->createText($message);
47 1
        $helpBlock->appendChild($text);
48 1
        return $helpBlock;
49
    }
50
51
    /**
52
     * @param DOMElement $helpBlock
53
     * @param FieldInterface $field
54
     * @return DOMElement
55
     */
56 1
    private function addErrorMessages(DOMElement $helpBlock, FieldInterface $field)
57
    {
58 1
        $messages = $field->getMessages();
59
60 1
        foreach ($messages as $message) {
61 1
            $helpBlock = $this->appendMessage($helpBlock, $message);
62
        }
63 1
        return $helpBlock;
64
    }
65
66
    /**
67
     * @param DOMElement $helpBlock
68
     * @param $message
69
     * @return DOMElement
70
     */
71 1
    private function appendMessage(DOMElement $helpBlock, $message)
72
    {
73 1
        $text = $this->createText($message);
74 1
        $br = $this->createLineBreak();
75 1
        $helpBlock->appendChild($text);
76 1
        $helpBlock->appendChild($br);
77 1
        return $helpBlock;
78
    }
79
80
}