Refactoring in UploadFile.class.php to simplify things.
[timetracker.git] / WEB-INF / lib / form / Form.class.php
index e871743..1f77414 100644 (file)
@@ -77,20 +77,31 @@ class Form {
       case 'textarea':
         import('form.TextArea');
         $el = new TextArea($params['name']);
-        if (isset($params['cols'])) $el->setColumns($params['cols']);
-        if (isset($params['rows'])) $el->setRows($params['rows']);
         if (isset($params['maxlength'])) $el->setMaxLength($params['maxlength']);
         break;
 
       case 'checkbox':
         import('form.Checkbox');
         $el = new Checkbox($params['name']);
-        if (isset($params['checked'])) $el->setChecked($params['checked']);
+        break;
+
+      case 'hidden':
+        import('form.Hidden');
+        $el = new Hidden($params['name']);
+        break;
+
+      case 'submit':
+        import('form.Submit');
+        $el = new Submit($params['name']);
+        break;
+
+      case 'upload':
+        import('form.UploadFile');
+        $el = new UploadFile($params['name']);
+        if (isset($params['maxsize'])) $el->setMaxSize($params['maxsize']);
+        break;
 
 // TODO: refactoring ongoing down from here.
-                           $el->setData(@$params["data"]);
-                           break;
-                           
                        case "checkboxgroup":
                            import('form.CheckboxGroup');
                            $el = new CheckboxGroup($params["name"]);
@@ -105,19 +116,13 @@ class Form {
                            $el = new Combobox($params["name"]);
                            $el->setData(@$params["data"]);
                            $el->setDataDefault(@$params["empty"]);
+                            if (isset($params["multiple"])) {
+                              $el->setMultiple($params["multiple"]);
+                              $el->name .= '[]'; // Add brackets to the end of name to get back an array on POST.
+                            }
                            if (isset($params["datakeys"])) $el->setDataKeys($params["datakeys"]);
                            break;
-                           
-                       case "hidden":
-                           import('form.Hidden');
-                           $el = new Hidden($params["name"]);
-                           break;
-                        
-                       case "submit":
-                           import('form.Submit');
-                           $el = new Submit($params["name"]);
-                           break;
-                           
+
                        case "calendar":
                            import('form.Calendar');
                            $el = new Calendar($params["name"]);
@@ -130,17 +135,11 @@ class Form {
                            $el->setData(@$params["data"]);
                            $el->setWidth(@$params["width"]);
                            break;
-                           
-                       case "upload":
-                           import('form.UploadFile');
-                           $el = new UploadFile($params["name"]);
-                           if (isset($params["maxsize"])) $el->setMaxSize($params["maxsize"]);
-                           break;
                }
                if ($el!=null) {
                        $el->setFormName($this->name);
                        if (isset($params["id"])) $el->setId($params["id"]);
-                       if (isset($GLOBALS["I18N"])) $el->localize($GLOBALS["I18N"]);
+                       $el->localize();
                        if (isset($params["enable"])) $el->setEnabled($params["enable"]);
                        
                        if (isset($params["style"])) $el->setStyle($params["style"]);
@@ -158,7 +157,7 @@ class Form {
        
        function addInputElement(&$el) {
                if ($el && is_object($el)) {
-                       if (isset($GLOBALS["I18N"])) $el->localize($GLOBALS["I18N"]);
+                       $el->localize();
                
                        $el->setFormName($this->name);
                        $this->elements[$el->name] = &$el;