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.
|