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...> - 2012-07-27 11:57:41
|
Revision: 882 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=882&view=rev Author: mennodekker Date: 2012-07-27 11:57:32 +0000 (Fri, 27 Jul 2012) Log Message: ----------- Allow to change the allowed options from outside the formbridge Modified Paths: -------------- trunk/library/classes/MUtil/Model/FormBridge.php Modified: trunk/library/classes/MUtil/Model/FormBridge.php =================================================================== --- trunk/library/classes/MUtil/Model/FormBridge.php 2012-07-26 12:33:37 UTC (rev 881) +++ trunk/library/classes/MUtil/Model/FormBridge.php 2012-07-27 11:57:32 UTC (rev 882) @@ -775,7 +775,25 @@ } /** + * Returns the allowed options for a certain key or all options if no + * key specified * + * @param string $key + * @return array + */ + public function getAllowedOptions($key = null) + { + if (is_null($key)) return $this->_allowedOptions; + + if (array_key_exists($key, $this->_allowedOptions)) { + return $key; + } else { + return array(); + } + } + + /** + * * @return Zend_Form */ public function getForm() @@ -804,4 +822,21 @@ return $this->form->getTab($name); } } + + /** + * Set the allowed options for a certain key to the specified options array + * + * @param string $key + * @param array $options + * @return MUtil_Model_FormBridge + */ + public function setAllowedOptions($key, $options) + { + if (!is_string($options)) { + $options = array($options); + } + + $this->_allowedOptions[$key] = $options; + return $this; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-26 12:33:47
|
Revision: 881 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=881&view=rev Author: mennodekker Date: 2012-07-26 12:33:37 +0000 (Thu, 26 Jul 2012) Log Message: ----------- Doc and interface compliance updates Modified Paths: -------------- trunk/library/classes/Gems/Snippets/SnippetLoader.php trunk/library/classes/Gems/User/Form/LayeredLoginForm.php Modified: trunk/library/classes/Gems/Snippets/SnippetLoader.php =================================================================== --- trunk/library/classes/Gems/Snippets/SnippetLoader.php 2012-07-26 10:46:40 UTC (rev 880) +++ trunk/library/classes/Gems/Snippets/SnippetLoader.php 2012-07-26 12:33:37 UTC (rev 881) @@ -1,5 +1,4 @@ <?php - /** * Copyright (c) 2011, Erasmus MC * All rights reserved. @@ -26,26 +25,27 @@ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * - * Short description of file + * Gems specific version of the snippet loader * * @package Gems - * @subpackage + * @subpackage Snippets * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License * @version $Id: Sample.php 215 2011-07-12 08:52:54Z michiel $ */ /** - * Short description for SnippetLoader + * Gems specific version of the snippet loader * - * Long description for class SnippetLoader (if any)... + * Loads snippets like all other classes in gems first with project prefix, then gems, mutil + * and when all that fails it will try without prefix from the project\snippets and gems\snippets + * folders * * @package Gems - * @subpackage Sample + * @subpackage Snippets * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License - * @since Class available since version 1.0 - * @deprecated Class deprecated since version 2.0 + * @since Class available since version 1.5.5 */ class Gems_Snippets_SnippetLoader extends Gems_Loader_TargetLoaderAbstract implements MUtil_Snippets_SnippetLoaderInterface { @@ -58,6 +58,12 @@ */ protected $backup; + /** + * Initialize the snippetloader (Gems style) + * + * @param mixed $container A container acting as source for MUtil_Registry_Source + * @param array $dirs The directories where to look for requested classes + */ public function __construct($container = null, $dirs = array()) { parent::__construct($container, $dirs); $this->backup = new MUtil_Snippets_SnippetLoader($this); @@ -65,6 +71,12 @@ } + /** + * Add a directory to the front of the list of places where snippets are loaded from. + * + * @param string $dir + * @return MUtil_Snippets_SnippetLoader + */ public function addDirectory($dir) { if (!array_key_exists('', $this->_dirs)) { @@ -72,19 +84,38 @@ } array_unshift($this->_dirs[''], $dir); - $this->backup->addDirectory($dir); + return $this->backup->addDirectory($dir); } + /** + * Add parameter values to the source for snippets. + * + * @param mixed $container_or_pairs This function can be called with either a single container or a list of name/value pairs. + * @return MUtil_Snippets_SnippetLoader + */ public function addSource($container_or_pairs) { - $this->backup->addSource($container_or_pairs); + return $this->backup->addSource($container_or_pairs); } + /** + * Returns the directories where snippets are loaded from. + * + * @param array $dirs + * @return array + */ public function getDirectories() { - $this->backup->getDirectories(); + return $this->backup->getDirectories(); } + /** + * Searches and loads a .php snippet file. + * + * @param string $filename The name of the snippet + * @param array $extraSourceParameters name/value pairs to add to the source for this snippet + * @return MUtil_Snippets_SnippetInterface The snippet + */ public function getSnippet($filename, array $extraSourceParameters = null) { try { @@ -101,18 +132,35 @@ return $snippet; } + /** + * Returns a source of values for snippets. + * + * @return MUtil_Registry_SourceInterface + */ public function getSource() { - $this->backup->getSource(); + return $this->backup->getSource(); } + /** + * Set the directories where snippets are loaded from. + * + * @param array $dirs + * @return MUtil_Snippets_SnippetLoader (continuation pattern) + */ public function setDirectories(array $dirs) { - $this->backup->setDirectories($dirs); + return $this->backup->setDirectories($dirs); } + /** + * Sets the source of variables for snippets + * + * @param MUtil_Registry_SourceInterface $source + * @return MUtil_Snippets_SnippetLoader (continuation pattern) + */ public function setSource(MUtil_Registry_SourceInterface $source) { - $this->backup->setSource($source); + return $this->backup->setSource($source); } } \ No newline at end of file Modified: trunk/library/classes/Gems/User/Form/LayeredLoginForm.php =================================================================== --- trunk/library/classes/Gems/User/Form/LayeredLoginForm.php 2012-07-26 10:46:40 UTC (rev 880) +++ trunk/library/classes/Gems/User/Form/LayeredLoginForm.php 2012-07-26 12:33:37 UTC (rev 881) @@ -25,27 +25,23 @@ * 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. - * - * Short description of file * * @package Gems - * @subpackage + * @subpackage User\Form * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License * @version $Id: Sample.php 215 2011-07-12 08:52:54Z michiel $ */ /** - * Short description for LoginForm + * A layered login form, useful when organizations have some kind of + * hierarchy * - * Long description for class LoginForm (if any)... - * * @package Gems - * @subpackage Sample + * @subpackage User\Form * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License - * @since Class available since version 1.0 - * @deprecated Class deprecated since version 2.0 + * @since Class available since version 1.5.5 */ class Gems_User_Form_LayeredLoginForm extends Gems_User_Form_LoginForm { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-26 10:46:47
|
Revision: 880 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=880&view=rev Author: mennodekker Date: 2012-07-26 10:46:40 +0000 (Thu, 26 Jul 2012) Log Message: ----------- Fixed unit test for login form Modified Paths: -------------- trunk/test/classes/IndexControllerTest.php Modified: trunk/test/classes/IndexControllerTest.php =================================================================== --- trunk/test/classes/IndexControllerTest.php 2012-07-25 14:56:06 UTC (rev 879) +++ trunk/test/classes/IndexControllerTest.php 2012-07-26 10:46:40 UTC (rev 880) @@ -32,7 +32,7 @@ 'organization'=>'', 'userlogin'=>'superadmin', //Valid login, this comes from project.ini in newproject 'password'=>'superadmin', - 'submit'=>'submit' + 'button'=>'Login' //Submit button / label come from Gems_User_Form_LoginForm ); $this->getRequest()->setMethod('POST')->setPost($postVars); @@ -48,7 +48,7 @@ 'organization'=>'', 'userlogin'=>'superadmin', 'password'=>'superpassword', //This is wrong - 'submit'=>'submit' + 'submit'=>'Login' ); $this->getRequest()->setMethod('POST')->setPost($postVars); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-25 14:56:12
|
Revision: 879 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=879&view=rev Author: mennodekker Date: 2012-07-25 14:56:06 +0000 (Wed, 25 Jul 2012) Log Message: ----------- Release 1.5.5 Added Paths: ----------- tags/1.5.5/ Property changes on: tags/1.5.5 ___________________________________________________________________ Added: svn:ignore + nbproject Added: svn:mergeinfo + /branches/1.5.0-pulse:306-430,467 /branches/1.5.x:426-455,458-472,475-481 /tags/1.5.0beta1:305 /tags/1.5.1:485,489,509-510 /tags/1.5.3-rc2:612,614,616,618 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-25 14:08:49
|
Revision: 878 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=878&view=rev Author: mennodekker Date: 2012-07-25 14:08:40 +0000 (Wed, 25 Jul 2012) Log Message: ----------- Improved printing of survey export (new page for each survey) Modified Paths: -------------- trunk/library/classes/Gems/Export/RespondentExport.php Modified: trunk/library/classes/Gems/Export/RespondentExport.php =================================================================== --- trunk/library/classes/Gems/Export/RespondentExport.php 2012-07-25 14:08:28 UTC (rev 877) +++ trunk/library/classes/Gems/Export/RespondentExport.php 2012-07-25 14:08:40 UTC (rev 878) @@ -170,7 +170,7 @@ } if ($engine->getTrackType() == 'S' || !$groupSurveys) { - $this->html->span()->b($token->getSurveyName() . ($token->getRoundDescription() ? ' (' . $token->getRoundDescription() . ')' : '')); + $this->html->div($token->getSurveyName(), array('class'=>'surveyTitle')); $this->html->snippet($this->_singleSurveySnippet, 'token', $token, 'tokenId', $token->getTokenId(), 'showHeaders', false, 'showButtons', false, 'showSelected', false, 'showTakeButton', false); @@ -179,7 +179,7 @@ if (!isset($surveys[$token->getSurveyId()])) { $surveys[$token->getSurveyId()] = true; - $this->html->span()->b($token->getSurveyName()); + $this->html->div($token->getSurveyName(), array('class'=>'surveyTitle')); $this->html->snippet($this->_groupedSurveySnippet, 'token', $token, 'tokenId', $token->getTokenId(), 'showHeaders', false, 'showButtons', false, 'showSelected', false, 'showTakeButton', false); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-25 14:08:37
|
Revision: 877 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=877&view=rev Author: mennodekker Date: 2012-07-25 14:08:28 +0000 (Wed, 25 Jul 2012) Log Message: ----------- Improved printing of survey export (new page for each survey) Modified Paths: -------------- trunk/new_project/htdocs/gems/css/gems-fluid.css trunk/new_project/htdocs/gems/css/gems-new.css trunk/new_project/htdocs/gems/css/gems.css trunk/new_project/htdocs/gems/css/gems_print.css Modified: trunk/new_project/htdocs/gems/css/gems-fluid.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems-fluid.css 2012-07-25 12:13:57 UTC (rev 876) +++ trunk/new_project/htdocs/gems/css/gems-fluid.css 2012-07-25 14:08:28 UTC (rev 877) @@ -469,6 +469,10 @@ text-align: center; } +.surveyTitle { + font-weight: bold; +} + table, td, th { empty-cells: show; margin: 0; Modified: trunk/new_project/htdocs/gems/css/gems-new.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems-new.css 2012-07-25 12:13:57 UTC (rev 876) +++ trunk/new_project/htdocs/gems/css/gems-new.css 2012-07-25 14:08:28 UTC (rev 877) @@ -494,6 +494,10 @@ text-align: center; } +.surveyTitle { + font-weight: bold; +} + table, td, th { empty-cells: show; margin: 0; Modified: trunk/new_project/htdocs/gems/css/gems.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems.css 2012-07-25 12:13:57 UTC (rev 876) +++ trunk/new_project/htdocs/gems/css/gems.css 2012-07-25 14:08:28 UTC (rev 877) @@ -450,6 +450,10 @@ text-align: center; } +.surveyTitle { + font-weight: bold; +} + table, td, th { empty-cells: show; margin: 0; Modified: trunk/new_project/htdocs/gems/css/gems_print.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems_print.css 2012-07-25 12:13:57 UTC (rev 876) +++ trunk/new_project/htdocs/gems/css/gems_print.css 2012-07-25 14:08:28 UTC (rev 877) @@ -31,7 +31,7 @@ border-collapse: collapse; } - table, tr, th, td { + tr, th, td { border: 1px solid #000; text-align: left; } @@ -59,4 +59,9 @@ } .print-only { display: inline; } + + .surveyTitle { + font-weight: bold; + page-break-before: always; /* left would be even nicer, but mostly unsupported in browsers */ + } } \ 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...> - 2012-07-25 12:14:32
|
Revision: 876 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=876&view=rev Author: mennodekker Date: 2012-07-25 12:13:57 +0000 (Wed, 25 Jul 2012) Log Message: ----------- partial fix for bug #554: Error when editing user and hashed SSN Modified Paths: -------------- trunk/library/classes/Gems/Default/RespondentAction.php Modified: trunk/library/classes/Gems/Default/RespondentAction.php =================================================================== --- trunk/library/classes/Gems/Default/RespondentAction.php 2012-07-24 11:14:04 UTC (rev 875) +++ trunk/library/classes/Gems/Default/RespondentAction.php 2012-07-25 12:13:57 UTC (rev 876) @@ -114,6 +114,8 @@ */ protected function addFormElements(MUtil_Model_FormBridge $bridge, MUtil_Model_ModelAbstract $model, array $data, $new = false) { + $returnValues = array(); + if (APPLICATION_ENV !== 'production') { $bsn = new MUtil_Validate_Dutch_Burgerservicenummer(); $num = mt_rand(100000000, 999999999); @@ -127,6 +129,13 @@ $model->set('grs_ssn', 'description', $this->_('Enter a 9-digit SSN number.')); } + if ($model->hashSsn === Gems_Model_RespondentModel::SSN_HASH) { + if (strlen($data['grs_ssn']) > 9) { + // When longer the grs_ssn contains a hash, not a bsn number + $returnValues['grs_ssn'] = ''; + } + } + $ucfirst = new Zend_Filter_Callback('ucfirst'); // MUtil_Echo::track($data); @@ -185,6 +194,8 @@ $bridge->addTab( 'caption4')->h4($this->_('Settings')); $bridge->addSelect( 'grs_iso_lang', 'label', $this->_('Language'), 'multiOptions', $this->util->getLocalized()->getLanguages()); $bridge->addRadio( 'gr2o_consent', 'separator', '', 'description', $this->_('Has the respondent signed the informed consent letter?')); + + return $returnValues; } public function afterSave(array $data, $isNew) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-24 11:14:13
|
Revision: 875 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=875&view=rev Author: mennodekker Date: 2012-07-24 11:14:04 +0000 (Tue, 24 Jul 2012) Log Message: ----------- Added changelogs to upgrade controller with upgrade permission, a separate privilige is used for the button only project changelog (click on version number in footer) Added initial upgrade level for new projects Modified Paths: -------------- trunk/library/classes/Gems/Default/ProjectInformationAction.php trunk/library/classes/Gems/Menu.php trunk/library/classes/Gems/Upgrades.php Added Paths: ----------- trunk/new_project/var/settings/upgrades.ini Modified: trunk/library/classes/Gems/Default/ProjectInformationAction.php =================================================================== --- trunk/library/classes/Gems/Default/ProjectInformationAction.php 2012-07-24 10:48:15 UTC (rev 874) +++ trunk/library/classes/Gems/Default/ProjectInformationAction.php 2012-07-24 11:14:04 UTC (rev 875) @@ -110,9 +110,14 @@ public function changelogAction() { - $this->_showText($this->_('Changelog'), APPLICATION_PATH . '/changelog.txt'); + $this->_showText(sprintf($this->_('Changelog %s'), $this->escort->project->name), APPLICATION_PATH . '/changelog.txt'); } + public function changeloggtAction() + { + $this->_showText(sprintf($this->_('Changelog %s'), 'GemsTracker'), GEMS_LIBRARY_DIR . '/changelog.txt'); + } + public function errorsAction() { $this->logger->shutdown(); Modified: trunk/library/classes/Gems/Menu.php =================================================================== --- trunk/library/classes/Gems/Menu.php 2012-07-24 10:48:15 UTC (rev 874) +++ trunk/library/classes/Gems/Menu.php 2012-07-24 11:14:04 UTC (rev 875) @@ -217,6 +217,8 @@ //UPGRADES CONTROLLER $page = $setup->addPage($this->_('Upgrade'), 'pr.upgrade', 'upgrade', 'index'); + $page->addPage(sprintf($this->_('Changelog %s'), 'GemsTracker'), 'pr.upgrade', 'project-information', 'changeloggt'); + $page->addPage(sprintf($this->_('Changelog %s'), GEMS_PROJECT_NAME), 'pr.upgrade', 'project-information', 'changelog'); $show = $page->addAction($this->_('Show'), null, 'show')->setNamedParameters('id','context'); $page->addAction($this->_('Execute all'), 'pr.upgrade.all', 'execute-all')->setModelParameters(1); $show->addActionButton($this->_('Execute this'), 'pr.upgrade.one', 'execute-one')->setModelParameters(1)->addNamedParameters('from','from','to','to'); Modified: trunk/library/classes/Gems/Upgrades.php =================================================================== --- trunk/library/classes/Gems/Upgrades.php 2012-07-24 10:48:15 UTC (rev 874) +++ trunk/library/classes/Gems/Upgrades.php 2012-07-24 11:14:04 UTC (rev 875) @@ -61,6 +61,16 @@ $this->register(array($this, 'Upgrade151to152'), 'Upgrade from 1.5.1 to 1.5.2'); $this->register(array($this, 'Upgrade152to153'), 'Upgrade from 1.5.2 to 1.5.3'); $this->register(array($this, 'Upgrade153to154'), 'Upgrade from 1.5.3 to 1.5.4'); + $this->register(array($this, 'Upgrade154to155'), 'Upgrade from 1.5.4 to 1.5.5'); + + /** + * To have the new_project updated to the highest level, update + * + * /new_project/var/settings/upgrades.ini + * + * to have the right index for this context, normally when no index set on register + * it will start counting at 1. + */ } @@ -128,4 +138,16 @@ return true; } + + /** + * To upgrade to 1.5.5 just execute patchlevel 48 + */ + public function Upgrade154to155() + { + $this->_batch->addTask('Db_ExecutePatch', 48); + + $this->_batch->addTask('Echo', $this->_('Make sure to read the changelog as it contains important instructions')); + + return true; + } } \ No newline at end of file Added: trunk/new_project/var/settings/upgrades.ini =================================================================== --- trunk/new_project/var/settings/upgrades.ini (rev 0) +++ trunk/new_project/var/settings/upgrades.ini 2012-07-24 11:14:04 UTC (rev 875) @@ -0,0 +1 @@ +gems = 6 \ 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...> - 2012-07-24 10:48:24
|
Revision: 874 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=874&view=rev Author: mennodekker Date: 2012-07-24 10:48:15 +0000 (Tue, 24 Jul 2012) Log Message: ----------- Made fluid display of heartbeat a little nicer Modified Paths: -------------- trunk/new_project/htdocs/basic/basic.css Modified: trunk/new_project/htdocs/basic/basic.css =================================================================== --- trunk/new_project/htdocs/basic/basic.css 2012-07-24 10:37:54 UTC (rev 873) +++ trunk/new_project/htdocs/basic/basic.css 2012-07-24 10:48:15 UTC (rev 874) @@ -73,7 +73,7 @@ } #header { - background: url(local/pulse.gif) no-repeat right bottom; + background: url(local/pulse.gif) repeat-x 400px bottom; /* change 400px to move left or right */ height: 52px; margin: 10px auto 0 auto; overflow: hidden; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-24 10:38:03
|
Revision: 873 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=873&view=rev Author: mennodekker Date: 2012-07-24 10:37:54 +0000 (Tue, 24 Jul 2012) Log Message: ----------- Fixed missing submit button Modified Paths: -------------- trunk/library/classes/Gems/Form/TableForm.php Modified: trunk/library/classes/Gems/Form/TableForm.php =================================================================== --- trunk/library/classes/Gems/Form/TableForm.php 2012-07-24 09:49:55 UTC (rev 872) +++ trunk/library/classes/Gems/Form/TableForm.php 2012-07-24 10:37:54 UTC (rev 873) @@ -114,7 +114,17 @@ protected function _fixDecoratorHiddenSubmit(&$element) { - //No label and tooltip + // No label and tooltip + $rowOptions = array( + 'tag' => 'tr', + 'class' => $element->getName() + ); + + // Don't display if hidden + if ($element instanceof Zend_Form_Element_Hidden) { + $rowOptions['style'] = 'display:none;'; + } + $decorators = array( 'ViewHelper', array('Description', array('class' => 'description')), @@ -123,7 +133,7 @@ array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly' => true)), 'Tooltip', array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class' => 'label', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'openOnly' => true)), - array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $element->getName(), 'style' => 'display:none;')) + array(array('row' => 'HtmlTag'), $rowOptions) ); $element->setDecorators($decorators); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-24 09:50:05
|
Revision: 872 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=872&view=rev Author: mennodekker Date: 2012-07-24 09:49:55 +0000 (Tue, 24 Jul 2012) Log Message: ----------- updated changelog for last two commits Modified Paths: -------------- trunk/library/changelog.txt Modified: trunk/library/changelog.txt =================================================================== --- trunk/library/changelog.txt 2012-07-24 09:29:17 UTC (rev 871) +++ trunk/library/changelog.txt 2012-07-24 09:49:55 UTC (rev 872) @@ -11,6 +11,8 @@ Export of survey data can be selected by respondent id or by track Track and survey maintenance is extended with round and field deletion and more powerfull selection tools All maintenance tasks show some explanation on what they do +New default: Forms are no longer lazy by default. Use $form->setLazy(true) if you need it +New setting: in project.ini you can set cache to any of "none", "apc", "file" to influence what kind of cache to use Important changes from 1.5.3 => 1.5.4 ============================================================ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-24 09:29:28
|
Revision: 871 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=871&view=rev Author: mennodekker Date: 2012-07-24 09:29:17 +0000 (Tue, 24 Jul 2012) Log Message: ----------- Introduced a switch for cache settings in project.ini Modified Paths: -------------- trunk/library/classes/Gems/Project/ProjectSettings.php trunk/library/classes/GemsEscort.php trunk/new_project/application/configs/project.ini Modified: trunk/library/classes/Gems/Project/ProjectSettings.php =================================================================== --- trunk/library/classes/Gems/Project/ProjectSettings.php 2012-07-24 08:57:06 UTC (rev 870) +++ trunk/library/classes/Gems/Project/ProjectSettings.php 2012-07-24 09:29:17 UTC (rev 871) @@ -243,6 +243,22 @@ } /** + * Get the specified cache method from project settings + * + * @return string + */ + public function getCache() + { + if ($this->offsetExists('cache')) { + $cache = $this->offsetGet('cache'); + } else { + $cache = 'apc'; + } + + return $cache; + } + + /** * Returns an (optional) default organization from the project settings * * @return int Organization number or -1 when not set @@ -326,11 +342,11 @@ /** * Get the logLevel to use with the Gems_Log - * + * * Default settings is for development and testing environment to use Zend_Log::DEBUG and * for all other environments to use the Zend_Log::ERR level. This can be overruled by * specifying a logLevel in the project.ini - * + * * Using a level higher than Zend_Log::ERR will output full error messages, traces and request * info to the logfile. Please be aware that this might introduce a security risk as passwords * might be written to the logfile in plain text. @@ -489,4 +505,4 @@ { return isset($this['password']['initialPassword']); } -} +} \ No newline at end of file Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2012-07-24 08:57:06 UTC (rev 870) +++ trunk/library/classes/GemsEscort.php 2012-07-24 09:29:17 UTC (rev 871) @@ -149,13 +149,17 @@ */ protected function _initCache() { + $this->bootstrap('project'); + + $useCache = $this->getResource('project')->getCache(); + $cache = null; $exists = false; $cachePrefix = GEMS_PROJECT_NAME . '_'; // Check if APC extension is loaded - if( extension_loaded('apc') ) { + if($useCache === 'apc' && extension_loaded('apc') ) { $cacheBackend = 'Apc'; $cacheBackendOptions = array(); //Add path to the prefix as APC is a SHARED cache @@ -174,7 +178,7 @@ } } - if ($exists) { + if ($exists && $useCache <> 'none') { /** * automatic_cleaning_factor disables automatic cleaning of the cache and should get rid of * random delays on heavy traffic sites with File cache. Apc does @@ -1801,4 +1805,4 @@ return $result; } -} +} \ No newline at end of file Modified: trunk/new_project/application/configs/project.ini =================================================================== --- trunk/new_project/application/configs/project.ini 2012-07-24 08:57:06 UTC (rev 870) +++ trunk/new_project/application/configs/project.ini 2012-07-24 09:29:17 UTC (rev 871) @@ -299,15 +299,27 @@ ; ; where %s %s is respecitively the input (url) and ; the output (file) -export.pdfExportCommand = +export.pdfExportCommand = +;--------------------------------------------------------- +; PERFORMANCE +; Define what kind of cache to use. Choose from: +; apc (shared) memory cache, can sometimes be slow due to limited available +; memory in shared environments +; file When filesystem is fast enough or apc is not available +; none No cache - good for development +;--------------------------------------------------------- +cache = "apc" + [testing : production] +cache = "file" admin.user = superadmin admin.pwd = superadmin email.bounce = 1 [development : production] +cache = "none" admin.user = superadmin admin.pwd = superadmin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-24 08:57:30
|
Revision: 870 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=870&view=rev Author: mennodekker Date: 2012-07-24 08:57:06 +0000 (Tue, 24 Jul 2012) Log Message: ----------- Optimised tableform decorator fiddling to run only when rendering the form. Introduced MUtil_Form->setLazy(boolean) to make a form lazy, otherwise it will be rendered as is since most (if not all) forms are regular forms and Lazy just adds overhead to an object that is complicated enough by itself. Modified Paths: -------------- trunk/library/classes/Gems/Form/TableForm.php trunk/library/classes/Gems/TabForm.php trunk/library/classes/MUtil/Form.php trunk/library/classes/MUtil/Html/InputRenderer.php Modified: trunk/library/classes/Gems/Form/TableForm.php =================================================================== --- trunk/library/classes/Gems/Form/TableForm.php 2012-07-23 13:33:32 UTC (rev 869) +++ trunk/library/classes/Gems/Form/TableForm.php 2012-07-24 08:57:06 UTC (rev 870) @@ -43,7 +43,8 @@ * @license New BSD License * @since Class available since version 1.4 */ -class Gems_Form_TableForm extends Gems_Form { +class Gems_Form_TableForm extends Gems_Form +{ /** * Whether or not form elements are members of an array * @var bool @@ -52,19 +53,105 @@ private $_alternate = null; - public function __construct($options = null) { - //Needed for alternating rows - $this->_alternate = new MUtil_Lazy_Alternate(array('odd','even')); - parent::__construct($options); + protected function _fixDecoratorDisplayGroup(&$element) + { + // Display group + $element->setDecorators(array('FormElements', + array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), + array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly' => true)), + 'Tooltip', + array('Description', array('tag' => 'label', 'class' => 'optional', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'escape' => false)), + array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class' => 'label', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'openOnly' => true)), + array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $this->_alternate . ' ' . $element->getName() . ' ' . $element->getAttrib('class'))) + )); + + //Now add the right decorators to the elements + $groupElements = $element->getElements(); + foreach ($groupElements as $groupElement) { + $dec1 = $this->_getImportantDecorator($groupElement); + + $decorators = array(array('Description', array('class' => 'description')), + 'Errors', + 'Tooltip', + ); + + //If we want to see the individual fields labels, do so: + if ($element->getAttrib('showLabels') === true) { + if ($groupElement instanceof Zend_Form_Element_Checkbox) { + $decorators[] = array('Label', array('escape' => false, 'placement' => Zend_Form_Decorator_Label::APPEND)); + } else { + $decorators[] = array('Label', array('escape' => false)); + } + } + + //Apply final class and id to allow for custom styling + $decorators[] = array(array('labelCell' => 'HtmlTag'), array('tag' => 'div', 'class' => 'tab-displaygroup', 'id' => $groupElement->getName() . '_cont')); + + if (!is_null($dec1)) + array_unshift($decorators, $dec1); + $groupElement->setDecorators($decorators); + } } + protected function _fixDecoratorElement(&$element) + { + $dec1 = $this->_getImportantDecorator($element); + $decorators = array( + array('Description', array('class' => 'description')), + 'Errors', + array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), + array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly' => true)), + 'Tooltip', + array('Label', array('escape' => false)), + array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class' => 'label', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'openOnly' => true)), + array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $this->_alternate . ' ' . $element->getName())) + ); + if (!is_null($dec1)) { + array_unshift($decorators, $dec1); + } + $element->setDecorators($decorators); + } + + protected function _fixDecoratorHiddenSubmit(&$element) + { + //No label and tooltip + $decorators = array( + 'ViewHelper', + array('Description', array('class' => 'description')), + 'Errors', + array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), + array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly' => true)), + 'Tooltip', + array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class' => 'label', 'placement' => Zend_Form_Decorator_Abstract::PREPEND, 'openOnly' => true)), + array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $element->getName(), 'style' => 'display:none;')) + ); + $element->setDecorators($decorators); + } + + protected function _fixDecoratorHtml(&$element) + { + // Display with colspan = 2 + $decorators = array( + 'ViewHelper', + array('Description', array('class' => 'description')), + 'Errors', + 'Tooltip', + array('Label', array('escape' => false)), + array(array('labelCell' => 'HtmlTag'), array('tag' => 'td', 'class' => 'label', 'colspan' => 2)), + array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $this->_alternate . ' ' . $element->getAttrib('class') . ' ' . $element->getName())) + ); + + $element->setDecorators($decorators); + } + /** * Get a ViewHelper or ZendX decorator to add in front of the decorator chain * * @param Zend_Form_Element $element * @return null|Zend_Form_Decorator_Abstract */ - private function _getImportantDecorator($element) { + private function _getImportantDecorator($element) + { $class = get_class($element); if (strpos($class, 'JQuery')) { @@ -104,111 +191,33 @@ public function addDisplayGroup(array $elements, $name, $options = null) { //Add the group as usual, but skip decorator loading as we don't need that - parent::addDisplayGroup($elements, $name, (array) $options + array('disableLoadDefaultDecorators'=>true)); - - //Retrieve it and set decorators - $group = $this->getDisplayGroup($name); - $group->setDecorators( array('FormElements', - array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), - array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly'=>true)), - 'Tooltip', - array('Description', array('tag'=>'label', 'class'=>'optional', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'escape'=>false)), - array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class'=>'label', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'openOnly'=>true)), - array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $group->getName(). ' ' . $group->getAttrib('class'))) - )); - - //Now add the right decorators to the elements - $groupElements = $group->getElements(); - foreach ($groupElements as $element) { - $dec1 = $this->_getImportantDecorator($element); - - $decorators = array( array('Description', array('class'=>'description')), - 'Errors', - 'Tooltip', - ); - - //If we want to see the individual fields labels, do so: - if ($group->getAttrib('showLabels')===true) { - $decorators[] = array('Label', array('escape'=>false)); - } - - //Apply final class and id to allow for custom styling - $decorators[] = array(array('labelCell' => 'HtmlTag'), array('tag' => 'div', 'class'=>'tab-displaygroup', 'id'=>$element->getName().'_cont')); - - if (!is_null($dec1)) array_unshift($decorators, $dec1); - $element->setDecorators($decorators); - if ($element instanceof Zend_Form_Element_Checkbox) { - $decorator = $element->getDecorator('Label'); - if ($decorator) { - $decorator->setOption('placement', Zend_Form_Decorator_Label::APPEND); - } - } - } - return $this; + return parent::addDisplayGroup($elements, $name, (array) $options + array('disableLoadDefaultDecorators' => true)); } /** - * Add element to stack - * - * Takes care of setting the right decorators for table display - * - * @param string|Zend_Form_Element $element - * @param string $name - * @param array|Zend_Config $options - * @throws Zend_Form_Exception on invalid element - * @return Gems_Form_TableForm + * Fix the decorators so we get the table layout we want. Normally this is called + * only once when rendering the form. */ - public function addElement($element, $name = null, $options = null) + public function fixDecorators() { - parent::addElement($element, $name, $options); + //Needed for alternating rows + $this->_alternate = new MUtil_Lazy_Alternate(array('odd', 'even')); - if (null === $name) { - $name = $element->getName(); - } else { - $element = $this->getElement($name); - } + foreach ($this as $name => $element) { + if ($element instanceof MUtil_Form_Element_Html) { + $this->_fixDecoratorHtml($element); + + } elseif ($element instanceof Zend_Form_Element_Hidden || $element instanceof Zend_Form_Element_Submit) { + $this->_fixDecoratorHiddenSubmit($element); - $dec1 = $this->_getImportantDecorator($element); + } elseif ($element instanceof Zend_Form_Element) { + $this->_fixDecoratorElement($element); + + } elseif ($element instanceof Zend_Form_DisplayGroup) { + $this->_fixDecoratorDisplayGroup($element); - if ($element instanceof MUtil_Form_Element_Html) { - //Colspan 2 - $decorators = array( - array('Description', array('class'=>'description')), - 'Errors', - 'Tooltip', - array('Label', array('escape'=>false)), - array(array('labelCell' => 'HtmlTag'), array('tag' => 'td', 'class'=>'label', 'colspan'=>2)), - array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $element->getAttrib('class') . ' ' . $element->getName())) - ); - } elseif ($element instanceof Zend_Form_Element_Hidden || - $element instanceof Zend_Form_Element_Submit) { - //No label and tooltip - $decorators = array( - array('Description', array('class'=>'description')), - 'Errors', - array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), - array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly'=>true)), - 'Tooltip', - array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class'=>'label', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'openOnly'=>true)), - array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $element->getName())) - ); - } else { - $decorators = array( - array('Description', array('class'=>'description')), - 'Errors', - array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), - array(array('labelCellClose' => 'HtmlTag'), array('tag' => 'td', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'closeOnly'=>true)), - 'Tooltip', - array('Label', array('escape'=>false)), - array(array('labelCellOpen' => 'HtmlTag'), array('tag' => 'td', 'class'=>'label', 'placement'=> Zend_Form_Decorator_Abstract::PREPEND, 'openOnly'=>true)), - array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => $element->getName())) - ); + } } - - if (!is_null($dec1)) array_unshift($decorators, $dec1); - $element->setDecorators($decorators); - - return $this; } /** @@ -230,30 +239,26 @@ $decorators = $this->getDecorators(); if (empty($decorators)) { $this->addDecorator('AutoFocus') - ->addDecorator('FormElements') - ->addDecorator(array('table' => 'HtmlTag'), array('tag' => 'table', 'class'=>$class)) - ->addDecorator(array('tab' => 'HtmlTag'), array('tag' => 'div', 'class' => 'displayGroup')) - ->addDecorator('Form'); + ->addDecorator('FormElements') + ->addDecorator(array('table' => 'HtmlTag'), array('tag' => 'table', 'class' => $class)) + ->addDecorator(array('tab' => 'HtmlTag'), array('tag' => 'div', 'class' => 'displayGroup')) + ->addDecorator('Form'); } return $this; } - public function setView(Zend_View_Interface $view = null) + /** + * Fix the decorators the first time we try to render the form + * + * @param Zend_View_Interface $view + * @return string + */ + public function render(Zend_View_Interface $view = null) { - //If we set the view, fix the alternating rows - if ($this->_view !== $view) { - foreach($this as $name => $element) { - $decorator = $element->getDecorator('row'); - if ($decorator) { - if ($element instanceof Zend_Form_Element_Hidden) { - $decorator->setOption('style', 'display:none;'); - } else { - $decorator->setOption('class', $this->_alternate . ' ' . $decorator->getOption('class')); - } - } - } + if (!$this->_getIsRendered()) { + $this->fixDecorators(); } - return parent::setView($view); + return parent::render($view); } } \ No newline at end of file Modified: trunk/library/classes/Gems/TabForm.php =================================================================== --- trunk/library/classes/Gems/TabForm.php 2012-07-23 13:33:32 UTC (rev 869) +++ trunk/library/classes/Gems/TabForm.php 2012-07-24 08:57:06 UTC (rev 870) @@ -275,16 +275,16 @@ $this->selectTab($tab); } - $form = parent::setView($view); + parent::setView($view); - if ($view) { + if ($this->_view !== $view) { $this->activateJQuery(); if (false === $view->getPluginLoader('helper')->getPaths('Gems_JQuery_View_Helper')) { $view->addHelperPath('Gems/JQuery/View/Helper', 'Gems_JQuery_View_Helper'); } } - return $form; + return $this; } /** Modified: trunk/library/classes/MUtil/Form.php =================================================================== --- trunk/library/classes/MUtil/Form.php 2012-07-23 13:33:32 UTC (rev 869) +++ trunk/library/classes/MUtil/Form.php 2012-07-24 08:57:06 UTC (rev 870) @@ -56,6 +56,8 @@ protected $_no_dojo = true; protected $_no_jquery = true; + protected $_Lazy = false; + /** * Constructor * @@ -200,6 +202,16 @@ } /** + * Return true when the form is lazy + * + * @return boolean + */ + public function isLazy() + { + return $this->_Lazy; + } + + /** * Validate the form * * As it is better for translation utilities to set the labels etc. translated, @@ -361,6 +373,16 @@ } /** + * Is the form Lazy or can it be rendered normally? + * + * @param boolean $lazy + */ + public function setLazy($lazy = false) + { + $this->_Lazy = (bool) $lazy; + } + + /** * Set view object * * @param Zend_View_Interface $view Modified: trunk/library/classes/MUtil/Html/InputRenderer.php =================================================================== --- trunk/library/classes/MUtil/Html/InputRenderer.php 2012-07-23 13:33:32 UTC (rev 869) +++ trunk/library/classes/MUtil/Html/InputRenderer.php 2012-07-24 08:57:06 UTC (rev 870) @@ -357,8 +357,12 @@ public static function renderForm(Zend_View_Abstract $view, Zend_Form $form) { - return self::renderUntil($view, $form, - array('Zend_Form_Decorator_Form', 'Zend_Dojo_Form_Decorator_DijitForm')); + if ($form instanceof MUtil_Form && $form->isLazy()) { + return self::renderUntil($view, $form, + array('Zend_Form_Decorator_Form', 'Zend_Dojo_Form_Decorator_DijitForm')); + } else { + return self::renderComplete($view, $form); + } } public static function renderOnly(Zend_View_Abstract $view, $element, array $decorators) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-23 13:33:43
|
Revision: 869 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=869&view=rev Author: matijsdejong Date: 2012-07-23 13:33:32 +0000 (Mon, 23 Jul 2012) Log Message: ----------- Made fluid layout default for new project (restored fixed thoug) Added Paths: ----------- trunk/new_project/htdocs/gems/css/gems-fixed.css trunk/new_project/htdocs/gems/css/gems-fluid.css Copied: trunk/new_project/htdocs/gems/css/gems-fixed.css (from rev 867, trunk/new_project/htdocs/gems/css/gems-fixed.css) =================================================================== --- trunk/new_project/htdocs/gems/css/gems-fixed.css (rev 0) +++ trunk/new_project/htdocs/gems/css/gems-fixed.css 2012-07-23 13:33:32 UTC (rev 869) @@ -0,0 +1,30 @@ +/* Fluid width css */ + +/* Load common css */ +@import url('gems-new.css'); + +/* General styles */ +#all { + margin:0 auto; + padding:0; + border:0; /* This removes the border around the viewport in old versions of IE */ + width:1012px; + overflow: hidden; +} + +/* fixed with for header/footer */ +#header, +#header_bar, +#footer { + clear: both; + width: 1012px; +} + +#main { + width: 842px; + overflow-x: auto; +} + +table.browser, table.timeTable { + width: 830px; /* otherwise no shadow on the right visible */ +} \ No newline at end of file Property changes on: trunk/new_project/htdocs/gems/css/gems-fixed.css ___________________________________________________________________ Added: svn:mergeinfo + /branches/1.5.0-pulse/new_project/htdocs/gems/css/gems-fixed.css:306-430,467 /branches/1.5.x/new_project/htdocs/gems/css/gems-fixed.css:426-455,458-472,475-481 /tags/1.5.0beta1/new_project/htdocs/gems/css/gems-fixed.css:305 /tags/1.5.1/new_project/htdocs/gems/css/gems-fixed.css:485,489,509-510 /tags/1.5.3-rc2/new_project/htdocs/gems/css/gems-fixed.css:612,614,616,618 Added: trunk/new_project/htdocs/gems/css/gems-fluid.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems-fluid.css (rev 0) +++ trunk/new_project/htdocs/gems/css/gems-fluid.css 2012-07-23 13:33:32 UTC (rev 869) @@ -0,0 +1,686 @@ +/* Fluid width css */ + +/* General styles */ +#all { + margin:0; + padding:0; + border:0; /* This removes the border around the viewport in old versions of IE */ + width:100%; + min-width:600px; /* Minimum width of layout - remove line if not required */ + /* The min-width property does not work in old versions of Internet Explorer */ +} + +#header, #footer, #header_bar, .zend_echo { + clear: both; + float: left; + width: 100%; +} + +#main { + width: 81%; +} + +#main, #menu { + margin: 0.5em 0.5%; /* margin margin margin margin + menu_abs_width */ +} + +#menu { + margin-top: 1em; + width: 16%; +} + +table.browser, table.timeTable { + width: 99%; /* to show shadows, 1% off */ +} + +/* Adapted common css: should move to one file */ + + + +/* Links */ +a { + text-decoration: none; +} + +.actionlink { + white-space: nowrap; +} + +a.actionlink { + font-style: normal; + text-decoration: none; +} + +a.actionlink + a.actionlink, +a.actionlink + span.actionlink, +span.actionlink + a.actionlink, +span.actionlink + span.actionlink { + margin-left: 1em; +} + +span.actionlink { + font-style: italic; +} + +a:hover { + text-decoration: underline; +} + +a[href^="mailto:"] { + background: transparent url(../images/mail.png) no-repeat scroll right center; + padding-right: 20px; +} + +a:hover[href^="mailto:"] { + text-decoration: underline !important; +} + +a.globe { + background: transparent url(../images/globe.png) no-repeat scroll right center; + padding-right: 20px; +} + +a.pdf { + background: transparent url(../images/pdf_small.gif) no-repeat scroll right center; + padding-right: 20px !important; +} + +body { + margin: 0; + padding: 0; +} + +button.ui-datepicker-trigger { + margin: 0 0.25em 0 0.25em; + padding: 0; + vertical-align: middle; +} + +.centerAlign { + text-align: center; +} + +.currentRow { + background-color: aqua; + border: 3px solid darkblue !important; +} + +.deleted { + color: #888888; + font-style: italic; + text-decoration: line-through; /* Bug in Firefox: line-through remains on for descending inline elements */ +} + +.icon { + float: right; + padding-right: 4px; +} + +input[disabled], .disabled { + color: #737373; + font-style: italic; +} + +input[disabled] { + color: #000000; + background: #EBEBE4; +} + +input[readonly] { + background: #EBEBE4; +} + +div, img, li, p, ul { + margin: 0; + padding: 0; +} + +div.buttons { + margin: 0.5em 0; +} + +.zend_echo, .errors { + background: #FAF8CC; + margin: 2px; + padding: 0.25em 0.5em; + border: 1px solid; +} + +.tableSpecial, +.zend_echo, +.errors, +.ui-tabs-nav-item.taberror span { + color: #DD0000; + font-weight: bold; +} + +.errors { + border-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + display: inline-block; +} + +dd .errors { + display: block; +} + +ul.errors { + padding-left: 1.5em; + padding-right: 0.5em; +} + +/* Header/footer styles */ +#footer { + margin-bottom: 10px; +} + +#footer div, #header_bar div, #header_bar span { + padding: 1px 3px 2px 3px; +} + +.fullwidth > div { + margin: 0px 5px; /* provide a little 'air' on full-width */ +} + +h1, h2, h3 { + margin: 0.5em 0 0.25em 0; + padding: 0; +} + +h4 { + margin: 0.125em 0; + padding: 0; +} + +#header_bar { + padding: 0px; +} + +#header_bar #contact .dropdownContent { + display: none; +} + +#header_bar #contact:hover .dropdownContent { + display: block; + float: right; + left: -120%; + line-height: 110%; + list-style-type: none; + position: absolute; + text-align: right; + width: 200%; +} + +#header_bar #contact .dropdownContent a { + display: inline-block; + width: 100%; +} + +#header h1 { + margin-top: 0; +} + +#header_bar #organizations { + float:left; + height: 1.7em; + padding-top: 2px; + overflow: hidden; +} + +#header_bar #organizations input, #header_bar #organizations select { margin: 1px; padding: 0px; font-size: 100%;} + +#login .logout { + margin-left: 0.5em; +} + +img { + border: 0 solid transparent; +} + +.indent { + margin-left: 4em; + margin-right: 4em; +} + +.indentLeft { + padding-left: 3em; +} + +input.token_copy { + background-color: #EEEEEE; +} + +label.required { + font-weight: bold; +} + +.leftFloat { + float: left; + margin-right: 0.4em; +} + +.logFile { + border: 2px solid #888888; + /* border-right: 0px transparent; */ + padding: 1px 0 1px 3px; + height: 500px; + overflow: auto; + width: 99%; +} + +.mailpreview { + background-color: #FEFEFE; + border: 3px groove #888888; + margin: 2px 1px; + padding: 2px 0.5em; +} + +#main { + float: right; + /* *padding + *overflow to use only in IE 6 */ + *overflow-x: auto; + *padding-bottom: 25px; +} + +#main_full_width { + background: transparent; + margin-bottom: 10px; + padding: 10px 5px 0 5px; +} + +#main form dd { + display: inline-block; + *display: inline; + margin: 0 10px; +} + +#main form dt { + margin: 0; +} + +#main form dt label { + clear: left; + float: left; + margin: 0 0.25em 0 0; +} + +#main ul { + margin-bottom: 0.75em; + margin-top: 0.75em; +} + +#main #tabContainer ul { + margin-bottom: 0em; + margin-top: 0em; +} + +#main .tooldock .toolbox ul { + margin-bottom: 0; + margin-top: 0; +} + +#menu { + float: left; + padding: 0 0 10px 10px; + word-wrap: break-word; /* IE only feature */ +} + +#menu .navigation { + margin-left: 10px; +} + +#menu .navigation .active { + font-weight: bold; +} + +#menu ul { + margin-bottom: 0; +} + +#menu ul li ul { + margin: 0 0 0.25em 1em; +} + +#menu ul li a { + display: block; + *height: 1%; /* IE 6 Fix */ + margin: 0; + padding: 0; + *width: 115px; /* IE 6 Fix */ +} + +#menu ul li a.breakBefore { + border-top: 1px dotted; + margin: 3px 4px 0 0; + padding: 2px 0 0 0; +} + +#menu ul li a.noParameters { + font-style: italic; +} + +#menu .navigation .active ul li { + font-weight: normal; +} + +#menu .navigation .active ul li.active { + font-weight: bold; +} + +.middleAlign { + vertical-align: middle; +} + +p.description { + display: inline; + font-size: 0.75em; + padding: 2px 6px; +} + +p.info { + margin: 0.75em 0; +} + +.periodSlider { + margin: 0.5em; +} + +.print-only { display: none; } + +.rightAlign { + text-align: right; +} + +.rightFloat { + float: right; + margin-left: 0.4em; +} + +.search { + line-height: 250%; + margin: 0.5em 0; +} + +.search input { + margin: 0 0.2em; +} + +.search .inputgroup { + border: 2px solid; + border-bottom-radius: 6px; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + clear: both; + float: left; + line-height: 125%; + margin: 0 auto 0.25em 0; + padding: 0.25em 0.5em 0.25em; +} + +.search select { + width: 16em; +} + +.search select.minimal { + width: auto; +} + +select { + max-width: 48em; +} + +select option[value=''], select[value=''] { + color: #737373; + font-style: italic; +} + +.separator { + color: grey; + font-weight: normal; +} + +.smallTime { + font-size: 80%; + font-style: italic; +} + +.sortAsc, .sortAscSelected, .sortDescSelected { + line-height: 1.3em; + padding-bottom: 7px; +} + +.sortAsc:hover, .sortAscSelected, .sortDescSelected:hover { + background: transparent url(../images/sort_asc.png) no-repeat scroll center bottom; +} + +a.sortAscSelected:hover, a.sortDescSelected { + background: transparent url(../images/sort_desc.png) no-repeat scroll center bottom; +} + +span.thetooltip { + display: none; +} + +.sponsoring { + font-size: 80%; + margin: 5em auto 0 auto; + padding: 2px; + text-align: center; +} + +table, td, th { + empty-cells: show; + margin: 0; + overflow: visible; + padding: 0; +} + +table.displayer, table.browser, table.timeTable { + border-collapse: collapse; + border-spacing: 0; + clear: both; + margin: 0 0 0.5em 0; +} + +table.formTable td.label { + padding-top: 4px; + vertical-align: top; +} + +table.formTable td[colspan="2"].label { + text-align: left; +} + +table tr[onclick]:hover, +table td[onclick]:hover, +table th[onclick]:hover { + cursor: pointer; +} + +table .question { + text-indent: -1em; + padding-left: 1em; +} + +table .question_sub { + padding-left: 1em; +} + +table td, table th { + padding: 2px 4px; + vertical-align: top; +} + +table td.selectedColumn, table th.selectedColumn { + border-left: 2px solid; + border-right: 2px solid; +} + +table tfoot td.selectedColumn, table tfoot th.selectedColumn { + border-bottom: 2px solid; +} + +table td.date, table td.token { + white-space: pre; + /* width: 7em; */ +} + +table td.timeResult, table th.timeResult { + width: 5em; +} + +table th { + text-align: left; +} + +table tr.selectedRow td.selectedColumn { + border-bottom: 2px solid; + font-weight: bold; +} + +table tr.selectedRow td.selectedColumn, table thead th.selectedColumn { + border-top: 2px solid; +} + +table.timeTable th a, table.timeTable td a { + color: inherit; +} + +.tab-displaygroup { + float: left; + margin-right: 5px; + /* optionally set a fixed with here for aligning */ +} + +.tab-displaygroup label { + display: inline-block; /* otherwise with won't be applied */ + width: 5em; +} + +.tab-displaygroup input, +.tab-displaygroup select +{ + /* Set a default with so things will align */ + max-width: 6em; +} + +.tabrow { + margin: 0.5em 0 0 0; + *margin-top: 0; + padding: 0; + *padding-top: 0.5em; +} + +.tabrow .tab { + border: 1px solid #000; + border-bottom-width: 0px; + float: left; + margin: 1px 0.5em 0 0; + padding: 0.2em; + text-align: center; + width: 8em; +} + +.tabrow .tab.active { + border: 2px solid #000; + border-bottom-width: 0px; + font-weight: bold; + margin-top: 0; +} + +.tabrow .tab a { + display: block; + margin: 0; + padding: 0; + width: 100%; +} + +.toolbox { + display: inline; + margin: 0.5em 0 0 0.5em; + position: relative; +} + +.toolbox .toolanchor { + display: inline-block; +} + +.toolbox a.toolanchor { + font-weight: bold; +} + +.toolbox ul { + display: none; + list-style-type: none; + position: absolute; + z-index: 100; +} + +.toolbox:hover ul { + display: inline; + max-height: 18.5em; + left: 0; + overflow: auto; + position: absolute; + top: 1.2em; +} + +.toolbox ul li { + list-style-type: none; + margin: 1px 3px; +} + +.toolbox ul li a.add { + display: inline-block; + margin: 1px 0; + overflow: hidden; + padding: 1px 2px; +} + +.toolbox ul li a.right { + width: 16px; +} + + +.toolbox ul li a:hover { + text-decoration: none; +} + + +.tooldock { + padding: 5px; +} + +.tooltip { + background: #FFFFCC; + border: 1px solid #e8f5fd; + padding: 3px 5px; + color: black; + font-size: .8em; + z-index: 10; /* otherwise invisible */ +} + +td.tracksList { + width: 25%; +} + +td .tracksList { + height: 10em; + overflow: auto; +} + +.tracksList p { + margin-bottom: 0.25em; +} + +#wrapper { + position:relative; /* This fixes the IE7 overflow hidden bug and stops the layout jumping out of place */ + clear:both; + float:left; + width:100%; /* width of whole page */ +} + +.zend_echo { + font-weight: normal; +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-23 13:31:46
|
Revision: 868 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=868&view=rev Author: matijsdejong Date: 2012-07-23 13:31:34 +0000 (Mon, 23 Jul 2012) Log Message: ----------- Made fluid layout default for new project Modified Paths: -------------- trunk/new_project/application/configs/application.ini Added Paths: ----------- trunk/library/layouts/scripts/gems-fluid.phtml Removed Paths: ------------- trunk/library/layouts/scripts/gems-fluid2.phtml trunk/new_project/htdocs/gems/css/gems-fixed.css trunk/new_project/htdocs/gems/css/gems-fluid.css trunk/new_project/htdocs/gems/css/gems-fluid2.css Added: trunk/library/layouts/scripts/gems-fluid.phtml =================================================================== --- trunk/library/layouts/scripts/gems-fluid.phtml (rev 0) +++ trunk/library/layouts/scripts/gems-fluid.phtml 2012-07-23 13:31:34 UTC (rev 868) @@ -0,0 +1,74 @@ +<?php echo $this->doctype(); ?> +<html <?php echo 'xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$this->locale.'"' ?> lang="<?php echo $this->locale; ?>"> +<head> + <base href="<?php echo $this->serverUrl() . $this->baseUrl() ?>"/> + <?php + echo $this->headMeta(); + echo $this->headTitle(); + echo $this->headLink(); + echo $this->headStyle(); + + // Check if jQuery library is needed + if ($this->jQuery) { + echo $this->jQuery(); + //Error message for when jQuery can not be loaded + /*echo "<script> + if (typeof jQuery == 'undefined') { + document.writeln('<div class=\"errors\">The site requires external JavaScript from another domain, which is blocked or failed to load.</div>'); + } + </script>";*/ + } + + // Check if dojo library is needed + if ($this->dojoTheme) { + // Echo out the dojo <script> tags + echo $this->dojo(); + } + ?> + </head> +<body<?php if (isset($this->dojoTheme)) { echo " class='" . $this->dojoTheme . "' "; } ?>> + <div id="all"> + <div id="header"><?php if ($this->header) { echo $this->header->render($this); }?></div> + <div id="header_bar"><?php if ($this->header_bar) { echo $this->header_bar->render($this); } ?></div> +<?php + if ($this->navigation || $this->menuHtml): +?> + <div id="wrapper"> + <div class="main"> + <div id="main" ><?php + if ($this->main) { + echo $this->main->render($this); + } + echo $this->layout()->content; ?> + </div> + <div id="menu"><?php + echo $this->navigation()->menu(); + echo $this->menuHtml; + ?> + </div> + </div> + </div><?php + else: + ?> + <div id="wrapper" class="main fullwidth"> + <div><?php + if ($this->main) { + echo $this->main->render($this); + } + echo $this->layout()->content; + ?> </div> + </div><?php + endif; + ?> + <div id="footer"><?php + if ($this->footer) { + echo $this->footer->render($this); + } + ?> + </div> + </div><?php +echo MUtil_Echo::out(); +echo $this->headScript(); +echo $this->inlineScript(); +?></body> +</html> \ No newline at end of file Deleted: trunk/library/layouts/scripts/gems-fluid2.phtml =================================================================== --- trunk/library/layouts/scripts/gems-fluid2.phtml 2012-07-23 10:52:21 UTC (rev 867) +++ trunk/library/layouts/scripts/gems-fluid2.phtml 2012-07-23 13:31:34 UTC (rev 868) @@ -1,74 +0,0 @@ -<?php echo $this->doctype(); ?> -<html <?php echo 'xmlns="http://www.w3.org/1999/xhtml" xml:lang="'.$this->locale.'"' ?> lang="<?php echo $this->locale; ?>"> -<head> - <base href="<?php echo $this->serverUrl() . $this->baseUrl() ?>"/> - <?php - echo $this->headMeta(); - echo $this->headTitle(); - echo $this->headLink(); - echo $this->headStyle(); - - // Check if jQuery library is needed - if ($this->jQuery) { - echo $this->jQuery(); - //Error message for when jQuery can not be loaded - /*echo "<script> - if (typeof jQuery == 'undefined') { - document.writeln('<div class=\"errors\">The site requires external JavaScript from another domain, which is blocked or failed to load.</div>'); - } - </script>";*/ - } - - // Check if dojo library is needed - if ($this->dojoTheme) { - // Echo out the dojo <script> tags - echo $this->dojo(); - } - ?> - </head> -<body<?php if (isset($this->dojoTheme)) { echo " class='" . $this->dojoTheme . "' "; } ?>> - <div id="all"> - <div id="header"><?php if ($this->header) { echo $this->header->render($this); }?></div> - <div id="header_bar"><?php if ($this->header_bar) { echo $this->header_bar->render($this); } ?></div> -<?php - if ($this->navigation || $this->menuHtml): -?> - <div id="wrapper"> - <div class="main"> - <div id="main" ><?php - if ($this->main) { - echo $this->main->render($this); - } - echo $this->layout()->content; ?> - </div> - <div id="menu"><?php - echo $this->navigation()->menu(); - echo $this->menuHtml; - ?> - </div> - </div> - </div><?php - else: - ?> - <div id="wrapper" class="main fullwidth"> - <div><?php - if ($this->main) { - echo $this->main->render($this); - } - echo $this->layout()->content; - ?> </div> - </div><?php - endif; - ?> - <div id="footer"><?php - if ($this->footer) { - echo $this->footer->render($this); - } - ?> - </div> - </div><?php -echo MUtil_Echo::out(); -echo $this->headScript(); -echo $this->inlineScript(); -?></body> -</html> \ No newline at end of file Modified: trunk/new_project/application/configs/application.ini =================================================================== --- trunk/new_project/application/configs/application.ini 2012-07-23 10:52:21 UTC (rev 867) +++ trunk/new_project/application/configs/application.ini 2012-07-23 13:31:34 UTC (rev 868) @@ -14,7 +14,7 @@ resources.db.params.password = PASSWD resources.db.isDefaultTableAdapter = true resources.frontController.controllerDirectory = GEMS_PROJECT_PATH "/controllers" -resources.layout.layout = "gemsnew" +resources.layout.layout = "gems-fluid" resources.layout.layoutPath = GEMS_LIBRARY_DIR "/layouts/scripts" firebug.log = 0 Deleted: trunk/new_project/htdocs/gems/css/gems-fixed.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems-fixed.css 2012-07-23 10:52:21 UTC (rev 867) +++ trunk/new_project/htdocs/gems/css/gems-fixed.css 2012-07-23 13:31:34 UTC (rev 868) @@ -1,30 +0,0 @@ -/* Fluid width css */ - -/* Load common css */ -@import url('gems-new.css'); - -/* General styles */ -#all { - margin:0 auto; - padding:0; - border:0; /* This removes the border around the viewport in old versions of IE */ - width:1012px; - overflow: hidden; -} - -/* fixed with for header/footer */ -#header, -#header_bar, -#footer { - clear: both; - width: 1012px; -} - -#main { - width: 842px; - overflow-x: auto; -} - -table.browser, table.timeTable { - width: 830px; /* otherwise no shadow on the right visible */ -} \ No newline at end of file Deleted: trunk/new_project/htdocs/gems/css/gems-fluid.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems-fluid.css 2012-07-23 10:52:21 UTC (rev 867) +++ trunk/new_project/htdocs/gems/css/gems-fluid.css 2012-07-23 13:31:34 UTC (rev 868) @@ -1,24 +0,0 @@ -/* Fluid width css */ - -/* Load common css */ -@import url('gems-new.css'); - -/* General styles */ -#all { - margin:0; - padding:0; - border:0; /* This removes the border around the viewport in old versions of IE */ - width:100%; - min-width:600px; /* Minimum width of layout - remove line if not required */ - /* The min-width property does not work in old versions of Internet Explorer */ -} - -#header, #footer, #header_bar, .zend_echo { - clear:both; - float:left; - width:100%; -} - -table.browser, table.timeTable { - width: 99%; /* to show shadows, 1% off */ -} \ No newline at end of file Deleted: trunk/new_project/htdocs/gems/css/gems-fluid2.css =================================================================== --- trunk/new_project/htdocs/gems/css/gems-fluid2.css 2012-07-23 10:52:21 UTC (rev 867) +++ trunk/new_project/htdocs/gems/css/gems-fluid2.css 2012-07-23 13:31:34 UTC (rev 868) @@ -1,686 +0,0 @@ -/* Fluid width css */ - -/* General styles */ -#all { - margin:0; - padding:0; - border:0; /* This removes the border around the viewport in old versions of IE */ - width:100%; - min-width:600px; /* Minimum width of layout - remove line if not required */ - /* The min-width property does not work in old versions of Internet Explorer */ -} - -#header, #footer, #header_bar, .zend_echo { - clear: both; - float: left; - width: 100%; -} - -#main { - width: 81%; -} - -#main, #menu { - margin: 0.5em 0.5%; /* margin margin margin margin + menu_abs_width */ -} - -#menu { - margin-top: 1em; - width: 16%; -} - -table.browser, table.timeTable { - width: 99%; /* to show shadows, 1% off */ -} - -/* Adapted common css: should move to one file */ - - - -/* Links */ -a { - text-decoration: none; -} - -.actionlink { - white-space: nowrap; -} - -a.actionlink { - font-style: normal; - text-decoration: none; -} - -a.actionlink + a.actionlink, -a.actionlink + span.actionlink, -span.actionlink + a.actionlink, -span.actionlink + span.actionlink { - margin-left: 1em; -} - -span.actionlink { - font-style: italic; -} - -a:hover { - text-decoration: underline; -} - -a[href^="mailto:"] { - background: transparent url(../images/mail.png) no-repeat scroll right center; - padding-right: 20px; -} - -a:hover[href^="mailto:"] { - text-decoration: underline !important; -} - -a.globe { - background: transparent url(../images/globe.png) no-repeat scroll right center; - padding-right: 20px; -} - -a.pdf { - background: transparent url(../images/pdf_small.gif) no-repeat scroll right center; - padding-right: 20px !important; -} - -body { - margin: 0; - padding: 0; -} - -button.ui-datepicker-trigger { - margin: 0 0.25em 0 0.25em; - padding: 0; - vertical-align: middle; -} - -.centerAlign { - text-align: center; -} - -.currentRow { - background-color: aqua; - border: 3px solid darkblue !important; -} - -.deleted { - color: #888888; - font-style: italic; - text-decoration: line-through; /* Bug in Firefox: line-through remains on for descending inline elements */ -} - -.icon { - float: right; - padding-right: 4px; -} - -input[disabled], .disabled { - color: #737373; - font-style: italic; -} - -input[disabled] { - color: #000000; - background: #EBEBE4; -} - -input[readonly] { - background: #EBEBE4; -} - -div, img, li, p, ul { - margin: 0; - padding: 0; -} - -div.buttons { - margin: 0.5em 0; -} - -.zend_echo, .errors { - background: #FAF8CC; - margin: 2px; - padding: 0.25em 0.5em; - border: 1px solid; -} - -.tableSpecial, -.zend_echo, -.errors, -.ui-tabs-nav-item.taberror span { - color: #DD0000; - font-weight: bold; -} - -.errors { - border-radius: 6px; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - display: inline-block; -} - -dd .errors { - display: block; -} - -ul.errors { - padding-left: 1.5em; - padding-right: 0.5em; -} - -/* Header/footer styles */ -#footer { - margin-bottom: 10px; -} - -#footer div, #header_bar div, #header_bar span { - padding: 1px 3px 2px 3px; -} - -.fullwidth > div { - margin: 0px 5px; /* provide a little 'air' on full-width */ -} - -h1, h2, h3 { - margin: 0.5em 0 0.25em 0; - padding: 0; -} - -h4 { - margin: 0.125em 0; - padding: 0; -} - -#header_bar { - padding: 0px; -} - -#header_bar #contact .dropdownContent { - display: none; -} - -#header_bar #contact:hover .dropdownContent { - display: block; - float: right; - left: -120%; - line-height: 110%; - list-style-type: none; - position: absolute; - text-align: right; - width: 200%; -} - -#header_bar #contact .dropdownContent a { - display: inline-block; - width: 100%; -} - -#header h1 { - margin-top: 0; -} - -#header_bar #organizations { - float:left; - height: 1.7em; - padding-top: 2px; - overflow: hidden; -} - -#header_bar #organizations input, #header_bar #organizations select { margin: 1px; padding: 0px; font-size: 100%;} - -#login .logout { - margin-left: 0.5em; -} - -img { - border: 0 solid transparent; -} - -.indent { - margin-left: 4em; - margin-right: 4em; -} - -.indentLeft { - padding-left: 3em; -} - -input.token_copy { - background-color: #EEEEEE; -} - -label.required { - font-weight: bold; -} - -.leftFloat { - float: left; - margin-right: 0.4em; -} - -.logFile { - border: 2px solid #888888; - /* border-right: 0px transparent; */ - padding: 1px 0 1px 3px; - height: 500px; - overflow: auto; - width: 99%; -} - -.mailpreview { - background-color: #FEFEFE; - border: 3px groove #888888; - margin: 2px 1px; - padding: 2px 0.5em; -} - -#main { - float: right; - /* *padding + *overflow to use only in IE 6 */ - *overflow-x: auto; - *padding-bottom: 25px; -} - -#main_full_width { - background: transparent; - margin-bottom: 10px; - padding: 10px 5px 0 5px; -} - -#main form dd { - display: inline-block; - *display: inline; - margin: 0 10px; -} - -#main form dt { - margin: 0; -} - -#main form dt label { - clear: left; - float: left; - margin: 0 0.25em 0 0; -} - -#main ul { - margin-bottom: 0.75em; - margin-top: 0.75em; -} - -#main #tabContainer ul { - margin-bottom: 0em; - margin-top: 0em; -} - -#main .tooldock .toolbox ul { - margin-bottom: 0; - margin-top: 0; -} - -#menu { - float: left; - padding: 0 0 10px 10px; - word-wrap: break-word; /* IE only feature */ -} - -#menu .navigation { - margin-left: 10px; -} - -#menu .navigation .active { - font-weight: bold; -} - -#menu ul { - margin-bottom: 0; -} - -#menu ul li ul { - margin: 0 0 0.25em 1em; -} - -#menu ul li a { - display: block; - *height: 1%; /* IE 6 Fix */ - margin: 0; - padding: 0; - *width: 115px; /* IE 6 Fix */ -} - -#menu ul li a.breakBefore { - border-top: 1px dotted; - margin: 3px 4px 0 0; - padding: 2px 0 0 0; -} - -#menu ul li a.noParameters { - font-style: italic; -} - -#menu .navigation .active ul li { - font-weight: normal; -} - -#menu .navigation .active ul li.active { - font-weight: bold; -} - -.middleAlign { - vertical-align: middle; -} - -p.description { - display: inline; - font-size: 0.75em; - padding: 2px 6px; -} - -p.info { - margin: 0.75em 0; -} - -.periodSlider { - margin: 0.5em; -} - -.print-only { display: none; } - -.rightAlign { - text-align: right; -} - -.rightFloat { - float: right; - margin-left: 0.4em; -} - -.search { - line-height: 250%; - margin: 0.5em 0; -} - -.search input { - margin: 0 0.2em; -} - -.search .inputgroup { - border: 2px solid; - border-bottom-radius: 6px; - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - clear: both; - float: left; - line-height: 125%; - margin: 0 auto 0.25em 0; - padding: 0.25em 0.5em 0.25em; -} - -.search select { - width: 16em; -} - -.search select.minimal { - width: auto; -} - -select { - max-width: 48em; -} - -select option[value=''], select[value=''] { - color: #737373; - font-style: italic; -} - -.separator { - color: grey; - font-weight: normal; -} - -.smallTime { - font-size: 80%; - font-style: italic; -} - -.sortAsc, .sortAscSelected, .sortDescSelected { - line-height: 1.3em; - padding-bottom: 7px; -} - -.sortAsc:hover, .sortAscSelected, .sortDescSelected:hover { - background: transparent url(../images/sort_asc.png) no-repeat scroll center bottom; -} - -a.sortAscSelected:hover, a.sortDescSelected { - background: transparent url(../images/sort_desc.png) no-repeat scroll center bottom; -} - -span.thetooltip { - display: none; -} - -.sponsoring { - font-size: 80%; - margin: 5em auto 0 auto; - padding: 2px; - text-align: center; -} - -table, td, th { - empty-cells: show; - margin: 0; - overflow: visible; - padding: 0; -} - -table.displayer, table.browser, table.timeTable { - border-collapse: collapse; - border-spacing: 0; - clear: both; - margin: 0 0 0.5em 0; -} - -table.formTable td.label { - padding-top: 4px; - vertical-align: top; -} - -table.formTable td[colspan="2"].label { - text-align: left; -} - -table tr[onclick]:hover, -table td[onclick]:hover, -table th[onclick]:hover { - cursor: pointer; -} - -table .question { - text-indent: -1em; - padding-left: 1em; -} - -table .question_sub { - padding-left: 1em; -} - -table td, table th { - padding: 2px 4px; - vertical-align: top; -} - -table td.selectedColumn, table th.selectedColumn { - border-left: 2px solid; - border-right: 2px solid; -} - -table tfoot td.selectedColumn, table tfoot th.selectedColumn { - border-bottom: 2px solid; -} - -table td.date, table td.token { - white-space: pre; - /* width: 7em; */ -} - -table td.timeResult, table th.timeResult { - width: 5em; -} - -table th { - text-align: left; -} - -table tr.selectedRow td.selectedColumn { - border-bottom: 2px solid; - font-weight: bold; -} - -table tr.selectedRow td.selectedColumn, table thead th.selectedColumn { - border-top: 2px solid; -} - -table.timeTable th a, table.timeTable td a { - color: inherit; -} - -.tab-displaygroup { - float: left; - margin-right: 5px; - /* optionally set a fixed with here for aligning */ -} - -.tab-displaygroup label { - display: inline-block; /* otherwise with won't be applied */ - width: 5em; -} - -.tab-displaygroup input, -.tab-displaygroup select -{ - /* Set a default with so things will align */ - max-width: 6em; -} - -.tabrow { - margin: 0.5em 0 0 0; - *margin-top: 0; - padding: 0; - *padding-top: 0.5em; -} - -.tabrow .tab { - border: 1px solid #000; - border-bottom-width: 0px; - float: left; - margin: 1px 0.5em 0 0; - padding: 0.2em; - text-align: center; - width: 8em; -} - -.tabrow .tab.active { - border: 2px solid #000; - border-bottom-width: 0px; - font-weight: bold; - margin-top: 0; -} - -.tabrow .tab a { - display: block; - margin: 0; - padding: 0; - width: 100%; -} - -.toolbox { - display: inline; - margin: 0.5em 0 0 0.5em; - position: relative; -} - -.toolbox .toolanchor { - display: inline-block; -} - -.toolbox a.toolanchor { - font-weight: bold; -} - -.toolbox ul { - display: none; - list-style-type: none; - position: absolute; - z-index: 100; -} - -.toolbox:hover ul { - display: inline; - max-height: 18.5em; - left: 0; - overflow: auto; - position: absolute; - top: 1.2em; -} - -.toolbox ul li { - list-style-type: none; - margin: 1px 3px; -} - -.toolbox ul li a.add { - display: inline-block; - margin: 1px 0; - overflow: hidden; - padding: 1px 2px; -} - -.toolbox ul li a.right { - width: 16px; -} - - -.toolbox ul li a:hover { - text-decoration: none; -} - - -.tooldock { - padding: 5px; -} - -.tooltip { - background: #FFFFCC; - border: 1px solid #e8f5fd; - padding: 3px 5px; - color: black; - font-size: .8em; - z-index: 10; /* otherwise invisible */ -} - -td.tracksList { - width: 25%; -} - -td .tracksList { - height: 10em; - overflow: auto; -} - -.tracksList p { - margin-bottom: 0.25em; -} - -#wrapper { - position:relative; /* This fixes the IE7 overflow hidden bug and stops the layout jumping out of place */ - clear:both; - float:left; - width:100%; /* width of whole page */ -} - -.zend_echo { - font-weight: normal; -} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-23 10:52:32
|
Revision: 867 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=867&view=rev Author: mennodekker Date: 2012-07-23 10:52:21 +0000 (Mon, 23 Jul 2012) Log Message: ----------- Fetch all surveys in a track, also the ones that are not in the rounds table and the ones that don't have responses yet Modified Paths: -------------- trunk/library/classes/Gems/Util/DbLookup.php Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2012-07-23 10:48:56 UTC (rev 866) +++ trunk/library/classes/Gems/Util/DbLookup.php 2012-07-23 10:52:21 UTC (rev 867) @@ -357,15 +357,14 @@ // Read some data from tables, initialize defaults... $select = $this->db->select(); - // Fetch al surveys + // Fetch all surveys $select->from('gems__surveys') ->join('gems__sources', 'gsu_id_source = gso_id_source') ->where('gso_active = 1') - ->where('gsu_id_survey IN (SELECT gto_id_survey FROM gems__tokens WHERE gto_completion_time IS NOT NULL)') ->order(array('gsu_active DESC', 'gsu_survey_name')); if ($trackId) { - $select->where('gsu_id_survey IN (SELECT gro_id_survey FROM gems__rounds WHERE gro_id_track = ?)', $trackId); + $select->where('gsu_id_survey IN (SELECT gto_id_survey FROM gems__tokens WHERE gto_id_track = ?)', $trackId); } $result = $this->db->fetchAll($select); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-23 10:49:02
|
Revision: 866 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=866&view=rev Author: mennodekker Date: 2012-07-23 10:48:56 +0000 (Mon, 23 Jul 2012) Log Message: ----------- Only apply alternating rows once Modified Paths: -------------- trunk/library/classes/Gems/Form/TableForm.php Modified: trunk/library/classes/Gems/Form/TableForm.php =================================================================== --- trunk/library/classes/Gems/Form/TableForm.php 2012-07-20 17:01:00 UTC (rev 865) +++ trunk/library/classes/Gems/Form/TableForm.php 2012-07-23 10:48:56 UTC (rev 866) @@ -241,7 +241,7 @@ public function setView(Zend_View_Interface $view = null) { //If we set the view, fix the alternating rows - if ($view) { + if ($this->_view !== $view) { foreach($this as $name => $element) { $decorator = $element->getDecorator('row'); if ($decorator) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-20 17:01:09
|
Revision: 865 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=865&view=rev Author: matijsdejong Date: 2012-07-20 17:01:00 +0000 (Fri, 20 Jul 2012) Log Message: ----------- Updated changelog Modified Paths: -------------- trunk/library/changelog.txt Modified: trunk/library/changelog.txt =================================================================== --- trunk/library/changelog.txt 2012-07-20 16:57:56 UTC (rev 864) +++ trunk/library/changelog.txt 2012-07-20 17:01:00 UTC (rev 865) @@ -9,7 +9,8 @@ In project.ini, export.wkhtmltopdf has been renamed to export.pdfExportCommand, and which now stores the entire command line to the pdf export binary (wkhtmltopdf, Phantom.js or similar). The normal time it takes to answer a survey can be added and surveys have a code field Export of survey data can be selected by respondent id or by track -All maintenance task show some explanation on what they do +Track and survey maintenance is extended with round and field deletion and more powerfull selection tools +All maintenance tasks show some explanation on what they do Important changes from 1.5.3 => 1.5.4 ============================================================ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-20 16:58:04
|
Revision: 864 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=864&view=rev Author: matijsdejong Date: 2012-07-20 16:57:56 +0000 (Fri, 20 Jul 2012) Log Message: ----------- Some more last minute issues for #366 Fixed #367 survey and track screens now have more powerfull selection tools Modified Paths: -------------- trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php trunk/library/classes/Gems/Default/TrackFieldsAction.php trunk/library/classes/Gems/Default/TrackMaintenanceAction.php trunk/library/classes/Gems/Default/TrackRoundsAction.php 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/SurveyMaintenanceAction.php =================================================================== --- trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php 2012-07-20 16:33:41 UTC (rev 863) +++ trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php 2012-07-20 16:57:56 UTC (rev 864) @@ -454,6 +454,73 @@ return MUtil_Html::raw(strip_tags($value)); } + /** + * Returns a text element for autosearch. Can be overruled. + * + * The form / html elements to search on. Elements can be grouped by inserting null's between them. + * That creates a distinct group of elements + * + * @param MUtil_Model_ModelAbstract $model + * @param array $data The $form field values (can be usefull, but no need to set them) + * @return array Of Zend_Form_Element's or static tekst to add to the html or null for group breaks. + */ + protected function getAutoSearchElements(MUtil_Model_ModelAbstract $model, array $data) + { + $elements = parent::getAutoSearchElements($model, $data); + + if ($elements) { + $br = MUtil_Html::create('br'); + $elements[] = $this->_createSelectElement('gsu_id_primary_group', $model, $this->_('(all groups)')); + + $elements[] = $br; + + $states = array( + 'act' => $this->_('Active'), + 'sok' => $this->_('OK in source, not active'), + 'nok' => $this->_('Blocked in source'), + ); + $element = $this->_createSelectElement('status', $states, $this->_('(every state)')); + // $element->setLabel($this->_('Status')); + $elements[] = $element; + + } + + return $elements; + } + + /** + * Additional data filter statements for the user input. + * + * User input that has the same name as a model field is automatically + * used as a filter, but if the name is different processing is needed. + * That processing should happen here. + * + * @param array $data The current user input + * @return array New filter statements + */ + protected function getDataFilter(array $data) + { + $filter = parent::getDataFilter($data); + + if (isset($data['status']) && strlen($data['status'])) { + switch ($data['status']) { + case 'sok': + $filter['gsu_active'] = 0; + $filter[] = "(gsu_status IS NULL OR LENGTH(gsu_status) = 0)"; + break; + + case 'nok': + $filter[] = "(gsu_status IS NOT NULL AND gsu_status NOT IN ('', 'OK'))"; + break; + + default: + $filter['gsu_active'] = 1; + } + } + + return $filter; + } + public function getTrackCount($currentId) { $singleTrack = ($this->escort instanceof Gems_Project_Tracks_SingleTrackInterface) ? $this->escort->getTrackId() : null; Modified: trunk/library/classes/Gems/Default/TrackFieldsAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackFieldsAction.php 2012-07-20 16:33:41 UTC (rev 863) +++ trunk/library/classes/Gems/Default/TrackFieldsAction.php 2012-07-20 16:57:56 UTC (rev 864) @@ -76,6 +76,47 @@ } /** + * Creates a model for getModel(). Called only for each new $action. + * + * The parameters allow you to easily adapt the model to the current action. The $detailed + * parameter was added, because the most common use of action is a split between detailed + * and summarized actions. + * + * @param boolean $detailed True when the current action is not in $summarizedActions. + * @param string $action The current action. + * @return Gems_Model_TrackModel + */ + public function createModel($detailed, $action) + { + $trackId = $this->_getIdParam(); + $types = array('select' => $this->_('Select one'), 'multiselect' => $this->_('Select multiple'), 'date' => $this->_('Date'), 'text' => $this->_('Free text')); + + $model = new MUtil_Model_TableModel('gems__track_fields'); + $model->setKeys(array('fid' => 'gtf_id_field', MUtil_Model::REQUEST_ID => 'gtf_id_track')); + $model->set('gtf_id_track', 'label', $this->_('Track'), 'multiOptions', $this->util->getTrackData()->getAllTracks()); + $model->set('gtf_id_order', 'label', $this->_('Order')); + $model->set('gtf_field_name', 'label', $this->_('Name')); + if ($detailed) { + $model->set('gtf_field_code', 'label', $this->_('Code Name')); + $model->set('gtf_field_description', 'label', $this->_('Description')); + } + $model->set('gtf_field_values', 'label', $this->_('Values')); + $model->set('gtf_field_type', 'label', $this->_('Type'), 'multiOptions', $types); + $model->set('gtf_required', 'label', $this->_('Required'), 'multiOptions', $this->util->getTranslated()->getYesNo()); + if ($detailed) { + $model->set('gtf_readonly', 'label', $this->_('Readonly'), 'multiOptions', $this->util->getTranslated()->getYesNo()); + } + + Gems_Model::setChangeFieldsByPrefix($model, 'gtf'); + + if ($trackId) { + $model->set('gtf_id_track', 'default', $trackId); + } + + return $model; + } + + /** * Creates a form to delete a record * * Uses $this->getModel() @@ -124,47 +165,6 @@ return $elements; } - /** - * Creates a model for getModel(). Called only for each new $action. - * - * The parameters allow you to easily adapt the model to the current action. The $detailed - * parameter was added, because the most common use of action is a split between detailed - * and summarized actions. - * - * @param boolean $detailed True when the current action is not in $summarizedActions. - * @param string $action The current action. - * @return Gems_Model_TrackModel - */ - public function createModel($detailed, $action) - { - $trackId = $this->_getIdParam(); - $types = array('select' => $this->_('Select one'), 'multiselect' => $this->_('Select multiple'), 'date' => $this->_('Date'), 'text' => $this->_('Free text')); - - $model = new MUtil_Model_TableModel('gems__track_fields'); - $model->setKeys(array('fid' => 'gtf_id_field', MUtil_Model::REQUEST_ID => 'gtf_id_track')); - $model->set('gtf_id_track', 'label', $this->_('Track'), 'multiOptions', $this->util->getTrackData()->getAllTracks()); - $model->set('gtf_id_order', 'label', $this->_('Order')); - $model->set('gtf_field_name', 'label', $this->_('Name')); - if ($detailed) { - $model->set('gtf_field_code', 'label', $this->_('Code Name')); - $model->set('gtf_field_description', 'label', $this->_('Description')); - } - $model->set('gtf_field_values', 'label', $this->_('Values')); - $model->set('gtf_field_type', 'label', $this->_('Type'), 'multiOptions', $types); - $model->set('gtf_required', 'label', $this->_('Required'), 'multiOptions', $this->util->getTranslated()->getYesNo()); - if ($detailed) { - $model->set('gtf_readonly', 'label', $this->_('Readonly'), 'multiOptions', $this->util->getTranslated()->getYesNo()); - } - - Gems_Model::setChangeFieldsByPrefix($model, 'gtf'); - - if ($trackId) { - $model->set('gtf_id_track', 'default', $trackId); - } - - return $model; - } - public function getTopic($count = 1) { return $this->plural('field', 'fields', $count); Modified: trunk/library/classes/Gems/Default/TrackMaintenanceAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackMaintenanceAction.php 2012-07-20 16:33:41 UTC (rev 863) +++ trunk/library/classes/Gems/Default/TrackMaintenanceAction.php 2012-07-20 16:57:56 UTC (rev 864) @@ -184,6 +184,7 @@ { $id = $this->_getIdParam(); $track = $this->loader->getTracker()->getTrackEngine($id); + $track->applyToMenuSource($this->menu->getParameterSource()); $where = $this->db->quoteInto('gr2t_id_track = ?', $id); $batch = $this->loader->getTracker()->checkTrackRounds('trackCheckRounds' . $id, $this->loader->getCurrentUser()->getUserId(), $where); @@ -339,7 +340,7 @@ * @param string $mode * @param array $keys */ - private function showList($mode, array $keys, $rowclassField) + private function showList($mode, array $keys, $rowclassField = null) { $action = $this->getRequest()->getActionName(); $this->getRequest()->setActionName($mode); Modified: trunk/library/classes/Gems/Default/TrackRoundsAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackRoundsAction.php 2012-07-20 16:33:41 UTC (rev 863) +++ trunk/library/classes/Gems/Default/TrackRoundsAction.php 2012-07-20 16:57:56 UTC (rev 864) @@ -180,7 +180,15 @@ $model = $this->getModel(); $deleted = $model->delete(); + // Always perform delete, tokens may not be in use + $tokens = $this->db->delete('gems__tokens', $this->db->quoteInto('gto_id_round = ?', $roundId)); + $this->addMessage(sprintf($this->_('%2$u %1$s deleted'), $this->getTopic($deleted), $deleted)); + + if ($tokens) { + $this->addMessage(sprintf($this->plural('Also deleted %s unanswered token.', 'Also deleted %s unanswered tokens.', $tokens), $tokens)); + } + $this->_reroute(array('action' => 'index', MUtil_Model::REQUEST_ID => $this->_getIdParam()), true); } } elseif ($used) { Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2012-07-20 16:33:41 UTC (rev 863) +++ trunk/library/languages/default-en.po 2012-07-20 16:57:56 UTC (rev 864) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: GemsTracker EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-07-20 18:30+0100\n" +"POT-Creation-Date: 2012-07-20 18:36+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -2633,50 +2633,50 @@ msgid "Check this box if this field is always set by code instead of the user." msgstr "Check this box if this field is always set by code instead of the user." -#: classes/Gems/Default/TrackFieldsAction.php:99 -#, php-format -msgid "Field also deleted from %s assigned track." -msgid_plural "Field also deleted from %s assigned tracks." -msgstr[0] "Field also deleted from %s assigned track." -msgstr[1] "Field also deleted from %s assigned tracks." - -#: classes/Gems/Default/TrackFieldsAction.php:105 -#, php-format -msgid "This field will be deleted from %s assigned track." -msgid_plural "This field will be deleted from %s assigned tracks." -msgstr[0] "This field will be deleted from %s assigned track." -msgstr[1] "This field will be deleted from %s assigned tracks." - -#: classes/Gems/Default/TrackFieldsAction.php:141 +#: classes/Gems/Default/TrackFieldsAction.php:92 msgid "Select one" msgstr "Select one" -#: classes/Gems/Default/TrackFieldsAction.php:141 +#: classes/Gems/Default/TrackFieldsAction.php:92 msgid "Select multiple" msgstr "Select multiple" -#: classes/Gems/Default/TrackFieldsAction.php:141 +#: classes/Gems/Default/TrackFieldsAction.php:92 msgid "Free text" msgstr "Free text" -#: classes/Gems/Default/TrackFieldsAction.php:149 +#: classes/Gems/Default/TrackFieldsAction.php:100 msgid "Code Name" msgstr "Code Name" -#: classes/Gems/Default/TrackFieldsAction.php:152 +#: classes/Gems/Default/TrackFieldsAction.php:103 #: classes/Gems/Default/TrackMaintenanceAction.php:227 msgid "Values" msgstr "Values" -#: classes/Gems/Default/TrackFieldsAction.php:154 +#: classes/Gems/Default/TrackFieldsAction.php:105 #: classes/Gems/Default/TrackMaintenanceAction.php:229 msgid "Required" msgstr "Required" -#: classes/Gems/Default/TrackFieldsAction.php:156 +#: classes/Gems/Default/TrackFieldsAction.php:107 msgid "Readonly" msgstr "Readonly" +#: classes/Gems/Default/TrackFieldsAction.php:140 +#, php-format +msgid "Field also deleted from %s assigned track." +msgid_plural "Field also deleted from %s assigned tracks." +msgstr[0] "Field also deleted from %s assigned track." +msgstr[1] "Field also deleted from %s assigned tracks." + +#: classes/Gems/Default/TrackFieldsAction.php:146 +#, php-format +msgid "This field will be deleted from %s assigned track." +msgid_plural "This field will be deleted from %s assigned tracks." +msgstr[0] "This field will be deleted from %s assigned track." +msgstr[1] "This field will be deleted from %s assigned tracks." + #: classes/Gems/Default/TrackFieldsAction.php:170 msgid "field" msgid_plural "fields" @@ -2752,9 +2752,9 @@ #: classes/Gems/Default/TrackRoundAction.php:89 #: classes/Gems/Default/TrackRoundsAction.php:103 #: classes/Gems/Default/TrackRoundsAction.php:130 -#: classes/Gems/Default/TrackRoundsAction.php:201 -#: classes/Gems/Default/TrackRoundsAction.php:228 -#: classes/Gems/Default/TrackRoundsAction.php:272 +#: classes/Gems/Default/TrackRoundsAction.php:209 +#: classes/Gems/Default/TrackRoundsAction.php:236 +#: classes/Gems/Default/TrackRoundsAction.php:280 msgid "Missing track identifier." msgstr "Missing track identifier." @@ -2768,24 +2768,31 @@ msgid "%2$u %1$s deactivated" msgstr "%2$u %1$s deactivated" -#: classes/Gems/Default/TrackRoundsAction.php:187 +#: classes/Gems/Default/TrackRoundsAction.php:189 #, php-format +msgid "Also deleted %s unanswered token." +msgid_plural "Also deleted %s unanswered tokens." +msgstr[0] "Also deleted %s unanswered token." +msgstr[1] "Also deleted %s unanswered tokens." + +#: classes/Gems/Default/TrackRoundsAction.php:195 +#, php-format msgid "This round has been completed %s time." msgid_plural "This round has been completed %s times." msgstr[0] "This round has been completed %s time." msgstr[1] "This round has been completed %s times." -#: classes/Gems/Default/TrackRoundsAction.php:188 +#: classes/Gems/Default/TrackRoundsAction.php:196 msgid "This round cannot be deleted, only deactivated." msgstr "This round cannot be deleted, only deactivated." -#: classes/Gems/Default/TrackRoundsAction.php:214 +#: classes/Gems/Default/TrackRoundsAction.php:222 msgid "round" msgid_plural "rounds" msgstr[0] "round" msgstr[1] "rounds" -#: classes/Gems/Default/TrackRoundsAction.php:219 +#: classes/Gems/Default/TrackRoundsAction.php:227 msgid "Rounds" msgstr "Rounds" Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2012-07-20 16:33:41 UTC (rev 863) +++ trunk/library/languages/default-nl.po 2012-07-20 16:57:56 UTC (rev 864) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: GemsTracker NL\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-07-20 18:24+0100\n" +"POT-Creation-Date: 2012-07-20 18:37+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -2633,50 +2633,50 @@ msgid "Check this box if this field is always set by code instead of the user." msgstr "Vink aan als dit veld altijd vanuit de code ingesteld wordt, in plaats van door gebruikers." -#: classes/Gems/Default/TrackFieldsAction.php:99 -#, php-format -msgid "Field also deleted from %s assigned track." -msgid_plural "Field also deleted from %s assigned tracks." -msgstr[0] "Veld ook verwijderd bij %s toegewezen traject." -msgstr[1] "Veld ook verwijderd bij %s toegewezen trajecten." - -#: classes/Gems/Default/TrackFieldsAction.php:105 -#, php-format -msgid "This field will be deleted from %s assigned track." -msgid_plural "This field will be deleted from %s assigned tracks." -msgstr[0] "Dit veld wordt bij %s toegewezen traject gebruikt en zal daar ook verwijderd worden." -msgstr[1] "Dit veld wordt bij %s toegewezen trajecten gebruikt en zal daar ook verwijderd worden." - -#: classes/Gems/Default/TrackFieldsAction.php:141 +#: classes/Gems/Default/TrackFieldsAction.php:92 msgid "Select one" msgstr "Kies één" -#: classes/Gems/Default/TrackFieldsAction.php:141 +#: classes/Gems/Default/TrackFieldsAction.php:92 msgid "Select multiple" msgstr "Meerkeuze vraag" -#: classes/Gems/Default/TrackFieldsAction.php:141 +#: classes/Gems/Default/TrackFieldsAction.php:92 msgid "Free text" msgstr "Vrije tekst" -#: classes/Gems/Default/TrackFieldsAction.php:149 +#: classes/Gems/Default/TrackFieldsAction.php:100 msgid "Code Name" msgstr "Code Naam" -#: classes/Gems/Default/TrackFieldsAction.php:152 +#: classes/Gems/Default/TrackFieldsAction.php:103 #: classes/Gems/Default/TrackMaintenanceAction.php:227 msgid "Values" msgstr "Waarden" -#: classes/Gems/Default/TrackFieldsAction.php:154 +#: classes/Gems/Default/TrackFieldsAction.php:105 #: classes/Gems/Default/TrackMaintenanceAction.php:229 msgid "Required" msgstr "Verplicht" -#: classes/Gems/Default/TrackFieldsAction.php:156 +#: classes/Gems/Default/TrackFieldsAction.php:107 msgid "Readonly" msgstr "Alleen lezen" +#: classes/Gems/Default/TrackFieldsAction.php:140 +#, php-format +msgid "Field also deleted from %s assigned track." +msgid_plural "Field also deleted from %s assigned tracks." +msgstr[0] "Veld ook verwijderd bij %s toegewezen traject." +msgstr[1] "Veld ook verwijderd bij %s toegewezen trajecten." + +#: classes/Gems/Default/TrackFieldsAction.php:146 +#, php-format +msgid "This field will be deleted from %s assigned track." +msgid_plural "This field will be deleted from %s assigned tracks." +msgstr[0] "Dit veld wordt bij %s toegewezen traject gebruikt en zal daar ook verwijderd worden." +msgstr[1] "Dit veld wordt bij %s toegewezen trajecten gebruikt en zal daar ook verwijderd worden." + #: classes/Gems/Default/TrackFieldsAction.php:170 msgid "field" msgid_plural "fields" @@ -2752,9 +2752,9 @@ #: classes/Gems/Default/TrackRoundAction.php:89 #: classes/Gems/Default/TrackRoundsAction.php:103 #: classes/Gems/Default/TrackRoundsAction.php:130 -#: classes/Gems/Default/TrackRoundsAction.php:201 -#: classes/Gems/Default/TrackRoundsAction.php:228 -#: classes/Gems/Default/TrackRoundsAction.php:267 +#: classes/Gems/Default/TrackRoundsAction.php:209 +#: classes/Gems/Default/TrackRoundsAction.php:236 +#: classes/Gems/Default/TrackRoundsAction.php:280 msgid "Missing track identifier." msgstr "Ontbrekende traject identificatie." @@ -2768,24 +2768,31 @@ msgid "%2$u %1$s deactivated" msgstr "%2$u %1$s gedeactiveerd" -#: classes/Gems/Default/TrackRoundsAction.php:187 +#: classes/Gems/Default/TrackRoundsAction.php:189 #, php-format +msgid "Also deleted %s unanswered token." +msgid_plural "Also deleted %s unanswered tokens." +msgstr[0] "Ook %s onbeantwoord kenmerk is verwijderd." +msgstr[1] "Ook %s onbeantwoorde kenmerken zijn verwijderd." + +#: classes/Gems/Default/TrackRoundsAction.php:195 +#, php-format msgid "This round has been completed %s time." msgid_plural "This round has been completed %s times." msgstr[0] "Deze ronde is al %s keer afgerond." msgstr[1] "Deze ronde is al %s keren afgerond." -#: classes/Gems/Default/TrackRoundsAction.php:188 +#: classes/Gems/Default/TrackRoundsAction.php:196 msgid "This round cannot be deleted, only deactivated." msgstr "Dit kenmerk kan niet (meer) verwijderd worden, alleen gedeactiveerd." -#: classes/Gems/Default/TrackRoundsAction.php:251 +#: classes/Gems/Default/TrackRoundsAction.php:222 msgid "round" msgid_plural "rounds" msgstr[0] "ronde" msgstr[1] "rondes" -#: classes/Gems/Default/TrackRoundsAction.php:256 +#: classes/Gems/Default/TrackRoundsAction.php:227 msgid "Rounds" msgstr "Rondes" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-20 16:33:51
|
Revision: 863 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=863&view=rev Author: matijsdejong Date: 2012-07-20 16:33:41 +0000 (Fri, 20 Jul 2012) Log Message: ----------- fixed #365 track fields can be deleted fixed #366 track rounds can be deleted or else deactivated Fix for organization switch that went wrong Deactived rounds are show as deleted Modified Paths: -------------- trunk/library/classes/Gems/Controller/BrowseEditAction.php trunk/library/classes/Gems/Default/TrackFieldsAction.php trunk/library/classes/Gems/Default/TrackMaintenanceAction.php trunk/library/classes/Gems/Default/TrackRoundAction.php trunk/library/classes/Gems/Default/TrackRoundsAction.php trunk/library/classes/Gems/Menu/MenuAbstract.php trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php trunk/library/classes/GemsEscort.php trunk/library/configs/db/patches.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/Controller/BrowseEditAction.php =================================================================== --- trunk/library/classes/Gems/Controller/BrowseEditAction.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Controller/BrowseEditAction.php 2012-07-20 16:33:41 UTC (rev 863) @@ -118,7 +118,9 @@ */ protected function _createSelectElement($name, $options, $empty = null) { - if (is_string($options)) { + if ($options instanceof MUtil_Model_ModelAbstract) { + $options = $options->get($name, 'multiOptions'); + } elseif (is_string($options)) { $options = $this->db->fetchPairs($options); natsort($options); } Modified: trunk/library/classes/Gems/Default/TrackFieldsAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackFieldsAction.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Default/TrackFieldsAction.php 2012-07-20 16:33:41 UTC (rev 863) @@ -76,6 +76,37 @@ } /** + * Creates a form to delete a record + * + * Uses $this->getModel() + * $this->addFormElements() + */ + public function deleteAction() + { + $field = $this->_getParam('fid'); + $used = $this->db->fetchOne("SELECT COUNT(*) FROM gems__respondent2track2field WHERE gr2t2f_id_field = ? AND gr2t2f_value IS NOT NULL", $field); + + if ($this->isConfirmedItem($this->_('Delete %s'))) { + $model = $this->getModel(); + $deleted = $model->delete(); + + // Always perform delete, fields may be empty + $this->db->delete('gems__respondent2track2field', $this->db->quoteInto('gr2t2f_id_field = ?', $field)); + + $this->addMessage(sprintf($this->_('%2$u %1$s deleted'), $this->getTopic($deleted), $deleted)); + + if ($used) { + $this->addMessage(sprintf($this->plural('Field also deleted from %s assigned track.', 'Field also deleted from %s assigned tracks.', $used), $used)); + } + + $this->_reroute(array('action' => 'index', MUtil_Model::REQUEST_ID => $this->_getParam(MUtil_Model::REQUEST_ID)), true); + + } elseif ($used) { + $this->addMessage(sprintf($this->plural('This field will be deleted from %s assigned track.', 'This field will be deleted from %s assigned tracks.', $used), $used)); + } + } + + /** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. @@ -143,4 +174,13 @@ { return $this->_('Fields'); } + + public function init() + { + // Make sure the menu knows the track type + $source = $this->menu->getParameterSource(); + $source->setTrackType($this->db->fetchOne('SELECT gtr_track_type FROM gems__tracks WHERE gtr_id_track = ?', $this->_getIdParam())); + + return parent::init(); + } } \ No newline at end of file Modified: trunk/library/classes/Gems/Default/TrackMaintenanceAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackMaintenanceAction.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Default/TrackMaintenanceAction.php 2012-07-20 16:33:41 UTC (rev 863) @@ -253,6 +253,56 @@ $this->addSnippets($tracker->getTrackEngineEditSnippets(), 'trackEngine', $trackEngine, 'trackId', $trackId); } + /** + * Returns a text element for autosearch. Can be overruled. + * + * The form / html elements to search on. Elements can be grouped by inserting null's between them. + * That creates a distinct group of elements + * + * @param MUtil_Model_ModelAbstract $model + * @param array $data The $form field values (can be usefull, but no need to set them) + * @return array Of Zend_Form_Element's or static tekst to add to the html or null for group breaks. + */ + protected function getAutoSearchElements(MUtil_Model_ModelAbstract $model, array $data) + { + $elements = parent::getAutoSearchElements($model, $data); + + if ($elements) { + $br = MUtil_Html::create('br'); + $elements[] = $this->_createSelectElement('gtr_track_class', $model, $this->_('(all track engines)')); + + $elements[] = $br; + + $element = $this->_createSelectElement('active', $this->util->getTranslated()->getYesNo(), $this->_('(both)')); + $element->setLabel($model->get('gtr_active', 'label')); + $elements[] = $element; + + } + + return $elements; + } + + /** + * Additional data filter statements for the user input. + * + * User input that has the same name as a model field is automatically + * used as a filter, but if the name is different processing is needed. + * That processing should happen here. + * + * @param array $data The current user input + * @return array New filter statements + */ + protected function getDataFilter(array $data) + { + $filter = parent::getDataFilter($data); + + if (isset($data['active']) && strlen($data['active'])) { + $filter['gtr_active'] = $data['active']; + } + + return $filter; + } + public function getTopic($count = 1) { return $this->plural('track', 'tracks', $count); @@ -276,7 +326,7 @@ parent::showAction(); $this->showList("fields", array(MUtil_Model::REQUEST_ID => 'gtf_id_track', 'fid' => 'gtf_id_field')); - $this->showList("rounds", array(MUtil_Model::REQUEST_ID => 'gro_id_track', 'rid' => 'gro_id_round')); + $this->showList("rounds", array(MUtil_Model::REQUEST_ID => 'gro_id_track', 'rid' => 'gro_id_round'), 'row_class'); // explicitly translate $this->_('fields'); @@ -289,7 +339,7 @@ * @param string $mode * @param array $keys */ - private function showList($mode, array $keys) + private function showList($mode, array $keys, $rowclassField) { $action = $this->getRequest()->getActionName(); $this->getRequest()->setActionName($mode); @@ -302,6 +352,11 @@ $this->browseMode = 'track-' . $mode; $table = $this->getBrowseTable($baseurl); + if ($rowclassField) { + foreach ($table->tbody() as $tr) { + $tr->appendAttrib('class', $repeatable->$rowclassField); + } + } $table->setOnEmpty(sprintf($this->_('No %s found'), $this->_($mode))); $table->getOnEmpty()->class = 'centerAlign'; $table->setRepeater($repeatable); Modified: trunk/library/classes/Gems/Default/TrackRoundAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackRoundAction.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Default/TrackRoundAction.php 2012-07-20 16:33:41 UTC (rev 863) @@ -96,4 +96,15 @@ $this->addSnippets($trackEngine->getRoundEditSnippetNames(), 'roundId', $trackEngine->getFirstRoundId(), 'trackEngine', $trackEngine, 'trackId', $trackId); } + + /** + * Show a single round + */ + public function showAction() + { + $trackId = $this->_getIdParam(); + $this->_setParam(Gems_Model::ROUND_ID, $this->db->fetchOne("SELECT gro_id_round FROM gems__rounds WHERE gro_id_track = ? ORDER BY gro_id_order", $trackId)); + + parent::showAction(); + } } Modified: trunk/library/classes/Gems/Default/TrackRoundsAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackRoundsAction.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Default/TrackRoundsAction.php 2012-07-20 16:33:41 UTC (rev 863) @@ -54,6 +54,27 @@ public $sortKey = array('gro_id_order' => SORT_ASC); /** + * Adds columns from the model to the bridge that creates the browse table. + * + * Adds a button column to the model, if such a button exists in the model. + * + * @param MUtil_Model_TableBridge $bridge + * @param MUtil_Model_ModelAbstract $model + * @return void + */ + protected function addBrowseTableColumns(MUtil_Model_TableBridge $bridge, MUtil_Model_ModelAbstract $model) + { + parent::addBrowseTableColumns($bridge, $model); + + $table = $bridge->getTable(); + $rep = $table->getRepeater(); + + foreach ($table->tbody() as $tr) { + $tr->appendAttrib('class', $bridge->row_class); + } + } + + /** * Returns a text element for autosearch. Can be overruled. * * The form / html elements to search on. Elements can be grouped by inserting null's between them. @@ -134,6 +155,42 @@ } /** + * Creates a form to delete a record + * + * Uses $this->getModel() + * $this->addFormElements() + */ + public function deleteAction() + { + $roundId = $this->_getParam(Gems_Model::ROUND_ID); + $used = $this->db->fetchOne("SELECT COUNT(*) FROM gems__tokens WHERE gto_id_round = ? AND gto_start_time IS NOT NULL", $roundId); + + if ($used) { + $title = $this->_('Deactivate %s'); + } else { + $title = $this->_('Delete %s'); + } + if ($this->isConfirmedItem($title)) { + if ($used) { + $deleted = $this->db->update('gems__rounds', array('gro_active' => 0), $this->db->quoteInto('gro_id_round = ?', $roundId)); + + $this->addMessage(sprintf($this->_('%2$u %1$s deactivated'), $this->getTopic($deleted), $deleted)); + $this->_reroute(array('action' => 'show', 'confirmed' => null), false); + } else { + $model = $this->getModel(); + $deleted = $model->delete(); + + $this->addMessage(sprintf($this->_('%2$u %1$s deleted'), $this->getTopic($deleted), $deleted)); + $this->_reroute(array('action' => 'index', MUtil_Model::REQUEST_ID => $this->_getIdParam()), true); + } + } elseif ($used) { + $this->addMessage(sprintf($this->plural('This round has been completed %s time.', 'This round has been completed %s times.', $used), $used)); + $this->addMessage($this->_('This round cannot be deleted, only deactivated.')); + + } + } + + /** * Edit a single round */ public function editAction() @@ -162,6 +219,48 @@ return $this->_('Rounds'); } + public function isConfirmedItem($title, $question = null, $info = null) + { + $trackId = $this->_getIdParam(); + $roundId = $this->_getParam(Gems_Model::ROUND_ID); + + if (! $trackId) { + throw new Gems_Exception($this->_('Missing track identifier.')); + } + + if ($this->_getParam('confirmed')) { + return true; + } + + if (null === $question) { + $question = $this->_('Are you sure?'); + } + + $this->html->h3(sprintf($title, $this->getTopic())); + + if ($info) { + $this->html->pInfo($info); + } + + $menuSource = $this->menu->getParameterSource(); + $trackEngine = $this->loader->getTracker()->getTrackEngine($trackId); + $trackEngine->applyToMenuSource($menuSource); + $menuSource->setRequestId($trackId); // Tell the menu we're using track id as request id + + $this->html->p($question); + foreach ($trackEngine->getRoundShowSnippetNames() as $snippet) { + $this->html->append($this->getSnippet($snippet, 'roundId', $roundId, 'trackEngine', $trackEngine, 'trackId', $trackId, 'showMenu', false, 'showTitle', false)); + } + + $footer = $this->html->p($question, ' ', array('class' => 'centerAlign')); + $footer->actionLink(array('confirmed' => 1), $this->_('Yes')); + $footer->actionLink(array('action' => 'show'), $this->_('No')); + + $this->html->buttonDiv($this->createMenuLinks()); + + return false; + } + /** * Show a single round */ Modified: trunk/library/classes/Gems/Menu/MenuAbstract.php =================================================================== --- trunk/library/classes/Gems/Menu/MenuAbstract.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Menu/MenuAbstract.php 2012-07-20 16:33:41 UTC (rev 863) @@ -462,6 +462,7 @@ $fpage->addCreateAction('pr.track-maintenance.create')->addNamedParameters(MUtil_Model::REQUEST_ID, 'gtf_id_track'); $fpage->addShowAction()->addNamedParameters(MUtil_Model::REQUEST_ID, 'gtf_id_track', 'fid', 'gtf_id_field'); $fpage->addEditAction('pr.track-maintenance.edit')->addNamedParameters('fid', 'gtf_id_field', MUtil_Model::REQUEST_ID, 'gtf_id_track'); + $fpage->addDeleteAction('pr.track-maintenance.delete')->addNamedParameters('fid', 'gtf_id_field', MUtil_Model::REQUEST_ID, 'gtf_id_track'); // Standard tracks $fpage = $page->addPage($this->_('Rounds'), 'pr.track-maintenance', 'track-rounds') @@ -471,6 +472,9 @@ $fpage->addCreateAction('pr.track-maintenance.create')->addNamedParameters(MUtil_Model::REQUEST_ID, 'gro_id_track'); $fpage->addShowAction()->addNamedParameters(MUtil_Model::REQUEST_ID, 'gro_id_track', Gems_Model::ROUND_ID, 'gro_id_round'); $fpage->addEditAction('pr.track-maintenance.edit')->addNamedParameters(Gems_Model::ROUND_ID, 'gro_id_round', MUtil_Model::REQUEST_ID, 'gro_id_track'); + $fpage->addDeleteAction('pr.track-maintenance.delete') + ->addNamedParameters(Gems_Model::ROUND_ID, 'gro_id_round', MUtil_Model::REQUEST_ID, 'gro_id_track') + ->setParameterFilter('gtr_track_type', 'T'); // Single survey tracks $fpage = $page->addPage($this->_('Round'), 'pr.track-maintenance', 'track-round', 'show') Modified: trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php =================================================================== --- trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php 2012-07-20 16:33:41 UTC (rev 863) @@ -741,6 +741,10 @@ $model->set('gro_changed_event', 'label', $this->_('After change'), 'multiOptions', $this->events->listRoundChangedEvents()); $model->set('gro_active', 'label', $this->_('Active'), 'multiOptions', $this->util->getTranslated()->getYesNo(), 'elementClass', 'checkbox'); + $model->addColumn( + "CASE WHEN gro_active = 1 THEN '' ELSE 'deleted' END", + 'row_class'); + switch ($action) { case 'create': $this->_ensureRounds(); Modified: trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php =================================================================== --- trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php 2012-07-20 16:33:41 UTC (rev 863) @@ -76,6 +76,20 @@ protected $roundId; /** + * Show menu buttons below data + * + * @var boolean + */ + protected $showMenu = true; + + /** + * Show title above data + * + * @var boolean + */ + protected $showTitle = true; + + /** * Optional, required when creating or $trackId should be set * * @var Gems_Tracker_Engine_TrackEngineInterface @@ -128,14 +142,29 @@ if ($this->roundId) { $htmlDiv = MUtil_Html::div(); + if ($this->showTitle) { + $htmlDiv->h3(sprintf($this->_('%s round'), $this->trackEngine->getName())); + } - $htmlDiv->h3(sprintf($this->_('%s round'), $this->trackEngine->getName())); - $table = parent::getHtmlOutput($view); $this->applyHtmlAttributes($table); - $table->tfrow($this->getMenuList(), array('class' => 'centerAlign')); + // Make sure deactivated rounds are show as deleted + foreach ($table->tbody() as $tr) { + $skip = true; + foreach ($tr as $td) { + if ($skip) { + $skip = false; + } else { + $td->appendAttrib('class', $table->getRepeater()->row_class); + } + } + } + if ($this->showMenu) { + $table->tfrow($this->getMenuList(), array('class' => 'centerAlign')); + } + $htmlDiv[] = $table; return $htmlDiv; Modified: trunk/library/classes/GemsEscort.php =================================================================== --- trunk/library/classes/GemsEscort.php 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/classes/GemsEscort.php 2012-07-20 16:33:41 UTC (rev 863) @@ -430,7 +430,7 @@ */ protected function _initTranslate() { - $this->bootstrap('locale'); + $this->bootstrap('locale'); $language = $this->locale->getLanguage(); @@ -517,7 +517,7 @@ } /*protected function _initZFDebug() - { + { // if ((APPLICATION_ENV === 'development') && if ((APPLICATION_ENV !== 'production') && (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.') === FALSE)) { @@ -545,7 +545,7 @@ $this->bootstrap('frontController'); $frontController = $this->getResource('frontController'); $frontController->registerPlugin($debug); - } + } }// */ /** @@ -887,10 +887,11 @@ // Organization switcher $orgSwitch = MUtil_Html::create('div', array('id' => 'organizations')); $currentId = $user->getCurrentOrganizationId(); - $params = $this->request->getQuery(); //Use only get params, not post + $params = $this->request->getParams(); //Use only get params, not post unset($params['error_handler']); // If present, this is an object and causes a warning unset($params[Gems_Util_RequestCache::RESET_PARAM]); $currentUri = $this->view->url($params, null, true); + // MUtil_Echo::track($currentUri, $this->request->getParams()); $url = $this->view->url(array('controller' => 'organization', 'action' => 'change-ui'), null, true); Modified: trunk/library/configs/db/patches.sql =================================================================== --- trunk/library/configs/db/patches.sql 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/configs/db/patches.sql 2012-07-20 16:33:41 UTC (rev 863) @@ -417,3 +417,6 @@ -- PATCH: Add code field to surveys ALTER TABLE `gems__surveys` ADD gsu_code varchar(64) CHARACTER SET 'utf8' COLLATE 'utf8_general_ci' NULL AFTER gsu_duration; + +-- PATCH: Assign deletion of track parts to super role +UPDATE gems__roles SET grl_privileges = CONCAT(grl_privileges,',pr.track-maintenance.delete') WHERE grl_privileges NOT LIKE '%pr.track-maintenance.edit%' AND grl_privileges NOT LIKE '%pr.track-maintenance.delete%'; Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/languages/default-en.po 2012-07-20 16:33:41 UTC (rev 863) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: GemsTracker EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-07-20 13:42+0100\n" +"POT-Creation-Date: 2012-07-20 18:30+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -41,58 +41,58 @@ msgid "You are not logged in" msgstr "You are not logged in" -#: classes/GemsEscort.php:980 +#: classes/GemsEscort.php:981 #, php-format msgid "User: %s" msgstr "User: %s" -#: classes/GemsEscort.php:1005 +#: classes/GemsEscort.php:1006 msgid "version" msgstr "version" -#: classes/GemsEscort.php:1451 +#: classes/GemsEscort.php:1452 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:1580 +#: classes/GemsEscort.php:1581 msgid "Please check back later." msgstr "Please check back later." -#: classes/GemsEscort.php:1582 -#: classes/GemsEscort.php:1586 +#: classes/GemsEscort.php:1583 #: classes/GemsEscort.php:1587 +#: classes/GemsEscort.php:1588 msgid "System is in maintenance mode" msgstr "System is in maintenance mode" -#: classes/GemsEscort.php:1597 +#: classes/GemsEscort.php:1598 msgid "No access to site." msgstr "No access to site." -#: classes/GemsEscort.php:1599 -#: classes/GemsEscort.php:1642 +#: classes/GemsEscort.php:1600 +#: classes/GemsEscort.php:1643 msgid "You have no access to this site." msgstr "You have no access to this site." -#: classes/GemsEscort.php:1615 +#: classes/GemsEscort.php:1616 msgid "No access to page" msgstr "No access to page" -#: classes/GemsEscort.php:1617 +#: classes/GemsEscort.php:1618 #, 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:1627 -#: classes/GemsEscort.php:1640 +#: classes/GemsEscort.php:1628 +#: classes/GemsEscort.php:1641 msgid "You are no longer logged in." msgstr "You are no longer logged in." -#: classes/GemsEscort.php:1628 +#: classes/GemsEscort.php:1629 msgid "You must login to access this page." msgstr "You must login to access this page." -#: classes/GemsEscort.php:1769 -#: classes/GemsEscort.php:1771 +#: classes/GemsEscort.php:1770 +#: classes/GemsEscort.php:1772 #, php-format msgid "%d survey" msgid_plural "%d surveys" @@ -462,94 +462,94 @@ msgid "Trying upgrade for %s to level %s: %s" msgstr "Trying upgrade for %s to level %s: %s" -#: classes/Gems/Controller/BrowseEditAction.php:356 +#: classes/Gems/Controller/BrowseEditAction.php:358 #, php-format msgid "New %s..." msgstr "New %s..." -#: classes/Gems/Controller/BrowseEditAction.php:389 +#: classes/Gems/Controller/BrowseEditAction.php:391 #, php-format msgid "Delete %s" msgstr "Delete %s" -#: classes/Gems/Controller/BrowseEditAction.php:393 +#: classes/Gems/Controller/BrowseEditAction.php:395 #, php-format msgid "%2$u %1$s deleted" msgstr "%2$u %1$s deleted" -#: classes/Gems/Controller/BrowseEditAction.php:410 +#: classes/Gems/Controller/BrowseEditAction.php:412 #, php-format msgid "Edit %s %s" msgstr "Edit %s %s" -#: classes/Gems/Controller/BrowseEditAction.php:412 +#: classes/Gems/Controller/BrowseEditAction.php:414 #, php-format msgid "Edit %s" msgstr "Edit %s" -#: classes/Gems/Controller/BrowseEditAction.php:513 +#: classes/Gems/Controller/BrowseEditAction.php:515 msgid "Free search text" msgstr "Free search text" -#: classes/Gems/Controller/BrowseEditAction.php:584 +#: classes/Gems/Controller/BrowseEditAction.php:586 msgid "Search" msgstr "Search" -#: classes/Gems/Controller/BrowseEditAction.php:600 +#: classes/Gems/Controller/BrowseEditAction.php:602 #, php-format msgid "No %s found" msgstr "No %s found" -#: classes/Gems/Controller/BrowseEditAction.php:684 +#: classes/Gems/Controller/BrowseEditAction.php:686 #, php-format msgid "No %s found." msgstr "No %s found." -#: classes/Gems/Controller/BrowseEditAction.php:802 +#: classes/Gems/Controller/BrowseEditAction.php:804 msgid "Are you sure?" msgstr "Are you sure?" -#: classes/Gems/Controller/BrowseEditAction.php:818 +#: classes/Gems/Controller/BrowseEditAction.php:820 msgid "Yes" msgstr "Yes" -#: classes/Gems/Controller/BrowseEditAction.php:819 +#: classes/Gems/Controller/BrowseEditAction.php:821 msgid "No" msgstr "No" -#: classes/Gems/Controller/BrowseEditAction.php:872 +#: classes/Gems/Controller/BrowseEditAction.php:874 #, php-format msgid "Unknown %s requested" msgstr "Unknown %s requested" -#: classes/Gems/Controller/BrowseEditAction.php:895 +#: classes/Gems/Controller/BrowseEditAction.php:897 #, php-format msgid "New %1$s..." msgstr "New %1$s..." -#: classes/Gems/Controller/BrowseEditAction.php:903 +#: classes/Gems/Controller/BrowseEditAction.php:905 msgid "Save" msgstr "Save" -#: classes/Gems/Controller/BrowseEditAction.php:939 +#: classes/Gems/Controller/BrowseEditAction.php:941 #, php-format msgid "%2$u %1$s saved" msgstr "%2$u %1$s saved" -#: classes/Gems/Controller/BrowseEditAction.php:942 +#: classes/Gems/Controller/BrowseEditAction.php:944 msgid "No changes to save." msgstr "No changes to save." -#: classes/Gems/Controller/BrowseEditAction.php:951 +#: classes/Gems/Controller/BrowseEditAction.php:953 msgid "Input error! No changes saved!" msgstr "Input error! No changes saved!" -#: classes/Gems/Controller/BrowseEditAction.php:979 +#: classes/Gems/Controller/BrowseEditAction.php:981 #, php-format msgid "Show %s" msgstr "Show %s" -#: classes/Gems/Controller/BrowseEditAction.php:986 +#: classes/Gems/Controller/BrowseEditAction.php:988 #, php-format msgid "Unknown %s." msgstr "Unknown %s." @@ -2633,43 +2633,57 @@ msgid "Check this box if this field is always set by code instead of the user." msgstr "Check this box if this field is always set by code instead of the user." -#: classes/Gems/Default/TrackFieldsAction.php:110 +#: classes/Gems/Default/TrackFieldsAction.php:99 +#, php-format +msgid "Field also deleted from %s assigned track." +msgid_plural "Field also deleted from %s assigned tracks." +msgstr[0] "Field also deleted from %s assigned track." +msgstr[1] "Field also deleted from %s assigned tracks." + +#: classes/Gems/Default/TrackFieldsAction.php:105 +#, php-format +msgid "This field will be deleted from %s assigned track." +msgid_plural "This field will be deleted from %s assigned tracks." +msgstr[0] "This field will be deleted from %s assigned track." +msgstr[1] "This field will be deleted from %s assigned tracks." + +#: classes/Gems/Default/TrackFieldsAction.php:141 msgid "Select one" msgstr "Select one" -#: classes/Gems/Default/TrackFieldsAction.php:110 +#: classes/Gems/Default/TrackFieldsAction.php:141 msgid "Select multiple" msgstr "Select multiple" -#: classes/Gems/Default/TrackFieldsAction.php:110 +#: classes/Gems/Default/TrackFieldsAction.php:141 msgid "Free text" msgstr "Free text" -#: classes/Gems/Default/TrackFieldsAction.php:118 +#: classes/Gems/Default/TrackFieldsAction.php:149 msgid "Code Name" msgstr "Code Name" -#: classes/Gems/Default/TrackFieldsAction.php:121 +#: classes/Gems/Default/TrackFieldsAction.php:152 #: classes/Gems/Default/TrackMaintenanceAction.php:227 msgid "Values" msgstr "Values" -#: classes/Gems/Default/TrackFieldsAction.php:123 +#: classes/Gems/Default/TrackFieldsAction.php:154 #: classes/Gems/Default/TrackMaintenanceAction.php:229 msgid "Required" msgstr "Required" -#: classes/Gems/Default/TrackFieldsAction.php:125 +#: classes/Gems/Default/TrackFieldsAction.php:156 msgid "Readonly" msgstr "Readonly" -#: classes/Gems/Default/TrackFieldsAction.php:139 +#: classes/Gems/Default/TrackFieldsAction.php:170 msgid "field" msgid_plural "fields" msgstr[0] "field" msgstr[1] "fields" -#: classes/Gems/Default/TrackFieldsAction.php:144 +#: classes/Gems/Default/TrackFieldsAction.php:175 msgid "Fields" msgstr "Fields" @@ -2714,34 +2728,64 @@ msgid "Checking round assignments for track '%s'." msgstr "Checking round assignments for track '%s'." -#: classes/Gems/Default/TrackMaintenanceAction.php:282 +#: classes/Gems/Default/TrackMaintenanceAction.php:272 +msgid "(all track engines)" +msgstr "(all track engines)" + +#: classes/Gems/Default/TrackMaintenanceAction.php:276 +msgid "(both)" +msgstr "(both)" + +#: classes/Gems/Default/TrackMaintenanceAction.php:332 msgid "fields" msgstr "fields" -#: classes/Gems/Default/TrackMaintenanceAction.php:283 +#: classes/Gems/Default/TrackMaintenanceAction.php:333 msgid "rounds" msgstr "rounds" -#: classes/Gems/Default/TrackMaintenanceAction.php:309 +#: classes/Gems/Default/TrackMaintenanceAction.php:364 #, php-format msgid "%s in track" msgstr "%s in track" #: classes/Gems/Default/TrackRoundAction.php:89 -#: classes/Gems/Default/TrackRoundsAction.php:82 -#: classes/Gems/Default/TrackRoundsAction.php:109 -#: classes/Gems/Default/TrackRoundsAction.php:144 -#: classes/Gems/Default/TrackRoundsAction.php:173 +#: classes/Gems/Default/TrackRoundsAction.php:103 +#: classes/Gems/Default/TrackRoundsAction.php:130 +#: classes/Gems/Default/TrackRoundsAction.php:201 +#: classes/Gems/Default/TrackRoundsAction.php:228 +#: classes/Gems/Default/TrackRoundsAction.php:272 msgid "Missing track identifier." msgstr "Missing track identifier." -#: classes/Gems/Default/TrackRoundsAction.php:157 +#: classes/Gems/Default/TrackRoundsAction.php:169 +#, php-format +msgid "Deactivate %s" +msgstr "Deactivate %s" + +#: classes/Gems/Default/TrackRoundsAction.php:177 +#, php-format +msgid "%2$u %1$s deactivated" +msgstr "%2$u %1$s deactivated" + +#: classes/Gems/Default/TrackRoundsAction.php:187 +#, php-format +msgid "This round has been completed %s time." +msgid_plural "This round has been completed %s times." +msgstr[0] "This round has been completed %s time." +msgstr[1] "This round has been completed %s times." + +#: classes/Gems/Default/TrackRoundsAction.php:188 +msgid "This round cannot be deleted, only deactivated." +msgstr "This round cannot be deleted, only deactivated." + +#: classes/Gems/Default/TrackRoundsAction.php:214 msgid "round" msgid_plural "rounds" msgstr[0] "round" msgstr[1] "rounds" -#: classes/Gems/Default/TrackRoundsAction.php:162 +#: classes/Gems/Default/TrackRoundsAction.php:219 msgid "Rounds" msgstr "Rounds" @@ -3025,11 +3069,11 @@ msgid "PDF" msgstr "PDF" -#: classes/Gems/Menu/MenuAbstract.php:482 +#: classes/Gems/Menu/MenuAbstract.php:486 msgid "Check assignments" msgstr "Check assignments" -#: classes/Gems/Menu/MenuAbstract.php:485 +#: classes/Gems/Menu/MenuAbstract.php:489 msgid "Check all assignments" msgstr "Check all assignments" @@ -3576,20 +3620,20 @@ msgid "Add new track" msgstr "Add new track" -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:132 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:146 #, php-format msgid "%s round" msgstr "%s round" -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:144 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:173 msgid "No round specified." msgstr "No round specified." -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:163 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:192 msgid "< Previous" msgstr "< Previous" -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:168 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:197 msgid "Next >" msgstr "Next >" @@ -4617,9 +4661,6 @@ #~ "b], please click on this link:\n" #~ "{reset_url}" -#~ msgid "This token cannot be used (any more)." -#~ msgstr "This token cannot be used (any more)." - #~ msgid "%s not correct." #~ msgstr "%s not correct." Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2012-07-20 12:07:25 UTC (rev 862) +++ trunk/library/languages/default-nl.po 2012-07-20 16:33:41 UTC (rev 863) @@ -2,7 +2,7 @@ msgstr "" "Project-Id-Version: GemsTracker NL\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-07-20 13:43+0100\n" +"POT-Creation-Date: 2012-07-20 18:24+0100\n" "PO-Revision-Date: \n" "Last-Translator: Matijs de Jong <mj...@ma...>\n" "Language-Team: Erasmus MGZ <mat...@ma...>\n" @@ -41,58 +41,58 @@ msgid "You are not logged in" msgstr "U bent niet ingelogd" -#: classes/GemsEscort.php:980 +#: classes/GemsEscort.php:981 #, php-format msgid "User: %s" msgstr "Login: %s" -#: classes/GemsEscort.php:1005 +#: classes/GemsEscort.php:1006 msgid "version" msgstr "versie" -#: classes/GemsEscort.php:1451 +#: classes/GemsEscort.php:1452 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:1580 +#: classes/GemsEscort.php:1581 msgid "Please check back later." msgstr "Probeer het later opnieuw." -#: classes/GemsEscort.php:1582 -#: classes/GemsEscort.php:1586 +#: classes/GemsEscort.php:1583 #: classes/GemsEscort.php:1587 +#: classes/GemsEscort.php:1588 msgid "System is in maintenance mode" msgstr "Systeem is in onderhoudsmodus" -#: classes/GemsEscort.php:1597 +#: classes/GemsEscort.php:1598 msgid "No access to site." msgstr "Geen toegang tot website." -#: classes/GemsEscort.php:1599 -#: classes/GemsEscort.php:1642 +#: classes/GemsEscort.php:1600 +#: classes/GemsEscort.php:1643 msgid "You have no access to this site." msgstr "U heeft geen toegang tot deze website." -#: classes/GemsEscort.php:1615 +#: classes/GemsEscort.php:1616 msgid "No access to page" msgstr "Geen toegang tot pagina" -#: classes/GemsEscort.php:1617 +#: classes/GemsEscort.php:1618 #, 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:1627 -#: classes/GemsEscort.php:1640 +#: classes/GemsEscort.php:1628 +#: classes/GemsEscort.php:1641 msgid "You are no longer logged in." msgstr "U bent niet meer ingelogd." -#: classes/GemsEscort.php:1628 +#: classes/GemsEscort.php:1629 msgid "You must login to access this page." msgstr "U moet ingelogd zijn voor toegang tot deze pagina." -#: classes/GemsEscort.php:1769 -#: classes/GemsEscort.php:1771 +#: classes/GemsEscort.php:1770 +#: classes/GemsEscort.php:1772 #, php-format msgid "%d survey" msgid_plural "%d surveys" @@ -462,94 +462,94 @@ msgid "Trying upgrade for %s to level %s: %s" msgstr "Probeert upgrade voor %s naar niveau %s: %s" -#: classes/Gems/Controller/BrowseEditAction.php:356 +#: classes/Gems/Controller/BrowseEditAction.php:358 #, php-format msgid "New %s..." msgstr "Nieuwe %s..." -#: classes/Gems/Controller/BrowseEditAction.php:389 +#: classes/Gems/Controller/BrowseEditAction.php:391 #, php-format msgid "Delete %s" msgstr "Verwijder %s" -#: classes/Gems/Controller/BrowseEditAction.php:393 +#: classes/Gems/Controller/BrowseEditAction.php:395 #, php-format msgid "%2$u %1$s deleted" msgstr "%2$u %1$s verwijderd" -#: classes/Gems/Controller/BrowseEditAction.php:410 +#: classes/Gems/Controller/BrowseEditAction.php:412 #, php-format msgid "Edit %s %s" msgstr "Bewerk %s %s" -#: classes/Gems/Controller/BrowseEditAction.php:412 +#: classes/Gems/Controller/BrowseEditAction.php:414 #, php-format msgid "Edit %s" msgstr "Bewerk %s" -#: classes/Gems/Controller/BrowseEditAction.php:513 +#: classes/Gems/Controller/BrowseEditAction.php:515 msgid "Free search text" msgstr "Vrije zoek tekst" -#: classes/Gems/Controller/BrowseEditAction.php:584 +#: classes/Gems/Controller/BrowseEditAction.php:586 msgid "Search" msgstr "Zoeken" -#: classes/Gems/Controller/BrowseEditAction.php:600 +#: classes/Gems/Controller/BrowseEditAction.php:602 #, php-format msgid "No %s found" msgstr "Geen %s gevonden" -#: classes/Gems/Controller/BrowseEditAction.php:684 +#: classes/Gems/Controller/BrowseEditAction.php:686 #, php-format msgid "No %s found." msgstr "Geen %s gevonden." -#: classes/Gems/Controller/BrowseEditAction.php:802 +#: classes/Gems/Controller/BrowseEditAction.php:804 msgid "Are you sure?" msgstr "Weet u het zeker?" -#: classes/Gems/Controller/BrowseEditAction.php:818 +#: classes/Gems/Controller/BrowseEditAction.php:820 msgid "Yes" msgstr "Ja" -#: classes/Gems/Controller/BrowseEditAction.php:819 +#: classes/Gems/Controller/BrowseEditAction.php:821 msgid "No" msgstr "Nee" -#: classes/Gems/Controller/BrowseEditAction.php:872 +#: classes/Gems/Controller/BrowseEditAction.php:874 #, php-format msgid "Unknown %s requested" msgstr "Onjuist %s verzoek" -#: classes/Gems/Controller/BrowseEditAction.php:895 +#: classes/Gems/Controller/BrowseEditAction.php:897 #, php-format msgid "New %1$s..." msgstr "Nieuwe %1$s..." -#: classes/Gems/Controller/BrowseEditAction.php:903 +#: classes/Gems/Controller/BrowseEditAction.php:905 msgid "Save" msgstr "Opslaan" -#: classes/Gems/Controller/BrowseEditAction.php:939 +#: classes/Gems/Controller/BrowseEditAction.php:941 #, php-format msgid "%2$u %1$s saved" msgstr "%2$u %1$s opgeslagen" -#: classes/Gems/Controller/BrowseEditAction.php:942 +#: classes/Gems/Controller/BrowseEditAction.php:944 msgid "No changes to save." msgstr "Geen verandering om op te slaan." -#: classes/Gems/Controller/BrowseEditAction.php:951 +#: classes/Gems/Controller/BrowseEditAction.php:953 msgid "Input error! No changes saved!" msgstr "Invoer fout! Veranderingen niet opgeslagen!" -#: classes/Gems/Controller/BrowseEditAction.php:979 +#: classes/Gems/Controller/BrowseEditAction.php:981 #, php-format msgid "Show %s" msgstr "Toon %s" -#: classes/Gems/Controller/BrowseEditAction.php:986 +#: classes/Gems/Controller/BrowseEditAction.php:988 #, php-format msgid "Unknown %s." msgstr "%s is onbekend." @@ -1585,7 +1585,7 @@ #: classes/Gems/Default/OrganizationAction.php:180 msgid "User Definition" -msgstr "User Definition" +msgstr "Gebruikers definitie" #: classes/Gems/Default/OrganizationAction.php:210 msgid "Participating organizations" @@ -2633,43 +2633,57 @@ msgid "Check this box if this field is always set by code instead of the user." msgstr "Vink aan als dit veld altijd vanuit de code ingesteld wordt, in plaats van door gebruikers." -#: classes/Gems/Default/TrackFieldsAction.php:110 +#: classes/Gems/Default/TrackFieldsAction.php:99 +#, php-format +msgid "Field also deleted from %s assigned track." +msgid_plural "Field also deleted from %s assigned tracks." +msgstr[0] "Veld ook verwijderd bij %s toegewezen traject." +msgstr[1] "Veld ook verwijderd bij %s toegewezen trajecten." + +#: classes/Gems/Default/TrackFieldsAction.php:105 +#, php-format +msgid "This field will be deleted from %s assigned track." +msgid_plural "This field will be deleted from %s assigned tracks." +msgstr[0] "Dit veld wordt bij %s toegewezen traject gebruikt en zal daar ook verwijderd worden." +msgstr[1] "Dit veld wordt bij %s toegewezen trajecten gebruikt en zal daar ook verwijderd worden." + +#: classes/Gems/Default/TrackFieldsAction.php:141 msgid "Select one" msgstr "Kies één" -#: classes/Gems/Default/TrackFieldsAction.php:110 +#: classes/Gems/Default/TrackFieldsAction.php:141 msgid "Select multiple" msgstr "Meerkeuze vraag" -#: classes/Gems/Default/TrackFieldsAction.php:110 +#: classes/Gems/Default/TrackFieldsAction.php:141 msgid "Free text" msgstr "Vrije tekst" -#: classes/Gems/Default/TrackFieldsAction.php:118 +#: classes/Gems/Default/TrackFieldsAction.php:149 msgid "Code Name" msgstr "Code Naam" -#: classes/Gems/Default/TrackFieldsAction.php:121 +#: classes/Gems/Default/TrackFieldsAction.php:152 #: classes/Gems/Default/TrackMaintenanceAction.php:227 msgid "Values" msgstr "Waarden" -#: classes/Gems/Default/TrackFieldsAction.php:123 +#: classes/Gems/Default/TrackFieldsAction.php:154 #: classes/Gems/Default/TrackMaintenanceAction.php:229 msgid "Required" msgstr "Verplicht" -#: classes/Gems/Default/TrackFieldsAction.php:125 +#: classes/Gems/Default/TrackFieldsAction.php:156 msgid "Readonly" msgstr "Alleen lezen" -#: classes/Gems/Default/TrackFieldsAction.php:139 +#: classes/Gems/Default/TrackFieldsAction.php:170 msgid "field" msgid_plural "fields" msgstr[0] "veld" msgstr[1] "velden" -#: classes/Gems/Default/TrackFieldsAction.php:144 +#: classes/Gems/Default/TrackFieldsAction.php:175 msgid "Fields" msgstr "Velden" @@ -2714,34 +2728,64 @@ msgid "Checking round assignments for track '%s'." msgstr "Controleren ronde toewijzing voor traject '%s'." -#: classes/Gems/Default/TrackMaintenanceAction.php:282 +#: classes/Gems/Default/TrackMaintenanceAction.php:272 +msgid "(all track engines)" +msgstr "(alle traject types)" + +#: classes/Gems/Default/TrackMaintenanceAction.php:276 +msgid "(both)" +msgstr "(beide)" + +#: classes/Gems/Default/TrackMaintenanceAction.php:332 msgid "fields" msgstr "velden" -#: classes/Gems/Default/TrackMaintenanceAction.php:283 +#: classes/Gems/Default/TrackMaintenanceAction.php:333 msgid "rounds" msgstr "rondes" -#: classes/Gems/Default/TrackMaintenanceAction.php:309 +#: classes/Gems/Default/TrackMaintenanceAction.php:364 #, php-format msgid "%s in track" msgstr "%s in traject" #: classes/Gems/Default/TrackRoundAction.php:89 -#: classes/Gems/Default/TrackRoundsAction.php:82 -#: classes/Gems/Default/TrackRoundsAction.php:109 -#: classes/Gems/Default/TrackRoundsAction.php:144 -#: classes/Gems/Default/TrackRoundsAction.php:173 +#: classes/Gems/Default/TrackRoundsAction.php:103 +#: classes/Gems/Default/TrackRoundsAction.php:130 +#: classes/Gems/Default/TrackRoundsAction.php:201 +#: classes/Gems/Default/TrackRoundsAction.php:228 +#: classes/Gems/Default/TrackRoundsAction.php:267 msgid "Missing track identifier." msgstr "Ontbrekende traject identificatie." -#: classes/Gems/Default/TrackRoundsAction.php:157 +#: classes/Gems/Default/TrackRoundsAction.php:169 +#, php-format +msgid "Deactivate %s" +msgstr "Deactiveer %s" + +#: classes/Gems/Default/TrackRoundsAction.php:177 +#, php-format +msgid "%2$u %1$s deactivated" +msgstr "%2$u %1$s gedeactiveerd" + +#: classes/Gems/Default/TrackRoundsAction.php:187 +#, php-format +msgid "This round has been completed %s time." +msgid_plural "This round has been completed %s times." +msgstr[0] "Deze ronde is al %s keer afgerond." +msgstr[1] "Deze ronde is al %s keren afgerond." + +#: classes/Gems/Default/TrackRoundsAction.php:188 +msgid "This round cannot be deleted, only deactivated." +msgstr "Dit kenmerk kan niet (meer) verwijderd worden, alleen gedeactiveerd." + +#: classes/Gems/Default/TrackRoundsAction.php:251 msgid "round" msgid_plural "rounds" msgstr[0] "ronde" msgstr[1] "rondes" -#: classes/Gems/Default/TrackRoundsAction.php:162 +#: classes/Gems/Default/TrackRoundsAction.php:256 msgid "Rounds" msgstr "Rondes" @@ -3025,11 +3069,11 @@ msgid "PDF" msgstr "PDF" -#: classes/Gems/Menu/MenuAbstract.php:482 +#: classes/Gems/Menu/MenuAbstract.php:486 msgid "Check assignments" msgstr "Controleer toewijzingen" -#: classes/Gems/Menu/MenuAbstract.php:485 +#: classes/Gems/Menu/MenuAbstract.php:489 msgid "Check all assignments" msgstr "Controleer alle toewijzingen" @@ -3576,20 +3620,20 @@ msgid "Add new track" msgstr "Voeg traject toe" -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:132 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:146 #, php-format msgid "%s round" msgstr "%s ronde" -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:144 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:173 msgid "No round specified." msgstr "Geen ronde opgegeven." -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:163 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:192 msgid "< Previous" msgstr "< Terug" -#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:168 +#: classes/Gems/Tracker/Snippets/ShowRoundSnippetAbstract.php:197 msgid "Next >" msgstr "Verder >" @@ -4622,9 +4666,6 @@ #~ "[b]{project}[/b], klik op deze link:\n" #~ "{reset_url}" -#~ msgid "This token cannot be used (any more)." -#~ msgstr "Dit kenmerk kan niet (meer) gebruikt worden." - #~ msgid "" #~ "Please enter the organization and username/e-mail address belonging to " #~ "this request." This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-20 12:07:39
|
Revision: 862 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=862&view=rev Author: matijsdejong Date: 2012-07-20 12:07:25 +0000 (Fri, 20 Jul 2012) Log Message: ----------- Fixed #548: patches run out of order Fixed #550: expand export selection Added information to tasks about to start concerning their effects and usage Modified Paths: -------------- trunk/library/changelog.txt trunk/library/classes/Gems/Default/ExportAction.php trunk/library/classes/Gems/Default/SourceAction.php trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php trunk/library/classes/Gems/Default/TrackMaintenanceAction.php trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php trunk/library/classes/Gems/Util/DatabasePatcher.php 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/changelog.txt =================================================================== --- trunk/library/changelog.txt 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/changelog.txt 2012-07-20 12:07:25 UTC (rev 862) @@ -8,6 +8,8 @@ New projects start with a basic css template In project.ini, export.wkhtmltopdf has been renamed to export.pdfExportCommand, and which now stores the entire command line to the pdf export binary (wkhtmltopdf, Phantom.js or similar). The normal time it takes to answer a survey can be added and surveys have a code field +Export of survey data can be selected by respondent id or by track +All maintenance task show some explanation on what they do Important changes from 1.5.3 => 1.5.4 ============================================================ Modified: trunk/library/classes/Gems/Default/ExportAction.php =================================================================== --- trunk/library/classes/Gems/Default/ExportAction.php 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/classes/Gems/Default/ExportAction.php 2012-07-20 12:07:25 UTC (rev 862) @@ -35,7 +35,7 @@ */ /** - * Standard controller for database creation and maintenance. + * Standard controller for export of survey data * * @package Gems * @subpackage Default @@ -97,6 +97,16 @@ } } + if (isset($data['tid'])) { + $select = $this->db->select(); + $select->from('gems__respondent2track', array('gr2t_id_respondent_track')) + ->where('gr2t_id_track = ?', $data['tid']); + + if ($trackArray = $this->db->fetchCol($select)) { + $filter['resptrackid'] = $trackArray; + } + } + if (isset($data['oid'])) { $filter['organizationid'] = $data['oid']; } else { @@ -131,7 +141,8 @@ $element = new Zend_Form_Element_Textarea('ids'); $element->setLabel($this->_('Respondent id\'s')) ->setAttrib('cols', 60) - ->setAttrib('rows', 4); + ->setAttrib('rows', 4) + ->setDescription($this->_('Not respondent nr, but respondent id as exported here.')); $elements[] = $element; $element = new Zend_Form_Element_Select('tid'); Modified: trunk/library/classes/Gems/Default/SourceAction.php =================================================================== --- trunk/library/classes/Gems/Default/SourceAction.php 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/classes/Gems/Default/SourceAction.php 2012-07-20 12:07:25 UTC (rev 862) @@ -104,6 +104,30 @@ } /** + * Displays textual information what checking tokens does + * + * @param MUtil_Html_Sequence $html + * @param Zend_Translate $translate + * @param string $itemDescription Describe which tokens will be checked + */ + public static function addCheckInformation(MUtil_Html_Sequence $html, Zend_Translate $translate, $itemDescription) + { + $html->pInfo($translate->_('Check tokens for being answered or not, reruns survey and round event code on completed tokens and recalculates the start and end times of all tokens in tracks that have completed tokens.')); + $html->pInfo($translate->_('Run this code when survey result fields, survey or round events or the event code has changed or after bulk changes in a survey source.')); + $html->pInfo($itemDescription); + } + + + /** + * Displays a textual explanation what synchronization does on the page. + */ + protected function addSynchronizationInformation() + { + $this->html->pInfo($this->_('Check source for new surveys, changes in survey status and survey deletion. Can also perform maintenance on some sources, e.g. by changing the number of attributes.')); + $this->html->pInfo($this->_('Run this code when the status of a survey in a source has changed or when the code has changed and the source must be adapted.')); + } + + /** * Check all token attributes for a single source */ public function attributesAction() @@ -117,6 +141,9 @@ $this->db->fetchOne("SELECT gso_source_name FROM gems__sources WHERE gso_id_source = ?", $sourceId)); $this->_helper->BatchRunner($batch, $title); + + $this->html->pInfo($this->_('Refreshes the attributes for a token as stored in the source.')); + $this->html->pInfo($this->_('Run this code when the number of attributes has changed or when you suspect the attributes have been corrupted somehow.')); } /** @@ -132,6 +159,8 @@ $title = sprintf($this->_('Checking survey results for %s source.'), $this->db->fetchOne("SELECT gso_source_name FROM gems__sources WHERE gso_id_source = ?", $sourceId)); $this->_helper->BatchRunner($batch, $title); + + self::addCheckInformation($this->html, $this->translate, $this->_('This task checks all tokens in this source.')); } /** @@ -143,6 +172,8 @@ $title = $this->_('Checking survey results for all sources.'); $this->_helper->BatchRunner($batch, $title); + + self::addCheckInformation($this->html, $this->translate, $this->_('This task checks all tokens in all sources.')); } /** @@ -243,6 +274,8 @@ $title = sprintf($this->_('Synchronize the %s source.'), $this->db->fetchOne("SELECT gso_source_name FROM gems__sources WHERE gso_id_source = ?", $sourceId)); $this->_helper->BatchRunner($batch, $title); + + $this->addSynchronizationInformation(); } /** @@ -257,5 +290,7 @@ $this->_helper->BatchRunner($batch, $title); $this->html->actionLink(array('action' => 'index'), $this->_('Cancel')); + + $this->addSynchronizationInformation(); } } Modified: trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php =================================================================== --- trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/classes/Gems/Default/SurveyMaintenanceAction.php 2012-07-20 12:07:25 UTC (rev 862) @@ -333,6 +333,8 @@ $title = sprintf($this->_('Checking survey results for the %s survey.'), $this->db->fetchOne("SELECT gsu_survey_name FROM gems__surveys WHERE gsu_id_survey = ?", $surveyId)); $this->_helper->BatchRunner($batch, $title); + + Gems_Default_SourceAction::addCheckInformation($this->html, $this->translate, $this->_('This task checks all tokens for this survey.')); } /** @@ -344,6 +346,8 @@ $title = $this->_('Checking survey results for all surveys.'); $this->_helper->BatchRunner($batch, $title); + + Gems_Default_SourceAction::addCheckInformation($this->html, $this->translate, $this->_('This task checks all tokens for all surveys.')); } /** Modified: trunk/library/classes/Gems/Default/TrackMaintenanceAction.php =================================================================== --- trunk/library/classes/Gems/Default/TrackMaintenanceAction.php 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/classes/Gems/Default/TrackMaintenanceAction.php 2012-07-20 12:07:25 UTC (rev 862) @@ -91,6 +91,23 @@ } /** + * Displays a textual explanation what check tracking does on the page. + */ + protected function addCheckInformation() + { + $this->html->h2($this->_('Checks')); + $ul = $this->html->ul(); + $ul->li($this->_('Updates existing token description and order to the current round description and order.')); + $ul->li($this->_('Updates the survey of unanswered tokens when the round survey was changed.')); + $ul->li($this->_('Removes unanswered tokens when the round is no longer active.')); + $ul->li($this->_('Creates new tokens for new rounds.')); + $ul->li($this->_('Checks the validity dates and times of unanswered tokens, using the current round settings.')); + + $this->html->pInfo($this->_('Run this code when a track has changed or when the code has changed and the track must be adjusted.')); + $this->html->pInfo($this->_('If you do not run this code after changing a track, then the old tracks remain as they were and only newly created tracks will reflect the changes.')); + } + + /** * Adds elements from the model to the bridge that creates the form. * * Overrule this function to add different elements to the browse table, without @@ -156,6 +173,8 @@ { $batch = $this->loader->getTracker()->checkTrackRounds('trackCheckRoundsAll', $this->loader->getCurrentUser()->getUserId()); $this->_helper->BatchRunner($batch, $this->_('Checking round assignments for all tracks.')); + + $this->addCheckInformation(); } /** @@ -170,6 +189,8 @@ $title = sprintf($this->_("Checking round assignments for track '%s'."), $track->getTrackName()); $this->_helper->BatchRunner($batch, $title); + + $this->addCheckInformation(); } public function createAction() Modified: trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php =================================================================== --- trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/classes/Gems/Tracker/Engine/TrackEngineAbstract.php 2012-07-20 12:07:25 UTC (rev 862) @@ -412,11 +412,11 @@ if (null === $batch) { $batch = new Gems_Task_TaskRunnerBatch(); } - //Step one: update existing tokens + // Step one: update existing tokens $i = $batch->addToCounter('roundChangeUpdates', $this->checkExistingRoundsFor($respTrack, $userId)); $batch->setMessage('roundChangeUpdates', sprintf($this->_('Round changes propagated to %d tokens.'), $i)); - //Step two: deactivate inactive rounds + // Step two: deactivate inactive rounds $i = $batch->addToCounter('deletedTokens', $this->removeInactiveRounds($respTrack, $userId)); $batch->setMessage('deletedTokens', sprintf($this->_('%d tokens deleted by round changes.'), $i)); Modified: trunk/library/classes/Gems/Util/DatabasePatcher.php =================================================================== --- trunk/library/classes/Gems/Util/DatabasePatcher.php 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/classes/Gems/Util/DatabasePatcher.php 2012-07-20 12:07:25 UTC (rev 862) @@ -154,7 +154,7 @@ if ($ignoreExecuted) { $sql .= ' AND gpa_executed = 0'; } - $sql .= ' ORDER BY gpa_level, gpa_location, gpa_name, gpa_order'; + $sql .= ' ORDER BY gpa_level, gpa_location, gpa_id_patch'; // MUtil_Echo::rs($ignoreCompleted, $ignoreExecuted, $sql); $current = new Zend_Db_Expr('CURRENT_TIMESTAMP'); @@ -232,6 +232,7 @@ // MUtil_Echo::track($minimum); $this->_loadPatches($applicationLevel); + // MUtil_Echo::track($this->_loaded_patches); foreach ($this->_loaded_patches as $patch) { if ($minimum <= $patch['gpa_level']) { $level = $patch['gpa_level']; Modified: trunk/library/languages/default-en.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-en.po =================================================================== --- trunk/library/languages/default-en.po 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/languages/default-en.po 2012-07-20 12:07:25 UTC (rev 862) @@ -2,9 +2,9 @@ msgstr "" "Project-Id-Version: GemsTracker EN\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-07-18 11:33+0100\n" +"POT-Creation-Date: 2012-07-20 13:42+0100\n" "PO-Revision-Date: \n" -"Last-Translator: Menno Dekker <men...@er...>\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" @@ -33,7 +33,7 @@ msgstr "You are logged in as %s" #: classes/GemsEscort.php:790 -#: classes/Gems/Menu.php:249 +#: classes/Gems/Menu.php:261 msgid "Logoff" msgstr "Logoff" @@ -189,7 +189,7 @@ msgstr "Roles" #: classes/Gems/Menu.php:197 -#: classes/Gems/Menu.php:377 +#: classes/Gems/Menu.php:389 msgid "Assigned" msgstr "Assigned" @@ -222,7 +222,7 @@ msgstr "Upgrade" #: classes/Gems/Menu.php:220 -#: classes/Gems/Menu.php:341 +#: classes/Gems/Menu.php:353 msgid "Show" msgstr "Show" @@ -242,125 +242,125 @@ msgid "Execute to here" msgstr "Execute to here" -#: classes/Gems/Menu.php:236 +#: classes/Gems/Menu.php:248 #, php-format -msgid "Stand-alone privilige: %s" -msgstr "Stand-alone privilige: %s" +msgid "Stand-alone privilege: %s" +msgstr "Stand-alone privilege: %s" -#: classes/Gems/Menu.php:243 +#: classes/Gems/Menu.php:255 msgid "Logon" msgstr "Logon" -#: classes/Gems/Menu.php:244 +#: classes/Gems/Menu.php:256 msgid "Lost password" msgstr "Lost password" -#: classes/Gems/Menu.php:245 +#: classes/Gems/Menu.php:257 msgid "Your account" msgstr "Your account" -#: classes/Gems/Menu.php:246 +#: classes/Gems/Menu.php:258 msgid "Activity overview" msgstr "Activity overview" -#: classes/Gems/Menu.php:247 +#: classes/Gems/Menu.php:259 msgid "Change password" msgstr "Change password" -#: classes/Gems/Menu.php:248 -#: classes/Gems/Menu.php:301 -#: classes/Gems/Menu.php:347 +#: classes/Gems/Menu.php:260 +#: classes/Gems/Menu.php:313 +#: classes/Gems/Menu.php:359 msgid "Token" msgstr "Token" -#: classes/Gems/Menu.php:289 +#: classes/Gems/Menu.php:301 msgid "Export" msgstr "Export" -#: classes/Gems/Menu.php:296 +#: classes/Gems/Menu.php:308 msgid "Track" msgstr "Track" -#: classes/Gems/Menu.php:304 -#: classes/Gems/Menu.php:329 -#: classes/Gems/Menu.php:371 +#: classes/Gems/Menu.php:316 +#: classes/Gems/Menu.php:341 +#: classes/Gems/Menu.php:383 msgid "Add" msgstr "Add" -#: classes/Gems/Menu.php:310 -#: classes/Gems/Menu.php:410 +#: classes/Gems/Menu.php:322 +#: classes/Gems/Menu.php:422 msgid "Preview" msgstr "Preview" -#: classes/Gems/Menu.php:319 +#: classes/Gems/Menu.php:331 msgid "Tracks" msgstr "Tracks" -#: classes/Gems/Menu.php:335 +#: classes/Gems/Menu.php:347 msgid "Assignments" msgstr "Assignments" -#: classes/Gems/Menu.php:351 +#: classes/Gems/Menu.php:363 msgid "Edit" msgstr "Edit" -#: classes/Gems/Menu.php:357 +#: classes/Gems/Menu.php:369 msgid "Delete" msgstr "Delete" -#: classes/Gems/Menu.php:364 +#: classes/Gems/Menu.php:376 msgid "Surveys" msgstr "Surveys" -#: classes/Gems/Menu.php:401 +#: classes/Gems/Menu.php:413 msgid "Fill in" msgstr "Fill in" -#: classes/Gems/Menu.php:404 +#: classes/Gems/Menu.php:416 msgid "Print PDF" msgstr "Print PDF" -#: classes/Gems/Menu.php:407 +#: classes/Gems/Menu.php:419 msgid "E-Mail now!" msgstr "E-Mail now!" -#: classes/Gems/Menu.php:413 +#: classes/Gems/Menu.php:425 msgid "Answers" msgstr "Answers" -#: classes/Gems/Menu.php:565 +#: classes/Gems/Menu.php:577 msgid "Respondents" msgstr "Patients" -#: classes/Gems/Menu.php:573 +#: classes/Gems/Menu.php:585 msgid "Overview" msgstr "Overview" -#: classes/Gems/Menu.php:580 +#: classes/Gems/Menu.php:592 msgid "Project" msgstr "Project" -#: classes/Gems/Menu.php:583 +#: classes/Gems/Menu.php:595 msgid "Setup" msgstr "Setup" -#: classes/Gems/Menu.php:586 +#: classes/Gems/Menu.php:598 msgid "Track Builder" msgstr "Track Builder" -#: classes/Gems/Menu.php:589 +#: classes/Gems/Menu.php:601 msgid "Mail" msgstr "Mail" -#: classes/Gems/Menu.php:595 +#: classes/Gems/Menu.php:607 msgid "Export respondent" msgstr "Export respondent" -#: classes/Gems/Menu.php:601 +#: classes/Gems/Menu.php:613 msgid "Contact" msgstr "Contact" -#: classes/Gems/Menu.php:615 +#: classes/Gems/Menu.php:627 msgid "Changelog" msgstr "Changelog" @@ -424,21 +424,26 @@ msgid "Birthday" msgstr "Birthday" -#: classes/Gems/Pdf.php:198 +#: classes/Gems/Pdf.php:219 #, php-format msgid "PDF Source File '%s' not found!" msgstr "PDF Source File '%s' not found!" -#: classes/Gems/Pdf.php:240 +#: classes/Gems/Pdf.php:261 #, php-format msgid "Could not create '%s' directory." msgstr "Could not create '%s' directory." -#: classes/Gems/Pdf.php:283 +#: classes/Gems/Pdf.php:304 #, php-format msgid " The error message is: %s" msgstr " The error message is: %s" +#: classes/Gems/Pdf.php:336 +#, php-format +msgid "Unable to run PDF conversion (%s): \"%s\"" +msgstr "Unable to run PDF conversion (%s): \"%s\"" + #: classes/Gems/Upgrades.php:79 msgid "Syncing surveys for all sources" msgstr "Syncing surveys for all sources" @@ -978,15 +983,15 @@ msgid "Contents of %s %s" msgstr "Contents of %s %s" -#: classes/Gems/Default/ExportAction.php:69 -msgid "Data" -msgstr "Data" +#: classes/Gems/Default/ExportAction.php:142 +msgid "Respondent id's" +msgstr "Respondent id's" -#: classes/Gems/Default/ExportAction.php:74 -msgid "Export data" -msgstr "Export data" +#: classes/Gems/Default/ExportAction.php:145 +msgid "Not respondent nr, but respondent id as exported here." +msgstr "Not patient nr, but respondent id as exported here." -#: classes/Gems/Default/ExportAction.php:152 +#: classes/Gems/Default/ExportAction.php:154 msgid "Survey" msgstr "Survey" @@ -995,10 +1000,18 @@ msgid "%s records found." msgstr "%s records found." -#: classes/Gems/Default/ExportAction.php:180 +#: classes/Gems/Default/ExportAction.php:181 msgid "Export to" msgstr "Export to" +#: classes/Gems/Default/ExportAction.php:219 +msgid "Data" +msgstr "Data" + +#: classes/Gems/Default/ExportAction.php:224 +msgid "Export data" +msgstr "Export data" + #: classes/Gems/Default/GroupAction.php:89 #: classes/Gems/Default/LogAction.php:201 msgid "Role" @@ -2037,72 +2050,104 @@ msgid "Database Password" msgstr "Database Password" +#: classes/Gems/Default/SourceAction.php:115 +msgid "Check tokens for being answered or not, reruns survey and round event code on completed tokens and recalculates the start and end times of all tokens in tracks that have completed tokens." +msgstr "Check tokens for being answered or not, reruns survey and round event code on completed tokens and recalculates the start and end times of all tokens in tracks that have completed tokens." + #: classes/Gems/Default/SourceAction.php:116 +msgid "Run this code when survey result fields, survey or round events or the event code has changed or after bulk changes in a survey source." +msgstr "Run this code when survey result fields, survey or round events or the event code has changed or after bulk changes in a survey source." + +#: classes/Gems/Default/SourceAction.php:126 +msgid "Check source for new surveys, changes in survey status and survey deletion. Can also perform maintenance on some sources, e.g. by changing the number of attributes." +msgstr "Check source for new surveys, changes in survey status and survey deletion. Can also perform maintenance on some sources, e.g. by changing the number of attributes." + +#: classes/Gems/Default/SourceAction.php:127 +msgid "Run this code when the status of a survey in a source has changed or when the code has changed and the source must be adapted." +msgstr "Run this code when the status of a survey in a source has changed or when the code has changed and the source must be adapted." + +#: classes/Gems/Default/SourceAction.php:140 #, php-format msgid "Refreshing token attributes for %s source." msgstr "Refreshing token attributes for %s source." -#: classes/Gems/Default/SourceAction.php:132 +#: classes/Gems/Default/SourceAction.php:145 +msgid "Refreshes the attributes for a token as stored in the source." +msgstr "Refreshes the attributes for a token as stored in the source." + +#: classes/Gems/Default/SourceAction.php:146 +msgid "Run this code when the number of attributes has changed or when you suspect the attributes have been corrupted somehow." +msgstr "Run this code when the number of attributes has changed or when you suspect the attributes have been corrupted somehow." + +#: classes/Gems/Default/SourceAction.php:159 #, php-format msgid "Checking survey results for %s source." msgstr "Checking survey results for %s source." -#: classes/Gems/Default/SourceAction.php:144 +#: classes/Gems/Default/SourceAction.php:163 +msgid "This task checks all tokens in this source." +msgstr "This task checks all tokens in this source." + +#: classes/Gems/Default/SourceAction.php:173 msgid "Checking survey results for all sources." msgstr "Checking survey results for all sources." -#: classes/Gems/Default/SourceAction.php:165 +#: classes/Gems/Default/SourceAction.php:176 +msgid "This task checks all tokens in all sources." +msgstr "This task checks all tokens in all sources." + +#: classes/Gems/Default/SourceAction.php:196 msgid "Source Url" msgstr "Source Url" -#: classes/Gems/Default/SourceAction.php:167 +#: classes/Gems/Default/SourceAction.php:198 msgid "Adaptor class" msgstr "Adaptor class" -#: classes/Gems/Default/SourceAction.php:169 +#: classes/Gems/Default/SourceAction.php:200 msgid "Database Server" msgstr "Database Server" -#: classes/Gems/Default/SourceAction.php:171 +#: classes/Gems/Default/SourceAction.php:202 msgid "Database host" msgstr "Database host" -#: classes/Gems/Default/SourceAction.php:173 +#: classes/Gems/Default/SourceAction.php:204 msgid "Charset" msgstr "Charset" -#: classes/Gems/Default/SourceAction.php:176 +#: classes/Gems/Default/SourceAction.php:207 msgid "Table prefix" msgstr "Table prefix" -#: classes/Gems/Default/SourceAction.php:180 +#: classes/Gems/Default/SourceAction.php:211 msgid "Last check" msgstr "Last check" -#: classes/Gems/Default/SourceAction.php:213 +#: classes/Gems/Default/SourceAction.php:244 msgid "source" msgid_plural "sources" msgstr[0] "source" msgstr[1] "sources" -#: classes/Gems/Default/SourceAction.php:218 +#: classes/Gems/Default/SourceAction.php:249 msgid "Survey Sources" msgstr "Survey Sources" -#: classes/Gems/Default/SourceAction.php:226 +#: classes/Gems/Default/SourceAction.php:257 msgid "This installation is active." msgstr "This installation is active." -#: classes/Gems/Default/SourceAction.php:228 +#: classes/Gems/Default/SourceAction.php:259 msgid "Inactive installation." msgstr "Inactive installation." -#: classes/Gems/Default/SourceAction.php:243 +#: classes/Gems/Default/SourceAction.php:274 #, php-format msgid "Synchronize the %s source." msgstr "Synchronize the %s source." -#: classes/Gems/Default/SourceAction.php:256 +#: classes/Gems/Default/SourceAction.php:289 msgid "Synchronize all sources." msgstr "Synchronize all sources." @@ -2275,72 +2320,80 @@ msgid "Checking survey results for the %s survey." msgstr "Checking survey results for the %s survey." -#: classes/Gems/Default/SurveyMaintenanceAction.php:345 +#: classes/Gems/Default/SurveyMaintenanceAction.php:337 +msgid "This task checks all tokens for this survey." +msgstr "This task checks all tokens for this survey." + +#: classes/Gems/Default/SurveyMaintenanceAction.php:347 msgid "Checking survey results for all surveys." msgstr "Checking survey results for all surveys." -#: classes/Gems/Default/SurveyMaintenanceAction.php:402 +#: classes/Gems/Default/SurveyMaintenanceAction.php:350 +msgid "This task checks all tokens for all surveys." +msgstr "This task checks all tokens for all surveys." + +#: classes/Gems/Default/SurveyMaintenanceAction.php:406 msgid "OK" msgstr "OK" -#: classes/Gems/Default/SurveyMaintenanceAction.php:410 +#: classes/Gems/Default/SurveyMaintenanceAction.php:414 msgid "Source" msgstr "Source" -#: classes/Gems/Default/SurveyMaintenanceAction.php:412 -#: classes/Gems/Default/SurveyMaintenanceAction.php:435 +#: classes/Gems/Default/SurveyMaintenanceAction.php:416 +#: classes/Gems/Default/SurveyMaintenanceAction.php:439 msgid "Duration description" msgstr "Duration description" -#: classes/Gems/Default/SurveyMaintenanceAction.php:412 -#: classes/Gems/Default/SurveyMaintenanceAction.php:435 +#: classes/Gems/Default/SurveyMaintenanceAction.php:416 +#: classes/Gems/Default/SurveyMaintenanceAction.php:439 msgid "Text to inform the respondent, e.g. \"20 seconds\" or \"1 minute\"." msgstr "Text to inform the respondent, e.g. \"20 seconds\" or \"1 minute\"." -#: classes/Gems/Default/SurveyMaintenanceAction.php:414 +#: classes/Gems/Default/SurveyMaintenanceAction.php:418 msgid "Status in source" msgstr "Status in source" -#: classes/Gems/Default/SurveyMaintenanceAction.php:417 +#: classes/Gems/Default/SurveyMaintenanceAction.php:421 msgid "Active in source" msgstr "Active in source" -#: classes/Gems/Default/SurveyMaintenanceAction.php:418 +#: classes/Gems/Default/SurveyMaintenanceAction.php:422 #, php-format msgid "Active in %s" msgstr "Active in %s" -#: classes/Gems/Default/SurveyMaintenanceAction.php:425 +#: classes/Gems/Default/SurveyMaintenanceAction.php:429 msgid "Single" msgstr "Single" -#: classes/Gems/Default/SurveyMaintenanceAction.php:434 +#: classes/Gems/Default/SurveyMaintenanceAction.php:438 msgid "Result field" msgstr "Result field" -#: classes/Gems/Default/SurveyMaintenanceAction.php:439 +#: classes/Gems/Default/SurveyMaintenanceAction.php:443 msgid "Before answering" msgstr "Before answering" -#: classes/Gems/Default/SurveyMaintenanceAction.php:440 +#: classes/Gems/Default/SurveyMaintenanceAction.php:444 msgid "After completion" msgstr "After completion" -#: classes/Gems/Default/SurveyMaintenanceAction.php:470 +#: classes/Gems/Default/SurveyMaintenanceAction.php:474 #, php-format msgid "%d times in track." msgstr "%d times in track." -#: classes/Gems/Default/SurveyMaintenanceAction.php:472 +#: classes/Gems/Default/SurveyMaintenanceAction.php:476 #, php-format msgid "%d times in %d track(s)." msgstr "%d times in %d track(s)." -#: classes/Gems/Default/SurveyMaintenanceAction.php:476 +#: classes/Gems/Default/SurveyMaintenanceAction.php:480 msgid "Not used in track." msgstr "Not used in track." -#: classes/Gems/Default/SurveyMaintenanceAction.php:478 +#: classes/Gems/Default/SurveyMaintenanceAction.php:482 msgid "Not used in tracks." msgstr "Not used in tracks." @@ -2597,12 +2650,12 @@ msgstr "Code Name" #: classes/Gems/Default/TrackFieldsAction.php:121 -#: classes/Gems/Default/TrackMaintenanceAction.php:206 +#: classes/Gems/Default/TrackMaintenanceAction.php:227 msgid "Values" msgstr "Values" #: classes/Gems/Default/TrackFieldsAction.php:123 -#: classes/Gems/Default/TrackMaintenanceAction.php:208 +#: classes/Gems/Default/TrackMaintenanceAction.php:229 msgid "Required" msgstr "Required" @@ -2620,24 +2673,56 @@ msgid "Fields" msgstr "Fields" -#: classes/Gems/Default/TrackMaintenanceAction.php:158 +#: classes/Gems/Default/TrackMaintenanceAction.php:98 +msgid "Checks" +msgstr "Checks" + +#: classes/Gems/Default/TrackMaintenanceAction.php:100 +msgid "Updates existing token description and order to the current round description and order." +msgstr "Updates existing token description and order to the current round description and order." + +#: classes/Gems/Default/TrackMaintenanceAction.php:101 +msgid "Updates the survey of unanswered tokens when the round survey was changed." +msgstr "Updates the survey of unanswered tokens when the round survey was changed." + +#: classes/Gems/Default/TrackMaintenanceAction.php:102 +msgid "Removes unanswered tokens when the round is no longer active." +msgstr "Removes unanswered tokens when the round is no longer active." + +#: classes/Gems/Default/TrackMaintenanceAction.php:103 +msgid "Creates new tokens for new rounds." +msgstr "Creates new tokens for new rounds." + +#: classes/Gems/Default/TrackMaintenanceAction.php:104 +msgid "Checks the validity dates and times of unanswered tokens, using the current round settings." +msgstr "Checks the validity dates and times of unanswered tokens, using the current round settings." + +#: classes/Gems/Default/TrackMaintenanceAction.php:106 +msgid "Run this code when a track has changed or when the code has changed and the track must be adjusted." +msgstr "Run this code when a track has changed or when the code has changed and the track must be adjusted." + +#: classes/Gems/Default/TrackMaintenanceAction.php:107 +msgid "If you do not run this code after changing a track, then the old tracks remain as they were and only newly created tracks will reflect the changes." +msgstr "If you do not run this code after changing a track, then the old tracks remain as they were and only newly created tracks will reflect the changes." + +#: classes/Gems/Default/TrackMaintenanceAction.php:175 msgid "Checking round assignments for all tracks." msgstr "Checking round assignments for all tracks." -#: classes/Gems/Default/TrackMaintenanceAction.php:171 +#: classes/Gems/Default/TrackMaintenanceAction.php:190 #, php-format msgid "Checking round assignments for track '%s'." msgstr "Checking round assignments for track '%s'." -#: classes/Gems/Default/TrackMaintenanceAction.php:261 +#: classes/Gems/Default/TrackMaintenanceAction.php:282 msgid "fields" msgstr "fields" -#: classes/Gems/Default/TrackMaintenanceAction.php:262 +#: classes/Gems/Default/TrackMaintenanceAction.php:283 msgid "rounds" msgstr "rounds" -#: classes/Gems/Default/TrackMaintenanceAction.php:288 +#: classes/Gems/Default/TrackMaintenanceAction.php:309 #, php-format msgid "%s in track" msgstr "%s in track" @@ -2822,24 +2907,19 @@ msgid "Format answers" msgstr "Format answers" -#: classes/Gems/Export/RespondentExport.php:130 -#, php-format -msgid "Unable to run PDF conversion (%s): \"%s\"" -msgstr "Unable to run PDF conversion (%s): \"%s\"" - -#: classes/Gems/Export/RespondentExport.php:200 +#: classes/Gems/Export/RespondentExport.php:162 msgid "Single Survey" msgstr "Single Survey" -#: classes/Gems/Export/RespondentExport.php:261 +#: classes/Gems/Export/RespondentExport.php:223 msgid "Track information" msgstr "Track information" -#: classes/Gems/Export/RespondentExport.php:324 +#: classes/Gems/Export/RespondentExport.php:286 msgid "Group surveys" msgstr "Group surveys" -#: classes/Gems/Export/RespondentExport.php:329 +#: classes/Gems/Export/RespondentExport.php:291 msgid "Output format" msgstr "Output format" @@ -3715,13 +3795,13 @@ msgstr "Free text (very long)" #: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:628 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:678 -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:732 +#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:679 +#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:733 #, php-format msgid "%s: %s" msgstr "%s: %s" -#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:752 +#: classes/Gems/Tracker/Source/LimeSurvey1m9FieldMap.php:753 #, php-format msgid "- %s" msgstr "- %s" @@ -3913,11 +3993,11 @@ msgid "User not found or no e-mail address known or user cannot be reset." msgstr "User not found or no e-mail address known or user cannot be reset." -#: classes/Gems/Util/DbLookup.php:370 +#: classes/Gems/Util/DbLookup.php:377 msgid "inactive" msgstr "inactive" -#: classes/Gems/Util/DbLookup.php:371 +#: classes/Gems/Util/DbLookup.php:378 msgid "source inactive" msgstr "source inactive" @@ -4231,19 +4311,23 @@ #: snippets/DeleteSingleSurveyInSourceTokenSnippet.php:172 #: snippets/DeleteSingleSurveyNotUsedTokenSnippet.php:143 +#: snippets/DeleteTrackTokenSnippet.php:193 msgid "Edit token" msgstr "Edit token" #: snippets/DeleteSingleSurveyInSourceTokenSnippet.php:225 +#: snippets/DeleteTrackTokenSnippet.php:245 #, php-format msgid "Redo of token %s." msgstr "Redo of token %s." #: snippets/DeleteSingleSurveyInSourceTokenSnippet.php:228 +#: snippets/DeleteTrackTokenSnippet.php:248 msgid "Old comment:" msgstr "Old comment:" #: snippets/DeleteSingleSurveyInSourceTokenSnippet.php:249 +#: snippets/DeleteTrackTokenSnippet.php:269 #, php-format msgid "Created replacement token %2$s for token %1$s." msgstr "Created replacement token %2$s for token %1$s." @@ -4258,7 +4342,6 @@ msgstr "Deleted token %s for survey %s." #: snippets/DeleteTrackTokenSnippet.php:286 -#: snippets/EditTrackTokenSnippet.php:182 #, php-format msgid "%d token changed by recalculation." msgid_plural "%d tokens changed by recalculation." @@ -4462,6 +4545,13 @@ 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." +#~ msgid "" +#~ "Only for unanswered tokens: updates the survey of a token when changed in " +#~ "the track." +#~ msgstr "" +#~ "Only for unanswered tokens: updates the survey of a token when changed in " +#~ "the track." + #~ msgid "Invalid organization." #~ msgstr "Invalid organization." Modified: trunk/library/languages/default-nl.mo =================================================================== (Binary files differ) Modified: trunk/library/languages/default-nl.po =================================================================== --- trunk/library/languages/default-nl.po 2012-07-19 16:55:57 UTC (rev 861) +++ trunk/library/languages/default-nl.po 2012-07-20 12:07:25 UTC (rev 862) @@ -1,5219 +1,5313 @@ -msgid "" -msgstr "" -"Project-Id-Version: GemsTracker NL\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-07-18 13:55+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:215 -#, php-format -msgid "Path %s not writable" -msgstr "Path %s niet schrijfbaar" - -#: classes/GemsEscort.php:597 -msgid " > " -msgstr " | " - -#: classes/GemsEscort.php:788 -#, php-format -msgid "You are logged in as %s" -msgstr "Ingelogd als %s" - -#: classes/GemsEscort.php:790 -msgid "Logoff" -msgstr "Uitloggen" - -#: classes/GemsEscort.php:793 -msgid "You are not logged in" -msgstr "U bent niet ingelogd" - -#: classes/GemsEscort.php:980 -#, php-format -msgid "User: %s" -msgstr "Login: %s" - -#: classes/GemsEscort.php:1005 -msgid "version" -msgstr "versie" - -#: classes/GemsEscort.php:1451 -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:1580 -msgid "Please check back later." -msgstr "Probeer het later opnieuw." - -#: classes/GemsEscort.php:1582 -#: classes/GemsEscort.php:1587 -msgid "System is in maintenance mode" -msgstr "Systeem is in onderhoudsmodus" - -#: classes/GemsEscort.php:1597 -msgid "No access to site." -msgstr "Geen toegang tot website." - -#: classes/GemsEscort.php:1599 -msgid "You have no access to this site." -msgstr "U heeft geen toegang tot deze website." - -#: classes/GemsEscort.php:1615 -msgid "No access to page" -msgstr "Geen toegang tot pagina" - -#: classes/GemsEscort.php:1617 -#, 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:1627 -msgid "You are no longer logged in." -msgstr "U bent niet meer ingelogd." - -#: classes/GemsEscort.php:1628 -msgid "You must login to access this page." -msgstr "U moet ingelogd zijn voor toegang tot deze pagina." - -#: classes/GemsEscort.php:1769 -#, php-format -msgid "%d survey" -msgid_plural "%d surveys" -msgstr[0] "%d vragenlijst" -msgstr[1] "%d vragenlijsten" - -#: classes/Gems/Pdf.php:198 -#, php-format -msgid "PDF Source File '%s' not found!" -msgstr "PDF bron bestand %s niet gevonden!" - -#: classes/Gems/Pdf.php:240 -#, php-format -msgid "Could not create '%s' directory." -msgstr "Kon de directory '%s' niet aanmaken." - -#: classes/Gems/Pdf.php:283 -#, php-format -msgid " The error message is: %s" -msgstr "De foutmelding is: %s" - -#: classes/Gems/Upgrades.php:79 -msgid "Syncing surveys for all sources" -msgstr "Vragenlijsten synchroniseren voor alle bronnen." - -#: classes/Gems/AccessLog.php:236 -msgid "Database needs to be updated!" -msgstr "Database dient ververst te worden!" - -#: classes/Gems/Html.php:155 -msgid "<< First" -msgstr "<< Eerste" - -#: classes/Gems/Html.php:156 -msgid "< Previous" -msgstr "< Terug" - -#: classes/Gems/Html.php:157 -msgid "Next >" -msgstr "Verder >" - -#: classes/Gems/Html.php:158 -msgid "Last >>" -msgstr "Laatste >>" - -#: classes/Gems/Html.php:159 -msgid " | " -msgstr " | " - -#: classes/Gems/Html.php:163 -msgid "to" -msgstr "tot" - -#: classes/Gems/Html.php:164 -msgid "of" -msgstr "van" - -#: classes/Gems/Menu.php:140 -#, php-format -msgid "About %s" -msgstr "Over %s" - -#: classes/Gems/Menu.php:144 -msgid "Reporting bugs" -msgstr "Meld een bug" - -#: classes/Gems/Menu.php:147 -msgid "Support" -msgstr "Ondersteuning" - -#: classes/Gems/Menu.php:167 -msgid "Project setup" -msgstr "Projectinfo" - -#: classes/Gems/Menu.php:170 -msgid "Database" -msgstr "Database" - -#: classes/Gems/Menu.php:174 -msgid "Content" -msgstr "Inhoud" - -#: classes/Gems/Menu.php:177 -msgid "Execute" -msgstr "Uitvoeren" - -#: classes/Gems/Menu.php:182 -msgid "Patches" -msgstr "Patches" - -#: classes/Gems/Menu.php:183 -msgid "Execute new" -msgstr "Nieuwe aanmaken" - -#: classes/Gems/Menu.php:185 -msgid "Refresh translateables" -msgstr "Ververs vertaalbaren" - -#: classes/Gems/Menu.php:187 -msgid "Run SQL" -msgstr "SQL uitvoeren" - -#: classes/Gems/Menu.php:190 -msgid "Reception codes" -msgstr "Ontvangst codes" - -#: classes/Gems/Menu.php:193 -msgid "Consents" -msgstr "Toestemmingen" - -#: classes/Gems/Menu.php:196 -msgid "Roles" -msgstr "Rollen" - -#: classes/Gems/Menu.php:197 -msgid "Assigned" -msgstr "Toegewezen" - -#: classes/Gems/Menu.php:198 -msgid "Privileges" -msgstr "Priviléges" - -#: classes/Gems/Menu.php:201 -msgid "Groups" -msgstr "Groepen" - -#: classes/Gems/Menu.php:204 -msgid "Organizations" -msgstr "Organisaties" - -#: classes/Gems/Menu.php:207 -msgid "Staff" -msgstr "Medewerkers" - -#: classes/Gems/Menu.php:210 -msgid "Logging" -msgstr "Logboek" - -#: classes/Gems/Menu.php:214 -msgid "Maintenance" -msgstr "Onderhoud" - -#: classes/Gems/Menu.php:219 -msgid "Upgrade" -msgstr "Upgrade" - -#: classes/Gems/Menu.php:220 -msgid "Show" -msgstr "Toon" - -#: classes/Gems/Menu.php:221 -msgid "Execute all" -msgstr "Alles uitvoeren" - -#: classes/Gems/Menu.php:222 -msgid "Execute this" -msgstr "Dit uitvoeren" - -#: classes/Gems/Menu.php:223 -msgid "Execute from here" -msgstr "Uitvoeren vanaf hier" - -#: classes/Gems/Menu.php:224 -msgid "Execute to here" -msgstr "Uitvoeren tot hier" - -#: classes/Gems/Menu.php:248 -#, php-format -msgid "Stand-alone privilege: %s" -msgstr "Zelfstandig privilege: %s" - -#: classes/Gems/Menu.php:255 -msgid "Logon" -msgstr "Login" - -#: classes/Gems/Menu.php:256 -msgid "Lost password" -msgstr "Wachtwoord vergeten" - -#: classes/Gems/Menu.php:257 -msgid "Your account" -msgstr "Uw account" - -#: classes/Gems/Menu.php:258 -msgid "Activity overview" -msgstr "Activiteiten overzicht" - -#: classes/Gems/Menu.php:259 -msgid "Change password" -msgstr "Uw wachtwoord" - -#: classes/Gems/Menu.php:260 -#: classes/Gems/Menu.php:359 -msgid "Token" -msgstr "Kenmerk" - -#: classes/Gems/Menu.php:301 -msgid "Export" -msgstr "Exporteer" - -#: classes/Gems/Menu.php:308 -msgid "Track" -msgstr "Traject" - -#: classes/Gems/Menu.php:316 -#: classes/Gems/Menu.php:383 -msgid "Add" -msgstr "Voeg toe" - -#: classes/Gems/Menu.php:322 -msgid "Preview" -msgstr "Preview" - -#: classes/Gems/Menu.php:331 -msgid "Tracks" -msgstr "Trajecten" - -#: classes/Gems/Menu.php:347 -msgid "Assignments" -msgstr "Toewijzingen" - -#: classes/Gems/Menu.php:363 -msgid "Edit" -msgstr "Wijzig" - -#: classes/Gems/Menu.php:369 -msgid "Delete" -msgstr "Verwijder" - -#: classes/Gems/Menu.php:376 -msgid "Surveys" -msgstr "Vragenlijsten" - -#: classes/Gems/Menu.php:413 -msgid "Fill in" -msgstr "Vul in" - -#: classes/Gems/Menu.php:416 -msgid "Print PDF" -msgstr "Print PDF" - -#: classes/Gems/Menu.php:419 -msgid "E-Mail now!" -msgstr "Email nu!" - -#: classes/Gems/Menu.php:425 -msgid "Answers" -msgstr "Antwoorden" - -#: classes/Gems/Menu.php:577 -msgid "Respondents" -msgstr "Patiënten" - -#: classes/Gems/Menu.php:585 -msgid "Overview" -msgstr "Overzicht" - -#: classes/Gems/Menu.php:592 -msgid "Project" -msgstr "Project" - -#: classes/Gems/Menu.php:595 -msgid "Setup" -msgstr "Beheer" - -#: classes/Gems/Menu.php:598 -msgid "Track Builder" -msgstr "Traject bouwer" - -#: classes/Gems/Menu.php:601 -msgid "Mail" -msgstr "Email" - -#: classes/Gems/Menu.php:607 -msgid "Export respondent" -msgstr "Exporteer patiënt" - -#: classes/Gems/Menu.php:613 -msgid "Contact" -msgstr "Contact" - -#: classes/Gems/Menu.php:627 -msgid "Changelog" -msgstr "Changelog" - -#: classes/Gems/Model.php:206 -msgid "Respondent nr" -msgstr "Patiënt nr" - -#: classes/Gems/Model.php:209 -msgid "Organization" -msgstr "Organisatie" - -#: classes/Gems/Model.php:211 -msgid "Opened" -msgstr "Bekeken op" - -#: classes/Gems/Model.php:212 -msgid "Consent" -msgstr "Toestemming" - -#: classes/Gems/Model.php:214 -msgid "E-Mail" -msgstr "Email" - -#: classes/Gems/Model.php:219 -msgid "Gender" -msgstr "Geslacht" - -#: classes/Gems/Model.php:220 -msgid "First name" -msgstr "Voornaam" - -#: classes/Gems/Model.php:221 -msgid "Surname prefix" -msgstr "Tussenvoegsel" - -#: classes/Gems/Model.php:222 -msgid "Last name" -msgstr "Achternaam" - -#: classes/Gems/Model.php:224 -msgid "Name" -msgstr "Naam" - -#: classes/Gems/Model.php:227 -msgid "Street" -msgstr "Straat" - -#: classes/Gems/Model.php:228 -msgid "Zipcode" -msgstr "Postcode" - -#: classes/Gems/Model.php:229 -msgid "City" -msgstr "Woonplaats" - -#: classes/Gems/Model.php:231 -msgid "Phone" -msgstr "Telefoon" - -#: classes/Gems/Model.php:233 -msgid "Birthday" -msgstr "Geboren op" - -#: classes/Gems/UpgradesAbstract.php:154 -msgid "Already at max. level." -msgstr "Al op het hoogste niveau." - -#: classes/Gems/UpgradesAbstract.php:161 -#, 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:169 -#, php-format -msgid "Trying upgrade for %s to level %s: %s" -msgstr "Probeert upgrade voor %s naar niveau %s: %s" - -#: classes/Gems/Model/HiddenOrganizationModel.php:113 -msgid "Inaccessible or unknown organization" -msgstr "Ontoegankelijke of onbekende organisatie." - -#: classes/Gems/Model/DbaModel.php:97 -msgid "created" -msgstr "bestaat" - -#: classes/Gems/Model/DbaModel.php:98 -msgid "not created" -msgstr "niet aanwezig" - -#: classes/Gems/Model/DbaModel.php:99 -msgid "unknown" -msgstr "onbekend" - -#: classes/Gems/Model/DbaModel.php:420 -#, php-format -msgid "Executed %2$s creation script %1$s:" -msgstr "Uitvoerresultaat %2$s script %1$s:" - -#: classes/Gems/Model/DbaModel.php:430 -#, 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/Model/DbaModel.php:434 -#, 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/Model/DbaModel.php:437 -#, php-format -msgid "Script ran step %d of %d succesfully." -msgstr "Stap %d van %d in het script met succes uitgevoerd." - -#: classes/Gems/Model/DbaModel.php:440 -msgid " in step " -msgstr " in stap " - -#: classes/Gems/Model/DbaModel.php:445 -#, php-format -msgid "No script for %1$s." -msgstr "Geen script voor %1$s:" - -#: classes/Gems/Export/Spss.php:80 -msgid "Which file" -msgstr "Kies bestand" - -#: classes/Gems/Export/Spss.php:81 -msgid "syntax" -msgstr "syntax" - -#: classes/Gems/Export/Spss.php:82 -msgid "data" -msgstr "data" - -#: classes/Gems/Export/Spss.php:86 -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/Export/RespondentExport.php:130 -#, php-format -msgid "Unable to run PDF conversion (%s): \"%s\"" -msgstr "Kan PDF conversie (%s) niet starten: \"%s\"" - -#: classes/Gems/Export/RespondentExport.php:186 -msgid "Survey" -msgstr "Vragenlijst" - -#: classes/Gems/Export/RespondentExport.php:187 -msgid "Round" -msgstr "Ronde" - -#: classes/Gems/Export/RespondentExport.php:189 -msgid "Status" -msgstr "Status" - -#: classes/Gems/Export/RespondentExport.php:200 -msgid "Single Survey" -msgstr "Losse vragenlijst" - -#: classes/Gems/Export/RespondentExport.php:246 -msgid "Description" -msgstr "Omschrijving" - -#: classes/Gems/Export/RespondentExport.php:247 -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/Export/RespondentExport.php:248 -msgid "Assigned by" -msgstr "Toewijzer" - -#: classes/Gems/Export/RespondentExport.php:249 -msgid "Start" -msgstr "Aanvang" - -#: classes/Gems/Export/RespondentExport.php:253 -msgid "Comment" -msgstr "Opmerkingen" - -#: classes/Gems/Export/RespondentExport.php:261 -msgid "Track information" -msgstr "Traject informatie" - -#: classes/Gems/Export/RespondentExport.php:324 -msgid "Group surveys" -msgstr "Groepeer vragenlijsten" - -#: classes/Gems/Export/RespondentExport.php:329 -msgid "Output format" -msgstr "Uitvoerformaat" - -#: classes/Gems/Util/Translated.php:81 -msgid "-" -msgstr "n.v.t." - -#: classes/Gems/Util/Translated.php:96 -msgid "forever" -msgstr "altijd" - -#: classes/Gems/Util/Translated.php:105 -msgid "n/a" -msgstr "n.v.t." - -#: classes/Gems/Util/Translated.php:114 -msgid "never" -msgstr "nooit" - -#: classes/Gems/Util/Translated.php:139 -msgid "2 days ago" -msgstr "Eergisteren" - -#: classes/Gems/Util/Translated.php:142 -msgid "Yesterday" -msgstr "Gisteren" - -#: classes/Gems/Util/Translated.php:145 -msgid "Today" -msgstr "Vandaag" - -#: classes/Gems/Util/Translated.php:148 -msgid "Tomorrow" -msgstr "Morgen" - -#: classes/Gems/Util/Translated.php:151 -msgid "Over 2 days" -msgstr "Overmorgen" - -#: classes/Gems/Util/Translated.php:156 -#, php-format -msgid "Over %d days" -msgstr "Over %d dagen" - -#: classes/Gems/Util/Translated.php:158 -#, php-format -msgid "%d days ago" -msgstr "%d dagen terug" - -#: classes/Gems/Util/Translated.php:186 -#, php-format -msgid "%d days %d:%s:%s" -msgstr "%d dagen %d:%s:%s" - -#: classes/Gems/Util/Translated.php:188 -#, php-format -msgid "%d:%s:%s" -msgstr "%d:%s:%s" - -#: classes/Gems/Util/Translated.php:190 -#, php-format -msgid "%d:%s" -msgstr "%d:%s" - -#: classes/Gems/Util/Translated.php:202 -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:203 -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:204 -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:229 -msgid "Male" -msgstr "Man" - -#: classes/Gems/Util/Translated.php:229 -msgid "Female" -msgstr "Vrouw" - -#: classes/Gems/Util/Translated.php:229 -msgid "Unknown" -msgstr "Onbekend" - -#: classes/Gems/Util/Translated.php:242 -msgid "mr." -msgstr "meneer" - -#: classes/Gems/Util/Translated.php:242 -msgid "mrs." -msgstr "mevrouw" - -#: classes/Gems/Util/Translated.php:242 -msgid "mr./mrs." -msgstr "heer/mevrouw" - -#: classes/Gems/Util/Translated.php:255 -msgid "Mr." -msgstr "De heer" - -#: classes/Gems/Util/Translated.php:255 -msgid "Mrs." -msgstr "Mevrouw" - -#: classes/Gems/Util/Translated.php:255 -msgid "Mr./Mrs." -msgstr "De heer/Mevrouw" - -#: classes/Gems/Util/Translated.php:263 -msgid "Yes" -msgstr "Ja" - -#: classes/Gems/Util/Translated.php:263 -#: classes/Gems/Util/ReceptionCodeLibrary.php:99 -#: classes/Gems/Util/ReceptionCodeLibrary.php:123 -msgid "No" -msgstr "Nee" - -#: classes/Gems/Util/TrackData.php:147 -msgid "Active" -msgstr "Actief" - -#: classes/Gems/Util/TrackData.php:147 -msgid "Inactive" -msgstr "Inactief" - -#: classes/Gems/Util/DbLookup.php:370 -msgid "inactive" -msgstr "inactief" - -#: classes/Gems/Util/DbLookup.php:371 -msgid "source inactive" -msgstr "bron inactief" - -#: classes/Gems/Util/ReceptionCodeLibrary.php:100 -msgid "Yes (forget answers)" -msgstr "Ja (vergeet antwoorden)" - -#: classes/Gems/Util/ReceptionCodeLibrary.php:101 -msgid "Yes (keep answers)" -msgstr "Ja (met behoud van antwoorden)" - -#: classes/Gems/Util/ReceptionCodeLibrary.php:124 -msgid "Yes (individual surveys only)" -msgstr "Ja (alleen zelfstandige vragenlijsten)" - -#: classes/Gems/Util/ReceptionCodeLibrary.php:125 -msgid "Stop (per respondent or track only)" -msgstr "Stop (alleen per patiënt og traject)" - -#: classes/Gems/Controller/ModelActionAbstract.php:97 -msgid "Cancel" -msgstr "Annuleren" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:239 -#: classes/Gems/Controller/BrowseEditAction.php:356 -#, php-format -msgid "New %s..." -msgstr "Nieuwe %s..." - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:249 -#, php-format -msgid "Do you want to delete this %s?" -msgstr "Weet u zeker dat deze %s verwijderd moet worden?" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:259 -#: classes/Gems/Controller/BrowseEditAction.php:389 -#, php-format -msgid "Delete %s" -msgstr "Verwijder %s" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:269 -#: classes/Gems/Controller/BrowseEditAction.php:412 -#, php-format -msgid "Edit %s" -msgstr "Bewerk %s" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:282 -msgid "No data found." -msgstr "Geen gegevens gevonden." - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:344 -#, php-format -msgid "No %s found..." -msgstr "Geen %s gevonden..." - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:354 -#, php-format -msgid "Showing %s" -msgstr "Toon %s" - -#: classes/Gems/Controller/ModelSnippetActionAbstract.php:390 -msgid "item" -msgid_plural "items" -msgstr[0] "item" -msgstr[1] "items" - -#: classes/Gems/Controller/BrowseEditAction.php:393 -#, php-format -msgid "%2$u %1$s deleted" -msgstr "%2$u %1$s verwijderd" - -#: classes/Gems/Controller/BrowseEditAction.php:410 -#, php-format -msgid "Edit %s %s" -msgstr "Bewerk %s %s" - -#: classes/Gems/Controller/BrowseEditAction.php:513 -msgid "Free search text" -msgstr "Vrije zoek tekst" - -#: classes/Gems/Controller/BrowseEditAction.php:584 -msgid "Search" -msgstr "Zoeken" - -#: classes/Gems/Controller/BrowseEditAction.php:600 -#, php-format -msgid "No %s found" -msgstr "Geen %s gevonden" - -#: classes/Gems/Controller/BrowseEditAction.php:684 -#, php-format -msgid "No %s found." -msgstr "Geen %s gevonden." - -#: classes/Gems/Controller/BrowseEditAction.php:802 -msgid "Are you sure?" -msgstr "Weet u het zeker?" - -#: classes/Gems/Controller/BrowseEditAction.php:872 -#, php-format -msgid "Unknown %s requested" -msgstr "Onjuist %s verzoek" - -#: classes/Gems/Controller/BrowseEditAction.php:895 -#, php-format -msgid "New %1$s..." -msgstr "Nieuwe %1$s..." - -#: classes/Gems/Controller/BrowseEditAction.php:903 -msgid "Save" -msgstr "Opslaan" - -#: classes/Gems/Controller/BrowseEditAction.php:939 -#, php-format -msgid "%2$u %1$s saved" -msgstr "%2$u %1$s opgeslagen" - -#: classes/Gems/Controller/BrowseEditAction.php:942 -msgid "No changes to save." -msgstr "Geen verandering om op te slaan." - -#: classes/Gems/Controller/BrowseEditAction.php:951 -msgid "Input error! No changes saved!" -msgstr "Invoer fout! Veranderingen niet opgeslagen!" - -#: classes/Gems/Controller/BrowseEditAction.php:979 -#, php-format -msgid "Show %s" -msgstr "Toon %s" - -#: classes/Gems/Controller/BrowseEditAction.php:986 -#, php-format -msgid "Unknown %s." -msgstr "%s is onbekend." - -#: classes/Gems/Controller/Action/Helper/BatchRunner.php:65 -msgid "Prepare recheck" -msgstr "Hercontrole voorbereiden" - -#: classes/Gems/Controller/Action/Helper/BatchRunner.php:68 -#, php-format -msgid "Start %s jobs" -msgstr "Start %s opdrachten" - -#: classes/Gems/Controller/Action/Helper/BatchRunner.php:71 -msgid "Nothing to do." -msgstr "Niets te doen." - -#: classes/Gems/Snippets/TokenModelSnippetAbstract.php:59 -msgid "+" -msgstr "+" - -#: classes/Gems/Snippets/RespondentDetailSnippetAbstract.php:141 -#: classes/Gems/Snippets/Export/RespondentSnippet.php:81 -#: classes/Gems/Snippets/Export/RespondentSnippet.php:89 -msgid "Respondent information" -msgstr "Patiënt informatie" - -#: classes/Gems/Snippets/RespondentDetailSnippetAbstract.php:144 -#, php-format -msgid "%s respondent information" -msgstr "%s patiënt informatie" - -#: classes/Gems/Snippets/Export/ReportHeaderSnippet.php:54 -msgid "Respondent report" -msgstr "Patiënt rapportage" - -#: classes/Gems/Snippets/Export/ReportHeaderSnippet.php:58 -msgid "Report information" -msgstr "Informatie over rapportage" - -#: classes/Gems/Snippets/Export/ReportHeaderSnippet.php:59 -msgid "Generated by" -msgstr "Aangemaakt door" - -#: classes/Gems/Snippets/Export/ReportHeaderSnippet.php:61 -msgid "Generated on" -msgstr "Aangemaakt op" - -#: classes/Gems/Snippets/Export/ReportFooterSnippet.php:55 -msgid "Report generation finished." -msgstr "Rapport is aangemaakt." - -#: classes/Gems/Snippets/Export/RespondentSnippet.php:75 -#, php-format -msgid "Unknown respondent %s" -msgstr "Onbekende patiënt %s" - -#: 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:251 -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:291 -msgid "Preview HTML" -msgstr "Html voorbeeld" - -#: classes/Gems/Email/EmailFormAbstract.php:300 -msgid "Preview text" -msgstr "Tekstvoorbeeld" - -#: classes/Gems/Email/EmailFormAbstract.php:308 -msgid "Template" -msgstr "Sjabloon" - -#: classes/Gems/Email/EmailFormAbstract.php:332 -msgid "Send" -msgstr "Verstuur" - -#: classes/Gems/Email/EmailFormAbstract.php:349 -msgid "Subject" -msgstr "Onderwerp" - -#: classes/Gems/Email/EmailFormAbstract.php:429 -msgid "Input error! No changes made!" -msgstr "Invoer fout! Veranderingen niet uitgevoerd!" - -#: classes/Gems/Email/EmailFormAbstract.php:446 -msgid "Subject:" -msgstr "Onderwerp:" - -#: classes/Gems/Email/EmailFormAbstract.php:474 -msgid "Field" -msgstr "Veld" - -#: classes/Gems/Email/EmailFormAbstract.php:475 -msgid "Value" -msgstr "waarde" - -#: classes/Gems/Email/EmailFormAbstract.php:478 -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: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:229 -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:141 -#: classes/Gems/Email/TemplateMailer.php:263 -msgid "Mail failed to send." -msgstr "Mail sturen mislukt." - -#: classes/Gems/Email/OneMailForm.php:145 -#, php-format -msgid "Sent email to %s." -msgstr "Email naar %s verzonden." - -#: classes/Gems/Email/TemplateMailer.php:283 -#, php-format -msgid "Sent %d e-mails, updated %d tokens." -msgstr "%d emails verzonden en %d kenmerken bijgewerkt." - -#: classes/Gems/Email/TemplateMailer.php:360 -#, php-format -msgid "Invalid e-mail address '%s'." -msgstr "Ongeldig email adres '%s'." - -#: 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/Token.php:956 -msgid "Open" -msgstr "Open" - -#: classes/Gems/Tracker/Token.php:959 -msgid "Completed" -msgstr "Ingevuld" - -#: classes/Gems/Tracker/Token.php:965 -msgid "Missed" -msgstr "Gemist" - -#: classes/Gems/Tracker/Token.php:967 -msgid "Future" -msgstr "Toekomstig" - -#: classes/Gems/Tracker/ChangeTracker.php:64 -#: classes/Gems/Tracker/Engine/TrackEngineAbstract.php:434 -#, php-format -msgid "Checked %d tracks." -msgstr "%d trajecten gecontroleerd." - -#: classes/Gems/Tracker/ChangeTracker.php:67 -#, php-format -msgid "Checked %d tokens." -msgstr "%d kenmerken gecontroleerd." - -#: classes/Gems/Tracker/ChangeTracker.php:72 -#, 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:75 -#, 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/ChangeTrac... [truncated message content] |
From: <gem...@li...> - 2012-07-19 16:56:09
|
Revision: 861 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=861&view=rev Author: matijsdejong Date: 2012-07-19 16:55:57 +0000 (Thu, 19 Jul 2012) Log Message: ----------- AutoFocus.php selectAll can be turned off TableForm uses AutoFocus.php Export can now search on respondent id's and on tracks Modified Paths: -------------- trunk/library/classes/Gems/Default/ExportAction.php trunk/library/classes/Gems/Export.php trunk/library/classes/Gems/Form/TableForm.php trunk/library/classes/Gems/Util/DbLookup.php trunk/library/classes/MUtil/Form/Decorator/AutoFocus.php Modified: trunk/library/classes/Gems/Default/ExportAction.php =================================================================== --- trunk/library/classes/Gems/Default/ExportAction.php 2012-07-19 13:04:48 UTC (rev 860) +++ trunk/library/classes/Gems/Default/ExportAction.php 2012-07-19 16:55:57 UTC (rev 861) @@ -1,4 +1,5 @@ <?php + /** * Copyright (c) 2011, Erasmus MC * All rights reserved. @@ -40,11 +41,17 @@ * @subpackage Default * @copyright Copyright (c) 2011 Erasmus MC * @license New BSD License - * @since Class available since version 1.0 + * @since Class available since version 1.4 */ class Gems_Default_ExportAction extends Gems_Controller_Action { /** + * + * @var Zend_Db_Adapter_Abstract + */ + //public $db; + + /** * @var Gems_Export */ public $export; @@ -64,72 +71,42 @@ $this->export->controller = $this; } - public function getTopic($count = 1) - { - return $this->_('Data'); - } - public function getTopicTitle() + /** + * Convert the submitted form-data to a filter to be used for retrieving the data to export + * + * Now only handles the organization ID and consent codes, but can be extended to + * include track info or perform some checks + * + * @param array $data + * @return array + */ + protected function _getFilter($data) { - return $this->_('Export data'); - } + $filter = array(); + if (isset($data['ids'])) { + $idStrings = $data['ids']; - public function indexAction() - { - $this->initHtml(); - //Hacked around to get a self-refreshing form, quite hardcoded but fine for now - if ($form = $this->processForm()) { - if (!$this->getRequest()->isPost() || $form->getElement('export')->isChecked()) { - if ($form->getElement('export')->isChecked()) { - $data = $form->getValues(); - $this->handleExport($data); - } - $this->html->h3($this->getTopicTitle()); - $div = $this->html->div(array('id' => 'mainform')); - $div[] = $form; - } else { - Zend_Layout::resetMvcInstance(); - $this->html->raw($form->render($this->view)); + $idArray = preg_split('/[\s,;]+/', $idStrings, -1, PREG_SPLIT_NO_EMPTY); - //Now add all onload actions to make the form still work - $actions = $this->view->jQuery()->getOnLoadActions(); - $this->html->raw('<script type="text/javascript">'); - foreach ($actions as $action) { - $this->html->raw($action); - } - $this->html->raw('</script>'); + if ($idArray) { + // Make sure output is OK + // $idArray = array_map(array($this->db, 'quote'), $idArray); + + $filter['respondentid'] = $idArray; } } - } - /** - * Handle the form - * - * @param type $saveLabel - * @param type $data - * @return type - */ - public function processForm($saveLabel = null, $data = null) - { - $request = $this->getRequest(); - - if ($request->isPost()) { - $data = $request->getPost() + (array) $data; + if (isset($data['oid'])) { + $filter['organizationid'] = $data['oid']; } else { - //Set the defaults for the form here - $data = $this->export->getDefaults(); + //Invalid id so when nothing selected... we get nothing + //$filter['organizationid'] = '-1'; } + $filter['consentcode'] = array_diff((array) $this->util->getConsentTypes(), (array) $this->util->getConsentRejected()); - $form = $this->getForm($data); - - //Make the form 'autosubmit' so it can refresh - $form->setAttrib('id', 'autosubmit'); - $form->setAutoSubmit(MUtil_Html::attrib('href', array('action' => 'index', MUtil_Model::TEXT_FILTER => null, 'RouteReset' => true)), 'mainform'); - - if ($data) { - $form->populate($data); - } - return $form; + // Gems_Tracker::$verbose = true; + return $filter; } /** @@ -140,14 +117,28 @@ */ public function getForm(&$data) { - $surveys = $this->loader->getUtil()->getDbLookup()->getSurveysForExport(); - $organizations = $this->loader->getCurrentUser()->getAllowedOrganizations(); + $empty = $this->util->getTranslated()->getEmptyDropdownArray(); + $tracks = $empty + $this->util->getTrackData()->getSteppedTracks(); + $surveys = $this->util->getDbLookup()->getSurveysForExport(isset($data['tid']) ? $data['tid'] : null); + $organizations = $this->loader->getCurrentUser()->getRespondentOrganizations(); $types = $this->export->getExportClasses(); //Create the basic form $form = new Gems_Form_TableForm(); + $form->getDecorator('AutoFocus')->setSelectall(false); //Start adding elements + $element = new Zend_Form_Element_Textarea('ids'); + $element->setLabel($this->_('Respondent id\'s')) + ->setAttrib('cols', 60) + ->setAttrib('rows', 4); + $elements[] = $element; + + $element = new Zend_Form_Element_Select('tid'); + $element->setLabel($this->_('Tracks')) + ->setMultiOptions($tracks); + $elements[] = $element; + $element = new Zend_Form_Element_Select('sid'); $element->setLabel($this->_('Survey')) ->setMultiOptions($surveys); @@ -160,12 +151,11 @@ $survey = $this->loader->getTracker()->getSurvey(intval($data['sid'])); $filter = $this->_getFilter($data); $answers = $survey->getRawTokenAnswerRows($filter); - } else { - $answers = array(); + + $element = new MUtil_Form_Element_Exhibitor('records'); + $element->setValue(sprintf($this->_('%s records found.'), count($answers))); + $elements[] = $element; } - $element = new MUtil_Form_Element_Exhibitor('records'); - $element->setValue(sprintf($this->_('%s records found.'), count($answers))); - $elements[] = $element; $element = new Zend_Form_Element_MultiCheckbox('oid'); $element->setLabel($this->_('Organization')) @@ -213,6 +203,17 @@ return $form; } + public function getTopic($count = 1) + { + return $this->_('Data'); + } + + public function getTopicTitle() + { + return $this->_('Export data'); + } + + /** * Take care of exporting the data * @@ -244,25 +245,69 @@ } } + public function indexAction() + { + $this->initHtml(); + + //Hacked around to get a self-refreshing form, quite hardcoded but fine for now + if ($form = $this->processForm()) { + if (!$this->getRequest()->isPost() || $form->getElement('export')->isChecked()) { + if ($form->getElement('export')->isChecked()) { + $data = $form->getValues(); + $this->handleExport($data); + } + $this->html->h3($this->getTopicTitle()); + $div = $this->html->div(array('id' => 'mainform')); + $div[] = $form; + } else { + // We do not need to return the layout, just the form + $this->disableLayout(); + + // $this->html->append($form); + + $this->html->raw($form->render($this->view)); + + //Now add all onload actions to make the form still work + $actions = $this->view->jQuery()->getOnLoadActions(); + $script = $this->html->script(array('type' => "text/javascript")); + foreach ($actions as $action) { + $script->raw($action); + } + $this->html->raw($this->view->inlineScript()); + // MUtil_Echo::track(htmlentities($script->render($this->view))); + // MUtil_Echo::track(htmlentities($this->view->inlineScript())); + $this->html->raw(MUtil_Echo::out()); + } + } + } + /** - * Convert the submitted form-data to a filter to be used for retrieving the data to export + * Handle the form * - * Now only handles the organization ID and consent codes, but can be extended to - * include track info or perform some checks - * - * @param array $data - * @return array + * @param type $saveLabel + * @param type $data + * @return type */ - public function _getFilter($data) { - $filter = array(); - if (isset($data['oid'])) { - $filter['organizationid'] = $data['oid']; + public function processForm($saveLabel = null, $data = null) + { + $request = $this->getRequest(); + + if ($request->isPost()) { + $data = $request->getPost() + (array) $data; } else { - //Invalid id so when nothing selected... we get nothing - //$filter['organizationid'] = '-1'; + //Set the defaults for the form here + $data = $this->export->getDefaults(); } - $filter['consentcode'] = array_diff((array) $this->util->getConsentTypes(), (array) $this->util->getConsentRejected()); - return $filter; + $form = $this->getForm($data); + + //Make the form 'autosubmit' so it can refresh + $form->setAttrib('id', 'autosubmit'); + $form->setAutoSubmit(MUtil_Html::attrib('href', array('action' => 'index', MUtil_Model::TEXT_FILTER => null, 'RouteReset' => true)), 'mainform'); + + if ($data) { + $form->populate($data); + } + return $form; } } \ No newline at end of file Modified: trunk/library/classes/Gems/Export.php =================================================================== --- trunk/library/classes/Gems/Export.php 2012-07-19 13:04:48 UTC (rev 860) +++ trunk/library/classes/Gems/Export.php 2012-07-19 16:55:57 UTC (rev 861) @@ -1,4 +1,5 @@ <?php + /** * Copyright (c) 2011, Erasmus MC * All rights reserved. Modified: trunk/library/classes/Gems/Form/TableForm.php =================================================================== --- trunk/library/classes/Gems/Form/TableForm.php 2012-07-19 13:04:48 UTC (rev 860) +++ trunk/library/classes/Gems/Form/TableForm.php 2012-07-19 16:55:57 UTC (rev 861) @@ -229,7 +229,8 @@ $decorators = $this->getDecorators(); if (empty($decorators)) { - $this->addDecorator('FormElements') + $this->addDecorator('AutoFocus') + ->addDecorator('FormElements') ->addDecorator(array('table' => 'HtmlTag'), array('tag' => 'table', 'class'=>$class)) ->addDecorator(array('tab' => 'HtmlTag'), array('tag' => 'div', 'class' => 'displayGroup')) ->addDecorator('Form'); Modified: trunk/library/classes/Gems/Util/DbLookup.php =================================================================== --- trunk/library/classes/Gems/Util/DbLookup.php 2012-07-19 13:04:48 UTC (rev 860) +++ trunk/library/classes/Gems/Util/DbLookup.php 2012-07-19 16:55:57 UTC (rev 861) @@ -349,9 +349,10 @@ * As this depends on the kind of source used it is in this method so projects can change to * adapt to their own sources. * + * @param int $trackId Optional track id * @return array */ - public function getSurveysForExport() + public function getSurveysForExport($trackId = null) { // Read some data from tables, initialize defaults... $select = $this->db->select(); @@ -360,7 +361,13 @@ $select->from('gems__surveys') ->join('gems__sources', 'gsu_id_source = gso_id_source') ->where('gso_active = 1') + ->where('gsu_id_survey IN (SELECT gto_id_survey FROM gems__tokens WHERE gto_completion_time IS NOT NULL)') ->order(array('gsu_active DESC', 'gsu_survey_name')); + + if ($trackId) { + $select->where('gsu_id_survey IN (SELECT gro_id_survey FROM gems__rounds WHERE gro_id_track = ?)', $trackId); + } + $result = $this->db->fetchAll($select); if ($result) { Modified: trunk/library/classes/MUtil/Form/Decorator/AutoFocus.php =================================================================== --- trunk/library/classes/MUtil/Form/Decorator/AutoFocus.php 2012-07-19 13:04:48 UTC (rev 860) +++ trunk/library/classes/MUtil/Form/Decorator/AutoFocus.php 2012-07-19 16:55:57 UTC (rev 861) @@ -46,6 +46,13 @@ */ class MUtil_Form_Decorator_AutoFocus extends Zend_Form_Decorator_Abstract { + /** + * When true the code attempts to select the text + * + * @var boolean + */ + protected $selectAll = true; + private function _getFocus($element) { // MUtil_Echo::r(get_class($element)); @@ -92,10 +99,44 @@ if (($view !== null) && ($focus !== null)) { // Use try {} around e.select as nog all elements have a select() function - $script = "e = document.getElementById('$focus'); if (e) {e.focus(); try { if (e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement) {e.select();} } catch (ex) {}}"; + $script = "e = document.getElementById('$focus');"; + if ($this->selectAll) { + $script .= " + if (e) { + e.focus(); + try { + if (e.select) { + e.select(); + } + } catch (ex) {} + }"; + } else { + $script .= " + if (e) { + e.focus(); + if (e.setSelectionRange && e.value) { + var len = e.value.length * 2; + e.setSelectionRange(len, len); + } else { + e.value = e.value + } + }"; + } $view->inlineScript()->appendScript($script); } return $content; } + + /** + * Set the selectAll value + * + * @param type $value + * @return MUtil_Form_Decorator_AutoFocus (continuation pattern) + */ + public function setSelectAll($value = true) + { + $this->selectAll = $value; + return $this; + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-19 13:04:59
|
Revision: 860 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=860&view=rev Author: michieltcs Date: 2012-07-19 13:04:48 +0000 (Thu, 19 Jul 2012) Log Message: ----------- Fix double echo Modified Paths: -------------- trunk/library/classes/Gems/Export/RespondentExport.php Modified: trunk/library/classes/Gems/Export/RespondentExport.php =================================================================== --- trunk/library/classes/Gems/Export/RespondentExport.php 2012-07-19 13:04:06 UTC (rev 859) +++ trunk/library/classes/Gems/Export/RespondentExport.php 2012-07-19 13:04:48 UTC (rev 860) @@ -351,10 +351,10 @@ $filename = 'respondent-export-' . strtolower($respondentId) . '.pdf'; $content = $this->_pdf->convertFromHtml($content); $this->_pdf->echoPdfContent($content, $filename, true); + } else { + echo $content; } - echo $content; - $this->escort->menu->setVisible(true); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-19 13:04:16
|
Revision: 859 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=859&view=rev Author: michieltcs Date: 2012-07-19 13:04:06 +0000 (Thu, 19 Jul 2012) Log Message: ----------- Refactoring: move html to pdf conversion to Gems_Pdf Modified Paths: -------------- trunk/library/classes/Gems/Export/RespondentExport.php trunk/library/classes/Gems/Pdf.php Modified: trunk/library/classes/Gems/Export/RespondentExport.php =================================================================== --- trunk/library/classes/Gems/Export/RespondentExport.php 2012-07-19 11:12:13 UTC (rev 858) +++ trunk/library/classes/Gems/Export/RespondentExport.php 2012-07-19 13:04:06 UTC (rev 859) @@ -43,8 +43,6 @@ */ class Gems_Export_RespondentExport extends Gems_Registry_TargetAbstract { - public $_pdfExportCommand = ""; - protected $_reportFooter = 'Export_ReportFooterSnippet'; protected $_reportHeader = 'Export_ReportHeaderSnippet'; protected $_respondentSnippet = 'Export_RespondentSnippet'; @@ -84,58 +82,22 @@ public $util; public $view; + + /** + * @var Gems_Pdf + */ + protected $_pdf; - public function _($messageid, $locale = null) - { - return $this->translate->_($messageid, $locale); - } - public function afterRegistry() { parent::afterRegistry(); - - // Load the pdf class from the project settings if available - if (isset($this->project->export) && isset($this->project->export['pdfExportCommand'])) { - $this->_pdfExportCommand = $this->project->export['pdfExportCommand']; - } + + $this->_pdf = $this->loader->getPdf(); } - - /** - * Calls 'wkhtmltopdf' to convert HTML to PDF - * - * @param string $content The HTML source - * @return string The converted PDF file - * @throws Exception - */ - protected function _convertToPdf($content) + + public function _($messageid, $locale = null) { - $tempInputFilename = GEMS_ROOT_DIR . '/var/tmp/export-' . md5(time() . rand()) . '.html'; - $tempOutputFilename = GEMS_ROOT_DIR . '/var/tmp/export-' . md5(time() . rand()) . '.pdf'; - - file_put_contents($tempInputFilename, $content); - - if (!file_exists($tempInputFilename)) { - throw new Exception("Unable to create temporary file '{$tempInputFilename}'"); - } - - $command = sprintf($this->_pdfExportCommand, escapeshellarg($tempInputFilename), - escapeshellarg($tempOutputFilename)); - - $lastLine = exec($command, $outputLines, $return); - - if ($return > 0) { - @unlink($tempInputFilename); - @unlink($tempOutputFilename); - - throw new Exception(sprintf($this->_('Unable to run PDF conversion (%s): "%s"'), $command, $lastLine)); - } - - $pdfContents = file_get_contents($tempOutputFilename); - - @unlink($tempInputFilename); - @unlink($tempOutputFilename); - - return $pdfContents; + return $this->translate->_($messageid, $locale); } /** @@ -328,7 +290,7 @@ $element = new Zend_Form_Element_Select('format'); $element->setLabel($this->_('Output format')); $outputFormats = array('html' => 'HTML'); - if (!empty($this->_pdfExportCommand)) { + if ($this->_pdf->hasPdfExport()) { $outputFormats['pdf'] = 'PDF'; $element->setValue('pdf'); } @@ -386,14 +348,9 @@ $content = $this->view->layout->render(); if ($this->_format == 'pdf') { - $content = $this->_convertToPdf($content); $filename = 'respondent-export-' . strtolower($respondentId) . '.pdf'; - - header('Content-Type: application/x-download'); - header('Content-Length: '.strlen($content)); - header('Content-Disposition: inline; filename="'.$filename.'"'); - header('Cache-Control: private, max-age=0, must-revalidate'); - header('Pragma: public'); + $content = $this->_pdf->convertFromHtml($content); + $this->_pdf->echoPdfContent($content, $filename, true); } echo $content; Modified: trunk/library/classes/Gems/Pdf.php =================================================================== --- trunk/library/classes/Gems/Pdf.php 2012-07-19 11:12:13 UTC (rev 858) +++ trunk/library/classes/Gems/Pdf.php 2012-07-19 13:04:06 UTC (rev 859) @@ -52,6 +52,12 @@ */ protected $db; + /** + * + * @var string + */ + protected $_pdfExportCommand = ""; + protected $pageFont = Zend_Pdf_Font::FONT_COURIER; protected $pageFontSize = 12; protected $pageX = 10; @@ -71,6 +77,16 @@ */ protected $translate; + public function afterRegistry() + { + parent::afterRegistry(); + + // Load the pdf class from the project settings if available + if (isset($this->project->export) && isset($this->project->export['pdfExportCommand'])) { + $this->_pdfExportCommand = $this->project->export['pdfExportCommand']; + } + } + protected function addTokenToDocument(Zend_Pdf $pdf, $tokenId, $surveyId) { $token = strtoupper($tokenId); @@ -123,7 +139,17 @@ protected function echoPdf(Zend_Pdf $pdf, $filename, $download = false, $exit = true) { $content = $pdf->render(); + + $this->echoPdfContent($content, $filename, $download); + if ($exit) { + // No further output + exit; + } + } + + public function echoPdfContent($content, $filename, $download = false) + { // MUtil_Echo::track($filename); if ($download) { // Download & save @@ -138,11 +164,6 @@ header('Pragma: public'); echo $content; - - if ($exit) { - // No further output - exit; - } } /** @@ -284,4 +305,50 @@ } throw new Gems_Exception_Coding($msg); } + + /** + * Calls the PDF convertor (wkhtmltopdf / phantom.js) to convert HTML to PDF + * + * @param string $content The HTML source + * @return string The converted PDF file + * @throws Exception + */ + public function convertFromHtml($content) + { + $tempInputFilename = GEMS_ROOT_DIR . '/var/tmp/export-' . md5(time() . rand()) . '.html'; + $tempOutputFilename = GEMS_ROOT_DIR . '/var/tmp/export-' . md5(time() . rand()) . '.pdf'; + + file_put_contents($tempInputFilename, $content); + + if (!file_exists($tempInputFilename)) { + throw new Exception("Unable to create temporary file '{$tempInputFilename}'"); + } + + $command = sprintf($this->_pdfExportCommand, escapeshellarg($tempInputFilename), + escapeshellarg($tempOutputFilename)); + + $lastLine = exec($command, $outputLines, $return); + + if ($return > 0) { + @unlink($tempInputFilename); + @unlink($tempOutputFilename); + + throw new Exception(sprintf($this->_('Unable to run PDF conversion (%s): "%s"'), $command, $lastLine)); + } + + $pdfContents = file_get_contents($tempOutputFilename); + + @unlink($tempInputFilename); + @unlink($tempOutputFilename); + + return $pdfContents; + } + + /** + * @return boolean + */ + public function hasPdfExport() + { + return !empty($this->_pdfExportCommand); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gem...@li...> - 2012-07-19 11:12:23
|
Revision: 858 http://gemstracker.svn.sourceforge.net/gemstracker/?rev=858&view=rev Author: matijsdejong Date: 2012-07-19 11:12:13 +0000 (Thu, 19 Jul 2012) Log Message: ----------- Used http://www.jslint.com/ to clean up and improve js code Modified Paths: -------------- trunk/new_project/htdocs/gems/js/autoSubmitForm.js trunk/new_project/htdocs/gems/js/tableRowKeySelector.js Modified: trunk/new_project/htdocs/gems/js/autoSubmitForm.js =================================================================== --- trunk/new_project/htdocs/gems/js/autoSubmitForm.js 2012-07-19 08:48:00 UTC (rev 857) +++ trunk/new_project/htdocs/gems/js/autoSubmitForm.js 2012-07-19 11:12:13 UTC (rev 858) @@ -9,7 +9,8 @@ // submitUrl: the request url }, - _init: function() { + _init: function () { + "use strict"; var self = this; /* @@ -18,15 +19,16 @@ console.log(this.options.targetId); // Firebug console */ // Bind the events - jQuery('input:text, select, textarea', this.element).keyup(function(e) {self.filter();}); - jQuery('select', this.element).change(function(e) {self.filter();}); - jQuery('input:checkbox, input:radio', this.element).click(function(e) {self.filter();}); + jQuery('input:text, select, textarea', this.element).keyup(function (e) {self.filter(); }); + jQuery('select', this.element).change(function (e) {self.filter(); }); + jQuery('input:checkbox, input:radio', this.element).click(function (e) {self.filter(); }); // Set the initial value this.lastQuery = this.value(); }, complete: function (request, status) { + "use strict"; this.request = null; // Check for changes @@ -37,48 +39,52 @@ this.filter(); }, - destroy: function() { - if (this.request != null) { - this.request.abort(); - this.request = null; - } + destroy: function () { + "use strict"; + if (this.request !== null) { + this.request.abort(); + this.request = null; + } }, error: function (request, status) { + "use strict"; + /* if (request.status === 401) { location.href = location.href; - } + } // */ }, filter: function () { + "use strict"; + var postData, self; //If we have a pending request and want to create a new one, cancel the first this.destroy(); - if (this.request == null) { + if (this.request === null) { // var name = this.options.elementName ? this.options.elementName : this.element.attr('name'); - var postData = this.value(); + postData = this.value(); if (this.options.targetId && this.options.submitUrl) { // Prevent double dipping when e.g. the arrow keys were used. - if (jQuery.param(postData) != jQuery.param(this.lastQuery)) - { + if (jQuery.param(postData) !== jQuery.param(this.lastQuery)) { this.lastQuery = postData; //console.log(postData); //* - var self = this; + self = this; this.request = jQuery.ajax({ url: this.options.submitUrl, type: "POST", dataType: "html", data: postData, - error: function(request, status, error) {self.error(request, status);}, - complete: function(request, status) {self.complete(request, status);}, - success: function(data, status, request) {self.success(data, status, request);} - }); + error: function (request, status, error) {self.error(request, status); }, + complete: function (request, status) {self.complete(request, status); }, + success: function (data, status, request) {self.success(data, status, request); } + }); // */ } } @@ -86,11 +92,13 @@ }, success: function (data, status, request) { + "use strict"; jQuery(this.options.targetId).html(data); }, value: function () { - return $(this.element[0]).serializeArray(); + "use strict"; + return jQuery(this.element[0]).serializeArray(); }, lastQuery: null, Modified: trunk/new_project/htdocs/gems/js/tableRowKeySelector.js =================================================================== --- trunk/new_project/htdocs/gems/js/tableRowKeySelector.js 2012-07-19 08:48:00 UTC (rev 857) +++ trunk/new_project/htdocs/gems/js/tableRowKeySelector.js 2012-07-19 11:12:13 UTC (rev 858) @@ -6,42 +6,47 @@ currentClass: 'currentRow' }, - _init: function() { - var self = this; - jQuery(document).keyup(function(e) {self.listener(e);}); + _init: function () { + "use strict"; + var find, link, keys, name, self, title; + self = this; + jQuery(document).keyup(function (e) {self.listener(e); }); + // Set the title attributes for the keys - var find, link, title; - var keys = {Down: '\u2193', End: 'End', Home: 'Home', Left: '\u2190', PgDn: 'PgDn', PgUp: 'PgUp', Right: '\u2192', Up: '\u2191'}; + keys = {Down: '\u2193', End: 'End', Home: 'Home', Left: '\u2190', PgDn: 'PgDn', PgUp: 'PgUp', Right: '\u2192', Up: '\u2191'}; - for (var name in keys) { - find = 'a.key' + name + '[href]'; - title = keys[name]; - link = jQuery(find, this.element); + for (name in keys) { + if (keys.hasOwnProperty(name)) { + find = 'a.key' + name + '[href]'; + title = keys[name]; + link = jQuery(find, this.element); - if (link.length > 0) { - if (! link.attr('title')) { - link.attr('title', '[' + title + ']'); - // alert(link.attr('title')); + if (link.length > 0) { + if (!link.attr('title')) { + link.attr('title', '[' + title + ']'); + // alert(link.attr('title')); + } } - } - find = 'a.keyCtrl' + name + '[href]'; - link = jQuery(find, this.element); + find = 'a.keyCtrl' + name + '[href]'; + link = jQuery(find, this.element); - if (link.length > 0) { - if (! link.attr('title')) { - link.attr('title', '[Ctrl^' + title + ']'); - // alert(link.attr('title')); + if (link.length > 0) { + if (!link.attr('title')) { + link.attr('title', '[Ctrl^' + title + ']'); + // alert(link.attr('title')); + } } } } }, - listener: function(e) { - var currentItem, key, nextItem; + listener: function (e) { + "use strict"; + var currentItem, key, link, nextItem; - if (e == null) { + if (e === null) { key = event.keyCode; } else { // mozilla key = e.which; @@ -49,102 +54,102 @@ currentItem = jQuery('tr.' + this.options.currentClass + ':first', this.element); - switch(key) { - case 13: // Enter - if (currentItem.length > 0) { - // this.element.after(jQuery('a[href]', currentItem).eq(0).attr('href') + ' enter<br/>'); + switch (key) { + case 13: // Enter + if (currentItem.length > 0) { + // this.element.after(jQuery('a[href]', currentItem).eq(0).attr('href') + ' enter<br/>'); + e.stopPropagation(); + location.href = jQuery('a[href]', currentItem).eq(0).attr('href'); + return; + } + break; + + case 33: // PgUp + link = jQuery('a.keyPgUp[href]', this.element); + if (link.length > 0) { + e.stopPropagation(); + location.href = link.attr('href'); + return; + } + nextItem = jQuery('tbody > tr:first', this.element); + break; + + case 34: // PgDn + link = jQuery('a.keyPgDn[href]', this.element); + if (link.length > 0) { + e.stopPropagation(); + location.href = link.attr('href'); + return; + } + nextItem = jQuery('tbody > tr:last', this.element); + break; + + case 35: // End + if (e.ctrlKey) { + nextItem = jQuery('tbody > tr:last', this.element); + } else { + link = jQuery('a.keyEnd[href]', this.element); + if (link.length > 0) { e.stopPropagation(); - location.href = jQuery('a[href]', currentItem).eq(0).attr('href'); + location.href = link.attr('href'); return; } - break; - - case 33: // PgUp - var link = jQuery('a.keyPgUp[href]', this.element); + nextItem = jQuery('tbody > tr:last', this.element); + } + break; + + case 36: // Home + if (e.ctrlKey) { + nextItem = jQuery('tbody > tr:first', this.element); + } else { + link = jQuery('a.keyHome[href]', this.element); if (link.length > 0) { e.stopPropagation(); location.href = link.attr('href'); return; } nextItem = jQuery('tbody > tr:first', this.element); - break; + } + break; - case 34: // PgDn - var link = jQuery('a.keyPgDn[href]', this.element); + case 38: // Up + if (e.ctrlKey) { + link = jQuery('a.keyCtrlUp[href]', this.element); if (link.length > 0) { e.stopPropagation(); location.href = link.attr('href'); return; } + } + + if (currentItem.length === 0) { nextItem = jQuery('tbody > tr:last', this.element); - break; + } else { + nextItem = currentItem.prev(); + } + // this.element.after('up<br/>'); + break; - case 35: // End - if (e.ctrlKey) { - nextItem = jQuery('tbody > tr:last', this.element); - } else { - var link = jQuery('a.keyEnd[href]', this.element); - if (link.length > 0) { - e.stopPropagation(); - location.href = link.attr('href'); - return; - } - nextItem = jQuery('tbody > tr:last', this.element); + case 40: // down + if (e.ctrlKey) { + link = jQuery('a.keyCtrlDown[href]', this.element); + if (link.length > 0) { + e.stopPropagation(); + location.href = link.attr('href'); + return; } - break; - - case 36: // Home - if (e.ctrlKey) { - nextItem = jQuery('tbody > tr:first', this.element); - } else { - var link = jQuery('a.keyHome[href]', this.element); - if (link.length > 0) { - e.stopPropagation(); - location.href = link.attr('href'); - return; - } - nextItem = jQuery('tbody > tr:first', this.element); - } - break; + } - case 38: // Up - if (e.ctrlKey) { - var link = jQuery('a.keyCtrlUp[href]', this.element); - if (link.length > 0) { - e.stopPropagation(); - location.href = link.attr('href'); - return; - } - } - - if (currentItem.length == 0) { - nextItem = jQuery('tbody > tr:last', this.element); - } else { - nextItem = currentItem.prev(); - } - // this.element.after('up<br/>'); - break; - - case 40: // down - if (e.ctrlKey) { - var link = jQuery('a.keyCtrlDown[href]', this.element); - if (link.length > 0) { - e.stopPropagation(); - location.href = link.attr('href'); - return; - } - } - - if (currentItem.length == 0) { - nextItem = jQuery('tbody > tr:first', this.element); - } else { - nextItem = currentItem.next(); - } - // this.element.after('down<br/>'); - break; + if (currentItem.length === 0) { + nextItem = jQuery('tbody > tr:first', this.element); + } else { + nextItem = currentItem.next(); + } + // this.element.after('down<br/>'); + break; } - if ((nextItem != null) && (nextItem.length > 0)) { + if ((nextItem !== null) && (nextItem.length > 0)) { if (currentItem.length) { currentItem.removeClass(this.options.currentClass); } @@ -152,4 +157,4 @@ nextItem.addClass(this.options.currentClass); } } -}); +}); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |