Completed
Push — master ( 1a0349...c60a32 )
by Ben
09:05
created
src/Former/Form/Fields/Plaintext.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -8,20 +8,20 @@
 block discarded – undo
8 8
  */
9 9
 class Plaintext extends Field
10 10
 {
11
-	////////////////////////////////////////////////////////////////////
12
-	/////////////////////////// CORE METHODS ///////////////////////////
13
-	////////////////////////////////////////////////////////////////////
11
+    ////////////////////////////////////////////////////////////////////
12
+    /////////////////////////// CORE METHODS ///////////////////////////
13
+    ////////////////////////////////////////////////////////////////////
14 14
 
15
-	/**
16
-	 * Prints out the current tag
17
-	 *
18
-	 * @return string A plain text tag
19
-	 */
20
-	public function render()
21
-	{
22
-		$this->addClass($this->app['former.framework']->getPlainTextClasses());
23
-		$this->setId();
15
+    /**
16
+     * Prints out the current tag
17
+     *
18
+     * @return string A plain text tag
19
+     */
20
+    public function render()
21
+    {
22
+        $this->addClass($this->app['former.framework']->getPlainTextClasses());
23
+        $this->setId();
24 24
 
25
-		return $this->app['former.framework']->createPlainTextField($this);
26
-	}
25
+        return $this->app['former.framework']->createPlainTextField($this);
26
+    }
27 27
 }
Please login to merge, or discard this patch.
src/Former/Form/Fields/Hidden.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -12,31 +12,31 @@
 block discarded – undo
12 12
 class Hidden extends Field
13 13
 {
14 14
 
15
-	////////////////////////////////////////////////////////////////////
16
-	/////////////////////////// CORE METHODS ///////////////////////////
17
-	////////////////////////////////////////////////////////////////////
15
+    ////////////////////////////////////////////////////////////////////
16
+    /////////////////////////// CORE METHODS ///////////////////////////
17
+    ////////////////////////////////////////////////////////////////////
18 18
 
19
-	/**
20
-	 * Easier arguments order for hidden fields
21
-	 *
22
-	 * @param Container $app        The Container
23
-	 * @param string    $type       hidden
24
-	 * @param string    $name       Field names
25
-	 * @param string    $value      Its value
26
-	 * @param array     $attributes Attributes
27
-	 */
28
-	public function __construct(Container $app, $type, $name, $value, $attributes)
29
-	{
30
-		parent::__construct($app, $type, $name, '', $value, $attributes);
31
-	}
19
+    /**
20
+     * Easier arguments order for hidden fields
21
+     *
22
+     * @param Container $app        The Container
23
+     * @param string    $type       hidden
24
+     * @param string    $name       Field names
25
+     * @param string    $value      Its value
26
+     * @param array     $attributes Attributes
27
+     */
28
+    public function __construct(Container $app, $type, $name, $value, $attributes)
29
+    {
30
+        parent::__construct($app, $type, $name, '', $value, $attributes);
31
+    }
32 32
 
33
-	/**
34
-	 * Outputs a hidden field
35
-	 *
36
-	 * @return string An <input type="hidden" />
37
-	 */
38
-	public function render()
39
-	{
40
-		return HtmlInput::create('hidden', $this->name, Helpers::encode($this->value), $this->attributes)->render();
41
-	}
33
+    /**
34
+     * Outputs a hidden field
35
+     *
36
+     * @return string An <input type="hidden" />
37
+     */
38
+    public function render()
39
+    {
40
+        return HtmlInput::create('hidden', $this->name, Helpers::encode($this->value), $this->attributes)->render();
41
+    }
42 42
 }
Please login to merge, or discard this patch.
src/Former/Form/Fields/Input.php 1 patch
Indentation   +142 added lines, -142 removed lines patch added patch discarded remove patch
@@ -10,146 +10,146 @@
 block discarded – undo
10 10
  */
11 11
 class Input extends Field
12 12
 {
13
-	/**
14
-	 * Current datalist stored
15
-	 *
16
-	 * @var array
17
-	 */
18
-	protected $datalist = array();
19
-
20
-	/**
21
-	 * Properties to be injected as attributes
22
-	 *
23
-	 * @var array
24
-	 */
25
-	protected $injectedProperties = array('type', 'name', 'value');
26
-
27
-	////////////////////////////////////////////////////////////////////
28
-	/////////////////////////// CORE METHODS ///////////////////////////
29
-	////////////////////////////////////////////////////////////////////
30
-
31
-	/**
32
-	 * Build an input field
33
-	 *
34
-	 * @param Container $app        The Container
35
-	 * @param string    $type       The input type
36
-	 * @param string    $name       Field name
37
-	 * @param string    $label      Its label
38
-	 * @param string    $value      Its value
39
-	 * @param array     $attributes Attributes
40
-	 */
41
-	public function __construct(Container $app, $type, $name, $label, $value, $attributes)
42
-	{
43
-		parent::__construct($app, $type, $name, $label, $value, $attributes);
44
-
45
-		// Multiple models population
46
-		if (is_array($this->value)) {
47
-			$values = array();
48
-			foreach ($this->value as $value) {
49
-				$values[] = is_object($value) ? $value->__toString() : $value;
50
-			}
51
-			if (isset($values)) {
52
-				$this->value = implode(', ', $values);
53
-			}
54
-		}
55
-	}
56
-
57
-	/**
58
-	 * Prints out the current tag
59
-	 *
60
-	 * @return string An input tag
61
-	 */
62
-	public function render()
63
-	{
64
-		// Particular case of the search element
65
-		if ($this->isOfType('search')) {
66
-			$this->asSearch();
67
-		}
68
-
69
-		$this->setId();
70
-
71
-		// Render main input
72
-		$input = parent::render();
73
-
74
-		// If we have a datalist to append, print it out
75
-		if ($this->datalist) {
76
-			$input .= $this->createDatalist($this->list, $this->datalist);
77
-		}
78
-
79
-		return $input;
80
-	}
81
-
82
-	////////////////////////////////////////////////////////////////////
83
-	////////////////////////// FIELD METHODS ///////////////////////////
84
-	////////////////////////////////////////////////////////////////////
85
-
86
-	/**
87
-	 * Adds a datalist to the current field
88
-	 *
89
-	 * @param  array  $datalist An array to use a source
90
-	 * @param  string $value    The field to use as value
91
-	 * @param  string $key      The field to use as key
92
-	 */
93
-	public function useDatalist($datalist, $value = null, $key = null)
94
-	{
95
-		$datalist = Helpers::queryToArray($datalist, $value, $key);
96
-
97
-		$list = $this->list ?: 'datalist_'.$this->name;
98
-
99
-		// Create the link to the datalist
100
-		$this->list     = $list;
101
-		$this->datalist = $datalist;
102
-
103
-		return $this;
104
-	}
105
-
106
-	/**
107
-	 * Add range to the input
108
-	 *
109
-	 * @param  integer $min
110
-	 * @param  integer $max
111
-	 *
112
-	 * @return self
113
-	 */
114
-	public function range($min, $max)
115
-	{
116
-		$this->min($min);
117
-		$this->max($max);
118
-
119
-		return $this;
120
-	}
121
-
122
-	////////////////////////////////////////////////////////////////////
123
-	/////////////////////////////// HELPERS ////////////////////////////
124
-	////////////////////////////////////////////////////////////////////
125
-
126
-	/**
127
-	 * Render a text element as a search element
128
-	 */
129
-	private function asSearch()
130
-	{
131
-		$this->type = 'text';
132
-		$this->addClass('search-query');
133
-
134
-		return $this;
135
-	}
136
-
137
-	/**
138
-	 * Renders a datalist
139
-	 *
140
-	 * @param string $id     The datalist's id attribute
141
-	 * @param array  $values Its values
142
-	 *
143
-	 * @return string A <datalist> tag
144
-	 */
145
-	private function createDatalist($id, $values)
146
-	{
147
-		$datalist = '<datalist id="'.$id.'">';
148
-		foreach ($values as $key => $value) {
149
-			$datalist .= '<option value="'.$value.'">'.$key.'</option>';
150
-		}
151
-		$datalist .= '</datalist>';
152
-
153
-		return $datalist;
154
-	}
13
+    /**
14
+     * Current datalist stored
15
+     *
16
+     * @var array
17
+     */
18
+    protected $datalist = array();
19
+
20
+    /**
21
+     * Properties to be injected as attributes
22
+     *
23
+     * @var array
24
+     */
25
+    protected $injectedProperties = array('type', 'name', 'value');
26
+
27
+    ////////////////////////////////////////////////////////////////////
28
+    /////////////////////////// CORE METHODS ///////////////////////////
29
+    ////////////////////////////////////////////////////////////////////
30
+
31
+    /**
32
+     * Build an input field
33
+     *
34
+     * @param Container $app        The Container
35
+     * @param string    $type       The input type
36
+     * @param string    $name       Field name
37
+     * @param string    $label      Its label
38
+     * @param string    $value      Its value
39
+     * @param array     $attributes Attributes
40
+     */
41
+    public function __construct(Container $app, $type, $name, $label, $value, $attributes)
42
+    {
43
+        parent::__construct($app, $type, $name, $label, $value, $attributes);
44
+
45
+        // Multiple models population
46
+        if (is_array($this->value)) {
47
+            $values = array();
48
+            foreach ($this->value as $value) {
49
+                $values[] = is_object($value) ? $value->__toString() : $value;
50
+            }
51
+            if (isset($values)) {
52
+                $this->value = implode(', ', $values);
53
+            }
54
+        }
55
+    }
56
+
57
+    /**
58
+     * Prints out the current tag
59
+     *
60
+     * @return string An input tag
61
+     */
62
+    public function render()
63
+    {
64
+        // Particular case of the search element
65
+        if ($this->isOfType('search')) {
66
+            $this->asSearch();
67
+        }
68
+
69
+        $this->setId();
70
+
71
+        // Render main input
72
+        $input = parent::render();
73
+
74
+        // If we have a datalist to append, print it out
75
+        if ($this->datalist) {
76
+            $input .= $this->createDatalist($this->list, $this->datalist);
77
+        }
78
+
79
+        return $input;
80
+    }
81
+
82
+    ////////////////////////////////////////////////////////////////////
83
+    ////////////////////////// FIELD METHODS ///////////////////////////
84
+    ////////////////////////////////////////////////////////////////////
85
+
86
+    /**
87
+     * Adds a datalist to the current field
88
+     *
89
+     * @param  array  $datalist An array to use a source
90
+     * @param  string $value    The field to use as value
91
+     * @param  string $key      The field to use as key
92
+     */
93
+    public function useDatalist($datalist, $value = null, $key = null)
94
+    {
95
+        $datalist = Helpers::queryToArray($datalist, $value, $key);
96
+
97
+        $list = $this->list ?: 'datalist_'.$this->name;
98
+
99
+        // Create the link to the datalist
100
+        $this->list     = $list;
101
+        $this->datalist = $datalist;
102
+
103
+        return $this;
104
+    }
105
+
106
+    /**
107
+     * Add range to the input
108
+     *
109
+     * @param  integer $min
110
+     * @param  integer $max
111
+     *
112
+     * @return self
113
+     */
114
+    public function range($min, $max)
115
+    {
116
+        $this->min($min);
117
+        $this->max($max);
118
+
119
+        return $this;
120
+    }
121
+
122
+    ////////////////////////////////////////////////////////////////////
123
+    /////////////////////////////// HELPERS ////////////////////////////
124
+    ////////////////////////////////////////////////////////////////////
125
+
126
+    /**
127
+     * Render a text element as a search element
128
+     */
129
+    private function asSearch()
130
+    {
131
+        $this->type = 'text';
132
+        $this->addClass('search-query');
133
+
134
+        return $this;
135
+    }
136
+
137
+    /**
138
+     * Renders a datalist
139
+     *
140
+     * @param string $id     The datalist's id attribute
141
+     * @param array  $values Its values
142
+     *
143
+     * @return string A <datalist> tag
144
+     */
145
+    private function createDatalist($id, $values)
146
+    {
147
+        $datalist = '<datalist id="'.$id.'">';
148
+        foreach ($values as $key => $value) {
149
+            $datalist .= '<option value="'.$value.'">'.$key.'</option>';
150
+        }
151
+        $datalist .= '</datalist>';
152
+
153
+        return $datalist;
154
+    }
155 155
 }
Please login to merge, or discard this patch.
src/Former/Form/Fields/Uneditable.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -9,21 +9,21 @@
 block discarded – undo
9 9
 class Uneditable extends Field
10 10
 {
11 11
 
12
-	////////////////////////////////////////////////////////////////////
13
-	/////////////////////////// CORE METHODS ///////////////////////////
14
-	////////////////////////////////////////////////////////////////////
12
+    ////////////////////////////////////////////////////////////////////
13
+    /////////////////////////// CORE METHODS ///////////////////////////
14
+    ////////////////////////////////////////////////////////////////////
15 15
 
16
-	/**
17
-	 * Prints out the current tag
18
-	 *
19
-	 * @return string An uneditable input tag
20
-	 */
21
-	public function render()
22
-	{
23
-		$this->addClass($this->app['former.framework']->getUneditableClasses());
16
+    /**
17
+     * Prints out the current tag
18
+     *
19
+     * @return string An uneditable input tag
20
+     */
21
+    public function render()
22
+    {
23
+        $this->addClass($this->app['former.framework']->getUneditableClasses());
24 24
 
25
-		$this->setId();
25
+        $this->setId();
26 26
 
27
-		return $this->app['former.framework']->createDisabledField($this);
28
-	}
27
+        return $this->app['former.framework']->createDisabledField($this);
28
+    }
29 29
 }
Please login to merge, or discard this patch.
src/Former/Form/Fields/Textarea.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -8,17 +8,17 @@
 block discarded – undo
8 8
  */
9 9
 class Textarea extends Field
10 10
 {
11
-	/**
12
-	 * The textarea's element
13
-	 *
14
-	 * @var string
15
-	 */
16
-	protected $element = 'textarea';
11
+    /**
12
+     * The textarea's element
13
+     *
14
+     * @var string
15
+     */
16
+    protected $element = 'textarea';
17 17
 
18
-	/**
19
-	 * The textarea's self-closing state
20
-	 *
21
-	 * @var boolean
22
-	 */
23
-	protected $isSelfClosing = false;
18
+    /**
19
+     * The textarea's self-closing state
20
+     *
21
+     * @var boolean
22
+     */
23
+    protected $isSelfClosing = false;
24 24
 }
Please login to merge, or discard this patch.
src/Former/Facades/Former.php 1 patch
Indentation   +12 added lines, -12 removed lines patch added patch discarded remove patch
@@ -9,17 +9,17 @@
 block discarded – undo
9 9
  */
10 10
 class Former extends Facade
11 11
 {
12
-	/**
13
-	 * Get the registered component.
14
-	 *
15
-	 * @return string
16
-	 */
17
-	protected static function getFacadeAccessor()
18
-	{
19
-		if (!static::$app) {
20
-			static::$app = FormerServiceProvider::make();
21
-		}
12
+    /**
13
+     * Get the registered component.
14
+     *
15
+     * @return string
16
+     */
17
+    protected static function getFacadeAccessor()
18
+    {
19
+        if (!static::$app) {
20
+            static::$app = FormerServiceProvider::make();
21
+        }
22 22
 
23
-		return 'former';
24
-	}
23
+        return 'former';
24
+    }
25 25
 }
Please login to merge, or discard this patch.
src/Former/MethodDispatcher.php 1 patch
Indentation   +235 added lines, -235 removed lines patch added patch discarded remove patch
@@ -11,239 +11,239 @@
 block discarded – undo
11 11
  */
12 12
 class MethodDispatcher
13 13
 {
14
-	/**
15
-	 * The IoC Container
16
-	 *
17
-	 * @var Container
18
-	 */
19
-	protected $app;
20
-
21
-	/**
22
-	 * An array of fields repositories
23
-	 *
24
-	 * @var array
25
-	 */
26
-	protected $repositories = array();
27
-
28
-	/**
29
-	 * Build a new Dispatcher
30
-	 *
31
-	 * @param Container $app
32
-	 * @param array     $repositories
33
-	 */
34
-	public function __construct(Container $app, $repositories)
35
-	{
36
-		$this->app          = $app;
37
-		$this->repositories = (array) $repositories;
38
-	}
39
-
40
-	////////////////////////////////////////////////////////////////////
41
-	///////////////////////////// REPOSITORIES /////////////////////////
42
-	////////////////////////////////////////////////////////////////////
43
-
44
-	/**
45
-	 * Add a fields repository
46
-	 *
47
-	 * @param string $repository
48
-	 *
49
-	 * @return $this
50
-	 */
51
-	public function addRepository($repository)
52
-	{
53
-		array_unshift($this->repositories, $repository);
54
-
55
-		return $this;
56
-	}
57
-
58
-	////////////////////////////////////////////////////////////////////
59
-	///////////////////////////// DISPATCHERS //////////////////////////
60
-	////////////////////////////////////////////////////////////////////
61
-
62
-	/**
63
-	 * Dispatch a call to a registered macro
64
-	 *
65
-	 * @param  string $method     The macro's name
66
-	 * @param  array  $parameters The macro's arguments
67
-	 *
68
-	 * @return mixed
69
-	 */
70
-	public function toMacros($method, $parameters)
71
-	{
72
-		if (!$this->app['former']->hasMacro($method)) {
73
-			return false;
74
-		}
75
-
76
-		// Get and format macro
77
-		$callback = $this->app['former']->getMacro($method);
78
-		if ($callback instanceof Closure) {
79
-			return call_user_func_array($callback, $parameters);
80
-		} // Cancel if the macro is invalid
81
-		elseif (!is_string($callback)) {
82
-			return false;
83
-		}
84
-
85
-		// Get class and method
86
-		list($class, $method) = explode('@', $callback);
87
-		$this->app->instance('Illuminate\Container\Container', $this->app);
88
-
89
-		return call_user_func_array(array($this->app->make($class), $method), $parameters);
90
-	}
91
-
92
-	/**
93
-	 * Dispatch a call over to Elements
94
-	 *
95
-	 * @param string $method     The method called
96
-	 * @param array  $parameters Its parameters
97
-	 *
98
-	 * @return string
99
-	 */
100
-	public function toElements($method, $parameters)
101
-	{
102
-		// Disregards if the method isn't an element
103
-		if (!method_exists($elements = new Form\Elements($this->app, $this->app['session']), $method)) {
104
-			return false;
105
-		}
106
-
107
-		return call_user_func_array(array($elements, $method), $parameters);
108
-	}
109
-
110
-	/**
111
-	 * Dispatch a call over to Form
112
-	 *
113
-	 * @param string $method     The method called
114
-	 * @param array  $parameters Its parameters
115
-	 *
116
-	 * @return Form
117
-	 */
118
-	public function toForm($method, $parameters)
119
-	{
120
-		// Disregards if the method doesn't contain 'open'
121
-		if (!Str::contains($method, 'open') and !Str::contains($method, 'Open')) {
122
-			return false;
123
-		}
124
-
125
-		$form = new Form\Form($this->app, $this->app['url'], $this->app['former.populator']);
126
-
127
-		return $form->openForm($method, $parameters);
128
-	}
129
-
130
-	/**
131
-	 * Dispatch a call over to Group
132
-	 *
133
-	 * @param string $method     The method called
134
-	 * @param array  $parameters Its parameters
135
-	 *
136
-	 * @return Group
137
-	 */
138
-	public function toGroup($method, $parameters)
139
-	{
140
-		// Disregards if the method isn't "group"
141
-		if ($method != 'group') {
142
-			return false;
143
-		}
144
-
145
-		// Create opener
146
-		$group = new Form\Group(
147
-			$this->app,
148
-			array_get($parameters, 0, null),
149
-			array_get($parameters, 1, null)
150
-		);
151
-
152
-		// Set custom group as true
153
-		Form\Group::$opened = true;
154
-
155
-		// Set custom group reference
156
-		Form\Group::$openGroup = $group;
157
-
158
-		return $group;
159
-	}
160
-
161
-	/**
162
-	 * Dispatch a call over to Actions
163
-	 *
164
-	 * @param string $method     The method called
165
-	 * @param array  $parameters Its parameters
166
-	 *
167
-	 * @return Actions
168
-	 */
169
-	public function toActions($method, $parameters)
170
-	{
171
-		if ($method != 'actions') {
172
-			return false;
173
-		}
174
-
175
-		return new Form\Actions($this->app, $parameters);
176
-	}
177
-
178
-	/**
179
-	 * Dispatch a call over to the Fields
180
-	 *
181
-	 * @param string $method     The method called
182
-	 * @param array  $parameters Its parameters
183
-	 *
184
-	 * @return Field
185
-	 */
186
-	public function toFields($method, $parameters)
187
-	{
188
-		// Listing parameters
189
-		$class = $this->getClassFromMethod($method);
190
-		$field = new $class(
191
-			$this->app,
192
-			$method,
193
-			array_get($parameters, 0),
194
-			array_get($parameters, 1),
195
-			array_get($parameters, 2),
196
-			array_get($parameters, 3),
197
-			array_get($parameters, 4),
198
-			array_get($parameters, 5)
199
-		);
200
-
201
-		return $field;
202
-	}
203
-
204
-	////////////////////////////////////////////////////////////////////
205
-	///////////////////////////// HELPERS //////////////////////////////
206
-	////////////////////////////////////////////////////////////////////
207
-
208
-	/**
209
-	 * Get the correct class to call according to the created field
210
-	 *
211
-	 * @param  string $method The field created
212
-	 *
213
-	 * @return string The correct class
214
-	 */
215
-	protected function getClassFromMethod($method)
216
-	{
217
-		// If the field's name directly match a class, call it
218
-		$class        = Str::singular(Str::title($method));
219
-		$studly_class = Str::singular(Str::studly($method));
220
-		foreach ($this->repositories as $repository) {
221
-			if (class_exists($repository.$studly_class)) {
222
-				return $repository.$studly_class;
223
-			} else {
224
-				if (class_exists($repository.$class)) {
225
-					return $repository.$class;
226
-				}
227
-			}
228
-		}
229
-
230
-		// Else convert known fields to their classes
231
-		switch ($method) {
232
-			case 'submit':
233
-			case 'link':
234
-			case 'reset':
235
-				$class = Former::FIELDSPACE.'Button';
236
-				break;
237
-
238
-			case 'multiselect':
239
-				$class = Former::FIELDSPACE.'Select';
240
-				break;
241
-
242
-			default:
243
-				$class = Former::FIELDSPACE.'Input';
244
-				break;
245
-		}
246
-
247
-		return $class;
248
-	}
14
+    /**
15
+     * The IoC Container
16
+     *
17
+     * @var Container
18
+     */
19
+    protected $app;
20
+
21
+    /**
22
+     * An array of fields repositories
23
+     *
24
+     * @var array
25
+     */
26
+    protected $repositories = array();
27
+
28
+    /**
29
+     * Build a new Dispatcher
30
+     *
31
+     * @param Container $app
32
+     * @param array     $repositories
33
+     */
34
+    public function __construct(Container $app, $repositories)
35
+    {
36
+        $this->app          = $app;
37
+        $this->repositories = (array) $repositories;
38
+    }
39
+
40
+    ////////////////////////////////////////////////////////////////////
41
+    ///////////////////////////// REPOSITORIES /////////////////////////
42
+    ////////////////////////////////////////////////////////////////////
43
+
44
+    /**
45
+     * Add a fields repository
46
+     *
47
+     * @param string $repository
48
+     *
49
+     * @return $this
50
+     */
51
+    public function addRepository($repository)
52
+    {
53
+        array_unshift($this->repositories, $repository);
54
+
55
+        return $this;
56
+    }
57
+
58
+    ////////////////////////////////////////////////////////////////////
59
+    ///////////////////////////// DISPATCHERS //////////////////////////
60
+    ////////////////////////////////////////////////////////////////////
61
+
62
+    /**
63
+     * Dispatch a call to a registered macro
64
+     *
65
+     * @param  string $method     The macro's name
66
+     * @param  array  $parameters The macro's arguments
67
+     *
68
+     * @return mixed
69
+     */
70
+    public function toMacros($method, $parameters)
71
+    {
72
+        if (!$this->app['former']->hasMacro($method)) {
73
+            return false;
74
+        }
75
+
76
+        // Get and format macro
77
+        $callback = $this->app['former']->getMacro($method);
78
+        if ($callback instanceof Closure) {
79
+            return call_user_func_array($callback, $parameters);
80
+        } // Cancel if the macro is invalid
81
+        elseif (!is_string($callback)) {
82
+            return false;
83
+        }
84
+
85
+        // Get class and method
86
+        list($class, $method) = explode('@', $callback);
87
+        $this->app->instance('Illuminate\Container\Container', $this->app);
88
+
89
+        return call_user_func_array(array($this->app->make($class), $method), $parameters);
90
+    }
91
+
92
+    /**
93
+     * Dispatch a call over to Elements
94
+     *
95
+     * @param string $method     The method called
96
+     * @param array  $parameters Its parameters
97
+     *
98
+     * @return string
99
+     */
100
+    public function toElements($method, $parameters)
101
+    {
102
+        // Disregards if the method isn't an element
103
+        if (!method_exists($elements = new Form\Elements($this->app, $this->app['session']), $method)) {
104
+            return false;
105
+        }
106
+
107
+        return call_user_func_array(array($elements, $method), $parameters);
108
+    }
109
+
110
+    /**
111
+     * Dispatch a call over to Form
112
+     *
113
+     * @param string $method     The method called
114
+     * @param array  $parameters Its parameters
115
+     *
116
+     * @return Form
117
+     */
118
+    public function toForm($method, $parameters)
119
+    {
120
+        // Disregards if the method doesn't contain 'open'
121
+        if (!Str::contains($method, 'open') and !Str::contains($method, 'Open')) {
122
+            return false;
123
+        }
124
+
125
+        $form = new Form\Form($this->app, $this->app['url'], $this->app['former.populator']);
126
+
127
+        return $form->openForm($method, $parameters);
128
+    }
129
+
130
+    /**
131
+     * Dispatch a call over to Group
132
+     *
133
+     * @param string $method     The method called
134
+     * @param array  $parameters Its parameters
135
+     *
136
+     * @return Group
137
+     */
138
+    public function toGroup($method, $parameters)
139
+    {
140
+        // Disregards if the method isn't "group"
141
+        if ($method != 'group') {
142
+            return false;
143
+        }
144
+
145
+        // Create opener
146
+        $group = new Form\Group(
147
+            $this->app,
148
+            array_get($parameters, 0, null),
149
+            array_get($parameters, 1, null)
150
+        );
151
+
152
+        // Set custom group as true
153
+        Form\Group::$opened = true;
154
+
155
+        // Set custom group reference
156
+        Form\Group::$openGroup = $group;
157
+
158
+        return $group;
159
+    }
160
+
161
+    /**
162
+     * Dispatch a call over to Actions
163
+     *
164
+     * @param string $method     The method called
165
+     * @param array  $parameters Its parameters
166
+     *
167
+     * @return Actions
168
+     */
169
+    public function toActions($method, $parameters)
170
+    {
171
+        if ($method != 'actions') {
172
+            return false;
173
+        }
174
+
175
+        return new Form\Actions($this->app, $parameters);
176
+    }
177
+
178
+    /**
179
+     * Dispatch a call over to the Fields
180
+     *
181
+     * @param string $method     The method called
182
+     * @param array  $parameters Its parameters
183
+     *
184
+     * @return Field
185
+     */
186
+    public function toFields($method, $parameters)
187
+    {
188
+        // Listing parameters
189
+        $class = $this->getClassFromMethod($method);
190
+        $field = new $class(
191
+            $this->app,
192
+            $method,
193
+            array_get($parameters, 0),
194
+            array_get($parameters, 1),
195
+            array_get($parameters, 2),
196
+            array_get($parameters, 3),
197
+            array_get($parameters, 4),
198
+            array_get($parameters, 5)
199
+        );
200
+
201
+        return $field;
202
+    }
203
+
204
+    ////////////////////////////////////////////////////////////////////
205
+    ///////////////////////////// HELPERS //////////////////////////////
206
+    ////////////////////////////////////////////////////////////////////
207
+
208
+    /**
209
+     * Get the correct class to call according to the created field
210
+     *
211
+     * @param  string $method The field created
212
+     *
213
+     * @return string The correct class
214
+     */
215
+    protected function getClassFromMethod($method)
216
+    {
217
+        // If the field's name directly match a class, call it
218
+        $class        = Str::singular(Str::title($method));
219
+        $studly_class = Str::singular(Str::studly($method));
220
+        foreach ($this->repositories as $repository) {
221
+            if (class_exists($repository.$studly_class)) {
222
+                return $repository.$studly_class;
223
+            } else {
224
+                if (class_exists($repository.$class)) {
225
+                    return $repository.$class;
226
+                }
227
+            }
228
+        }
229
+
230
+        // Else convert known fields to their classes
231
+        switch ($method) {
232
+            case 'submit':
233
+            case 'link':
234
+            case 'reset':
235
+                $class = Former::FIELDSPACE.'Button';
236
+                break;
237
+
238
+            case 'multiselect':
239
+                $class = Former::FIELDSPACE.'Select';
240
+                break;
241
+
242
+            default:
243
+                $class = Former::FIELDSPACE.'Input';
244
+                break;
245
+        }
246
+
247
+        return $class;
248
+    }
249 249
 }
Please login to merge, or discard this patch.
src/Former/Interfaces/FrameworkInterface.php 1 patch
Indentation   +137 added lines, -137 removed lines patch added patch discarded remove patch
@@ -8,141 +8,141 @@
 block discarded – undo
8 8
  */
9 9
 interface FrameworkInterface
10 10
 {
11
-	/**
12
-	 * Filter buttons classes
13
-	 *
14
-	 * @param  array $classes An array of classes
15
-	 *
16
-	 * @return array A filtered array
17
-	 */
18
-	public function filterButtonClasses($classes);
19
-
20
-	/**
21
-	 * Filter field classes
22
-	 *
23
-	 * @param  array $classes An array of classes
24
-	 *
25
-	 * @return array A filtered array
26
-	 */
27
-	public function filterFieldClasses($classes);
28
-
29
-	/**
30
-	 * Add classes to a field
31
-	 *
32
-	 * @param Field $field
33
-	 * @param array $classes The possible classes to add
34
-	 *
35
-	 * @return Field
36
-	 */
37
-	public function getFieldClasses(Field $field, $classes);
38
-
39
-	/**
40
-	 * Add group classes
41
-	 *
42
-	 * @return string A list of group classes
43
-	 */
44
-	public function getGroupClasses();
45
-
46
-	/**
47
-	 * Add label classes
48
-	 *
49
-	 * @return array An array of attributes with the label class
50
-	 */
51
-	public function getLabelClasses();
52
-
53
-	/**
54
-	 * Add uneditable field classes
55
-	 *
56
-	 * @return array An array of attributes with the uneditable class
57
-	 */
58
-	public function getUneditableClasses();
59
-
60
-	/**
61
-	 * Add plain text field classes
62
-	 *
63
-	 * @return array An array of attributes with the plain text class
64
-	 */
65
-	public function getPlainTextClasses();
66
-
67
-	/**
68
-	 * Add form class
69
-	 *
70
-	 * @param  string $type The type of form to add
71
-	 *
72
-	 * @return array
73
-	 */
74
-	public function getFormClasses($type);
75
-
76
-	/**
77
-	 * Add actions block class
78
-	 *
79
-	 * @return array
80
-	 */
81
-	public function getActionClasses();
82
-
83
-	/**
84
-	 * Render an help text
85
-	 *
86
-	 * @param string $text
87
-	 * @param array  $attributes
88
-	 *
89
-	 * @return string
90
-	 */
91
-	public function createHelp($text, $attributes = array());
92
-
93
-	/**
94
-	 * Render a disabled field
95
-	 *
96
-	 * @param Field $field
97
-	 *
98
-	 * @return string
99
-	 */
100
-	public function createDisabledField(Field $field);
101
-
102
-	/**
103
-	 * Render a plain text field
104
-	 *
105
-	 * @param Field $field
106
-	 *
107
-	 * @return string
108
-	 */
109
-	public function createPlainTextField(Field $field);
110
-
111
-	/**
112
-	 * Render an icon
113
-	 *
114
-	 * @param array $attributes Its attributes
115
-	 *
116
-	 * @return string
117
-	 */
118
-	public function createIcon($iconType, $attributes = array());
119
-
120
-	/**
121
-	 * Wrap an item to be prepended or appended to the current field
122
-	 *
123
-	 * @param  string $item
124
-	 *
125
-	 * @return string A wrapped item
126
-	 */
127
-	public function placeAround($item);
128
-
129
-	/**
130
-	 * Wrap a field with prepended and appended items
131
-	 *
132
-	 * @param  Field $field
133
-	 * @param  array $prepend
134
-	 * @param  array $append
135
-	 *
136
-	 * @return string A field concatented with prepended and/or appended items
137
-	 */
138
-	public function prependAppend($field, $prepend, $append);
139
-
140
-	/**
141
-	 * Wrap a field with potential additional tags
142
-	 *
143
-	 * @param  Field $field
144
-	 *
145
-	 * @return string A wrapped field
146
-	 */
147
-	public function wrapField($field);
11
+    /**
12
+     * Filter buttons classes
13
+     *
14
+     * @param  array $classes An array of classes
15
+     *
16
+     * @return array A filtered array
17
+     */
18
+    public function filterButtonClasses($classes);
19
+
20
+    /**
21
+     * Filter field classes
22
+     *
23
+     * @param  array $classes An array of classes
24
+     *
25
+     * @return array A filtered array
26
+     */
27
+    public function filterFieldClasses($classes);
28
+
29
+    /**
30
+     * Add classes to a field
31
+     *
32
+     * @param Field $field
33
+     * @param array $classes The possible classes to add
34
+     *
35
+     * @return Field
36
+     */
37
+    public function getFieldClasses(Field $field, $classes);
38
+
39
+    /**
40
+     * Add group classes
41
+     *
42
+     * @return string A list of group classes
43
+     */
44
+    public function getGroupClasses();
45
+
46
+    /**
47
+     * Add label classes
48
+     *
49
+     * @return array An array of attributes with the label class
50
+     */
51
+    public function getLabelClasses();
52
+
53
+    /**
54
+     * Add uneditable field classes
55
+     *
56
+     * @return array An array of attributes with the uneditable class
57
+     */
58
+    public function getUneditableClasses();
59
+
60
+    /**
61
+     * Add plain text field classes
62
+     *
63
+     * @return array An array of attributes with the plain text class
64
+     */
65
+    public function getPlainTextClasses();
66
+
67
+    /**
68
+     * Add form class
69
+     *
70
+     * @param  string $type The type of form to add
71
+     *
72
+     * @return array
73
+     */
74
+    public function getFormClasses($type);
75
+
76
+    /**
77
+     * Add actions block class
78
+     *
79
+     * @return array
80
+     */
81
+    public function getActionClasses();
82
+
83
+    /**
84
+     * Render an help text
85
+     *
86
+     * @param string $text
87
+     * @param array  $attributes
88
+     *
89
+     * @return string
90
+     */
91
+    public function createHelp($text, $attributes = array());
92
+
93
+    /**
94
+     * Render a disabled field
95
+     *
96
+     * @param Field $field
97
+     *
98
+     * @return string
99
+     */
100
+    public function createDisabledField(Field $field);
101
+
102
+    /**
103
+     * Render a plain text field
104
+     *
105
+     * @param Field $field
106
+     *
107
+     * @return string
108
+     */
109
+    public function createPlainTextField(Field $field);
110
+
111
+    /**
112
+     * Render an icon
113
+     *
114
+     * @param array $attributes Its attributes
115
+     *
116
+     * @return string
117
+     */
118
+    public function createIcon($iconType, $attributes = array());
119
+
120
+    /**
121
+     * Wrap an item to be prepended or appended to the current field
122
+     *
123
+     * @param  string $item
124
+     *
125
+     * @return string A wrapped item
126
+     */
127
+    public function placeAround($item);
128
+
129
+    /**
130
+     * Wrap a field with prepended and appended items
131
+     *
132
+     * @param  Field $field
133
+     * @param  array $prepend
134
+     * @param  array $append
135
+     *
136
+     * @return string A field concatented with prepended and/or appended items
137
+     */
138
+    public function prependAppend($field, $prepend, $append);
139
+
140
+    /**
141
+     * Wrap a field with potential additional tags
142
+     *
143
+     * @param  Field $field
144
+     *
145
+     * @return string A wrapped field
146
+     */
147
+    public function wrapField($field);
148 148
 }
Please login to merge, or discard this patch.
src/Former/Interfaces/FieldInterface.php 1 patch
Indentation   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -6,10 +6,10 @@
 block discarded – undo
6 6
  */
7 7
 interface FieldInterface
8 8
 {
9
-	/**
10
-	 * Renders the field
11
-	 *
12
-	 * @return string
13
-	 */
14
-	public function render();
9
+    /**
10
+     * Renders the field
11
+     *
12
+     * @return string
13
+     */
14
+    public function render();
15 15
 }
Please login to merge, or discard this patch.