From 5994df0d25c9033e3dd0d627c6a18d78b9b25692 Mon Sep 17 00:00:00 2001 From: Andrey Kutejko Date: Sat, 10 Aug 2013 16:27:50 +0300 Subject: [PATCH] refactor model form field suggestion --- ipf/form/db/date.php | 8 ----- ipf/form/db/datetime.php | 8 ----- ipf/form/db/decimal.php | 11 ------ ipf/form/db/double.php | 11 ------ ipf/form/db/email.php | 13 ------- ipf/form/db/file.php | 12 ------- ipf/form/db/html.php | 7 ---- ipf/form/db/image.php | 10 ------ ipf/form/db/integer.php | 11 ------ ipf/form/db/string.php | 6 ---- ipf/form/db/timestamp.php | 8 ----- ipf/form/model.php | 73 +++++++++++++++++++++++---------------- 12 files changed, 43 insertions(+), 135 deletions(-) delete mode 100644 ipf/form/db/date.php delete mode 100644 ipf/form/db/datetime.php delete mode 100644 ipf/form/db/decimal.php delete mode 100644 ipf/form/db/double.php delete mode 100644 ipf/form/db/email.php delete mode 100644 ipf/form/db/file.php delete mode 100644 ipf/form/db/html.php delete mode 100644 ipf/form/db/image.php delete mode 100644 ipf/form/db/integer.php delete mode 100644 ipf/form/db/string.php delete mode 100644 ipf/form/db/timestamp.php diff --git a/ipf/form/db/date.php b/ipf/form/db/date.php deleted file mode 100644 index e0a315a..0000000 --- a/ipf/form/db/date.php +++ /dev/null @@ -1,8 +0,0 @@ - 'width:140px;'); - return parent::formField($def, $form_field); - } -} - diff --git a/ipf/form/db/double.php b/ipf/form/db/double.php deleted file mode 100644 index 11a38e3..0000000 --- a/ipf/form/db/double.php +++ /dev/null @@ -1,11 +0,0 @@ - 'width:140px;'); - return parent::formField($def, $form_field); - } -} - diff --git a/ipf/form/db/email.php b/ipf/form/db/email.php deleted file mode 100644 index 73f030d..0000000 --- a/ipf/form/db/email.php +++ /dev/null @@ -1,13 +0,0 @@ - 200); - - function formField($def, $form_field='IPF_Form_Field_Email') - { - return parent::formField($def, $form_field); - } -} - diff --git a/ipf/form/db/file.php b/ipf/form/db/file.php deleted file mode 100644 index 520344a..0000000 --- a/ipf/form/db/file.php +++ /dev/null @@ -1,12 +0,0 @@ -uploadTo = @$this->extra['uploadTo']; - return $field; - } -} - diff --git a/ipf/form/db/html.php b/ipf/form/db/html.php deleted file mode 100644 index 6c253f6..0000000 --- a/ipf/form/db/html.php +++ /dev/null @@ -1,7 +0,0 @@ - 'width:140px;'); - return parent::formField($def, $form_field); - } -} - diff --git a/ipf/form/db/string.php b/ipf/form/db/string.php deleted file mode 100644 index 90299e2..0000000 --- a/ipf/form/db/string.php +++ /dev/null @@ -1,6 +0,0 @@ -model->getTable()->getIdentifier()) return; - $defaults = array( - 'blank' => true, - 'help_text' => '', + $required = isset($col['notblank']) && $col['notblank']; + $label = isset($col['verbose']) ? $col['verbose'] : IPF_Utils::humanTitle($name); + + $params = array( + 'required' => $required, 'editable' => true, - 'verbose' => isset($col['verbose']) ? $col['verbose'] : $name, + 'label' => $label, + 'help_text' => '', ); - $type = $col['type']; - - if (isset($col['notblank'])) { - if ($col['notblank']) - $defaults['blank'] = false; - else - $defaults['blank'] = true; + switch ($col['type']) { + case 'string': + if (isset($col['length'])) + $params['max_length'] = (int)($col['length']); + + if (isset($col['uploadTo'])) + $params['uploadTo'] = $col['uploadTo']; + + if (isset($col['email']) && $col['email']) { $form_field = new IPF_Form_Field_Email($params); } + elseif (isset($col['file']) && $col['file']) { $form_field = new IPF_Form_Field_File($params); } + elseif (isset($col['image']) && $col['image']) { $form_field = new IPF_Form_Field_Image($params); } + elseif (isset($col['html']) && $col['html']) { $form_field = new IPF_Form_Field_Html($params); } + else { $form_field = new IPF_Form_Field_Varchar($params); } + + break; + case 'boolean': + $form_field = new IPF_Form_Field_Boolean($params); + break; + case 'integer': + $params['widget_attrs'] = array('style' => 'width:140px;'); + $form_field = new IPF_Form_Field_Integer($params); + break; + case 'double': + case 'decimal': + $params['widget_attrs'] = array('style' => 'width:140px;'); + $form_field = new IPF_Form_Field_Float($params); + break; + case 'date': + $form_field = new IPF_Form_Field_Date($params); + break; + case 'datetime': + case 'timestamp': + $form_field = new IPF_Form_Field_Datetime($params); + break; + default: + throw new IPF_Exception_Form(__('Unsupported column type \''.$col['type'].'\'.')); } - if (isset($col['length'])) - $defaults['max_length'] = (int)($col['length']); - - if (isset($col['email'])) - $type = 'email'; - - if (isset($col['file'])) - $type = 'file'; - - if (isset($col['image'])) - $type = 'image'; - - if (isset($col['html'])) - $type = 'html'; - - $cn = 'IPF_Form_DB_'.ucfirst($type); - - $db_field = new $cn('', $name, $col); - $form_field = $db_field->formField($defaults); if ($form_field !== null) $this->fields[$name] = $form_field; } -- 2.49.0