<?php
namespace Eae\Backoffice\Generic;

use View;
use LaravelLocalization;

class MenuFormBuilder {
    public function text ($field, $label, $allLangs = true, $data = null, $errors = null, $fieldIndex = null, $other = null) {
        return $this->input('text', $field, $label, $allLangs, $data, $errors, $fieldIndex, $other);             
    }    
    public function input ($type, $field, $label, $allLangs = true, $data = null, $errors = null, $fieldIndex = null, $other = null) {
        $availLangs = LaravelLocalization::getSupportedLanguagesKeys();
        $defaultLang = \Config::get('app.locale');
        
        // Checks for validation errors
        $hasError = false;
        
        if (!empty($errors)) { 
            $messages = $errors->getMessages();
            foreach ($availLangs as $lang) {    
                if (isset($messages[($field . '.' . $lang)])) {
                    $hasError =  true; 
                    break; 
                }
            }
        }
        
        $fieldId = $fieldIndex ? $field . "[$fieldIndex]" : $field;
        
        return View::make('admin/form_parts/input_' . $type, array (
            'field'         => $field,
            'fieldId'       => $fieldId,
            'label'         => $label,
            'availLangs'    => $availLangs,
            'defaultLang'   => $defaultLang,
            'data'          => $data,
            'error'         => $hasError,
            'other'         => $other
        ));
    }
}
