/** * * @param array $element * @return array */ public static function addValidation($element) { $validations = parent::addValidation($element); $resolveUrl = Di::getDefault()->get('router')->getPathFor('/validator/resolvedns'); $validations['eventValidation']['extraJs'] = '$("#' . $element['name'] . '_resolve_dns").on("click", function(){ $.ajax({ url: "' . $resolveUrl . '", type: "POST", data: {"dnsname":$("#' . $element['name'] . '").val()}, dataType: "json", context: document.body }) .success(function(data, status, jqxhr) { alertClose(); if (data["success"]) { $("#' . $element['name'] . '").val(data["value"]); $("#' . $element['name'] . '").trigger("blur"); } else { alertMessage(data["error"], "alert-danger"); } }); });'; $validations['eventValidation'][$element['name']] = array('ipaddress' => array()); return $validations; }
/** * * @param array $element * @return array */ public static function addValidation($element) { $validations = parent::addValidation($element); $validationUrl = Di::getDefault()->get('router')->getPathFor('/validator/email'); $validations['eventValidation'] .= ' $("#' . $element['name'] . '").on("blur", function() { $.ajax({ url: "' . $validationUrl . '", type: "POST", data: {"email":$("#' . $element['name'] . '").val()}, context: document.body }) .success(function(data, status, jqxhr) { if (data.success) { $("#' . $element['name'] . '_email").removeClass("has-error has-feedback"); $("#' . $element['name'] . '_email_span").removeClass("glyphicon glyphicon-remove form-control-feedback"); $("#' . $element['name'] . '_email").addClass("has-success has-feedback"); $("#' . $element['name'] . '_email_span").addClass("glyphicon glyphicon-ok form-control-feedback"); } else { $("#' . $element['name'] . '_email").removeClass("has-error has-feedback"); $("#' . $element['name'] . '_email_span").removeClass("glyphicon glyphicon-ok form-control-feedback"); $("#' . $element['name'] . '_email").addClass("has-error has-feedback"); $("#' . $element['name'] . '_email_span").addClass("glyphicon glyphicon-remove form-control-feedback"); } }); });'; return $validations; }
/** * * @param array $element */ private function renderAsHtml(&$element) { switch ($element['type']) { default: $element['input'] = $this->renderHtmlTextarea($element); $element['label'] = $this->renderHtmlLabel($element); $element['html'] = $this->renderFinalHtml($element); break; case 'button': case 'submit': case 'reset': $element['input'] = $this->renderHtmlButton($element); $element['label'] = ""; $element['html'] = $this->renderFinalHtml($element); break; case 'radio': $element['input'] = $this->renderHtmlRadio($element); $element['label'] = ""; $element['html'] = $this->renderFinalHtml($element); break; case 'checkbox': $element['input'] = $this->renderHtmlCheckbox($element); $element['label'] = ""; $element['html'] = $this->renderFinalHtml($element); break; case 'static': $className = Component::parseComponentName($element['label_type']); if (class_exists($className) && method_exists($className, 'renderHtmlInput')) { $element['label'] = $element['label_label']; $in = $className::renderHtmlInput($element); $inVal = $className::addValidation($element); if (isset($in['html'])) { $element['input'] = $in['html']; } if (isset($in['css'])) { $element['css'] = $in['css']; } if (isset($in['extrahtml'])) { $element['extrahtml'] = $in['extrahtml']; } $element['label'] = $this->renderHtmlLabel($element); $element['html'] = $this->renderFinalHtml($element); if (isset($in['js'])) { $this->tpl->addCustomJs($in['js']); } if (isset($inVal['eventValidation'])) { if (isset($inVal['eventValidation']['extraJs'])) { $this->eventValidation['extraJs'] .= $inVal['eventValidation']['extraJs']; unset($inVal['eventValidation']['extraJs']); } $this->eventValidation['validators'] = array_merge($this->eventValidation['validators'], $inVal['eventValidation']); } if (isset($inVal['submitValidation'])) { $this->submitValidation .= $inVal['submitValidation']; } } break; } }