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');
 | 
						|
    }
 | 
						|
}
 | 
						|
 |