Example #1
0
 /**
  * Finish current form.
  * @param bool $validate
  * @return string
  */
 public function finish($validate = true)
 {
     // pre-validate form fields based on model rules and jquery.validation
     if ($validate) {
         App::$Alias->addPlainCode('js', '$().ready(function() { $("#' . $this->name . '").validate(); });');
         App::$Alias->setCustomLibrary('js', '/vendor/bower/jquery-validation/dist/jquery.validate.min.js');
         if (App::$Request->getLanguage() !== 'en') {
             $localeFile = '/vendor/bower/jquery-validation/src/localization/messages_' . App::$Request->getLanguage() . '.js';
             if (File::exist($localeFile)) {
                 App::$Alias->setCustomLibrary('js', $localeFile);
             }
         }
         // if model is not empty - add js error color notification
         if ($this->model !== null) {
             $badAttr = $this->model->getBadAttribute();
             $formName = $this->model->getFormName();
             if (Obj::isArray($badAttr) && count($badAttr) > 0) {
                 foreach ($badAttr as $attr) {
                     $itemId = $formName . '-' . $attr;
                     $render = App::$View->render(static::$structLayer['jsnotify'], ['itemId' => $itemId]);
                     App::$Alias->addPlainCode('js', $render);
                 }
             }
         }
     }
     return '</form>';
 }