/** * Index action, either allows you to pick a model, or, if a model is selected already, * redirects to the edit action */ public function indexAction() { $session = new Zend_Session_Namespace('login'); if (isset($session->compareModelID)) { } $this->view->questionnaires = QuestionnaireModel::getAllQuestionnaires(); $this->view->selected = $this->_getParam('questionnaire'); if ($this->view->selected === null) { $this->view->models = null; } else { $questionnaire = new QuestionnaireModel(array('questionnaireID' => $this->view->selected, 'depth' => 'page')); $this->view->models = ModelModel::getAllModels($questionnaire); while ($instance = $questionnaire->nextInstance()) { while ($page = $instance->nextPage()) { if ($this->_user->hasAnyAccess($page)) { $allowedInstances[] = $instance; break; } } } if (isset($allowedInstances)) { $this->view->instances = $allowedInstances; } } }
/** * Index action. Presents the Questionnaire Management page to the user. */ public function indexAction() { $session = new Zend_Session_Namespace('login'); $questionnaireID = $this->_hasParam('questionnaire') ? $this->_getParam('questionnaire') : $session->dataQuestionnaireID; if (is_numeric($questionnaireID) && $questionnaireID > 0) { $this->view->dataQuestionnaire = new QuestionnaireModel(array('questionnaireID' => $questionnaireID, 'depth' => 'questionnaire')); } else { $questionnaireID = null; } $session->dataQuestionnaireID = $questionnaireID; $this->view->dataQuestionnaireID = $session->dataQuestionnaireID; $questionnaires = QuestionnaireModel::getAllQuestionnaires('page'); $allowedInstances = array(); foreach ($questionnaires as $questionnaire) { while ($instance = $questionnaire->nextInstance()) { while ($page = $instance->nextPage()) { if ($this->_user->hasAnyAccess($page)) { $allowedInstances[] = $instance; break; } } } } $this->view->dataInstances = $allowedInstances; $this->view->cryptoID = $this->_hasParam('cryptoID') ? $this->_getParam('cryptoID') : null; $this->view->decryptID = $this->_hasParam('decryptID') ? $this->_getParam('decryptID') : null; }
/** * Refresh all questionnaire signatures */ private function refreshSignatures() { $this->auth(); $questionnaires = QuestionnaireModel::getAllQuestionnaires(); foreach ($questionnaires as $questionnaire) { $questionnaire->refreshSignature(); } QFrame_Db_Table::reset('questionnaire'); }
public function down() { // remove any default instances that exist $this->auth(); foreach (QuestionnaireModel::getAllQuestionnaires('instance') as $questionnaire) { $default = $questionnaire->getDefaultInstance(); if ($default !== null) { $default->delete(); } } // now actually remove the column $this->removeColumn('instance', 'hidden'); }
/** * Generates a drop down box listing all questionnaires * * @param integer current questionnaire (or null if no current questionnaire) * @param string element name * @return string */ public function questionnaireSelect($questionnaireID = null, $name = 'questionnaire') { if ($questionnaireID === null) { $options[0] = ' '; } $questionnaires = QuestionnaireModel::getAllQuestionnaires(); foreach ($questionnaires as $questionnaire) { $questionnaireName = $this->view->h($questionnaire->questionnaireName); $questionnaireVersion = $this->view->h($questionnaire->questionnaireVersion); $revision = $this->view->h($questionnaire->revision); if (!isset($options[$questionnaire->questionnaireID])) { $options[$questionnaire->questionnaireID] = "{$questionnaireName} {$questionnaireVersion}"; if ($revision != 1) { $options[$questionnaire->questionnaireID] .= " r. {$revision}"; } } } return $this->view->formSelect($name, $questionnaireID, null, $options); }
/** * Index action. Presents the dashboard to the user. */ public function indexAction() { $instanceID = $this->_hasParam('instance') ? $this->_getParam('instance') : null; $questionnaireID = $this->_hasParam('questionnaire') ? $this->_getParam('questionnaire') : null; if (is_numeric($instanceID) && $instanceID != 0) { $session = new Zend_Session_Namespace('login'); $session->instanceID = intVal($instanceID); $this->_redirector->gotoRouteAndExit(array('controller' => 'index'), null, true); } $questionnaires = QuestionnaireModel::getAllQuestionnaires('page'); $allowedInstances = array(); foreach ($questionnaires as $questionnaire) { while ($instance = $questionnaire->nextInstance()) { while ($page = $instance->nextPage()) { if ($this->_user->hasAnyAccess($page)) { $allowedInstances[] = $instance; break; } } } } $this->view->instances = $allowedInstances; $this->view->questionnaire = $questionnaireID; }
/** * Permissions action. Presents a list of permissions that can be assigned * to a role. */ public function permissionsAction() { // if this is a post request, just go ahead and update permissions if ($this->getRequest()->isPost()) { $this->updatePermissions(); } $session = new Zend_Session_Namespace('login'); $origQuestionnaireID = $session->questionnaireID; $origInstanceID = $session->instanceID; if ($this->_hasParam('questionnaire')) { $session->questionnaireID = $this->_getParam('questionnaire'); if ($this->_hasParam('instance') && is_numeric($this->_getParam('instance')) && $this->_getParam('instance') > 0) { $session->instanceID = $this->_getParam('instance'); } else { unset($session->instanceID); } if ($origQuestionnaireID != $this->_getParam('questionnaire')) { unset($session->instanceID); } $this->_redirector->gotoRoute(array('action' => 'permissions', 'id' => $this->_getParam('id'))); } $questionnaires = QuestionnaireModel::getAllQuestionnaires('page'); $allowedInstances = array(); foreach ($questionnaires as $questionnaire) { while ($instance = $questionnaire->nextInstance()) { while ($page = $instance->nextPage()) { if ($this->_user->hasAnyAccess($page)) { $allowedInstances[] = $instance; break; } } } } $this->view->instances = $allowedInstances; $this->view->questionnaire = $session->questionnaireID; $this->view->instance = $session->instanceID; $this->view->role = RoleModel::find($this->_getParam('id')); }