|
From: <gem...@li...> - 2012-06-21 16:10:25
|
Revision: 780
http://gemstracker.svn.sourceforge.net/gemstracker/?rev=780&view=rev
Author: matijsdejong
Date: 2012-06-21 16:10:15 +0000 (Thu, 21 Jun 2012)
Log Message:
-----------
Fixed AddTracksSnippet, now uses menu and works with new attributes
Modified Paths:
--------------
trunk/library/classes/Gems/Default/TrackActionAbstract.php
trunk/library/classes/Gems/User/User.php
trunk/library/snippets/AddTracksSnippet.php
Modified: trunk/library/classes/Gems/Default/TrackActionAbstract.php
===================================================================
--- trunk/library/classes/Gems/Default/TrackActionAbstract.php 2012-06-21 14:57:13 UTC (rev 779)
+++ trunk/library/classes/Gems/Default/TrackActionAbstract.php 2012-06-21 16:10:15 UTC (rev 780)
@@ -141,14 +141,6 @@
$patientId = $this->_getParam(MUtil_Model::REQUEST_ID1);
$orgId = $this->_getParam(MUtil_Model::REQUEST_ID2);
- // When no resp id, check the current menu item paramter filter that MUtil_Model::REQUEST_ID does not contain a token
- if ((! $patientId) && $this->menu->getCurrent()->checkParameterFilter(Gems_Model::ID_TYPE)) {
- $patientId = $this->_getIdParam();
- }
- if (! $orgId) {
- $orgId = $this->escort->getCurrentOrganization();
- }
-
return array ($patientId, $orgId);
}
Modified: trunk/library/classes/Gems/User/User.php
===================================================================
--- trunk/library/classes/Gems/User/User.php 2012-06-21 14:57:13 UTC (rev 779)
+++ trunk/library/classes/Gems/User/User.php 2012-06-21 16:10:15 UTC (rev 780)
@@ -1337,6 +1337,7 @@
//Create the list of request cache keys that match an organization ID (to be extended)
$possibleOrgIds = array(
+ MUtil_Model::REQUEST_ID2,
'gr2o_id_organization',
'gto_id_organization');
Modified: trunk/library/snippets/AddTracksSnippet.php
===================================================================
--- trunk/library/snippets/AddTracksSnippet.php 2012-06-21 14:57:13 UTC (rev 779)
+++ trunk/library/snippets/AddTracksSnippet.php 2012-06-21 16:10:15 UTC (rev 780)
@@ -72,6 +72,12 @@
public $loader;
/**
+ *
+ * @var Gems_Menu
+ */
+ protected $menu;
+
+ /**
* Optional: $request or $tokenData must be set
*
* @var Zend_Controller_Request_Abstract
@@ -117,65 +123,49 @@
switch ($trackType) {
case 'T':
$trackController = 'track';
+ $trackTypeLetter = 'T';
break;
case 'S':
$trackController = 'survey';
+ $trackTypeLetter = 'S';
break;
case 'M':
$trackController = 'survey';
+ $trackTypeLetter = 'S';
break;
default:
throw new exception('Invalid track type requested.');
}
- $trackTypeCache = $trackType . '_' . $this->session->user_style;
- $trackTypeTime = $trackType . '_time';
+ $organization_id = intval($this->request->getParam(MUtil_Model::REQUEST_ID2));
+ $trackTypeCache = $trackType . '_' . $organization_id;
+ $trackTypeTime = $trackType . '_time';
if (isset($this->session->$trackTypeCache, $this->session->$trackTypeTime) && (time() < $this->session->$trackTypeTime)) {
$tracks = $this->session->$trackTypeCache;
} else {
- $organization_id = $this->escort->getCurrentOrganization();
- switch ($trackType) {
- case 'T':
- $sql = "SELECT gtr_id_track, gtr_track_name
- FROM gems__tracks
- WHERE gtr_date_start < CURRENT_TIMESTAMP AND
- (gtr_date_until IS NULL OR gtr_date_until > CURRENT_TIMESTAMP) AND
- gtr_active = 1 AND
- gtr_track_type = 'T' AND
- gtr_organizations LIKE '%|$organization_id|%'
- ORDER BY gtr_track_name";
- break;
- case 'S':
- $sql = "SELECT gtr_id_track, gtr_track_name
- FROM gems__tracks INNER JOIN
- gems__rounds ON gtr_id_track = gro_id_track INNER JOIN
- gems__surveys ON gro_id_survey = gsu_id_survey INNER JOIN
- gems__groups ON gsu_id_primary_group = ggp_id_group
- WHERE gtr_date_start < CURRENT_TIMESTAMP AND
- (gtr_date_until IS NULL OR gtr_date_until > CURRENT_TIMESTAMP) AND
- gtr_active = 1 AND
- gtr_track_type = 'S' AND
- ggp_respondent_members = 1 AND
- gtr_organizations LIKE '%|$organization_id|%'
- ORDER BY gtr_track_name";
- break;
- case 'M':
- $sql = "SELECT gtr_id_track, gtr_track_name
- FROM gems__tracks INNER JOIN
- gems__rounds ON gtr_id_track = gro_id_track INNER JOIN
- gems__surveys ON gro_id_survey = gsu_id_survey INNER JOIN
- gems__groups ON gsu_id_primary_group = ggp_id_group
- WHERE gtr_date_start < CURRENT_TIMESTAMP AND
- (gtr_date_until IS NULL OR gtr_date_until > CURRENT_TIMESTAMP) AND
- gtr_active = 1 AND
- gtr_track_type = 'S' AND
- ggp_respondent_members = 0 AND
- gtr_organizations LIKE '%|$organization_id|%'
- ORDER BY gtr_track_name";
- break;
- // default:
- // throw new exception('Invalid track type requested.');
+ if ($trackType == 'T') {
+ $sql = "SELECT gtr_id_track, gtr_track_name
+ FROM gems__tracks
+ WHERE gtr_date_start < CURRENT_TIMESTAMP AND
+ (gtr_date_until IS NULL OR gtr_date_until > CURRENT_TIMESTAMP) AND
+ gtr_active = 1 AND
+ gtr_track_type = 'T' AND
+ gtr_organizations LIKE '%|$organization_id|%'
+ ORDER BY gtr_track_name";
+ } else {
+ $sql = "SELECT gtr_id_track, gtr_track_name
+ FROM gems__tracks INNER JOIN
+ gems__rounds ON gtr_id_track = gro_id_track INNER JOIN
+ gems__surveys ON gro_id_survey = gsu_id_survey INNER JOIN
+ gems__groups ON gsu_id_primary_group = ggp_id_group
+ WHERE gtr_date_start < CURRENT_TIMESTAMP AND
+ (gtr_date_until IS NULL OR gtr_date_until > CURRENT_TIMESTAMP) AND
+ gtr_active = 1 AND
+ gtr_track_type = '$trackTypeLetter' AND
+ ggp_respondent_members = 1 AND
+ gtr_organizations LIKE '%|$organization_id|%'
+ ORDER BY gtr_track_name";
}
$tracks = $this->db->fetchPairs($sql);
@@ -186,17 +176,23 @@
$div = MUtil_Html::create()->div(array('class' => 'toolbox'));
if ($tracks) {
- $pageRef['RouteReset'] = true;
+ $menuIndex = $this->menu->findController($trackController, 'index');
+ $menuView = $this->menu->findController($trackController, 'view');
+ $menuCreate = $this->menu->findController($trackController, 'create');
- $div->a(array('controller' => $trackController, 'action' => 'index') + $pageRef,
+ $div->a($menuIndex->toHRefAttribute($this->request),
$trackTypeDescription,
array('class' => 'toolanchor'));
- $data = new MUtil_Lazy_RepeatableByKeyValue($tracks);
+ $data = new MUtil_Lazy_RepeatableByKeyValue($tracks);
+ $params = array('gtr_id_track' => $data->key, 'gtr_track_type' => $trackTypeLetter);
+
$li = $div->ul($data)->li();
- $li->a(array(Gems_Model::TRACK_ID => $data->key, 'controller' => $trackController, 'action' => 'view') + $pageRef, array('class' => 'rightFloat'))
+ $li->a($menuView->toHRefAttribute($this->request, $params), array('class' => 'rightFloat'))
->img(array('src' => 'info.png', 'width' => 12, 'height' => 12, 'alt' => $this->_('info')));
- $li->a(array(Gems_Model::TRACK_ID => $data->key, 'controller' => $trackController, 'action' => 'create') + $pageRef, $data->value, array('class' => 'add'));
+ $li->a($menuCreate->toHRefAttribute($this->request, $params),
+ $data->value,
+ array('class' => 'add'));
} else {
$div->span($trackTypeDescription, array('class' => 'toolanchor disabled'));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|