From: <gem...@li...> - 2012-06-20 17:00:00
|
Revision: 773 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=773&view=rev Author: matijsdejong Date: 2012-06-20 16:59:53 +0000 (Wed, 20 Jun 2012) Log Message: ----------- First version of working multi org Modified Paths: -------------- trunk/library/classes/Gems/Default/RespondentAction.php trunk/library/classes/Gems/Menu/SubMenuItem.php trunk/library/classes/Gems/Menu.php trunk/library/snippets/RespondentTokenSnippet.php Modified: trunk/library/classes/Gems/Default/RespondentAction.php =================================================================== --- trunk/library/classes/Gems/Default/RespondentAction.php 2012-06-18 13:01:26 UTC (rev 772) +++ trunk/library/classes/Gems/Default/RespondentAction.php 2012-06-20 16:59:53 UTC (rev 773) @@ -311,8 +311,11 @@ { switch ($name) { case 'gr2o_patient_nr': - return $this->_getParam(MUtil_Model::REQUEST_ID, $default); + return $this->_getParam(MUtil_Model::REQUEST_ID, $this->_getParam(MUtil_Model::REQUEST_ID . '1', $default)); + case 'gr2o_id_organization': + return $this->_getParam(MUtil_Model::REQUEST_ID . '1', $default ? $default : $this->loader->getCurrentUser()->getCurrentOrganizationId()); + case 'gto_id_token': return null; Modified: trunk/library/classes/Gems/Menu/SubMenuItem.php =================================================================== --- trunk/library/classes/Gems/Menu/SubMenuItem.php 2012-06-18 13:01:26 UTC (rev 772) +++ trunk/library/classes/Gems/Menu/SubMenuItem.php 2012-06-20 16:59:53 UTC (rev 773) @@ -69,6 +69,7 @@ */ class Gems_Menu_SubMenuItem extends Gems_Menu_MenuAbstract { + private $_hiddenOrgId; private $_hiddenParameters; // Added to $request by applyHiddenParameters private $_itemOptions; private $_parameters = true; @@ -183,6 +184,17 @@ } } } + + if ($this->_hiddenOrgId) { + // Remove org paramter that should remain hidden. + if (isset($parameters[MUtil_Model::REQUEST_ID . '1'], $parameters[MUtil_Model::REQUEST_ID . '2']) && + (! $parameters[MUtil_Model::REQUEST_ID . '2'] instanceof MUtil_Lazy_LazyInterface) && + ($parameters[MUtil_Model::REQUEST_ID . '2'] == $this->_hiddenOrgId)) { + $parameters[MUtil_Model::REQUEST_ID] = $parameters[MUtil_Model::REQUEST_ID . '1']; + unset($parameters[MUtil_Model::REQUEST_ID . '1'], $parameters[MUtil_Model::REQUEST_ID . '2']); + } + } + return $condition; } @@ -774,6 +786,18 @@ } /** + * Set the organization id of the org parameter that can remain hidden. + * + * @param type $orgId + * @return Gems_Menu_SubMenuItem (continuation pattern) + */ + public function setHiddenOrgId($orgId) + { + $this->_hiddenOrgId = $orgId; + return $this; + } + + /** * Defines the number of named parameters using the model naming * convention: id=x or id1=x id2=y * Modified: trunk/library/classes/Gems/Menu.php =================================================================== --- trunk/library/classes/Gems/Menu.php 2012-06-18 13:01:26 UTC (rev 772) +++ trunk/library/classes/Gems/Menu.php 2012-06-20 16:59:53 UTC (rev 773) @@ -262,15 +262,20 @@ public function addRespondentPage($label) { + $orgId = $this->escort->getLoader()->getCurrentUser()->getCurrentOrganizationId(); + $params = array(MUtil_Model::REQUEST_ID => 'gr2o_patient_nr'); - // $params = array(MUtil_Model::REQUEST_ID . '1' => 'gr2o_patient_nr', MUtil_Model::REQUEST_ID . '2' => 'gr2o_id_organization'); + $params = array(MUtil_Model::REQUEST_ID . '1' => 'gr2o_patient_nr', MUtil_Model::REQUEST_ID . '2' => 'gr2o_id_organization'); // MAIN RESPONDENTS ITEM $page = $this->addPage($label, 'pr.respondent', 'respondent'); $page->addAutofilterAction(); $page->addCreateAction('pr.respondent.create')->setParameterFilter('can_add_respondents', true);; - $page->addShowAction()->setNamedParameters($params); + $page->addShowAction() + ->setNamedParameters($params) + ->setHiddenOrgId($orgId); + /* iff( is('gr2o_id_organization', $this->escort->getCurrentOrganization()), @@ -279,76 +284,101 @@ ); */ - $page->addEditAction('pr.respondent.edit')->setNamedParameters($params); - $page->addAction($this->_('Export'), 'pr.respondent.export-html', 'export')->setNamedParameters($params); + $page->addEditAction('pr.respondent.edit') + ->setNamedParameters($params) + ->setHiddenOrgId($orgId); + $page->addAction($this->_('Export'), 'pr.respondent.export-html', 'export') + ->setNamedParameters($params) + ->setHiddenOrgId($orgId); if ($this->escort instanceof Gems_Project_Tracks_SingleTrackInterface) { $trType = 'T'; $subPage = $page->addPage($this->_('Track'), 'pr.track', 'track', 'show-track') - ->setNamedParameters($params) - ->addHiddenParameter(Gems_Model::TRACK_ID, $this->escort->getTrackId(), 'gtr_track_type', $trType); + ->setNamedParameters($params) + ->setHiddenOrgId($orgId) + ->addHiddenParameter(Gems_Model::TRACK_ID, $this->escort->getTrackId(), 'gtr_track_type', $trType); $tkPages[$trType] = $subPage->addAction($this->_('Token'), 'pr.token', 'show') ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gto_id_token') ->setParameterFilter('gtr_track_type', $trType, Gems_Model::ID_TYPE, 'token'); $subPage->addAction($this->_('Add'), 'pr.track.create', 'create') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track') - ->setParameterFilter('gtr_track_type', $trType, 'track_can_be_created', 1) - ->addHiddenParameter('track_can_be_created', 1); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::TRACK_ID, 'gtr_id_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType, 'track_can_be_created', 1) + ->addHiddenParameter('track_can_be_created', 1); $subPage->addAction($this->_('Preview'), 'pr.track', 'view') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track') - ->setParameterFilter('gtr_track_type', $trType, 'track_can_be_created', 1) - ->addHiddenParameter('track_can_be_created', 1); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::TRACK_ID, 'gtr_id_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType, 'track_can_be_created', 1) + ->addHiddenParameter('track_can_be_created', 1); } else { $trPage = $page->addPage($this->_('Tracks'), 'pr.track', 'track'); $trType = 'T'; - $trPage->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr'); - $trPage->addAutofilterAction(); + $trPage->setNamedParameters($params) + ->setHiddenOrgId($orgId) + ->addAutofilterAction(); /* iff(is('gtr_track_type', $trType), aget(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track')) */ $trPage->addAction($this->_('Add'), 'pr.track.create', 'create') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track') - ->setParameterFilter('gtr_track_type', $trType); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::TRACK_ID, 'gtr_id_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType); $trPage->addAction($this->_('Assignments'), 'pr.track', 'view') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track') - ->setParameterFilter('gtr_track_type', $trType); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::TRACK_ID, 'gtr_id_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType); $tkPages[$trType] = $trPage->addAction($this->_('Show'), 'pr.track', 'show-track') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::RESPONDENT_TRACK, 'gr2t_id_respondent_track') - ->setParameterFilter('gtr_track_type', $trType); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::RESPONDENT_TRACK, 'gr2t_id_respondent_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType); $tkPages[$trType]->addAction($this->_('Token'), 'pr.token', 'show') - ->setNamedParameters(MUtil_Model::REQUEST_ID, 'gto_id_token') - ->setParameterFilter('gtr_track_type', $trType, Gems_Model::ID_TYPE, 'token'); + ->setNamedParameters(MUtil_Model::REQUEST_ID, 'gto_id_token') + ->setParameterFilter('gtr_track_type', $trType, Gems_Model::ID_TYPE, 'token'); $trPage->addAction($this->_('Edit'), 'pr.track.edit', 'edit-track') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::RESPONDENT_TRACK, 'gr2t_id_respondent_track') - ->setParameterFilter('gtr_track_type', $trType, 'can_edit', 1); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::RESPONDENT_TRACK, 'gr2t_id_respondent_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType, 'can_edit', 1); $trPage->addAction($this->_('Delete'), 'pr.track.delete', 'delete-track') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::RESPONDENT_TRACK, 'gr2t_id_respondent_track') - ->setParameterFilter('gtr_track_type', $trType, 'can_edit', 1); + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::RESPONDENT_TRACK, 'gr2t_id_respondent_track') + ->setHiddenOrgId($orgId) + ->setParameterFilter('gtr_track_type', $trType, 'can_edit', 1); if ($this->escort instanceof Gems_Project_Tracks_StandAloneSurveysInterface) { $trPage = $page->addPage($this->_('Surveys'), 'pr.survey', 'survey'); $trType = 'S'; - $trPage->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr'); - $trPage->addAutofilterAction(); + $trPage->setNamedParameters($params) + ->setHiddenOrgId($orgId) + ->addAutofilterAction(); $trPage->addAction($this->_('Add'), 'pr.survey.create', 'create') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track') + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::TRACK_ID, 'gtr_id_track') + ->setHiddenOrgId($orgId) ->setParameterFilter('gtr_track_type', $trType); $trPage->addAction($this->_('Assigned'), 'pr.survey', 'view') - ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gr2o_patient_nr', Gems_Model::TRACK_ID, 'gtr_id_track') + ->setNamedParameters($params) + ->addNamedParameters(Gems_Model::TRACK_ID, 'gtr_id_track') + ->setHiddenOrgId($orgId) ->setParameterFilter('gtr_track_type', $trType); $tkPages[$trType] = $trPage; @@ -362,8 +392,8 @@ foreach ($tkPages as $trType => $tkPage) { $tkPage->addEditAction('pr.token.edit') - ->setNamedParameters(MUtil_Model::REQUEST_ID, 'gto_id_token') - ->setParameterFilter('gtr_track_type', $trType, 'grc_success', 1, Gems_Model::ID_TYPE, 'token'); + ->setNamedParameters(MUtil_Model::REQUEST_ID, 'gto_id_token') + ->setParameterFilter('gtr_track_type', $trType, 'grc_success', 1, Gems_Model::ID_TYPE, 'token'); $tkPage->addDeleteAction('pr.token.delete') ->addNamedParameters(MUtil_Model::REQUEST_ID, 'gto_id_token') @@ -387,7 +417,9 @@ ->set('target', MUtil_Model::REQUEST_ID); } - $page->addDeleteAction('pr.respondent.delete')->setNamedParameters($params); + $page->addDeleteAction('pr.respondent.delete') + ->setNamedParameters($params) + ->setHiddenOrgId($orgId); return $page; } Modified: trunk/library/snippets/RespondentTokenSnippet.php =================================================================== --- trunk/library/snippets/RespondentTokenSnippet.php 2012-06-18 13:01:26 UTC (rev 772) +++ trunk/library/snippets/RespondentTokenSnippet.php 2012-06-20 16:59:53 UTC (rev 773) @@ -96,6 +96,7 @@ // // Initiate data retrieval for stuff needed by links $bridge->gr2o_patient_nr; + $bridge->gr2o_id_organization; $bridge->gr2t_id_respondent_track; $bridge->gtr_track_type; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |