]> git.sur5r.net Git - bacula/bacula/blob - gui/baculum/framework/Data/ActiveRecord/Scaffold/InputBuilder/TSqliteScaffoldInput.php
441d27707727da09c3a3d5f16a6d9734c7ca0e2b
[bacula/bacula] / gui / baculum / framework / Data / ActiveRecord / Scaffold / InputBuilder / TSqliteScaffoldInput.php
1 <?php
2 /**
3  * TSqliteScaffoldInput class file.
4  *
5  * @link http://www.pradosoft.com/
6  * @copyright Copyright &copy; 2005-2014 PradoSoft
7  * @license http://www.pradosoft.com/license/
8  * @package System.Data.ActiveRecord.Scaffold.InputBuilder
9  */
10 Prado::using('System.Data.ActiveRecord.Scaffold.InputBuilder.TScaffoldInputCommon');
11
12 class TSqliteScaffoldInput extends TScaffoldInputCommon
13 {
14         protected function createControl($container, $column, $record)
15         {
16                 switch(strtolower($column->getDbType()))
17                 {
18                         case 'boolean':
19                                 return $this->createBooleanControl($container, $column, $record);
20                         case 'date':
21                                 return $this->createDateControl($container, $column, $record);
22                         case 'blob': case 'tinyblob': case 'mediumblob': case 'longblob':
23                         case 'text': case 'tinytext': case 'mediumtext': case 'longtext':
24                                 return $this->createMultiLineControl($container, $column, $record);
25                         case 'year':
26                                 return $this->createYearControl($container, $column, $record);
27                         case 'int': case 'integer': case 'tinyint': case 'smallint': case 'mediumint': case 'bigint':
28                                 return $this->createIntegerControl($container, $column, $record);
29                         case 'decimal': case 'double': case 'float':
30                                 return $this->createFloatControl($container, $column, $record);
31                         case 'time' :
32                                 return $this->createTimeControl($container, $column, $record);
33                         case 'datetime': case 'timestamp':
34                                 return $this->createDateTimeControl($container, $column, $record);
35                         default:
36                                 return $this->createDefaultControl($container,$column, $record);
37                 }
38         }
39
40         protected function getControlValue($container, $column, $record)
41         {
42                 switch(strtolower($column->getDbType()))
43                 {
44                         case 'boolean':
45                                 return $container->findControl(self::DEFAULT_ID)->getChecked();
46                         case 'date':
47                                 return $container->findControl(self::DEFAULT_ID)->getDate();
48                         case 'year':
49                                 return $container->findControl(self::DEFAULT_ID)->getSelectedValue();
50                         case 'time':
51                                 return $this->getTimeValue($container, $column, $record);
52                         case 'datetime': case 'timestamp':
53                                 return $this->getDateTimeValue($container,$column, $record);
54                         default:
55                                 return $this->getDefaultControlValue($container,$column, $record);
56                 }
57         }
58
59         protected function createDateControl($container, $column, $record)
60         {
61                 $control = parent::createDateControl($container, $column, $record);
62                 $value = $this->getRecordPropertyValue($column, $record);
63                 if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
64                         $control->setTimestamp(intval($value));
65                 return $control;
66         }
67
68         protected function createDateTimeControl($container, $column, $record)
69         {
70                 $value = $this->getRecordPropertyValue($column, $record);
71                 $time = parent::createDateTimeControl($container, $column, $record);
72                 if(!empty($value) && preg_match('/timestamp/i', $column->getDbType()))
73                 {
74                         $s = Prado::createComponent('System.Util.TDateTimeStamp');
75                         $date = $s->getDate(intval($value));
76                         $time[1]->setSelectedValue($date['hours']);
77                         $time[2]->setSelectedValue($date['minutes']);
78                         $time[3]->setSelectedValue($date['seconds']);
79                 }
80                 return $time;
81         }
82
83         protected function getDateTimeValue($container, $column, $record)
84         {
85                 if(preg_match('/timestamp/i', $column->getDbType()))
86                 {
87                         $time = $container->findControl(self::DEFAULT_ID)->getTimestamp();
88                         $s = Prado::createComponent('System.Util.TDateTimeStamp');
89                         $date = $s->getDate($time);
90                         $hour = $container->findControl('scaffold_time_hour')->getSelectedValue();
91                         $mins = $container->findControl('scaffold_time_min')->getSelectedValue();
92                         $secs = $container->findControl('scaffold_time_sec')->getSelectedValue();
93                         return $s->getTimeStamp($hour,$mins,$secs,$date['mon'],$date['mday'],$date['year']);
94                 }
95                 else
96                         return parent::getDateTimeValue($container, $column, $record);
97         }
98 }
99