Example #1
0
 /**
  * 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');
 }
Example #5
0
 /**
  * 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);
 }
Example #6
0
 /**
  * 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;
 }
Example #7
0
 /**
  * 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'));
 }