From: <gem...@li...> - 2012-04-08 15:05:11
|
Revision: 608 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=608&view=rev Author: matijsdejong Date: 2012-04-08 15:05:02 +0000 (Sun, 08 Apr 2012) Log Message: ----------- Added 1.5.3 upgrade function Improved content of change password mail OldStaff users can now perform resets Cleaned up some code Updated translations Modified Paths: -------------- trunk/library/classes/Gems/Default/IndexAction.php trunk/library/classes/Gems/Upgrades.php trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php trunk/library/classes/Gems/User/OldStaffUserDefinition.php trunk/library/classes/Gems/User/RadiusUserDefinition.php trunk/library/classes/Gems/User/User.php trunk/library/classes/Gems/User/UserDefinitionAbstract.php trunk/library/classes/Gems/User/UserDefinitionInterface.php trunk/library/classes/Gems/User/UserLoader.php trunk/library/configs/db/patches.sql trunk/library/configs/db/tables/gems__staff.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 Modified: trunk/library/classes/Gems/Default/IndexAction.php =================================================================== --- trunk/library/classes/Gems/Default/IndexAction.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/Default/IndexAction.php 2012-04-08 15:05:02 UTC (rev 608) @@ -312,6 +312,7 @@ $this->addMessage($this->_('We sent you an e-mail with a reset link. Click on the link in the e-mail.')); if ($this->returnToLoginAfterReset) { + $this->setCurrentOrganizationTo($user); $this->loader->getCurrentUser()->gotoStartPage($this->menu, $request); } } @@ -339,17 +340,11 @@ public function sendUserResetEMail(Gems_User_User $user) { $subjectTemplate = $this->_('Password reset requested'); - /* CANNOT BE TESTED TODAY - $bbBodyTemplate = $this->_("Dear {greeting}, -A new password was requested for your [b]{organization}[/b] site [b]{project}[/b], please click within {reset_in_hours} hours on [url={reset_url}]this link[/url] to enter the password of your choice. + // Multi line strings did not come through correctly in poEdit + $bbBodyTemplate = $this->_("Dear {greeting},\n\n\nA new password was requested for your [b]{organization}[/b] account on the [b]{project}[/b] site, please click within {reset_in_hours} hours on [url={reset_url}]this link[/url] to enter the password of your choice.\n\n\n{organization_signature}\n\n[url={reset_url}]{reset_url}[/url]\n"); // */ + //$bbBodyTemplate = $this->_("To set a new password for the [b]{organization}[/b] site [b]{project}[/b], please click on this link:\n{reset_url}"); -{organization_signature} - -[url={reset_url}]{reset_url}[/url] -"); // */ - $bbBodyTemplate = $this->_("To set a new password for the [b]{organization}[/b] site [b]{project}[/b], please click on this link:\n{reset_url}"); - return $user->sendMail($subjectTemplate, $bbBodyTemplate, true); } Modified: trunk/library/classes/Gems/Upgrades.php =================================================================== --- trunk/library/classes/Gems/Upgrades.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/Upgrades.php 2012-04-08 15:05:02 UTC (rev 608) @@ -55,9 +55,10 @@ //Now set the context $this->setContext('gems'); //And add our patches - $this->register('Upgrade143to15', 'Upgrade from 1.43 to 1.5'); - $this->register('Upgrade15to151', 'Upgrade from 1.5.0. to 1.5.1'); - $this->register('Upgrade151to152', 'Upgrade from 1.5.1. to 1.5.2'); + $this->register('Upgrade143to15', 'Upgrade from 1.4.3 to 1.5.0'); + $this->register('Upgrade15to151', 'Upgrade from 1.5.0 to 1.5.1'); + $this->register('Upgrade151to152', 'Upgrade from 1.5.1 to 1.5.2'); + $this->register('Upgrade152to153', 'Upgrade from 1.5.2 to 1.5.3'); } @@ -92,7 +93,7 @@ public function Upgrade15to151() { $this->_batch->addTask('Db_ExecutePatch', 44); - + return true; } @@ -105,4 +106,14 @@ return true; } + + /** + * To upgrade to 1.5.2 just execute patchlevel 46 + */ + public function Upgrade152to153() + { + $this->_batch->addTask('Db_ExecutePatch', 46); + + return true; + } } \ No newline at end of file Modified: trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php =================================================================== --- trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/DbUserDefinitionAbstract.php 2012-04-08 15:05:02 UTC (rev 608) @@ -106,28 +106,6 @@ } /** - * 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; - } - - /** * Returns an initialized Zend_Auth_Adapter_Interface * * @param Gems_User_User $user @@ -173,6 +151,7 @@ } $data['gup_reset_requested'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); + // Loop for case when hash is not unique while (true) { try { $model->save($data); Modified: trunk/library/classes/Gems/User/OldStaffUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/OldStaffUserDefinition.php 2012-04-08 15:05:02 UTC (rev 608) @@ -54,12 +54,45 @@ protected $db; /** + * The time period in hours a reset key is valid for this definition. * + * @var int + */ + protected $hoursResetKeyIsValid = 24; + + /** + * * @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. + if ($user->hasEmailAddress() && $user->canSetPassword()) { + $email = $user->getEmailAddress(); + if (empty($email)) { + return false; + } else { + return true; + } + } + } else { + return true; + } + } + + /** * Return true if the password can be set. * * Returns the setting for the definition whan no user is passed, otherwise @@ -111,6 +144,42 @@ } /** + * 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__staff'); + Gems_Model::setChangeFieldsByPrefix($model, 'gsf', $user->getUserId()); + + $data['gsf_id_user'] = $user->getUserId(); + + $row = $model->loadFirst($data + array('DATE_ADD(gsf_reset_req, INTERVAL ' . $this->hoursResetKeyIsValid . ' HOUR) >= CURRENT_TIMESTAMP')); + if ($row && $row['gup_reset_key']) { + // Keep using the key. + $data['gsf_reset_key'] = $row['gsf_reset_key']; + } else { + $data['gsf_reset_key'] = $this->hashPassword(time() . $user->getEmailAddress()); + } + $data['gsf_reset_req'] = new Zend_Db_Expr('CURRENT_TIMESTAMP'); + + // Loop for case when hash is not unique + while (true) { + try { + $model->save($data); + + // Old staff keys can by recognized because they start with 'os' + return 'os' . $data['gsf_reset_key']; + + } catch (Zend_Db_Exception $zde) { + $data['gsf_reset_key'] = $this->hashPassword(time() . $user->getEmailAddress()); + } + } + } + + /** * Returns a user object, that may be empty if the user is unknown. * * @param string $login_name @@ -161,7 +230,8 @@ 'user_group' => 'gsf_id_primary_group', 'user_locale' => 'gsf_iso_lang', 'user_logout' => 'gsf_logout_on_survey', - 'user_base_org_id' => 'gsf_id_organization' + 'user_base_org_id' => 'gsf_id_organization', + 'user_resetkey_valid' => 'CASE WHEN DATE_ADD(gsf_reset_req, INTERVAL ' . $this->hoursResetKeyIsValid . ' HOUR) >= CURRENT_TIMESTAMP THEN 1 ELSE 0 END', )) ->join('gems__groups', 'gsf_id_primary_group = ggp_id_group', array( 'user_role' => 'ggp_role', Modified: trunk/library/classes/Gems/User/RadiusUserDefinition.php =================================================================== --- trunk/library/classes/Gems/User/RadiusUserDefinition.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/RadiusUserDefinition.php 2012-04-08 15:05:02 UTC (rev 608) @@ -114,18 +114,6 @@ } /** - * always false as we can not reset the password - * - * @param Gems_User_User $user - * @param type $key - * @return boolean - */ - public function checkPasswordResetKey(Gems_User_User $user, $key) - { - return false; - } - - /** * Returns an initialized Zend_Auth_Adapter_Interface * * @param Gems_User_User $user Modified: trunk/library/classes/Gems/User/User.php =================================================================== --- trunk/library/classes/Gems/User/User.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/User.php 2012-04-08 15:05:02 UTC (rev 608) @@ -486,17 +486,6 @@ } /** - * Check whether a reset key is really linked to this user. - * - * @param string The key - * @return boolean - */ - public function checkPasswordResetKey($key) - { - return $this->isActive() && $this->definition->checkPasswordResetKey($this, $key); - } - - /** * Should be called after answering the request to allow the Target * to check if all required registry values have been set correctly. * @@ -1127,51 +1116,7 @@ } /** - * Send an e-mail to this user * - * @param string $subjectTemplate A subject template in which {fields} are replaced - * @param string $bbBodyTemplate A BB Code body template in which {fields} are replaced - * @param boolean $useResetFields When true get a reset key for this user - * @param string $locale Optional locale - * @return mixed String or array of warnings when something went wrong - */ - public function sendMail($subjectTemplate, $bbBodyTemplate, $useResetFields = false, $locale = null) - { - if ($useResetFields && (! $this->canResetPassword())) { - return $this->translate->_('Trying to send a password reset to a user that cannot be reset.'); - } - - $mail = new Gems_Mail(); - $mail->setTemplateStyle($this->getBaseOrganization()->getStyle()); - $mail->setFrom($this->getFrom()); - $mail->addTo($this->getEmailAddress(), $this->getFullName(), $this->project->getEmailBounce()); - if ($bcc = $this->project->getEmailBcc()) { - $mail->addBcc($bcc); - } - - if ($useResetFields) { - $fields = $this->getResetPasswordMailFields($locale); - } else { - $fields = $this->getMailFields($locale); - } - $fields = MUtil_Ra::braceKeys($fields, '{', '}'); - - $mail->setSubject(strtr($subjectTemplate, $fields)); - $mail->setBodyBBCode(strtr($bbBodyTemplate, $fields)); - - try { - $mail->send(); - return null; - - } catch (Exception $e) { - return array( - $this->translate->_('Unable to send e-mail.'), - $e->getMessage()); - } - } - - /** - * * @param string $defName Optional * @return Gems_User_User (continuation pattern) */ @@ -1233,6 +1178,51 @@ } /** + * Send an e-mail to this user + * + * @param string $subjectTemplate A subject template in which {fields} are replaced + * @param string $bbBodyTemplate A BB Code body template in which {fields} are replaced + * @param boolean $useResetFields When true get a reset key for this user + * @param string $locale Optional locale + * @return mixed String or array of warnings when something went wrong + */ + public function sendMail($subjectTemplate, $bbBodyTemplate, $useResetFields = false, $locale = null) + { + if ($useResetFields && (! $this->canResetPassword())) { + return $this->translate->_('Trying to send a password reset to a user that cannot be reset.'); + } + + $mail = new Gems_Mail(); + $mail->setTemplateStyle($this->getBaseOrganization()->getStyle()); + $mail->setFrom($this->getFrom()); + $mail->addTo($this->getEmailAddress(), $this->getFullName(), $this->project->getEmailBounce()); + if ($bcc = $this->project->getEmailBcc()) { + $mail->addBcc($bcc); + } + + if ($useResetFields) { + $fields = $this->getResetPasswordMailFields($locale); + } else { + $fields = $this->getMailFields($locale); + } + MUtil_Echo::track($fields, $bbBodyTemplate); + $fields = MUtil_Ra::braceKeys($fields, '{', '}'); + + $mail->setSubject(strtr($subjectTemplate, $fields)); + $mail->setBodyBBCode(strtr($bbBodyTemplate, $fields)); + + try { + $mail->send(); + return null; + + } catch (Exception $e) { + return array( + $this->translate->_('Unable to send e-mail.'), + $e->getMessage()); + } + } + + /** * Set this user as the current user. * * This means that the data about this user will be stored in a session. Modified: trunk/library/classes/Gems/User/UserDefinitionAbstract.php =================================================================== --- trunk/library/classes/Gems/User/UserDefinitionAbstract.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/UserDefinitionAbstract.php 2012-04-08 15:05:02 UTC (rev 608) @@ -84,18 +84,6 @@ } /** - * 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 string - */ - public function checkPasswordResetKey(Gems_User_User $user, $key) - { - throw new Gems_Exception_Coding(sprintf('A password reset key cannot be issued for %s users.', get_class($this))); - } - - /** * Return a password reset key * * @param Gems_User_User $user The user to create a key for. Modified: trunk/library/classes/Gems/User/UserDefinitionInterface.php =================================================================== --- trunk/library/classes/Gems/User/UserDefinitionInterface.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/UserDefinitionInterface.php 2012-04-08 15:05:02 UTC (rev 608) @@ -69,15 +69,6 @@ public function canSetPassword(Gems_User_User $user = null); /** - * 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 string - */ - public function checkPasswordResetKey(Gems_User_User $user, $key); - - /** * Returns an initialized Zend_Auth_Adapter_Interface * * @param Gems_User_User $user Modified: trunk/library/classes/Gems/User/UserLoader.php =================================================================== --- trunk/library/classes/Gems/User/UserLoader.php 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/classes/Gems/User/UserLoader.php 2012-04-08 15:05:02 UTC (rev 608) @@ -438,10 +438,15 @@ } $select = $this->db->select(); - $select->from('gems__user_passwords', array()) - ->joinLeft('gems__user_logins', 'gup_id_user = gul_id_user', array("gul_user_class", 'gul_id_organization', 'gul_login')) - ->where('gup_reset_key = ?', $resetKey); - + if ('os' == substr($resetKey, 0, 2)) { + // Oldstaff reset key! + $select->from('gems__staff', array(new Zend_Db_Expr("'" . self::USER_OLD_STAFF . "' AS user_class"), 'gsf_id_organization', 'gsf_login')) + ->where('gsf_reset_key = ?', substr($resetKey, 2)); + } else { + $select->from('gems__user_passwords', array()) + ->joinLeft('gems__user_logins', 'gup_id_user = gul_id_user', array("gul_user_class", 'gul_id_organization', 'gul_login')) + ->where('gup_reset_key = ?', $resetKey); + } if ($row = $this->db->fetchRow($select, null, Zend_Db::FETCH_NUM)) { // MUtil_Echo::track($row); return $this->loadUser($row[0], $row[1], $row[2]); Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/configs/db/patches.sql 2012-04-08 15:05:02 UTC (rev 608) @@ -391,4 +391,5 @@ ALTER TABLE gems__user_logins CHANGE gul_can_login gul_can_login boolean not null default 0; -- PATCH: make reset keys unique so we now whose key it is -ALTER TABLE `gems__user_passwords` ADD UNIQUE (`gup_reset_key`); +ALTER TABLE `gems__user_passwords` ADD UNIQUE KEY (gup_reset_key); +ALTER TABLE `gems__staff` ADD UNIQUE KEY (gsf_reset_key); Modified: trunk/library/configs/db/tables/gems__staff.20.sql =================================================================== --- trunk/library/configs/db/tables/gems__staff.20.sql 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/configs/db/tables/gems__staff.20.sql 2012-04-08 15:05:02 UTC (rev 608) @@ -46,7 +46,7 @@ -- depreciated gsf_reset_key varchar(64) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' null, - gsf_reset_requested timestamp null, + gsf_reset_req timestamp null, -- end depreciated gsf_changed timestamp not null default current_timestamp on update current_timestamp, @@ -55,7 +55,8 @@ gsf_created_by bigint unsigned not null, PRIMARY KEY(gsf_id_user), - UNIQUE KEY(gsf_login, gsf_id_organization) + UNIQUE KEY(gsf_login, gsf_id_organization), + UNIQUE KEY(gsf_reset_key) ) ENGINE=InnoDB AUTO_INCREMENT = 2001 Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2012-04-08 13:41:19 UTC (rev 607) +++ trunk/library/languages/default-en.po 2012-04-08 15:05:02 UTC (rev 608) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: GemsTracker EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-04-05 16:25+0100\n" +"POT-Creation-Date: 2012-04-08 16:56+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -29,7 +29,7 @@ msgstr "You are logged in as %s" #: classes/GemsEscort.php:747 -#: classes/Gems/Menu.php:248 +#: classes/Gems/Menu.php:249 msgid "Logoff" msgstr "Logoff" @@ -131,184 +131,184 @@ msgid "of" msgstr "of" -#: classes/Gems/Menu.php:139 +#: classes/Gems/Menu.php:140 #, php-format msgid "About %s" msgstr "About %s" -#: classes/Gems/Menu.php:143 +#: classes/Gems/Menu.php:144 msgid "Reporting bugs" msgstr "Reporting bugs" -#: classes/Gems/Menu.php:146 +#: classes/Gems/Menu.php:147 msgid "Support" msgstr "Support" -#: classes/Gems/Menu.php:166 +#: classes/Gems/Menu.php:167 msgid "Project setup" msgstr "Project setup" -#: classes/Gems/Menu.php:169 +#: classes/Gems/Menu.php:170 msgid "Database" msgstr "Database" -#: classes/Gems/Menu.php:173 +#: classes/Gems/Menu.php:174 msgid "Content" msgstr "Content" -#: classes/Gems/Menu.php:176 +#: classes/Gems/Menu.php:177 msgid "Execute" msgstr "Execute" -#: classes/Gems/Menu.php:181 +#: classes/Gems/Menu.php:182 msgid "Patches" msgstr "Patches" -#: classes/Gems/Menu.php:182 +#: classes/Gems/Menu.php:183 msgid "Execute new" msgstr "Execute new" -#: classes/Gems/Menu.php:184 +#: classes/Gems/Menu.php:185 msgid "Refresh translateables" msgstr "Refresh translateables" -#: classes/Gems/Menu.php:186 +#: classes/Gems/Menu.php:187 msgid "Run SQL" msgstr "Run SQL" -#: classes/Gems/Menu.php:189 +#: classes/Gems/Menu.php:190 msgid "Reception codes" msgstr "Reception codes" -#: classes/Gems/Menu.php:192 +#: classes/Gems/Menu.php:193 msgid "Consents" msgstr "Consents" -#: classes/Gems/Menu.php:195 +#: classes/Gems/Menu.php:196 msgid "Roles" msgstr "Roles" -#: classes/Gems/Menu.php:196 -#: classes/Gems/Menu.php:345 +#: classes/Gems/Menu.php:197 +#: classes/Gems/Menu.php:346 msgid "Assigned" msgstr "Assigned" -#: classes/Gems/Menu.php:197 +#: classes/Gems/Menu.php:198 msgid "Privileges" msgstr "Privileges" -#: classes/Gems/Menu.php:200 +#: classes/Gems/Menu.php:201 msgid "Groups" msgstr "Groups" -#: classes/Gems/Menu.php:203 +#: classes/Gems/Menu.php:204 msgid "Organizations" msgstr "Organizations" -#: classes/Gems/Menu.php:206 +#: classes/Gems/Menu.php:207 msgid "Staff" msgstr "Staff" -#: classes/Gems/Menu.php:209 +#: classes/Gems/Menu.php:210 msgid "Logging" msgstr "Logging" -#: classes/Gems/Menu.php:213 +#: classes/Gems/Menu.php:214 msgid "Maintenance" msgstr "Maintenance" -#: classes/Gems/Menu.php:218 +#: classes/Gems/Menu.php:219 msgid "Upgrade" msgstr "Upgrade" -#: classes/Gems/Menu.php:219 -#: classes/Gems/Menu.php:318 +#: classes/Gems/Menu.php:220 +#: classes/Gems/Menu.php:319 msgid "Show" msgstr "Show" -#: classes/Gems/Menu.php:220 +#: classes/Gems/Menu.php:221 msgid "Execute all" msgstr "Execute all" -#: classes/Gems/Menu.php:221 +#: classes/Gems/Menu.php:222 msgid "Execute this" msgstr "Execute this" -#: classes/Gems/Menu.php:222 +#: classes/Gems/Menu.php:223 msgid "Execute from here" msgstr "Execute from here" -#: classes/Gems/Menu.php:223 +#: classes/Gems/Menu.php:224 msgid "Execute to here" msgstr "Execute to here" -#: classes/Gems/Menu.php:235 +#: classes/Gems/Menu.php:236 #, php-format msgid "Stand-alone privilige: %s" msgstr "Stand-alone privilige: %s" -#: classes/Gems/Menu.php:242 +#: classes/Gems/Menu.php:243 msgid "Logon" msgstr "Logon" -#: classes/Gems/Menu.php:243 +#: classes/Gems/Menu.php:244 msgid "Lost password" msgstr "Lost password" -#: classes/Gems/Menu.php:244 +#: classes/Gems/Menu.php:245 msgid "Your account" msgstr "Your account" -#: classes/Gems/Menu.php:245 +#: classes/Gems/Menu.php:246 msgid "Activity overview" msgstr "Activity overview" -#: classes/Gems/Menu.php:246 +#: classes/Gems/Menu.php:247 msgid "Change password" msgstr "Change password" -#: classes/Gems/Menu.php:247 -#: classes/Gems/Menu.php:287 -#: classes/Gems/Menu.php:322 +#: classes/Gems/Menu.php:248 +#: classes/Gems/Menu.php:288 +#: classes/Gems/Menu.php:323 msgid "Token" msgstr "Token" -#: classes/Gems/Menu.php:283 +#: classes/Gems/Menu.php:284 msgid "Track" msgstr "Track" -#: classes/Gems/Menu.php:290 -#: classes/Gems/Menu.php:310 -#: classes/Gems/Menu.php:341 +#: classes/Gems/Menu.php:291 +#: classes/Gems/Menu.php:311 +#: classes/Gems/Menu.php:342 msgid "Add" msgstr "Add" -#: classes/Gems/Menu.php:294 +#: classes/Gems/Menu.php:295 #: classes/Gems/Menu.php:377 msgid "Preview" msgstr "Preview" -#: classes/Gems/Menu.php:301 +#: classes/Gems/Menu.php:302 msgid "Tracks" msgstr "Tracks" -#: classes/Gems/Menu.php:314 +#: classes/Gems/Menu.php:315 msgid "Assignments" msgstr "Assignments" -#: classes/Gems/Menu.php:326 +#: classes/Gems/Menu.php:327 msgid "Edit" msgstr "Edit" -#: classes/Gems/Menu.php:330 +#: classes/Gems/Menu.php:331 msgid "Delete" msgstr "Delete" -#: classes/Gems/Menu.php:335 +#: classes/Gems/Menu.php:336 msgid "Surveys" msgstr "Surveys" -#: classes/Gems/Menu.php:367 +#: classes/Gems/Menu.php:368 msgid "Fill in" msgstr "Fill in" @@ -427,11 +427,11 @@ msgid " The error message is: %s" msgstr " The error message is: %s" -#: classes/Gems/Tracker.php:761 +#: classes/Gems/Tracker.php:771 msgid "Checks performed" msgstr "Checks performed" -#: classes/Gems/Upgrades.php:76 +#: classes/Gems/Upgrades.php:77 msgid "Syncing surveys for all sources" msgstr "Syncing surveys for all sources" @@ -495,14 +495,14 @@ msgstr "Are you sure?" #: classes/Gems/Controller/BrowseEditAction.php:796 -#: classes/Gems/Default/DatabaseAction.php:171 -#: classes/Gems/Default/DatabaseAction.php:484 +#: classes/Gems/Default/DatabaseAction.php:187 +#: classes/Gems/Default/DatabaseAction.php:499 msgid "Yes" msgstr "Yes" #: classes/Gems/Controller/BrowseEditAction.php:797 -#: classes/Gems/Default/DatabaseAction.php:172 -#: classes/Gems/Default/DatabaseAction.php:485 +#: classes/Gems/Default/DatabaseAction.php:188 +#: classes/Gems/Default/DatabaseAction.php:500 msgid "No" msgstr "No" @@ -544,8 +544,7 @@ msgstr "Unknown %s." #: classes/Gems/Controller/ModelActionAbstract.php:97 -#: classes/Gems/Default/AskAction.php:150 -#: classes/Gems/Default/DatabaseAction.php:488 +#: classes/Gems/Default/DatabaseAction.php:503 msgid "Cancel" msgstr "Cancel" @@ -592,113 +591,58 @@ msgid "Nothing to do." msgstr "Nothing to do." -#: classes/Gems/Default/AskAction.php:128 +#: classes/Gems/Default/AskAction.php:84 #, php-format -msgid "Welcome %s," -msgstr "Welcome %s," +msgid "Enter your %s token" +msgstr "Enter your %s token" -#: classes/Gems/Default/AskAction.php:131 -#, php-format -msgid "Thank you for answering the survey for token %s." -msgstr "Thank you for answering the survey for token %s." +#: classes/Gems/Default/AskAction.php:87 +msgid "Tokens identify a survey that was assigned to you personally." +msgstr "Tokens identify a survey that was assigned to you personally." -#: classes/Gems/Default/AskAction.php:132 -msgid "Please click the button below to answer the next survey." -msgstr "Please click the button below to answer the next survey." +#: classes/Gems/Default/AskAction.php:87 +msgid "Entering the token and pressing OK will open that survey." +msgstr "Entering the token and pressing OK will open that survey." -#: classes/Gems/Default/AskAction.php:137 -#, php-format -msgid "Please click the button below to answer the survey for token %s." -msgstr "Please click the button below to answer the survey for token %s." +#: classes/Gems/Default/AskAction.php:91 +msgid "After answering the survey you will be logged off automatically." +msgstr "After answering the survey you will be logged off automatically." -#: 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] "Wait one second to open the survey automatically or click on Cancel to stop." -msgstr[1] "Wait %d seconds to open the survey automatically or click on Cancel to stop." +#: classes/Gems/Default/AskAction.php:96 +msgid "A token consists of two groups of four letters and numbers, separated by an optional hyphen. Tokens are case insensitive." +msgstr "A token consists of two groups of four letters and numbers, separated by an optional hyphen. Tokens are case insensitive." -#: 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] "After this survey there is one other survey we would like you to answer." -msgstr[1] "After this survey there are another %d surveys we would like you to answer." +#: classes/Gems/Default/AskAction.php:97 +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 "The number zero and the letter O are treated as the same; the same goes for the number one and the letter L." -#: classes/Gems/Default/AskAction.php:166 +#: classes/Gems/Default/AskAction.php:132 #, php-format -msgid "The survey for token %s is no longer active." -msgstr "The survey for token %s is no longer active." - -#: classes/Gems/Default/AskAction.php:170 -#, php-format -msgid "The token %s does not exist." -msgstr "The token %s does not exist." - -#: 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 "Thank you for answering. At the moment we have no further surveys for you to take." -#: classes/Gems/Default/AskAction.php:174 +#: classes/Gems/Default/AskAction.php:134 #, php-format msgid "The survey for token %s has been answered and no further surveys are open." msgstr "The survey for token %s has been answered and no further surveys are open." -#: classes/Gems/Default/AskAction.php:181 +#: classes/Gems/Default/AskAction.php:141 #, php-format msgid "The token %s does not exist (any more)." msgstr "The token %s does not exist (any more)." -#: classes/Gems/Default/AskAction.php:198 +#: classes/Gems/Default/AskAction.php:243 #, php-format -msgid "Enter your %s token" -msgstr "Enter your %s token" +msgid "The survey for token %s is no longer active." +msgstr "The survey for token %s is no longer active." -#: classes/Gems/Default/AskAction.php:203 -#, php-format -msgid "Enter tokens as %s." -msgstr "Enter tokens as %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 "The server is currently busy, please wait a while and try again." - -#: classes/Gems/Default/AskAction.php:255 -msgid "Tokens identify a survey that was assigned to you personally." -msgstr "Tokens identify a survey that was assigned to you personally." - -#: classes/Gems/Default/AskAction.php:255 -msgid "Entering the token and pressing OK will open that survey." -msgstr "Entering the token and pressing OK will open that survey." - -#: classes/Gems/Default/AskAction.php:259 -msgid "After answering the survey you will be logged off automatically." -msgstr "After answering the survey you will be logged off automatically." - -#: classes/Gems/Default/AskAction.php:261 -msgid "After answering the survey you will return to the respondent overview screen." -msgstr "After answering the survey you will return to the paitent overview screen." - -#: 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 "A token consists of two groups of four letters and numbers, separated by an optional hyphen. Tokens are case insensitive." - -#: 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 "The number zero and the letter O are treated as the same; the same goes for the number one and the letter L." - #: classes/Gems/Default/ConsentAction.php:68 #: classes/Gems/Default/GroupAction.php:88 msgid "Description" msgstr "Description" #: classes/Gems/Default/ConsentAction.php:70 -#: classes/Gems/Default/DatabaseAction.php:123 +#: classes/Gems/Default/DatabaseAction.php:139 msgid "Order" msgstr "Order" @@ -764,269 +708,271 @@ msgid "On this test system all mail will be delivered to the from address." msgstr "On this test system all mail will be delivered to the from address." -#: classes/Gems/Default/DatabaseAction.php:89 +#: classes/Gems/Default/DatabaseAction.php:75 +msgid "Cache cleaned" +msgstr "Cache cleaned" + +#: classes/Gems/Default/DatabaseAction.php:105 #, php-format msgid "No rows in %s." msgstr "No rows in %s." -#: classes/Gems/Default/DatabaseAction.php:118 +#: classes/Gems/Default/DatabaseAction.php:134 msgid "Type" msgstr "Type" -#: classes/Gems/Default/DatabaseAction.php:122 +#: classes/Gems/Default/DatabaseAction.php:138 msgid "Group" msgstr "Group" -#: classes/Gems/Default/DatabaseAction.php:124 +#: classes/Gems/Default/DatabaseAction.php:140 msgid "Location" msgstr "Location" -#: classes/Gems/Default/DatabaseAction.php:127 +#: classes/Gems/Default/DatabaseAction.php:143 msgid "Status" msgstr "Status" -#: classes/Gems/Default/DatabaseAction.php:130 +#: classes/Gems/Default/DatabaseAction.php:146 msgid "Script" msgstr "Script" -#: classes/Gems/Default/DatabaseAction.php:132 +#: classes/Gems/Default/DatabaseAction.php:148 +#: classes/Gems/Default/DatabaseAction.php:293 +#: classes/Gems/Default/DatabaseAction.php:340 msgid "Changed on" msgstr "Changed on" -#: classes/Gems/Default/DatabaseAction.php:151 +#: classes/Gems/Default/DatabaseAction.php:167 msgid "This database object does not exist. You cannot delete it." msgstr "This database object does not exist. You cannot delete it." -#: classes/Gems/Default/DatabaseAction.php:156 +#: classes/Gems/Default/DatabaseAction.php:172 #, php-format msgid "Drop %s" msgstr "Drop %s" -#: classes/Gems/Default/DatabaseAction.php:164 +#: classes/Gems/Default/DatabaseAction.php:180 #, php-format msgid "There are %d rows in the table." msgstr "There are %d rows in the table." -#: classes/Gems/Default/DatabaseAction.php:166 +#: classes/Gems/Default/DatabaseAction.php:182 #, php-format msgid "Drop table with %d rows" msgstr "Drop table with %d rows" -#: classes/Gems/Default/DatabaseAction.php:167 +#: classes/Gems/Default/DatabaseAction.php:183 msgid "Are you really sure?" msgstr "Are you really sure?" -#: classes/Gems/Default/DatabaseAction.php:183 +#: classes/Gems/Default/DatabaseAction.php:199 #, php-format msgid "%1$s %2$s dropped" msgstr "%1$s %2$s dropped" -#: classes/Gems/Default/DatabaseAction.php:188 +#: classes/Gems/Default/DatabaseAction.php:205 msgid " during statement " msgstr " during statement " -#: classes/Gems/Default/DatabaseAction.php:199 +#: classes/Gems/Default/DatabaseAction.php:216 #, php-format msgid "%s no longer exists in the database." msgstr "%s no longer exists in the database." -#: classes/Gems/Default/DatabaseAction.php:202 +#: classes/Gems/Default/DatabaseAction.php:219 #, php-format msgid "%s does not yet exist in the database." msgstr "%s does not yet exist in the database." -#: classes/Gems/Default/DatabaseAction.php:205 +#: classes/Gems/Default/DatabaseAction.php:222 #, php-format msgid "%s object does exist." msgstr "%s object does exist." -#: classes/Gems/Default/DatabaseAction.php:223 +#: classes/Gems/Default/DatabaseAction.php:240 msgid "Object is not a table." msgstr "Object is not a table." -#: classes/Gems/Default/DatabaseAction.php:247 +#: classes/Gems/Default/DatabaseAction.php:264 msgid "Structure" msgstr "Structure" -#: classes/Gems/Default/DatabaseAction.php:256 +#: classes/Gems/Default/DatabaseAction.php:273 msgid "database object" msgid_plural "database objects" msgstr[0] "database object" msgstr[1] "database objects" -#: classes/Gems/Default/DatabaseAction.php:261 +#: classes/Gems/Default/DatabaseAction.php:278 msgid "Database object overview" msgstr "Database object overview" -#: classes/Gems/Default/DatabaseAction.php:270 -#: classes/Gems/Default/DatabaseAction.php:322 +#: classes/Gems/Default/DatabaseAction.php:287 +#: classes/Gems/Default/DatabaseAction.php:333 msgid "Level" msgstr "Level" -#: classes/Gems/Default/DatabaseAction.php:271 -#: classes/Gems/Default/DatabaseAction.php:323 +#: classes/Gems/Default/DatabaseAction.php:288 +#: classes/Gems/Default/DatabaseAction.php:334 msgid "Subtype" msgstr "Subtype" -#: classes/Gems/Default/DatabaseAction.php:273 +#: classes/Gems/Default/DatabaseAction.php:290 msgid "To be executed" msgstr "To be executed" -#: classes/Gems/Default/DatabaseAction.php:274 -#: classes/Gems/Default/DatabaseAction.php:326 +#: classes/Gems/Default/DatabaseAction.php:291 +#: classes/Gems/Default/DatabaseAction.php:337 msgid "Executed" msgstr "Executed" -#: classes/Gems/Default/DatabaseAction.php:275 -#: classes/Gems/Default/DatabaseAction.php:327 +#: classes/Gems/Default/DatabaseAction.php:292 +#: classes/Gems/Default/DatabaseAction.php:338 msgid "Finished" msgstr "Finished" -#: classes/Gems/Default/DatabaseAction.php:278 +#: classes/Gems/Default/DatabaseAction.php:296 msgid "Create the patch table!" msgstr "Create the patch table!" -#: classes/Gems/Default/DatabaseAction.php:280 +#: classes/Gems/Default/DatabaseAction.php:298 #, php-format msgid "%d new or changed patch(es)." msgstr "%d new or changed patch(es)." -#: classes/Gems/Default/DatabaseAction.php:285 +#: classes/Gems/Default/DatabaseAction.php:303 msgid "Gems build" msgstr "Gems build" -#: classes/Gems/Default/DatabaseAction.php:286 +#: classes/Gems/Default/DatabaseAction.php:304 msgid "Database build" msgstr "Database build" -#: classes/Gems/Default/DatabaseAction.php:288 +#: classes/Gems/Default/DatabaseAction.php:306 msgid "Execute level" msgstr "Execute level" -#: classes/Gems/Default/DatabaseAction.php:292 +#: classes/Gems/Default/DatabaseAction.php:310 msgid "Ignore finished" msgstr "Ignore finished" -#: classes/Gems/Default/DatabaseAction.php:293 +#: classes/Gems/Default/DatabaseAction.php:311 msgid "Ignore executed" msgstr "Ignore executed" -#: classes/Gems/Default/DatabaseAction.php:294 +#: classes/Gems/Default/DatabaseAction.php:312 msgid "Show patches" msgstr "Show patches" -#: classes/Gems/Default/DatabaseAction.php:308 +#: classes/Gems/Default/DatabaseAction.php:326 #, php-format msgid "%d patch(es) executed." msgstr "%d patch(es) executed." -#: classes/Gems/Default/DatabaseAction.php:315 -msgid "Cache cleaned" -msgstr "Cache cleaned" - -#: classes/Gems/Default/DatabaseAction.php:321 +#: classes/Gems/Default/DatabaseAction.php:332 msgid "Patch" msgstr "Patch" -#: classes/Gems/Default/DatabaseAction.php:325 +#: classes/Gems/Default/DatabaseAction.php:336 msgid "Query" msgstr "Query" -#: classes/Gems/Default/DatabaseAction.php:328 +#: classes/Gems/Default/DatabaseAction.php:339 msgid "Result" msgstr "Result" -#: classes/Gems/Default/DatabaseAction.php:352 +#: classes/Gems/Default/DatabaseAction.php:364 msgid "Patch maintenance" msgstr "Patch maintenance" -#: classes/Gems/Default/DatabaseAction.php:356 +#: classes/Gems/Default/DatabaseAction.php:368 msgid "Patch overview" msgstr "Patch overview" -#: classes/Gems/Default/DatabaseAction.php:418 +#: classes/Gems/Default/DatabaseAction.php:430 msgid "This database object does not exist. You cannot create it." msgstr "This database object does not exist. You cannot create it." -#: classes/Gems/Default/DatabaseAction.php:424 +#: classes/Gems/Default/DatabaseAction.php:436 msgid "This database object has no script. You cannot execute it." msgstr "This database object has no script. You cannot execute it." -#: classes/Gems/Default/DatabaseAction.php:435 +#: classes/Gems/Default/DatabaseAction.php:447 #, php-format msgid "Run %s" msgstr "Run %s" -#: classes/Gems/Default/DatabaseAction.php:455 +#: classes/Gems/Default/DatabaseAction.php:468 #, php-format msgid "Starting %d object creation scripts." msgstr "Starting %d object creation scripts." -#: classes/Gems/Default/DatabaseAction.php:461 +#: classes/Gems/Default/DatabaseAction.php:474 #, php-format msgid "Finished %s creation script for object %d of %d" msgstr "Finished %s creation script for object %d of %d" -#: classes/Gems/Default/DatabaseAction.php:465 +#: classes/Gems/Default/DatabaseAction.php:479 msgid "All objects exist. Nothing was executed." msgstr "All objects exist. Nothing was executed." -#: classes/Gems/Default/DatabaseAction.php:471 +#: classes/Gems/Default/DatabaseAction.php:486 msgid "Create not-existing database objects" msgstr "Create not-existing database objects" -#: classes/Gems/Default/DatabaseAction.php:473 +#: classes/Gems/Default/DatabaseAction.php:488 #, php-format msgid "One database object does not exist." msgid_plural "These %d database objects do not exist." msgstr[0] "One database object does not exist." msgstr[1] "These %d database objects do not exist." -#: classes/Gems/Default/DatabaseAction.php:474 +#: classes/Gems/Default/DatabaseAction.php:489 msgid "Are you sure you want to create it?" msgid_plural "Are you sure you want to create them all?" msgstr[0] "Are you sure you want to create it?" msgstr[1] "Are you sure you want to create them all?" -#: classes/Gems/Default/DatabaseAction.php:487 +#: classes/Gems/Default/DatabaseAction.php:502 msgid "All database objects exist. There is nothing to create." msgstr "All database objects exist. There is nothing to create." -#: classes/Gems/Default/DatabaseAction.php:500 +#: classes/Gems/Default/DatabaseAction.php:515 msgid "Separate multiple commands with semicolons (;)." msgstr "Separate multiple commands with semicolons (;)." -#: classes/Gems/Default/DatabaseAction.php:507 +#: classes/Gems/Default/DatabaseAction.php:522 msgid "Run" msgstr "Run" -#: classes/Gems/Default/DatabaseAction.php:516 +#: classes/Gems/Default/DatabaseAction.php:531 msgid "raw" msgstr "raw" -#: classes/Gems/Default/DatabaseAction.php:526 +#: classes/Gems/Default/DatabaseAction.php:541 #, php-format msgid "Result set %s." msgstr "Result set %s." -#: classes/Gems/Default/DatabaseAction.php:549 +#: classes/Gems/Default/DatabaseAction.php:564 msgid "Execute raw SQL" msgstr "Execute raw SQL" -#: classes/Gems/Default/DatabaseAction.php:552 +#: classes/Gems/Default/DatabaseAction.php:567 msgid "Result sets" msgstr "Result sets" -#: classes/Gems/Default/DatabaseAction.php:577 +#: classes/Gems/Default/DatabaseAction.php:592 msgid "This database object does not exist. You cannot view it." msgstr "This database object does not exist. You cannot view it." -#: classes/Gems/Default/DatabaseAction.php:582 +#: classes/Gems/Default/DatabaseAction.php:597 #, php-format msgid "The data in table %s" msgstr "The data in table %s" -#: classes/Gems/Default/DatabaseAction.php:583 +#: classes/Gems/Default/DatabaseAction.php:598 #, php-format msgid "Contents of %s %s" msgstr "Contents of %s %s" @@ -1084,53 +1030,53 @@ msgid "Administrative groups" msgstr "Administrative groups" -#: classes/Gems/Default/IndexAction.php:153 +#: classes/Gems/Default/IndexAction.php:156 msgid "Request password reset" msgstr "Request password reset" -#: classes/Gems/Default/IndexAction.php:157 +#: classes/Gems/Default/IndexAction.php:160 msgid "Please enter your organization and your username or e-mail address. " msgstr "Please enter your organization and your username or e-mail address. " -#: classes/Gems/Default/IndexAction.php:159 +#: classes/Gems/Default/IndexAction.php:162 msgid "Please enter your username or e-mail address. " msgstr "Please enter your username or e-mail address. " -#: classes/Gems/Default/IndexAction.php:161 +#: classes/Gems/Default/IndexAction.php:164 msgid "We will then send you an e-mail with a link. The link will bring you to a page where you can set a new password of your choice." msgstr "We will then send you an e-mail with a link. The link will bring you to a page where you can set a new password of your choice." -#: classes/Gems/Default/IndexAction.php:166 +#: classes/Gems/Default/IndexAction.php:170 msgid "Execute password reset" msgstr "Execute password reset" -#: classes/Gems/Default/IndexAction.php:167 +#: classes/Gems/Default/IndexAction.php:171 msgid "We received your password reset request." msgstr "We received your password reset request." -#: classes/Gems/Default/IndexAction.php:170 +#: classes/Gems/Default/IndexAction.php:174 #, php-format msgid "Welcome to %s" msgstr "Welcome to %s" -#: classes/Gems/Default/IndexAction.php:171 +#: classes/Gems/Default/IndexAction.php:175 msgid "Welcome to this website." msgstr "Welcome to this website." -#: classes/Gems/Default/IndexAction.php:174 +#: classes/Gems/Default/IndexAction.php:178 msgid "Please enter your password of choice twice." msgstr "Please enter your password of choice twice." -#: classes/Gems/Default/IndexAction.php:212 +#: classes/Gems/Default/IndexAction.php:216 msgid "Your password must be changed." msgstr "Your password must be changed." -#: classes/Gems/Default/IndexAction.php:224 +#: classes/Gems/Default/IndexAction.php:228 #, php-format msgid "Login successful, welcome %s." msgstr "Login successful, welcome %s." -#: classes/Gems/Default/IndexAction.php:267 +#: classes/Gems/Default/IndexAction.php:268 #, php-format msgid "Good bye: %s." msgstr "Good bye: %s." @@ -1147,21 +1093,35 @@ 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:320 +#: classes/Gems/Default/IndexAction.php:321 msgid "New password is active." msgstr "New password is active." -#: classes/Gems/Default/IndexAction.php:340 +#: classes/Gems/Default/IndexAction.php:342 msgid "Password reset requested" msgstr "Password reset requested" -#: classes/Gems/Default/IndexAction.php:350 +#: classes/Gems/Default/IndexAction.php:345 msgid "" -"To set a new password for the [b]{organization}[/b] site [b]{project}[/b], please click on this link:\n" -"{reset_url}" +"Dear {greeting},\n" +"\n" +"\n" +"A new password was requested for your [b]{organization}[/b] account on the [b]{project}[/b] site, please click within {reset_in_hours} hours on [url={reset_url}]this link[/url] to enter the password of your choice.\n" +"\n" +"\n" +"{organization_signature}\n" +"\n" +"[url={reset_url}]{reset_url}[/url]\n" msgstr "" -"To set a new password for the [b]{organization}[/b] site [b]{project}[/b], please click on this link:\n" -"{reset_url}" +"Dear {greeting},\n" +"\n" +"\n" +"A new password was requested for your [b]{organization}[/b] account on the [b]{project}[/b] site, please click within {reset_in_hours} hours on [url={reset_url}]this link[/url] to enter the password of your choice.\n" +"\n" +"\n" +"{organization_signature}\n" +"\n" +"[url={reset_url}]{reset_url}[/url]\n" #: classes/Gems/Default/InvitationAction.php:52 msgid "Invite" @@ -1948,7 +1908,7 @@ msgstr[0] "patient" msgstr[1] "patients" -#: classes/Gems/Default/RespondentAction.php:398 +#: classes/Gems/Default/RespondentAction.php:399 msgid "Please settle the informed consent form for this respondent." msgstr "Please settle the informed consent form for this patient." @@ -2263,6 +2223,10 @@ msgid "Checking survey results for all surveys." msgstr "Checking survey results for all surveys." +#: classes/Gems/Default/SurveyMaintenanceAction.php:345 +msgid "OK" +msgstr "OK" + #: classes/Gems/Default/SurveyMaintenanceAction.php:352 msgid "Source" msgstr "Source" @@ -2517,12 +2481,12 @@ msgid "%s %s not found." msgstr "%s %s not found." -#: classes/Gems/Default/TrackActionAbstract.php:488 +#: classes/Gems/Default/TrackActionAbstract.php:489 #, php-format msgid "Overview of %s track for respondent %s" msgstr "Overview of %s track for patient %s" -#: classes/Gems/Default/TrackActionAbstract.php:492 +#: classes/Gems/Default/TrackActionAbstract.php:493 msgid "This track is currently not assigned to this respondent." msgstr "This track is currently not assigned to this patient." @@ -3320,6 +3284,11 @@ msgid "After change" msgstr "After change" +#: classes/Gems/Tracker/Form/AskTokenForm.php:78 +#, php-format +msgid "Enter tokens as %s." +msgstr "Enter tokens as %s." + #: classes/Gems/Tracker/Model/StandardTokenModel.php:216 msgid "Measure(d) on" msgstr "Measure(d) on" @@ -3364,14 +3333,12 @@ #: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:232 #: classes/Gems/Tracker/Snippets/EditTokenSnippetAbstract.php:124 -#: classes/Gems/Tracker/Snippets/ShowTokenSnippetAbstract.php:164 #, php-format msgid "Token %s not found." msgstr "Token %s not found." #: classes/Gems/Tracker/Snippets/AnswerModelSnippetGeneric.php:236 #: classes/Gems/Tracker/Snippets/EditTokenSnippetAbstract.php:128 -#: classes/Gems/Tracker/Snippets/ShowTokenSnippetAbstract.php:168 msgid "No token specified." msgstr "No token specified." @@ -3410,7 +3377,7 @@ msgstr "Next >" #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:376 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1154 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1156 #, php-format msgid "The '%s' survey is no longer active. The survey was removed from LimeSurvey!" msgstr "The '%s' survey is no longer active. The survey was removed from LimeSurvey!" @@ -3440,51 +3407,51 @@ msgstr "Required fields: %s" #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:466 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1307 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1309 #, php-format msgid "The status of the '%s' survey has changed." msgstr "The status of the '%s' survey has changed." #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:472 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1313 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1315 #, php-format msgid "Survey '%s' IS NO LONGER ACTIVE!!!" msgstr "Survey '%s' IS NO LONGER ACTIVE!!!" #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:478 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1319 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1321 #, php-format msgid "The status of the '%s' survey has changed to '%s'." msgstr "The status of the '%s' survey has changed to '%s'." #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:481 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1322 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1324 #, php-format msgid "The status warning for the '%s' survey was removed." msgstr "The status warning for the '%s' survey was removed." #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:487 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1328 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1330 #, php-format msgid "The name of the '%s' survey has changed to '%s'." msgstr "The name of the '%s' survey has changed to '%s'." #: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:498 -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1338 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1340 #, php-format msgid "Imported the '%s' survey." msgstr "Imported the '%s' survey." -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:722 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:723 msgid "Submitdate" msgstr "Submitdate" -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1134 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1136 #, php-format msgid "Updated %d Gems tokens to new token definition." msgstr "Updated %d Gems tokens to new token definition." -#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1289 +#: classes/Gems/Tracker/Source/LimeSurvey1m9Database.php:1291 #, 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'." @@ -3557,6 +3524,28 @@ msgid "- %s" msgstr "- %s" +#: classes/Gems/Tracker/Token/TokenValidator.php:164 +msgid "The server is currently busy, please wait a while and try again." +msgstr "The server is currently busy, please wait a while and try again." + +#: classes/Gems/Tracker/Token/TokenValidator.php:199 +#, php-format +msgid "Not a valid token. The format for valid tokens is: %s." +msgstr "Not a valid token. The format for valid tokens is: %s." + +#: classes/Gems/Tracker/Token/TokenValidator.php:217 +#: classes/Gems/Tracker/Token/TokenValidator.php:231 +msgid "This token is no longer valid." +msgstr "This token is no longer valid." + +#: classes/Gems/Tracker/Token/TokenValidator.php:224 +msgid "This token cannot (yet) be used." +msgstr "This token cannot (yet) be used." + +#: classes/Gems/Tracker/Token/TokenValidator.php:238 +msgid "Unknown token." +msgstr "Unknown token." + #: classes/Gems/User/Organization.php:342 msgid "Cookies must be enabled for this site." msgstr "Cookies must be enabled for this site." @@ -3618,7 +3607,7 @@ msgid "may not contain numbers" msgstr "may not contain numbers" -#: classes/Gems/User/RadiusUserDefinition.php:177 +#: classes/Gems/User/RadiusUserDefinition.php:165 msgid "Shared secret" msgstr "Shared secret" @@ -3633,26 +3622,26 @@ msgid "You are not allowed to login from this location." msgstr "You are not allowed to login from this location." -#: classes/Gems/User/User.php:1074 +#: classes/Gems/User/User.php:1094 msgid "Your birthday" msgstr "Your birthday" -#: classes/Gems/User/User.php:1090 -#: classes/Gems/User/Form/ChangePasswordForm.php:169 +#: classes/Gems/User/User.php:1110 +#: classes/Gems/User/Form/ChangePasswordForm.php:163 #, php-format msgid "%s is not correct." msgstr "%s is not correct." -#: classes/Gems/User/User.php:1095 -#: classes/Gems/User/Form/OrganizationFormAbstract.php:271 +#: classes/Gems/User/User.php:1115 +#: classes/Gems/User/Form/OrganizationFormAbstract.php:230 msgid "Username" msgstr "Username" -#: classes/Gems/User/User.php:1110 +#: classes/Gems/User/User.php:1192 msgid "Trying to send a password reset to a user that cannot be reset." msgstr "Trying to send a password reset to a user that cannot be reset." -#: classes/Gems/User/User.php:1137 +#: classes/Gems/User/User.php:1220 msgid "Unable to send e-mail." msgstr "Unable to send e-mail." @@ -3665,38 +3654,38 @@ msgid "Radius storage" msgstr "Radius storage" -#: classes/Gems/User/Form/ChangePasswordForm.php:221 -#: classes/Gems/User/Form/ChangePasswordForm.php:281 +#: classes/Gems/User/Form/ChangePasswordForm.php:235 +#: classes/Gems/User/Form/ChangePasswordForm.php:292 msgid "New password" msgstr "New password" -#: classes/Gems/User/Form/ChangePasswordForm.php:229 -#: classes/Gems/User/Form/ChangePasswordForm.php:282 +#: classes/Gems/User/Form/ChangePasswordForm.php:242 +#: classes/Gems/User/Form/ChangePasswordForm.php:293 msgid "Must be the same as %fieldDescription%." msgstr "Must be the same as %fieldDescription%." -#: classes/Gems/User/Form/ChangePasswordForm.php:250 +#: classes/Gems/User/Form/ChangePasswordForm.php:263 msgid "Current password" msgstr "Current password" -#: classes/Gems/User/Form/ChangePasswordForm.php:255 +#: classes/Gems/User/Form/ChangePasswordForm.php:267 msgid "Wrong password." msgstr "Wrong password." -#: classes/Gems/User/Form/ChangePasswordForm.php:304 +#: classes/Gems/User/Form/ChangePasswordForm.php:315 msgid "Password rules" msgstr "Password rules" -#: classes/Gems/User/Form/ChangePasswordForm.php:307 +#: classes/Gems/User/Form/ChangePasswordForm.php:318 #, php-format msgid "A password %s." msgstr "A password %s." -#: classes/Gems/User/Form/ChangePasswordForm.php:314 +#: classes/Gems/User/Form/ChangePasswordForm.php:325 msgid "A password:" msgstr "A password:" -#: classes/Gems/User/Form/ChangePasswordForm.php:368 +#: classes/Gems/User/Form/ChangePasswordForm.php:377 msgid "Caps Lock seems to be on!" msgstr "Caps Lock seems to be on!" @@ -3906,7 +3895,7 @@ msgstr "Value is required and can't be empty" #: languages/FakeTranslations.php:41 -#: languages/FakeTranslations.php:85 +#: languages/FakeTranslations.php:78 msgid "Invalid type given, value should be string, integer or float" msgstr "Invalid type given, value should be string, integer or float" @@ -3920,92 +3909,72 @@ msgstr "Your account is temporarily blocked, please wait %s minutes" #: languages/FakeTranslations.php:50 -msgid "Not a valid token. The format for valid tokens is: %tokenFormat%." -msgstr "Not a valid token. The format for valid tokens is: %tokenFormat%." - -#: languages/FakeTranslations.php:51 -msgid "Unknown token." -msgstr "Unknown token." - -#: languages/FakeTranslations.php:52 -msgid "This token is no longer valid." -msgstr "This token is no longer valid." - -#: languages/FakeTranslations.php:53 -msgid "This token cannot be used (any more)." -msgstr "This token cannot be used (any more)." - -#: languages/FakeTranslations.php:54 -msgid "This token cannot be used (yet)." -msgstr "This token cannot be used (yet)." - -#: languages/FakeTranslations.php:57 #, php-format msgid "Date should be '%dateAfter%' or later." msgstr "Date should be '%dateAfter%' or later." -#: languages/FakeTranslations.php:60 +#: languages/FakeTranslations.php:53 #, php-format msgid "Date should be '%dateBefore%' or earlier." msgstr "Date should be '%dateBefore%' or earlier." -#: languages/FakeTranslations.php:63 +#: languages/FakeTranslations.php:56 msgid "%value% is not a valid date." msgstr "%value% is not a valid date." -#: languages/FakeTranslations.php:66 +#: languages/FakeTranslations.php:59 msgid "No record matching %value% was found." msgstr "No record matching %value% was found." -#: languages/FakeTranslations.php:67 +#: languages/FakeTranslations.php:60 msgid "A duplicate record matching '%value%' was found." msgstr "A duplicate record matching '%value%' was found." -#: languages/FakeTranslations.php:70 +#: languages/FakeTranslations.php:63 msgid "This is not a valid %testDescription%." msgstr "This is not a valid %testDescription%." -#: languages/FakeTranslations.php:71 +#: languages/FakeTranslations.php:64 msgid "A %testDescription% cannot contain letters." msgstr "A %testDescription% cannot contain letters." -#: languages/FakeTranslations.php:72 +#: languages/FakeTranslations.php:65 msgid "%value% is too long for a %testDescription%. Should be %length% digits." msgstr "%value% is too long for a %testDescription%. Should be %length% digits." -#: languages/FakeTranslations.php:73 +#: languages/FakeTranslations.php:66 msgid "%value% is too short for a %testDescription%. Should be %length% digits." msgstr "%value% is too short for a %testDescription%. Should be %length% digits." -#: languages/FakeTranslations.php:79 +#: languages/FakeTranslations.php:72 msgid "'%value%' is not a phone number (e.g. +12 (0)34-567 890)." msgstr "'%value%' is not a phone number (e.g. +12 (0)34-567 890)." -#: languages/FakeTranslations.php:82 +#: languages/FakeTranslations.php:75 msgid "To set '%description%' you have to set '%fieldDescription%'." msgstr "To set '%description%' you have to set '%fieldDescription%'." -#: languages/FakeTranslations.php:86 +#: languages/FakeTranslations.php:79 msgid "'%value%' is not an email address (e.g. na...@so...)." msgstr "'%value%' is not an email address (e.g. na...@so...)." -#: languages/FakeTranslations.php:89 +#: languages/FakeTranslations... [truncated message content] |