Skip to content

Commit

Permalink
DEV: implemented all functions from questionedit.php and changed all …
Browse files Browse the repository at this point in the history
…old links to new QuestionEditorController.php
  • Loading branch information
Trischi80 committed Jun 2, 2020
1 parent fa276e1 commit 50db2fc
Show file tree
Hide file tree
Showing 14 changed files with 153 additions and 176 deletions.
96 changes: 91 additions & 5 deletions application/controllers/QuestionEditorController.php
Expand Up @@ -329,7 +329,7 @@ public function actionSaveQuestionData($sid)
gT('Question has been stored, but an error happened: ')."\n".$ex->getMessage(),
0,
App()->createUrl(
'admin/questioneditor/sa/view/',
'questionEditor/view/',
["surveyid"=> $oQuestion->sid, 'gid' => $oQuestion->gid, 'qid'=> $oQuestion->qid]
)
);
Expand All @@ -338,7 +338,7 @@ public function actionSaveQuestionData($sid)
// Compile the newly stored data to update the FE
$oNewQuestion = Question::model()->findByPk($oQuestion->qid);
$aCompiledQuestionData = $this->getCompiledQuestionData($oNewQuestion);
$aQuestionAttributeData = $this->getQuestionAttributeData($oQuestion->qid, true);
$aQuestionAttributeData = QuestionAttribute::model()->getQuestionAttributes($oQuestion->qid);
$aQuestionGeneralOptions = $this->getGeneralOptions($oQuestion->qid, null, $oQuestion->gid, $aQuestionAttributeData['question_template']);
$aAdvancedOptions = $this->getAdvancedOptions($oQuestion->qid, null, true);

Expand All @@ -358,8 +358,8 @@ function ($coll, $it) {
),
'successDetail' => $setApplied,
'questionId' => $oQuestion->qid,
'redirect' => $this->getController()->createUrl(
'admin/questioneditor/sa/view/',
'redirect' => $this->createUrl(
'questionEditor/view/',
[
'surveyid' => $iSurveyId,
'gid' => $oQuestion->gid,
Expand Down Expand Up @@ -550,6 +550,92 @@ public function actionGetQuestionPermissions($iQuestionId = null)
$this->renderJSON($aPermissions);
}

/**
* Renders a JSON document of the question attribute array
*
* @param int $iQuestionId
*
* @return void|array
* @throws CException
*/
protected function actionGetQuestionAttributeData($iQuestionId = null)
{
$aQuestionAttributes = QuestionAttribute::model()->getQuestionAttributes((int) $iQuestionId);
$this->renderJSON($aQuestionAttributes);
}

/**
* Returns a json document containing the question types
*
* @return void
*/
public function actionGetQuestionTypeList()
{
$this->renderJSON(QuestionType::modelsAttributes());
}

/**
* @todo document me.
*
* @param string $sQuestionType
* @return void
*/
public function actionGetQuestionTypeInformation($sQuestionType)
{
$aTypeInformations = QuestionType::modelsAttributes();
$aQuestionTypeInformation = $aTypeInformations[$sQuestionType];

$this->renderJSON($aQuestionTypeInformation);
}

/**
* Renders the top bar definition for questions as JSON document
*
* @param int $qid
* @return false|null|string|string[]
* @throws CException
*/
public function actionGetQuestionTopbar($qid = null)
{
$oQuestion = $this->getQuestionObject($qid);
$sid = $oQuestion->sid;
$gid = $oQuestion->gid;
$qid = $oQuestion->qid;
// TODO: Rename Variable for better readability.
$qtypes = QuestionType::modelsAttributes();
// TODO: Rename Variable for better readability.
$qrrow = $oQuestion->attributes;
$ownsSaveButton = true;
$ownsImportButton = true;

$hasCopyPermission = Permission::model()->hasSurveyPermission($sid, 'surveycontent', 'create');
$hasUpdatePermission = Permission::model()->hasSurveyPermission($sid, 'surveycontent', 'update');
$hasExportPermission = Permission::model()->hasSurveyPermission($sid, 'surveycontent', 'export');
$hasDeletePermission = Permission::model()->hasSurveyPermission($sid, 'surveycontent', 'delete');
$hasReadPermission = Permission::model()->hasSurveyPermission($sid, 'surveycontent', 'read');

return $this->renderPartial(
'/admin/survey/topbar/question_topbar',
array(
'oSurvey' => $oQuestion->survey,
'sid' => $sid,
'hasCopyPermission' => $hasCopyPermission,
'hasUpdatePermission' => $hasUpdatePermission,
'hasExportPermission' => $hasExportPermission,
'hasDeletePermission' => $hasDeletePermission,
'hasReadPermission' => $hasReadPermission,
'gid' => $gid,
'qid' => $qid,
'qrrow' => $qrrow,
'qtypes' => $qtypes,
'ownsSaveButton' => $ownsSaveButton,
'ownsImportButton' => $ownsImportButton,
),
false,
false
);
}


/** ++++++++++++ the following functions should be moved to model or a service class ++++++++++++++++++++++++++ */

Expand Down Expand Up @@ -1120,7 +1206,6 @@ private function applyI10NSubquestion($oQuestion, $dataSet)
/**
* @todo document me
*
* REFACTORED in QuestionEditorController
*
* @param Question $oQuestion
* @param array $dataSet
Expand Down Expand Up @@ -1230,4 +1315,5 @@ private function applyAnswerI10N($oAnswer, $oQuestion, $dataSet)

return true;
}

}
2 changes: 1 addition & 1 deletion application/controllers/admin/database.php
Expand Up @@ -833,7 +833,7 @@ private function actionUpdateQuestion($iSurveyID)
$this->getController()->redirect(array('admin/questions/sa/view/surveyid/'.$iSurveyID.'/gid/'.$this->iQuestionGroupID.'/qid/'.$this->iQuestionID));
} else {
// Redirect to edit
$this->getController()->redirect(array('admin/questioneditor/sa/view/surveyid/'.$iSurveyID.'/gid/'.$this->iQuestionGroupID.'/qid/'.$this->iQuestionID));
$this->getController()->redirect(array('questionEditor/view/surveyid/'.$iSurveyID.'/gid/'.$this->iQuestionGroupID.'/qid/'.$this->iQuestionID));
// This works too: $this->getController()->redirect(Yii::app()->request->urlReferrer);
}
}
Expand Down
18 changes: 18 additions & 0 deletions application/controllers/admin/questionedit.php
Expand Up @@ -491,6 +491,8 @@ public function getQuestionPermissions($iQuestionId = null)
/**
* Either renders a JSON document of the question attribute array, or returns it
*
* REFACTORED in QuestionEditorController
*
* @param int $iQuestionId
* @param boolean $returnArray | If true returns array
*
Expand All @@ -510,6 +512,8 @@ protected function getQuestionAttributeData($iQuestionId = null, $returnArray =
/**
* Returns a json document containing the question types
*
* REFACTORED in QuestionEditorController
*
* @return void
*/
public function getQuestionTypeList()
Expand All @@ -520,6 +524,8 @@ public function getQuestionTypeList()
/**
* @todo document me.
*
* REFACTORED in QuestionEditorController
*
* @param string $sQuestionType
* @return void
*/
Expand All @@ -534,6 +540,8 @@ public function getQuestionTypeInformation($sQuestionType)
/**
* @todo document me
*
* REFACTORED in QuestionEditorController
*
* @param int $iQuestionId
* @param string $sQuestionType
* @param int $gid
Expand Down Expand Up @@ -605,6 +613,8 @@ public function getAdvancedOptions(
/**
* Live preview rendering
*
* NOT REFACTORED !!!
*
* @param int $iQuestionId
* @param string $sLanguage
* @param boolean $root
Expand Down Expand Up @@ -720,6 +730,8 @@ public function getRenderedPreview($iQuestionId, $sLanguage, $root = false)
/**
* Renders the top bar definition for questions as JSON document
*
* REFACTORED in QuestionEditorController
*
* @param int $qid
* @return void
* @throws CException
Expand Down Expand Up @@ -770,6 +782,8 @@ public function getQuestionTopbar($qid = null)
* This is either an instance of the placeholder model QuestionCreate for new questions,
* or of Question for already existing ones
*
* REFACTORED in QuestionEditorController
*
* @param int $iQuestionId
* @param string $sQuestionType
* @param int $gid
Expand Down Expand Up @@ -1338,6 +1352,8 @@ private function storeAnswerOptions(&$oQuestion, $dataSet, $isCopyProcess = fals
/**
* @todo document me.
*
* REFACTORED in QuestionEditorController
*
* @param Question $oQuestion
* @return array
*/
Expand Down Expand Up @@ -1422,6 +1438,8 @@ private function getCompiledSurveyInfo(&$oQuestion) {
/**
* Renders template(s) wrapped in header and footer
*
* NOT REFACTORED!!!
*
* @param string $sAction Current action, the folder to fetch views from
* @param string|array $aViewUrls View url(s)
* @param array $aData Data to be passed on. Optional.
Expand Down
4 changes: 2 additions & 2 deletions application/controllers/admin/questiongroups.php
Expand Up @@ -356,11 +356,11 @@ public function view($surveyid, $gid, $landOnSideMenuTab = 'structure')
['sid' => $iSurveyID, 'sa' => '']
),
'openQuestionUrl' => $this->getController()->createUrl(
'admin/questioneditor/sa/view/',
'questionEditor/view/',
['surveyid'=>$iSurveyID, 'gid'=>$gid, 'qid' => '']
),
'createQuestionUrl' => $this->getController()->createUrl(
"admin/questioneditor/sa/view/",
"questionEditor/view/",
["surveyid" => $surveyid, 'gid' => $gid]
),
'i10N' => [
Expand Down
11 changes: 6 additions & 5 deletions application/controllers/admin/questions.php
Expand Up @@ -29,15 +29,16 @@
class questions extends Survey_Common_Action
{

/**
public function view($surveyid, $gid, $qid)
{
//todo change the url for action view in QuestionEditorController OR better remove this action completely ...
$this->getController()->redirect(Yii::app()->createUrl('admin/questioneditor/sa/view/', ['surveyid' => $surveyid, 'gid' => $gid, 'qid' => $qid ]));
$this->getController()->redirect(Yii::app()->createUrl('questionEditor/view/', ['surveyid' => $surveyid, 'gid' => $gid, 'qid' => $qid ]));
return;
// TODO: Delete this code in the future?
//code removed... this action is called in questionedit.php, after refactoring this will be in QuestionEditorController
}
}*/

/**
* Display import view
Expand Down Expand Up @@ -154,7 +155,7 @@ public function import()
App()->setFlashMessage(gT("Question imported successfully"), 'success');
$this->getController()->redirect(
App()->createUrl(
'admin/questioneditor/sa/view/',
'questionEditor/view/',
[
'surveyid' => $iSurveyID,
'gid' => $gid,
Expand Down Expand Up @@ -360,7 +361,7 @@ public function editdefaultvalues($surveyid, $gid, $qid)
$aData['topBar']['showSaveButton'] = true;
$aData['topBar']['showCloseButton'] = true;
$aData['topBar']['closeButtonUrl'] = $this->getController()->createUrl(
'admin/questioneditor/sa/view/',
'questionEditor/view/',
['sid' => $iSurveyID, 'gid' => $gid, 'qid' => $qid]
);
$aData['hasUpdatePermission'] =
Expand Down Expand Up @@ -902,7 +903,7 @@ public function newquestion($surveyid, $gid = null)
}
return $this->getController()->redirect(
App()->createUrl(
'admin/questioneditor/sa/view',
'questionEditor/view',
[
'surveyid' => $surveyid,
'gid' => $gid,
Expand Down
6 changes: 3 additions & 3 deletions application/controllers/admin/surveyadmin.php
Expand Up @@ -569,8 +569,8 @@ public function getAjaxQuestionGroupArray($surveyid)
foreach ($group->aQuestions as $question) {
if (is_object($question)) {
$curQuestion = $question->attributes;
$curQuestion['link'] = $this->getController()->createUrl("admin/questioneditor/sa/view", ['surveyid' => $surveyid, 'gid' => $group->gid, 'qid'=>$question->qid]);
$curQuestion['editLink'] = $this->getController()->createUrl("admin/questioneditor/sa/view", ['surveyid' => $surveyid, 'gid' => $group->gid, 'qid'=>$question->qid]);
$curQuestion['link'] = $this->getController()->createUrl("questionEditor/view", ['surveyid' => $surveyid, 'gid' => $group->gid, 'qid'=>$question->qid]);
$curQuestion['editLink'] = $this->getController()->createUrl("questionEditor/view", ['surveyid' => $surveyid, 'gid' => $group->gid, 'qid'=>$question->qid]);
$curQuestion['hidden'] = isset($question->questionattributes['hidden']) && !empty($question->questionattributes['hidden']->value);
$questionText = isset($question->questionl10ns[$baselang])
? $question->questionl10ns[$baselang]->question
Expand Down Expand Up @@ -2135,7 +2135,7 @@ public function insert($iSurveyID = null)
*/
public function getSurveyAndSidemenueDirectionURL($sid, $gid, $qid, $landOnSideMenuTab)
{
$url = 'admin/questioneditor/sa/view/';
$url = 'questionEditor/view/';
$params = [
'surveyid' => $sid,
'gid' => $gid,
Expand Down
2 changes: 1 addition & 1 deletion application/models/Question.php
Expand Up @@ -614,7 +614,7 @@ public function getbuttons()
$url .= '/'.$this->sid.'/gid/'.$this->gid.'/qid/'.$this->qid;
$previewUrl = Yii::app()->createUrl("survey/index/action/previewquestion/sid/");
$previewUrl .= '/'.$this->sid.'/gid/'.$this->gid.'/qid/'.$this->qid;
$editurl = Yii::app()->createUrl("admin/questioneditor/sa/view/surveyid/$this->sid/gid/$this->gid/qid/$this->qid");
$editurl = Yii::app()->createUrl("questionEditor/view/surveyid/$this->sid/gid/$this->gid/qid/$this->qid");
$button = '<a class="btn btn-default open-preview" data-toggle="tooltip" title="'.gT("Question preview").'" aria-data-url="'.$previewUrl.'" aria-data-sid="'.$this->sid.'" aria-data-gid="'.$this->gid.'" aria-data-qid="'.$this->qid.'" aria-data-language="'.$this->survey->language.'" href="#" role="button" ><span class="fa fa-eye" ></span></a> ';

if (Permission::model()->hasSurveyPermission($this->sid, 'surveycontent', 'update')) {
Expand Down
2 changes: 1 addition & 1 deletion application/views/layouts/sidemenu.php
Expand Up @@ -19,7 +19,7 @@
$getQuestionsUrl = $this->createUrl("/admin/survey/sa/getAjaxQuestionGroupArray/", ["surveyid" => $surveyid]);
$getMenuUrl = $this->createUrl("/admin/survey/sa/getAjaxMenuArray/", ["surveyid" => $surveyid]);
$createQuestionGroupLink = $this->createUrl("admin/questiongroups/sa/add/", ["surveyid" => $surveyid]);
$createQuestionLink = "admin/questioneditor/sa/view/surveyid/".$surveyid;
$createQuestionLink = "questionEditor/view/surveyid/".$surveyid;
$unlockLockOrganizerUrl = $this->createUrl("admin/user/sa/togglesetting/", ['surveyid' => $surveyid]);

$updateOrderLink = $this->createUrl("admin/questiongroups/sa/updateOrder/", ["surveyid" => $surveyid]);
Expand Down

Large diffs are not rendered by default.

0 comments on commit 50db2fc

Please sign in to comment.