You can subscribe to this list here.
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(84) |
Oct
(70) |
Nov
(164) |
Dec
(71) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2012 |
Jan
(52) |
Feb
(77) |
Mar
(70) |
Apr
(58) |
May
(81) |
Jun
(74) |
Jul
(87) |
Aug
(30) |
Sep
(45) |
Oct
(37) |
Nov
(51) |
Dec
(31) |
2013 |
Jan
(47) |
Feb
(29) |
Mar
(40) |
Apr
(33) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <gem...@li...> - 2011-11-28 18:44:28
|
Revision: 305 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=305&view=rev Author: matijsdejong Date: 2011-11-28 18:44:22 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Revision for Pulse Added Paths: ----------- tags/1.5.0beta1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 18:42:55
|
Revision: 304 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=304&view=rev Author: matijsdejong Date: 2011-11-28 18:42:49 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Removed Paths: ------------- tags/1.5.0beta1/ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 18:36:36
|
Revision: 303 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=303&view=rev Author: matijsdejong Date: 2011-11-28 18:36:30 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Version for Pulse project Added Paths: ----------- tags/1.5.0beta1/ Property changes on: tags/1.5.0beta1 ___________________________________________________________________ Added: svn:mergeinfo + /branches/newUser:113-150 /branches/newUser2:175-207 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 18:34:59
|
Revision: 302 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=302&view=rev Author: matijsdejong Date: 2011-11-28 18:34:53 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Switching order in IndexAction.php selects the right organization for the url (the first time) MUtil_Echo::track commented out Modified Paths: -------------- trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/Gems/Tracker/Token.php Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 18:24:32 UTC (rev 301) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 18:34:53 UTC (rev 302) @@ -294,16 +294,16 @@ */ public function loginAction() { - $form = $this->_getLoginForm(); - $request = $this->getRequest(); - + // Allow layout switching based on request base url if ($this->escort instanceof Gems_Project_Layout_MultiLayoutInterface) { $hostUrl = $this->escort->loader->getUtil()->getCurrentURI(); - + + // MUtil_Echo::track($hostUrl); + $organizationId = $this->util->getDbLookup()->getOrganizationForUrl($hostUrl); - + if ($organizationId) { $user = $this->escort->getLoader()->getUserLoader()->getCurrentUser(); $user->setCurrentOrganization($organizationId); @@ -311,6 +311,8 @@ } } + $form = $this->_getLoginForm(); + if ($request->isPost()) { if ($form->isValid($request->getPost(), false)) { Modified: trunk/library/classes/Gems/Tracker/Token.php =================================================================== --- trunk/library/classes/Gems/Tracker/Token.php 2011-11-28 18:24:32 UTC (rev 301) +++ trunk/library/classes/Gems/Tracker/Token.php 2011-11-28 18:34:53 UTC (rev 302) @@ -1123,7 +1123,7 @@ if ($comment) { $values['gto_comment'] = $comment; } - MUtil_Echo::track($values); + // MUtil_Echo::track($values); $changed = $this->_updateToken($values, $userId); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 18:24:41
|
Revision: 301 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=301&view=rev Author: matijsdejong Date: 2011-11-28 18:24:32 +0000 (Mon, 28 Nov 2011) Log Message: ----------- #44 Reception codes can be stopped. Reception codes got their own objects in the margin. Processing changes has become more simple: just cascade to respondentTrack and token and let them decide to change anything. Modified Paths: -------------- trunk/library/classes/Gems/Default/ReceptionAction.php trunk/library/classes/Gems/Default/RespondentAction.php trunk/library/classes/Gems/Tracker/RespondentTrack.php trunk/library/classes/Gems/Tracker/Token.php trunk/library/classes/Gems/Tracker.php trunk/library/classes/Gems/User/Organization.php trunk/library/classes/Gems/User/User.php trunk/library/classes/Gems/Util/Translated.php trunk/library/classes/Gems/Util.php trunk/library/configs/db/patches.sql trunk/library/configs/db/tables/gems__reception_codes.10.sql trunk/library/languages/default-en.mo trunk/library/languages/default-en.po trunk/library/languages/default-nl.mo trunk/library/languages/default-nl.po trunk/library/snippets/DeleteInSourceTrackSnippet.php trunk/library/snippets/DeleteSingleSurveyInSourceTokenSnippet.php trunk/library/snippets/DeleteTrackTokenSnippet.php Added Paths: ----------- trunk/library/classes/Gems/Registry/CachedArrayTargetAbstract.php trunk/library/classes/Gems/Util/ReceptionCode.php trunk/library/classes/Gems/Util/ReceptionCodeLibrary.php Modified: trunk/library/classes/Gems/Default/ReceptionAction.php =================================================================== --- trunk/library/classes/Gems/Default/ReceptionAction.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Default/ReceptionAction.php 2011-11-28 18:24:32 UTC (rev 301) @@ -71,9 +71,10 @@ */ public function createModel($detailed, $action) { - $yesNo = $this->util->getTranslated()->getYesNo(); + $rcLib = $this->util->getReceptionCodeLibrary(); + $yesNo = $this->util->getTranslated()->getYesNo(); - $model = new MUtil_Model_TableModel('gems__reception_codes'); + $model = new MUtil_Model_TableModel('gems__reception_codes'); $model->copyKeys(); // The user can edit the keys. $model->set('grc_id_reception_code', 'label', $this->_('Code'), 'size', '10'); @@ -85,11 +86,11 @@ 'elementClass', 'CheckBox', 'description', $this->_('This reception code is a success code.')); $model->set('grc_active', 'label', $this->_('Active'), - 'multiOptions', $yesNo , + 'multiOptions', $yesNo, 'elementClass', 'CheckBox', 'description', $this->_('Only active codes can be selected.')); $model->set('grc_for_respondents', 'label', $this->_('For respondents'), - 'multiOptions', $yesNo , + 'multiOptions', $yesNo, 'elementClass', 'CheckBox', 'description', $this->_('This reception code can be assigned to a respondent.')); $model->set('grc_for_tracks', 'label', $this->_('For tracks'), @@ -97,15 +98,13 @@ 'elementClass', 'CheckBox', 'description', $this->_('This reception code can be assigned to a track.')); $model->set('grc_for_surveys', 'label', $this->_('For surveys'), - 'multiOptions', $yesNo , - 'elementClass', 'CheckBox', + 'multiOptions', $rcLib->getSurveyApplicationValues(), 'description', $this->_('This reception code can be assigned to a survey.')); $model->set('grc_redo_survey', 'label', $this->_('Redo survey'), - 'multiOptions', $this->util->getTranslated()->getRedoCodes(), - 'elementClass', 'Select', + 'multiOptions', $rcLib->getRedoValues(), 'description', $this->_('Redo a survey on this reception code.')); $model->set('grc_overwrite_answers', 'label', $this->_('Overwrite ansers'), - 'multiOptions', $yesNo , + 'multiOptions', $yesNo, 'elementClass', 'CheckBox', 'description', $this->_('Remove the consent from already answered surveys.')); Modified: trunk/library/classes/Gems/Default/RespondentAction.php =================================================================== --- trunk/library/classes/Gems/Default/RespondentAction.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Default/RespondentAction.php 2011-11-28 18:24:32 UTC (rev 301) @@ -227,8 +227,7 @@ // Log $this->openedRespondent($data['gr2o_patient_nr'], $data['gr2o_id_organization'], $data['grs_id_user']); - $sql = 'SELECT grc_id_reception_code, grc_description FROM gems__reception_codes WHERE grc_active = 1 AND grc_for_respondents = 1 ORDER BY grc_description'; - $options = $this->db->fetchPairs($sql); + $options = $this->util->getReceptionCodeLibrary()->getRespondentDeletionCodes(); $bridge = new MUtil_Model_FormBridge($model, $this->createForm()); $bridge->addSelect('gr2o_reception_code', @@ -245,53 +244,39 @@ if ($request->isPost()) { $data = $_POST + $data; if ($form->isValid($data )) { - // Is really removed - if ($data['gr2o_reception_code'] != GemsEscort::RECEPTION_OK) { - // Perform actual save - $where = 'gr2o_id_user = ? AND gr2o_id_organization = ?'; - $where = $this->db->quoteInto($where, $data['gr2o_id_user'], null, 1); - $where = $this->db->quoteInto($where, $data['gr2o_id_organization'], null, 1); - $this->db->update('gems__respondent2org', array( - 'gr2o_reception_code' => $data['gr2o_reception_code'], - 'gr2o_changed' => new Zend_Db_Expr('CURRENT_TIMESTAMP'), - 'gr2o_changed_by' => $this->session->user_id), - $where); + $code = $this->util->getReceptionCode($data['gr2o_reception_code']); - // Check for redo or overwrite answer in reception code. - $sql = 'SELECT grc_overwrite_answers - FROM gems__reception_codes - WHERE grc_overwrite_answers = 1 AND grc_id_reception_code = ? LIMIT 1'; - if ($this->db->fetchOne($sql, $data['gr2o_reception_code'])) { - // Update consent for tokens - $consentCode = $this->util->getConsentRejected(); + // Is the respondent really removed + if (! $code->isSuccess()) { + $userId = $this->loader->getCurrentUser()->getUserId(); - $tracker = $this->loader->getTracker(); - $tokenSelect = $tracker->getTokenSelect(true); - $tokenSelect - ->andReceptionCodes() - ->andRespondentOrganizations() - ->andConsents() - ->forRespondent($data['gr2o_id_user'], $data['gr2o_id_organization']); + // Cascade to tracks + // the responsiblilty to handle it correctly is on the sub objects now. + $tracks = $this->loader->getTracker()->getRespondentTracks($data['gr2o_id_user'], $data['gr2o_id_organization']); + foreach ($tracks as $track) { + $track->setReceptionCode($code, null, $userId); + } - // Update reception code for tokens - $tokens = $tokenSelect->fetchAll(); + // Perform actual save, but not simple stop codes. + if ($code->isForRespondents()) { + $values['gr2o_reception_code'] = $data['gr2o_reception_code']; + $values['gr2o_changed'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); + $values['gr2o_changed_by'] = $userId; - // When a TRACK is removed, all tokens are automatically revoked - foreach ($tokens as $tokenData) { - $token = $tracker->getToken($tokenData); - if ($token->hasSuccesCode() && $token->inSource()) { + $where = 'gr2o_id_user = ? AND gr2o_id_organization = ?'; + $where = $this->db->quoteInto($where, $data['gr2o_id_user'], null, 1); + $where = $this->db->quoteInto($where, $data['gr2o_id_organization'], null, 1); - $token->getSurvey()->updateConsent($token, $consentCode); + $this->db->update('gems__respondent2org', $values, $where); - // TODO: Decide what to do: now we only update the consent codes, not - // the token and respondentTrack consent codes - // $token->setReceptionCode($data['gr2t_reception_code'], null, $this->session->user_id); - } - } + $this->addMessage($this->_('Respondent deleted.')); + $this->_reroute(array('action' => 'index'), true); + } else { + // Just a stop code + $this->addMessage($this->_('Respondent tracks stopped.')); + $this->_reroute(array('action' => 'show')); } - $this->addMessage($this->_('Respondent deleted.')); - $this->_reroute(array('action' => 'index'), true); } else { $this->addMessage($this->_('Choose a reception code to delete.')); } Added: trunk/library/classes/Gems/Registry/CachedArrayTargetAbstract.php =================================================================== --- trunk/library/classes/Gems/Registry/CachedArrayTargetAbstract.php (rev 0) +++ trunk/library/classes/Gems/Registry/CachedArrayTargetAbstract.php 2011-11-28 18:24:32 UTC (rev 301) @@ -0,0 +1,175 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage Registry + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * Add's automatic caching to an registry target object. + * + * @package Gems + * @subpackage Registry + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +abstract class Gems_Registry_CachedArrayTargetAbstract extends Gems_Registry_TargetAbstract +{ + /** + * Variable to add tags to the cache for cleanup. + * + * @var array + */ + protected $_cacheTags = array(); + + /** + * The current data. + * + * @var array + */ + protected $_data; + + /** + * The id for this data + * + * @var mixed + */ + protected $_id; + + /** + * + * @var Zend_Cache_Core + */ + protected $cache; + + /** + * Creates the object. + * + * @param mixed $id Whatever identifies this object. + */ + public function __construct($id) + { + $this->_id = $id; + } + + /** + * isset() safe array access helper function. + * + * @param string $name + * @return mixed + */ + protected function _get($name) + { + if (isset($this->_data[$name])) { + return $this->_data[$name]; + } + } + + /** + * Get the cacheId for the organization + * + * @return string + */ + private function _getCacheId() { + return GEMS_PROJECT_NAME . '__' . get_class($this) . '__' . $this->_id; + } + + /** + * Changes a value and signals the cache. + * + * @param string $name + * @param mixed $value + * @return Gems_Registry_CachedArrayTargetAbstract (continuation pattern) + */ + protected function _set($name, $value) + { + $this->_data[$name] = $value; + + // Do not reload / save here: + // 1: other changes might follow, + // 2: it might not be used, + // 3: e.g. database saves may change other data. + $this->invalidateCache(); + + return $this; + } + + /** + * Should be called after answering the request to allow the Target + * to check if all required registry values have been set correctly. + * + * @return boolean False if required are missing. + */ + public function checkRegistryRequestsAnswers() + { + if ($this->cache) { + $cacheId = $this->_getCacheId(); + $this->_data = $this->cache->load($cacheId); + } else { + $cacheId = false; + } + + if (! $this->_data) { + $this->_data = $this->loadData($this->_id); + + if ($cacheId) { + $this->cache->save($this->_data, $cacheId, $this->_cacheTags); + } + } + // MUtil_Echo::track($this->_data); + + return is_array($this->_data) && parent::checkRegistryRequestsAnswers(); + } + + /** + * Empty the cache of the organization + * + * @return Gems_User_Organization (continutation pattern) + */ + public function invalidateCache() { + if ($this->cache) { + $cacheId = $this->_getCacheId(); + $this->cache->remove($cacheId); + } + return $this; + } + + /** + * Load the data when the cache is empty. + * + * @param mixed $id + * @return array The array of data values + */ + abstract protected function loadData($id); +} Modified: trunk/library/classes/Gems/Tracker/RespondentTrack.php =================================================================== --- trunk/library/classes/Gems/Tracker/RespondentTrack.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Tracker/RespondentTrack.php 2011-11-28 18:24:32 UTC (rev 301) @@ -100,6 +100,12 @@ /** * + * @var Gems_Util + */ + protected $util; + + /** + * * @param mixed $respTracksData Track Id or array containing reps2track record */ public function __construct($respTracksData) @@ -113,6 +119,40 @@ } /** + * Check this respondent track for the number of tokens completed / to do + * + * @param int $userId Id of the user who takes the action (for logging) + * @return int 1 if the track was changed by this code + */ + public function _checkTrackCount($userId) + { + $sqlCount = 'SELECT COUNT(*) AS count, COALESCE(SUM(CASE WHEN gto_completion_time IS NULL THEN 0 ELSE 1 END), 0) AS completed + FROM gems__tokens + JOIN gems__reception_codes ON gto_reception_code = grc_id_reception_code AND grc_success = 1 + WHERE gto_id_respondent_track = ?'; + + if ($counts = $this->db->fetchRow($sqlCount, $this->_respTrackId)) { + $values['gr2t_count'] = intval($counts['count']); + $values['gr2t_completed'] = intval($counts['completed']); + + if ($values['gr2t_count'] == $values['gr2t_completed']) { + $tokenSelect = $this->tracker->getTokenSelect(array('MAX(gto_completion_time)')); + $tokenSelect->andReceptionCodes(array()) + ->forRespondentTrack($this->_respTrackId) + ->onlySucces(); + + $values['gr2t_end_date'] = $tokenSelect->fetchOne(); + } else { + $values['gr2t_end_date'] = null; + } + + return $this->_updateTrack($values, $userId); + } + + return 0; + } + + /** * Makes sure the fieldData is in $this->_fieldData * * @param boolean $reload Optional parameter to force reload. @@ -129,7 +169,7 @@ $fieldData[$fieldMap[$key]] = $value; } } - + $this->_fieldData = $fieldData; } } @@ -137,19 +177,23 @@ /** * Makes sure the receptioncode data is part of the $this->_respTrackData * - * @param boolean $reload Optional parameter to force reload. + * @param boolean $reload Optional parameter to force reload or array with new values. */ private function _ensureReceptionCode($reload = false) { if ($reload || (! isset($this->_respTrackData['grc_success']))) { - $sql = "SELECT * FROM gems__reception_codes WHERE grc_id_reception_code = ?"; - $code = $this->_respTrackData['gr2t_reception_code']; + if (is_array($reload)) { + $this->_respTrackData = $reload + $this->_respTrackData; + } else { + $sql = "SELECT * FROM gems__reception_codes WHERE grc_id_reception_code = ?"; + $code = $this->_respTrackData['gr2t_reception_code']; - if ($row = $this->db->fetchRow($sql, $code)) { - $this->_respTrackData = $row + $this->_respTrackData; - } else { - $trackId = $this->_respTrackId; - throw new Gems_Exception("Reception code $code is missing for track $trackId."); + if ($row = $this->db->fetchRow($sql, $code)) { + $this->_respTrackData = $row + $this->_respTrackData; + } else { + $trackId = $this->_respTrackId; + throw new Gems_Exception("Reception code $code is missing for track $trackId."); + } } } } @@ -292,31 +336,12 @@ */ public function checkTrackTokens($userId, Gems_Tracker_Token $fromToken = null) { - $sqlCount = 'SELECT COUNT(*) AS count, COALESCE(SUM(CASE WHEN gto_completion_time IS NULL THEN 0 ELSE 1 END), 0) AS completed - FROM gems__tokens - JOIN gems__reception_codes ON gto_reception_code = grc_id_reception_code AND grc_success = 1 - WHERE gto_id_respondent_track = ?'; + // Update token completion count. + $this->_checkTrackCount($userId); - if ($counts = $this->db->fetchRow($sqlCount, $this->_respTrackId)) { - $values['gr2t_count'] = intval($counts['count']); - $values['gr2t_completed'] = intval($counts['completed']); - - if ($values['gr2t_count'] == $values['gr2t_completed']) { - $tokenSelect = $this->tracker->getTokenSelect(array('MAX(gto_completion_time)')); - $tokenSelect->andReceptionCodes(array()) - ->forRespondentTrack($this->_respTrackId) - ->onlySucces(); - - $values['gr2t_end_date'] = $tokenSelect->fetchOne(); - } else { - $values['gr2t_end_date'] = null; - } - - $this->_updateTrack($values, $userId); - } - $engine = $this->getTrackEngine(); + // Check for validFrom and validUntil dates that have changed. if ($fromToken) { return $engine->checkTokensFrom($this, $fromToken, $userId); } elseif ($this->_checkStart) { @@ -619,7 +644,7 @@ $this->_respTrackData = $this->db->fetchRow($sql, $this->_respTrackId); } - + $this->_ensureFieldData(true); return $this; @@ -629,30 +654,57 @@ * Set the reception code for this respondent track and make sure the * necessary cascade to the tokens and thus the source takes place. * - * @param string $code The new reception code + * @param string $code The new (non-success) reception code or a Gems_Util_ReceptionCode object * @param string $comment Comment for tokens. False values leave value unchanged * @param int $userId The current user * @return int 1 if the token has changed, 0 otherwise */ public function setReceptionCode($code, $comment, $userId) { - $values['gr2t_reception_code'] = $code; + // Make sure it is a Gems_Util_ReceptionCode object + if (! $code instanceof Gems_Util_ReceptionCode) { + $code = $this->util->getReceptionCode($code); + } + $changed = 0; - $changed = $this->_updateTrack($values, $userId); + // Apply this code both only when it is a track code. + // Patient level codes are just cascaded to the tokens. + // + // The exception is of course when the exiting values must + // be overwritten, e.g. when cooperation is retracted. + if ($code->isForTracks() || $code->isOverwriter()) { + $values['gr2t_reception_code'] = $code->getCode(); - if ($changed) { - // Reload reception code values - $this->_ensureReceptionCode(true); + $changed = $this->_updateTrack($values, $userId); - // Cascade to tokens - if (! $this->hasSuccesCode()) { - foreach ($this->getTokens() as $token) { - if ($token->hasSuccesCode()) { - $token->setReceptionCode($code, $comment, $userId); - } + if ($changed) { + // Reload reception code values + $this->_ensureReceptionCode($code->getAllData()); + } + } + + // Stopcodes have a different logic. + if ($code->isStopCode()) { + // Cascade stop to tokens + foreach ($this->getTokens() as $token) { + if ($token->hasSuccesCode() && (! $token->isCompleted())) { + $changed += $token->setReceptionCode($code, $comment, $userId); } } + $changed = max($changed, 1); + + // Update token count / completion + $this->_checkTrackCount($userId); + + } elseif (! $code->isSuccess()) { + // Cascade code to tokens + foreach ($this->getTokens() as $token) { + if ($token->hasSuccesCode()) { + $token->setReceptionCode($code, $comment, $userId); + } + } } + return $changed; } } Modified: trunk/library/classes/Gems/Tracker/Token.php =================================================================== --- trunk/library/classes/Gems/Tracker/Token.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Tracker/Token.php 2011-11-28 18:24:32 UTC (rev 301) @@ -147,19 +147,23 @@ /** * Makes sure the receptioncode data is part of the $this->_gemsData * - * @param boolean $reload Optional parameter to force reload. + * @param boolean $reload Optional parameter to force reload or an array with the new values. */ private function _ensureReceptionCode($reload = false) { if ($reload || (! isset($this->_gemsData['grc_success']))) { - $sql = "SELECT * FROM gems__reception_codes WHERE grc_id_reception_code = ?"; - $code = $this->_gemsData['gto_reception_code']; + if (is_array($reload)) { + $this->_gemsData = $reload + $this->_gemsData; + } else { + $sql = "SELECT * FROM gems__reception_codes WHERE grc_id_reception_code = ?"; + $code = $this->_gemsData['gto_reception_code']; - if ($row = $this->db->fetchRow($sql, $code)) { - $this->_gemsData = $row + $this->_gemsData; - } else { - $token = $this->_tokenId; - throw new Gems_Exception("Reception code $code is missing for token $token."); + if ($row = $this->db->fetchRow($sql, $code)) { + $this->_gemsData = $row + $this->_gemsData; + } else { + $token = $this->_tokenId; + throw new Gems_Exception("Reception code $code is missing for token $token."); + } } } } @@ -973,6 +977,7 @@ /** * + * @deprecated Use the ReceptionCode->hadRedoCode * @return boolean */ public function hasRedoCode() @@ -987,6 +992,7 @@ /** * True if the reception code is a redo survey copy. * + * @deprecated Use the ReceptionCode->hasRedoCopyCode * @return boolean */ public function hasRedoCopyCode() @@ -995,7 +1001,7 @@ $this->_ensureReceptionCode(); } - return Gems_Util_Translated::REDO_COPY == $this->_gemsData['grc_redo_survey']; + return Gems_Util_ReceptionCodeLibrary::REDO_COPY == $this->_gemsData['grc_redo_survey']; } /** @@ -1101,25 +1107,31 @@ * Set the reception code for this token and make sure the necessary * cascade to the source takes place. * - * @param string $code The new reception code + * @param string $code The new (non-success) reception code or a Gems_Util_ReceptionCode object * @param string $comment Comment False values leave value unchanged * @param int $userId The current user * @return int 1 if the token has changed, 0 otherwise */ public function setReceptionCode($code, $comment, $userId) { - $values['gto_reception_code'] = $code; + // Make sure it is a Gems_Util_ReceptionCode object + if (! $code instanceof Gems_Util_ReceptionCode) { + $code = $this->util->getReceptionCode($code); + } + + $values['gto_reception_code'] = $code->getCode(); if ($comment) { $values['gto_comment'] = $comment; } + MUtil_Echo::track($values); $changed = $this->_updateToken($values, $userId); if ($changed) { // Reload reception code values - $this->_ensureReceptionCode(true); + $this->_ensureReceptionCode($code->getAllData()); - if (! $this->hasSuccesCode()) { + if ($code->isOverwriter() || (! $code->isSuccess())) { $survey = $this->getSurvey(); // Update the consent code in the source Modified: trunk/library/classes/Gems/Tracker.php =================================================================== --- trunk/library/classes/Gems/Tracker.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Tracker.php 2011-11-28 18:24:32 UTC (rev 301) @@ -331,6 +331,27 @@ /** * + * @param int $userId + * @param int $organizationId + * @return array of Gems_Tracker_RespondentTrack + */ + public function getRespondentTracks($userId, $organizationId) + { + $sql = "SELECT * + FROM gems__respondent2track INNER JOIN gems__reception_codes ON gr2t_reception_code = grc_id_reception_code + WHERE gr2t_id_user = ? AND gr2t_id_organization = ?"; + $rows = $this->db->fetchAll($sql, array($userId, $organizationId)); + $tracks = array(); + + foreach ($rows as $row) { + $tracks[$row['gr2t_id_respondent_track']] = $this->getRespondentTrack($row); + } + + return $tracks; + } + + /** + * * @param mixed $respTrackData Track id or array containing trackdata * @return Gems_Tracker_RespondentTrack */ Modified: trunk/library/classes/Gems/User/Organization.php =================================================================== --- trunk/library/classes/Gems/User/Organization.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/User/Organization.php 2011-11-28 18:24:32 UTC (rev 301) @@ -46,9 +46,16 @@ * @license New BSD License * @since Class available since version 1.5 */ -class Gems_User_Organization extends Gems_Registry_TargetAbstract +class Gems_User_Organization extends Gems_Registry_CachedArrayTargetAbstract { /** + * Variable to add tags to the cache for cleanup. + * + * @var array + */ + protected $_cacheTags = array('organization'); + + /** * The default organization data for 'no organization'. * * @var array @@ -56,16 +63,6 @@ protected $_noOrganization = array( 'gor_id_organization' => 1, 'gor_name' => 'NO ORGANIZATION', - 'gor_code' => null, - 'gor_location' => null, - 'gor_url' => null, - 'gor_task' => null, - 'gor_accessible_by' => null, - 'gor_contact_name' => null, - 'gor_contact_email' => null, - 'gor_welcome' => null, - 'gor_signature' => null, - 'gor_style' => null, 'gor_iso_lang' => 'en', 'gor_has_respondents' => 0, 'gor_add_respondents' => 0, @@ -75,39 +72,11 @@ /** * - * @var array - */ - protected $_organizationData; - - /** - * - * @var int - */ - protected $_organizationId; - - /** - * - * @var Zend_Cache_Core - */ - protected $cache; - - /** - * * @var Zend_Db_Adapter_Abstract */ protected $db; /** - * Creates the organization object. - * - * @param int $organizationId - */ - public function __construct($organizationId) - { - $this->_organizationId = $organizationId; - } - - /** * Returns a callable if a method is called as a variable * or the value from the organizationData if it exists * @@ -116,26 +85,14 @@ */ public function __get($name) { - if (method_exists($this, $name)) { - // Return a callable - return array($this, $name); - } elseif (isset($this->_organizationData[$name])) { - return $this->_organizationData[$name]; + if (isset($this->_data[$name])) { + return $this->_data[$name]; } - throw new Gems_Exception_Coding("Unknown method '$name' requested as callable."); + return parent::__get($name); } /** - * Get the cacheId for the organization - * - * @return string - */ - private function _getCacheId() { - return GEMS_PROJECT_NAME . '__' . __CLASS__ . '__' . $this->_organizationId; - } - - /** * Set menu parameters from the organization * * @param Gems_Menu_ParameterSource $source @@ -153,7 +110,7 @@ */ public function canCreateRespondents() { - return (boolean) $this->_organizationData['gor_add_respondents']; + return (boolean) $this->_get('gor_add_respondents'); } /** @@ -163,62 +120,17 @@ */ public function canHaveRespondents() { - return (boolean) $this->_organizationData['gor_has_respondents'] || $this->_organizationData['gor_add_respondents']; + return (boolean) $this->_get('gor_has_respondents') || $this->_get('gor_add_respondents'); } /** - * Should be called after answering the request to allow the Target - * to check if all required registry values have been set correctly. - * - * @return boolean False if required are missing. - */ - public function checkRegistryRequestsAnswers() - { - if ($this->cache) { - $cacheId = $this->_getCacheId(); - $this->_organizationData = $this->cache->load($cacheId); - } else { - $cacheId = false; - } - - if (! $this->_organizationData) { - $sql = "SELECT * FROM gems__organizations WHERE gor_id_organization = ? LIMIT 1"; - $this->_organizationData = $this->db->fetchRow($sql, $this->_organizationId); - - if (! $this->_organizationData) { - $this->_organizationData = $this->_noOrganization; - } else { - $dbOrgId = $this->db->quote($this->_organizationId, Zend_Db::INT_TYPE); - $sql = "SELECT gor_id_organization, gor_name - FROM gems__organizations - WHERE gor_active = 1 AND - ( - gor_id_organization = $dbOrgId OR - gor_accessible_by LIKE '%:$dbOrgId:%' - ) - ORDER BY gor_name"; - $this->_organizationData['can_access'] = $this->db->fetchPairs($sql); - - // MUtil_Echo::track($sql, $this->_organizationData['can_access']); - } - - if ($cacheId) { - $this->cache->save($this->_organizationData, $cacheId); - } - } - // MUtil_Echo::track($this->_organizationData); - - return is_array($this->_organizationData) && parent::checkRegistryRequestsAnswers(); - } - - /** * Get the organizations this organizations can access. * * @return array Of type orgId => orgName */ public function getAllowedOrganizations() { - return $this->_organizationData['can_access']; + return $this->_get('can_access'); } /** @@ -228,7 +140,7 @@ */ public function getCode() { - return $this->_organizationData['gor_code']; + return $this->_get('gor_code'); } /** @@ -238,7 +150,7 @@ */ public function getId() { - return $this->_organizationData['gor_id_organization']; + return $this->_get('gor_id_organization'); } /** @@ -248,7 +160,7 @@ */ public function getName() { - return $this->_organizationData['gor_name']; + return $this->_get('gor_name'); } /** @@ -258,7 +170,7 @@ */ public function getSignature() { - return $this->_organizationData['gor_signature']; + return $this->_get('gor_signature'); } /** @@ -268,30 +180,49 @@ */ public function getStyle() { - return $this->_organizationData['gor_style']; + return $this->_get('gor_style'); } /** - * Get the welcome message for the organization. + * Load the data when the cache is empty. * - * @return string + * @param mixed $id + * @return array The array of data values */ - public function getWelcome() + protected function loadData($id) { - return $this->_organizationData['gor_welcome']; + $sql = "SELECT * FROM gems__organizations WHERE gor_id_organization = ? LIMIT 1"; + $data = $this->db->fetchRow($sql, $id); + + if ($data) { + $dbOrgId = $this->db->quote($id, Zend_Db::INT_TYPE); + $sql = "SELECT gor_id_organization, gor_name + FROM gems__organizations + WHERE gor_active = 1 AND + ( + gor_id_organization = $dbOrgId OR + gor_accessible_by LIKE '%:$dbOrgId:%' + ) + ORDER BY gor_name"; + $data['can_access'] = $this->db->fetchPairs($sql); + natsort($data['can_access']); + + // MUtil_Echo::track($sql, $data['can_access']); + } else { + $data = $this->_noOrganization; + } + + return $data; } /** - * Empty the cache of the organization + * Get the welcome message for the organization. * - * @return Gems_User_Organization (continutation pattern) + * @return string */ - public function invalidateCache() { - if ($this->cache) { - $cacheId = $this->_getCacheId(); - $this->cache->remove($cacheId); - } - return $this; + public function getWelcome() + { + return $this->_get('gor_welcome'); } /** @@ -304,17 +235,17 @@ */ public function setHasRespondents($userId) { - if (0 == $this->_organizationData['gor_has_respondents']) { - $this->_organizationData['gor_has_respondents'] = 1; - + if (! $this->_get('gor_has_respondents')) { $values['gor_has_respondents'] = 1; $values['gor_changed'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); $values['gor_changed_by'] = $userId; - $where = $this->db->quoteInto('gor_id_organization = ?', $this->_organizationId); + $where = $this->db->quoteInto('gor_id_organization = ?', $this->_id); $this->db->update('gems__organizations', $values, $where); - $this->invalidateCache(); + + // Invalidate cache / change value + $this->_set('gor_has_respondents', 1); } return $this; Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/User/User.php 2011-11-28 18:24:32 UTC (rev 301) @@ -648,10 +648,10 @@ // Privilege overrules organizational settings if ($this->hasPrivilege('pr.organization-switch')) { $orgs = $this->db->fetchPairs("SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active = 1 ORDER BY gor_name"); + natsort($orgs); } else { $orgs = $this->getBaseOrganization()->getAllowedOrganizations(); } - natsort($orgs); // MUtil_Echo::track($orgs); $this->_setVar('__allowedOrgs', $orgs); Added: trunk/library/classes/Gems/Util/ReceptionCode.php =================================================================== --- trunk/library/classes/Gems/Util/ReceptionCode.php (rev 0) +++ trunk/library/classes/Gems/Util/ReceptionCode.php 2011-11-28 18:24:32 UTC (rev 301) @@ -0,0 +1,175 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage Ytil + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * Utility function for the user of reception codes. + * + * @package Gems + * @subpackage Util + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +class Gems_Util_ReceptionCode extends Gems_Registry_CachedArrayTargetAbstract +{ + /** + * Variable to add tags to the cache for cleanup. + * + * @var array + */ + protected $_cacheTags = array('reception_code'); + + /** + * + * @var Zend_Db_Adapter_Abstract + */ + protected $db; + + /** + * Returns the complete record. + * + * @return array + */ + public function getAllData() + { + return $this->_data; + } + + /** + * The reception code. + * + * @return string + */ + public function getCode() + { + return $this->_id; + } + + /** + * + * @return boolean + */ + public function hasRedoCode() + { + return (boolean) $this->_get('grc_redo_survey'); + } + + /** + * True if the reception code is a redo survey copy. + * + * @return boolean + */ + public function hasRedoCopyCode() + { + return Gems_Util_ReceptionCodeLibrary::REDO_COPY == $this->_get('grc_redo_survey'); + } + + /** + * Is this code for respondent use? + * + * @return boolean + */ + public function isForRespondents() + { + return (boolean) $this->_get('grc_for_respondents'); + } + + /** + * Is this code for track use? + * + * @return boolean + */ + public function isForTracks() + { + return (boolean) $this->_get('grc_for_tracks'); + } + + /** + * Is this code for survey use? + * + * @return boolean + */ + public function isForSurveys() + { + return $this->_get('grc_for_surveys') > Gems_Util_ReceptionCodeLibrary::APPLY_NOT; + } + + /** + * Does this code overwrite set values? + * + * @return boolean + */ + public function isOverwriter() + { + return (boolean) $this->_get('grc_overwrite_answers'); + } + + /** + * Is this code a survey stop code. + * + * Then do not apply it to the track or respondent, but do apply it to the tokens. + * + * @return boolean + */ + public function isStopCode() + { + // MUtil_Echo::track($this->_data); + return $this->_get('grc_for_surveys') === Gems_Util_ReceptionCodeLibrary::APPLY_STOP; + } + + /** + * Is this code a success code. + * + * @return boolean + */ + public function isSuccess() + { + return (boolean) $this->_get('grc_success'); + } + + /** + * Load the data when the cache is empty. + * + * @param mixed $id + * @return array The array of data values + */ + protected function loadData($id) + { + $sql = "SELECT * FROM gems__reception_codes WHERE grc_id_reception_code = ? LIMIT 1"; + return $this->db->fetchRow($sql, $id); + } +} Added: trunk/library/classes/Gems/Util/ReceptionCodeLibrary.php =================================================================== --- trunk/library/classes/Gems/Util/ReceptionCodeLibrary.php (rev 0) +++ trunk/library/classes/Gems/Util/ReceptionCodeLibrary.php 2011-11-28 18:24:32 UTC (rev 301) @@ -0,0 +1,170 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage Util + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * Library functions and constants for working with reception codes. + * + * @package Gems + * @subpackage Util + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +class Gems_Util_ReceptionCodeLibrary extends Gems_Registry_TargetAbstract +{ + const APPLY_NOT = 0; + const APPLY_DO = 1; + const APPLY_STOP = 2; + + const REDO_NONE = 0; + const REDO_ONLY = 1; + const REDO_COPY = 2; + + /** + * + * @var Zend_Db_Adapter_Abstract + */ + protected $db; + + /** + * + * @var Zend_Translate + */ + protected $translate; + + /** + * + * @return Zend_Db_Select for a fetchPairs + */ + protected function _getDeletionCodeSelect() + { + $select = $this->db->select(); + $select->from('gems__reception_codes', array('grc_id_reception_code', 'grc_description')) + ->where('grc_active = 1') + ->order('grc_description'); + + return $select; + } + + /** + * Return the field values for the redo code. + * + * <ul><li>0: do not redo</li> + * <li>1: redo but do not copy answers</li> + * <li>2: redo and copy answers</li></ul> + * + * @staticvar array $data + * @return array + */ + public function getRedoValues() + { + static $data; + + if (! $data) { + $data = array( + self::REDO_NONE => $this->translate->_('No'), + self::REDO_ONLY => $this->translate->_('Yes (forget answers)'), + self::REDO_COPY => $this->translate->_('Yes (keep answers)')); + } + + return $data; + } + + /** + * Return the field values for surveys. + * + * <ul><li>0: do not use</li> + * <li>1: use (and cascade)</li> + * <li>2: use for open rounds only</li></ul> + * + * @staticvar array $data + * @return array + */ + public function getSurveyApplicationValues() + { + static $data; + + if (! $data) { + $data = array( + self::APPLY_NOT => $this->translate->_('No'), + self::APPLY_DO => $this->translate->_('Yes (individual surveys only)'), + self::APPLY_STOP => $this->translate->_('Stop (per respondent or track only)')); + } + + return $data; + } + + /** + * Returns the respondent deletion reception code list. + * + * @return array a value => label array. + */ + public function getRespondentDeletionCodes() + { + $select = $this->_getDeletionCodeSelect(); + $select->where('(grc_for_respondents = 1 OR grc_for_surveys = ?)', self::APPLY_STOP); + + return $this->db->fetchPairs($select); + } + + /** + * Returns the single survey deletion reception code list. + * + * @return array a value => label array. + */ + public function getSingleSurveyDeletionCodes() + { + $select = $this->_getDeletionCodeSelect(); + $select->where('(grc_for_surveys = ? OR grc_for_tracks = 1)', self::APPLY_DO) + ->where('grc_redo_survey = ?', self::REDO_NONE); + + return $this->db->fetchPairs($select); + } + + /** + * Returns the track deletion reception code list. + * + * @return array a value => label array. + */ + public function getTrackDeletionCodes() + { + $select = $this->_getDeletionCodeSelect(); + $select->where('(grc_for_tracks = 1 OR grc_for_surveys = ?)', self::APPLY_STOP); + + return $this->db->fetchPairs($select); + } +} Modified: trunk/library/classes/Gems/Util/Translated.php =================================================================== --- trunk/library/classes/Gems/Util/Translated.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Util/Translated.php 2011-11-28 18:24:32 UTC (rev 301) @@ -1,4 +1,5 @@ <?php + /** * Copyright (c) 2011, Erasmus MC * All rights reserved. @@ -42,10 +43,6 @@ */ class Gems_Util_Translated extends Gems_Registry_TargetAbstract { - const REDO_NONE = 0; - const REDO_ONLY = 1; - const REDO_COPY = 2; - protected $phpDateFormatString = 'd-m-Y'; /** @@ -211,27 +208,6 @@ return array('M' => $this->_('Mr.'), 'F' => $this->_('Mrs.'), 'U' => $this->_('Mr./Mrs.')); } - /** - * Return the field values for the redo code. - * - * <ul><li>0: do not redo</li> - * <li>1: redo but do not copy answers</li> - * <li>2: redo and copy answers</li></ul> - * - * @staticvar array $data - * @return array - */ - public function getRedoCodes() - { - static $data; - - if (! $data) { - $data = array(self::REDO_NONE => $this->_('No'), self::REDO_ONLY => $this->_('Yes (forget answers)'), self::REDO_COPY => $this->_('Yes (keep answers)')); - } - - return $data; - } - public function getYesNo() { static $data; Modified: trunk/library/classes/Gems/Util.php =================================================================== --- trunk/library/classes/Gems/Util.php 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/classes/Gems/Util.php 2011-11-28 18:24:32 UTC (rev 301) @@ -79,6 +79,12 @@ /** * + * @var Gems_Util_ReceptionCodeLibrary + */ + protected $receptionCodeLibrary; + + /** + * * @var Gems_Util_RequestCache */ protected $requestCache; @@ -188,7 +194,34 @@ } /** + * Returns a single reception code object. * + * @param string $code + * @return Gems_Util_ReceptionCode + */ + public function getReceptionCode($code) + { + static $codes = array(); + + if (! isset($codes[$code])) { + $codes[$code] = $this->_loadClass('receptionCode', true, array($code)); + } + + return $codes[$code]; + } + + /** + * Returns a + * + * @return Gems_Util_ReceptionCodeLibrary + */ + public function getReceptionCodeLibrary() + { + return $this->_getClass('receptionCodeLibrary'); + } + + /** + * * @param string $sourceAction The action to get the cache from if not the current one. * @param boolean $readonly Optional, tell the cache not to store any new values * @return Gems_Util_RequestCache @@ -215,15 +248,15 @@ { return $this->_getClass('translated'); } - + /** * Checks if a given IP is allowed according to a set * of IP addresses / ranges. - * + * * Multiple addresses/ranges are separated by a colon, * an individual range takes the form of * 10.0.0.0-10.0.0.255 (subnet masks are not supported) - * + * * @param string $ip * @param string $ipRanges * @return bool @@ -233,23 +266,23 @@ if (!strlen($ipRanges)) { return true; } - + $ipLong = ip2long($ip); - + $ranges = explode('|', $ipRanges); - + foreach ($ranges as $range) { if (($sep = strpos($range, '-')) !== false) { $min = ip2long(substr($range, 0, $sep)); $max = ip2long(substr($range, $sep + 1)); - + $validate = new Zend_Validate_Between( array( 'min' => $min, 'max' => $max ) ); - + if ($min <= $ipLong && $ipLong <= $max) { return true; } @@ -259,7 +292,7 @@ } } } - + return false; } } Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/configs/db/patches.sql 2011-11-28 18:24:32 UTC (rev 301) @@ -344,3 +344,10 @@ -- PATCH: Base URL / installation URL to facilitate org switching ALTER TABLE gems__organizations ADD `gor_url_base` VARCHAR(1270) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null AFTER `gor_url`; + +-- PATCH: New fundamental reception code 'STOP' +INSERT INTO gems__reception_codes (grc_id_reception_code, grc_description, grc_success, + grc_for_surveys, grc_redo_survey, grc_for_tracks, grc_for_respondents, grc_overwrite_answers, grc_active, + grc_changed, grc_changed_by, grc_created, grc_created_by) + VALUES + ('stop', 'Stop surveys', 0, 2, 0, 0, 0, 0, 1, CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP, 1); Modified: trunk/library/configs/db/tables/gems__reception_codes.10.sql =================================================================== --- trunk/library/configs/db/tables/gems__reception_codes.10.sql 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/configs/db/tables/gems__reception_codes.10.sql 2011-11-28 18:24:32 UTC (rev 301) @@ -5,7 +5,7 @@ grc_success boolean not null default 0, - grc_for_surveys boolean not null default 0, + grc_for_surveys tinyint not null default 0, grc_redo_survey tinyint not null default 0, grc_for_tracks boolean not null default 0, grc_for_respondents boolean not null default 0, @@ -25,9 +25,9 @@ CHARACTER SET 'utf8' COLLATE 'utf8_general_ci'; INSERT INTO gems__reception_codes (grc_id_reception_code, grc_description, grc_success, - grc_for_surveys, grc_redo_survey, grc_for_tracks, grc_for_respondents, grc_active, + grc_for_surveys, grc_redo_survey, grc_for_tracks, grc_for_respondents, grc_overwrite_answers, grc_active, grc_changed, grc_changed_by, grc_created, grc_created_by) VALUES - ('OK', '', 1, 1, 0, 1, 1, 1, CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP, 1), - ('skip', 'Skipped by calculation', 0, 1, 0, 0, 0, 0, CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP, 1); - + ('OK', '', 1, 1, 0, 1, 1, 0, 1, CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP, 1), + ('skip', 'Skipped by calculation', 0, 1, 0, 0, 0, 1, 0, CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP, 1), + ('stop', 'Stop surveys', 0, 2, 0, 0, 0, 0, 1, CURRENT_TIMESTAMP, 1, CURRENT_TIMESTAMP, 1); Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2011-11-28 15:20:01 UTC (rev 300) +++ trunk/library/languages/default-en.po 2011-11-28 18:24:32 UTC (rev 301) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: Pulse EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-28 12:25+0100\n" +"POT-Creation-Date: 2011-11-28 19:14+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -409,7 +409,7 @@ msgid " The error message is: %s" msgstr " The error message is: %s" -#: classes/Gems/Tracker.php:732 +#: classes/Gems/Tracker.php:753 msgid "Checks performed" msgstr "Checks performed" @@ -1023,7 +1023,7 @@ msgstr "%s records found." #: classes/Gems/Default/ExportAction.php:172 -#: classes/Gems/Default/IndexAction.php:179 +#: classes/Gems/Default/IndexAction.php:192 #: classes/Gems/Default/MailJobAction.php:119 msgid "Organization" msgstr "Organization" @@ -1056,88 +1056,88 @@ msgid "Administrative groups" msgstr "Administrative groups" -#: classes/Gems/Default/IndexAction.php:91 +#: classes/Gems/Default/IndexAction.php:97 msgid "Enter your token..." msgstr "Enter your token..." -#: classes/Gems/Default/IndexAction.php:132 +#: classes/Gems/Default/IndexAction.php:140 #, php-format msgid "Login to %s application" msgstr "Login to %s application" -#: classes/Gems/Default/IndexAction.php:136 +#: classes/Gems/Default/IndexAction.php:144 msgid "Login" msgstr "Login" -#: classes/Gems/Default/IndexAction.php:153 +#: classes/Gems/Default/IndexAction.php:166 msgid "Back to login" msgstr "Back to login" -#: classes/Gems/Default/IndexAction.php:201 +#: classes/Gems/Default/IndexAction.php:214 msgid "Password" msgstr "Password" -#: classes/Gems/Default/IndexAction.php:216 +#: classes/Gems/Default/IndexAction.php:229 #, php-format msgid "Reset password for %s application" msgstr "Reset password for %s application" -#: classes/Gems/Default/IndexAction.php:220 +#: classes/Gems/Default/IndexAction.php:233 msgid "Reset password" msgstr "Reset password" -#: classes/Gems/Default/IndexAction.php:266 +#: classes/Gems/Default/IndexAction.php:279 msgid "Username" msgstr "Username" -#: classes/Gems/Default/IndexAction.php:306 +#: classes/Gems/Default/IndexAction.php:333 msgid "Your password must be changed." msgstr "Your password must be changed." -#: classes/Gems/Default/IndexAction.php:318 +#: classes/Gems/Default/IndexAction.php:345 #, php-format msgid "Login successful, welcome %s." msgstr "Login successful, welcome %s." -#: classes/Gems/Default/IndexAction.php:358 +#: classes/Gems/Default/IndexAction.php:385 #, php-format msgid "Good bye: %s." msgstr "Good bye: %s." -#: classes/Gems/Default/IndexAction.php:383 +#: classes/Gems/Default/IndexAction.php:410 msgid "Reset accepted, enter your new password." msgstr "Reset accepted, enter your new password." -#: classes/Gems/Default/IndexAction.php:387 +#: classes/Gems/Default/IndexAction.php:414 msgid "This key timed out or does not belong to this user." msgstr "This key timed out or does not belong to this user." -#: classes/Gems/Default/IndexAction.php:404 +#: classes/Gems/Default/IndexAction.php:431 msgid "Password reset requested" msgstr "Password reset requested" -#: classes/Gems/Defau... [truncated message content] |
From: <gem...@li...> - 2011-11-28 15:20:07
|
Revision: 300 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=300&view=rev Author: michieltcs Date: 2011-11-28 15:20:01 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Use getCurrentURI() method Modified Paths: -------------- trunk/library/classes/Gems/Default/IndexAction.php Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 15:16:40 UTC (rev 299) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 15:20:01 UTC (rev 300) @@ -300,7 +300,7 @@ // Allow layout switching based on request base url if ($this->escort instanceof Gems_Project_Layout_MultiLayoutInterface) { - $hostUrl = $request->getScheme() . '://' . $request->getHttpHost() . $request->getBasePath(); + $hostUrl = $this->escort->loader->getUtil()->getCurrentURI(); $organizationId = $this->util->getDbLookup()->getOrganizationForUrl($hostUrl); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 15:16:51
|
Revision: 299 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=299&view=rev Author: michieltcs Date: 2011-11-28 15:16:40 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Allow switching to a specific organization that matches with the base URL (in multi-layout situations) Modified Paths: -------------- trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/Gems/Default/OrganizationAction.php trunk/library/classes/Gems/Util/DbLookup.php trunk/library/configs/db/patches.sql trunk/library/languages/default-nl.mo trunk/library/languages/default-nl.po Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 13:12:29 UTC (rev 298) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 15:16:40 UTC (rev 299) @@ -295,8 +295,22 @@ public function loginAction() { $form = $this->_getLoginForm(); + + $request = $this->getRequest(); + + // Allow layout switching based on request base url + if ($this->escort instanceof Gems_Project_Layout_MultiLayoutInterface) { + $hostUrl = $request->getScheme() . '://' . $request->getHttpHost() . $request->getBasePath(); + + $organizationId = $this->util->getDbLookup()->getOrganizationForUrl($hostUrl); + + if ($organizationId) { + $user = $this->escort->getLoader()->getUserLoader()->getCurrentUser(); + $user->setCurrentOrganization($organizationId); + $this->escort->layoutSwitch($request); + } + } - $request = $this->getRequest(); if ($request->isPost()) { if ($form->isValid($request->getPost(), false)) { Modified: trunk/library/classes/Gems/Default/OrganizationAction.php =================================================================== --- trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-28 13:12:29 UTC (rev 298) +++ trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-28 15:16:40 UTC (rev 299) @@ -129,6 +129,11 @@ 'gor_style', 'label', $this->_('Style'), 'multiOptions', MUtil_Lazy::call(array($this->escort, 'getStyles')) ); + $model->setIfExists( + 'gor_url_base', 'label', $this->_('Default url'), + 'size', 50, + 'description', sprintf($this->_('Always switch to this organization when %s is accessed from this url'), $this->project->getName()) + ); } $model->set( 'gor_iso_lang', 'label', $this->_('Language'), Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 13:12:29 UTC (rev 298) +++ trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 15:16:40 UTC (rev 299) @@ -274,6 +274,20 @@ return $organizations; } + + /** + * Returns the organization + * @param string $url + * @return int|null the organization + */ + public function getOrganizationForUrl($url) + { + try { + return $this->db->fetchOne("SELECT gor_id_organization FROM gems__organizations WHERE gor_active=1 AND gor_url_base = ?", $url); + } catch (Exception $e) { + return null; + } + } public function getRoles() { Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-28 13:12:29 UTC (rev 298) +++ trunk/library/configs/db/patches.sql 2011-11-28 15:16:40 UTC (rev 299) @@ -341,3 +341,6 @@ -- PATCH: Roles fields sometimes empty ALTER TABLE gems__roles CHANGE grl_parents grl_parents text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null; ALTER TABLE gems__roles CHANGE grl_privileges grl_privileges text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null; + +-- PATCH: Base URL / installation URL to facilitate org switching +ALTER TABLE gems__organizations ADD `gor_url_base` VARCHAR(1270) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null AFTER `gor_url`; Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2011-11-28 13:12:29 UTC (rev 298) +++ trunk/library/languages/default-nl.po 2011-11-28 15:16:40 UTC (rev 299) @@ -1,4519 +1,4502 @@ -msgid "" -msgstr "" -"Project-Id-Version: Pulse NL\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-28 12:25+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: Matijs de Jong <mj...@ma...>\n" -"Language-Team: Erasmus MGZ <mat...@ma...>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-Language: Dutch\n" -"X-Poedit-Country: NETHERLANDS\n" -"X-Poedit-SourceCharset: iso-8859-1\n" -"X-Poedit-Basepath: ../\n" -"X-Poedit-KeywordsList: plural:1,2\n" -"X-Poedit-SearchPath-0: .\n" - -#: classes/GemsEscort.php:207 -#, php-format -msgid "Path %s not writable" -msgstr "Path %s niet schrijfbaar" - -#: classes/GemsEscort.php:891 -#, php-format -msgid "User: %s" -msgstr "Login: %s" - -#: classes/GemsEscort.php:916 -msgid "version" -msgstr "versie" - -#: classes/GemsEscort.php:1347 -msgid "Take note: your session has expired, your inputs were not saved. Please check the input data and try again" -msgstr "Let op: uw sessie is verlopen, uw invoer is niet opgeslagen. Controleer uw gegevens en probeer a.u.b. opnieuw." - -#: classes/GemsEscort.php:1474 -msgid "Please check back later." -msgstr "Probeer het later opnieuw." - -#: classes/GemsEscort.php:1476 -#: classes/GemsEscort.php:1480 -#: classes/GemsEscort.php:1481 -msgid "System is in maintenance mode" -msgstr "Systeem is in onderhoudsmodus" - -#: classes/GemsEscort.php:1491 -msgid "No access to site." -msgstr "Geen toegang tot website." - -#: classes/GemsEscort.php:1493 -#: classes/GemsEscort.php:1529 -msgid "You have no access to this site." -msgstr "U heeft geen toegang tot deze website." - -#: classes/GemsEscort.php:1509 -msgid "No access to page" -msgstr "Geen toegang tot pagina" - -#: classes/GemsEscort.php:1511 -#, php-format -msgid "Access to this page is not allowed for current role: %s." -msgstr "U heeft geen toegang tot deze pagina. Uw huidige rol is: %s." - -#: classes/GemsEscort.php:1516 -#: classes/GemsEscort.php:1527 -msgid "You are no longer logged in." -msgstr "U bent niet meer ingelogd." - -#: classes/GemsEscort.php:1517 -msgid "You must login to access this page." -msgstr "U moet ingelogd zijn voor toegang tot deze pagina." - -#: classes/Gems/AccessLog.php:239 -msgid "Database needs to be updated!" -msgstr "Database dient ververst te worden!" - -#: classes/Gems/Auth.php:241 -msgid "Combination of organization, username and password not found." -msgstr "Combinatie van organisatie, gebruikersnaam en wachtwoord niet gevonden." - -#: classes/Gems/Html.php:154 -msgid "<< First" -msgstr "<< Eerste" - -#: classes/Gems/Html.php:155 -msgid "< Previous" -msgstr "< Terug" - -#: classes/Gems/Html.php:156 -msgid "Next >" -msgstr "Verder >" - -#: classes/Gems/Html.php:157 -msgid "Last >>" -msgstr "Laatste >>" - -#: classes/Gems/Html.php:158 -msgid " | " -msgstr " | " - -#: classes/Gems/Html.php:162 -msgid "to" -msgstr "tot" - -#: classes/Gems/Html.php:163 -msgid "of" -msgstr "van" - -#: classes/Gems/Menu.php:139 -#, php-format -msgid "About %s" -msgstr "Over %s" - -#: classes/Gems/Menu.php:143 -msgid "Reporting bugs" -msgstr "Meld een bug" - -#: classes/Gems/Menu.php:146 -msgid "Support" -msgstr "Ondersteuning" - -#: classes/Gems/Menu.php:166 -msgid "Project setup" -msgstr "Projectinfo" - -#: classes/Gems/Menu.php:169 -msgid "Database" -msgstr "Database" - -#: classes/Gems/Menu.php:173 -msgid "Content" -msgstr "Inhoud" - -#: classes/Gems/Menu.php:176 -msgid "Execute" -msgstr "Uitvoeren" - -#: classes/Gems/Menu.php:181 -msgid "Patches" -msgstr "Patches" - -#: classes/Gems/Menu.php:182 -msgid "Execute new" -msgstr "Nieuwe aanmaken" - -#: classes/Gems/Menu.php:184 -msgid "Refresh translateables" -msgstr "Ververs vertaalbaren" - -#: classes/Gems/Menu.php:186 -msgid "Run SQL" -msgstr "SQL uitvoeren" - -#: classes/Gems/Menu.php:189 -msgid "Reception codes" -msgstr "Ontvangst codes" - -#: classes/Gems/Menu.php:192 -msgid "Consents" -msgstr "Toestemmingen" - -#: classes/Gems/Menu.php:195 -msgid "Roles" -msgstr "Rollen" - -#: classes/Gems/Menu.php:196 -#: classes/Gems/Menu.php:345 -msgid "Assigned" -msgstr "Toegewezen" - -#: classes/Gems/Menu.php:197 -msgid "Privileges" -msgstr "Priviléges" - -#: classes/Gems/Menu.php:200 -msgid "Groups" -msgstr "Groepen" - -#: classes/Gems/Menu.php:203 -msgid "Organizations" -msgstr "Organisaties" - -#: classes/Gems/Menu.php:206 -msgid "Staff" -msgstr "Medewerkers" - -#: classes/Gems/Menu.php:209 -msgid "Logging" -msgstr "Logboek" - -#: classes/Gems/Menu.php:213 -msgid "Maintenance" -msgstr "Onderhoud" - -#: classes/Gems/Menu.php:218 -msgid "Upgrade" -msgstr "Upgrade" - -#: classes/Gems/Menu.php:219 -#: classes/Gems/Menu.php:318 -msgid "Show" -msgstr "Toon" - -#: classes/Gems/Menu.php:220 -msgid "Execute all" -msgstr "Alles uitvoeren" - -#: classes/Gems/Menu.php:221 -msgid "Execute this" -msgstr "Dit uitvoeren" - -#: classes/Gems/Menu.php:222 -msgid "Execute from here" -msgstr "Uitvoeren vanaf hier" - -#: classes/Gems/Menu.php:223 -msgid "Execute to here" -msgstr "Uitvoeren tot hier" - -#: classes/Gems/Menu.php:235 -#, php-format -msgid "Stand-alone privilige: %s" -msgstr "Zelfstandig privilege: %s" - -#: classes/Gems/Menu.php:242 -msgid "Logon" -msgstr "Login" - -#: classes/Gems/Menu.php:243 -msgid "Lost password" -msgstr "Wachtwoord vergeten" - -#: classes/Gems/Menu.php:244 -msgid "Your account" -msgstr "Uw account" - -#: classes/Gems/Menu.php:245 -msgid "Activity overview" -msgstr "Activiteiten overzicht" - -#: classes/Gems/Menu.php:246 -msgid "Change password" -msgstr "Uw wachtwoord" - -#: classes/Gems/Menu.php:247 -#: classes/Gems/Menu.php:287 -#: classes/Gems/Menu.php:322 -msgid "Token" -msgstr "Kenmerk" - -#: classes/Gems/Menu.php:248 -msgid "Logoff" -msgstr "Uitloggen" - -#: classes/Gems/Menu.php:283 -msgid "Track" -msgstr "Traject" - -#: classes/Gems/Menu.php:290 -#: classes/Gems/Menu.php:310 -#: classes/Gems/Menu.php:341 -msgid "Add" -msgstr "Voeg toe" - -#: classes/Gems/Menu.php:294 -#: classes/Gems/Menu.php:377 -msgid "Preview" -msgstr "Preview" - -#: classes/Gems/Menu.php:301 -msgid "Tracks" -msgstr "Trajecten" - -#: classes/Gems/Menu.php:314 -msgid "Assignments" -msgstr "Toewijzingen" - -#: classes/Gems/Menu.php:326 -msgid "Edit" -msgstr "Wijzig" - -#: classes/Gems/Menu.php:330 -msgid "Delete" -msgstr "Verwijder" - -#: classes/Gems/Menu.php:335 -msgid "Surveys" -msgstr "Vragenlijsten" - -#: classes/Gems/Menu.php:367 -msgid "Fill in" -msgstr "Vul in" - -#: classes/Gems/Menu.php:371 -msgid "Print PDF" -msgstr "Print PDF" - -#: classes/Gems/Menu.php:374 -msgid "E-Mail now!" -msgstr "Email nu!" - -#: classes/Gems/Menu.php:380 -msgid "Answers" -msgstr "Antwoorden" - -#: classes/Gems/Menu.php:518 -msgid "Respondents" -msgstr "Patiënten" - -#: classes/Gems/Menu.php:526 -msgid "Overview" -msgstr "Overzicht" - -#: classes/Gems/Menu.php:533 -msgid "Project" -msgstr "Project" - -#: classes/Gems/Menu.php:536 -msgid "Setup" -msgstr "Beheer" - -#: classes/Gems/Menu.php:539 -msgid "Mail" -msgstr "Email" - -#: classes/Gems/Menu.php:542 -msgid "Track Builder" -msgstr "Traject bouwer" - -#: classes/Gems/Menu.php:551 -msgid "Contact" -msgstr "Contact" - -#: classes/Gems/Menu.php:564 -msgid "Changelog" -msgstr "Changelog" - -#: classes/Gems/Model.php:193 -msgid "Respondent nr" -msgstr "Patiënt nr" - -#: classes/Gems/Model.php:194 -msgid "Opened" -msgstr "Bekeken" - -#: classes/Gems/Model.php:195 -msgid "Consent" -msgstr "Toestemming" - -#: classes/Gems/Model.php:197 -msgid "E-Mail" -msgstr "Email" - -#: classes/Gems/Model.php:202 -msgid "Gender" -msgstr "Geslacht" - -#: classes/Gems/Model.php:203 -msgid "First name" -msgstr "Voornaam" - -#: classes/Gems/Model.php:204 -msgid "Surname prefix" -msgstr "Tussenvoegsel" - -#: classes/Gems/Model.php:205 -msgid "Last name" -msgstr "Achternaam" - -#: classes/Gems/Model.php:207 -msgid "Name" -msgstr "Naam" - -#: classes/Gems/Model.php:210 -msgid "Street" -msgstr "Straat" - -#: classes/Gems/Model.php:211 -msgid "Zipcode" -msgstr "Postcode" - -#: classes/Gems/Model.php:212 -msgid "City" -msgstr "Stad" - -#: classes/Gems/Model.php:214 -msgid "Phone" -msgstr "Telefoon" - -#: classes/Gems/Model.php:216 -msgid "Birthday" -msgstr "Geboren op" - -#: classes/Gems/Pdf.php:195 -#, php-format -msgid "PDF Source File '%s' not found!" -msgstr "PDF bron bestand %s niet gevonden!" - -#: classes/Gems/Pdf.php:237 -#, php-format -msgid "Could not create '%s' directory." -msgstr "Kon de directory '%s' niet aanmaken." - -#: classes/Gems/Pdf.php:280 -#, php-format -msgid " The error message is: %s" -msgstr "De foutmelding is: %s" - -#: classes/Gems/Tracker.php:732 -msgid "Checks performed" -msgstr "Controle uitgevoerd" - -#: classes/Gems/UpgradesAbstract.php:164 -msgid "Already at max. level." -msgstr "Al op het hoogste niveau." - -#: classes/Gems/UpgradesAbstract.php:171 -#, php-format -msgid "Trying upgrade for %s from level %s to level %s" -msgstr "Probeert upgrade voor %s van niveau %s naar niveau %s uit te voeren" - -#: classes/Gems/UpgradesAbstract.php:179 -#, php-format -msgid "Trying upgrade for %s to level %s: %s" -msgstr "Probeert upgrade voor %s naar niveau %s: %s" - -#: classes/Gems/UpgradesAbstract.php:337 -msgid "Cache cleaned" -msgstr "Cache opgeschoond" - -#: classes/Gems/Controller/BrowseEditAction.php:346 -#, php-format -msgid "New %s..." -msgstr "Nieuw %s..." - -#: classes/Gems/Controller/BrowseEditAction.php:378 -#, php-format -msgid "Delete %s" -msgstr "Verwijder %s" - -#: classes/Gems/Controller/BrowseEditAction.php:382 -#, php-format -msgid "%2$u %1$s deleted" -msgstr "%2$u %1$s verwijderd" - -#: classes/Gems/Controller/BrowseEditAction.php:396 -#, php-format -msgid "Edit %s" -msgstr "Bewerk %s" - -#: classes/Gems/Controller/BrowseEditAction.php:493 -msgid "Free search text" -msgstr "Vrije zoek tekst" - -#: classes/Gems/Controller/BrowseEditAction.php:564 -msgid "Search" -msgstr "Zoeken" - -#: classes/Gems/Controller/BrowseEditAction.php:580 -#, php-format -msgid "No %s found" -msgstr "Geen %s gevonden" - -#: classes/Gems/Controller/BrowseEditAction.php:653 -#, php-format -msgid "No %s found." -msgstr "Geen %s gevonden." - -#: classes/Gems/Controller/BrowseEditAction.php:768 -msgid "Are you sure?" -msgstr "Weet u het zeker?" - -#: classes/Gems/Controller/BrowseEditAction.php:784 -msgid "Yes" -msgstr "Ja" - -#: classes/Gems/Controller/BrowseEditAction.php:785 -msgid "No" -msgstr "Nee" - -#: classes/Gems/Controller/BrowseEditAction.php:838 -#, php-format -msgid "Unknown %s requested" -msgstr "Onjuist %s verzoek" - -#: classes/Gems/Controller/BrowseEditAction.php:861 -#, php-format -msgid "New %1$s..." -msgstr "Nieuwe %1$s..." - -#: classes/Gems/Controller/BrowseEditAction.php:869 -msgid "Save" -msgstr "Opslaan" - -#: classes/Gems/Controller/BrowseEditAction.php:905 -#, php-format -msgid "%2$u %1$s saved" -msgstr "%2$u %1$s opgeslagen" - -#: classes/Gems/Controller/BrowseEditAction.php:908 -msgid "No changes to save." -msgstr "Geen verandering om op te slaan." - -#: classes/Gems/Controller/BrowseEditAction.php:917 -msgid "Input error! No changes saved!" -msgstr "Invoer fout! Veranderingen niet opgeslagen!" - -#: classes/Gems/Controller/BrowseEditAction.php:945 -#, php-format -msgid "Show %s" -msgstr "Toon %s" - -#: classes/Gems/Controller/BrowseEditAction.php:952 -#, php-format -msgid "Unknown %s." -msgstr "%s is onbekend." - -#: classes/Gems/Controller/ModelActionAbstract.php:97 -#: classes/Gems/Default/AskAction.php:150 -#: classes/Gems/Default/DatabaseAction.php:532 -msgid "Cancel" -msgstr "Annuleren" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:181 -msgid "No data found." -msgstr "Geen gegevens gevonden." - -#: classes/Gems/Default/AskAction.php:128 -#, php-format -msgid "Welcome %s," -msgstr "Welkom %s," - -#: classes/Gems/Default/AskAction.php:131 -#, php-format -msgid "Thank you for answering the survey for token %s." -msgstr "Dank u voor het invullen van de vragenlijst voor kenmerk %s." - -#: classes/Gems/Default/AskAction.php:132 -msgid "Please click the button below to answer the next survey." -msgstr "Klik op de onderstaande knop om de volgende vragenlijst in te vullen." - -#: classes/Gems/Default/AskAction.php:137 -#, php-format -msgid "Please click the button below to answer the survey for token %s." -msgstr "Klik op de onderstaande knop om de vragenlijst behorende bij kenmerk %s in te vullen." - -#: classes/Gems/Default/AskAction.php:141 -#, php-format -msgid "Wait one second to open the survey automatically or click on Cancel to stop." -msgid_plural "Wait %d seconds to open the survey automatically or click on Cancel to stop." -msgstr[0] "Over één seconde start de vragenlijst automatisch. Klik op annuleren om dit te onderbreken." -msgstr[1] "Over %d seconden start de vragenlijst automatisch. Klik op annuleren om dit te onderbreken." - -#: classes/Gems/Default/AskAction.php:156 -#, php-format -msgid "After this survey there is one other survey we would like you to answer." -msgid_plural "After this survey there are another %d surveys we would like you to answer." -msgstr[0] "Na deze vragenlijst hebben we nog één andere vragenlijst voor u." -msgstr[1] "Na deze vragenlijst hebben we nog %d andere vragenlijsten voor u." - -#: classes/Gems/Default/AskAction.php:166 -#, php-format -msgid "The survey for token %s is no longer active." -msgstr "De vragenlijst voor kenmerk %s is niet meer in gebruik." - -#: classes/Gems/Default/AskAction.php:170 -#, php-format -msgid "The token %s does not exist." -msgstr "Het kenmerk %s bestaat niet." - -#: classes/Gems/Default/AskAction.php:172 -#, php-format -msgid "Thank you for answering. At the moment we have no further surveys for you to take." -msgstr "Dank u voor uw antwoorden. Op dit moment hebben we geen vragenlijsten meer voor u." - -#: classes/Gems/Default/AskAction.php:174 -#, php-format -msgid "The survey for token %s has been answered and no further surveys are open." -msgstr "De vragenlijst met het kenmerk %s is beantwoord en er staan verder geen vragenlijsten open." - -#: classes/Gems/Default/AskAction.php:181 -#, php-format -msgid "The token %s does not exist (any more)." -msgstr "Het kenmerk %s bestaat niet (meer)." - -#: classes/Gems/Default/AskAction.php:198 -#, php-format -msgid "Enter your %s token" -msgstr "Voer uw %s kenmerk in" - -#: classes/Gems/Default/AskAction.php:203 -#, php-format -msgid "Enter tokens as %s." -msgstr "Kenmerk invoeren als %s." - -#: classes/Gems/Default/AskAction.php:213 -msgid "OK" -msgstr "OK" - -#: classes/Gems/Default/AskAction.php:233 -msgid "The server is currently busy, please wait a while and try again." -msgstr "De server is bezet, wacht u alstublieft een moment en probeer het dan nogmaals." - -#: classes/Gems/Default/AskAction.php:255 -msgid "Tokens identify a survey that was assigned to you personally." -msgstr "Elk kenmerk verwijst naar een specifiek aan u toegekende vragenlijst." - -#: classes/Gems/Default/AskAction.php:255 -msgid "Entering the token and pressing OK will open that survey." -msgstr "Vul uw kenmerk in en druk op OK om die vragenlijst te openen." - -#: classes/Gems/Default/AskAction.php:259 -msgid "After answering the survey you will be logged off automatically." -msgstr "Na het invullen wordt u automatisch uitgelogd." - -#: classes/Gems/Default/AskAction.php:261 -msgid "After answering the survey you will return to the respondent overview screen." -msgstr "Na het invullen van de vragenlijst komt u terug in het patient scherm." - -#: classes/Gems/Default/AskAction.php:268 -msgid "A token consists of two groups of four letters and numbers, separated by an optional hyphen. Tokens are case insensitive." -msgstr "Een kenmerk bestaat uit twee groepen van vier cijfers en letters met een (niet verplicht) streepje ertussen. Hoofdletters of gewone letters maakt niets uit." - -#: classes/Gems/Default/AskAction.php:269 -msgid "The number zero and the letter O are treated as the same; the same goes for the number one and the letter L." -msgstr "Er wordt geen verschil gemaakt tussen het getal nul en de letter O en ook niet tussen het getal één en de letter L." - -#: classes/Gems/Default/ConsentAction.php:68 -#: classes/Gems/Default/GroupAction.php:88 -msgid "Description" -msgstr "Omschrijving" - -#: classes/Gems/Default/ConsentAction.php:70 -#: classes/Gems/Default/DatabaseAction.php:167 -msgid "Order" -msgstr "Volgorde" - -#: classes/Gems/Default/ConsentAction.php:71 -msgid "Determines order of presentation in interface." -msgstr "Bepaald de presentatie volgorde." - -#: classes/Gems/Default/ConsentAction.php:73 -msgid "Consent code" -msgstr "Consent code" - -#: classes/Gems/Default/ConsentAction.php:75 -msgid "Internal code, not visible to users, copied with the token information to the source." -msgstr "Interne code, niet zichtbaar voor gebruikers maar wordt met de token informatie aan de bron doorgegeven." - -#: classes/Gems/Default/ConsentAction.php:92 -msgid "respondent consent" -msgid_plural "respondent consents" -msgstr[0] "patiënt toestemming" -msgstr[1] "patiënt toestemmingen" - -#: classes/Gems/Default/ConsentAction.php:97 -msgid "Respondent consents" -msgstr "Patiënt toestemming" - -#: classes/Gems/Default/ContactAction.php:71 -#, php-format -msgid "%s is a web application." -msgstr "%s is een web applicatie." - -#: classes/Gems/Default/ContactAction.php:76 -#, php-format -msgid "The %s project is run by: " -msgstr "%s is een project van: " - -#: classes/Gems/Default/ContactAction.php:82 -#, php-format -msgid "%s is a collaboration of these organizations:" -msgstr "Deze organisaties werken samen voor het %s project:" - -#: classes/Gems/Default/ContactAction.php:103 -#, php-format -msgid "The %s project" -msgstr "Het %s project" - -#: classes/Gems/Default/ContactAction.php:106 -msgid "Information on this application" -msgstr "Information over deze website" - -#: classes/Gems/Default/ContactAction.php:107 -msgid "Links concerning this web application:" -msgstr "Links met informatie over deze website:" - -#: classes/Gems/Default/CronAction.php:148 -msgid "Cron jobs turned off." -msgstr "Cron opdrachten uitgezet." - -#: classes/Gems/Default/CronAction.php:218 -msgid "No mails sent." -msgstr "Geen mail verzonden." - -#: classes/Gems/Default/CronAction.php:221 -msgid "On this test system all mail will be delivered to the from address." -msgstr "Op dit test systeem worden alle emails gestuurd naar het \"van\" adres." - -#: classes/Gems/Default/DatabaseAction.php:64 -#, php-format -msgid "Executed %2$s creation script %1$s:" -msgstr "Uitvoerresultaat %2$s script %1$s:" - -#: classes/Gems/Default/DatabaseAction.php:74 -#, php-format -msgid "%d record(s) returned as result set %d in step %d of %d." -msgstr "%d rij(en) in resultaat %d in stap %d van %d." - -#: classes/Gems/Default/DatabaseAction.php:78 -#, php-format -msgid "%d record(s) updated in step %d of %d." -msgstr "In stap %2$d van %3$d zijn %1$d rij(en) aangepast." - -#: classes/Gems/Default/DatabaseAction.php:81 -#, php-format -msgid "Script ran step %d of %d succesfully." -msgstr "Stap %d van %d in het script met succes uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:84 -msgid " in step " -msgstr " in stap " - -#: classes/Gems/Default/DatabaseAction.php:89 -#, php-format -msgid "No script for %1$s." -msgstr "Geen script voor %1$s:" - -#: classes/Gems/Default/DatabaseAction.php:133 -#, php-format -msgid "No rows in %s." -msgstr "Geen gegevens in %s." - -#: classes/Gems/Default/DatabaseAction.php:162 -msgid "Type" -msgstr "Type" - -#: classes/Gems/Default/DatabaseAction.php:166 -msgid "Group" -msgstr "Groep" - -#: classes/Gems/Default/DatabaseAction.php:168 -msgid "Location" -msgstr "Locatie" - -#: classes/Gems/Default/DatabaseAction.php:171 -msgid "Status" -msgstr "Status" - -#: classes/Gems/Default/DatabaseAction.php:172 -msgid "created" -msgstr "bestaat" - -#: classes/Gems/Default/DatabaseAction.php:173 -msgid "not created" -msgstr "niet aanwezig" - -#: classes/Gems/Default/DatabaseAction.php:174 -msgid "unknown" -msgstr "onbekend" - -#: classes/Gems/Default/DatabaseAction.php:177 -msgid "Script" -msgstr "Script" - -#: classes/Gems/Default/DatabaseAction.php:179 -msgid "Changed on" -msgstr "Veranderd op" - -#: classes/Gems/Default/DatabaseAction.php:198 -msgid "This database object does not exist. You cannot delete it." -msgstr "Dit database object bestaat. Het kan dus ook niet verwijderd worden." - -#: classes/Gems/Default/DatabaseAction.php:203 -#, php-format -msgid "Drop %s" -msgstr "Verwijder %s" - -#: classes/Gems/Default/DatabaseAction.php:211 -#, php-format -msgid "There are %d rows in the table." -msgstr "Er zijn %d rijen in deze tabel." - -#: classes/Gems/Default/DatabaseAction.php:213 -#, php-format -msgid "Drop table with %d rows" -msgstr "Tabel met %d rijen aan data verwijderen" - -#: classes/Gems/Default/DatabaseAction.php:214 -msgid "Are you really sure?" -msgstr "Weet u het heel erg zeker?" - -#: classes/Gems/Default/DatabaseAction.php:230 -#, php-format -msgid "%1$s %2$s dropped" -msgstr "%1$s %2$s verwijderd" - -#: classes/Gems/Default/DatabaseAction.php:235 -msgid " during statement " -msgstr " tijdens het commando " - -#: classes/Gems/Default/DatabaseAction.php:246 -#, php-format -msgid "%s no longer exists in the database." -msgstr "%s bestaat niet meer in de database." - -#: classes/Gems/Default/DatabaseAction.php:249 -#, php-format -msgid "%s does not yet exist in the database." -msgstr "%s bestaat nog niet in de database." - -#: classes/Gems/Default/DatabaseAction.php:252 -#, php-format -msgid "%s object does exist." -msgstr "%s object bestaat." - -#: classes/Gems/Default/DatabaseAction.php:270 -msgid "Object is not a table." -msgstr "Niet een tabel object." - -#: classes/Gems/Default/DatabaseAction.php:293 -msgid "Structure" -msgstr "Structuur" - -#: classes/Gems/Default/DatabaseAction.php:302 -msgid "database object" -msgid_plural "database objects" -msgstr[0] "database object" -msgstr[1] "database objects" - -#: classes/Gems/Default/DatabaseAction.php:307 -msgid "Database object overview" -msgstr "Database object overzicht" - -#: classes/Gems/Default/DatabaseAction.php:316 -#: classes/Gems/Default/DatabaseAction.php:368 -msgid "Level" -msgstr "Niveau" - -#: classes/Gems/Default/DatabaseAction.php:317 -#: classes/Gems/Default/DatabaseAction.php:369 -msgid "Subtype" -msgstr "Subtype" - -#: classes/Gems/Default/DatabaseAction.php:319 -msgid "To be executed" -msgstr "Uit te voeren" - -#: classes/Gems/Default/DatabaseAction.php:320 -#: classes/Gems/Default/DatabaseAction.php:372 -msgid "Executed" -msgstr "Uitgevoerd" - -#: classes/Gems/Default/DatabaseAction.php:321 -#: classes/Gems/Default/DatabaseAction.php:373 -msgid "Finished" -msgstr "Afgerond" - -#: classes/Gems/Default/DatabaseAction.php:324 -msgid "Create the patch table!" -msgstr "De patch tabel bestaat nog niet!" - -#: classes/Gems/Default/DatabaseAction.php:326 -#, php-format -msgid "%d new or changed patch(es)." -msgstr "%d nieuwe of veranderde patch(es)." - -#: classes/Gems/Default/DatabaseAction.php:331 -msgid "Gems build" -msgstr "Gems bouwnummer" - -#: classes/Gems/Default/DatabaseAction.php:332 -msgid "Database build" -msgstr "Database versie" - -#: classes/Gems/Default/DatabaseAction.php:334 -msgid "Execute level" -msgstr "Uit te voeren versie" - -#: classes/Gems/Default/DatabaseAction.php:338 -msgid "Ignore finished" -msgstr "Afgeronde patches overslaan" - -#: classes/Gems/Default/DatabaseAction.php:339 -msgid "Ignore executed" -msgstr "Uitgevoerde patches overslaan" - -#: classes/Gems/Default/DatabaseAction.php:340 -msgid "Show patches" -msgstr "Toon patches" - -#: classes/Gems/Default/DatabaseAction.php:354 -#, php-format -msgid "%d patch(es) executed." -msgstr "%d patch(es) uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:367 -msgid "Patch" -msgstr "Patch" - -#: classes/Gems/Default/DatabaseAction.php:371 -msgid "Query" -msgstr "Query" - -#: classes/Gems/Default/DatabaseAction.php:374 -msgid "Result" -msgstr "Resultaat" - -#: classes/Gems/Default/DatabaseAction.php:398 -msgid "Patch maintenance" -msgstr "Patch onderhoud" - -#: classes/Gems/Default/DatabaseAction.php:402 -msgid "Patch overview" -msgstr "Patch overzicht" - -#: classes/Gems/Default/DatabaseAction.php:464 -msgid "This database object does not exist. You cannot create it." -msgstr "Dit database object bestaat niet en kan ook niet aangemaakt worden." - -#: classes/Gems/Default/DatabaseAction.php:470 -msgid "This database object has no script. You cannot execute it." -msgstr "Dit database object heeft geen script. Het kan dus ook niet uitgevoerd worden." - -#: classes/Gems/Default/DatabaseAction.php:481 -#, php-format -msgid "Run %s" -msgstr "Voer %s script uit" - -#: classes/Gems/Default/DatabaseAction.php:500 -#, php-format -msgid "Starting %d object creation scripts." -msgstr "Aanvang %d object aanmaak scripts." - -#: classes/Gems/Default/DatabaseAction.php:505 -#, php-format -msgid "Finished %s creation script for object %d of %d" -msgstr "Klaar %s met aanmaak script voor object %d van %d" - -#: classes/Gems/Default/DatabaseAction.php:509 -msgid "All objects exist. Nothing was executed." -msgstr "Alle objects bestaan. Niets was uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:515 -msgid "Create not-existing database objects" -msgstr "Aanmaak van database objecten die nog niet bestaan" - -#: classes/Gems/Default/DatabaseAction.php:517 -#, php-format -msgid "One database object does not exist." -msgid_plural "These %d database objects do not exist." -msgstr[0] "Één object bestaat nog niet in de database." -msgstr[1] "%d objecten bestaan nog niet in de database." - -#: classes/Gems/Default/DatabaseAction.php:518 -msgid "Are you sure you want to create it?" -msgid_plural "Are you sure you want to create them all?" -msgstr[0] "Weet je zeker dat je dat object wil aanmaken?" -msgstr[1] "Weet je zeker dat je ze allemaal wil aanmaken?" - -#: classes/Gems/Default/DatabaseAction.php:531 -msgid "All database objects exist. There is nothing to create." -msgstr "Alle database objecten bestaan. Er valt niets te maken." - -#: classes/Gems/Default/DatabaseAction.php:544 -msgid "Separate multiple commands with semicolons (;)." -msgstr "Scheidt meerdere commando's met punt-comma's (;)." - -#: classes/Gems/Default/DatabaseAction.php:551 -msgid "Run" -msgstr "Uitvoeren" - -#: classes/Gems/Default/DatabaseAction.php:560 -msgid "raw" -msgstr "rauw" - -#: classes/Gems/Default/DatabaseAction.php:569 -#, php-format -msgid "Result set %s." -msgstr "Resultaat %s." - -#: classes/Gems/Default/DatabaseAction.php:592 -msgid "Execute raw SQL" -msgstr "SQL direct uitvoeren" - -#: classes/Gems/Default/DatabaseAction.php:595 -msgid "Result sets" -msgstr "Resultaten" - -#: classes/Gems/Default/DatabaseAction.php:620 -msgid "This database object does not exist. You cannot view it." -msgstr "Dit database object bestaat. Het kan dus ook niet bekeken worden." - -#: classes/Gems/Default/DatabaseAction.php:625 -#, php-format -msgid "The data in table %s" -msgstr "De gegevens in tabel %s" - -#: classes/Gems/Default/DatabaseAction.php:626 -#, php-format -msgid "Contents of %s %s" -msgstr "De inhoud van %s %s" - -#: classes/Gems/Default/ExportAction.php:69 -msgid "Data" -msgstr "Data" - -#: classes/Gems/Default/ExportAction.php:74 -msgid "Export data" -msgstr "Exporteer gegevens" - -#: classes/Gems/Default/ExportAction.php:153 -#: classes/Gems/Default/MailJobAction.php:121 -msgid "Survey" -msgstr "Vragenlijst" - -#: classes/Gems/Default/ExportAction.php:168 -#, php-format -msgid "%s records found." -msgstr "%s records gevonden." - -#: classes/Gems/Default/ExportAction.php:172 -#: classes/Gems/Default/IndexAction.php:179 -#: classes/Gems/Default/MailJobAction.php:119 -msgid "Organization" -msgstr "Organisatie" - -#: classes/Gems/Default/ExportAction.php:181 -msgid "Export to" -msgstr "Exporteer naar" - -#: classes/Gems/Default/GroupAction.php:89 -#: classes/Gems/Default/LogAction.php:170 -msgid "Role" -msgstr "Rol" - -#: classes/Gems/Default/GroupAction.php:92 -#: classes/Gems/Default/MailJobAction.php:104 -msgid "Active" -msgstr "Actief" - -#: classes/Gems/Default/GroupAction.php:96 -msgid "Allowed IP Ranges" -msgstr "Toegestane IP adres reeksen" - -#: classes/Gems/Default/GroupAction.php:105 -msgid "group" -msgid_plural "groups" -msgstr[0] "groep" -msgstr[1] "groepen" - -#: classes/Gems/Default/GroupAction.php:110 -msgid "Administrative groups" -msgstr "Beheer groepen" - -#: classes/Gems/Default/IndexAction.php:91 -msgid "Enter your token..." -msgstr "Voer uw kenmerk in..." - -#: classes/Gems/Default/IndexAction.php:132 -#, php-format -msgid "Login to %s application" -msgstr "%s login" - -#: classes/Gems/Default/IndexAction.php:136 -msgid "Login" -msgstr "Login" - -#: classes/Gems/Default/IndexAction.php:153 -msgid "Back to login" -msgstr "Terug naar de login" - -#: classes/Gems/Default/IndexAction.php:201 -msgid "Password" -msgstr "Wachtwoord" - -#: classes/Gems/Default/IndexAction.php:216 -#, php-format -msgid "Reset password for %s application" -msgstr "Reset wachtwoord voor %s" - -#: classes/Gems/Default/IndexAction.php:220 -msgid "Reset password" -msgstr "Reset wachtwoord" - -#: classes/Gems/Default/IndexAction.php:266 -msgid "Username" -msgstr "Gebruikersnaam" - -#: classes/Gems/Default/IndexAction.php:306 -msgid "Your password must be changed." -msgstr "Uw wachtwoord moet veranderd worden." - -#: classes/Gems/Default/IndexAction.php:318 -#, php-format -msgid "Login successful, welcome %s." -msgstr "Login in orde, welkom %s." - -#: classes/Gems/Default/IndexAction.php:358 -#, php-format -msgid "Good bye: %s." -msgstr "Tot ziens: %s." - -#: classes/Gems/Default/IndexAction.php:383 -msgid "Reset accepted, enter your new password." -msgstr "Reset geaccepteerd, voer uw nieuwe wachtwoord in." - -#: classes/Gems/Default/IndexAction.php:387 -msgid "This key timed out or does not belong to this user." -msgstr "Te oude sleutel of sleutel hoort niet bij gebruiker." - -#: classes/Gems/Default/IndexAction.php:404 -msgid "Password reset requested" -msgstr "Wachtwoord reset aangevraagd" - -#: classes/Gems/Default/IndexAction.php:405 -#, php-format -msgid "To reset your password for %s, please click this link: %s" -msgstr "Om uw wachtwoord voor %s te resetten, klik op deze link: %s" - -#: classes/Gems/Default/IndexAction.php:410 -msgid "We sent you an e-mail with a reset link. Click on the link in the e-mail." -msgstr "We hebben u een email met reset link gestuurd. Klik op de link in de email." - -#: classes/Gems/Default/IndexAction.php:412 -msgid "Unable to send e-mail." -msgstr "Verzenden e-mail mislukt." - -#: classes/Gems/Default/IndexAction.php:417 -msgid "No such user found or no e-mail address known or user cannot be reset." -msgstr "Gebruiker niet gevonden of e-mail adres onbekend of gebruiker kan niet gereset worden." - -#: classes/Gems/Default/IndexAction.php:421 -msgid "We received your password reset key." -msgstr "Wachtwoord resetsleutel ontvangen." - -#: classes/Gems/Default/IndexAction.php:422 -msgid "Please enter the organization and username belonging to this key." -msgstr "Geef de organisatie en gebruikersnaam die bij deze sleutel horen op." - -#: classes/Gems/Default/InvitationAction.php:52 -msgid "Invite" -msgstr "Uitnodigen" - -#: classes/Gems/Default/LanguageAction.php:63 -msgid "Cookies must be enabled for setting the language." -msgstr "Zonder cookies kan de taal niet ingesteld worden." - -#: classes/Gems/Default/LanguageAction.php:66 -msgid "Invalid language setting." -msgstr "Ongeldige taal instelling." - -#: classes/Gems/Default/LogAction.php:61 -msgid "from" -msgstr "vanaf" - -#: classes/Gems/Default/LogAction.php:66 -msgid "until" -msgstr "tot" - -#: classes/Gems/Default/LogAction.php:72 -msgid "days" -msgstr "dagen" - -#: classes/Gems/Default/LogAction.php:73 -msgid "weeks" -msgstr "weken" - -#: classes/Gems/Default/LogAction.php:74 -msgid "months" -msgstr "maanden" - -#: classes/Gems/Default/LogAction.php:75 -msgid "years" -msgstr "jaren" - -#: classes/Gems/Default/LogAction.php:96 -msgid "Staff:" -msgstr "Medewerkers:" - -#: classes/Gems/Default/LogAction.php:100 -msgid "All staff" -msgstr "Alle medewerkers" - -#: classes/Gems/Default/LogAction.php:102 -msgid "Patient:" -msgstr "Patiënt:" - -#: classes/Gems/Default/LogAction.php:106 -msgid "All patients" -msgstr "Alle patiënten" - -#: classes/Gems/Default/LogAction.php:109 -msgid "Action:" -msgstr "Actie:" - -#: classes/Gems/Default/LogAction.php:112 -msgid "All actions" -msgstr "Alle acties" - -#: classes/Gems/Default/LogAction.php:163 -msgid "Date" -msgstr "Datum" - -#: classes/Gems/Default/LogAction.php:164 -#: classes/Gems/Default/LogMaintenanceAction.php:52 -msgid "Action" -msgstr "Actie" - -#: classes/Gems/Default/LogAction.php:165 -msgid "Message" -msgstr "Bericht" - -#: classes/Gems/Default/LogAction.php:167 -msgid "Respondent" -msgstr "Patiënt" - -#: classes/Gems/Default/LogAction.php:171 -msgid "IP address" -msgstr "IP adres" - -#: classes/Gems/Default/LogAction.php:178 -#: classes/Gems/Default/LogMaintenanceAction.php:53 -msgid "Log" -msgstr "Logboek" - -#: classes/Gems/Default/LogMaintenanceAction.php:70 -msgid "Log:" -msgstr "Logboek:" - -#: classes/Gems/Default/LogMaintenanceAction.php:71 -msgid "All" -msgstr "Alles" - -#: classes/Gems/Default/LogMaintenanceAction.php:77 -msgid "Log action" -msgstr "Logboek actie" - -#: classes/Gems/Default/LogMaintenanceAction.php:81 -msgid "Log maintenance" -msgstr "Logboek onderhoud" - -#: classes/Gems/Default/MailJobAction.php:62 -msgid "No automatic mail jobs found..." -msgstr "Geen automatische mail opdrachten gevonden.." - -#: classes/Gems/Default/MailJobAction.php:72 -msgid "New automatic mail job..." -msgstr "Nieuwe automatische mail opdracht..." - -#: classes/Gems/Default/MailJobAction.php:100 -msgid "Template" -msgstr "Sjabloon" - -#: classes/Gems/Default/MailJobAction.php:101 -msgid "By staff member" -msgstr "Door medewerke" - -#: classes/Gems/Default/MailJobAction.php:103 -msgid "Used for logging and possibly from address." -msgstr "Gebruikt voor activiteiten log en eventueel voor vanaf adres." - -#: classes/Gems/Default/MailJobAction.php:106 -msgid "Job is only run when active." -msgstr "Een opdracht wordt alleen uitgevoerd als deze actief is." - -#: classes/Gems/Default/MailJobAction.php:109 -msgid "From address used" -msgstr "Gebruikte vanaf adres" - -#: classes/Gems/Default/MailJobAction.php:111 -msgid "From other" -msgstr "Vanaf overig" - -#: classes/Gems/Default/MailJobAction.php:112 -#, php-format -msgid "Only when '%s' is '%s'." -msgstr "Aleen als '%s' is '%s'." - -#: classes/Gems/Default/MailJobAction.php:114 -msgid "Processing Method" -msgstr "Verwerkings methode" - -#: classes/Gems/Default/MailJobAction.php:115 -msgid "Filter for" -msgstr "Selecteer op" - -#: classes/Gems/Default/MailJobAction.php:116 -msgid "Days between reminders" -msgstr "Aantal dagen tussen herinneringen" - -#: classes/Gems/Default/MailJobAction.php:132 -msgid "Do you want to delete this mail job?" -msgstr "Weet je zeker dat deze automatische mail opdracht verwijderd moet worden?" - -#: classes/Gems/Default/MailJobAction.php:143 -msgid "Edit automatic mail job" -msgstr "Automatische mail opdracht bewerken" - -#: classes/Gems/Default/MailJobAction.php:156 -msgid "First mail" -msgstr "Eerste mail" - -#: classes/Gems/Default/MailJobAction.php:157 -msgid "Reminder" -msgstr "Herinnering" - -#: classes/Gems/Default/MailJobAction.php:168 -msgid "Use organizational from address" -msgstr "Gebruik vanaf adres van organisatie" - -#: classes/Gems/Default/MailJobAction.php:171 -#, php-format -msgid "Use site %s address" -msgstr "Gebruik %s adres van de site" - -#: classes/Gems/Default/MailJobAction.php:174 -msgid "Use the 'By staff member' address" -msgstr "Gebruik 'Door medewerker' adres" - -#: classes/Gems/Default/MailJobAction.php:175 -msgid "Other" -msgstr "Overige" - -#: classes/Gems/Default/MailJobAction.php:185 -msgid "Automatic mail jobs" -msgstr "Automatische mail opdrachten " - -#: classes/Gems/Default/MailJobAction.php:189 -#, php-format -msgid "Automatic mails have been turned off since %s." -msgstr "Automatische mail opdrachten staan sinds %s uit." - -#: classes/Gems/Default/MailJobAction.php:193 -msgid "Turn Automatic Mail Jobs ON" -msgstr "Automatische mail opdrachten AANzetten" - -#: classes/Gems/Default/MailJobAction.php:199 -msgid "With automatic mail jobs and a cron job on the server, mails can be sent without manual user action." -msgstr "Met automatische mail opdrachten en een cron opdracht op de server, kunnen mails verstuurd worden zonder dat een gebruiker actie hoeft te ondernemen." - -#: classes/Gems/Default/MailJobAction.php:207 -msgid "Automatic mail job details" -msgstr "Automatische mail opdracht details" - -#: classes/Gems/Default/MailLogAction.php:107 -msgid "Date sent" -msgstr "Verzend datum" - -#: classes/Gems/Default/MailLogAction.php:108 -msgid "Receiver" -msgstr "Ontvanger" - -#: classes/Gems/Default/MailLogAction.php:109 -msgid "To address" -msgstr "Adres aan" - -#: classes/Gems/Default/MailLogAction.php:110 -msgid "Sender" -msgstr "Verzender" - -#: classes/Gems/Default/MailLogAction.php:111 -msgid "From address" -msgstr "Adres van" - -#: classes/Gems/Default/MailLogAction.php:113 -#: classes/Gems/Default/MailTemplateAction.php:61 -msgid "Subject" -msgstr "Onderwerp" - -#: classes/Gems/Default/MailLogAction.php:129 -msgid "Mail Activity Log" -msgstr "Logboek Mail Activiteit" - -#: classes/Gems/Default/MailLogAction.php:140 -msgid "Show Mail Activity Log item" -msgstr "Toon Logboek Mail item" - -#: classes/Gems/Default/MailServerAction.php:68 -msgid "From address [part]" -msgstr "Vanaf adres [gedeelte]" - -#: classes/Gems/Default/MailServerAction.php:70 -msgid "E.g.: '%', '%.org' or '%@gemstracker.org' or 'ro...@ge...'." -msgstr "Bijvoorbeeld: '%', '%.nl' of '%@gemstracker.nl' of 'ro...@ge...'." - -#: classes/Gems/Default/MailServerAction.php:71 -msgid "Server" -msgstr "Server" - -#: classes/Gems/Default/MailServerAction.php:73 -msgid "Encryption" -msgstr "Encryptie" - -#: classes/Gems/Default/MailServerAction.php:76 -msgid "None" -msgstr "Geen" - -#: classes/Gems/Default/MailServerAction.php:77 -msgid "SSL" -msgstr "SSL" - -#: classes/Gems/Default/MailServerAction.php:78 -msgid "TLS" -msgstr "TLS" - -#: classes/Gems/Default/MailServerAction.php:80 -msgid "Port" -msgstr "Poort" - -#: classes/Gems/Default/MailServerAction.php:82 -msgid "Normal values: 25 for TLS and no encryption, 465 for SSL" -msgstr "Standaard waardes: 25 voor TLS en voor geen encryptie, 465 voor SSL" - -#: classes/Gems/Default/MailServerAction.php:84 -msgid "User ID" -msgstr "Gebruikers ID" - -#: classes/Gems/Default/MailServerAction.php:90 -#: classes/Gems/Default/OptionAction.php:113 -#: classes/Gems/Default/OptionAction.php:118 -#: classes/Gems/Default/SourceAction.php:95 -#: classes/Gems/Default/StaffAction.php:151 -msgid "Repeat password" -msgstr "Herhaal wachtwoord" - -#: classes/Gems/Default/MailServerAction.php:91 -#: classes/Gems/Default/SourceAction.php:74 -#: classes/Gems/Default/StaffAction.php:126 -msgid "Enter only when changing" -msgstr "Alleen invoeren om het wachtwoord te wijzigen" - -#: classes/Gems/Default/MailServerAction.php:100 -msgid "email server" -msgid_plural "email servers" -msgstr[0] "email server" -msgstr[1] "email servers" - -#: classes/Gems/Default/MailServerAction.php:105 -msgid "Email servers" -msgstr "Email servers" - -#: classes/Gems/Default/MailTemplateAction.php:75 -#: classes/Gems/Default/StaffAction.php:239 -msgid "(all organizations)" -msgstr "(alle organisaties)" - -#: classes/Gems/Default/MailTemplateAction.php:94 -msgid "email template" -msgid_plural "email templates" -msgstr[0] "email sjabloon" -msgstr[1] "email sjablonen" - -#: classes/Gems/Default/MailTemplateAction.php:99 -msgid "Email templates" -msgstr "Email sjabloon" - -#: classes/Gems/Default/OptionAction.php:84 -msgid "You are not allowed to change your password." -msgstr "U mag uw wachtwoord niet wijzigen." - -#: classes/Gems/Default/OptionAction.php:96 -msgid "Current password" -msgstr "Huidig wachtwoord" - -#: classes/Gems/Default/OptionAction.php:107 -#: classes/Gems/Default/OptionAction.php:123 -msgid "New password" -msgstr "Nieuw wachtwoord" - -#: classes/Gems/Default/OptionAction.php:137 -msgid "New password is active." -msgstr "Nieuwe wachtwoord geactiveerd." - -#: classes/Gems/Default/OptionAction.php:143 -msgid "Caps Lock seems to be on!" -msgstr "De Caps Lock toets lijkt aan te staan!" - -#: classes/Gems/Default/OptionAction.php:181 -msgid "Login Name" -msgstr "Login Naam" - -#: classes/Gems/Default/OptionAction.php:188 -#: classes/Gems/Default/OrganizationAction.php:134 -#: classes/Gems/Default/RespondentAction.php:173 -#: classes/Gems/Default/StaffAction.php:224 -msgid "Language" -msgstr "Taal" - -#: classes/Gems/Default/OptionAction.php:198 -#, php-format -msgid "Options" -msgstr "Instellingen" - -#: classes/Gems/Default/OptionAction.php:207 -msgid "This overview provides information about the last login activity on your account." -msgstr "Dit overzicht geeft informatie over de recente inlog activiteit op uw account." - -#: classes/Gems/Default/OptionAction.php:227 -msgid "Date / time" -msgstr "Datum / tijd" - -#: classes/Gems/Default/OptionAction.php:233 -msgid "item" -msgid_plural "items" -msgstr[0] "item" -msgstr[1] "items" - -#: classes/Gems/Default/OptionAction.php:238 -msgid "Item" -msgstr "Item" - -#: classes/Gems/Default/OrganizationAction.php:91 -msgid "Invalid organization." -msgstr "Ongeldige organisatie." - -#: classes/Gems/Default/OrganizationAction.php:99 -msgid "New organization..." -msgstr "Nieuwe organisatie..." - -#: classes/Gems/Default/OrganizationAction.php:123 -msgid "Url" -msgstr "Url" - -#: classes/Gems/Default/OrganizationAction.php:124 -msgid "Task" -msgstr "Taak" - -#: classes/Gems/Default/OrganizationAction.php:125 -msgid "Contact name" -msgstr "Contact naam" - -#: classes/Gems/Default/OrganizationAction.php:126 -msgid "Contact email" -msgstr "Contact email" - -#: classes/Gems/Default/OrganizationAction.php:129 -msgid "Style" -msgstr "Stijl" - -#: classes/Gems/Default/OrganizationAction.php:138 -msgid "Can the organization be used?" -msgstr "Is de organisatie in gebruik?" - -#: classes/Gems/Default/OrganizationAction.php:139 -msgid "Can people login for this organization?" -msgstr "Kunnen personen inloggen voor deze organisatie?" - -#: classes/Gems/Default/OrganizationAction.php:140 -msgid "Accepting" -msgstr "Accepteerd" - -#: classes/Gems/Default/OrganizationAction.php:140 -msgid "Can new respondents be added to the organization?" -msgstr "Accepteert de organisatie nieuwe patiënten?" - -#: classes/Gems/Default/OrganizationAction.php:141 -msgid "Does the organization have respondents?" -msgstr "Heeft de organisatie patiënten?" - -#: classes/Gems/Default/OrganizationAction.php:142 -msgid "Respondent group" -msgstr "Patiënt groep" - -#: classes/Gems/Default/OrganizationAction.php:142 -msgid "Allows respondents to login." -msgstr "Patiënten toestaan in te loggen." - -#: classes/Gems/Default/OrganizationAction.php:146 -msgid "Greeting" -msgstr "Begroeting" - -#: classes/Gems/Default/OrganizationAction.php:146 -#: classes/Gems/Default/OrganizationAction.php:147 -msgid "For emails and token forward screen." -msgstr "Voor emails en kenmerk scherm." - -#: classes/Gems/Default/OrganizationAction.php:147 -msgid "Signature" -msgstr "Handtekening" - -#: classes/Gems/Default/OrganizationAction.php:149 -msgid "Accessible by" -msgstr "Toegankelijk voor" - -#: classes/Gems/Default/OrganizationAction.php:149 -msgid "Checked organizations see this organizations respondents." -msgstr "Geselecteerde organizaties kunnen de patiënten van deze organisatie bekijken." - -#: classes/Gems/Default/OrganizationAction.php:159 -msgid "Code name" -msgstr "Code naam" - -#: classes/Gems/Default/OrganizationAction.php:159 -msgid "Only for programmers." -msgstr "Uitsluitend voor programmeurs." - -#: classes/Gems/Default/OrganizationAction.php:173 -msgid "Delete organization" -msgstr "Verwijder organisatie" - -#: classes/Gems/Default/OrganizationAction.php:183 -msgid "Edit organization" -msgstr "Bewerk organisatie" - -#: classes/Gems/Default/OrganizationAction.php:193 -msgid "Participating organizations" -msgstr "Deelnemende organisaties" - -#: classes/Gems/Default/OrganizationAction.php:203 -msgid "Show organization" -msgstr "Toon organisatie" - -#: classes/Gems/Default/OverviewPlanAction.php:115 -#: classes/Gems/Default/ProjectSurveysAction.php:88 -#: classes/Gems/Default/SurveyAction.php:203 -msgid "survey" -msgid_plural "surveys" -msgstr[0] "vragenlijst" -msgstr[1] "vragenlijsten" - -#: classes/Gems/Default/OverviewPlanAction.php:120 -msgid "Planning overview" -msgstr "Planning overzicht" - -#: classes/Gems/Default/ProjectInformationAction.php:83 -msgid "empty file" -msgstr "leeg bestand" - -#: classes/Gems/Default/ProjectInformationAction.php:87 -msgid "file not found" -msgstr "bestand niet gevonden" - -#: classes/Gems/Default/ProjectInformationAction.php:120 -msgid "Logged errors" -msgstr "Opgeslagen foutmeldingen" - -#: classes/Gems/Default/ProjectInformationAction.php:120 -msgid "Empty logfile" -msgstr "Verwijder alle foutmeldingen" - -#: classes/Gems/Default/ProjectInformationAction.php:125 -msgid "Project information" -msgstr "Project informatie" - -#: classes/Gems/Default/ProjectInformationAction.php:129 -msgid "Project name" -msgstr "Project naam" - -#: classes/Gems/Default/ProjectInformationAction.php:130 -msgid "Project version" -msgstr "Project versie" - -#: classes/Gems/Default/ProjectInformationAction.php:131 -msgid "Gems version" -msgstr "Gems versie" - -#: classes/Gems/Default/ProjectInformationAction.php:133 -msgid "Gems project" -msgstr "Gems project" - -#: classes/Gems/Default/ProjectInformationAction.php:134 -msgid "Gems web directory" -msgstr "Gems web folder" - -#: classes/Gems/Default/ProjectInformationAction.php:135 -msgid "Gems code directory" -msgstr "Gems code folder" - -#: classes/Gems/Default/ProjectInformationAction.php:136 -msgid "Gems project path" -msgstr "Gems project folder" - -#: classes/Gems/Default/ProjectInformationAction.php:137 -msgid "MUtil version" -msgstr "MUtil versie" - -#: classes/Gems/Default/ProjectInformationAction.php:138 -msgid "Zend version" -msgstr "Zend versie" - -#: classes/Gems/Default/ProjectInformationAction.php:139 -msgid "Application environment" -msgstr "Applicatie omgeving" - -#: classes/Gems/Default/ProjectInformationAction.php:140 -msgid "Application baseuri" -msgstr "Applicatie baseuri" - -#: classes/Gems/Default/ProjectInformationAction.php:141 -msgid "Application directory" -msgstr "Applicatie folder" - -#: classes/Gems/Default/ProjectInformationAction.php:142 -msgid "PHP version" -msgstr "PHP versie" - -#: classes/Gems/Default/ProjectInformationAction.php:143 -msgid "Server Hostname" -msgstr "Webserver naam" - -#: classes/Gems/Default/ProjectInformationAction.php:144 -msgid "Server OS" -msgstr "Server besturingssysteem" - -#: classes/Gems/Default/ProjectInformationAction.php:145 -msgid "Time on server" -msgstr "De tijd op de server" - -#: classes/Gems/Default/ProjectInformationAction.php:149 -msgid "Turn Maintenance Mode OFF" -msgstr "Onderhoudsmodus UITzetten" - -#: classes/Gems/Default/ProjectInformationAction.php:151 -msgid "Turn Maintenance Mode ON" -msgstr "Onderhoudsmodus AANzetten" - -#: classes/Gems/Default/ProjectInformationAction.php:161 -msgid "Version information" -msgstr "Versie informatie" - -#: classes/Gems/Default/ProjectInformationAction.php:195 -msgid "Server PHP Info" -msgstr "Server PHP Info" - -#: classes/Gems/Default/ProjectInformationAction.php:208 -msgid "Project settings" -msgstr "Project instellingen" - -#: classes/Gems/Default/ProjectInformationAction.php:215 -msgid "Session content" -msgstr "Sessie inhoud" - -#: classes/Gems/Default/ProjectInformationAction.php:216 -msgid "Session" -msgstr "Sessie" - -#: classes/Gems/Default/ProjectSurveysAction.php:68 -#: classes/Gems/Default/SurveyAction.php:192 -msgid "By" -msgstr "Door" - -#: classes/Gems/Default/ProjectSurveysAction.php:69 -#: classes/Gems/Default/ProjectTracksAction.php:67 -#: classes/Gems/Default/SurveyAction.php:193 -msgid "From" -msgstr "Van" - -#: classes/Gems/Default/ProjectSurveysAction.php:70 -#: classes/Gems/Default/ProjectTracksAction.php:68 -#: classes/Gems/Default/SurveyAction.php:195 -msgid "Until" -msgstr "Tot" - -#: classes/Gems/Default/ProjectSurveysAction.php:93 -msgid "Active surveys" -msgstr "Beschikbare vragenlijsten" - -#: classes/Gems/Default/ProjectTracksAction.php:65 -msgid "Survey #" -msgstr "Vragenlijsten" - -#: classes/Gems/Default/ProjectTracksAction.php:85 -msgid "track" -msgid_plural "tracks" -msgstr[0] "traject" -msgstr[1] "trajecten" - -#: classes/Gems/Default/ProjectTracksAction.php:90 -msgid "Active tracks" -msgstr "Beschikbare trajecten" - -#: classes/Gems/Default/ProjectTracksAction.php:110 -#, php-format -msgid "Questions in survey %s" -msgstr "Vragen in vragenlijsten %s" - -#: classes/Gems/Default/ProjectTracksAction.php:118 -#: classes/Gems/Default/SurveyAction.php:85 -#, php-format -msgid "Survey %s does not exist." -msgstr "Vragenlijst %s bestaat niet." - -#: classes/Gems/Default/ProjectTracksAction.php:121 -msgid "Survey not specified." -msgstr "Vragenlijst niet opgegeven." - -#: classes/Gems/Default/ProjectTracksAction.php:132 -#, php-format -msgid "Track %s does not exist." -msgstr "Trajectnummer %s bestaat niet." - -#: classes/Gems/Default/ReceptionAction.php:55 -msgid "Can be assigned to" -msgstr "Kan toegewezen worden aan" - -#: classes/Gems/Default/ReceptionAction.php:56 -msgid "Additional action" -msgstr "Aanvullende actie" - -#: classes/Gems/Default/ReceptionAction.php:79 -msgid "Code" -msgstr "Code" - -#: classes/Gems/Default/ReceptionAction.php:82 -msgid "Is success code" -msgstr "Is succes code" - -#: classes/Gems/Default/ReceptionAction.php:86 -msgid "This reception code is a success code." -msgstr "Aanzetten als deze ontvangst code positief is." - -#: classes/Gems/Default/ReceptionAction.php:90 -msgid "Only active codes can be selected." -msgstr "Alleen actieve codes kunnen geselecteerd worden." - -#: classes/Gems/Default/ReceptionAction.php:91 -msgid "For respondents" -msgstr "Voor patiënten" - -#: classes/Gems/Default/ReceptionAction.php:94 -msgid "This reception code can be assigned to a respondent." -msgstr "Deze ontvangstcode kan aan een patiënt toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:95 -msgid "For tracks" -msgstr "Voor trajecten" - -#: classes/Gems/Default/ReceptionAction.php:98 -msgid "This reception code can be assigned to a track." -msgstr "Deze ontvangstcode kan aan een traject toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:99 -msgid "For surveys" -msgstr "Voor vragenlijsten" - -#: classes/Gems/Default/ReceptionAction.php:102 -msgid "This reception code can be assigned to a survey." -msgstr "Deze ontvangstcode kan aan een vragenlijst toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:103 -msgid "Redo survey" -msgstr "Vragenlijsten herhalen" - -#: classes/Gems/Default/ReceptionAction.php:106 -msgid "Redo a survey on this reception code." -msgstr "Herhaal vragenlijst bij deze ontvangstcode." - -#: classes/Gems/Default/ReceptionAction.php:107 -msgid "Overwrite ansers" -msgstr "Overschrijf bestaande antwoorden" - -#: classes/Gems/Default/ReceptionAction.php:110 -msgid "Remove the consent from already answered surveys." -msgstr "Verwijder \"informed consent\" van beantwoorde vragenlijsten" - -#: classes/Gems/Default/ReceptionAction.php:128 -msgid "reception code" -msgid_plural "reception codes" -msgstr[0] "Ontvangst code" -msgstr[1] "Ontvangst code" - -#: classes/Gems/Default/RespondentAction.php:119 -#, php-format -msgid "Random Example BSN: %s" -msgstr "Willekeurig voorbeeld BSN: %s" - -#: classes/Gems/Default/RespondentAction.php:122 -msgid "Enter a 9-digit SSN number." -msgstr "Voer een BSN nummer van 9 cijfers in." - -#: classes/Gems/Default/RespondentAction.php:131 -msgid "Identification" -msgstr "Identificatie" - -#: classes/Gems/Default/RespondentAction.php:132 -msgid "SSN" -msgstr "SSN" - -#: classes/Gems/Default/RespondentAction.php:136 -msgid "Patient number" -msgstr "Patiënt nummer" - -#: classes/Gems/Default/RespondentAction.php:145 -msgid "Medical data" -msgstr "Medische gegevens" - -#: classes/Gems/Default/RespondentAction.php:152 -msgid "DBC's, etc..." -msgstr "DBC's, etc..." - -#: classes/Gems/Default/RespondentAction.php:155 -msgid "Contact information" -msgstr "Contact informatie" - -#: classes/Gems/Default/RespondentAction.php:160 -msgid "Respondent has no e-mail" -msgstr "Patiënt zonder e-mail" - -#: classes/Gems/Default/RespondentAction.php:161 -msgid "With housenumber" -msgstr "Met huisnummer" - -#: classes/Gems/Default/RespondentAction.php:168 -msgid "Country" -msgstr "Land" - -#: classes/Gems/Default/RespondentAction.php:172 -msgid "Settings" -msgstr "Instellingen" - -#: classes/Gems/Default/RespondentAction.php:174 -msgid "Has the respondent signed the informed consent letter?" -msgstr "Heeft de patiënt het \"informed consent\" formulier ondertekend?" - -#: classes/Gems/Default/RespondentAction.php:204 -msgid "Comments" -msgstr "Opmerkingen" - -#: classes/Gems/Default/RespondentAction.php:205 -msgid "Physician" -msgstr "Dokter" - -#: classes/Gems/Default/RespondentAction.php:206 -msgid "Treatment" -msgstr "Behandeling" - -#: classes/Gems/Default/RespondentAction.php:235 -msgid "Rejection code" -msgstr "Afkeuringscode" - -#: classes/Gems/Default/RespondentAction.php:242 -msgid "Delete respondent" -msgstr "Verwijder patiënt" - -#: classes/Gems/Default/RespondentAction.php:293 -msgid "Respondent deleted." -msgstr "Patiënt verwijderd" - -#: classes/Gems/Default/RespondentAction.php:296 -msgid "Choose a reception code to delete." -msgstr "Kies een ontvangst code om te verwijderen." - -#: classes/Gems/Default/RespondentAction.php:340 -msgid "respondent" -msgid_plural "respondents" -msgstr[0] "patiënt" -msgstr[1] "patiënten" - -#: classes/Gems/Default/RespondentAction.php:410 -msgid "Please settle the informed consent form for this respondent." -msgstr "A.u.b. het informed consent formulier doornemen met deze patiënt" - -#: classes/Gems/Default/RespondentPlanAction.php:67 -#: classes/Gems/Default/SurveyAction.php:171 -msgid "Show respondent" -msgstr "Toon patiënt" - -#: classes/Gems/Default/RespondentPlanAction.php:73 -msgid "Show track" -msgstr "Toon traject" - -#: classes/Gems/Default/RespondentPlanAction.php:136 -msgid " of " -msgstr " van " - -#: classes/Gems/Default/RespondentPlanAction.php:137 -msgid "Progress" -msgstr "Voortgang" - -#: classes/Gems/Default/RespondentPlanAction.php:144 -msgid "Respondent planning" -msgstr "Per patiënt plannen" - -#: classes/Gems/Default/RoleAction.php:175 -msgid "Illegal name" -msgstr "Naam niet toegestaan" - -#: classes/Gems/Default/RoleAction.php:199 -#: classes/Gems/Default/RoleAction.php:258 -msgid "Parents" -msgstr "Afgeleid van" - -#: classes/Gems/Default/RoleAction.php:214 -msgid "Editing `master` is not allowed" -msgstr "Het wijzigen van `master` is niet toegestaan" - -#: classes/Gems/Default/RoleAction.php:232 -msgid "role" -msgid_plural "roles" -msgstr[0] "Rol" -msgstr[1] "Rollen" - -#: classes/Gems/Default/RoleAction.php:237 -msgid "Administrative roles" -msgstr "Beheer rollen en rechten" - -#: classes/Gems/Default/RoleAction.php:259 -#: classes/Gems/Default/RoleAction.php:275 -msgid "Allowed" -msgstr "Toegestaan" - -#: classes/Gems/Default/RoleAction.php:260 -#: classes/Gems/Default/RoleAction.php:276 -msgid "Denied" -msgstr "Geweigerd" - -#: classes/Gems/Default/RoleAction.php:264 -msgid "Project role overview" -msgstr "Project rollen" - -#: classes/Gems/Default/RoleAction.php:274 -msgid "Priv... [truncated message content] |
From: <gem...@li...> - 2011-11-28 13:12:40
|
Revision: 298 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=298&view=rev Author: mennodekker Date: 2011-11-28 13:12:29 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Made tabform more robust Removed unique constraint on email and login-name Modified Paths: -------------- branches/userloader/classes/Gems/Default/StaffAction.php branches/userloader/classes/Gems/TabForm.php branches/userloader/configs/db/patches.sql Modified: branches/userloader/classes/Gems/Default/StaffAction.php =================================================================== --- branches/userloader/classes/Gems/Default/StaffAction.php 2011-11-28 12:00:31 UTC (rev 297) +++ branches/userloader/classes/Gems/Default/StaffAction.php 2011-11-28 13:12:29 UTC (rev 298) @@ -100,7 +100,7 @@ //@@TODO Like this? should work when user is not saved, but storing the password should be done when //we do have a user... - $definition = $this->loader->getUserLoader()->getUserDefinition($data['gul_user_class']); + $definition = $this->loader->getUserLoader()->getUserDefinition($data['gul_user_class'].'Definition'); if ($definition->canSetPassword()) { //@@TODO: Should we handle it like this? The userdef has a setpassword method... @@ -131,7 +131,7 @@ //@@TODO: How do we change this? Only per org, or allow per user? //What classes are available? Maybe use something like event loader and add a little desc. to each type? $bridge->addText( 'gsf_login', 'size', 15, 'minlength', 4, - 'validator', $model->createUniqueValidator('gsf_login', array('gsf_id_user'))); + 'validator', $model->createUniqueValidator(array('gsf_login', 'gsf_id_organization'), array('gsf_id_user'))); // Can the organization be changed? if ($this->escort->hasPrivilege('pr.staff.edit.all')) { @@ -157,7 +157,7 @@ $bridge->addText( 'gsf_surname_prefix', 'label', $this->_('Surname prefix'), 'description', 'de, van der, \'t, etc...'); $bridge->addText( 'gsf_last_name', 'label', $this->_('Last name'), 'required', true); $bridge->addFilter( 'gsf_last_name', $ucfirst); - $bridge->addText( 'gsf_email', array('size' => 30))->addValidator('SimpleEmail')->addValidator($model->createUniqueValidator('gsf_email')); + $bridge->addText( 'gsf_email', array('size' => 30))->addValidator('SimpleEmail'); $bridge->addSelect('gsf_id_primary_group'); $bridge->addCheckbox('gsf_logout_on_survey', 'description', $this->_('If checked the user will logoff when answering a survey.')); Modified: branches/userloader/classes/Gems/TabForm.php =================================================================== --- branches/userloader/classes/Gems/TabForm.php 2011-11-28 12:00:31 UTC (rev 297) +++ branches/userloader/classes/Gems/TabForm.php 2011-11-28 13:12:29 UTC (rev 298) @@ -60,18 +60,22 @@ if ($this->currentTab && !($element instanceof Zend_Form_Element_Hidden)) { return $this->currentTab->addElement($element, $name, $options); } else { + parent::addElement($element, $name, $options); + if (is_string($element)) { + $element = $this->getElement($element); + } if ($element instanceof Zend_Form_Element_Hidden) { //Remove decorators $element->removeDecorator('htmlTag'); $element->removeDecorator('Label'); - } else { + } elseif ($element instanceof Zend_Form_Element) { $error = $element->getDecorator('Errors'); if ($error instanceof Zend_Form_Decorator_Errors) { $element->removeDecorator('Errors'); $element->addDecorator($error); } } - return parent::addElement($element, $name, $options); + return $this; } } Modified: branches/userloader/configs/db/patches.sql =================================================================== --- branches/userloader/configs/db/patches.sql 2011-11-28 12:00:31 UTC (rev 297) +++ branches/userloader/configs/db/patches.sql 2011-11-28 13:12:29 UTC (rev 298) @@ -324,4 +324,8 @@ -- PATCH: Log failed logins INSERT INTO `gems__log_actions` (`glac_id_action`, `glac_name`, `glac_change`, `glac_log`, `glac_created`) - VALUES (NULL , 'loginFail', '0', '1', CURRENT_TIMESTAMP); \ No newline at end of file + VALUES (NULL , 'loginFail', '0', '1', CURRENT_TIMESTAMP); + +--PATCH: Remove unique constraint for staff email +ALTER TABLE `zsd`.`gems__staff` DROP INDEX `gsf_email` , +ADD INDEX `gsf_email` ( `gsf_email` ) \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 12:00:41
|
Revision: 297 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=297&view=rev Author: mennodekker Date: 2011-11-28 12:00:31 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Don't remove public functions without notice Modified Paths: -------------- trunk/library/classes/Gems/Util/DbLookup.php Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 11:55:18 UTC (rev 296) +++ trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 12:00:31 UTC (rev 297) @@ -75,7 +75,29 @@ */ protected $session; + /** + * Retrieve a list of orgid/name pairs + * + * @staticvar array $organizations + * @return array + */ + public function getActiveOrganizations() + { + static $organizations; + if (! $organizations) { + $orgId = GemsEscort::getInstance()->getCurrentOrganization(); + $organizations = $this->db->fetchPairs(' + SELECT gor_id_organization, gor_name + FROM gems__organizations + WHERE (gor_active=1 AND + gor_id_organization IN (SELECT gr2o_id_organization FROM gems__respondent2org)) OR + gor_id_organization = ? + ORDER BY gor_name', $orgId); + } + + return $organizations; + } /** * Return key/value pairs of all active staff members * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 11:55:24
|
Revision: 296 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=296&view=rev Author: michieltcs Date: 2011-11-28 11:55:18 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Return all organizations if gor_has_login column does not (yet) exist Modified Paths: -------------- trunk/library/classes/Gems/Util/DbLookup.php Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 11:37:20 UTC (rev 295) +++ trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 11:55:18 UTC (rev 296) @@ -224,7 +224,11 @@ static $organizations; if (! $organizations) { - $organizations = $this->db->fetchPairs('SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active=1 AND gor_has_login=1 ORDER BY gor_name'); + try { + $organizations = $this->db->fetchPairs('SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active=1 AND gor_has_login=1 ORDER BY gor_name'); + } catch (Exception $e) { + $organizations = $this->db->fetchPairs('SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active=1 ORDER BY gor_name'); + } natsort($organizations); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 11:37:32
|
Revision: 295 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=295&view=rev Author: matijsdejong Date: 2011-11-28 11:37:20 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Separate organization login option added Use of 'Ask token' and 'Lost password' buttons in IndexAction.php now optional. Modified Paths: -------------- trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/Gems/Default/OrganizationAction.php trunk/library/classes/Gems/Default/TokenPlanAction.php trunk/library/classes/Gems/Util/DbLookup.php trunk/library/configs/db/patches.sql trunk/library/configs/db/tables/gems__organizations.20.sql trunk/library/languages/default-en.mo trunk/library/languages/default-en.po trunk/library/languages/default-nl.mo trunk/library/languages/default-nl.po trunk/library/snippets/Organization/OrganizationTableSnippet.php Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-28 11:37:20 UTC (rev 295) @@ -71,6 +71,20 @@ public $project; /** + * The default behaviour for showing a lost password button + * + * @var boolean + */ + protected $showPasswordLostButton = true; + + /** + * The default behaviour for showing an 'ask token' button + * + * @var boolean + */ + protected $showTokenButton = true; + + /** * Returns a link for the token input page. * * @return MUtil_Form_Element_Html @@ -117,18 +131,25 @@ /** * Returns a login form * + * @param boolean $showTokenButton Optional, show 'Ask token' button, $this->showTokenButton is used when not specified + * @param boolean $showPasswordLostButton Optional, show 'Lost password' button, $this->showPasswordLostButton is used when not specified * @return Gems_Form */ - protected function _getLoginForm() + protected function _getLoginForm($showTokenButton = null, $showPasswordLostButton = null) { $form = $this->_getBasicForm($this->_('Login to %s application')); $form->addElement($this->_getOrganizationElement()); $form->addElement($this->_getUserLoginElement()); $form->addElement($this->_getPasswordElement()); $form->addElement($this->_getSubmitButton($this->_('Login'))); - $form->addElement($this->_getAskTokenLinkElement()); - $form->addElement($this->_getResetLinkElement()); + if (null === $showTokenButton ? $this->showTokenButton : $showTokenButton) { + $form->addElement($this->_getAskTokenLinkElement()); + } + if (null === $showPasswordLostButton ? $this->showPasswordLostButton : $showPasswordLostButton) { + $form->addElement($this->_getResetLinkElement()); + } + return $form; } @@ -154,17 +175,27 @@ */ protected function _getOrganizationElement() { - if ($this->escort instanceof Gems_Project_Organization_SingleOrganizationInterface) { + $hidden = $this->escort instanceof Gems_Project_Organization_SingleOrganizationInterface; + if ($hidden) { + $org = $this->escort->getRespondentOrganization(); + } else { + $org = $this->loader->getCurrentUser()->getCurrentOrganizationId(); + $orgs = $this->util->getDbLookup()->getOrganizationsForLogin(); + $hidden = count($orgs) < 2; + } + + if ($hidden) { $element = new Zend_Form_Element_Hidden('organization'); - $element->setValue($this->escort->getRespondentOrganization()); + $element->setValue($org); } else { $element = new Zend_Form_Element_Select('organization'); $element->setLabel($this->_('Organization')); - $element->setMultiOptions($this->util->getDbLookup()->getOrganizations()); + $element->setMultiOptions($orgs); $element->setRequired(true); + $element->setAttrib('size', max(count($orgs) + 1, 6)); if (! $this->_request->isPost()) { - $element->setValue($this->loader->getCurrentUser()->getCurrentOrganizationId()); + $element->setValue($org); } } Modified: trunk/library/classes/Gems/Default/OrganizationAction.php =================================================================== --- trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-28 11:37:20 UTC (rev 295) @@ -136,6 +136,7 @@ ); $yesNo = $this->util->getTranslated()->getYesNo(); $model->set('gor_active', 'label', $this->_('Active'), 'description', $this->_('Can the organization be used?'), 'elementClass', 'Checkbox', 'multiOptions', $yesNo); + $model->set('gor_has_login', 'label', $this->_('Login'), 'description', $this->_('Can people login for this organization?'), 'elementClass', 'CheckBox', 'multiOptions', $yesNo); $model->set('gor_add_respondents', 'label', $this->_('Accepting'), 'description', $this->_('Can new respondents be added to the organization?'), 'elementClass', 'CheckBox', 'multiOptions', $yesNo); $model->set('gor_has_respondents', 'label', $this->_('Respondents'), 'description', $this->_('Does the organization have respondents?'), 'elementClass', 'Exhibitor', 'multiOptions', $yesNo); $model->set('gor_respondent_group', 'label', $this->_('Respondent group'), 'description', $this->_('Allows respondents to login.'), 'multiOptions', $this->util->getDbLookup()->getAllowedRespondentGroups()); Modified: trunk/library/classes/Gems/Default/TokenPlanAction.php =================================================================== --- trunk/library/classes/Gems/Default/TokenPlanAction.php 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/classes/Gems/Default/TokenPlanAction.php 2011-11-28 11:37:20 UTC (rev 295) @@ -341,7 +341,7 @@ if (($this->escort instanceof Gems_Project_Organization_MultiOrganizationInterface) && $this->escort->hasPrivilege('pr.plan.choose-org')){ // Select organisation - $options = $this->util->getDbLookup()->getActiveOrganizations(); + $options = $this->util->getDbLookup()->getOrganizationsWithRespondents(); $elements[] = $this->_createSelectElement('gto_id_organization', $options); } Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/classes/Gems/Util/DbLookup.php 2011-11-28 11:37:20 UTC (rev 295) @@ -75,24 +75,7 @@ */ protected $session; - public function getActiveOrganizations() - { - static $organizations; - if (! $organizations) { - $orgId = GemsEscort::getInstance()->getCurrentOrganization(); - $organizations = $this->db->fetchPairs(' - SELECT gor_id_organization, gor_name - FROM gems__organizations - WHERE (gor_active=1 AND - gor_id_organization IN (SELECT gr2o_id_organization FROM gems__respondent2org)) OR - gor_id_organization = ? - ORDER BY gor_name', $orgId); - } - - return $organizations; - } - /** * Return key/value pairs of all active staff members * @@ -230,6 +213,42 @@ return $organizations; } + /** + * Returns a list of the organizations where users can login. + * + * @staticvar array $organizations + * @return array List of the active organizations + */ + public function getOrganizationsForLogin() + { + static $organizations; + + if (! $organizations) { + $organizations = $this->db->fetchPairs('SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active=1 AND gor_has_login=1 ORDER BY gor_name'); + natsort($organizations); + } + + return $organizations; + } + + /** + * Returns a list of the organizations that have respondents. + * + * @staticvar array $organizations + * @return array List of the active organizations + */ + public function getOrganizationsWithRespondents() + { + static $organizations; + + if (! $organizations) { + $organizations = $this->db->fetchPairs('SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active=1 AND gor_has_respondents=1 ORDER BY gor_name'); + natsort($organizations); + } + + return $organizations; + } + public function getRoles() { $roles = array(); Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/configs/db/patches.sql 2011-11-28 11:37:20 UTC (rev 295) @@ -327,6 +327,10 @@ ALTER TABLE `gems__organizations` ADD gor_respondent_group bigint unsigned null AFTER gor_add_respondents; +ALTER TABLE `gems__organizations` ADD gor_has_login boolean not null default 1 AFTER gor_iso_lang; + +UPDATE `gems__organizations` SET gor_has_login = COALESCE((SELECT 1 FROM gems__staff WHERE gsf_id_organization = gor_id_organization GROUP BY gsf_id_organization), 0); + -- PATCH: Log failed logins INSERT INTO `gems__log_actions` (`glac_id_action`, `glac_name`, `glac_change`, `glac_log`, `glac_created`) VALUES (NULL , 'loginFail', '0', '1', CURRENT_TIMESTAMP); Modified: trunk/library/configs/db/tables/gems__organizations.20.sql =================================================================== --- trunk/library/configs/db/tables/gems__organizations.20.sql 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/configs/db/tables/gems__organizations.20.sql 2011-11-28 11:37:20 UTC (rev 295) @@ -20,6 +20,7 @@ gor_iso_lang char(2) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null default 'en' references gems__languages (gml_iso_lang), + gor_has_login boolean not null default 1, gor_has_respondents boolean not null default 1, gor_add_respondents boolean not null default 1, gor_respondent_group bigint unsigned references gems__groups (ggp_id_group) null, Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/languages/default-en.po 2011-11-28 11:37:20 UTC (rev 295) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: Pulse EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-25 17:05+0100\n" +"POT-Creation-Date: 2011-11-28 12:25+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -1023,7 +1023,7 @@ msgstr "%s records found." #: classes/Gems/Default/ExportAction.php:172 -#: classes/Gems/Default/IndexAction.php:162 +#: classes/Gems/Default/IndexAction.php:179 #: classes/Gems/Default/MailJobAction.php:119 msgid "Organization" msgstr "Organization" @@ -1056,88 +1056,88 @@ msgid "Administrative groups" msgstr "Administrative groups" -#: classes/Gems/Default/IndexAction.php:83 +#: classes/Gems/Default/IndexAction.php:91 msgid "Enter your token..." msgstr "Enter your token..." -#: classes/Gems/Default/IndexAction.php:124 +#: classes/Gems/Default/IndexAction.php:132 #, php-format msgid "Login to %s application" msgstr "Login to %s application" -#: classes/Gems/Default/IndexAction.php:128 +#: classes/Gems/Default/IndexAction.php:136 msgid "Login" msgstr "Login" -#: classes/Gems/Default/IndexAction.php:145 +#: classes/Gems/Default/IndexAction.php:153 msgid "Back to login" msgstr "Back to login" -#: classes/Gems/Default/IndexAction.php:183 +#: classes/Gems/Default/IndexAction.php:201 msgid "Password" msgstr "Password" -#: classes/Gems/Default/IndexAction.php:198 +#: classes/Gems/Default/IndexAction.php:216 #, php-format msgid "Reset password for %s application" msgstr "Reset password for %s application" -#: classes/Gems/Default/IndexAction.php:202 +#: classes/Gems/Default/IndexAction.php:220 msgid "Reset password" msgstr "Reset password" -#: classes/Gems/Default/IndexAction.php:248 +#: classes/Gems/Default/IndexAction.php:266 msgid "Username" msgstr "Username" -#: classes/Gems/Default/IndexAction.php:288 +#: classes/Gems/Default/IndexAction.php:306 msgid "Your password must be changed." msgstr "Your password must be changed." -#: classes/Gems/Default/IndexAction.php:300 +#: classes/Gems/Default/IndexAction.php:318 #, php-format msgid "Login successful, welcome %s." msgstr "Login successful, welcome %s." -#: classes/Gems/Default/IndexAction.php:340 +#: classes/Gems/Default/IndexAction.php:358 #, php-format msgid "Good bye: %s." msgstr "Good bye: %s." -#: classes/Gems/Default/IndexAction.php:365 +#: classes/Gems/Default/IndexAction.php:383 msgid "Reset accepted, enter your new password." msgstr "Reset accepted, enter your new password." -#: classes/Gems/Default/IndexAction.php:369 +#: classes/Gems/Default/IndexAction.php:387 msgid "This key timed out or does not belong to this user." msgstr "This key timed out or does not belong to this user." -#: classes/Gems/Default/IndexAction.php:386 +#: classes/Gems/Default/IndexAction.php:404 msgid "Password reset requested" msgstr "Password reset requested" -#: classes/Gems/Default/IndexAction.php:387 +#: classes/Gems/Default/IndexAction.php:405 #, php-format msgid "To reset your password for %s, please click this link: %s" msgstr "To reset your password for %s, please click this link: %s" -#: classes/Gems/Default/IndexAction.php:392 +#: classes/Gems/Default/IndexAction.php:410 msgid "We sent you an e-mail with a reset link. Click on the link in the e-mail." msgstr "We sent you an e-mail with a reset link. Click on the link in the e-mail." -#: classes/Gems/Default/IndexAction.php:394 +#: classes/Gems/Default/IndexAction.php:412 msgid "Unable to send e-mail." msgstr "Unable to send e-mail." -#: classes/Gems/Default/IndexAction.php:399 +#: classes/Gems/Default/IndexAction.php:417 msgid "No such user found or no e-mail address known or user cannot be reset." msgstr "No such user found or no e-mail address known or user cannot be reset." -#: classes/Gems/Default/IndexAction.php:403 +#: classes/Gems/Default/IndexAction.php:421 msgid "We received your password reset key." msgstr "We received your password reset key." -#: classes/Gems/Default/IndexAction.php:404 +#: classes/Gems/Default/IndexAction.php:422 msgid "Please enter the organization and username belonging to this key." msgstr "Please enter the organization and username belonging to this key." @@ -1546,67 +1546,71 @@ msgstr "Can the organization be used?" #: classes/Gems/Default/OrganizationAction.php:139 +msgid "Can people login for this organization?" +msgstr "Can people login for this organization?" + +#: classes/Gems/Default/OrganizationAction.php:140 msgid "Accepting" msgstr "Accepting" -#: classes/Gems/Default/OrganizationAction.php:139 +#: classes/Gems/Default/OrganizationAction.php:140 msgid "Can new respondents be added to the organization?" msgstr "Can new patients be added to the organization?" -#: classes/Gems/Default/OrganizationAction.php:140 +#: classes/Gems/Default/OrganizationAction.php:141 msgid "Does the organization have respondents?" msgstr "Does the organization have patients?" -#: classes/Gems/Default/OrganizationAction.php:141 +#: classes/Gems/Default/OrganizationAction.php:142 msgid "Respondent group" msgstr "Patient group" -#: classes/Gems/Default/OrganizationAction.php:141 +#: classes/Gems/Default/OrganizationAction.php:142 msgid "Allows respondents to login." msgstr "Allow patients to login." -#: classes/Gems/Default/OrganizationAction.php:145 +#: classes/Gems/Default/OrganizationAction.php:146 msgid "Greeting" msgstr "Greeting" -#: classes/Gems/Default/OrganizationAction.php:145 #: classes/Gems/Default/OrganizationAction.php:146 +#: classes/Gems/Default/OrganizationAction.php:147 msgid "For emails and token forward screen." msgstr "For emails and token forward screen." -#: classes/Gems/Default/OrganizationAction.php:146 +#: classes/Gems/Default/OrganizationAction.php:147 msgid "Signature" msgstr "Signature" -#: classes/Gems/Default/OrganizationAction.php:148 +#: classes/Gems/Default/OrganizationAction.php:149 msgid "Accessible by" msgstr "Accessible by" -#: classes/Gems/Default/OrganizationAction.php:148 +#: classes/Gems/Default/OrganizationAction.php:149 msgid "Checked organizations see this organizations respondents." msgstr "Checked organizations see this organizations patients." -#: classes/Gems/Default/OrganizationAction.php:158 +#: classes/Gems/Default/OrganizationAction.php:159 msgid "Code name" msgstr "Code name" -#: classes/Gems/Default/OrganizationAction.php:158 +#: classes/Gems/Default/OrganizationAction.php:159 msgid "Only for programmers." msgstr "Only for programmers." -#: classes/Gems/Default/OrganizationAction.php:172 +#: classes/Gems/Default/OrganizationAction.php:173 msgid "Delete organization" msgstr "Delete organization" -#: classes/Gems/Default/OrganizationAction.php:182 +#: classes/Gems/Default/OrganizationAction.php:183 msgid "Edit organization" msgstr "Edit organization" -#: classes/Gems/Default/OrganizationAction.php:192 +#: classes/Gems/Default/OrganizationAction.php:193 msgid "Participating organizations" msgstr "Participating organizations" -#: classes/Gems/Default/OrganizationAction.php:202 +#: classes/Gems/Default/OrganizationAction.php:203 msgid "Show organization" msgstr "Show organization" @@ -1912,41 +1916,41 @@ msgid "Has the respondent signed the informed consent letter?" msgstr "Has the patient signed the informed consent letter?" -#: classes/Gems/Default/RespondentAction.php:199 +#: classes/Gems/Default/RespondentAction.php:204 msgid "Comments" msgstr "Comments" -#: classes/Gems/Default/RespondentAction.php:200 +#: classes/Gems/Default/RespondentAction.php:205 msgid "Physician" msgstr "Physician" -#: classes/Gems/Default/RespondentAction.php:201 +#: classes/Gems/Default/RespondentAction.php:206 msgid "Treatment" msgstr "Treatment" -#: classes/Gems/Default/RespondentAction.php:230 +#: classes/Gems/Default/RespondentAction.php:235 msgid "Rejection code" msgstr "Rejection code" -#: classes/Gems/Default/RespondentAction.php:237 +#: classes/Gems/Default/RespondentAction.php:242 msgid "Delete respondent" msgstr "Delete patient" -#: classes/Gems/Default/RespondentAction.php:288 +#: classes/Gems/Default/RespondentAction.php:293 msgid "Respondent deleted." msgstr "Patient deleted" -#: classes/Gems/Default/RespondentAction.php:291 +#: classes/Gems/Default/RespondentAction.php:296 msgid "Choose a reception code to delete." msgstr "Choose a reception code to delete." -#: classes/Gems/Default/RespondentAction.php:335 +#: classes/Gems/Default/RespondentAction.php:340 msgid "respondent" msgid_plural "respondents" msgstr[0] "patient" msgstr[1] "patients" -#: classes/Gems/Default/RespondentAction.php:405 +#: classes/Gems/Default/RespondentAction.php:410 msgid "Please settle the informed consent form for this respondent." msgstr "Please settle the informed consent form for this patient." Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2011-11-28 10:49:52 UTC (rev 294) +++ trunk/library/languages/default-nl.po 2011-11-28 11:37:20 UTC (rev 295) @@ -1,4489 +1,4519 @@ -msgid "" -msgstr "" -"Project-Id-Version: Pulse NL\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-25 17:23+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: Michiel Rook <in...@to...>\n" -"Language-Team: Erasmus MGZ <mat...@ma...>\n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-Language: Dutch\n" -"X-Poedit-Country: NETHERLANDS\n" -"X-Poedit-SourceCharset: iso-8859-1\n" -"X-Poedit-Basepath: ../\n" -"X-Poedit-KeywordsList: plural:1,2\n" -"X-Poedit-SearchPath-0: .\n" - -#: classes/GemsEscort.php:207 -#, php-format -msgid "Path %s not writable" -msgstr "Path %s niet schrijfbaar" - -#: classes/GemsEscort.php:891 -#, php-format -msgid "User: %s" -msgstr "Login: %s" - -#: classes/GemsEscort.php:916 -msgid "version" -msgstr "versie" - -#: classes/GemsEscort.php:1347 -msgid "Take note: your session has expired, your inputs were not saved. Please check the input data and try again" -msgstr "Let op: uw sessie is verlopen, uw invoer is niet opgeslagen. Controleer uw gegevens en probeer a.u.b. opnieuw." - -#: classes/GemsEscort.php:1474 -msgid "Please check back later." -msgstr "Probeer het later opnieuw." - -#: classes/GemsEscort.php:1476 -#: classes/GemsEscort.php:1481 -msgid "System is in maintenance mode" -msgstr "Systeem is in onderhoudsmodus" - -#: classes/GemsEscort.php:1491 -msgid "No access to site." -msgstr "Geen toegang tot website." - -#: classes/GemsEscort.php:1493 -msgid "You have no access to this site." -msgstr "U heeft geen toegang tot deze website." - -#: classes/GemsEscort.php:1509 -msgid "No access to page" -msgstr "Geen toegang tot pagina" - -#: classes/GemsEscort.php:1511 -#, php-format -msgid "Access to this page is not allowed for current role: %s." -msgstr "U heeft geen toegang tot deze pagina. Uw huidige rol is: %s." - -#: classes/GemsEscort.php:1516 -msgid "You are no longer logged in." -msgstr "U bent niet meer ingelogd." - -#: classes/GemsEscort.php:1517 -msgid "You must login to access this page." -msgstr "U moet ingelogd zijn voor toegang tot deze pagina." - -#: classes/Gems/Pdf.php:195 -#, php-format -msgid "PDF Source File '%s' not found!" -msgstr "PDF bron bestand %s niet gevonden!" - -#: classes/Gems/Pdf.php:237 -#, php-format -msgid "Could not create '%s' directory." -msgstr "Kon de directory '%s' niet aanmaken." - -#: classes/Gems/Pdf.php:280 -#, php-format -msgid " The error message is: %s" -msgstr "De foutmelding is: %s" - -#: classes/Gems/Tracker.php:732 -msgid "Checks performed" -msgstr "Controle uitgevoerd" - -#: classes/Gems/AccessLog.php:239 -msgid "Database needs to be updated!" -msgstr "Database dient ververst te worden!" - -#: classes/Gems/Html.php:154 -msgid "<< First" -msgstr "<< Eerste" - -#: classes/Gems/Html.php:155 -msgid "< Previous" -msgstr "< Terug" - -#: classes/Gems/Html.php:156 -msgid "Next >" -msgstr "Verder >" - -#: classes/Gems/Html.php:157 -msgid "Last >>" -msgstr "Laatste >>" - -#: classes/Gems/Html.php:158 -msgid " | " -msgstr " | " - -#: classes/Gems/Html.php:162 -msgid "to" -msgstr "tot" - -#: classes/Gems/Html.php:163 -msgid "of" -msgstr "van" - -#: classes/Gems/Menu.php:139 -#, php-format -msgid "About %s" -msgstr "Over %s" - -#: classes/Gems/Menu.php:143 -msgid "Reporting bugs" -msgstr "Meld een bug" - -#: classes/Gems/Menu.php:146 -msgid "Support" -msgstr "Ondersteuning" - -#: classes/Gems/Menu.php:166 -msgid "Project setup" -msgstr "Projectinfo" - -#: classes/Gems/Menu.php:169 -msgid "Database" -msgstr "Database" - -#: classes/Gems/Menu.php:173 -msgid "Content" -msgstr "Inhoud" - -#: classes/Gems/Menu.php:176 -msgid "Execute" -msgstr "Uitvoeren" - -#: classes/Gems/Menu.php:181 -msgid "Patches" -msgstr "Patches" - -#: classes/Gems/Menu.php:182 -msgid "Execute new" -msgstr "Nieuwe aanmaken" - -#: classes/Gems/Menu.php:184 -msgid "Refresh translateables" -msgstr "Ververs vertaalbaren" - -#: classes/Gems/Menu.php:186 -msgid "Run SQL" -msgstr "SQL uitvoeren" - -#: classes/Gems/Menu.php:189 -msgid "Reception codes" -msgstr "Ontvangst codes" - -#: classes/Gems/Menu.php:192 -msgid "Consents" -msgstr "Toestemmingen" - -#: classes/Gems/Menu.php:195 -msgid "Roles" -msgstr "Rollen" - -#: classes/Gems/Menu.php:196 -msgid "Assigned" -msgstr "Toegewezen" - -#: classes/Gems/Menu.php:197 -msgid "Privileges" -msgstr "Priviléges" - -#: classes/Gems/Menu.php:200 -msgid "Groups" -msgstr "Groepen" - -#: classes/Gems/Menu.php:203 -msgid "Organizations" -msgstr "Organisaties" - -#: classes/Gems/Menu.php:206 -msgid "Staff" -msgstr "Medewerkers" - -#: classes/Gems/Menu.php:209 -msgid "Logging" -msgstr "Logboek" - -#: classes/Gems/Menu.php:213 -msgid "Maintenance" -msgstr "Onderhoud" - -#: classes/Gems/Menu.php:218 -msgid "Upgrade" -msgstr "Upgrade" - -#: classes/Gems/Menu.php:219 -msgid "Show" -msgstr "Toon" - -#: classes/Gems/Menu.php:220 -msgid "Execute all" -msgstr "Alles uitvoeren" - -#: classes/Gems/Menu.php:221 -msgid "Execute this" -msgstr "Dit uitvoeren" - -#: classes/Gems/Menu.php:222 -msgid "Execute from here" -msgstr "Uitvoeren vanaf hier" - -#: classes/Gems/Menu.php:223 -msgid "Execute to here" -msgstr "Uitvoeren tot hier" - -#: classes/Gems/Menu.php:235 -#, php-format -msgid "Stand-alone privilige: %s" -msgstr "Zelfstandig privilege: %s" - -#: classes/Gems/Menu.php:242 -msgid "Logon" -msgstr "Login" - -#: classes/Gems/Menu.php:243 -msgid "Lost password" -msgstr "Wachtwoord vergeten" - -#: classes/Gems/Menu.php:244 -msgid "Your account" -msgstr "Uw account" - -#: classes/Gems/Menu.php:245 -msgid "Activity overview" -msgstr "Activiteiten overzicht" - -#: classes/Gems/Menu.php:246 -msgid "Change password" -msgstr "Uw wachtwoord" - -#: classes/Gems/Menu.php:247 -#: classes/Gems/Menu.php:322 -msgid "Token" -msgstr "Kenmerk" - -#: classes/Gems/Menu.php:248 -msgid "Logoff" -msgstr "Uitloggen" - -#: classes/Gems/Menu.php:283 -msgid "Track" -msgstr "Traject" - -#: classes/Gems/Menu.php:290 -#: classes/Gems/Menu.php:341 -msgid "Add" -msgstr "Voeg toe" - -#: classes/Gems/Menu.php:294 -msgid "Preview" -msgstr "Preview" - -#: classes/Gems/Menu.php:301 -msgid "Tracks" -msgstr "Trajecten" - -#: classes/Gems/Menu.php:314 -msgid "Assignments" -msgstr "Toewijzingen" - -#: classes/Gems/Menu.php:326 -msgid "Edit" -msgstr "Wijzig" - -#: classes/Gems/Menu.php:330 -msgid "Delete" -msgstr "Verwijder" - -#: classes/Gems/Menu.php:335 -msgid "Surveys" -msgstr "Vragenlijsten" - -#: classes/Gems/Menu.php:367 -msgid "Fill in" -msgstr "Vul in" - -#: classes/Gems/Menu.php:371 -msgid "Print PDF" -msgstr "Print PDF" - -#: classes/Gems/Menu.php:374 -msgid "E-Mail now!" -msgstr "Email nu!" - -#: classes/Gems/Menu.php:380 -msgid "Answers" -msgstr "Antwoorden" - -#: classes/Gems/Menu.php:518 -msgid "Respondents" -msgstr "Patiënten" - -#: classes/Gems/Menu.php:526 -msgid "Overview" -msgstr "Overzicht" - -#: classes/Gems/Menu.php:533 -msgid "Project" -msgstr "Project" - -#: classes/Gems/Menu.php:536 -msgid "Setup" -msgstr "Beheer" - -#: classes/Gems/Menu.php:539 -msgid "Mail" -msgstr "Email" - -#: classes/Gems/Menu.php:542 -msgid "Track Builder" -msgstr "Traject bouwer" - -#: classes/Gems/Menu.php:551 -msgid "Contact" -msgstr "Contact" - -#: classes/Gems/Menu.php:564 -msgid "Changelog" -msgstr "Changelog" - -#: classes/Gems/Model.php:193 -msgid "Respondent nr" -msgstr "Patiënt nr" - -#: classes/Gems/Model.php:194 -msgid "Opened" -msgstr "Bekeken" - -#: classes/Gems/Model.php:195 -msgid "Consent" -msgstr "Toestemming" - -#: classes/Gems/Model.php:197 -msgid "E-Mail" -msgstr "Email" - -#: classes/Gems/Model.php:202 -msgid "Gender" -msgstr "Geslacht" - -#: classes/Gems/Model.php:203 -msgid "First name" -msgstr "Voornaam" - -#: classes/Gems/Model.php:204 -msgid "Surname prefix" -msgstr "Tussenvoegsel" - -#: classes/Gems/Model.php:205 -msgid "Last name" -msgstr "Achternaam" - -#: classes/Gems/Model.php:207 -msgid "Name" -msgstr "Naam" - -#: classes/Gems/Model.php:210 -msgid "Street" -msgstr "Straat" - -#: classes/Gems/Model.php:211 -msgid "Zipcode" -msgstr "Postcode" - -#: classes/Gems/Model.php:212 -msgid "City" -msgstr "Stad" - -#: classes/Gems/Model.php:214 -msgid "Phone" -msgstr "Telefoon" - -#: classes/Gems/Model.php:216 -msgid "Birthday" -msgstr "Geboren op" - -#: classes/Gems/UpgradesAbstract.php:164 -msgid "Already at max. level." -msgstr "Al op het hoogste niveau." - -#: classes/Gems/UpgradesAbstract.php:171 -#, php-format -msgid "Trying upgrade for %s from level %s to level %s" -msgstr "Probeert upgrade voor %s van niveau %s naar niveau %s uit te voeren" - -#: classes/Gems/UpgradesAbstract.php:179 -#, php-format -msgid "Trying upgrade for %s to level %s: %s" -msgstr "Probeert upgrade voor %s naar niveau %s: %s" - -#: classes/Gems/UpgradesAbstract.php:337 -msgid "Cache cleaned" -msgstr "Cache opgeschoond" - -#: classes/Gems/Auth.php:241 -msgid "Combination of organization, username and password not found." -msgstr "Combinatie van organisatie, gebruikersnaam en wachtwoord niet gevonden." - -#: classes/Gems/Export/Spss.php:59 -msgid "Which file" -msgstr "Kies bestand" - -#: classes/Gems/Export/Spss.php:60 -msgid "syntax" -msgstr "syntax" - -#: classes/Gems/Export/Spss.php:61 -msgid "data" -msgstr "data" - -#: classes/Gems/Export/Spss.php:66 -msgid "Some help for this export" -msgstr "Uitleg over deze export mogelijkheid" - -#: classes/Gems/Export/Excel.php:60 -msgid "Excel options" -msgstr "Excel opties" - -#: classes/Gems/Export/Excel.php:62 -msgid "Export questions instead of variable names" -msgstr "Exporteer vragen in plaats van variabele namen" - -#: classes/Gems/Export/Excel.php:63 -msgid "Format answers" -msgstr "Antwoorden opmaken" - -#: classes/Gems/Util/Translated.php:84 -msgid "-" -msgstr "n.v.t." - -#: classes/Gems/Util/Translated.php:99 -msgid "forever" -msgstr "altijd" - -#: classes/Gems/Util/Translated.php:108 -msgid "n/a" -msgstr "n.v.t." - -#: classes/Gems/Util/Translated.php:117 -msgid "never" -msgstr "nooit" - -#: classes/Gems/Util/Translated.php:126 -msgid "unknown" -msgstr "onbekend" - -#: classes/Gems/Util/Translated.php:142 -msgid "2 days ago" -msgstr "Eergisteren" - -#: classes/Gems/Util/Translated.php:145 -msgid "Yesterday" -msgstr "Gisteren" - -#: classes/Gems/Util/Translated.php:148 -msgid "Today" -msgstr "Vandaag" - -#: classes/Gems/Util/Translated.php:151 -msgid "Tomorrow" -msgstr "Morgen" - -#: classes/Gems/Util/Translated.php:154 -msgid "Over 2 days" -msgstr "Overmorgen" - -#: classes/Gems/Util/Translated.php:159 -#, php-format -msgid "Over %d days" -msgstr "Over %d dagen" - -#: classes/Gems/Util/Translated.php:161 -#, php-format -msgid "%d days ago" -msgstr "%d dagen terug" - -#: classes/Gems/Util/Translated.php:180 -msgid "Send multiple mails per respondent, one for each checked token." -msgstr "Verstuur meerdere emails per patiënt, één per gekozen kenmerk." - -#: classes/Gems/Util/Translated.php:181 -msgid "Send one mail per respondent, mark all checked tokens as send." -msgstr "Verstuur één email per patiënt, zet alle gekozen kenmerken op verzonden." - -#: classes/Gems/Util/Translated.php:182 -msgid "Send one mail per respondent, mark only mailed tokens as send." -msgstr "Verstuur één email per patiënt, zet alleen de verzonden kenmerken op verzonden." - -#: classes/Gems/Util/Translated.php:201 -msgid "Male" -msgstr "Man" - -#: classes/Gems/Util/Translated.php:201 -msgid "Female" -msgstr "Vrouw" - -#: classes/Gems/Util/Translated.php:201 -msgid "Unknown" -msgstr "Onbekend" - -#: classes/Gems/Util/Translated.php:206 -msgid "mr." -msgstr "meneer" - -#: classes/Gems/Util/Translated.php:206 -msgid "mrs." -msgstr "mevrouw" - -#: classes/Gems/Util/Translated.php:206 -msgid "mr./mrs." -msgstr "de heer/mevrouw" - -#: classes/Gems/Util/Translated.php:211 -msgid "Mr." -msgstr "De heer" - -#: classes/Gems/Util/Translated.php:211 -msgid "Mrs." -msgstr "Mevrouw" - -#: classes/Gems/Util/Translated.php:211 -msgid "Mr./Mrs." -msgstr "De heer/Mevrouw" - -#: classes/Gems/Util/Translated.php:229 -#: classes/Gems/Controller/BrowseEditAction.php:785 -msgid "No" -msgstr "Nee" - -#: classes/Gems/Util/Translated.php:229 -msgid "Yes (forget answers)" -msgstr "Ja (vergeet antwoorden)" - -#: classes/Gems/Util/Translated.php:229 -msgid "Yes (keep answers)" -msgstr "Ja (met behoud van antwoorden)" - -#: classes/Gems/Util/Translated.php:240 -#: classes/Gems/Controller/BrowseEditAction.php:784 -msgid "Yes" -msgstr "Ja" - -#: classes/Gems/Controller/ModelActionAbstract.php:97 -msgid "Cancel" -msgstr "Annuleren" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:181 -msgid "No data found." -msgstr "Geen gegevens gevonden." - -#: classes/Gems/Controller/BrowseEditAction.php:346 -#, php-format -msgid "New %s..." -msgstr "Nieuw %s..." - -#: classes/Gems/Controller/BrowseEditAction.php:378 -#, php-format -msgid "Delete %s" -msgstr "Verwijder %s" - -#: classes/Gems/Controller/BrowseEditAction.php:382 -#, php-format -msgid "%2$u %1$s deleted" -msgstr "%2$u %1$s verwijderd" - -#: classes/Gems/Controller/BrowseEditAction.php:396 -#, php-format -msgid "Edit %s" -msgstr "Bewerk %s" - -#: classes/Gems/Controller/BrowseEditAction.php:493 -msgid "Free search text" -msgstr "Vrije zoek tekst" - -#: classes/Gems/Controller/BrowseEditAction.php:564 -msgid "Search" -msgstr "Zoeken" - -#: classes/Gems/Controller/BrowseEditAction.php:580 -#, php-format -msgid "No %s found" -msgstr "Geen %s gevonden" - -#: classes/Gems/Controller/BrowseEditAction.php:653 -#, php-format -msgid "No %s found." -msgstr "Geen %s gevonden." - -#: classes/Gems/Controller/BrowseEditAction.php:768 -msgid "Are you sure?" -msgstr "Weet u het zeker?" - -#: classes/Gems/Controller/BrowseEditAction.php:838 -#, php-format -msgid "Unknown %s requested" -msgstr "Onjuist %s verzoek" - -#: classes/Gems/Controller/BrowseEditAction.php:861 -#, php-format -msgid "New %1$s..." -msgstr "Nieuwe %1$s..." - -#: classes/Gems/Controller/BrowseEditAction.php:869 -msgid "Save" -msgstr "Opslaan" - -#: classes/Gems/Controller/BrowseEditAction.php:905 -#, php-format -msgid "%2$u %1$s saved" -msgstr "%2$u %1$s opgeslagen" - -#: classes/Gems/Controller/BrowseEditAction.php:908 -msgid "No changes to save." -msgstr "Geen verandering om op te slaan." - -#: classes/Gems/Controller/BrowseEditAction.php:917 -msgid "Input error! No changes saved!" -msgstr "Invoer fout! Veranderingen niet opgeslagen!" - -#: classes/Gems/Controller/BrowseEditAction.php:945 -#, php-format -msgid "Show %s" -msgstr "Toon %s" - -#: classes/Gems/Controller/BrowseEditAction.php:952 -#, php-format -msgid "Unknown %s." -msgstr "%s is onbekend." - -#: classes/Gems/Email/MailTemplateForm.php:56 -msgid "Send (test)" -msgstr "Verstuur (test)" - -#: classes/Gems/Email/MailTemplateForm.php:81 -#: classes/Gems/Email/EmailFormAbstract.php:193 -#: classes/Gems/Email/EmailFormAbstract.php:250 -msgid "From" -msgstr "Van" - -#: classes/Gems/Email/MailTemplateForm.php:95 -msgid "Test using" -msgstr "Test met" - -#: classes/Gems/Email/MailTemplateForm.php:124 -msgid "To (test)" -msgstr "Aan (test)" - -#: classes/Gems/Email/MailTemplateForm.php:168 -msgid "Test mail send, changes not saved!" -msgstr "Test email verstuurd. De veranderingen zijn nog niet opgeslagen!" - -#: classes/Gems/Email/EmailFormAbstract.php:101 -msgid "no email adress" -msgstr "geen email adres" - -#: classes/Gems/Email/EmailFormAbstract.php:145 -msgid "Available fields" -msgstr "Beschikbare velden" - -#: classes/Gems/Email/EmailFormAbstract.php:153 -msgid "BBCode" -msgstr "BBCode" - -#: classes/Gems/Email/EmailFormAbstract.php:168 -msgid "Message" -msgstr "Bericht" - -#: classes/Gems/Email/EmailFormAbstract.php:216 -msgid "Organization does not have an e-mail address." -msgstr "Organisatie heeft geen email adres." - -#: classes/Gems/Email/EmailFormAbstract.php:231 -msgid "You do not have an e-mail address." -msgstr "U heeft geen email adres." - -#: classes/Gems/Email/EmailFormAbstract.php:289 -msgid "Preview HTML" -msgstr "Html voorbeeld" - -#: classes/Gems/Email/EmailFormAbstract.php:298 -msgid "Preview text" -msgstr "Tekstvoorbeeld" - -#: classes/Gems/Email/EmailFormAbstract.php:306 -msgid "Template" -msgstr "Sjabloon" - -#: classes/Gems/Email/EmailFormAbstract.php:330 -msgid "Send" -msgstr "Verstuur" - -#: classes/Gems/Email/EmailFormAbstract.php:347 -msgid "Subject" -msgstr "Onderwerp" - -#: classes/Gems/Email/EmailFormAbstract.php:427 -msgid "Input error! No changes made!" -msgstr "Invoer fout! Veranderingen niet uitgevoerd!" - -#: classes/Gems/Email/EmailFormAbstract.php:444 -msgid "Subject:" -msgstr "Onderwerp:" - -#: classes/Gems/Email/EmailFormAbstract.php:472 -msgid "Field" -msgstr "Veld" - -#: classes/Gems/Email/EmailFormAbstract.php:473 -msgid "Value" -msgstr "waarde" - -#: classes/Gems/Email/EmailFormAbstract.php:476 -msgid "BBCode info page" -msgstr "BBCode info pagina" - -#: classes/Gems/Email/OneMailForm.php:47 -#: classes/Gems/Email/MultiMailForm.php:49 -msgid "On this test system all mail will be delivered to the from address." -msgstr "Op dit test systeem worden alle emails gestuurd naar het \"van\" adres." - -#: classes/Gems/Email/OneMailForm.php:55 -msgid "Round" -msgstr "Ronde" - -#: classes/Gems/Email/OneMailForm.php:57 -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:705 -msgid "Survey" -msgstr "Vragenlijst" - -#: classes/Gems/Email/OneMailForm.php:58 -msgid "Last contact" -msgstr "Contactdatum" - -#: classes/Gems/Email/OneMailForm.php:87 -#: classes/Gems/Email/MultiMailForm.php:101 -msgid "To" -msgstr "Aan" - -#: classes/Gems/Email/OneMailForm.php:131 -#: classes/Gems/Email/TemplateMailer.php:217 -msgid "The sending of emails was blocked for this installation." -msgstr "Het versturen van emails is geblokkeerd in deze installatie." - -#: classes/Gems/Email/OneMailForm.php:140 -#: classes/Gems/Email/TemplateMailer.php:250 -msgid "Mail failed to send." -msgstr "Mail sturen mislukt." - -#: classes/Gems/Email/OneMailForm.php:144 -#, php-format -msgid "Sent email to %s." -msgstr "Email naar %s verzonden." - -#: classes/Gems/Email/TemplateMailer.php:266 -#, php-format -msgid "Sent %d e-mails, updated %d tokens." -msgstr "%d emails verzonden en %d kenmerken bijgewerkt." - -#: classes/Gems/Email/MultiMailForm.php:75 -msgid "Method" -msgstr "Methode" - -#: classes/Gems/Email/MultiMailForm.php:122 -msgid "Survey has been taken." -msgstr "Vragenlijsten is al afgenomen" - -#: classes/Gems/Email/MultiMailForm.php:125 -msgid "Respondent does not have an e-mail address." -msgstr "Patiënt heeft geen email adres" - -#: classes/Gems/Email/MultiMailForm.php:128 -msgid "Survey cannot be taken by a respondent." -msgstr "Deze vragenlijst kan niet door een patiënt ingevuld worden." - -#: classes/Gems/Email/MultiMailForm.php:130 -msgid "Survey cannot be taken at this moment." -msgstr "Deze vragenlijst kan op dit moment niet afgenomen worden." - -#: classes/Gems/Tracker/ChangeTracker.php:63 -#, php-format -msgid "Checked %d tracks." -msgstr "%d trajecten gecontroleerd." - -#: classes/Gems/Tracker/ChangeTracker.php:66 -#, php-format -msgid "Checked %d tokens." -msgstr "%d kenmerken gecontroleerd." - -#: classes/Gems/Tracker/ChangeTracker.php:71 -#, php-format -msgid "Answers changed by survey completion event for %d tokens." -msgstr "Bij %d kenmerken zijn de antwoorden aangepast door vragenlijst afrondingscode." - -#: classes/Gems/Tracker/ChangeTracker.php:74 -#, php-format -msgid "Results and timing changed for %d tokens." -msgstr "Bij %d kenmerken zijn de resultaten en/of de tijdstippen aangepast." - -#: classes/Gems/Tracker/ChangeTracker.php:77 -#, php-format -msgid "%d token round completion events caused changed to %d tokens." -msgstr "%2$d kenmerken zijn aangepast vanwege %1$d ronde voltooiingen." - -#: classes/Gems/Tracker/ChangeTracker.php:80 -#, php-format -msgid "%2$d token date changes in %1$d tracks." -msgstr "De datum van %2$d kenmerken is aangepast in %1$d trajecten." - -#: classes/Gems/Tracker/ChangeTracker.php:83 -#, php-format -msgid "Round changes propagated to %d tokens." -msgstr "%d kenmerken veranderd door ronde aanpassingen." - -#: classes/Gems/Tracker/ChangeTracker.php:86 -#, php-format -msgid "%d tokens created to by round changes." -msgstr "Vanwege ronde aanpassingen zijn nieuwe %d kenmerken gecreëerd." - -#: classes/Gems/Tracker/ChangeTracker.php:89 -msgid "No tokens were changed." -msgstr "Geen kenmerken veranderd." - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:365 -msgid "Track start" -msgstr "Traject start" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:366 -msgid "Track end" -msgstr "Traject einde" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:380 -msgid "Valid from" -msgstr "Geldig vanaf" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:381 -msgid "Valid until" -msgstr "Geldig tot" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:382 -msgid "Start time" -msgstr "Starten tijd" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:383 -msgid "Completion time" -msgstr "Datum invullen" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:398 -msgid "Minutes" -msgstr "Minuten" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:399 -msgid "Hours" -msgstr "Uren" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:400 -msgid "Days" -msgstr "Dagen" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:401 -msgid "Weeks" -msgstr "Weken" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:402 -msgid "Months" -msgstr "Maanden" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:403 -msgid "Quarters" -msgstr "Kwartieren" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:404 -msgid "Years" -msgstr "Jaren" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:438 -msgid "Valid from calculation" -msgstr "Berekening datum geldig vanaf" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:439 -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:447 -msgid "Date source" -msgstr "Datum bron" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:440 -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:448 -msgid "Round used" -msgstr "Gebruikte ronde" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:441 -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:449 -msgid "Date used" -msgstr "Gebruikte datum" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:442 -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:450 -msgid "Add to date" -msgstr "Optellen bij datum" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:443 -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:451 -msgid "Add to date unit" -msgstr "Datumoptel eenheid" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:446 -msgid "Valid for calculation" -msgstr "Berekening datum geldig tot" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:480 -msgid "Does not expire" -msgstr "Blijft altijd geldig" - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:483 -msgid "Use an answer from a survey." -msgstr "Gebruikt een antwoord uit een vragenlijst." - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:484 -msgid "Use a standard token date." -msgstr "Gebruik een datum uit een kenmerk." - -#: classes/Gems/Tracker/Engine/StepEngineAbstract.php:486 -msgid "Use a track level date." -msgstr "Gebruik een op traject niveau ingestelde datum." - -#: classes/Gems/Tracker/Engine/AnyStepEngine.php:95 -msgid "This round" -msgstr "Deze ronde" - -#: classes/Gems/Tracker/Engine/AnyStepEngine.php:106 -msgid "Engine for tracks where a rounds activation can depend on any previous survey." -msgstr "Een traject type waar de activatie van een ronde van elke willekeurige eerdere ronde afhankelijk kan zijn." - -#: classes/Gems/Tracker/Engine/AnyStepEngine.php:116 -msgid "Previous Survey" -msgstr "Eerdere vragenlijst" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:414 -#, php-format -msgid "%s track engines cannot be converted to %s track engines." -msgstr "Traject type %s kan niet geconverteerd worden naar %s." - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:657 -#, php-format -msgid "%d: %s - %s" -msgstr "%d: %s - %s" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:660 -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:663 -#, php-format -msgid "%d: %s" -msgstr "%d: %s" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:666 -#, php-format -msgid "%s - %s" -msgstr "%s - %s" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:706 -msgid "Order" -msgstr "Volgorde" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:707 -msgid "Description" -msgstr "Omschrijving" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:708 -msgid "After change" -msgstr "Ronde veranderingscode" - -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:709 -msgid "Active" -msgstr "Actief" - -#: classes/Gems/Tracker/Engine/SingleSurveyEngine.php:117 -msgid "Engine for tracks containing a single survey." -msgstr "Een traject type voor trajecten die bestaan uit een enkele vragenlijst." - -#: classes/Gems/Tracker/Engine/SingleSurveyEngine.php:127 -msgid "Single Survey" -msgstr "Losse vragenlijst" - -#: classes/Gems/Tracker/Engine/SingleSurveyEngine.php:149 -msgid "This track type does not allow the creation of new rounds." -msgstr "Dit type traject staat het niet toe dat nieuwe rondes aangemaakt worden." - -#: classes/Gems/Tracker/Engine/NextStepEngine.php:147 -msgid "Engine for tracks where the next round is always dependent on the previous step." -msgstr "Een traject type waar de activatie van een volgende ronde alleen afhangt van de ronde ervoor." - -#: classes/Gems/Tracker/Engine/NextStepEngine.php:158 -msgid "Next Step" -msgstr "Stap voor stap" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:209 -msgid "Measure(d) on" -msgstr "Afname op" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:212 -msgid "Completed" -msgstr "Ingevuld" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:213 -msgid "Duration in seconds" -msgstr "Antwoordtijd (in sec.)" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:214 -msgid "Score" -msgstr "Score" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:215 -msgid "Comments" -msgstr "Opmerkingen" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:216 -msgid "Changed on" -msgstr "Veranderd op" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:219 -msgid "Assigned by" -msgstr "Toewijzer" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:220 -msgid "Respondent name" -msgstr "Patiënt naam" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:223 -msgid "Assigned to" -msgstr "invuller" - -#: classes/Gems/Tracker/Model/StandardTokenModel.php:224 -msgid "Rejection code" -msgstr "Afkeuringscode" - -#: classes/Gems/Tracker/Model/TrackModel.php:107 -msgid "Track Engine" -msgstr "Traject type" - -#: classes/Gems/Tracker/Model/TrackModel.php:112 -msgid "Use until" -msgstr "Geldig tot" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:149 -msgid "Uncertain" -msgstr "Weet niet" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:152 -msgid "Increase" -msgstr "Toenemend" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:153 -msgid "Same" -msgstr "Zelfde" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:154 -msgid "Decrease" -msgstr "Afnemend" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:162 -msgid "Checked" -msgstr "Aangevinkt" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:163 -msgid "Not checked" -msgstr "Niet aangevinkt" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:258 -#, php-format -msgid "Rank %d" -msgstr "Schaal %d" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:277 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:300 -msgid "Comment" -msgstr "Opmerkingen" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:277 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:300 -msgid " (comment)" -msgstr "(opmerkingen)" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:289 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:338 -msgid "Other" -msgstr "Overige" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:472 -msgid "Date" -msgstr "Datum" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:475 -msgid "Free number" -msgstr "Vrij getal" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:481 -msgid "Free text (long)" -msgstr "Vrije tekst (lang)" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:484 -msgid "Free text (very long)" -msgstr "Vrije tekst (zeer lang)" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:487 -msgid "Free text" -msgstr "Vrije tekst" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:623 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:680 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:735 -#, php-format -msgid "%s: %s" -msgstr "%s: %s" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:755 -#, php-format -msgid "- %s" -msgstr "- %s" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:507 -msgid "Submitdate" -msgstr "Invoerdatum" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:883 -#, php-format -msgid "Updated %d Gems tokens to new token definition." -msgstr "%d Gems kenmerken zijn aangepast aan de nieuwe kenmerk definitie." - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:903 -#, php-format -msgid "The '%s' survey is no longer active. The survey was removed from LimeSurvey!" -msgstr "De vragenlijst '%s' is niet meer actief. De vragenlijst is verwijderd uit LimeSurvey!" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1020 -#, php-format -msgid "Updated %d token to new token definition in survey '%s'." -msgid_plural "Updated %d tokens to new token definition in survey '%s'." -msgstr[0] "%d kenmerk in de vragenlijst '%s' is aangepast aan de nieuwe kenmerk definitie." -msgstr[1] "%d kenmerken in de vragenlijst '%s' zijn aangepast aan de nieuwe kenmerk definitie." - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1038 -#, php-format -msgid "The status of the '%s' survey has changed." -msgstr "De status van de vragenlijst '%s' is veranderd." - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1044 -#, php-format -msgid "Survey '%s' IS NO LONGER ACTIVE!!!" -msgstr "De vragenlijst '%s' IS NIET MEER ACTIEF!!!" - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1050 -#, php-format -msgid "The status of the '%s' survey has changed to '%s'." -msgstr "De status van de vragenlijst '%s' is veranderd naar '%s'." - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1053 -#, php-format -msgid "The status warning for the '%s' survey was removed." -msgstr "De status waarschuwing voor de vragenlijst '%s' is verdwenen." - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1059 -#, php-format -msgid "The name of the '%s' survey has changed to '%s'." -msgstr "De naam van de vragenlijst '%s' is veranderd in '%s'." - -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1069 -#, php-format -msgid "Imported the '%s' survey." -msgstr "De vragenlijst '%s' is geïmporteerd." - -#: classes/Gems/Tracker/Snippets/ShowTokenSnippetAbstract.php:164 -#: classes/Gems/Tracker/Snippets/EditTokenSnippetAbstract.php:124 -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:223 -#, php-format -msgid "Token %s not found." -msgstr "Kenmerk %s niet gevonden" - -#: classes/Gems/Tracker/Snippets/ShowTokenSnippetAbstract.php:168 -#: classes/Gems/Tracker/Snippets/EditTokenSnippetAbstract.php:128 -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:227 -msgid "No token specified." -msgstr "Geen kenmerk opgegeven." - -#: classes/Gems/Tracker/Snippets/ShowTrackUsageAbstract.php:149 -msgid "Enter the particulars concerning the assignment to this respondent." -msgstr "Beschrijf de redenen om dit aan deze patiënt toe te wijzen." - -#: classes/Gems/Tracker/Snippets/ShowTrackUsageAbstract.php:151 -#: classes/Gems/Tracker/Snippets/EditTrackSnippetAbstract.php:152 -msgid "Start" -msgstr "Aanvang" - -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:132 -#, php-format -msgid "%s round" -msgstr "%s ronde" - -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:144 -msgid "No round specified." -msgstr "Geen ronde opgegeven." - -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:163 -msgid "< Previous" -msgstr "< Terug" - -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:168 -msgid "Next >" -msgstr "Verder >" - -#: classes/Gems/Tracker/Snippets/EditTokenSnippetAbstract.php:141 -msgid "token" -msgid_plural "tokens" -msgstr[0] "kenmerk" -msgstr[1] "kenmerken" - -#: classes/Gems/Tracker/Snippets/EditSingleSurveyTokenSnippetAbstract.php:157 -msgid "survey" -msgid_plural "surveys" -msgstr[0] "vragenlijst" -msgstr[1] "vragenlijsten" - -#: classes/Gems/Tracker/Snippets/EditSingleSurveyTokenSnippetAbstract.php:179 -msgid "Add survey" -msgstr "Vragenlijst toevoegen" - -#: classes/Gems/Tracker/Snippets/EditTrackSnippetAbstract.php:169 -msgid "track" -msgid_plural "tracks" -msgstr[0] "traject" -msgstr[1] "trajecten" - -#: classes/Gems/Tracker/Snippets/EditTrackSnippetAbstract.php:179 -#: classes/Gems/Tracker/Snippets/EditTrackSnippetAbstract.php:229 -msgid "Add track" -msgstr "Voeg traject toe" - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:134 -msgid "Status" -msgstr "Status" - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:135 -msgid "OK" -msgstr "OK" - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:138 -msgid "Question" -msgstr "Vraag" - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:207 -#, php-format -msgid "%s answers for patient number %s" -msgstr "%s antwoorden voor patientnummer %s" - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:210 -#, php-format -msgid "Answers for token %s, patient number %s: %s." -msgstr "Antwoorden voor kenmerk %s, patientnummer %s: %s." - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:232 -msgid "Close" -msgstr "Sluiten" - -#: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:233 -msgid "Print" -msgstr "Afdrukken" - -#: classes/Gems/Tracker/Snippets/EditRoundSnippetAbstract.php:119 -msgid "round" -msgid_plural "rounds" -msgstr[0] "ronde" -msgstr[1] "rondes" - -#: classes/Gems/Tracker/Snippets/EditRoundSnippetAbstract.php:129 -msgid "Add new round" -msgstr "Nieuwe ronde toevoegen" - -#: classes/Gems/Menu/SubMenuItem.php:355 -msgid "New" -msgstr "Nieuw" - -#: classes/Gems/Menu/SubMenuItem.php:409 -msgid "Export the current data set to Excel" -msgstr "Exporteer de huidige gegevens naar Excel" - -#: classes/Gems/Menu/SubMenuItem.php:413 -msgid "Excel export" -msgstr "Excel export" - -#: classes/Gems/Menu/MenuAbstract.php:243 -msgid "Activity log" -msgstr "Activiteit" - -#: classes/Gems/Menu/MenuAbstract.php:249 -msgid "Automatic mail" -msgstr "Automatische mail" - -#: classes/Gems/Menu/MenuAbstract.php:250 -msgid "Turn Automatic Mail Jobs OFF" -msgstr "Automatische mail opdrachten UITzetten" - -#: classes/Gems/Menu/MenuAbstract.php:251 -msgid "Run" -msgstr "Uitvoeren" - -#: classes/Gems/Menu/MenuAbstract.php:254 -msgid "Servers" -msgstr "Servers" - -#: classes/Gems/Menu/MenuAbstract.php:258 -msgid "Templates" -msgstr "Sjablonen" - -#: classes/Gems/Menu/MenuAbstract.php:290 -msgid "By period" -msgstr "Per periode" - -#: classes/Gems/Menu/MenuAbstract.php:291 -msgid "By token" -msgstr "Per kenmerk" - -#: classes/Gems/Menu/MenuAbstract.php:292 -msgid "By respondent" -msgstr "Per patiënt" - -#: classes/Gems/Menu/MenuAbstract.php:296 -msgid "Bulk mail" -msgstr "Bulk mail" - -#: classes/Gems/Menu/MenuAbstract.php:314 -msgid "Errors" -msgstr "Foutmeldingen" - -#: classes/Gems/Menu/MenuAbstract.php:315 -msgid "PHP" -msgstr "PHP" - -#: classes/Gems/Menu/MenuAbstract.php:317 -msgid "Session" -msgstr "Sessie" - -#: classes/Gems/Menu/MenuAbstract.php:318 -msgid "Maintenance mode" -msgstr "Onderhoudsmodus" - -#: classes/Gems/Menu/MenuAbstract.php:319 -msgid "Clean cache" -msgstr "Cache opruimen" - -#: classes/Gems/Menu/MenuAbstract.php:408 -msgid "Survey Sources" -msgstr "Bronnen" - -#: classes/Gems/Menu/MenuAbstract.php:410 -msgid "Check status" -msgstr "Status controle" - -#: classes/Gems/Menu/MenuAbstract.php:411 -msgid "Synchronize surveys" -msgstr "Synchroniseer vragenlijsten" - -#: classes/Gems/Menu/MenuAbstract.php:412 -#: classes/Gems/Menu/MenuAbstract.php:423 -msgid "Check answers" -msgstr "Antwoord controle" - -#: classes/Gems/Menu/MenuAbstract.php:413 -msgid "Synchronize all surveys" -msgstr "Synchroniseer alle vragenlijsten" - -#: classes/Gems/Menu/MenuAbstract.php:414 -#: classes/Gems/Menu/MenuAbstract.php:424 -msgid "Check all answers" -msgstr "Controleer alle antwoorden" - -#: classes/Gems/Menu/MenuAbstract.php:420 -msgid "PDF" -msgstr "PDF" - -#: classes/Gems/Menu/MenuAbstract.php:432 -msgid "Fields" -msgstr "Velden" - -#: classes/Gems/Menu/MenuAbstract.php:439 -msgid "Rounds" -msgstr "Rondes" - -#: classes/Gems/Menu/MenuAbstract.php:454 -msgid "Check assignments" -msgstr "Controleer toewijzingen" - -#: classes/Gems/Menu/MenuAbstract.php:457 -msgid "Check all assignments" -msgstr "Controleer alle toewijzingen" - -#: classes/Gems/Selector/DateSelectorAbstract.php:309 -msgid "<<" -msgstr "<<" - -#: classes/Gems/Selector/DateSelectorAbstract.php:311 -msgid ">>" -msgstr ">>" - -#: classes/Gems/Selector/DateSelectorAbstract.php:315 -msgid "<" -msgstr "<" - -#: classes/Gems/Selector/DateSelectorAbstract.php:317 -msgid ">" -msgstr ">" - -#: classes/Gems/Selector/DateSelectorAbstract.php:320 -msgid "Now!" -msgstr "Nu!" - -#: classes/Gems/Selector/DateSelectorAbstract.php:360 -msgid "Show by day" -msgstr "Toon per dag" - -#: classes/Gems/Selector/DateSelectorAbstract.php:361 -msgid "Show by week" -msgstr "Toon per weerk" - -#: classes/Gems/Selector/DateSelectorAbstract.php:362 -msgid "Show by month" -msgstr "Toon per maand" - -#: classes/Gems/Selector/DateSelectorAbstract.php:363 -msgid "Show by year" -msgstr "Toon per jaar" - -#: classes/Gems/Selector/DateSelectorAbstract.php:370 -msgid "D" -msgstr "D" - -#: classes/Gems/Selector/DateSelectorAbstract.php:371 -msgid "W" -msgstr "W" - -#: classes/Gems/Selector/DateSelectorAbstract.php:372 -msgid "M" -msgstr "M" - -#: classes/Gems/Selector/DateSelectorAbstract.php:373 -msgid "Y" -msgstr "J" - -#: classes/Gems/Selector/DateSelectorAbstract.php:605 -msgid "Period" -msgstr "Periode" - -#: classes/Gems/Selector/DateSelectorAbstract.php:633 -#, php-format -msgid "week %s" -msgstr "week %s" - -#: classes/Gems/Selector/TokenDateSelector.php:82 -#: classes/Gems/Selector/TokenByGroupDateSelector.php:83 -msgid "for respondents" -msgstr "voor patiënten" - -#: classes/Gems/Selector/TokenDateSelector.php:83 -#: classes/Gems/Selector/TokenByGroupDateSelector.php:84 -msgid "for staff" -msgstr "voor medewerkers" - -#: classes/Gems/Selector/TokenDateSelector.php:86 -msgid "Activated surveys" -msgstr "Geactiveerde vragenlijsten" - -#: classes/Gems/Selector/TokenDateSelector.php:90 -msgid "Unanswered surveys" -msgstr "Onbeantwoorde vragenlijsten" - -#: classes/Gems/Selector/TokenDateSelector.php:94 -#: classes/Gems/Selector/TokenByGroupDateSelector.php:109 -msgid "Partially completed" -msgstr "Gedeeltelijk ingevoerd" - -#: classes/Gems/Selector/TokenDateSelector.php:103 -msgid "Expired surveys" -msgstr "Verlopen vragenlijsten" - -#: classes/Gems/Selector/TokenDateSelector.php:107 -msgid "Answered surveys" -msgstr "Beantwoorde vragenlijsten" - -#: classes/Gems/Selector/TokenByGroupDateSelector.php:87 -msgid "Tokens" -msgstr "Kenmerken" - -#: classes/Gems/Selector/TokenByGroupDateSelector.php:99 -msgid "Todo" -msgstr "Te doen" - -#: classes/Gems/Selector/TokenByGroupDateSelector.php:119 -msgid "Time left in days - average" -msgstr "Tijd over in dagen - gemiddeld" - -#: classes/Gems/Selector/TokenByGroupDateSelector.php:122 -msgid "least time left" -msgstr "de minste tijd over" - -#: classes/Gems/Selector/TokenByGroupDateSelector.php:125 -msgid "most time left" -msgstr "de meeste tijd over" - -#: classes/Gems/Selector/TokenByGroupDateSelector.php... [truncated message content] |
From: <gem...@li...> - 2011-11-28 10:49:58
|
Revision: 294 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=294&view=rev Author: matijsdejong Date: 2011-11-28 10:49:52 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Organizations can now be told they have respondents/ Modified Paths: -------------- trunk/library/classes/Gems/Default/RespondentAction.php trunk/library/classes/Gems/User/Organization.php Modified: trunk/library/classes/Gems/Default/RespondentAction.php =================================================================== --- trunk/library/classes/Gems/Default/RespondentAction.php 2011-11-28 10:41:05 UTC (rev 293) +++ trunk/library/classes/Gems/Default/RespondentAction.php 2011-11-28 10:49:52 UTC (rev 294) @@ -176,6 +176,11 @@ public function afterSave(array $data, $isNew) { + if ($isNew) { + // Tell the organization it has at least one user + $org = $this->loader->getOrganization($data['gr2o_id_organization']); + $org->setHasRespondents($data['grs_id_user']); + } $this->openedRespondent($data['gr2o_patient_nr'], $data['gr2o_id_organization'], $data['grs_id_user']); return true; } Modified: trunk/library/classes/Gems/User/Organization.php =================================================================== --- trunk/library/classes/Gems/User/Organization.php 2011-11-28 10:41:05 UTC (rev 293) +++ trunk/library/classes/Gems/User/Organization.php 2011-11-28 10:49:52 UTC (rev 294) @@ -281,10 +281,42 @@ return $this->_organizationData['gor_welcome']; } + /** + * Empty the cache of the organization + * + * @return Gems_User_Organization (continutation pattern) + */ public function invalidateCache() { if ($this->cache) { $cacheId = $this->_getCacheId(); $this->cache->remove($cacheId); } + return $this; } + + /** + * Tell the organization there is at least one respondent attached to it. + * + * Does nothing if this is already known. + * + * @param int $userId The current user + * @return Gems_User_Organization (continutation pattern) + */ + public function setHasRespondents($userId) + { + if (0 == $this->_organizationData['gor_has_respondents']) { + $this->_organizationData['gor_has_respondents'] = 1; + + $values['gor_has_respondents'] = 1; + $values['gor_changed'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); + $values['gor_changed_by'] = $userId; + + $where = $this->db->quoteInto('gor_id_organization = ?', $this->_organizationId); + + $this->db->update('gems__organizations', $values, $where); + $this->invalidateCache(); + } + + return $this; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 10:41:11
|
Revision: 293 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=293&view=rev Author: michieltcs Date: 2011-11-28 10:41:05 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Fixes #383 - change weeks>months conversion, fix undefined offset Modified Paths: -------------- trunk/library/classes/MUtil/Date.php Modified: trunk/library/classes/MUtil/Date.php =================================================================== --- trunk/library/classes/MUtil/Date.php 2011-11-28 08:53:48 UTC (rev 292) +++ trunk/library/classes/MUtil/Date.php 2011-11-28 10:41:05 UTC (rev 293) @@ -207,7 +207,7 @@ $difference = $date->getUnixTimeStamp() - $this->getUnixTimestamp(); //second, minute, hour, day, week, month, year, decade - $lengths = array("60", "60", "24", "7", "4.35", "12", "10"); + $lengths = array("60", "60", "24", "7", "4.34", "12", "10"); if ($difference > 0) { // this was in the past $ending = $translate->_("%s ago"); @@ -215,11 +215,11 @@ $difference = -$difference; $ending = $translate->_("%s to go"); } - - for ($j = 0; $difference >= $lengths[$j] && $j<8; $j++) { + + for ($j = 0; $j < 7 && $difference >= $lengths[$j]; $j++) { $difference /= $lengths[$j]; } - + $difference = round($difference); switch ($j) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 08:53:57
|
Revision: 292 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=292&view=rev Author: michieltcs Date: 2011-11-28 08:53:48 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Use Gems_Menu_ParameterSource object Modified Paths: -------------- trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php Modified: trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php =================================================================== --- trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php 2011-11-28 08:53:21 UTC (rev 291) +++ trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php 2011-11-28 08:53:48 UTC (rev 292) @@ -155,17 +155,17 @@ $links = $this->menu->getMenuList(); $links->addParameterSources($this->request, $this->menu->getParameterSource()); - $linkData = array( + $source = new Gems_Menu_ParameterSource(array( 'gro_id_track' => $this->trackId, 'gro_id_round' => $this->trackEngine->getPreviousRoundId($this->roundId), - 'gtr_track_type' => $this->trackEngine->getTrackType()); + 'gtr_track_type' => $this->trackEngine->getTrackType())); - $links->append($this->menu->getCurrent()->toActionLink(true, MUtil_Html::raw($this->_('< Previous')), $linkData)); + $links->append($this->menu->getCurrent()->toActionLink(true, MUtil_Html::raw($this->_('< Previous')), $source)); $links->addCurrentParent($this->_('Cancel')); $links->addCurrentSiblings(); - $linkData['gro_id_round'] = $this->trackEngine->getNextRoundId($this->roundId); - $links->append($this->menu->getCurrent()->toActionLink(true, MUtil_Html::raw($this->_('Next >')), $linkData)); + $source->offsetSet('gro_id_round', $this->trackEngine->getNextRoundId($this->roundId)); + $links->append($this->menu->getCurrent()->toActionLink(true, MUtil_Html::raw($this->_('Next >')), $source)); return $links; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-28 08:53:30
|
Revision: 291 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=291&view=rev Author: michieltcs Date: 2011-11-28 08:53:21 +0000 (Mon, 28 Nov 2011) Log Message: ----------- Fix indenting Modified Paths: -------------- trunk/library/classes/Gems/Menu/ParameterCollector.php Modified: trunk/library/classes/Gems/Menu/ParameterCollector.php =================================================================== --- trunk/library/classes/Gems/Menu/ParameterCollector.php 2011-11-25 16:24:09 UTC (rev 290) +++ trunk/library/classes/Gems/Menu/ParameterCollector.php 2011-11-28 08:53:21 UTC (rev 291) @@ -70,14 +70,14 @@ * @param mixed $default * @return mixed */ - public function getMenuParameter($name, $altname = null) - { - if (array_key_exists($name, $this->values)) { - return $this->values[$name]; - } + public function getMenuParameter($name, $altname = null) + { + if (array_key_exists($name, $this->values)) { + return $this->values[$name]; + } - $this->values[$name] = null; - foreach ($this->sources as $source) { + $this->values[$name] = null; + foreach ($this->sources as $source) { if ($source instanceof Zend_Controller_Request_Abstract) { $value = $source->getParam($name, null); if (null === $value) { @@ -99,7 +99,7 @@ if (null !== $this->values[$name]) { break; } - } - return $this->values[$name]; - } + } + return $this->values[$name]; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-25 16:24:22
|
Revision: 290 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=290&view=rev Author: michieltcs Date: 2011-11-25 16:24:09 +0000 (Fri, 25 Nov 2011) Log Message: ----------- Change translation of 'lost password' Modified Paths: -------------- trunk/library/languages/default-nl.mo trunk/library/languages/default-nl.po Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2011-11-25 16:12:43 UTC (rev 289) +++ trunk/library/languages/default-nl.po 2011-11-25 16:24:09 UTC (rev 290) @@ -1,4515 +1,4489 @@ -msgid "" -msgstr "" -"Project-Id-Version: Pulse NL\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-25 17:06+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: Matijs de Jong <mj...@ma...>\n" -"Language-Team: Erasmus MGZ <mat...@ma...>\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Language: \n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" -"X-Poedit-Language: Dutch\n" -"X-Poedit-Country: NETHERLANDS\n" -"X-Poedit-SourceCharset: iso-8859-1\n" -"X-Poedit-Basepath: ../\n" -"X-Poedit-KeywordsList: plural:1,2\n" -"X-Poedit-SearchPath-0: .\n" - -#: classes/GemsEscort.php:207 -#, php-format -msgid "Path %s not writable" -msgstr "Path %s niet schrijfbaar" - -#: classes/GemsEscort.php:891 -#, php-format -msgid "User: %s" -msgstr "Login: %s" - -#: classes/GemsEscort.php:916 -msgid "version" -msgstr "versie" - -#: classes/GemsEscort.php:1347 -msgid "Take note: your session has expired, your inputs were not saved. Please check the input data and try again" -msgstr "Let op: uw sessie is verlopen, uw invoer is niet opgeslagen. Controleer uw gegevens en probeer a.u.b. opnieuw." - -#: classes/GemsEscort.php:1474 -msgid "Please check back later." -msgstr "Probeer het later opnieuw." - -#: classes/GemsEscort.php:1476 -#: classes/GemsEscort.php:1480 -#: classes/GemsEscort.php:1481 -msgid "System is in maintenance mode" -msgstr "Systeem is in onderhoudsmodus" - -#: classes/GemsEscort.php:1491 -msgid "No access to site." -msgstr "Geen toegang tot website." - -#: classes/GemsEscort.php:1493 -#: classes/GemsEscort.php:1529 -msgid "You have no access to this site." -msgstr "U heeft geen toegang tot deze website." - -#: classes/GemsEscort.php:1509 -msgid "No access to page" -msgstr "Geen toegang tot pagina" - -#: classes/GemsEscort.php:1511 -#, php-format -msgid "Access to this page is not allowed for current role: %s." -msgstr "U heeft geen toegang tot deze pagina. Uw huidige rol is: %s." - -#: classes/GemsEscort.php:1516 -#: classes/GemsEscort.php:1527 -msgid "You are no longer logged in." -msgstr "U bent niet meer ingelogd." - -#: classes/GemsEscort.php:1517 -msgid "You must login to access this page." -msgstr "U moet ingelogd zijn voor toegang tot deze pagina." - -#: classes/Gems/AccessLog.php:239 -msgid "Database needs to be updated!" -msgstr "Database dient ververst te worden!" - -#: classes/Gems/Auth.php:241 -msgid "Combination of organization, username and password not found." -msgstr "Combinatie van organisatie, gebruikersnaam en wachtwoord niet gevonden." - -#: classes/Gems/Html.php:154 -msgid "<< First" -msgstr "<< Eerste" - -#: classes/Gems/Html.php:155 -msgid "< Previous" -msgstr "< Terug" - -#: classes/Gems/Html.php:156 -msgid "Next >" -msgstr "Verder >" - -#: classes/Gems/Html.php:157 -msgid "Last >>" -msgstr "Laatste >>" - -#: classes/Gems/Html.php:158 -msgid " | " -msgstr " | " - -#: classes/Gems/Html.php:162 -msgid "to" -msgstr "tot" - -#: classes/Gems/Html.php:163 -msgid "of" -msgstr "van" - -#: classes/Gems/Menu.php:139 -#, php-format -msgid "About %s" -msgstr "Over %s" - -#: classes/Gems/Menu.php:143 -msgid "Reporting bugs" -msgstr "Meld een bug" - -#: classes/Gems/Menu.php:146 -msgid "Support" -msgstr "Ondersteuning" - -#: classes/Gems/Menu.php:166 -msgid "Project setup" -msgstr "Projectinfo" - -#: classes/Gems/Menu.php:169 -msgid "Database" -msgstr "Database" - -#: classes/Gems/Menu.php:173 -msgid "Content" -msgstr "Inhoud" - -#: classes/Gems/Menu.php:176 -msgid "Execute" -msgstr "Uitvoeren" - -#: classes/Gems/Menu.php:181 -msgid "Patches" -msgstr "Patches" - -#: classes/Gems/Menu.php:182 -msgid "Execute new" -msgstr "Nieuwe aanmaken" - -#: classes/Gems/Menu.php:184 -msgid "Refresh translateables" -msgstr "Ververs vertaalbaren" - -#: classes/Gems/Menu.php:186 -msgid "Run SQL" -msgstr "SQL uitvoeren" - -#: classes/Gems/Menu.php:189 -msgid "Reception codes" -msgstr "Ontvangst codes" - -#: classes/Gems/Menu.php:192 -msgid "Consents" -msgstr "Toestemmingen" - -#: classes/Gems/Menu.php:195 -msgid "Roles" -msgstr "Rollen" - -#: classes/Gems/Menu.php:196 -#: classes/Gems/Menu.php:345 -msgid "Assigned" -msgstr "Toegewezen" - -#: classes/Gems/Menu.php:197 -msgid "Privileges" -msgstr "Priviléges" - -#: classes/Gems/Menu.php:200 -msgid "Groups" -msgstr "Groepen" - -#: classes/Gems/Menu.php:203 -msgid "Organizations" -msgstr "Organisaties" - -#: classes/Gems/Menu.php:206 -msgid "Staff" -msgstr "Medewerkers" - -#: classes/Gems/Menu.php:209 -msgid "Logging" -msgstr "Logboek" - -#: classes/Gems/Menu.php:213 -msgid "Maintenance" -msgstr "Onderhoud" - -#: classes/Gems/Menu.php:218 -msgid "Upgrade" -msgstr "Upgrade" - -#: classes/Gems/Menu.php:219 -#: classes/Gems/Menu.php:318 -msgid "Show" -msgstr "Toon" - -#: classes/Gems/Menu.php:220 -msgid "Execute all" -msgstr "Alles uitvoeren" - -#: classes/Gems/Menu.php:221 -msgid "Execute this" -msgstr "Dit uitvoeren" - -#: classes/Gems/Menu.php:222 -msgid "Execute from here" -msgstr "Uitvoeren vanaf hier" - -#: classes/Gems/Menu.php:223 -msgid "Execute to here" -msgstr "Uitvoeren tot hier" - -#: classes/Gems/Menu.php:235 -#, php-format -msgid "Stand-alone privilige: %s" -msgstr "Zelfstandig privilege: %s" - -#: classes/Gems/Menu.php:242 -msgid "Logon" -msgstr "Login" - -#: classes/Gems/Menu.php:243 -msgid "Lost password" -msgstr "Wachtwoord zoek" - -#: classes/Gems/Menu.php:244 -msgid "Your account" -msgstr "Uw account" - -#: classes/Gems/Menu.php:245 -msgid "Activity overview" -msgstr "Activiteiten overzicht" - -#: classes/Gems/Menu.php:246 -msgid "Change password" -msgstr "Uw wachtwoord" - -#: classes/Gems/Menu.php:247 -#: classes/Gems/Menu.php:287 -#: classes/Gems/Menu.php:322 -msgid "Token" -msgstr "Kenmerk" - -#: classes/Gems/Menu.php:248 -msgid "Logoff" -msgstr "Uitloggen" - -#: classes/Gems/Menu.php:283 -msgid "Track" -msgstr "Traject" - -#: classes/Gems/Menu.php:290 -#: classes/Gems/Menu.php:310 -#: classes/Gems/Menu.php:341 -msgid "Add" -msgstr "Voeg toe" - -#: classes/Gems/Menu.php:294 -#: classes/Gems/Menu.php:377 -msgid "Preview" -msgstr "Preview" - -#: classes/Gems/Menu.php:301 -msgid "Tracks" -msgstr "Trajecten" - -#: classes/Gems/Menu.php:314 -msgid "Assignments" -msgstr "Toewijzingen" - -#: classes/Gems/Menu.php:326 -msgid "Edit" -msgstr "Wijzig" - -#: classes/Gems/Menu.php:330 -msgid "Delete" -msgstr "Verwijder" - -#: classes/Gems/Menu.php:335 -msgid "Surveys" -msgstr "Vragenlijsten" - -#: classes/Gems/Menu.php:367 -msgid "Fill in" -msgstr "Vul in" - -#: classes/Gems/Menu.php:371 -msgid "Print PDF" -msgstr "Print PDF" - -#: classes/Gems/Menu.php:374 -msgid "E-Mail now!" -msgstr "Email nu!" - -#: classes/Gems/Menu.php:380 -msgid "Answers" -msgstr "Antwoorden" - -#: classes/Gems/Menu.php:518 -msgid "Respondents" -msgstr "Patiënten" - -#: classes/Gems/Menu.php:526 -msgid "Overview" -msgstr "Overzicht" - -#: classes/Gems/Menu.php:533 -msgid "Project" -msgstr "Project" - -#: classes/Gems/Menu.php:536 -msgid "Setup" -msgstr "Beheer" - -#: classes/Gems/Menu.php:539 -msgid "Mail" -msgstr "Email" - -#: classes/Gems/Menu.php:542 -msgid "Track Builder" -msgstr "Traject bouwer" - -#: classes/Gems/Menu.php:551 -msgid "Contact" -msgstr "Contact" - -#: classes/Gems/Menu.php:564 -msgid "Changelog" -msgstr "Changelog" - -#: classes/Gems/Model.php:193 -msgid "Respondent nr" -msgstr "Patiënt nr" - -#: classes/Gems/Model.php:194 -msgid "Opened" -msgstr "Bekeken" - -#: classes/Gems/Model.php:195 -msgid "Consent" -msgstr "Toestemming" - -#: classes/Gems/Model.php:197 -msgid "E-Mail" -msgstr "Email" - -#: classes/Gems/Model.php:202 -msgid "Gender" -msgstr "Geslacht" - -#: classes/Gems/Model.php:203 -msgid "First name" -msgstr "Voornaam" - -#: classes/Gems/Model.php:204 -msgid "Surname prefix" -msgstr "Tussenvoegsel" - -#: classes/Gems/Model.php:205 -msgid "Last name" -msgstr "Achternaam" - -#: classes/Gems/Model.php:207 -msgid "Name" -msgstr "Naam" - -#: classes/Gems/Model.php:210 -msgid "Street" -msgstr "Straat" - -#: classes/Gems/Model.php:211 -msgid "Zipcode" -msgstr "Postcode" - -#: classes/Gems/Model.php:212 -msgid "City" -msgstr "Stad" - -#: classes/Gems/Model.php:214 -msgid "Phone" -msgstr "Telefoon" - -#: classes/Gems/Model.php:216 -msgid "Birthday" -msgstr "Geboren op" - -#: classes/Gems/Pdf.php:195 -#, php-format -msgid "PDF Source File '%s' not found!" -msgstr "PDF bron bestand %s niet gevonden!" - -#: classes/Gems/Pdf.php:237 -#, php-format -msgid "Could not create '%s' directory." -msgstr "Kon de directory '%s' niet aanmaken." - -#: classes/Gems/Pdf.php:280 -#, php-format -msgid " The error message is: %s" -msgstr "De foutmelding is: %s" - -#: classes/Gems/Tracker.php:732 -msgid "Checks performed" -msgstr "Controle uitgevoerd" - -#: classes/Gems/UpgradesAbstract.php:164 -msgid "Already at max. level." -msgstr "Al op het hoogste niveau." - -#: classes/Gems/UpgradesAbstract.php:171 -#, php-format -msgid "Trying upgrade for %s from level %s to level %s" -msgstr "Probeert upgrade voor %s van niveau %s naar niveau %s uit te voeren" - -#: classes/Gems/UpgradesAbstract.php:179 -#, php-format -msgid "Trying upgrade for %s to level %s: %s" -msgstr "Probeert upgrade voor %s naar niveau %s: %s" - -#: classes/Gems/UpgradesAbstract.php:337 -msgid "Cache cleaned" -msgstr "Cache opgeschoond" - -#: classes/Gems/Controller/BrowseEditAction.php:346 -#, php-format -msgid "New %s..." -msgstr "Nieuw %s..." - -#: classes/Gems/Controller/BrowseEditAction.php:378 -#, php-format -msgid "Delete %s" -msgstr "Verwijder %s" - -#: classes/Gems/Controller/BrowseEditAction.php:382 -#, php-format -msgid "%2$u %1$s deleted" -msgstr "%2$u %1$s verwijderd" - -#: classes/Gems/Controller/BrowseEditAction.php:396 -#, php-format -msgid "Edit %s" -msgstr "Bewerk %s" - -#: classes/Gems/Controller/BrowseEditAction.php:493 -msgid "Free search text" -msgstr "Vrije zoek tekst" - -#: classes/Gems/Controller/BrowseEditAction.php:564 -msgid "Search" -msgstr "Zoeken" - -#: classes/Gems/Controller/BrowseEditAction.php:580 -#, php-format -msgid "No %s found" -msgstr "Geen %s gevonden" - -#: classes/Gems/Controller/BrowseEditAction.php:653 -#, php-format -msgid "No %s found." -msgstr "Geen %s gevonden." - -#: classes/Gems/Controller/BrowseEditAction.php:768 -msgid "Are you sure?" -msgstr "Weet u het zeker?" - -#: classes/Gems/Controller/BrowseEditAction.php:784 -msgid "Yes" -msgstr "Ja" - -#: classes/Gems/Controller/BrowseEditAction.php:785 -msgid "No" -msgstr "Nee" - -#: classes/Gems/Controller/BrowseEditAction.php:838 -#, php-format -msgid "Unknown %s requested" -msgstr "Onjuist %s verzoek" - -#: classes/Gems/Controller/BrowseEditAction.php:861 -#, php-format -msgid "New %1$s..." -msgstr "Nieuwe %1$s..." - -#: classes/Gems/Controller/BrowseEditAction.php:869 -msgid "Save" -msgstr "Opslaan" - -#: classes/Gems/Controller/BrowseEditAction.php:905 -#, php-format -msgid "%2$u %1$s saved" -msgstr "%2$u %1$s opgeslagen" - -#: classes/Gems/Controller/BrowseEditAction.php:908 -msgid "No changes to save." -msgstr "Geen verandering om op te slaan." - -#: classes/Gems/Controller/BrowseEditAction.php:917 -msgid "Input error! No changes saved!" -msgstr "Invoer fout! Veranderingen niet opgeslagen!" - -#: classes/Gems/Controller/BrowseEditAction.php:945 -#, php-format -msgid "Show %s" -msgstr "Toon %s" - -#: classes/Gems/Controller/BrowseEditAction.php:952 -#, php-format -msgid "Unknown %s." -msgstr "%s is onbekend." - -#: classes/Gems/Controller/ModelActionAbstract.php:97 -#: classes/Gems/Default/AskAction.php:150 -#: classes/Gems/Default/DatabaseAction.php:532 -msgid "Cancel" -msgstr "Annuleren" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:181 -msgid "No data found." -msgstr "Geen gegevens gevonden." - -#: classes/Gems/Default/AskAction.php:128 -#, php-format -msgid "Welcome %s," -msgstr "Welkom %s," - -#: classes/Gems/Default/AskAction.php:131 -#, php-format -msgid "Thank you for answering the survey for token %s." -msgstr "Dank u voor het invullen van de vragenlijst voor kenmerk %s." - -#: classes/Gems/Default/AskAction.php:132 -msgid "Please click the button below to answer the next survey." -msgstr "Klik op de onderstaande knop om de volgende vragenlijst in te vullen." - -#: classes/Gems/Default/AskAction.php:137 -#, php-format -msgid "Please click the button below to answer the survey for token %s." -msgstr "Klik op de onderstaande knop om de vragenlijst behorende bij kenmerk %s in te vullen." - -#: classes/Gems/Default/AskAction.php:141 -#, php-format -msgid "Wait one second to open the survey automatically or click on Cancel to stop." -msgid_plural "Wait %d seconds to open the survey automatically or click on Cancel to stop." -msgstr[0] "Over één seconde start de vragenlijst automatisch. Klik op annuleren om dit te onderbreken." -msgstr[1] "Over %d seconden start de vragenlijst automatisch. Klik op annuleren om dit te onderbreken." - -#: classes/Gems/Default/AskAction.php:156 -#, php-format -msgid "After this survey there is one other survey we would like you to answer." -msgid_plural "After this survey there are another %d surveys we would like you to answer." -msgstr[0] "Na deze vragenlijst hebben we nog één andere vragenlijst voor u." -msgstr[1] "Na deze vragenlijst hebben we nog %d andere vragenlijsten voor u." - -#: classes/Gems/Default/AskAction.php:166 -#, php-format -msgid "The survey for token %s is no longer active." -msgstr "De vragenlijst voor kenmerk %s is niet meer in gebruik." - -#: classes/Gems/Default/AskAction.php:170 -#, php-format -msgid "The token %s does not exist." -msgstr "Het kenmerk %s bestaat niet." - -#: classes/Gems/Default/AskAction.php:172 -#, php-format -msgid "Thank you for answering. At the moment we have no further surveys for you to take." -msgstr "Dank u voor uw antwoorden. Op dit moment hebben we geen vragenlijsten meer voor u." - -#: classes/Gems/Default/AskAction.php:174 -#, php-format -msgid "The survey for token %s has been answered and no further surveys are open." -msgstr "De vragenlijst met het kenmerk %s is beantwoord en er staan verder geen vragenlijsten open." - -#: classes/Gems/Default/AskAction.php:181 -#, php-format -msgid "The token %s does not exist (any more)." -msgstr "Het kenmerk %s bestaat niet (meer)." - -#: classes/Gems/Default/AskAction.php:198 -#, php-format -msgid "Enter your %s token" -msgstr "Voer uw %s kenmerk in" - -#: classes/Gems/Default/AskAction.php:203 -#, php-format -msgid "Enter tokens as %s." -msgstr "Kenmerk invoeren als %s." - -#: classes/Gems/Default/AskAction.php:213 -msgid "OK" -msgstr "OK" - -#: classes/Gems/Default/AskAction.php:233 -msgid "The server is currently busy, please wait a while and try again." -msgstr "De server is bezet, wacht u alstublieft een moment en probeer het dan nogmaals." - -#: classes/Gems/Default/AskAction.php:255 -msgid "Tokens identify a survey that was assigned to you personally." -msgstr "Elk kenmerk verwijst naar een specifiek aan u toegekende vragenlijst." - -#: classes/Gems/Default/AskAction.php:255 -msgid "Entering the token and pressing OK will open that survey." -msgstr "Vul uw kenmerk in en druk op OK om die vragenlijst te openen." - -#: classes/Gems/Default/AskAction.php:259 -msgid "After answering the survey you will be logged off automatically." -msgstr "Na het invullen wordt u automatisch uitgelogd." - -#: classes/Gems/Default/AskAction.php:261 -msgid "After answering the survey you will return to the respondent overview screen." -msgstr "Na het invullen van de vragenlijst komt u terug in het patient scherm." - -#: classes/Gems/Default/AskAction.php:268 -msgid "A token consists of two groups of four letters and numbers, separated by an optional hyphen. Tokens are case insensitive." -msgstr "Een kenmerk bestaat uit twee groepen van vier cijfers en letters met een (niet verplicht) streepje ertussen. Hoofdletters of gewone letters maakt niets uit." - -#: classes/Gems/Default/AskAction.php:269 -msgid "The number zero and the letter O are treated as the same; the same goes for the number one and the letter L." -msgstr "Er wordt geen verschil gemaakt tussen het getal nul en de letter O en ook niet tussen het getal één en de letter L." - -#: classes/Gems/Default/ConsentAction.php:68 -#: classes/Gems/Default/GroupAction.php:88 -msgid "Description" -msgstr "Omschrijving" - -#: classes/Gems/Default/ConsentAction.php:70 -#: classes/Gems/Default/DatabaseAction.php:167 -msgid "Order" -msgstr "Volgorde" - -#: classes/Gems/Default/ConsentAction.php:71 -msgid "Determines order of presentation in interface." -msgstr "Bepaald de presentatie volgorde." - -#: classes/Gems/Default/ConsentAction.php:73 -msgid "Consent code" -msgstr "Consent code" - -#: classes/Gems/Default/ConsentAction.php:75 -msgid "Internal code, not visible to users, copied with the token information to the source." -msgstr "Interne code, niet zichtbaar voor gebruikers maar wordt met de token informatie aan de bron doorgegeven." - -#: classes/Gems/Default/ConsentAction.php:92 -msgid "respondent consent" -msgid_plural "respondent consents" -msgstr[0] "patiënt toestemming" -msgstr[1] "patiënt toestemmingen" - -#: classes/Gems/Default/ConsentAction.php:97 -msgid "Respondent consents" -msgstr "Patiënt toestemming" - -#: classes/Gems/Default/ContactAction.php:71 -#, php-format -msgid "%s is a web application." -msgstr "%s is een web applicatie." - -#: classes/Gems/Default/ContactAction.php:76 -#, php-format -msgid "The %s project is run by: " -msgstr "%s is een project van: " - -#: classes/Gems/Default/ContactAction.php:82 -#, php-format -msgid "%s is a collaboration of these organizations:" -msgstr "Deze organisaties werken samen voor het %s project:" - -#: classes/Gems/Default/ContactAction.php:103 -#, php-format -msgid "The %s project" -msgstr "Het %s project" - -#: classes/Gems/Default/ContactAction.php:106 -msgid "Information on this application" -msgstr "Information over deze website" - -#: classes/Gems/Default/ContactAction.php:107 -msgid "Links concerning this web application:" -msgstr "Links met informatie over deze website:" - -#: classes/Gems/Default/CronAction.php:148 -msgid "Cron jobs turned off." -msgstr "Cron opdrachten uitgezet." - -#: classes/Gems/Default/CronAction.php:218 -msgid "No mails sent." -msgstr "Geen mail verzonden." - -#: classes/Gems/Default/CronAction.php:221 -msgid "On this test system all mail will be delivered to the from address." -msgstr "Op dit test systeem worden alle emails gestuurd naar het \"van\" adres." - -#: classes/Gems/Default/DatabaseAction.php:64 -#, php-format -msgid "Executed %2$s creation script %1$s:" -msgstr "Uitvoerresultaat %2$s script %1$s:" - -#: classes/Gems/Default/DatabaseAction.php:74 -#, php-format -msgid "%d record(s) returned as result set %d in step %d of %d." -msgstr "%d rij(en) in resultaat %d in stap %d van %d." - -#: classes/Gems/Default/DatabaseAction.php:78 -#, php-format -msgid "%d record(s) updated in step %d of %d." -msgstr "In stap %2$d van %3$d zijn %1$d rij(en) aangepast." - -#: classes/Gems/Default/DatabaseAction.php:81 -#, php-format -msgid "Script ran step %d of %d succesfully." -msgstr "Stap %d van %d in het script met succes uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:84 -msgid " in step " -msgstr " in stap " - -#: classes/Gems/Default/DatabaseAction.php:89 -#, php-format -msgid "No script for %1$s." -msgstr "Geen script voor %1$s:" - -#: classes/Gems/Default/DatabaseAction.php:133 -#, php-format -msgid "No rows in %s." -msgstr "Geen gegevens in %s." - -#: classes/Gems/Default/DatabaseAction.php:162 -msgid "Type" -msgstr "Type" - -#: classes/Gems/Default/DatabaseAction.php:166 -msgid "Group" -msgstr "Groep" - -#: classes/Gems/Default/DatabaseAction.php:168 -msgid "Location" -msgstr "Locatie" - -#: classes/Gems/Default/DatabaseAction.php:171 -msgid "Status" -msgstr "Status" - -#: classes/Gems/Default/DatabaseAction.php:172 -msgid "created" -msgstr "bestaat" - -#: classes/Gems/Default/DatabaseAction.php:173 -msgid "not created" -msgstr "niet aanwezig" - -#: classes/Gems/Default/DatabaseAction.php:174 -msgid "unknown" -msgstr "onbekend" - -#: classes/Gems/Default/DatabaseAction.php:177 -msgid "Script" -msgstr "Script" - -#: classes/Gems/Default/DatabaseAction.php:179 -msgid "Changed on" -msgstr "Veranderd op" - -#: classes/Gems/Default/DatabaseAction.php:198 -msgid "This database object does not exist. You cannot delete it." -msgstr "Dit database object bestaat. Het kan dus ook niet verwijderd worden." - -#: classes/Gems/Default/DatabaseAction.php:203 -#, php-format -msgid "Drop %s" -msgstr "Verwijder %s" - -#: classes/Gems/Default/DatabaseAction.php:211 -#, php-format -msgid "There are %d rows in the table." -msgstr "Er zijn %d rijen in deze tabel." - -#: classes/Gems/Default/DatabaseAction.php:213 -#, php-format -msgid "Drop table with %d rows" -msgstr "Tabel met %d rijen aan data verwijderen" - -#: classes/Gems/Default/DatabaseAction.php:214 -msgid "Are you really sure?" -msgstr "Weet u het heel erg zeker?" - -#: classes/Gems/Default/DatabaseAction.php:230 -#, php-format -msgid "%1$s %2$s dropped" -msgstr "%1$s %2$s verwijderd" - -#: classes/Gems/Default/DatabaseAction.php:235 -msgid " during statement " -msgstr " tijdens het commando " - -#: classes/Gems/Default/DatabaseAction.php:246 -#, php-format -msgid "%s no longer exists in the database." -msgstr "%s bestaat niet meer in de database." - -#: classes/Gems/Default/DatabaseAction.php:249 -#, php-format -msgid "%s does not yet exist in the database." -msgstr "%s bestaat nog niet in de database." - -#: classes/Gems/Default/DatabaseAction.php:252 -#, php-format -msgid "%s object does exist." -msgstr "%s object bestaat." - -#: classes/Gems/Default/DatabaseAction.php:270 -msgid "Object is not a table." -msgstr "Niet een tabel object." - -#: classes/Gems/Default/DatabaseAction.php:293 -msgid "Structure" -msgstr "Structuur" - -#: classes/Gems/Default/DatabaseAction.php:302 -msgid "database object" -msgid_plural "database objects" -msgstr[0] "database object" -msgstr[1] "database objects" - -#: classes/Gems/Default/DatabaseAction.php:307 -msgid "Database object overview" -msgstr "Database object overzicht" - -#: classes/Gems/Default/DatabaseAction.php:316 -#: classes/Gems/Default/DatabaseAction.php:368 -msgid "Level" -msgstr "Niveau" - -#: classes/Gems/Default/DatabaseAction.php:317 -#: classes/Gems/Default/DatabaseAction.php:369 -msgid "Subtype" -msgstr "Subtype" - -#: classes/Gems/Default/DatabaseAction.php:319 -msgid "To be executed" -msgstr "Uit te voeren" - -#: classes/Gems/Default/DatabaseAction.php:320 -#: classes/Gems/Default/DatabaseAction.php:372 -msgid "Executed" -msgstr "Uitgevoerd" - -#: classes/Gems/Default/DatabaseAction.php:321 -#: classes/Gems/Default/DatabaseAction.php:373 -msgid "Finished" -msgstr "Afgerond" - -#: classes/Gems/Default/DatabaseAction.php:324 -msgid "Create the patch table!" -msgstr "De patch tabel bestaat nog niet!" - -#: classes/Gems/Default/DatabaseAction.php:326 -#, php-format -msgid "%d new or changed patch(es)." -msgstr "%d nieuwe of veranderde patch(es)." - -#: classes/Gems/Default/DatabaseAction.php:331 -msgid "Gems build" -msgstr "Gems bouwnummer" - -#: classes/Gems/Default/DatabaseAction.php:332 -msgid "Database build" -msgstr "Database versie" - -#: classes/Gems/Default/DatabaseAction.php:334 -msgid "Execute level" -msgstr "Uit te voeren versie" - -#: classes/Gems/Default/DatabaseAction.php:338 -msgid "Ignore finished" -msgstr "Afgeronde patches overslaan" - -#: classes/Gems/Default/DatabaseAction.php:339 -msgid "Ignore executed" -msgstr "Uitgevoerde patches overslaan" - -#: classes/Gems/Default/DatabaseAction.php:340 -msgid "Show patches" -msgstr "Toon patches" - -#: classes/Gems/Default/DatabaseAction.php:354 -#, php-format -msgid "%d patch(es) executed." -msgstr "%d patch(es) uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:367 -msgid "Patch" -msgstr "Patch" - -#: classes/Gems/Default/DatabaseAction.php:371 -msgid "Query" -msgstr "Query" - -#: classes/Gems/Default/DatabaseAction.php:374 -msgid "Result" -msgstr "Resultaat" - -#: classes/Gems/Default/DatabaseAction.php:398 -msgid "Patch maintenance" -msgstr "Patch onderhoud" - -#: classes/Gems/Default/DatabaseAction.php:402 -msgid "Patch overview" -msgstr "Patch overzicht" - -#: classes/Gems/Default/DatabaseAction.php:464 -msgid "This database object does not exist. You cannot create it." -msgstr "Dit database object bestaat niet en kan ook niet aangemaakt worden." - -#: classes/Gems/Default/DatabaseAction.php:470 -msgid "This database object has no script. You cannot execute it." -msgstr "Dit database object heeft geen script. Het kan dus ook niet uitgevoerd worden." - -#: classes/Gems/Default/DatabaseAction.php:481 -#, php-format -msgid "Run %s" -msgstr "Voer %s script uit" - -#: classes/Gems/Default/DatabaseAction.php:500 -#, php-format -msgid "Starting %d object creation scripts." -msgstr "Aanvang %d object aanmaak scripts." - -#: classes/Gems/Default/DatabaseAction.php:505 -#, php-format -msgid "Finished %s creation script for object %d of %d" -msgstr "Klaar %s met aanmaak script voor object %d van %d" - -#: classes/Gems/Default/DatabaseAction.php:509 -msgid "All objects exist. Nothing was executed." -msgstr "Alle objects bestaan. Niets was uitgevoerd." - -#: classes/Gems/Default/DatabaseAction.php:515 -msgid "Create not-existing database objects" -msgstr "Aanmaak van database objecten die nog niet bestaan" - -#: classes/Gems/Default/DatabaseAction.php:517 -#, php-format -msgid "One database object does not exist." -msgid_plural "These %d database objects do not exist." -msgstr[0] "Één object bestaat nog niet in de database." -msgstr[1] "%d objecten bestaan nog niet in de database." - -#: classes/Gems/Default/DatabaseAction.php:518 -msgid "Are you sure you want to create it?" -msgid_plural "Are you sure you want to create them all?" -msgstr[0] "Weet je zeker dat je dat object wil aanmaken?" -msgstr[1] "Weet je zeker dat je ze allemaal wil aanmaken?" - -#: classes/Gems/Default/DatabaseAction.php:531 -msgid "All database objects exist. There is nothing to create." -msgstr "Alle database objecten bestaan. Er valt niets te maken." - -#: classes/Gems/Default/DatabaseAction.php:544 -msgid "Separate multiple commands with semicolons (;)." -msgstr "Scheidt meerdere commando's met punt-comma's (;)." - -#: classes/Gems/Default/DatabaseAction.php:551 -msgid "Run" -msgstr "Uitvoeren" - -#: classes/Gems/Default/DatabaseAction.php:560 -msgid "raw" -msgstr "rauw" - -#: classes/Gems/Default/DatabaseAction.php:569 -#, php-format -msgid "Result set %s." -msgstr "Resultaat %s." - -#: classes/Gems/Default/DatabaseAction.php:592 -msgid "Execute raw SQL" -msgstr "SQL direct uitvoeren" - -#: classes/Gems/Default/DatabaseAction.php:595 -msgid "Result sets" -msgstr "Resultaten" - -#: classes/Gems/Default/DatabaseAction.php:620 -msgid "This database object does not exist. You cannot view it." -msgstr "Dit database object bestaat. Het kan dus ook niet bekeken worden." - -#: classes/Gems/Default/DatabaseAction.php:625 -#, php-format -msgid "The data in table %s" -msgstr "De gegevens in tabel %s" - -#: classes/Gems/Default/DatabaseAction.php:626 -#, php-format -msgid "Contents of %s %s" -msgstr "De inhoud van %s %s" - -#: classes/Gems/Default/ExportAction.php:69 -msgid "Data" -msgstr "Data" - -#: classes/Gems/Default/ExportAction.php:74 -msgid "Export data" -msgstr "Exporteer gegevens" - -#: classes/Gems/Default/ExportAction.php:153 -#: classes/Gems/Default/MailJobAction.php:121 -msgid "Survey" -msgstr "Vragenlijst" - -#: classes/Gems/Default/ExportAction.php:168 -#, php-format -msgid "%s records found." -msgstr "%s records gevonden." - -#: classes/Gems/Default/ExportAction.php:172 -#: classes/Gems/Default/IndexAction.php:162 -#: classes/Gems/Default/MailJobAction.php:119 -msgid "Organization" -msgstr "Organisatie" - -#: classes/Gems/Default/ExportAction.php:181 -msgid "Export to" -msgstr "Exporteer naar" - -#: classes/Gems/Default/GroupAction.php:89 -#: classes/Gems/Default/LogAction.php:170 -msgid "Role" -msgstr "Rol" - -#: classes/Gems/Default/GroupAction.php:92 -#: classes/Gems/Default/MailJobAction.php:104 -msgid "Active" -msgstr "Actief" - -#: classes/Gems/Default/GroupAction.php:96 -msgid "Allowed IP Ranges" -msgstr "Toegestane IP adres reeksen" - -#: classes/Gems/Default/GroupAction.php:105 -msgid "group" -msgid_plural "groups" -msgstr[0] "groep" -msgstr[1] "groepen" - -#: classes/Gems/Default/GroupAction.php:110 -msgid "Administrative groups" -msgstr "Beheer groepen" - -#: classes/Gems/Default/IndexAction.php:83 -msgid "Enter your token..." -msgstr "Voer uw kenmerk in..." - -#: classes/Gems/Default/IndexAction.php:124 -#, php-format -msgid "Login to %s application" -msgstr "%s login" - -#: classes/Gems/Default/IndexAction.php:128 -msgid "Login" -msgstr "Login" - -#: classes/Gems/Default/IndexAction.php:145 -msgid "Back to login" -msgstr "Terug naar de login" - -#: classes/Gems/Default/IndexAction.php:183 -msgid "Password" -msgstr "Wachtwoord" - -#: classes/Gems/Default/IndexAction.php:198 -#, php-format -msgid "Reset password for %s application" -msgstr "Reset wachtwoord voor %s" - -#: classes/Gems/Default/IndexAction.php:202 -msgid "Reset password" -msgstr "Reset wachtwoord" - -#: classes/Gems/Default/IndexAction.php:248 -msgid "Username" -msgstr "Gebruikersnaam" - -#: classes/Gems/Default/IndexAction.php:288 -msgid "Your password must be changed." -msgstr "Uw wachtwoord moet veranderd worden." - -#: classes/Gems/Default/IndexAction.php:300 -#, php-format -msgid "Login successful, welcome %s." -msgstr "Login in orde, welkom %s." - -#: classes/Gems/Default/IndexAction.php:340 -#, php-format -msgid "Good bye: %s." -msgstr "Tot ziens: %s." - -#: classes/Gems/Default/IndexAction.php:365 -msgid "Reset accepted, enter your new password." -msgstr "Reset geaccepteerd, voer uw nieuwe wachtwoord in." - -#: classes/Gems/Default/IndexAction.php:369 -msgid "This key timed out or does not belong to this user." -msgstr "Te oude sleutel of sleutel hoort niet bij gebruiker." - -#: classes/Gems/Default/IndexAction.php:386 -msgid "Password reset requested" -msgstr "Wachtwoord reset aangevraagd" - -#: classes/Gems/Default/IndexAction.php:387 -#, php-format -msgid "To reset your password for %s, please click this link: %s" -msgstr "Om uw wachtwoord voor %s te resetten, klik op deze link: %s" - -#: classes/Gems/Default/IndexAction.php:392 -msgid "We sent you an e-mail with a reset link. Click on the link in the e-mail." -msgstr "We hebben u een email met reset link gestuurd. Klik op de link in de email." - -#: classes/Gems/Default/IndexAction.php:394 -msgid "Unable to send e-mail." -msgstr "Verzenden e-mail mislukt." - -#: classes/Gems/Default/IndexAction.php:399 -msgid "No such user found or no e-mail address known or user cannot be reset." -msgstr "Gebruiker niet gevonden of e-mail adres onbekend of gebruiker kan niet gereset worden." - -#: classes/Gems/Default/IndexAction.php:403 -msgid "We received your password reset key." -msgstr "Wachtwoord resetsleutel ontvangen." - -#: classes/Gems/Default/IndexAction.php:404 -msgid "Please enter the organization and username belonging to this key." -msgstr "Geef de organisatie en gebruikersnaam die bij deze sleutel horen op." - -#: classes/Gems/Default/InvitationAction.php:52 -msgid "Invite" -msgstr "Uitnodigen" - -#: classes/Gems/Default/LanguageAction.php:63 -msgid "Cookies must be enabled for setting the language." -msgstr "Zonder cookies kan de taal niet ingesteld worden." - -#: classes/Gems/Default/LanguageAction.php:66 -msgid "Invalid language setting." -msgstr "Ongeldige taal instelling." - -#: classes/Gems/Default/LogAction.php:61 -msgid "from" -msgstr "vanaf" - -#: classes/Gems/Default/LogAction.php:66 -msgid "until" -msgstr "tot" - -#: classes/Gems/Default/LogAction.php:72 -msgid "days" -msgstr "dagen" - -#: classes/Gems/Default/LogAction.php:73 -msgid "weeks" -msgstr "weken" - -#: classes/Gems/Default/LogAction.php:74 -msgid "months" -msgstr "maanden" - -#: classes/Gems/Default/LogAction.php:75 -msgid "years" -msgstr "jaren" - -#: classes/Gems/Default/LogAction.php:96 -msgid "Staff:" -msgstr "Medewerkers:" - -#: classes/Gems/Default/LogAction.php:100 -msgid "All staff" -msgstr "Alle medewerkers" - -#: classes/Gems/Default/LogAction.php:102 -msgid "Patient:" -msgstr "Patiënt:" - -#: classes/Gems/Default/LogAction.php:106 -msgid "All patients" -msgstr "Alle patiënten" - -#: classes/Gems/Default/LogAction.php:109 -msgid "Action:" -msgstr "Actie:" - -#: classes/Gems/Default/LogAction.php:112 -msgid "All actions" -msgstr "Alle acties" - -#: classes/Gems/Default/LogAction.php:163 -msgid "Date" -msgstr "Datum" - -#: classes/Gems/Default/LogAction.php:164 -#: classes/Gems/Default/LogMaintenanceAction.php:52 -msgid "Action" -msgstr "Actie" - -#: classes/Gems/Default/LogAction.php:165 -msgid "Message" -msgstr "Bericht" - -#: classes/Gems/Default/LogAction.php:167 -msgid "Respondent" -msgstr "Patiënt" - -#: classes/Gems/Default/LogAction.php:171 -msgid "IP address" -msgstr "IP adres" - -#: classes/Gems/Default/LogAction.php:178 -#: classes/Gems/Default/LogMaintenanceAction.php:53 -msgid "Log" -msgstr "Logboek" - -#: classes/Gems/Default/LogMaintenanceAction.php:70 -msgid "Log:" -msgstr "Logboek:" - -#: classes/Gems/Default/LogMaintenanceAction.php:71 -msgid "All" -msgstr "Alles" - -#: classes/Gems/Default/LogMaintenanceAction.php:77 -msgid "Log action" -msgstr "Logboek actie" - -#: classes/Gems/Default/LogMaintenanceAction.php:81 -msgid "Log maintenance" -msgstr "Logboek onderhoud" - -#: classes/Gems/Default/MailJobAction.php:62 -msgid "No automatic mail jobs found..." -msgstr "Geen automatische mail opdrachten gevonden.." - -#: classes/Gems/Default/MailJobAction.php:72 -msgid "New automatic mail job..." -msgstr "Nieuwe automatische mail opdracht..." - -#: classes/Gems/Default/MailJobAction.php:100 -msgid "Template" -msgstr "Sjabloon" - -#: classes/Gems/Default/MailJobAction.php:101 -msgid "By staff member" -msgstr "Door medewerke" - -#: classes/Gems/Default/MailJobAction.php:103 -msgid "Used for logging and possibly from address." -msgstr "Gebruikt voor activiteiten log en eventueel voor vanaf adres." - -#: classes/Gems/Default/MailJobAction.php:106 -msgid "Job is only run when active." -msgstr "Een opdracht wordt alleen uitgevoerd als deze actief is." - -#: classes/Gems/Default/MailJobAction.php:109 -msgid "From address used" -msgstr "Gebruikte vanaf adres" - -#: classes/Gems/Default/MailJobAction.php:111 -msgid "From other" -msgstr "Vanaf overig" - -#: classes/Gems/Default/MailJobAction.php:112 -#, php-format -msgid "Only when '%s' is '%s'." -msgstr "Aleen als '%s' is '%s'." - -#: classes/Gems/Default/MailJobAction.php:114 -msgid "Processing Method" -msgstr "Verwerkings methode" - -#: classes/Gems/Default/MailJobAction.php:115 -msgid "Filter for" -msgstr "Selecteer op" - -#: classes/Gems/Default/MailJobAction.php:116 -msgid "Days between reminders" -msgstr "Aantal dagen tussen herinneringen" - -#: classes/Gems/Default/MailJobAction.php:132 -msgid "Do you want to delete this mail job?" -msgstr "Weet je zeker dat deze automatische mail opdracht verwijderd moet worden?" - -#: classes/Gems/Default/MailJobAction.php:143 -msgid "Edit automatic mail job" -msgstr "Automatische mail opdracht bewerken" - -#: classes/Gems/Default/MailJobAction.php:156 -msgid "First mail" -msgstr "Eerste mail" - -#: classes/Gems/Default/MailJobAction.php:157 -msgid "Reminder" -msgstr "Herinnering" - -#: classes/Gems/Default/MailJobAction.php:168 -msgid "Use organizational from address" -msgstr "Gebruik vanaf adres van organisatie" - -#: classes/Gems/Default/MailJobAction.php:171 -#, php-format -msgid "Use site %s address" -msgstr "Gebruik %s adres van de site" - -#: classes/Gems/Default/MailJobAction.php:174 -msgid "Use the 'By staff member' address" -msgstr "Gebruik 'Door medewerker' adres" - -#: classes/Gems/Default/MailJobAction.php:175 -msgid "Other" -msgstr "Overige" - -#: classes/Gems/Default/MailJobAction.php:185 -msgid "Automatic mail jobs" -msgstr "Automatische mail opdrachten " - -#: classes/Gems/Default/MailJobAction.php:189 -#, php-format -msgid "Automatic mails have been turned off since %s." -msgstr "Automatische mail opdrachten staan sinds %s uit." - -#: classes/Gems/Default/MailJobAction.php:193 -msgid "Turn Automatic Mail Jobs ON" -msgstr "Automatische mail opdrachten AANzetten" - -#: classes/Gems/Default/MailJobAction.php:199 -msgid "With automatic mail jobs and a cron job on the server, mails can be sent without manual user action." -msgstr "Met automatische mail opdrachten en een cron opdracht op de server, kunnen mails verstuurd worden zonder dat een gebruiker actie hoeft te ondernemen." - -#: classes/Gems/Default/MailJobAction.php:207 -msgid "Automatic mail job details" -msgstr "Automatische mail opdracht details" - -#: classes/Gems/Default/MailLogAction.php:107 -msgid "Date sent" -msgstr "Verzend datum" - -#: classes/Gems/Default/MailLogAction.php:108 -msgid "Receiver" -msgstr "Ontvanger" - -#: classes/Gems/Default/MailLogAction.php:109 -msgid "To address" -msgstr "Adres aan" - -#: classes/Gems/Default/MailLogAction.php:110 -msgid "Sender" -msgstr "Verzender" - -#: classes/Gems/Default/MailLogAction.php:111 -msgid "From address" -msgstr "Adres van" - -#: classes/Gems/Default/MailLogAction.php:113 -#: classes/Gems/Default/MailTemplateAction.php:61 -msgid "Subject" -msgstr "Onderwerp" - -#: classes/Gems/Default/MailLogAction.php:129 -msgid "Mail Activity Log" -msgstr "Logboek Mail Activiteit" - -#: classes/Gems/Default/MailLogAction.php:140 -msgid "Show Mail Activity Log item" -msgstr "Toon Logboek Mail item" - -#: classes/Gems/Default/MailServerAction.php:68 -msgid "From address [part]" -msgstr "Vanaf adres [gedeelte]" - -#: classes/Gems/Default/MailServerAction.php:70 -msgid "E.g.: '%', '%.org' or '%@gemstracker.org' or 'ro...@ge...'." -msgstr "Bijvoorbeeld: '%', '%.nl' of '%@gemstracker.nl' of 'ro...@ge...'." - -#: classes/Gems/Default/MailServerAction.php:71 -msgid "Server" -msgstr "Server" - -#: classes/Gems/Default/MailServerAction.php:73 -msgid "Encryption" -msgstr "Encryptie" - -#: classes/Gems/Default/MailServerAction.php:76 -msgid "None" -msgstr "Geen" - -#: classes/Gems/Default/MailServerAction.php:77 -msgid "SSL" -msgstr "SSL" - -#: classes/Gems/Default/MailServerAction.php:78 -msgid "TLS" -msgstr "TLS" - -#: classes/Gems/Default/MailServerAction.php:80 -msgid "Port" -msgstr "Poort" - -#: classes/Gems/Default/MailServerAction.php:82 -msgid "Normal values: 25 for TLS and no encryption, 465 for SSL" -msgstr "Standaard waardes: 25 voor TLS en voor geen encryptie, 465 voor SSL" - -#: classes/Gems/Default/MailServerAction.php:84 -msgid "User ID" -msgstr "Gebruikers ID" - -#: classes/Gems/Default/MailServerAction.php:90 -#: classes/Gems/Default/OptionAction.php:113 -#: classes/Gems/Default/OptionAction.php:118 -#: classes/Gems/Default/SourceAction.php:95 -#: classes/Gems/Default/StaffAction.php:151 -msgid "Repeat password" -msgstr "Herhaal wachtwoord" - -#: classes/Gems/Default/MailServerAction.php:91 -#: classes/Gems/Default/SourceAction.php:74 -#: classes/Gems/Default/StaffAction.php:126 -msgid "Enter only when changing" -msgstr "Alleen invoeren om het wachtwoord te wijzigen" - -#: classes/Gems/Default/MailServerAction.php:100 -msgid "email server" -msgid_plural "email servers" -msgstr[0] "email server" -msgstr[1] "email servers" - -#: classes/Gems/Default/MailServerAction.php:105 -msgid "Email servers" -msgstr "Email servers" - -#: classes/Gems/Default/MailTemplateAction.php:75 -#: classes/Gems/Default/StaffAction.php:239 -msgid "(all organizations)" -msgstr "(alle organisaties)" - -#: classes/Gems/Default/MailTemplateAction.php:94 -msgid "email template" -msgid_plural "email templates" -msgstr[0] "email sjabloon" -msgstr[1] "email sjablonen" - -#: classes/Gems/Default/MailTemplateAction.php:99 -msgid "Email templates" -msgstr "Email sjabloon" - -#: classes/Gems/Default/OptionAction.php:84 -msgid "You are not allowed to change your password." -msgstr "U mag uw wachtwoord niet wijzigen." - -#: classes/Gems/Default/OptionAction.php:96 -msgid "Current password" -msgstr "Huidig wachtwoord" - -#: classes/Gems/Default/OptionAction.php:107 -#: classes/Gems/Default/OptionAction.php:123 -msgid "New password" -msgstr "Nieuw wachtwoord" - -#: classes/Gems/Default/OptionAction.php:137 -msgid "New password is active." -msgstr "Nieuwe wachtwoord geactiveerd." - -#: classes/Gems/Default/OptionAction.php:143 -msgid "Caps Lock seems to be on!" -msgstr "De Caps Lock toets lijkt aan te staan!" - -#: classes/Gems/Default/OptionAction.php:181 -msgid "Login Name" -msgstr "Login Naam" - -#: classes/Gems/Default/OptionAction.php:188 -#: classes/Gems/Default/OrganizationAction.php:134 -#: classes/Gems/Default/RespondentAction.php:173 -#: classes/Gems/Default/StaffAction.php:224 -msgid "Language" -msgstr "Taal" - -#: classes/Gems/Default/OptionAction.php:198 -#, php-format -msgid "Options" -msgstr "Instellingen" - -#: classes/Gems/Default/OptionAction.php:207 -msgid "This overview provides information about the last login activity on your account." -msgstr "Dit overzicht geeft informatie over de recente inlog activiteit op uw account." - -#: classes/Gems/Default/OptionAction.php:227 -msgid "Date / time" -msgstr "Datum / tijd" - -#: classes/Gems/Default/OptionAction.php:233 -msgid "item" -msgid_plural "items" -msgstr[0] "item" -msgstr[1] "items" - -#: classes/Gems/Default/OptionAction.php:238 -msgid "Item" -msgstr "Item" - -#: classes/Gems/Default/OrganizationAction.php:91 -msgid "Invalid organization." -msgstr "Ongeldige organisatie." - -#: classes/Gems/Default/OrganizationAction.php:99 -msgid "New organization..." -msgstr "Nieuwe organisatie..." - -#: classes/Gems/Default/OrganizationAction.php:123 -msgid "Url" -msgstr "Url" - -#: classes/Gems/Default/OrganizationAction.php:124 -msgid "Task" -msgstr "Taak" - -#: classes/Gems/Default/OrganizationAction.php:125 -msgid "Contact name" -msgstr "Contact naam" - -#: classes/Gems/Default/OrganizationAction.php:126 -msgid "Contact email" -msgstr "Contact email" - -#: classes/Gems/Default/OrganizationAction.php:129 -msgid "Style" -msgstr "Stijl" - -#: classes/Gems/Default/OrganizationAction.php:138 -msgid "Can the organization be used?" -msgstr "Is de organisatie in gebruik?" - -#: classes/Gems/Default/OrganizationAction.php:139 -msgid "Accepting" -msgstr "Accepteerd" - -#: classes/Gems/Default/OrganizationAction.php:139 -msgid "Can new respondents be added to the organization?" -msgstr "Accepteert de organisatie nieuwe patiënten?" - -#: classes/Gems/Default/OrganizationAction.php:140 -msgid "Does the organization have respondents?" -msgstr "Heeft de organisatie patiënten?" - -#: classes/Gems/Default/OrganizationAction.php:141 -msgid "Respondent group" -msgstr "Patiënten groep" - -#: classes/Gems/Default/OrganizationAction.php:141 -msgid "Allows respondents to login." -msgstr "Patiënten toestaan in te loggen." - -#: classes/Gems/Default/OrganizationAction.php:145 -msgid "Greeting" -msgstr "Begroeting" - -#: classes/Gems/Default/OrganizationAction.php:145 -#: classes/Gems/Default/OrganizationAction.php:146 -msgid "For emails and token forward screen." -msgstr "Voor emails en kenmerk scherm." - -#: classes/Gems/Default/OrganizationAction.php:146 -msgid "Signature" -msgstr "Handtekening" - -#: classes/Gems/Default/OrganizationAction.php:148 -msgid "Accessible by" -msgstr "Toegankelijk voor" - -#: classes/Gems/Default/OrganizationAction.php:148 -msgid "Checked organizations see this organizations respondents." -msgstr "Geselecteerde organizaties kunnen de patiënten van deze organisatie bekijken." - -#: classes/Gems/Default/OrganizationAction.php:158 -msgid "Code name" -msgstr "Code naam" - -#: classes/Gems/Default/OrganizationAction.php:158 -msgid "Only for programmers." -msgstr "Uitsluitend voor programmeurs." - -#: classes/Gems/Default/OrganizationAction.php:172 -msgid "Delete organization" -msgstr "Verwijder organisatie" - -#: classes/Gems/Default/OrganizationAction.php:182 -msgid "Edit organization" -msgstr "Bewerk organisatie" - -#: classes/Gems/Default/OrganizationAction.php:192 -msgid "Participating organizations" -msgstr "Deelnemende organisaties" - -#: classes/Gems/Default/OrganizationAction.php:202 -msgid "Show organization" -msgstr "Toon organisatie" - -#: classes/Gems/Default/OverviewPlanAction.php:115 -#: classes/Gems/Default/ProjectSurveysAction.php:88 -#: classes/Gems/Default/SurveyAction.php:203 -msgid "survey" -msgid_plural "surveys" -msgstr[0] "vragenlijst" -msgstr[1] "vragenlijsten" - -#: classes/Gems/Default/OverviewPlanAction.php:120 -msgid "Planning overview" -msgstr "Planning overzicht" - -#: classes/Gems/Default/ProjectInformationAction.php:83 -msgid "empty file" -msgstr "leeg bestand" - -#: classes/Gems/Default/ProjectInformationAction.php:87 -msgid "file not found" -msgstr "bestand niet gevonden" - -#: classes/Gems/Default/ProjectInformationAction.php:120 -msgid "Logged errors" -msgstr "Opgeslagen foutmeldingen" - -#: classes/Gems/Default/ProjectInformationAction.php:120 -msgid "Empty logfile" -msgstr "Verwijder alle foutmeldingen" - -#: classes/Gems/Default/ProjectInformationAction.php:125 -msgid "Project information" -msgstr "Project informatie" - -#: classes/Gems/Default/ProjectInformationAction.php:129 -msgid "Project name" -msgstr "Project naam" - -#: classes/Gems/Default/ProjectInformationAction.php:130 -msgid "Project version" -msgstr "Project versie" - -#: classes/Gems/Default/ProjectInformationAction.php:131 -msgid "Gems version" -msgstr "Gems versie" - -#: classes/Gems/Default/ProjectInformationAction.php:133 -msgid "Gems project" -msgstr "Gems project" - -#: classes/Gems/Default/ProjectInformationAction.php:134 -msgid "Gems web directory" -msgstr "Gems web folder" - -#: classes/Gems/Default/ProjectInformationAction.php:135 -msgid "Gems code directory" -msgstr "Gems code folder" - -#: classes/Gems/Default/ProjectInformationAction.php:136 -msgid "Gems project path" -msgstr "Gems project folder" - -#: classes/Gems/Default/ProjectInformationAction.php:137 -msgid "MUtil version" -msgstr "MUtil versie" - -#: classes/Gems/Default/ProjectInformationAction.php:138 -msgid "Zend version" -msgstr "Zend versie" - -#: classes/Gems/Default/ProjectInformationAction.php:139 -msgid "Application environment" -msgstr "Applicatie omgeving" - -#: classes/Gems/Default/ProjectInformationAction.php:140 -msgid "Application baseuri" -msgstr "Applicatie baseuri" - -#: classes/Gems/Default/ProjectInformationAction.php:141 -msgid "Application directory" -msgstr "Applicatie folder" - -#: classes/Gems/Default/ProjectInformationAction.php:142 -msgid "PHP version" -msgstr "PHP versie" - -#: classes/Gems/Default/ProjectInformationAction.php:143 -msgid "Server Hostname" -msgstr "Webserver naam" - -#: classes/Gems/Default/ProjectInformationAction.php:144 -msgid "Server OS" -msgstr "Server besturingssysteem" - -#: classes/Gems/Default/ProjectInformationAction.php:145 -msgid "Time on server" -msgstr "De tijd op de server" - -#: classes/Gems/Default/ProjectInformationAction.php:149 -msgid "Turn Maintenance Mode OFF" -msgstr "Onderhoudsmodus UITzetten" - -#: classes/Gems/Default/ProjectInformationAction.php:151 -msgid "Turn Maintenance Mode ON" -msgstr "Onderhoudsmodus AANzetten" - -#: classes/Gems/Default/ProjectInformationAction.php:161 -msgid "Version information" -msgstr "Versie informatie" - -#: classes/Gems/Default/ProjectInformationAction.php:195 -msgid "Server PHP Info" -msgstr "Server PHP Info" - -#: classes/Gems/Default/ProjectInformationAction.php:208 -msgid "Project settings" -msgstr "Project instellingen" - -#: classes/Gems/Default/ProjectInformationAction.php:215 -msgid "Session content" -msgstr "Sessie inhoud" - -#: classes/Gems/Default/ProjectInformationAction.php:216 -msgid "Session" -msgstr "Sessie" - -#: classes/Gems/Default/ProjectSurveysAction.php:68 -#: classes/Gems/Default/SurveyAction.php:192 -msgid "By" -msgstr "Door" - -#: classes/Gems/Default/ProjectSurveysAction.php:69 -#: classes/Gems/Default/ProjectTracksAction.php:67 -#: classes/Gems/Default/SurveyAction.php:193 -msgid "From" -msgstr "Van" - -#: classes/Gems/Default/ProjectSurveysAction.php:70 -#: classes/Gems/Default/ProjectTracksAction.php:68 -#: classes/Gems/Default/SurveyAction.php:195 -msgid "Until" -msgstr "Tot" - -#: classes/Gems/Default/ProjectSurveysAction.php:93 -msgid "Active surveys" -msgstr "Beschikbare vragenlijsten" - -#: classes/Gems/Default/ProjectTracksAction.php:65 -msgid "Survey #" -msgstr "Vragenlijsten" - -#: classes/Gems/Default/ProjectTracksAction.php:85 -msgid "track" -msgid_plural "tracks" -msgstr[0] "traject" -msgstr[1] "trajecten" - -#: classes/Gems/Default/ProjectTracksAction.php:90 -msgid "Active tracks" -msgstr "Beschikbare trajecten" - -#: classes/Gems/Default/ProjectTracksAction.php:110 -#, php-format -msgid "Questions in survey %s" -msgstr "Vragen in vragenlijsten %s" - -#: classes/Gems/Default/ProjectTracksAction.php:118 -#: classes/Gems/Default/SurveyAction.php:85 -#, php-format -msgid "Survey %s does not exist." -msgstr "Vragenlijst %s bestaat niet." - -#: classes/Gems/Default/ProjectTracksAction.php:121 -msgid "Survey not specified." -msgstr "Vragenlijst niet opgegeven." - -#: classes/Gems/Default/ProjectTracksAction.php:132 -#, php-format -msgid "Track %s does not exist." -msgstr "Trajectnummer %s bestaat niet." - -#: classes/Gems/Default/ReceptionAction.php:55 -msgid "Can be assigned to" -msgstr "Kan toegewezen worden aan" - -#: classes/Gems/Default/ReceptionAction.php:56 -msgid "Additional action" -msgstr "Aanvullende actie" - -#: classes/Gems/Default/ReceptionAction.php:79 -msgid "Code" -msgstr "Code" - -#: classes/Gems/Default/ReceptionAction.php:82 -msgid "Is success code" -msgstr "Is succes code" - -#: classes/Gems/Default/ReceptionAction.php:86 -msgid "This reception code is a success code." -msgstr "Aanzetten als deze ontvangst code positief is." - -#: classes/Gems/Default/ReceptionAction.php:90 -msgid "Only active codes can be selected." -msgstr "Alleen actieve codes kunnen geselecteerd worden." - -#: classes/Gems/Default/ReceptionAction.php:91 -msgid "For respondents" -msgstr "Voor patiënten" - -#: classes/Gems/Default/ReceptionAction.php:94 -msgid "This reception code can be assigned to a respondent." -msgstr "Deze ontvangstcode kan aan een patiënt toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:95 -msgid "For tracks" -msgstr "Voor trajecten" - -#: classes/Gems/Default/ReceptionAction.php:98 -msgid "This reception code can be assigned to a track." -msgstr "Deze ontvangstcode kan aan een traject toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:99 -msgid "For surveys" -msgstr "Voor vragenlijsten" - -#: classes/Gems/Default/ReceptionAction.php:102 -msgid "This reception code can be assigned to a survey." -msgstr "Deze ontvangstcode kan aan een vragenlijst toegewezen worden." - -#: classes/Gems/Default/ReceptionAction.php:103 -msgid "Redo survey" -msgstr "Vragenlijsten herhalen" - -#: classes/Gems/Default/ReceptionAction.php:106 -msgid "Redo a survey on this reception code." -msgstr "Herhaal vragenlijst bij deze ontvangstcode." - -#: classes/Gems/Default/ReceptionAction.php:107 -msgid "Overwrite ansers" -msgstr "Overschrijf bestaande antwoorden" - -#: classes/Gems/Default/ReceptionAction.php:110 -msgid "Remove the consent from already answered surveys." -msgstr "Verwijder \"informed consent\" van beantwoorde vragenlijsten" - -#: classes/Gems/Default/ReceptionAction.php:128 -msgid "reception code" -msgid_plural "reception codes" -msgstr[0] "Ontvangst code" -msgstr[1] "Ontvangst code" - -#: classes/Gems/Default/RespondentAction.php:119 -#, php-format -msgid "Random Example BSN: %s" -msgstr "Willekeurig voorbeeld BSN: %s" - -#: classes/Gems/Default/RespondentAction.php:122 -msgid "Enter a 9-digit SSN number." -msgstr "Voer een BSN nummer van 9 cijfers in." - -#: classes/Gems/Default/RespondentAction.php:131 -msgid "Identification" -msgstr "Identificatie" - -#: classes/Gems/Default/RespondentAction.php:132 -msgid "SSN" -msgstr "SSN" - -#: classes/Gems/Default/RespondentAction.php:136 -msgid "Patient number" -msgstr "Patiënt nummer" - -#: classes/Gems/Default/RespondentAction.php:145 -msgid "Medical data" -msgstr "Medische gegevens" - -#: classes/Gems/Default/RespondentAction.php:152 -msgid "DBC's, etc..." -msgstr "DBC's, etc..." - -#: classes/Gems/Default/RespondentAction.php:155 -msgid "Contact information" -msgstr "Contact informatie" - -#: classes/Gems/Default/RespondentAction.php:160 -msgid "Respondent has no e-mail" -msgstr "Patiënt zonder e-mail" - -#: classes/Gems/Default/RespondentAction.php:161 -msgid "With housenumber" -msgstr "Met huisnummer" - -#: classes/Gems/Default/RespondentAction.php:168 -msgid "Country" -msgstr "Land" - -#: classes/Gems/Default/RespondentAction.php:172 -msgid "Settings" -msgstr "Instellingen" - -#: classes/Gems/Default/RespondentAction.php:174 -msgid "Has the respondent signed the informed consent letter?" -msgstr "Heeft de patiënt het \"informed consent\" formulier ondertekend?" - -#: classes/Gems/Default/RespondentAction.php:199 -msgid "Comments" -msgstr "Opmerkingen" - -#: classes/Gems/Default/RespondentAction.php:200 -msgid "Physician" -msgstr "Dokter" - -#: classes/Gems/Default/RespondentAction.php:201 -msgid "Treatment" -msgstr "Behandeling" - -#: classes/Gems/Default/RespondentAction.php:230 -msgid "Rejection code" -msgstr "Afkeuringscode" - -#: classes/Gems/Default/RespondentAction.php:237 -msgid "Delete respondent" -msgstr "Verwijder patiënt" - -#: classes/Gems/Default/RespondentAction.php:288 -msgid "Respondent deleted." -msgstr "Patiënt verwijderd" - -#: classes/Gems/Default/RespondentAction.php:291 -msgid "Choose a reception code to delete." -msgstr "Kies een ontvangst code om te verwijderen." - -#: classes/Gems/Default/RespondentAction.php:335 -msgid "respondent" -msgid_plural "respondents" -msgstr[0] "patiënt" -msgstr[1] "patiënten" - -#: classes/Gems/Default/RespondentAction.php:405 -msgid "Please settle the informed consent form for this respondent." -msgstr "A.u.b. het informed consent formulier doornemen met deze patiënt" - -#: classes/Gems/Default/RespondentPlanAction.php:67 -#: classes/Gems/Default/SurveyAction.php:171 -msgid "Show respondent" -msgstr "Toon patiënt" - -#: classes/Gems/Default/RespondentPlanAction.php:73 -msgid "Show track" -msgstr "Toon traject" - -#: classes/Gems/Default/RespondentPlanAction.php:136 -msgid " of " -msgstr " van " - -#: classes/Gems/Default/RespondentPlanAction.php:137 -msgid "Progress" -msgstr "Voortgang" - -#: classes/Gems/Default/RespondentPlanAction.php:144 -msgid "Respondent planning" -msgstr "Per patiënt plannen" - -#: classes/Gems/Default/RoleAction.php:175 -msgid "Illegal name" -msgstr "Naam niet toegestaan" - -#: classes/Gems/Default/RoleAction.php:199 -#: classes/Gems/Default/RoleAction.php:258 -msgid "Parents" -msgstr "Afgeleid van" - -#: classes/Gems/Default/RoleAction.php:214 -msgid "Editing `master` is not allowed" -msgstr "Het wijzigen van `master` is niet toegestaan" - -#: classes/Gems/Default/RoleAction.php:232 -msgid "role" -msgid_plural "roles" -msgstr[0] "Rol" -msgstr[1] "Rollen" - -#: classes/Gems/Default/RoleAction.php:237 -msgid "Administrative roles" -msgstr "Beheer rollen en rechten" - -#: classes/Gems/Default/RoleAction.php:259 -#: classes/Gems/Default/RoleAction.php:275 -msgid "Allowed" -msgstr "Toegestaan" - -#: classes/Gems/Default/RoleAction.php:260 -#: classes/Gems/Default/RoleAction.php:276 -msgid "Denied" -msgstr "Geweigerd" - -#: classes/Gems/Default/RoleAction.php:264 -msgid "Project role overview" -msgstr "Project rollen" - -#: classes/Gems/Default/RoleAction.php:274 -msgid "Privilege" -msgstr "Privilége" - -#: classes/Gems/Default/RoleAction.php:280 -msgid "Project privileges" -msgstr "Project priviléges" - -#: classes/Gems/Default/SourceAction.php:69 -msgid "Leave empty for the Gems database." -msgstr "Leeglaten bij gebruik van de Gems database." - -#: classes/Gems/Default/SourceAction.php:79 -msgid "E.g. the name of the project - for single source projects." -msgstr "Bijvoorbeeld de project naam - bij projecten met maar één bron." - -#: classes/Gems/Default/SourceAction.php:81 -msgid "For creating token-survey url." -msgstr "Voor kenmerk-vragenlijst url." - -#: classes/Gems/Default/SourceAction.php:86 -msgid "The database server used by the source." -msgstr "Het merk database server gebruikt door deze bron." - -#: classes/Gems/Default/SourceAction.php:88 -msgid "Do not forget the underscores." -msgstr "Vergeet de underscores niet." - -#: classes/Gems/Default/SourceAction.php:91 -msgid "Database Username" -msgstr "Database gebruikersnaam" - -#: classes/Gems/Default/SourceAction.php:93 -msgid "Database Password" -msgstr "Database wachtwoord" - -#: classes/Gems/Default/SourceAction.php:111 -#, php-format -msgid "Checking survey results for %s source." -msgstr "Controle vragenlijstresultaten voor %s bron." - -#: classes/Gems/Default/SourceAction.php:143 -msgid "Source Url" -msgstr "Bron Url" - -#: classes/Gems/Default/SourceAction.php:145 -msgid "Adaptor class" -msgstr "Adaptor klasse" - -#: classes/Gems/Default/SourceAction.php:147 -msgid "Database Server" -msgstr "Database Server" - -#: classes/Gems/Default/SourceAction.php:149 -msgid "Database host" -msgstr "Database machine" - -#: classes/Gems/Default/SourceAction.php:153 -msgid "Table prefix" -msgstr "Voorvoegsel tabel" - -#: classes/Gems/Default/SourceAction.php:157 -msgid "Last check" -msgstr "Laatste controle" - -#: classes/Gems/Default/SourceAction.php:190 -msgid "source" -msgid_plural "sources" -msgstr[0] "bron" -msgstr[1] "bronnen" - -#: classes/Gems/Default/SourceAction.php:195 -msgid "Survey Sources" -msgstr "Bronnen" - -#: classes/Gems/Default/SourceAction.php:203 -msgid "This installation is active." -msgstr "Deze installatie is actief" - -#: classes/Gems/Default/SourceAction.php:205 -msgid "Inactive installation." -msgstr "Deze installatie is inactief" - -#: classes/Gems/Default/SourceAction.php:218 -#: classes/Gems/Default/SourceAction.php:237 -msgid "No changes." -msgstr "Geen veranderingen" - -#: classes/Gems/Default/SourceAction.php:233 -#, php-format -msgid "Synchronization of source %s:" -msgstr "Synchronisatie van %s bron:" - -#: classes/Gems/Default/SourceAction.php:244 -msgid "Synchronize all sources of surveys" -msgstr "Synchronizeer alle vragenlijsten bronnen" - -#: classes/Gems/Default/SourceAction.php:245 -msgid "Synchronization will update the status of all surveys imported into this project to the status at the sources." -msgstr "Synchronisatie zal de status van alle vragenlijsten in dit project aanpassen aan de status van de bron." - -#: classes/Gems/Default/SourceAction.php:252 -msgid "Are you sure you want to synchronize all survey sources?" -msgstr "Weet je zeker dat je alle bronnen wil synchroniseren?" - -#: classes/Gems/Default/StaffAction.php:169 -msgid "If checked the user will logoff when answering a survey." -msgstr "Indien actief, dan logt de gebruiker uit voor het beantwoorden van een vragenlijst." - -#: classes/Gems/Default/StaffAction.php:185 -msgid "You are not allowed to edit this staff member." -msgstr "U mag deze medewerker niet wijzigen." - -#: classes/Gems/Default/StaffAction.php:219 -msgid "Primary function" -msgstr "Primaire functie" - -#: classes/Gems/Default/StaffAction.php:225 -msgid "Logout on survey" -msgstr "Logout bij beantwoorden vragenlijst" - -#: classes/Gems/Default/StaffAction.php:295 -msgid "staff member" -msgid_plural "staff members" -msgstr[0] "medewerker" -msgstr[1] "medewerkers" - -#: classes/Gems/Default/SurveyAction.php:64 -msgid "Add survey" -msgstr "Vragenlijst toevoegen" - -#: classes/Gems/Default/SurveyAction.php:67 -#, php-format -msgid "Add another %s survey" -msgstr "Nog een %s vragenlijst toevoegen" - -#: classes/Gems/Default/Surve... [truncated message content] |
From: <gem...@li...> - 2011-11-25 16:12:51
|
Revision: 289 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=289&view=rev Author: matijsdejong Date: 2011-11-25 16:12:43 +0000 (Fri, 25 Nov 2011) Log Message: ----------- Split StaffUserDefinition into abstract DbUserDefinitionAbstract and made RespondentUserDefinition for completion of #31 respondents login. (Not on by default, but it is possible now.) Fixed bug in role usages with empty sets. Modified Paths: -------------- trunk/library/classes/Gems/Default/OrganizationAction.php trunk/library/classes/Gems/User/OldStaffUserDefinition.php trunk/library/classes/Gems/User/StaffUserDefinition.php trunk/library/classes/Gems/User/User.php trunk/library/classes/Gems/Util/DbLookup.php trunk/library/classes/GemsEscort.php trunk/library/configs/db/patches.sql trunk/library/configs/db/tables/gems__organizations.20.sql trunk/library/configs/db/tables/gems__roles.20.sql trunk/library/languages/default-en.mo trunk/library/languages/default-en.po trunk/library/languages/default-nl.mo trunk/library/languages/default-nl.po Added Paths: ----------- trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php trunk/library/classes/Gems/User/RespondentUserDefinition.php Modified: trunk/library/classes/Gems/Default/OrganizationAction.php =================================================================== --- trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-25 16:12:43 UTC (rev 289) @@ -138,6 +138,7 @@ $model->set('gor_active', 'label', $this->_('Active'), 'description', $this->_('Can the organization be used?'), 'elementClass', 'Checkbox', 'multiOptions', $yesNo); $model->set('gor_add_respondents', 'label', $this->_('Accepting'), 'description', $this->_('Can new respondents be added to the organization?'), 'elementClass', 'CheckBox', 'multiOptions', $yesNo); $model->set('gor_has_respondents', 'label', $this->_('Respondents'), 'description', $this->_('Does the organization have respondents?'), 'elementClass', 'Exhibitor', 'multiOptions', $yesNo); + $model->set('gor_respondent_group', 'label', $this->_('Respondent group'), 'description', $this->_('Allows respondents to login.'), 'multiOptions', $this->util->getDbLookup()->getAllowedRespondentGroups()); if ($detailed) { $model->set('gor_name', 'validator', $model->createUniqueValidator('gor_name')); Added: trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php =================================================================== --- trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php (rev 0) +++ trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php 2011-11-25 16:12:43 UTC (rev 289) @@ -0,0 +1,234 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage User + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * A standard, database stored user as of version 1.5. + * + * @package Gems + * @subpackage User + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +abstract class Gems_User_DbUserDefinitionAbstract extends Gems_User_UserDefinitionAbstract +{ + /** + * + * @var Zend_Db_Adapter_Abstract + */ + protected $db; + + /** + * + * @var Gems_Project_ProjectSettings + */ + protected $project; + + /** + * Return true if a password reset key can be created. + * + * Returns the setting for the definition whan no user is passed, otherwise + * returns the answer for this specific user. + * + * @param Gems_User_User $user Optional, the user whose password might change + * @return boolean + */ + public function canResetPassword(Gems_User_User $user = null) + { + if ($user) { + // Depends on the user. + return $user->hasEmailAddress() && $user->canSetPassword(); + } else { + return true; + } + } + + /** + * Return true if the password can be set. + * + * Returns the setting for the definition whan no user is passed, otherwise + * returns the answer for this specific user. + * + * @param Gems_User_User $user Optional, the user whose password might change + * @return boolean + */ + public function canSetPassword(Gems_User_User $user = null) + { + return true; + } + + /** + * Check whether a reset key is really linked to a user. + * + * @param Gems_User_User $user The user the key was created for (hopefully). + * @param string The key + * @return boolean + */ + public function checkPasswordResetKey(Gems_User_User $user, $key) + { + $model = new MUtil_Model_TableModel('gems__user_passwords'); + + $filter['gup_id_user'] = $user->getUserLoginId(); + $filter[] = 'DATE_ADD(gup_reset_requested, INTERVAL 24 HOUR) >= CURRENT_TIMESTAMP'; + + $row = $model->loadFirst($filter); + if ($row && $row['gup_reset_key']) { + return $key == $row['gup_reset_key']; + } + + return false; + } + + public function getAuthAdapter($formValues) + { + $adapter = new Zend_Auth_Adapter_DbTable($this->db, 'gems__user_passwords', 'gul_login', 'gup_password'); + + $pwd_hash = $this->hashPassword($formValues['password']); + + $select = $adapter->getDbSelect(); + $select->join('gems__user_logins', 'gup_id_user = gul_id_user', array()) + ->where('gul_can_login = 1') + ->where('gul_id_organization = ?', $formValues['organization']); + + $adapter->setIdentity($formValues['userlogin']) + ->setCredential($pwd_hash); + + return $adapter; + } + + /** + * Return a password reset key + * + * @param Gems_User_User $user The user to create a key for. + * @return string + */ + public function getPasswordResetKey(Gems_User_User $user) + { + $model = new MUtil_Model_TableModel('gems__user_passwords'); + Gems_Model::setChangeFieldsByPrefix($model, 'gup', $user->getUserId()); + + $data['gup_id_user'] = $user->getUserLoginId(); + + $row = $model->loadFirst($data + array('DATE_ADD(gup_reset_requested, INTERVAL 24 HOUR) >= CURRENT_TIMESTAMP')); + if ($row && $row['gup_reset_key']) { + // Keep using the key. + $data['gup_reset_key'] = $row['gup_reset_key']; + } else { + $data['gup_reset_key'] = $this->hashPassword(time() . $user->getEmailAddress()); + } + $data['gup_reset_requested'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); + + $model->save($data); + + return $data['gup_reset_key']; + } + + /** + * Returns a user object, that may be empty if the user is unknown. + * + * @param string $login_name + * @param int $organization + * @return array Of data to fill the user with. + */ + public function getUserData($login_name, $organization) + { + $select = $this->getUserSelect($login_name, $organization); + + return $this->db->fetchRow($select, array($login_name, $organization), Zend_Db::FETCH_ASSOC); + } + + /** + * A select used by subclasses to add fields to the select. + * + * @param string $login_name + * @param int $organization + * @return Zend_Db_Select + */ + abstract protected function getUserSelect($login_name, $organization); + + /** + * Allow overruling of password hashing. + * + * @param string $password + * @return string + */ + protected function hashPassword($password) + { + return $this->project->getValueHash($password); + } + + /** + * Return true if the user has a password. + * + * @param Gems_User_User $user The user to check + * @return boolean + */ + public function hasPassword(Gems_User_User $user) + { + $sql = "SELECT CASE WHEN gup_password IS NULL THEN 0 ELSE 1 END FROM gems__user_passwords WHERE gup_id_user = ?"; + + return (boolean) $this->db->fetchOne($sql, $user->getUserLoginId()); + } + + /** + * Set the password, if allowed for this user type. + * + * @param Gems_User_User $user The user whose password to change + * @param string $password + * @return Gems_User_UserDefinitionInterface (continuation pattern) + */ + public function setPassword(Gems_User_User $user, $password) + { + $data['gup_id_user'] = $user->getUserLoginId(); + $data['gup_reset_key'] = null; + $data['gup_reset_requested'] = null; + $data['gup_reset_required'] = 0; + if (null === $password) { + // Passwords may be emptied. + $data['gup_password'] = null; + } else { + $data['gup_password'] = $this->hashPassword($password); + } + + $model = new MUtil_Model_TableModel('gems__user_passwords'); + Gems_Model::setChangeFieldsByPrefix($model, 'gup', $user->getUserId()); + + $model->save($data); + + return $this; + } +} \ No newline at end of file Modified: trunk/library/classes/Gems/User/OldStaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-25 16:12:43 UTC (rev 289) @@ -170,19 +170,26 @@ protected function getUserSelect($login_name, $organization) { /** - * Read the needed parameters from the different tables, lots of renames for backward - * compatibility + * Read the needed parameters from the different tables, lots of renames + * for compatibility accross implementations. */ $select = new Zend_Db_Select($this->db); - $select->from('gems__staff', array('user_id' => 'gsf_id_user', - 'user_login' => 'gsf_login', - 'user_email' => 'gsf_email', - 'user_group' => 'gsf_id_primary_group', - 'user_locale' => 'gsf_iso_lang', - 'user_logout' => 'gsf_logout_on_survey', - 'user_base_org_id' => 'gsf_id_organization')) - ->columns(array('user_name'=>"(concat(coalesce(concat(`gems__staff`.`gsf_first_name`,_utf8' '),_utf8''),coalesce(concat(`gems__staff`.`gsf_surname_prefix`,_utf8' '),_utf8''),coalesce(`gems__staff`.`gsf_last_name`,_utf8'')))")) - ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array('user_role'=>'ggp_role')) + $select->from('gems__staff', array( + 'user_id' => 'gsf_id_user', + 'user_login' => 'gsf_login', + 'user_email' => 'gsf_email', + 'user_first_name' => 'gsf_first_name', + 'user_surname_prefix' => 'gsf_surname_prefix', + 'user_last_name' => 'gsf_last_name', + 'user_gender' => 'gsf_gender', + 'user_group' => 'gsf_id_primary_group', + 'user_locale' => 'gsf_iso_lang', + 'user_logout' => 'gsf_logout_on_survey', + 'user_base_org_id' => 'gsf_id_organization' + )) + ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array( + 'user_role' => 'ggp_role', + )) ->where('ggp_group_active = 1') ->where('gsf_active = 1') ->where('gsf_login = ?') Added: trunk/library/classes/Gems/User/RespondentUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/RespondentUserDefinition.php (rev 0) +++ trunk/library/classes/Gems/User/RespondentUserDefinition.php 2011-11-25 16:12:43 UTC (rev 289) @@ -0,0 +1,94 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage User + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * A standard, database stored and authenticate staff user as of version 1.5. + * + * @package Gems + * @subpackage User + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +class Gems_User_RespondentUserDefinition extends Gems_User_DbUserDefinitionAbstract +{ + /** + * A select used by subclasses to add fields to the select. + * + * @param string $login_name + * @param int $organization + * @return Zend_Db_Select + */ + protected function getUserSelect($login_name, $organization) + { + // 'user_group' => 'gsf_id_primary_group', 'user_logout' => 'gsf_logout_on_survey', + $select = new Zend_Db_Select($this->db); + $select->from('gems__user_logins', array( + 'user_login_id' => 'gul_id_user', + )) + ->join('gems__respondent2org', 'gul_login = gr2o_patient_nr AND gul_id_organization = gr2o_id_organization', array( + 'user_login' => 'gr2o_patient_nr', + 'user_base_org_id' => 'gr2o_id_organization', + )) + ->join('gems__respondents', 'gr2o_id_user = grs_id_user', array( + 'user_id' => 'grs_id_user', + 'user_email' => 'grs_email', + 'user_first_name' => 'grs_first_name', + 'user_surname_prefix' => 'grs_surname_prefix', + 'user_last_name' => 'grs_last_name', + 'user_gender' => 'grs_gender', + 'user_locale' => 'grs_iso_lang', + )) + ->join('gems__organizations', 'gr2o_id_organization=gor_id_organization', array()) + ->join('gems__groups', 'gor_respondent_group=ggp_id_group', array( + 'user_role'=>'ggp_role', + 'user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges', + )) + ->joinLeft('gems__user_passwords', 'gul_id_user = gup_id_user', array( + 'user_password_reset' => 'gup_reset_required', + )) + ->joinLeft('gems__reception_codes', 'gr2o_reception_code = grc_id_reception_code', array()) + ->where('ggp_group_active = 1') + ->where('grc_success = 1') + ->where('gul_can_login = 1') + ->where('gul_login = ?') + ->where('gul_id_organization = ?') + ->limit(1); + + return $select; + } +} \ No newline at end of file Modified: trunk/library/classes/Gems/User/StaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-25 16:12:43 UTC (rev 289) @@ -44,156 +44,45 @@ * @license New BSD License * @since Class available since version 1.5 */ -class Gems_User_StaffUserDefinition extends Gems_User_UserDefinitionAbstract +class Gems_User_StaffUserDefinition extends Gems_User_DbUserDefinitionAbstract { /** + * A select used by subclasses to add fields to the select. * - * @var Zend_Db_Adapter_Abstract - */ - protected $db; - - /** - * - * @var Gems_Project_ProjectSettings - */ - protected $project; - - /** - * Return true if a password reset key can be created. - * - * Returns the setting for the definition whan no user is passed, otherwise - * returns the answer for this specific user. - * - * @param Gems_User_User $user Optional, the user whose password might change - * @return boolean - */ - public function canResetPassword(Gems_User_User $user = null) - { - if ($user) { - // Depends on the user. - return $user->hasEmailAddress() && $user->canSetPassword(); - } else { - return true; - } - } - - /** - * Return true if the password can be set. - * - * Returns the setting for the definition whan no user is passed, otherwise - * returns the answer for this specific user. - * - * @param Gems_User_User $user Optional, the user whose password might change - * @return boolean - */ - public function canSetPassword(Gems_User_User $user = null) - { - return true; - } - - /** - * Check whether a reset key is really linked to a user. - * - * @param Gems_User_User $user The user the key was created for (hopefully). - * @param string The key - * @return boolean - */ - public function checkPasswordResetKey(Gems_User_User $user, $key) - { - $model = new MUtil_Model_TableModel('gems__user_passwords'); - - $filter['gup_id_user'] = $user->getUserLoginId(); - $filter[] = 'DATE_ADD(gup_reset_requested, INTERVAL 24 HOUR) >= CURRENT_TIMESTAMP'; - - $row = $model->loadFirst($filter); - if ($row && $row['gup_reset_key']) { - return $key == $row['gup_reset_key']; - } - - return false; - } - - public function getAuthAdapter($formValues) - { - $adapter = new Zend_Auth_Adapter_DbTable($this->db, 'gems__user_passwords', 'gul_login', 'gup_password'); - - $pwd_hash = $this->hashPassword($formValues['password']); - - $select = $adapter->getDbSelect(); - $select->join('gems__user_logins', 'gup_id_user = gul_id_user', array()) - ->where('gul_can_login = 1') - ->where('gul_id_organization = ?', $formValues['organization']); - - $adapter->setIdentity($formValues['userlogin']) - ->setCredential($pwd_hash); - - return $adapter; - } - - /** - * Return a password reset key - * - * @param Gems_User_User $user The user to create a key for. - * @return string - */ - public function getPasswordResetKey(Gems_User_User $user) - { - $model = new MUtil_Model_TableModel('gems__user_passwords'); - Gems_Model::setChangeFieldsByPrefix($model, 'gup', $user->getUserId()); - - $data['gup_id_user'] = $user->getUserLoginId(); - - $row = $model->loadFirst($data + array('DATE_ADD(gup_reset_requested, INTERVAL 24 HOUR) >= CURRENT_TIMESTAMP')); - if ($row && $row['gup_reset_key']) { - // Keep using the key. - $data['gup_reset_key'] = $row['gup_reset_key']; - } else { - $data['gup_reset_key'] = $this->hashPassword(time() . $user->getEmailAddress()); - } - $data['gup_reset_requested'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); - - $model->save($data); - - return $data['gup_reset_key']; - } - - /** - * Returns a user object, that may be empty if the user is unknown. - * * @param string $login_name * @param int $organization - * @return array Of data to fill the user with. - */ - public function getUserData($login_name, $organization) - { - $select = $this->getUserSelect($login_name, $organization); - - return $this->db->fetchRow($select, array($login_name, $organization), Zend_Db::FETCH_ASSOC); - } - - /** - * Stub to allow subclasses to add fields to the select. - * - * @param string $login_name - * @param int $organization * @return Zend_Db_Select */ protected function getUserSelect($login_name, $organization) { + /** + * Read the needed parameters from the different tables, lots of renames + * for compatibility accross implementations. + */ $select = new Zend_Db_Select($this->db); - $select->from('gems__user_logins', array('user_login_id' => 'gul_id_user')) + $select->from('gems__user_logins', array( + 'user_login_id' => 'gul_id_user', + )) ->join('gems__staff', 'gul_login = gsf_login AND gul_id_organization = gsf_id_organization', array( - 'user_id' => 'gsf_id_user', - 'user_login' => 'gsf_login', - 'user_email' => 'gsf_email', - 'user_group' => 'gsf_id_primary_group', - 'user_locale' => 'gsf_iso_lang', - 'user_logout' => 'gsf_logout_on_survey', - 'user_base_org_id' => 'gsf_id_organization')) - ->columns(array('user_name'=>"(concat(coalesce(concat(`gems__staff`.`gsf_first_name`,_utf8' '),_utf8''),coalesce(concat(`gems__staff`.`gsf_surname_prefix`,_utf8' '),_utf8''),coalesce(`gems__staff`.`gsf_last_name`,_utf8'')))")) - ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array('user_role'=>'ggp_role', 'user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges')) - ->joinLeft('gems__user_passwords', 'gul_id_user = gup_id_user', - array('user_password_reset' => 'gup_reset_required')) + 'user_id' => 'gsf_id_user', + 'user_login' => 'gsf_login', + 'user_email' => 'gsf_email', + 'user_first_name' => 'gsf_first_name', + 'user_surname_prefix' => 'gsf_surname_prefix', + 'user_last_name' => 'gsf_last_name', + 'user_gender' => 'gsf_gender', + 'user_group' => 'gsf_id_primary_group', + 'user_locale' => 'gsf_iso_lang', + 'user_logout' => 'gsf_logout_on_survey', + 'user_base_org_id' => 'gsf_id_organization', + )) + ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array( + 'user_role'=>'ggp_role', + 'user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges', + )) + ->joinLeft('gems__user_passwords', 'gul_id_user = gup_id_user', array( + 'user_password_reset' => 'gup_reset_required', + )) ->where('ggp_group_active = 1') ->where('gsf_active = 1') ->where('gul_can_login = 1') @@ -203,56 +92,4 @@ return $select; } - - /** - * Allow overruling of password hashing. - * - * @param string $password - * @return string - */ - protected function hashPassword($password) - { - return $this->project->getValueHash($password); - } - - /** - * Return true if the user has a password. - * - * @param Gems_User_User $user The user to check - * @return boolean - */ - public function hasPassword(Gems_User_User $user) - { - $sql = "SELECT CASE WHEN gup_password IS NULL THEN 0 ELSE 1 END FROM gems__user_passwords WHERE gup_id_user = ?"; - - return (boolean) $this->db->fetchOne($sql, $user->getUserLoginId()); - } - - /** - * Set the password, if allowed for this user type. - * - * @param Gems_User_User $user The user whose password to change - * @param string $password - * @return Gems_User_UserDefinitionInterface (continuation pattern) - */ - public function setPassword(Gems_User_User $user, $password) - { - $data['gup_id_user'] = $user->getUserLoginId(); - $data['gup_reset_key'] = null; - $data['gup_reset_requested'] = null; - $data['gup_reset_required'] = 0; - if (null === $password) { - // Passwords may be emptied. - $data['gup_password'] = null; - } else { - $data['gup_password'] = $this->hashPassword($password); - } - - $model = new MUtil_Model_TableModel('gems__user_passwords'); - Gems_Model::setChangeFieldsByPrefix($model, 'gup', $user->getUserId()); - - $model->save($data); - - return $this; - } } \ No newline at end of file Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/classes/Gems/User/User.php 2011-11-25 16:12:43 UTC (rev 289) @@ -411,6 +411,22 @@ */ public function getFullName() { + if (! $this->_getVar('user_name')) { + $name = ltrim($this->_getVar('user_first_name') . ' ') . + ltrim($this->_getVar('user_surname_prefix') . ' ') . + $this->_getVar('user_last_name'); + + if (! $name) { + // Use obfuscated login name + $name = $this->getLoginName(); + $name = subs($name, 0, 3) . str_repeat('*', strlen($name) - 2); + } + + $this->_setVar('user_name', $name); + + // MUtil_Echo::track($name); + } + return $this->_getVar('user_name'); } Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/classes/Gems/Util/DbLookup.php 2011-11-25 16:12:43 UTC (rev 289) @@ -128,6 +128,18 @@ * * @return array */ + public function getAllowedRespondentGroups() + { + return $this->util->getTranslated()->getEmptyDropdownArray() + + $this->db->fetchPairs('SELECT ggp_id_group, ggp_name FROM gems__groups WHERE ggp_group_active=1 AND ggp_respondent_members=1 ORDER BY ggp_name'); + } + + /** + * Retrieve an array of groups the user is allowed to assign: his own group and all groups + * he inherits rights from + * + * @return array + */ public function getAllowedStaffGroups() { $groups = $this->getActiveStaffGroups(); Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/classes/GemsEscort.php 2011-11-25 16:12:43 UTC (rev 289) @@ -884,9 +884,11 @@ */ protected function _layoutUser(array $args = null) { - if (isset($this->session->user_name)) { + $user = $this->getLoader()->getCurrentUser(); + + if ($user->isActive()) { return MUtil_Html::create()->div( - sprintf($this->_('User: %s'), $this->session->user_name), + sprintf($this->_('User: %s'), $user->getFullName()), $args, array('id' => 'username') ); Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/configs/db/patches.sql 2011-11-25 16:12:43 UTC (rev 289) @@ -325,9 +325,15 @@ UPDATE `gems__organizations` SET gor_has_respondents = COALESCE((SELECT 1 FROM gems__respondent2org WHERE gr2o_id_organization = gor_id_organization GROUP BY gr2o_id_organization), 0); UPDATE `gems__organizations` SET gor_add_respondents = CASE WHEN gor_has_respondents = 1 AND gor_active = 1 THEN 1 ELSE 0 END; +ALTER TABLE `gems__organizations` ADD gor_respondent_group bigint unsigned null AFTER gor_add_respondents; + -- PATCH: Log failed logins INSERT INTO `gems__log_actions` (`glac_id_action`, `glac_name`, `glac_change`, `glac_log`, `glac_created`) VALUES (NULL , 'loginFail', '0', '1', CURRENT_TIMESTAMP); -- PATCH: IP ranges for groups ALTER TABLE `gems__groups` ADD `ggp_allowed_ip_ranges` TEXT CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null AFTER `ggp_respondent_members`; + +-- PATCH: Roles fields sometimes empty +ALTER TABLE gems__roles CHANGE grl_parents grl_parents text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null; +ALTER TABLE gems__roles CHANGE grl_privileges grl_privileges text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null; Modified: trunk/library/configs/db/tables/gems__organizations.20.sql =================================================================== --- trunk/library/configs/db/tables/gems__organizations.20.sql 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/configs/db/tables/gems__organizations.20.sql 2011-11-25 16:12:43 UTC (rev 289) @@ -1,33 +1,34 @@ CREATE TABLE if not exists gems__organizations ( - gor_id_organization bigint unsigned not null auto_increment, + gor_id_organization bigint unsigned not null auto_increment, - gor_name varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, - gor_code varchar(20) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_location varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_url varchar(127) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_task varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_name varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, + gor_code varchar(20) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_location varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_url varchar(127) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_task varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, -- A commy separated list of organization numbers that can look at respondents in this organization - gor_accessible_by text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_accessible_by text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_contact_name varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_contact_email varchar(127) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_welcome text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_signature text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_contact_name varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_contact_email varchar(127) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_welcome text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, + gor_signature text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gor_style varchar(15) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null default 'gems', - gor_iso_lang char(2) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' - not null default 'en' references gems__languages (gml_iso_lang), + gor_style varchar(15) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null default 'gems', + gor_iso_lang char(2) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' + not null default 'en' references gems__languages (gml_iso_lang), - gor_has_respondents boolean not null default 1, - gor_add_respondents boolean not null default 1, - gor_active boolean not null default 1, + gor_has_respondents boolean not null default 1, + gor_add_respondents boolean not null default 1, + gor_respondent_group bigint unsigned references gems__groups (ggp_id_group) null, + gor_active boolean not null default 1, - gor_changed timestamp not null default current_timestamp on update current_timestamp, - gor_changed_by bigint unsigned not null, - gor_created timestamp not null, - gor_created_by bigint unsigned not null, + gor_changed timestamp not null default current_timestamp on update current_timestamp, + gor_changed_by bigint unsigned not null, + gor_created timestamp not null, + gor_created_by bigint unsigned not null, PRIMARY KEY(gor_id_organization), UNIQUE (gor_code) Modified: trunk/library/configs/db/tables/gems__roles.20.sql =================================================================== --- trunk/library/configs/db/tables/gems__roles.20.sql 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/configs/db/tables/gems__roles.20.sql 2011-11-25 16:12:43 UTC (rev 289) @@ -4,10 +4,10 @@ grl_name varchar(30) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, grl_description varchar(50) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, - grl_parents text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, + grl_parents text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, -- The grl_parents is a comma-separated list of parents for this role - grl_privileges text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' not null, + grl_privileges text CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, -- The grl_privilege is a comma-separated list of privileges for this role grl_changed timestamp not null default current_timestamp on update current_timestamp, Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/languages/default-en.po 2011-11-25 16:12:43 UTC (rev 289) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: Pulse EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-23 19:43+0100\n" +"POT-Creation-Date: 2011-11-25 17:05+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -23,53 +23,53 @@ msgid "Path %s not writable" msgstr "Path %s not writable" -#: classes/GemsEscort.php:887 +#: classes/GemsEscort.php:891 #, php-format msgid "User: %s" msgstr "User: %s" -#: classes/GemsEscort.php:911 +#: classes/GemsEscort.php:916 msgid "version" msgstr "version" -#: classes/GemsEscort.php:1342 +#: classes/GemsEscort.php:1347 msgid "Take note: your session has expired, your inputs were not saved. Please check the input data and try again" msgstr "Take note: your session has expired, your inputs were not saved. Please check the input data and try again" -#: classes/GemsEscort.php:1469 +#: classes/GemsEscort.php:1474 msgid "Please check back later." msgstr "Please check back later." -#: classes/GemsEscort.php:1471 -#: classes/GemsEscort.php:1475 #: classes/GemsEscort.php:1476 +#: classes/GemsEscort.php:1480 +#: classes/GemsEscort.php:1481 msgid "System is in maintenance mode" msgstr "System is in maintenance mode" -#: classes/GemsEscort.php:1486 +#: classes/GemsEscort.php:1491 msgid "No access to site." msgstr "No access to site." -#: classes/GemsEscort.php:1488 -#: classes/GemsEscort.php:1524 +#: classes/GemsEscort.php:1493 +#: classes/GemsEscort.php:1529 msgid "You have no access to this site." msgstr "You have no access to this site." -#: classes/GemsEscort.php:1504 +#: classes/GemsEscort.php:1509 msgid "No access to page" msgstr "No access to page" -#: classes/GemsEscort.php:1506 +#: classes/GemsEscort.php:1511 #, php-format msgid "Access to this page is not allowed for current role: %s." msgstr "Access to this page is not allowed for current role: %s." -#: classes/GemsEscort.php:1511 -#: classes/GemsEscort.php:1522 +#: classes/GemsEscort.php:1516 +#: classes/GemsEscort.php:1527 msgid "You are no longer logged in." msgstr "You are no longer logged in." -#: classes/GemsEscort.php:1512 +#: classes/GemsEscort.php:1517 msgid "You must login to access this page." msgstr "You must login to access this page." @@ -1094,50 +1094,50 @@ msgid "Your password must be changed." msgstr "Your password must be changed." -#: classes/Gems/Default/IndexAction.php:301 +#: classes/Gems/Default/IndexAction.php:300 #, php-format msgid "Login successful, welcome %s." msgstr "Login successful, welcome %s." -#: classes/Gems/Default/IndexAction.php:341 +#: classes/Gems/Default/IndexAction.php:340 #, php-format msgid "Good bye: %s." msgstr "Good bye: %s." -#: classes/Gems/Default/IndexAction.php:366 +#: classes/Gems/Default/IndexAction.php:365 msgid "Reset accepted, enter your new password." msgstr "Reset accepted, enter your new password." -#: classes/Gems/Default/IndexAction.php:370 +#: classes/Gems/Default/IndexAction.php:369 msgid "This key timed out or does not belong to this user." msgstr "This key timed out or does not belong to this user." -#: classes/Gems/Default/IndexAction.php:387 +#: classes/Gems/Default/IndexAction.php:386 msgid "Password reset requested" msgstr "Password reset requested" -#: classes/Gems/Default/IndexAction.php:388 +#: classes/Gems/Default/IndexAction.php:387 #, php-format msgid "To reset your password for %s, please click this link: %s" msgstr "To reset your password for %s, please click this link: %s" -#: classes/Gems/Default/IndexAction.php:393 +#: classes/Gems/Default/IndexAction.php:392 msgid "We sent you an e-mail with a reset link. Click on the link in the e-mail." msgstr "We sent you an e-mail with a reset link. Click on the link in the e-mail." -#: classes/Gems/Default/IndexAction.php:395 +#: classes/Gems/Default/IndexAction.php:394 msgid "Unable to send e-mail." msgstr "Unable to send e-mail." -#: classes/Gems/Default/IndexAction.php:400 +#: classes/Gems/Default/IndexAction.php:399 msgid "No such user found or no e-mail address known or user cannot be reset." msgstr "No such user found or no e-mail address known or user cannot be reset." -#: classes/Gems/Default/IndexAction.php:404 +#: classes/Gems/Default/IndexAction.php:403 msgid "We received your password reset key." msgstr "We received your password reset key." -#: classes/Gems/Default/IndexAction.php:405 +#: classes/Gems/Default/IndexAction.php:404 msgid "Please enter the organization and username belonging to this key." msgstr "Please enter the organization and username belonging to this key." @@ -1484,7 +1484,7 @@ msgstr "Login Name" #: classes/Gems/Default/OptionAction.php:188 -#: classes/Gems/Default/OrganizationAction.php:191 +#: classes/Gems/Default/OrganizationAction.php:134 #: classes/Gems/Default/RespondentAction.php:173 #: classes/Gems/Default/StaffAction.php:224 msgid "Language" @@ -1513,100 +1513,100 @@ msgid "Item" msgstr "Item" -#: classes/Gems/Default/OrganizationAction.php:124 -msgid "Cookies must be enabled." -msgstr "Cookies must be enabled." - -#: classes/Gems/Default/OrganizationAction.php:127 +#: classes/Gems/Default/OrganizationAction.php:91 msgid "Invalid organization." msgstr "Invalid organization." -#: classes/Gems/Default/OrganizationAction.php:135 +#: classes/Gems/Default/OrganizationAction.php:99 msgid "New organization..." msgstr "New organization..." -#: classes/Gems/Default/OrganizationAction.php:144 -msgid "Choose an organization" -msgstr "Choose an organization" - -#: classes/Gems/Default/OrganizationAction.php:180 +#: classes/Gems/Default/OrganizationAction.php:123 msgid "Url" msgstr "Url" -#: classes/Gems/Default/OrganizationAction.php:181 +#: classes/Gems/Default/OrganizationAction.php:124 msgid "Task" msgstr "Task" -#: classes/Gems/Default/OrganizationAction.php:182 +#: classes/Gems/Default/OrganizationAction.php:125 msgid "Contact name" msgstr "Contact name" -#: classes/Gems/Default/OrganizationAction.php:183 +#: classes/Gems/Default/OrganizationAction.php:126 msgid "Contact email" msgstr "Contact email" -#: classes/Gems/Default/OrganizationAction.php:186 +#: classes/Gems/Default/OrganizationAction.php:129 msgid "Style" msgstr "Style" -#: classes/Gems/Default/OrganizationAction.php:195 +#: classes/Gems/Default/OrganizationAction.php:138 msgid "Can the organization be used?" msgstr "Can the organization be used?" -#: classes/Gems/Default/OrganizationAction.php:196 +#: classes/Gems/Default/OrganizationAction.php:139 msgid "Accepting" msgstr "Accepting" -#: classes/Gems/Default/OrganizationAction.php:196 +#: classes/Gems/Default/OrganizationAction.php:139 msgid "Can new respondents be added to the organization?" msgstr "Can new patients be added to the organization?" -#: classes/Gems/Default/OrganizationAction.php:197 +#: classes/Gems/Default/OrganizationAction.php:140 msgid "Does the organization have respondents?" msgstr "Does the organization have patients?" -#: classes/Gems/Default/OrganizationAction.php:201 +#: classes/Gems/Default/OrganizationAction.php:141 +msgid "Respondent group" +msgstr "Patient group" + +#: classes/Gems/Default/OrganizationAction.php:141 +msgid "Allows respondents to login." +msgstr "Allow patients to login." + +#: classes/Gems/Default/OrganizationAction.php:145 msgid "Greeting" msgstr "Greeting" -#: classes/Gems/Default/OrganizationAction.php:201 -#: classes/Gems/Default/OrganizationAction.php:202 +#: classes/Gems/Default/OrganizationAction.php:145 +#: classes/Gems/Default/OrganizationAction.php:146 msgid "For emails and token forward screen." msgstr "For emails and token forward screen." -#: classes/Gems/Default/OrganizationAction.php:202 +#: classes/Gems/Default/OrganizationAction.php:146 msgid "Signature" msgstr "Signature" -#: classes/Gems/Default/OrganizationAction.php:204 +#: classes/Gems/Default/OrganizationAction.php:148 msgid "Accessible by" msgstr "Accessible by" -#: classes/Gems/Default/OrganizationAction.php:204 +#: classes/Gems/Default/OrganizationAction.php:148 msgid "Checked organizations see this organizations respondents." msgstr "Checked organizations see this organizations patients." -#: classes/Gems/Default/OrganizationAction.php:214 +#: classes/Gems/Default/OrganizationAction.php:158 msgid "Code name" msgstr "Code name" -#: classes/Gems/Default/OrganizationAction.php:214 +#: classes/Gems/Default/OrganizationAction.php:158 msgid "Only for programmers." msgstr "Only for programmers." -#: classes/Gems/Default/OrganizationAction.php:228 +#: classes/Gems/Default/OrganizationAction.php:172 msgid "Delete organization" msgstr "Delete organization" -#: classes/Gems/Default/OrganizationAction.php:238 +#: classes/Gems/Default/OrganizationAction.php:182 msgid "Edit organization" msgstr "Edit organization" -#: classes/Gems/Default/OrganizationAction.php:248 +#: classes/Gems/Default/OrganizationAction.php:192 msgid "Participating organizations" msgstr "Participating organizations" -#: classes/Gems/Default/OrganizationAction.php:258 +#: classes/Gems/Default/OrganizationAction.php:202 msgid "Show organization" msgstr "Show organization" @@ -3442,6 +3442,10 @@ msgstr[0] "A password should contain at least one number." msgstr[1] "A password should contain at least %d numbers." +#: classes/Gems/User/User.php:765 +msgid "Cookies must be enabled for this site." +msgstr "Cookies must be enabled for this site." + #: classes/Gems/User/UserPasswordValidator.php:115 msgid "Wrong password." msgstr "Wrong password." @@ -3784,7 +3788,6 @@ msgstr "Deleted token %s for survey %s." #: snippets/DeleteTrackTokenSnippet.php:277 -#: snippets/EditTrackTokenSnippet.php:174 #, php-format msgid "%d token changed by recalculation." msgid_plural "%d tokens changed by recalculation." @@ -3809,10 +3812,12 @@ msgstr "Recalculate track" #: snippets/RespondentDetailsSnippet.php:59 +#: snippets/RespondentDetailsWithAssignmentsSnippet.php:74 msgid "Respondent information" msgstr "Patient information" #: snippets/RespondentDetailsSnippet.php:71 +#: snippets/RespondentDetailsWithAssignmentsSnippet.php:97 msgid "Respondent nr: " msgstr "Patient nr:" @@ -3900,6 +3905,10 @@ msgid "This track can be assigned since %s." msgstr "This track can be assigned since %s." +#: snippets/Organization/ChooseOrganizationSnippet.php:86 +msgid "Choose an organization" +msgstr "Choose an organization" + #: snippets/Organization/ChooseOrganizationSnippet.php:93 msgid "This organization cannot have any respondents, please choose one that does:" msgstr "This organization cannot have any patients, please choose one that does:" @@ -3908,8 +3917,8 @@ msgid "This organization cannot have any respondents." msgstr "This organization cannot have any patients." -#~ msgid "Allow new respondents" -#~ msgstr "Allow new patients" +#~ msgid "Cookies must be enabled." +#~ msgstr "Cookies must be enabled." #~ msgid "Please update the database" #~ msgstr "Please update the database" Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2011-11-25 12:55:53 UTC (rev 288) +++ trunk/library/languages/default-nl.po 2011-11-25 16:12:43 UTC (rev 289) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: Pulse NL\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-11-23 19:43+0100\n" +"POT-Creation-Date: 2011-11-25 17:06+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -23,53 +23,53 @@ msgid "Path %s not writable" msgstr "Path %s niet schrijfbaar" -#: classes/GemsEscort.php:887 +#: classes/GemsEscort.php:891 #, php-format msgid "User: %s" msgstr "Login: %s" -#: classes/GemsEscort.php:911 +#: classes/GemsEscort.php:916 msgid "version" msgstr "versie" -#: classes/GemsEscort.php:1342 +#: classes/GemsEscort.php:1347 msgid "Take note: your session has expired, your inputs were not saved. Please check the input data and try again" msgstr "Let op: uw sessie is verlopen, uw invoer is niet opgeslagen. Controleer uw gegevens en probeer a.u.b. opnieuw." -#: classes/GemsEscort.php:1469 +#: classes/GemsEscort.php:1474 msgid "Please check back later." msgstr "Probeer het later opnieuw." -#: classes/GemsEscort.php:1471 -#: classes/GemsEscort.php:1475 #: classes/GemsEscort.php:1476 +#: classes/GemsEscort.php:1480 +#: classes/GemsEscort.php:1481 msgid "System is in maintenance mode" msgstr "Systeem is in onderhoudsmodus" -#: classes/GemsEscort.php:1486 +#: classes/GemsEscort.php:1491 msgid "No access to site." msgstr "Geen toegang tot website." -#: classes/GemsEscort.php:1488 -#: classes/GemsEscort.php:1524 +#: classes/GemsEscort.php:1493 +#: classes/GemsEscort.php:1529 msgid "You have no access to this site." msgstr "U heeft geen toegang tot deze website." -#: classes/GemsEscort.php:1504 +#: classes/GemsEscort.php:1509 msgid "No access to page" msgstr "Geen toegang tot pagina" -#: classes/GemsEscort.php:1506 +#: classes/GemsEscort.php:1511 #, php-format msgid "Access to this page is not allowed for current role: %s." msgstr "U heeft geen toegang tot deze pagina. Uw huidige rol is: %s." -#: classes/GemsEscort.php:1511 -#: classes/GemsEscort.php:1522 +#: classes/GemsEscort.php:1516 +#: classes/GemsEscort.php:1527 msgid "You are no longer logged in." msgstr "U bent niet meer ingelogd." -#: classes/GemsEscort.php:1512 +#: classes/GemsEscort.php:1517 msgid "You must login to access this page." msgstr "U moet ingelogd zijn voor toegang tot deze pagina." @@ -1094,50 +1094,50 @@ msgid "Your password must be changed." msgstr "Uw wachtwoord moet veranderd worden." -#: classes/Gems/Default/IndexAction.php:301 +#: classes/Gems/Default/IndexAction.php:300 #, php-format msgid "Login successful, welcome %s." msgstr "Login in orde, welkom %s." -#: classes/Gems/Default/IndexAction.php:341 +#: classes/Gems/Default/IndexAction.php:340 #, php-format msgid "Good bye: %s." msgstr "Tot ziens: %s." -#: classes/Gems/Default/IndexAction.php:366 +#: classes/Gems/Default/IndexAction.php:365 msgid "Reset accepted, enter your new password." msgstr "Reset geaccepteerd, voer uw nieuwe wachtwoord in." -#: classes/Gems/Default/IndexAction.php:370 +#: classes/Gems/Default/IndexAction.php:369 msgid "This key timed out or does not belong to this user." msgstr "Te oude sleutel of sleutel hoort niet bij gebruiker." -#: classes/Gems/Default/IndexAction.php:387 +#: classes/Gems/Default/IndexAction.php:386 msgid "Password reset requested" msgstr "Wachtwoord reset aangevraagd" -#: classes/Gems/Default/IndexAction.php:388 +#: classes/Gems/Default/IndexAction.php:387 #, php-format msgid "To reset your password for %s, please click this link: %s" msgstr "Om uw wachtwoord voor %s te resetten, klik op deze link: %s" -#: classes/Gems/Default/IndexAction.php:393 +#: classes/Gems/Default/IndexAction.php:392 msgid "We sent you an e-mail with a reset link. Click on the link in the e-mail." msgstr "We hebben u een email met reset link gestuurd. Klik op de link in de email." -#: classes/Gems/Default/IndexAction.php:395 +#: classes/Gems/Default/IndexAction.php:394 msgid "Unable to send e-mail." msgstr "Verzenden e-mail mislukt." -#: classes/Gems/Default/IndexAction.php:400 +#: classes/Gems/Default/IndexAction.php:399 msgid "No such user found or no e-mail address known or user cannot be reset." msgstr "Gebruiker niet gevonden of e-mail adres onbekend of gebruiker kan niet gereset worden." -#: classes/Gems/Default/IndexAction.php:404 +#: classes/Gems/Default/IndexAction.php:403 msgid "We received your password reset key." msgstr "Wachtwoord resetsleutel ontvangen." -#: classes/Gems/Default/IndexAction.php:405 +#: classes/Gems/Default/IndexAction.php:404 msgid "Please enter the organization and username belonging to this key." msgstr "Geef de organisatie en gebruikersnaam die bij deze sleutel horen op." @@ -1484,7 +1484,7 @@ msgstr "Login Naam" #: classes/Gems/Default/OptionAction.php:188 -#: classes/Gems/Default/OrganizationAction.php:191 +#: classes/Gems/Default/OrganizationAction.php:134 #: classes/Gems/Default/RespondentAction.php:173 #: classes/Gems/Default/StaffAction.php:224 msgid "Language" @@ -1513,100 +1513,100 @@ msgid "Item" msgstr "Item" -#: classes/Gems/Default/OrganizationAction.php:124 -msgid "Cookies must be enabled." -msgstr "Zonder cookies kan de taal niet ingesteld worden." - -#: classes/Gems/Default/OrganizationAction.php:127 +#: classes/Gems/Default/OrganizationAction.php:91 msgid "Invalid organization." msgstr "Ongeldige organisatie." -#: classes/Gems/Default/OrganizationAction.php:135 +#: classes/Gems/Default/OrganizationAction.php:99 msgid "New organization..." msgstr "Nieuwe organisatie..." -#: classes/Gems/Default/OrganizationAction.php:144 -msgid "Choose an organization" -msgstr "Kies een organisatie" - -#: classes/Gems/Default/OrganizationAction.php:180 +#: classes/Gems/Default/OrganizationAction.php:123 msgid "Url" msgstr "Url" -#: classes/Gems/Default/OrganizationAction.php:181 +#: classes/Gems/Default/OrganizationAction.php:124 msgid "Task" msgstr "Taak" -#: classes/Gems/Default/OrganizationAction.php:182 +#: classes/Gems/Default/OrganizationAction.php:125 msgid "Contact name" msgstr "Contact naam" -#: classes/Gems/Default/OrganizationAction.php:183 +#: classes/Gems/Default/OrganizationAction.php:126 msgid "Contact email" msgstr "Contact email" -#: classes/Gems/Default/OrganizationAction.php:186 +#: classes/Gems/Default/OrganizationAction.php:129 msgid "Style" msgstr "Stijl" -#: classes/Gems/Default/OrganizationAction.php:195 +#: classes/Gems/Default/OrganizationAction.php:138 msgid "Can the organization be used?" msgstr "Is de organisatie in gebruik?" -#: classes/Gems/Default/OrganizationAction.php:196 +#: classes/Gems/Default/OrganizationAction.php:139 msgid "Accepting" msgstr "Accepteerd" -#: classes/Gems/Default/OrganizationAction.php:196 +#: classes/Gems/Default/OrganizationAction.php:139 msgid "Can new respondents be added to the organization?" msgstr "Accepteert de organisatie nieuwe patiënten?" -#: classes/Gems/Default/OrganizationAction.php:197 +#: classes/Gems/Default/OrganizationAction.php:140 msgid "Does the organization have respondents?" msgstr "Heeft de organisatie patiënten?" -#: classes/Gems/Default/OrganizationAction.php:201 +#: classes/Gems/Default/OrganizationAction.php:141 +msgid "Respondent group" +msgstr "Patiënten groep" + +#: classes/Gems/Default/OrganizationAction.php:141 +msgid "Allows respondents to login." +msgstr "Patiënten toestaan in te loggen." + +#: classes/Gems/Default/OrganizationAction.php:145 msgid "Greeting" msgstr "Begroeting" -#: classes/Gems/Default/OrganizationAction.php:201 -#: classes/Gems/Default/OrganizationAction.php:202 +#: classes/Gems/Default/OrganizationAction.php:145 +#: classes/Gems/Default/OrganizationAction.php:146 msgid "For emails and token forward screen." msgstr "Voor emails en kenmerk scherm." -#: classes/Gems/Default/OrganizationAction.php:202 +#: classes/Gems/Default/OrganizationAction.php:146 msgid "Signature" msgstr "Handtekening" -#: classes/Gems/Default/OrganizationAction.php:204 +#: classes/Gems/Default/OrganizationAction.php:148 msgid "Accessible by" msgstr "Toegankelijk voor" -#: classes/Gems/Default/OrganizationAction.php:204 +#: classes/Gems/Default/OrganizationAction.php:148 msgid "Checked organizations see this organizations respondents." msgstr "Geselecteerde organizaties kunnen de patiënten van deze organisatie bekijken." -#: classes/Gems/Default/OrganizationAction.php:214 +#: classes/Gems/Default/OrganizationAction.php:158 msgid "Code name" msgstr "Code naam" -#: classes/Gems/Default/OrganizationAction.php:214 +#: classes/Gems/Default/OrganizationAction.php:158 msgid "Only for programmers." msgstr "Uitsluitend voor programmeurs." -#: classes/Gems/Default/OrganizationAction.php:228 +#: classes/Gems/Default/OrganizationAction.php:172 msgid "Delete organization" msgstr "Verwijder organisatie" -#: classes/Gems/Default/OrganizationAction.php:238 +#: classes/Gems/Default/OrganizationAction.php:182 msgid "Edit organization" msgstr "Bewerk organisatie" -#: classes/Gems/Default/OrganizationAction.php:248 +#: classes/Gems/Default/OrganizationAction.php:192 msgid "Participating organizations" msgstr "Deelnemende organisaties" -#: classes/Gems/Default/OrganizationAction.php:258 +#: classes/Gems/Default/OrganizationAction.php:202 msgid "Show organization" msgstr "Toon organisatie" @@ -3442,6 +3442,10 @@ msgstr[0] "Het wachtwoord moet minstens een getal bevatten." msgstr[1] "Het wachtwoord moet minstens %d getallen bevatten." +#: classes/Gems/User/User.php:765 +msgid "Cookies must be enabled for this site." +msgstr "Zonder cookies heeft u geen toegang tot deze site." + #: classes/Gems/User/UserPasswordValidator.php:115 msgid "Wrong password." msgstr "Verkeerd wachtwoord." @@ -3784,7 +3788,6 @@ msgstr "Kenmerk %s voor vragenlijsten %s is verwijderd." #: snippets/DeleteTrackTokenSnippet.php:277 -#: snippets/EditTrackTokenSnippet.php:174 #, php-format msgid "%d token changed by recalculation." msgid_plural "%d tokens changed by recalculation." @@ -3809,10 +3812,12 @@ msgstr "Berekening traject opnieuw" #: snippets/RespondentDetailsSnippet.php:59 +#: snippets/RespondentDetailsWithAssignmentsSnippet.php:74 msgid "Respondent information" msgstr "Patiënt informatie" #: snippets/RespondentDetailsSnippet.php:71 +#: snippets/RespondentDetailsWithAssignmentsSnippet.php:97 msgid "Respondent nr: " msgstr "Patiënt nr:" @@ -3900,6 +3905,10 @@ msgid "This track can be assigned since %s." msgstr "Dit traject kan sinds %s aan een patiënt toegewezen worden." +#: snippets/Organization/ChooseOrganizationSnippet.php:86 +msgid "Choose an organization" +msgstr "Kies een organisatie" + #: snippets/Organization/ChooseOrganizationSnippet.php:93 msgid "This organization cannot have any respondents, please choose one that does:" msgstr "Deze organisatie heeft geen patiënten. Kies een organisatie met patiënten." @@ -3908,8 +3917,8 @@ msgid "This organization cannot have any respondents." msgstr "Deze organisatie heeft geen patiënten." -#~ msgid "Allow new responde... [truncated message content] |
From: <gem...@li...> - 2011-11-25 12:56:02
|
Revision: 288 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=288&view=rev Author: matijsdejong Date: 2011-11-25 12:55:53 +0000 (Fri, 25 Nov 2011) Log Message: ----------- Slight improvement in gotoStartPage: get rid of all parameters Modified Paths: -------------- trunk/library/classes/Gems/User/User.php Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-24 19:06:39 UTC (rev 287) +++ trunk/library/classes/Gems/User/User.php 2011-11-25 12:55:53 UTC (rev 288) @@ -531,7 +531,7 @@ // Prevent redirecting to the current page. if (! ($menuItem->is('controller', $request->getControllerName()) && $menuItem->is('action', $request->getActionName()))) { $redirector = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector'); - $redirector->gotoRoute($menuItem->toRouteUrl($request)); + $redirector->gotoRoute($menuItem->toRouteUrl($request), null, true); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 19:06:45
|
Revision: 287 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=287&view=rev Author: matijsdejong Date: 2011-11-24 19:06:39 +0000 (Thu, 24 Nov 2011) Log Message: ----------- TODO list added Modified Paths: -------------- trunk/library/snippets/Respondent/MultiOrganizationTab.php Modified: trunk/library/snippets/Respondent/MultiOrganizationTab.php =================================================================== --- trunk/library/snippets/Respondent/MultiOrganizationTab.php 2011-11-24 19:04:28 UTC (rev 286) +++ trunk/library/snippets/Respondent/MultiOrganizationTab.php 2011-11-24 19:06:39 UTC (rev 287) @@ -71,7 +71,7 @@ protected function getParameterKey() { - return 'filter'; + return 'id2'; } protected function getTabs() @@ -81,6 +81,11 @@ $sql = "SELECT gr2o_patient_nr FROM gems__respondent2org WHERE gr2o_id_user = ? AND gr2o_id_organization = ?"; $resp = $this->respondentData['grs_id_user']; + // TODO: + // Shows tabs only for existing respondents + // Tabslinks should contain two parameters + // No option for difference active / inactive + foreach ($orgs as $orgId => $name) { if ($patientNr = $this->db->fetchOne($sql, array($resp, $orgId))) { $tabs[$orgId] = $name; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 19:04:34
|
Revision: 286 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=286&view=rev Author: matijsdejong Date: 2011-11-24 19:04:28 +0000 (Thu, 24 Nov 2011) Log Message: ----------- Start on multi org tab. Problem: composite url, nicer display, tab on/off Added Paths: ----------- trunk/library/snippets/Respondent/ trunk/library/snippets/Respondent/MultiOrganizationTab.php Property changes on: trunk/library/snippets/Respondent ___________________________________________________________________ Added: bugtraq:url + http://survey.erasmusmc.nl/support/mantis/view.php?id=%BUGID% Added: bugtraq:logregex + #(\d+) Added: trunk/library/snippets/Respondent/MultiOrganizationTab.php =================================================================== --- trunk/library/snippets/Respondent/MultiOrganizationTab.php (rev 0) +++ trunk/library/snippets/Respondent/MultiOrganizationTab.php 2011-11-24 19:04:28 UTC (rev 286) @@ -0,0 +1,92 @@ +<?php + +/** + * Copyright (c) 2011, Erasmus MC + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Erasmus MC nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * + * @package Gems + * @subpackage Snippets + * @author Matijs de Jong <mj...@ma...> + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + */ + +/** + * Displays tabs for multiple organizations. + * + * @package Gems + * @subpackage Snippets + * @copyright Copyright (c) 2011 Erasmus MC + * @license New BSD License + * @since Class available since version 1.5 + */ +class Respondent_MultiOrganizationTab extends MUtil_Snippets_TabSnippetAbstract +{ + protected $href = array('page' => null); + + /** + * Required + * + * @var Zend_Db_Adapter_Abstract + */ + protected $db; + + /** + * Required + * + * @var Gems_Loader + */ + protected $loader; + + /** + * Required + * + * @var array + */ + protected $respondentData; + + protected function getParameterKey() + { + return 'filter'; + } + + protected function getTabs() + { + $user = $this->loader->getCurrentUser(); + $orgs = $user->getAllowedOrganizations(); + $sql = "SELECT gr2o_patient_nr FROM gems__respondent2org WHERE gr2o_id_user = ? AND gr2o_id_organization = ?"; + $resp = $this->respondentData['grs_id_user']; + + foreach ($orgs as $orgId => $name) { + if ($patientNr = $this->db->fetchOne($sql, array($resp, $orgId))) { + $tabs[$orgId] = $name; + } + } + + return $tabs; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 18:38:13
|
Revision: 285 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=285&view=rev Author: matijsdejong Date: 2011-11-24 18:38:06 +0000 (Thu, 24 Nov 2011) Log Message: ----------- Small fixes in cookie handling. Modified Paths: -------------- trunk/library/classes/Gems/User/User.php Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-24 17:17:39 UTC (rev 284) +++ trunk/library/classes/Gems/User/User.php 2011-11-24 18:38:06 UTC (rev 285) @@ -374,7 +374,7 @@ $orgId = $this->_getVar('user_organization_id'); //If not set, read it from the cookie - if (is_null($orgId)) { + if ($this->isCurrentUser() && is_null($orgId)) { $orgId = Gems_Cookies::getOrganization(Zend_Controller_Front::getInstance()->getRequest()); } return $orgId; @@ -579,6 +579,19 @@ } /** + * Is this organization in the list of currently allowed organizations? + * + * @param int $organizationId + * @return boolean + */ + public function isAllowedOrganization($organizationId) + { + $orgs = $this->getAllowedOrganizations(); + + return isset($orgs[$organizationId]); + } + + /** * Checks if this user is the current user * * @return boolean @@ -731,10 +744,10 @@ $this->session->requestCache = $requestCache; } } - } - if (! Gems_Cookies::setOrganization($organizationId, $this->basepath->getBasePath())) { - throw new Exception($this->translate->_('Cookies must be enabled for this site.')); + if (! Gems_Cookies::setOrganization($organizationId, $this->basepath->getBasePath())) { + throw new Exception($this->translate->_('Cookies must be enabled for this site.')); + } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 17:17:45
|
Revision: 284 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=284&view=rev Author: matijsdejong Date: 2011-11-24 17:17:39 +0000 (Thu, 24 Nov 2011) Log Message: ----------- Users can now login as any organization they are allowed to access. Oodles of small bugs, e.g. gor_accessible_by implemented in wrong way Modified Paths: -------------- trunk/library/classes/Gems/User/OldStaffUserDefinition.php trunk/library/classes/Gems/User/Organization.php trunk/library/classes/Gems/User/StaffUserDefinition.php trunk/library/classes/Gems/User/User.php trunk/library/classes/Gems/User/UserLoader.php trunk/library/snippets/Organization/OrganizationTableSnippet.php Modified: trunk/library/classes/Gems/User/OldStaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-24 15:35:11 UTC (rev 283) +++ trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-24 17:17:39 UTC (rev 284) @@ -148,7 +148,7 @@ // For a multi-layout project we need to select the appropriate style too, // but as PATCHES may not be in effect we have to try two selects $select2 = clone $select; - $select2->columns(array('user_style' => 'gor_style', 'user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges', 'accessible_by' => 'gor_accessible_by'), 'gems__organizations'); + $select2->columns(array('user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges'), 'gems__groups'); try { // Fails before patch has run... @@ -184,7 +184,6 @@ ->columns(array('user_name'=>"(concat(coalesce(concat(`gems__staff`.`gsf_first_name`,_utf8' '),_utf8''),coalesce(concat(`gems__staff`.`gsf_surname_prefix`,_utf8' '),_utf8''),coalesce(`gems__staff`.`gsf_last_name`,_utf8'')))")) ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array('user_role'=>'ggp_role')) ->where('ggp_group_active = 1') - ->where('gor_active = 1') ->where('gsf_active = 1') ->where('gsf_login = ?') ->limit(1); Modified: trunk/library/classes/Gems/User/Organization.php =================================================================== --- trunk/library/classes/Gems/User/Organization.php 2011-11-24 15:35:11 UTC (rev 283) +++ trunk/library/classes/Gems/User/Organization.php 2011-11-24 17:17:39 UTC (rev 284) @@ -32,7 +32,7 @@ * @author Matijs de Jong <mj...@ma...> * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License - * @version $Id: Sample.php 203 2011-07-07 12:51:32Z matijs $ + * @version $id: Organization.php 203 2011-07-07 12:51:32Z matijs $ */ /** @@ -57,12 +57,21 @@ 'gor_id_organization' => 1, 'gor_name' => 'NO ORGANIZATION', 'gor_code' => null, + 'gor_location' => null, + 'gor_url' => null, + 'gor_task' => null, + 'gor_accessible_by' => null, + 'gor_contact_name' => null, + 'gor_contact_email' => null, + 'gor_welcome' => null, + 'gor_signature' => null, 'gor_style' => null, 'gor_iso_lang' => 'en', + 'gor_has_respondents' => 0, + 'gor_add_respondents' => 0, 'gor_active' => 0, - 'gor_has_respondents' => false, - 'gor_add_respondents' => false - ); + 'can_access' => array(), + ); /** * @@ -173,21 +182,46 @@ } if (! $this->_organizationData) { - $this->_organizationData = $this->db->fetchRow('SELECT * FROM gems__organizations WHERE gor_id_organization = ? LIMIT 1', $this->_organizationId); + $sql = "SELECT * FROM gems__organizations WHERE gor_id_organization = ? LIMIT 1"; + $this->_organizationData = $this->db->fetchRow($sql, $this->_organizationId); if (! $this->_organizationData) { $this->_organizationData = $this->_noOrganization; + } else { + $dbOrgId = $this->db->quote($this->_organizationId, Zend_Db::INT_TYPE); + $sql = "SELECT gor_id_organization, gor_name + FROM gems__organizations + WHERE gor_active = 1 AND + ( + gor_id_organization = $dbOrgId OR + gor_accessible_by LIKE '%:$dbOrgId:%' + ) + ORDER BY gor_name"; + $this->_organizationData['can_access'] = $this->db->fetchPairs($sql); + + // MUtil_Echo::track($sql, $this->_organizationData['can_access']); } if ($cacheId) { $this->cache->save($this->_organizationData, $cacheId); } } + // MUtil_Echo::track($this->_organizationData); return is_array($this->_organizationData) && parent::checkRegistryRequestsAnswers(); } /** + * Get the organizations this organizations can access. + * + * @return array Of type orgId => orgName + */ + public function getAllowedOrganizations() + { + return $this->_organizationData['can_access']; + } + + /** * Get the code attribute. * * @return string Modified: trunk/library/classes/Gems/User/StaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-24 15:35:11 UTC (rev 283) +++ trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-24 17:17:39 UTC (rev 284) @@ -192,16 +192,9 @@ 'user_base_org_id' => 'gsf_id_organization')) ->columns(array('user_name'=>"(concat(coalesce(concat(`gems__staff`.`gsf_first_name`,_utf8' '),_utf8''),coalesce(concat(`gems__staff`.`gsf_surname_prefix`,_utf8' '),_utf8''),coalesce(`gems__staff`.`gsf_last_name`,_utf8'')))")) ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array('user_role'=>'ggp_role', 'user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges')) - ->join('gems__organizations', 'gul_id_organization = gor_id_organization', - array( - 'user_organization_id' => 'gor_id_organization', - 'user_organization_name' => 'gor_name', - 'user_style' => 'gor_style', - 'accessible_by' => 'gor_accessible_by')) ->joinLeft('gems__user_passwords', 'gul_id_user = gup_id_user', array('user_password_reset' => 'gup_reset_required')) ->where('ggp_group_active = 1') - ->where('gor_active = 1') ->where('gsf_active = 1') ->where('gul_can_login = 1') ->where('gul_login = ?') Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-24 15:35:11 UTC (rev 283) +++ trunk/library/classes/Gems/User/User.php 2011-11-24 17:17:39 UTC (rev 284) @@ -230,6 +230,7 @@ $auth = Gems_Auth::getInstance(); $formValues['allowed_ip_ranges'] = $this->getAllowedIPRanges(); + $formValues['organization'] = $this->getBaseOrganizationId(); $adapter = $this->definition->getAuthAdapter($formValues); $authResult = $auth->authenticate($adapter, $formValues); @@ -305,11 +306,6 @@ } } - if (! $this->_hasVar('__allowedOrgs')) { - // Is always requested so no win in waiting. - $this->refreshAllowedOrganizations(); - } - return (boolean) $this->acl && $this->basepath && $this->userLoader; } @@ -330,10 +326,25 @@ */ public function getAllowedOrganizations() { + + if (! $this->_hasVar('__allowedOrgs')) { + $this->refreshAllowedOrganizations(); + } + return $this->_getVar('__allowedOrgs'); } /** + * Returns the original (not the current) organization used by this user. + * + * @return Gems_User_Organization + */ + public function getBaseOrganization() + { + return $this->userLoader->getOrganization($this->getBaseOrganizationId()); + } + + /** * Returns the original (not the current) organization id of this user. * * @return int @@ -605,33 +616,14 @@ */ public function refreshAllowedOrganizations() { - $sql = "SELECT gor_id_organization, gor_name FROM gems__organizations WHERE "; - // Privilege overrules organizational settings - if (! $this->hasPrivilege('pr.organization-switch')) { - if ($by = $this->_getVar('accessible_by')) { - $orgs = explode(':', trim($by, ':')); - - if ($orgs) { - // Not to forget: the users own organization - $orgs[] = $this->getBaseOrganizationId(); - - $sql .= "gor_id_organization IN ("; - $sql .= implode(', ', $orgs); - $sql .= ") AND "; - } else { - $sql = false; - } - } else { - $sql = false; - } - } - if ($sql) { - $sql .= " gor_active = 1 ORDER BY gor_name"; - $orgs = $this->db->fetchPairs($sql); + if ($this->hasPrivilege('pr.organization-switch')) { + $orgs = $this->db->fetchPairs("SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active = 1 ORDER BY gor_name"); } else { - $orgs = array(); + $orgs = $this->getBaseOrganization()->getAllowedOrganizations(); } + natsort($orgs); + // MUtil_Echo::track($orgs); $this->_setVar('__allowedOrgs', $orgs); Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2011-11-24 15:35:11 UTC (rev 283) +++ trunk/library/classes/Gems/User/UserLoader.php 2011-11-24 17:17:39 UTC (rev 284) @@ -126,16 +126,6 @@ } /** - * Get an array of OrgId => Org Name for all allowed organizations for the current loggedin user - * - * @return array - */ - public function getAllowedOrganizations() - { - return $this->db->fetchPairs("SELECT gor_id_organization, gor_name FROM gems__organizations WHERE gor_active = 1 ORDER BY gor_name"); - } - - /** * Get the currently loggin in user * * @return Gems_User_User @@ -194,14 +184,15 @@ * @param int $organization * @return Gems_User_User But ! ->isActive when the user does not exist */ - public function getUser($login_name, $organization) + public function getUser($login_name, $currentOrganization) { - $defName = $this->getUserClassName($login_name, $organization); + list($defName, $userOrganization) = $this->getUserClassInfo($login_name, $currentOrganization); + // MUtil_Echo::track($defName, $userOrganization); $definition = $this->_getClass($defName); - $values = $definition->getUserData($login_name, $organization); - // MUtil_Echo::track($defName, $login_name, $organization, $values); + $values = $definition->getUserData($login_name, $userOrganization); + // MUtil_Echo::track($defName, $login_name, $userOrganization, $values); if (! isset($values['user_active'])) { $values['user_active'] = true; @@ -211,7 +202,7 @@ $user = $this->_loadClass('User', true, array($values, $definition)); - $user->setCurrentOrganization($organization); + $user->setCurrentOrganization($currentOrganization); return $user; } @@ -239,29 +230,64 @@ * * @param string $login_name * @param int $organization - * @return string + * @return array Containing definitionName, organizationId */ - protected function getUserClassName($login_name, $organization) + protected function getUserClassInfo($login_name, $organization) { if ((null == $login_name) || (null == $organization)) { - return 'NoLoginDefinition'; + return array('NoLoginDefinition', $organization); } if ($this->isProjectUser($login_name)) { - return 'ProjectUserDefinition'; + return array('ProjectUserDefinition', $organization); } try { - $sql = "SELECT gul_user_class FROM gems__user_logins WHERE gul_can_login = 1 AND gul_login = ? AND gul_id_organization = ?"; - if ($class = $this->db->fetchOne($sql, array($login_name, $organization))) { - return $class . 'Definition'; + $sql = "SELECT CONCAT(gul_user_class, 'Definition'), gul_id_organization + FROM gems__user_logins INNER JOIN gems__organizations ON gor_id_organization = gul_id_organization + WHERE gor_active = 1 AND + gul_can_login = 1 AND + gul_login = ? AND + gul_id_organization = ? + LIMIT 1"; + + $params[] = $login_name; + $params[] = $organization; + // MUtil_Echo::track($sql, $params); + + $row = $this->db->fetchRow($sql, $params, Zend_Db::FETCH_NUM); + + if (! $row) { + // Try to get see if this is another allowed organization for this user + $sql = "SELECT CONCAT(gul_user_class, 'Definition'), gul_id_organization + FROM gems__user_logins INNER JOIN gems__organizations ON gor_id_organization != gul_id_organization + WHERE gor_active = 1 AND + gul_can_login = 1 AND + gul_login = ? AND + gor_id_organization = ? AND + gor_accessible_by LIKE CONCAT('%:', gul_id_organization, ':%') + LIMIT 1"; + + // MUtil_Echo::track($sql, $params); + + $row = $this->db->fetchRow($sql, $params, Zend_Db::FETCH_NUM); } + if ($row) { + // MUtil_Echo::track($row); + return $row; + } + } catch (Zend_Db_Exception $e) { // Intentional fall through } // Fail over for pre 1.5 projects - $sql = "SELECT gsf_id_user FROM gems__staff WHERE gsf_active = 1 AND gsf_login = ? AND gsf_id_organization = ?"; + // + // No login as other organization for first login + $sql = "SELECT gsf_id_user + FROM gems__staff INNER JOIN + gems__organizations ON gsf_id_organization = gor_id_organization + WHERE gor_active = 1 AND gsf_active = 1 AND gsf_login = ? AND gsf_id_organization = ?"; if ($user_id = $this->db->fetchOne($sql, array($login_name, $organization))) { // Move user to new staff. @@ -281,10 +307,10 @@ // MUtil_Echo::r($e); } - return self::USER_OLD_STAFF . 'Definition'; + return array(self::USER_OLD_STAFF . 'Definition', $organization); } - return 'NoLoginDefinition'; + return array('NoLoginDefinition', $organization); } protected function isProjectUser($login_name) Modified: trunk/library/snippets/Organization/OrganizationTableSnippet.php =================================================================== --- trunk/library/snippets/Organization/OrganizationTableSnippet.php 2011-11-24 15:35:11 UTC (rev 283) +++ trunk/library/snippets/Organization/OrganizationTableSnippet.php 2011-11-24 17:17:39 UTC (rev 284) @@ -92,7 +92,7 @@ $bridge->addMultiSort($orgName, $BR, 'gor_task', $BR, 'gor_location'); $bridge->addMultiSort($mailName, $BR, 'gor_style', $BR, 'gor_iso_lang'); $bridge->addMultiSort('gor_active', $BR, 'gor_add_respondents', $BR, 'gor_has_respondents'); - // $bridge->add('gor_accessible_by'); + $bridge->add('gor_accessible_by'); if ($editMenuItem = $this->getEditMenuItem()) { $bridge->addItemLink($editMenuItem->toActionLinkLower($this->request, $bridge)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 15:35:20
|
Revision: 283 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=283&view=rev Author: mennodekker Date: 2011-11-24 15:35:11 +0000 (Thu, 24 Nov 2011) Log Message: ----------- Added survey description to survey object and always display in survey maintenance Final fix to tabform to eliminate htmlElementsToTabs Modified Paths: -------------- branches/userloader/classes/Gems/Default/SurveyMaintenanceAction.php branches/userloader/classes/Gems/TabForm.php branches/userloader/classes/Gems/Tracker/Survey.php Modified: branches/userloader/classes/Gems/Default/SurveyMaintenanceAction.php =================================================================== --- branches/userloader/classes/Gems/Default/SurveyMaintenanceAction.php 2011-11-24 15:20:20 UTC (rev 282) +++ branches/userloader/classes/Gems/Default/SurveyMaintenanceAction.php 2011-11-24 15:35:11 UTC (rev 283) @@ -344,11 +344,11 @@ $model->resetOrder(); $model->set('gsu_survey_name', 'label', $this->_('Name')); + $model->set('gsu_survey_description', 'label', $this->_('Description'), 'formatFunction', array(__CLASS__, 'formatDescription')); $model->set('gso_source_name', 'label', $this->_('Source')); $model->set('gsu_status_show', 'label', $this->_('Status in source')); if ($detailed) { - $model->set('gsu_survey_description', 'label', $this->_('Description'), 'formatFunction', array(__CLASS__, 'formatDescription')); $model->set('gsu_surveyor_active', 'label', $this->_('Active in source')); $model->set('gsu_active', 'label', sprintf($this->_('Active in %s'), GEMS_PROJECT_NAME_UC)); } else { Modified: branches/userloader/classes/Gems/TabForm.php =================================================================== --- branches/userloader/classes/Gems/TabForm.php 2011-11-24 15:20:20 UTC (rev 282) +++ branches/userloader/classes/Gems/TabForm.php 2011-11-24 15:35:11 UTC (rev 283) @@ -337,6 +337,13 @@ * @return Gems_TabForm */ public function setView(Zend_View_Interface $view = null) { + /** + * If the form is populated... and we have a tab set... select it + */ + if ($tab = $this->getValue('tab')) { + $this->selectTab($tab); + } + $form = parent::setView($view); if ($view) { Modified: branches/userloader/classes/Gems/Tracker/Survey.php =================================================================== --- branches/userloader/classes/Gems/Tracker/Survey.php 2011-11-24 15:20:20 UTC (rev 282) +++ branches/userloader/classes/Gems/Tracker/Survey.php 2011-11-24 15:35:11 UTC (rev 283) @@ -1,5 +1,4 @@ <?php - /** * Copyright (c) 2011, Erasmus MC * All rights reserved. @@ -262,7 +261,16 @@ return $source->getDatesList($language, $this->_surveyId, $this->_gemsSurvey['gsu_surveyor_id']); } + /** + * + * @return string Description of the survey + */ + public function getDescription() + { + return $this->_gemsSurvey['gsu_survey_description']; + } + /** * * @return int Gems group id for survey This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 15:20:27
|
Revision: 282 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=282&view=rev Author: michieltcs Date: 2011-11-24 15:20:20 +0000 (Thu, 24 Nov 2011) Log Message: ----------- Set defaults for new fields Modified Paths: -------------- trunk/library/classes/Gems/User/Organization.php Modified: trunk/library/classes/Gems/User/Organization.php =================================================================== --- trunk/library/classes/Gems/User/Organization.php 2011-11-24 15:13:38 UTC (rev 281) +++ trunk/library/classes/Gems/User/Organization.php 2011-11-24 15:20:20 UTC (rev 282) @@ -60,7 +60,9 @@ 'gor_style' => null, 'gor_iso_lang' => 'en', 'gor_active' => 0, - ); + 'gor_has_respondents' => false, + 'gor_add_respondents' => false + ); /** * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2011-11-24 15:13:50
|
Revision: 281 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=281&view=rev Author: matijsdejong Date: 2011-11-24 15:13:38 +0000 (Thu, 24 Nov 2011) Log Message: ----------- Split User->getOrganizationId into User->getBaseOrganizationId and User->getCurrentOrganizationId. user_organization info no longer part of return of getUserData(), but set buy setCurrentOrganization. Added checks on $this->menu to _layout functions so that error messages remain displayed, even when the menu is not active. ($#&@!) Modified Paths: -------------- trunk/library/classes/Gems/Default/AskAction.php trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/Gems/Default/OrganizationAction.php trunk/library/classes/Gems/User/NoLoginDefinition.php trunk/library/classes/Gems/User/OldStaffUserDefinition.php trunk/library/classes/Gems/User/Organization.php trunk/library/classes/Gems/User/ProjectUserDefinition.php trunk/library/classes/Gems/User/StaffUserDefinition.php trunk/library/classes/Gems/User/User.php trunk/library/classes/Gems/User/UserLoader.php trunk/library/classes/GemsEscort.php trunk/library/classes/MUtil/Controller/Action.php Modified: trunk/library/classes/Gems/Default/AskAction.php =================================================================== --- trunk/library/classes/Gems/Default/AskAction.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/Default/AskAction.php 2011-11-24 15:13:38 UTC (rev 281) @@ -121,7 +121,7 @@ $this->view->headMeta()->appendHttpEquiv('Refresh', $delay . '; url=' . $url); } - $organizationData = $this->db->fetchRow("SELECT * FROM gems__organizations WHERE gor_id_organization = ?", $token->getOrganizationId()); + $organization = $this->loader->getOrganization($token->getOrganizationId()); Gems_Html::init(); // Turn on Gems specific html like pInfo $this->html->h3($this->_('Token')); @@ -131,8 +131,8 @@ $this->html->pInfo(sprintf($this->_('Thank you for answering the survey for token %s.'), strtoupper($this->_getParam(MUtil_Model::REQUEST_ID)))); $this->html->pInfo($this->_('Please click the button below to answer the next survey.')); } else { - if ($organizationData['gor_welcome']) { - $this->html->pInfo()->raw(MUtil_Markup::render($this->_($organizationData['gor_welcome']), 'Bbcode', 'Html')); + if ($welcome = $organization->getWelcome()) { + $this->html->pInfo()->raw(MUtil_Markup::render($this->_($welcome), 'Bbcode', 'Html')); } $this->html->pInfo(sprintf($this->_('Please click the button below to answer the survey for token %s.'), strtoupper($tokenId))); } @@ -157,8 +157,8 @@ 'After this survey there are another %d surveys we would like you to answer.', $next), $next)); } - if ($organizationData['gor_signature']) { - $this->html->pInfo()->raw(MUtil_Markup::render($this->_($organizationData['gor_signature']), 'Bbcode', 'Html')); + if ($sig = $organization->getSignature()) { + $this->html->pInfo()->raw(MUtil_Markup::render($this->_($sig), 'Bbcode', 'Html')); } return; @@ -216,20 +216,20 @@ if ($this->_request->isPost()) { $throttleSettings = $this->project->getAskThrottleSettings(); - + // Prune the database for (very) old attempts - $this->db->query("DELETE FROM gems__token_attempts WHERE gta_datetime < DATE_SUB(NOW(), INTERVAL ? second)", + $this->db->query("DELETE FROM gems__token_attempts WHERE gta_datetime < DATE_SUB(NOW(), INTERVAL ? second)", $throttleSettings['period'] * 20); - + // Retrieve the number of failed attempts that occurred within the specified window - $attemptData = $this->db->fetchRow("SELECT COUNT(1) AS attempts, UNIX_TIMESTAMP(MAX(gta_datetime)) AS last " . + $attemptData = $this->db->fetchRow("SELECT COUNT(1) AS attempts, UNIX_TIMESTAMP(MAX(gta_datetime)) AS last " . "FROM gems__token_attempts WHERE gta_datetime > DATE_SUB(NOW(), INTERVAL ? second)", $throttleSettings['period']); - + $remainingDelay = ($attemptData['last'] + $throttleSettings['delay']) - time(); - + if ($attemptData['attempts'] > $throttleSettings['threshold'] && $remainingDelay > 0) { $this->escort->logger->log("Possible token brute force attack, throttling for $remainingDelay seconds", Zend_Log::ERR); - + $this->addMessage($this->_('The server is currently busy, please wait a while and try again.')); } else if ($form->isValid($_POST)) { $this->_forward('forward'); Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/Default/IndexAction.php 2011-11-24 15:13:38 UTC (rev 281) @@ -164,7 +164,7 @@ $element->setRequired(true); if (! $this->_request->isPost()) { - $element->setValue($this->loader->getCurrentUser()->getOrganizationId()); + $element->setValue($this->loader->getCurrentUser()->getCurrentOrganizationId()); } } @@ -293,7 +293,6 @@ * Fix current locale / organization in cookies */ Gems_Cookies::setLocale($user->getLocale(), $this->basepath->getBasePath()); - Gems_Cookies::setOrganization($user->getOrganizationId(), $this->basepath->getBasePath()); /** * Ready Modified: trunk/library/classes/Gems/Default/OrganizationAction.php =================================================================== --- trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/Default/OrganizationAction.php 2011-11-24 15:13:38 UTC (rev 281) @@ -75,7 +75,6 @@ $request = $this->getRequest(); $orgId = urldecode($request->getParam('org')); $url = base64_decode($request->getParam('current_uri')); - $oldOrgId = $user->getOrganizationId(); $allowedOrganizations = $user->getAllowedOrganizations(); if (isset($allowedOrganizations[$orgId])) { Modified: trunk/library/classes/Gems/User/NoLoginDefinition.php =================================================================== --- trunk/library/classes/Gems/User/NoLoginDefinition.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/NoLoginDefinition.php 2011-11-24 15:13:38 UTC (rev 281) @@ -69,7 +69,6 @@ return array( 'user_active' => false, 'user_role' => 'nologin', - //'user_organization_id' => 0, //REMOVED AS IT BREAKS STORING LAST ORGANIZATION ); } } Modified: trunk/library/classes/Gems/User/OldStaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2011-11-24 15:13:38 UTC (rev 281) @@ -174,18 +174,15 @@ * compatibility */ $select = new Zend_Db_Select($this->db); - $select->from('gems__staff', array('user_id'=>'gsf_id_user', - 'user_login'=>'gsf_login', - 'user_email'=>'gsf_email', - 'user_group'=>'gsf_id_primary_group', - 'user_locale'=>'gsf_iso_lang', - 'user_logout'=>'gsf_logout_on_survey')) + $select->from('gems__staff', array('user_id' => 'gsf_id_user', + 'user_login' => 'gsf_login', + 'user_email' => 'gsf_email', + 'user_group' => 'gsf_id_primary_group', + 'user_locale' => 'gsf_iso_lang', + 'user_logout' => 'gsf_logout_on_survey', + 'user_base_org_id' => 'gsf_id_organization')) ->columns(array('user_name'=>"(concat(coalesce(concat(`gems__staff`.`gsf_first_name`,_utf8' '),_utf8''),coalesce(concat(`gems__staff`.`gsf_surname_prefix`,_utf8' '),_utf8''),coalesce(`gems__staff`.`gsf_last_name`,_utf8'')))")) ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array('user_role'=>'ggp_role')) - ->join('gems__organizations', 'gsf_id_organization = gor_id_organization', - array( - 'user_organization_id'=>'gor_id_organization', - 'user_organization_name'=>'gor_name')) ->where('ggp_group_active = 1') ->where('gor_active = 1') ->where('gsf_active = 1') Modified: trunk/library/classes/Gems/User/Organization.php =================================================================== --- trunk/library/classes/Gems/User/Organization.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/Organization.php 2011-11-24 15:13:38 UTC (rev 281) @@ -216,6 +216,16 @@ } /** + * Get the signature of the organization. + * + * @return string + */ + public function getSignature() + { + return $this->_organizationData['gor_signature']; + } + + /** * Get the style attribute. * * @return string @@ -225,6 +235,16 @@ return $this->_organizationData['gor_style']; } + /** + * Get the welcome message for the organization. + * + * @return string + */ + public function getWelcome() + { + return $this->_organizationData['gor_welcome']; + } + public function invalidateCache() { if ($this->cache) { $cacheId = $this->_getCacheId(); Modified: trunk/library/classes/Gems/User/ProjectUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/ProjectUserDefinition.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/ProjectUserDefinition.php 2011-11-24 15:13:38 UTC (rev 281) @@ -68,14 +68,13 @@ public function getUserData($login_name, $organization) { return array( - 'user_id' => 1, - 'user_login' => $login_name, - 'user_name' => $login_name, - 'user_group' => 800, - 'user_role' => 'master', - 'user_style' => 'gems', - 'user_organization_id' => $organization, - 'user_organization_name' => 'SUPER ADMIN', + 'user_id' => 1, + 'user_login' => $login_name, + 'user_name' => $login_name, + 'user_group' => 800, + 'user_role' => 'master', + 'user_style' => 'gems', + 'user_base_org_id' => $organization, 'user_allowed_ip_ranges' => $this->project->getSuperAdminIPRanges(), ); } Modified: trunk/library/classes/Gems/User/StaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/StaffUserDefinition.php 2011-11-24 15:13:38 UTC (rev 281) @@ -183,12 +183,13 @@ $select = new Zend_Db_Select($this->db); $select->from('gems__user_logins', array('user_login_id' => 'gul_id_user')) ->join('gems__staff', 'gul_login = gsf_login AND gul_id_organization = gsf_id_organization', array( - 'user_login' => 'gsf_login', - 'user_id' => 'gsf_id_user', - 'user_email'=>'gsf_email', - 'user_group'=>'gsf_id_primary_group', - 'user_locale'=>'gsf_iso_lang', - 'user_logout'=>'gsf_logout_on_survey')) + 'user_id' => 'gsf_id_user', + 'user_login' => 'gsf_login', + 'user_email' => 'gsf_email', + 'user_group' => 'gsf_id_primary_group', + 'user_locale' => 'gsf_iso_lang', + 'user_logout' => 'gsf_logout_on_survey', + 'user_base_org_id' => 'gsf_id_organization')) ->columns(array('user_name'=>"(concat(coalesce(concat(`gems__staff`.`gsf_first_name`,_utf8' '),_utf8''),coalesce(concat(`gems__staff`.`gsf_surname_prefix`,_utf8' '),_utf8''),coalesce(`gems__staff`.`gsf_last_name`,_utf8'')))")) ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array('user_role'=>'ggp_role', 'user_allowed_ip_ranges' => 'ggp_allowed_ip_ranges')) ->join('gems__organizations', 'gul_id_organization = gor_id_organization', Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/User.php 2011-11-24 15:13:38 UTC (rev 281) @@ -94,6 +94,12 @@ protected $session; /** + * + * @var Zend_Translate + */ + protected $translate; + + /** * Required * * @var Gems_User_UserLoader @@ -328,16 +334,42 @@ } /** - * Returns the name of the user definition. + * Returns the original (not the current) organization id of this user. * - * @return string - * NOT NEEDED FOR THE MOMENT / - public function getDefinitionName() + * @return int + */ + public function getBaseOrganizationId() { - return $this->_getVar('__user_definition'); - } // */ + return $this->_getVar('user_base_org_id'); + } /** + * Returns the organization that is currently used by this user. + * + * @return Gems_User_Organization + */ + public function getCurrentOrganization() + { + return $this->userLoader->getOrganization($this->getCurrentOrganizationId()); + } + + /** + * Returns the organization id that is currently used by this user. + * + * @return int + */ + public function getCurrentOrganizationId() + { + $orgId = $this->_getVar('user_organization_id'); + + //If not set, read it from the cookie + if (is_null($orgId)) { + $orgId = Gems_Cookies::getOrganization(Zend_Controller_Front::getInstance()->getRequest()); + } + return $orgId; + } + + /** * Return true if this user has a password. * * @return boolean @@ -358,7 +390,7 @@ return array( 'userlogin' => $this->getLoginName(), 'password' => $password, - 'organization' => $this->getOrganizationId()); + 'organization' => $this->getCurrentOrganizationId()); } /** @@ -401,42 +433,6 @@ } /** - * - * @return Gems_User_Organization - */ - public function getOrganization() - { - return $this->userLoader->getOrganization($this->getOrganizationId()); - } - - /** - * - * @return int - */ - public function getOrganizationId() - { - $orgId = $this->_getVar('user_organization_id'); - - //If not set, read it from the cookie - if (is_null($orgId)) { - $orgId = Gems_Cookies::getOrganization(Zend_Controller_Front::getInstance()->getRequest()); - } - return $orgId; - } - - /** - * Gets the (optional) organization code. - * - * @return string - * NOT NEEDED FOR THE MOMENT / - public function getOrganizationCode() - { - $organizationId = $this->getOrganizationId(); - - return $this->userLoader->getOrganization($organizationId)->getCode(); - } // */ - - /** * Return a password reset key * * @return string @@ -618,7 +614,7 @@ if ($orgs) { // Not to forget: the users own organization - $orgs[] = $this->getOrganizationId(); + $orgs[] = $this->getBaseOrganizationId(); $sql .= "gor_id_organization IN ("; $sql .= implode(', ', $orgs); @@ -653,7 +649,7 @@ if ($this->canSetPassword()) { $checker = $this->userLoader->getPasswordChecker(); - $codes[] = $this->getOrganization()->getCode(); + $codes[] = $this->getCurrentOrganization()->getCode(); $codes[] = $this->getRoles(); $codes[] = $this->_getVar('__user_definition'); @@ -707,44 +703,47 @@ $organization = $this->userLoader->getOrganization($organizationId); } - $oldOrganizationId = $this->getOrganizationId(); + $oldOrganizationId = $this->getCurrentOrganizationId(); - if ($organizationId != $oldOrganizationId) { - $this->_setVar('user_organization_id', $organizationId); + if ($organizationId) { + if ($organizationId != $oldOrganizationId) { + $this->_setVar('user_organization_id', $organizationId); - // Depreciation warning: the settings will be removed in - // version 1.6 at the latest. - $this->_setVar('user_organization_name', $organization->getName()); - $this->_setVar('user_style', $organization->getStyle()); - // End depreciation warning + // Depreciation warning: the settings will be removed in + // version 1.6 at the latest. + $this->_setVar('user_organization_name', $organization->getName()); + $this->_setVar('user_style', $organization->getStyle()); + // End depreciation warning - if ($this->isCurrentUser()) { - // Now update the requestcache to change the oldOrgId to the new orgId - // Don't do it when the oldOrgId doesn't match - $requestCache = $this->session->requestCache; + if ($this->isCurrentUser()) { + // Now update the requestcache to change the oldOrgId to the new orgId + // Don't do it when the oldOrgId doesn't match + if ($requestCache = $this->session->requestCache) { - //Create the list of request cache keys that match an organization ID (to be extended) - $possibleOrgIds = array( - 'gr2o_id_organization', - 'gto_id_organization'); + //Create the list of request cache keys that match an organization ID (to be extended) + $possibleOrgIds = array( + 'gr2o_id_organization', + 'gto_id_organization'); - foreach ($requestCache as $key => $value) { - if (is_array($value)) { - foreach ($value as $paramKey => $paramValue) { - if (in_array($paramKey, $possibleOrgIds)) { - if ($paramValue == $oldOrganizationId) { - $requestCache[$key][$paramKey] = $organizationId; + foreach ($requestCache as $key => $value) { + if (is_array($value)) { + foreach ($value as $paramKey => $paramValue) { + if (in_array($paramKey, $possibleOrgIds)) { + if ($paramValue == $oldOrganizationId) { + $requestCache[$key][$paramKey] = $organizationId; + } + } } } } + $this->session->requestCache = $requestCache; } } - $this->session->requestCache = $requestCache; } - } - if (! Gems_Cookies::setOrganization($organizationId, $this->basepath->getBasePath())) { - throw new Exception($this->_('Cookies must be enabled for this site.')); + if (! Gems_Cookies::setOrganization($organizationId, $this->basepath->getBasePath())) { + throw new Exception($this->translate->_('Cookies must be enabled for this site.')); + } } return $this; Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/Gems/User/UserLoader.php 2011-11-24 15:13:38 UTC (rev 281) @@ -167,7 +167,7 @@ static $organizations = array(); if (null === $organizationId) { - $organizationId = intval(self::$currentUser->getOrganizationId()); + $organizationId = intval(self::$currentUser->getCurrentOrganizationId()); } if (! isset($organizations[$organizationId])) { @@ -209,7 +209,11 @@ $values['__user_definition'] = $defName; - return $this->_loadClass('User', true, array($values, $definition)); + $user = $this->_loadClass('User', true, array($values, $definition)); + + $user->setCurrentOrganization($organization); + + return $user; } /** Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/GemsEscort.php 2011-11-24 15:13:38 UTC (rev 281) @@ -376,7 +376,6 @@ * -- user_role * -- user_locale * -- user_organization_id - * -- user_organization_name * * Use $this->session to access afterwards * @@ -538,19 +537,21 @@ */ protected function _layoutContact(array $args = null) { - $menuItem = $this->menu->find(array('controller' => 'contact', 'action' => 'index')); + if ($this->menu instanceof Gems_Menu) { + $menuItem = $this->menu->find(array('controller' => 'contact', 'action' => 'index')); - if ($menuItem) { - $contactDiv = MUtil_Html::create()->div( - $args, - array('id' => 'contact')); // tooltip - $contactDiv->a($menuItem->toHRefAttribute(), $menuItem->get('label')); + if ($menuItem) { + $contactDiv = MUtil_Html::create()->div( + $args, + array('id' => 'contact')); // tooltip + $contactDiv->a($menuItem->toHRefAttribute(), $menuItem->get('label')); - $ul = $menuItem->toUl(); - $ul->class = 'dropdownContent tooltip'; - $contactDiv->append($ul); + $ul = $menuItem->toUl(); + $ul->class = 'dropdownContent tooltip'; + $contactDiv->append($ul); - return $contactDiv; + return $contactDiv; + } } } @@ -798,7 +799,8 @@ $user = $this->getLoader()->getCurrentUser(); if ($orgs = $user->getAllowedOrganizations()) { // Organization switcher - $orgSwitch = MUtil_Html::create('div', array('id' => 'organizations')); + $orgSwitch = MUtil_Html::create('div', array('id' => 'organizations')); + $currentId = $user->getCurrentOrganizationId(); $currentUri = base64_encode($this->view->url()); $url = $this->view->getHelper('url')->url(array('controller' => 'organization', 'action' => 'change-ui'), null, true); @@ -809,7 +811,7 @@ $select = $formDiv->select(array('name' => "org", 'onchange' => "javascript:this.form.submit();")); foreach ($orgs as $id => $org) { $selected = ''; - if ($id == $user->getOrganizationId()) { + if ($id == $currentId) { $selected = array('selected' => "selected"); } $select->option(array('value' => $id), $org, $selected); @@ -902,7 +904,8 @@ { $div = MUtil_Html::create()->div($args, array('id' => 'version')); $version = $this->loader->getVersions()->getVersion(); - if ($item = $this->menu->findFirst(array('controller'=>'project-information', 'action'=>'changelog'))->toHRefAttribute()) { + if (($this->menu instanceof Gems_Menu) && + ($item = $this->menu->findFirst(array('controller'=>'project-information', 'action'=>'changelog'))->toHRefAttribute())) { $link = MUtil_Html::create()->a($version, $item); } else { $link = $version; @@ -1073,7 +1076,7 @@ */ public function getCurrentOrganization() { - return $this->getLoader()->getCurrentUser()->getOrganizationId(); + return $this->getLoader()->getCurrentUser()->getCurrentOrganizationId(); } /** Modified: trunk/library/classes/MUtil/Controller/Action.php =================================================================== --- trunk/library/classes/MUtil/Controller/Action.php 2011-11-24 14:25:16 UTC (rev 280) +++ trunk/library/classes/MUtil/Controller/Action.php 2011-11-24 15:13:38 UTC (rev 281) @@ -4,7 +4,7 @@ /** * Copyright (c) 2011, Erasmus MC * All rights reserved. - * + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright @@ -15,7 +15,7 @@ * * Neither the name of Erasmus MC nor the * names of its contributors may be used to endorse or promote products * derived from this software without specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE @@ -71,7 +71,7 @@ * @var MUtil_Snippets_SnippetLoader */ protected $snippetLoader; - + /** * The current html/head/title for this page. * @@ -131,7 +131,7 @@ * @param array $urlOptions Url parts * @param boolean $reset Use default module, action and controller instead of current when not specified in $urlOptions * @param string $routeName - * @param boolean $encode + * @param boolean $encode */ protected function _reroute(array $urlOptions = array(), $reset = false, $routeName = null, $encode = true) { @@ -172,7 +172,7 @@ { $extraSource = MUtil_Ra::pairs(func_get_args(), 1); $snippet = $this->getSnippet($filename, $extraSource); - + if ($snippet->hasHtmlOutput()) { $this->html[] = $snippet; return $snippet; @@ -202,7 +202,7 @@ if ($snippet->hasHtmlOutput()) { $this->html[] = $snippet; $results[$filename] = $snippet; - + } elseif ($snippet->getRedirectRoute()) { $snippet->redirectRoute(); return false; @@ -263,12 +263,12 @@ } else { $extraSourceParameters = array(); } - + $loader = $this->getSnippetLoader(); - + return $loader->getSnippet($filename, $extraSourceParameters); } - + /** * Returns a source of values for snippets. * @@ -285,7 +285,7 @@ /** * Returns the current html/head/title for this page. - * + * * If the title is an array the seperator concatenates the parts. * * @param string $separator @@ -371,7 +371,7 @@ $this->_helper->viewRenderer->setScriptAction('html-view'); } } - + /** * Stub for overruling default snippet loader initiation. */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |