Pārlūkot izejas kodu

Prerequisites to the custom fields

git-svn-id: http://svn.code.sf.net/p/itop/code/trunk@3910 a333f486-631f-4898-b8df-5754b55c2be0
glajarige 9 gadi atpakaļ
vecāks
revīzija
7af60ed5ae

+ 30 - 0
sources/renderer/bootstrap/fieldrenderer/bssimplefieldrenderer.class.inc.php

@@ -195,6 +195,36 @@ EOF
                 break;
         }
 
+        // JS Form field widget construct
+        $aValidators = array();
+        foreach ($this->oField->GetValidators() as $oValidator)
+        {
+            $aValidators[$oValidator::GetName()] = array(
+                'reg_exp' => $oValidator->GetRegExp(),
+                'message' => Dict::S($oValidator->GetErrorMessage())
+            );
+        }
+
+        $sFormFieldOptions = json_encode(array(
+            'validators' => $aValidators
+        ));
+
+        switch ($sFieldClass)
+        {
+            case 'Combodo\\iTop\\Form\\Field\\StringField':
+            case 'Combodo\\iTop\\Form\\Field\\TextAreaField':
+            case 'Combodo\\iTop\\Form\\Field\\SelectField':
+            case 'Combodo\\iTop\\Form\\Field\\HiddenField':
+            case 'Combodo\\iTop\\Form\\Field\\RadioField':
+            case 'Combodo\\iTop\\Form\\Field\\CheckboxField':
+                $oOutput->AddJs(
+                    <<<EOF
+                    $("[data-field-id='{$this->oField->GetId()}']").form_field($sFormFieldOptions);
+EOF
+                );
+                break;
+        }
+
         return $oOutput;
     }
 

+ 1 - 14
sources/renderer/formrenderer.class.inc.php

@@ -176,8 +176,7 @@ abstract class FormRenderer
             'js_inline' => '',
             'css_inline' => '',
             'js_files' => array(),
-            'css_files' => array(),
-            'validators' => null
+            'css_files' => array()
         );
 
         $sFieldRendererClass = $this->GetFieldRendererClass($oField);
@@ -257,18 +256,6 @@ abstract class FormRenderer
                     $output['html'] .= '<style>' . $oRenderingOutput->GetCss() . '</style>';
                 }
             }
-
-            // Validators
-            foreach ($oField->GetValidators() as $oValidator)
-            {
-                $output['validators'][$oValidator::GetName()] = array(
-                    'reg_exp' => $oValidator->GetRegExp(),
-                    'message' => Dict::S($oValidator->GetErrorMessage())
-                );
-            }
-
-            // Subfields
-            // TODO
         }
 
         return $output;