| 1 |  |  | <?php namespace Distilleries\Expendable\Http\Forms\User; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  | use Distilleries\Expendable\Helpers\StaticLabel; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 |  |  | use Distilleries\Expendable\Models\Role; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  | use Distilleries\FormBuilder\FormValidator; | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 6 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 7 |  |  | class UserForm extends FormValidator { | 
            
                                                                        
                            
            
                                    
            
            
                | 8 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 9 |  |  |     public static $rules = [ | 
            
                                                                        
                            
            
                                    
            
            
                | 10 |  |  |         'email'    => 'required|email|unique:users', | 
            
                                                                        
                            
            
                                    
            
            
                | 11 |  |  |         'password' => 'required|min:8', | 
            
                                                                        
                            
            
                                    
            
            
                | 12 |  |  |         'status'   => 'required|integer', | 
            
                                                                        
                            
            
                                    
            
            
                | 13 |  |  |         'role_id'  => 'required|integer', | 
            
                                                                        
                            
            
                                    
            
            
                | 14 |  |  |     ]; | 
            
                                                                        
                            
            
                                    
            
            
                | 15 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 16 |  |  |     public static $rules_update = [ | 
            
                                                                        
                            
            
                                    
            
            
                | 17 |  |  |         'id'      => 'required', | 
            
                                                                        
                            
            
                                    
            
            
                | 18 |  |  |         'email'   => 'required|email|unique:users,email', | 
            
                                                                        
                            
            
                                    
            
            
                | 19 |  |  |         'status'  => 'required|integer', | 
            
                                                                        
                            
            
                                    
            
            
                | 20 |  |  |         'role_id' => 'required|integer', | 
            
                                                                        
                            
            
                                    
            
            
                | 21 |  |  |     ]; | 
            
                                                                        
                            
            
                                    
            
            
                | 22 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 23 |  |  |     // ------------------------------------------------------------------------------------------------ | 
            
                                                                        
                            
            
                                    
            
            
                | 24 |  |  |  | 
            
                                                                        
                            
            
                                    
            
            
                | 25 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 | 12 |  |     public function buildForm() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  |         $this | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 | 12 |  |             ->add($this->model->getKeyName(), 'hidden') | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 | 12 |  |             ->add('email', 'email', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  |                 [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 | 12 |  |                     'label'      => trans('expendable::form.email'), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 | 12 |  |                     'validation' => 'required,custom[email]', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 |  |  |                 ]); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 | 12 |  |         $id = $this->model->getKey(); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 | 12 |  |         if (!empty($id)) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 |  |  |         { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 | 8 |  |             $this->add('change_password', 'checkbox', [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 | 8 |  |                 'default_value' => 1, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 | 8 |  |                 'label'         => trans('expendable::form.change_password_help'), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 |  |  |                 'checked'       => false, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 |  |  |                 'noInEditView'  => true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |             ]); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |         } | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 | 12 |  |         $this->add('password', 'password', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  |             [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 | 12 |  |                 'label'        => trans('expendable::form.password'), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  |                 'attr'         => ['id' => 'password'], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 | 12 |  |                 'validation'   => 'required', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 |  |  |                 'noInEditView' => true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 |  |  |             ]) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 | 12 |  |             ->add('password_match', 'password', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 |  |  |                 [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 | 12 |  |                     'label'        => trans('expendable::form.repeat_password'), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 | 12 |  |                     'validation'   => 'required,equals[password]', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  |                     'noInEditView' => true | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |                 ]) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 | 12 |  |             ->add('status', 'choice', [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 | 12 |  |                 'choices'     => StaticLabel::status(), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 | 12 |  |                 'empty_value' => '-', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 | 12 |  |                 'validation'  => 'required', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 | 12 |  |                 'label'       => trans('expendable::form.status') | 
            
                                                                                                            
                            
            
                                    
            
            
                | 67 |  |  |             ]) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 68 | 12 |  |             ->add('role_id', 'choice', [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 69 | 12 |  |                 'choices'     => Role::getChoice(), | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 | 12 |  |                 'empty_value' => '-', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 71 | 12 |  |                 'validation'  => 'required', | 
            
                                                                                                            
                            
            
                                    
            
            
                | 72 | 12 |  |                 'label'       => trans('expendable::form.role') | 
            
                                                                                                            
                            
            
                                    
            
            
                | 73 |  |  |             ]) | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 74 | 12 |  |             ->addDefaultActions(); | 
            
                                                                        
                            
            
                                    
            
            
                | 75 |  |  |     } | 
            
                                                                        
                            
            
                                    
            
            
                | 76 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 77 | 6 |  |     protected function getUpdateRules() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 78 |  |  |     { | 
            
                                                                                                            
                            
            
                                    
            
            
                | 79 | 6 |  |         $key                           = \Request::get($this->model->getKeyName()); | 
            
                                                                                                            
                            
            
                                    
            
            
                | 80 | 6 |  |         static::$rules_update['email'] = 'required|email|unique:users,email,'.$key; | 
            
                                                                                                            
                            
            
                                    
            
            
                | 81 |  |  |  | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 82 | 6 |  |         return parent::getUpdateRules(); | 
            
                                                        
            
                                    
            
            
                | 83 |  |  |     } | 
            
                                                        
            
                                    
            
            
                | 84 |  |  | } |