| 
     
      
      
      From: <gem...@li...> - 2013-03-05 17:53:43
      
     
   | 
Revision: 1170
          http://sourceforge.net/p/gemstracker/code/1170
Author:   matijsdejong
Date:     2013-03-05 17:53:39 +0000 (Tue, 05 Mar 2013)
Log Message:
-----------
Made JoinTransformer.php easier to extend in specialized circumstances
The from Html element now returns the added Html element on __call instead of the object itself
Organization_ChooseOrganizationSnippet uses .larger class instead of inline stle attribute
Sorted functions in TrackData.php
Modified Paths:
--------------
    trunk/library/classes/Gems/Util/TrackData.php
    trunk/library/classes/MUtil/Form/Element/Html.php
    trunk/library/classes/MUtil/Model/Transform/JoinTransformer.php
    trunk/library/snippets/Organization/ChooseOrganizationSnippet.php
Modified: trunk/library/classes/Gems/Util/TrackData.php
===================================================================
--- trunk/library/classes/Gems/Util/TrackData.php	2013-03-05 17:51:12 UTC (rev 1169)
+++ trunk/library/classes/Gems/Util/TrackData.php	2013-03-05 17:53:39 UTC (rev 1170)
@@ -204,6 +204,22 @@
     }
 
     /**
+     * Returns array (id => name) of all 'T' tracks, sorted alphabetically
+     * @return array
+     */
+    public function getSteppedTracks()
+    {
+        static $tracks;
+
+        if (! $tracks) {
+            $tracks = $this->db->fetchPairs("SELECT gtr_id_track, gtr_track_name FROM gems__tracks WHERE gtr_track_type = 'T' ORDER BY gtr_track_name");
+        }
+
+        return $tracks;
+    }
+
+    /**
+     * Get all the surveys for a certain code
      *
      * @param string $code
      * @return array survey id => survey name
@@ -228,22 +244,6 @@
     }
 
     /**
-     * Returns array (id => name) of all 'T' tracks, sorted alphabetically
-     * @return array
-     */
-    public function getSteppedTracks()
-    {
-        static $tracks;
-
-        if (! $tracks) {
-            $tracks = $this->db->fetchPairs("SELECT gtr_id_track, gtr_track_name FROM gems__tracks WHERE gtr_track_type = 'T' ORDER BY gtr_track_name");
-        }
-
-        return $tracks;
-    }
-
-
-    /**
      * Returns array (id => name) of the track date fields for this track, sorted by order
      *
      * @param int $trackId
Modified: trunk/library/classes/MUtil/Form/Element/Html.php
===================================================================
--- trunk/library/classes/MUtil/Form/Element/Html.php	2013-03-05 17:51:12 UTC (rev 1169)
+++ trunk/library/classes/MUtil/Form/Element/Html.php	2013-03-05 17:53:39 UTC (rev 1170)
@@ -51,7 +51,7 @@
      *
      * @param  string $method
      * @param  array $args
-     * @return string
+     * @return MUtil_Html_HtmlElement or at least something that implements the MUtil_Html_HtmlInterface interface
      * @throws Zend_Form_Exception for invalid decorator or invalid method call
      */
     public function __call($method, $args)
@@ -70,7 +70,7 @@
         $value->append($elem);
         $this->setValue($value);
 
-        return $this;
+        return $elem;
     }
 
     /**
Modified: trunk/library/classes/MUtil/Model/Transform/JoinTransformer.php
===================================================================
--- trunk/library/classes/MUtil/Model/Transform/JoinTransformer.php	2013-03-05 17:51:12 UTC (rev 1169)
+++ trunk/library/classes/MUtil/Model/Transform/JoinTransformer.php	2013-03-05 17:53:39 UTC (rev 1170)
@@ -133,63 +133,75 @@
         }
 
         foreach ($this->_subModels as $name => $sub) {
-            /* @var $sub MUtil_Model_ModelAbstract */
+            $this->transformSubModel($model, $sub, $data, $name);
+        }
+        // MUtil_Echo::track($data);
 
-            if (1 === count($this->_joins[$name])) {
-                $mkey = key($this->_joins[$name]);
-                $skey = reset($this->_joins[$name]);
+        return $data;
+    }
 
-                $mfor = MUtil_Ra::column($mkey, $data);
+    /**
+     * Function to allow overruling of transform for certain models
+     *
+     * @param MUtil_Model_ModelAbstract $model
+     * @param MUtil_Model_ModelAbstract $sub
+     * @param array $data
+     * @param string $name
+     */
+    protected function transformSubModel
+            (MUtil_Model_ModelAbstract $model, MUtil_Model_ModelAbstract $sub, array &$data, $name)
+    {
+        if (1 === count($this->_joins[$name])) {
+            $mkey = key($this->_joins[$name]);
+            $skey = reset($this->_joins[$name]);
 
-                // MUtil_Echo::track($mfor);
+            $mfor = MUtil_Ra::column($mkey, $data);
 
-                $sdata = $sub->load(array($skey => $mfor));
-                // MUtil_Echo::track($sdata);
+            // MUtil_Echo::track($mfor);
 
-                if ($sdata) {
-                    $skeys = array_flip(MUtil_Ra::column($skey, $sdata));
-                    $empty = array_fill_keys(array_keys(reset($sdata)), null);
+            $sdata = $sub->load(array($skey => $mfor));
+            // MUtil_Echo::track($sdata);
 
-                    foreach ($data as &$mrow) {
-                        $mfind = $mrow[$mkey];
+            if ($sdata) {
+                $skeys = array_flip(MUtil_Ra::column($skey, $sdata));
+                $empty = array_fill_keys(array_keys(reset($sdata)), null);
 
-                        if (isset($skeys[$mfind])) {
-                            $mrow += $sdata[$skeys[$mfind]];
-                        } else {
-                            $mrow += $empty;
-                        }
-                    }
-                } else {
-                    $empty = array_fill_keys($sub->getItemNames(), null);
+                foreach ($data as &$mrow) {
+                    $mfind = $mrow[$mkey];
 
-                    foreach ($data as &$mrow) {
+                    if (isset($skeys[$mfind])) {
+                        $mrow += $sdata[$skeys[$mfind]];
+                    } else {
                         $mrow += $empty;
                     }
                 }
             } else {
                 $empty = array_fill_keys($sub->getItemNames(), null);
+
                 foreach ($data as &$mrow) {
-                    $filter = $sub->getFilter();
-                    foreach ($this->_joins[$name] as $from => $to) {
-                        if (isset($mrow[$from])) {
-                            $filter[$to] = $mrow[$from];
-                        }
+                    $mrow += $empty;
+                }
+            }
+        } else {
+            $empty = array_fill_keys($sub->getItemNames(), null);
+            foreach ($data as &$mrow) {
+                $filter = $sub->getFilter();
+                foreach ($this->_joins[$name] as $from => $to) {
+                    if (isset($mrow[$from])) {
+                        $filter[$to] = $mrow[$from];
                     }
+                }
 
-                    $sdata = $sub->loadFirst($filter);
+                $sdata = $sub->loadFirst($filter);
 
-                    if ($sdata) {
-                        $mrow += $sdata;
-                    } else {
-                        $mrow += $empty;
-                    }
+                if ($sdata) {
+                    $mrow += $sdata;
+                } else {
+                    $mrow += $empty;
+                }
 
-                    // MUtil_Echo::track($sdata, $mrow);
-                }
+                // MUtil_Echo::track($sdata, $mrow);
             }
         }
-        // MUtil_Echo::track($data);
-
-        return $data;
     }
 }
Modified: trunk/library/snippets/Organization/ChooseOrganizationSnippet.php
===================================================================
--- trunk/library/snippets/Organization/ChooseOrganizationSnippet.php	2013-03-05 17:51:12 UTC (rev 1169)
+++ trunk/library/snippets/Organization/ChooseOrganizationSnippet.php	2013-03-05 17:53:39 UTC (rev 1170)
@@ -95,7 +95,7 @@
             foreach ($orgs as $orgId => $name) {
                 $url['org'] = $orgId;
 
-                $html->pInfo()->actionLink($url, $name, array('style' => 'font-size: 120%;'));
+                $html->pInfo()->actionLink($url, $name)->appendAttrib('class', 'larger'); 
             }
         } else {
             $html->pInfo($this->_('This organization cannot have any respondents.'));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
 |