Temporary fix for not billable entries in week view.
[timetracker.git] / WEB-INF / lib / form / Table.class.php
index 64df890..1e692c3 100644 (file)
@@ -34,6 +34,7 @@ class Table extends FormElement {
   var $mColumns       = array(); // array of columns in table
   var $mData          = null;    // array of rows with data for column cells
   var $mHeaders       = array(); // column headers
+  var $mFooters       = array(); // column footers
   var $mInteractive   = true;    // adds a clickable checkbox column to table
   var $mIAScript      = null;    // sctipt to execute when a checkbox is clicked
   var $mKeyField      = '';      // identifies a column used as key to access row data
@@ -52,11 +53,11 @@ class Table extends FormElement {
   }
   
   function setKeyField($value) {
-       $this->mKeyField = $value;
+    $this->mKeyField = $value;
   }
   
   function setData($data) {
-       if (is_array($data) && isset($data[0]) && is_array($data[0]))
+    if (is_array($data) && isset($data[0]) && is_array($data[0]))
       $this->mData = &$data;
   }
   
@@ -110,6 +111,7 @@ class Table extends FormElement {
     foreach ($this->mColumns as $column) {
       $this->mColumnFields[] = $column->getField();
       $this->mHeaders[] = $column->getHeader();
+      $this->mFooters[] = $column->getFooter();
     }
   }
   
@@ -131,7 +133,7 @@ class Table extends FormElement {
     $html .= ">\n";
     
     // Print headers.
-       if (($this->mInteractive && (count($this->mHeaders) > 1)) || (!$this->mInteractive && (count($this->mHeaders) > 0))) {
+    if (($this->mInteractive && (count($this->mHeaders) > 1)) || (!$this->mInteractive && (count($this->mHeaders) > 0))) {
       $html .= "<tr";
       if (count($this->mRowOptions) > 0) {
         foreach ($this->mRowOptions as $k=>$v) {
@@ -176,6 +178,27 @@ class Table extends FormElement {
       $html .= "</tr>\n";
     }
 
+    // Print footers.
+    if (($this->mInteractive && (count($this->mFooters) > 1)) || (!$this->mInteractive && (count($this->mFooters) > 0))) {
+      $html .= "<tr";
+      if (count($this->mRowOptions) > 0) {
+        foreach ($this->mRowOptions as $k=>$v) {
+          $html .= " $k=\"$v\"";
+        }
+      }
+      $html .= ">\n";
+      foreach ($this->mFooters as $footer) {
+        $html .= "<th";
+        if (count($this->mHeaderOptions) > 0) {
+          foreach ($this->mHeaderOptions as $k=>$v) {
+            $html .= " $k=\"$v\"";
+          }
+        }
+        $html .= ">$footer</th>\n";
+      }
+      $html .= "</tr>\n";
+    }
+
     $html .= "</table>";
     return $html;
   }