datatable.directory codebase
				https://datatable.directory/
			
			
		
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							52 lines
						
					
					
						
							1.2 KiB
						
					
					
				
			
		
		
	
	
							52 lines
						
					
					
						
							1.2 KiB
						
					
					
				| <?php
 | |
| 
 | |
| 
 | |
| namespace App\View;
 | |
| 
 | |
| class WidgetFactory
 | |
| {
 | |
|     private $labelCols = 3, $fieldCols = 8;
 | |
| 
 | |
|     /** Configure layout used for future elements */
 | |
|     public function setLayout($labelCols, $fieldCols)
 | |
|     {
 | |
|         $this->labelCols = $labelCols;
 | |
|         $this->fieldCols = $fieldCols;
 | |
|     }
 | |
| 
 | |
|     private function baseWidget($view, $name, $label)
 | |
|     {
 | |
|         return (new Widget($view, $name, $label))->layout($this->labelCols, $this->fieldCols);
 | |
|     }
 | |
| 
 | |
|     public function text($name, $label)
 | |
|     {
 | |
|         return $this->baseWidget('input', $name, $label);
 | |
|     }
 | |
| 
 | |
|     public function password($name, $label)
 | |
|     {
 | |
|         return $this->baseWidget('input', $name, $label)->type('password');
 | |
|     }
 | |
| 
 | |
|     public function number($name, $label)
 | |
|     {
 | |
|         return $this->baseWidget('input', $name, $label)->type('number');
 | |
|     }
 | |
| 
 | |
|     public function email($name, $label)
 | |
|     {
 | |
|         return $this->baseWidget('input', $name, $label)->type('email');
 | |
|     }
 | |
| 
 | |
|     public function checkbox($name, $label)
 | |
|     {
 | |
|         return (new CheckboxWidget('checkbox', $name, $label))
 | |
|             ->layout($this->labelCols, $this->fieldCols);
 | |
|     }
 | |
| 
 | |
|     public function textarea($name, $label)
 | |
|     {
 | |
|         return $this->baseWidget('textarea', $name, $label)->minHeight('4em');
 | |
|     }
 | |
| }
 | |
| 
 |