From 71dae9a6663ed4d4857bb1dbad419ff6f6bac959 Mon Sep 17 00:00:00 2001 From: LouisGac Date: Fri, 27 Nov 2015 10:55:42 +0100 Subject: [PATCH] Dev: Organize question groups/questions save buttons --- application/controllers/admin/surveyadmin.php | 28 +++++++++++++------ .../survey/Question/questionbar_view.php | 9 ++++++ .../QuestionGroups/nquestiongroupbar_view.php | 1 + .../organizeGroupsAndQuestions_view.php | 7 +++-- scripts/admin/organize.js | 20 +------------ 5 files changed, 35 insertions(+), 30 deletions(-) diff --git a/application/controllers/admin/surveyadmin.php b/application/controllers/admin/surveyadmin.php index d20c8cd6b65..0baccfffb94 100644 --- a/application/controllers/admin/surveyadmin.php +++ b/application/controllers/admin/surveyadmin.php @@ -68,7 +68,7 @@ public function listsurveys() } $model->active = null; - + // Filter state if (isset($_GET['active'])) { @@ -1263,8 +1263,9 @@ private function _showReorderForm($iSurveyID) $aGrouplist = QuestionGroup::model()->getGroups($iSurveyID); $initializedReplacementFields = false; - $aData['organizebar']['returnbutton']['url'] = $this->getController()->createUrl("admin/survey/sa/view/", array('surveyid' => $iSurveyID)); - $aData['organizebar']['returnbutton']['text'] = gT('return to survey summary'); + $aData['organizebar']['savebuttonright'] = true; + //$aData['organizebar']['returnbutton']['url'] = $this->getController()->createUrl("admin/survey/sa/view/", array('surveyid' => $iSurveyID)); + //$aData['organizebar']['returnbutton']['text'] = gT('return to survey summary'); foreach ($aGrouplist as $iGID => $aGroup) { @@ -1303,6 +1304,7 @@ private function _reorderGroup($iSurveyID) { $AOrgData = array(); parse_str($_POST['orgdata'], $AOrgData); + $grouporder = 0; foreach ($AOrgData['list'] as $ID => $parent) { @@ -1312,18 +1314,26 @@ private function _reorderGroup($iSurveyID) } elseif ($ID[0] == 'q') { - if (!isset($questionorder[(int)substr($parent, 1)])) - $questionorder[(int)substr($parent, 1)] = 0; - - Question::model()->updateAll(array('question_order' => $questionorder[(int)substr($parent, 1)], 'gid' => (int)substr($parent, 1)), 'qid=:qid', array(':qid' => (int)substr($ID, 1))); + $qid = (int)substr($ID, 1); + $gid = (int)substr($parent, 1); + if (!isset($aQuestionOrder[$gid])) + $aQuestionOrder[$gid] = 0; - Question::model()->updateAll(array('gid' => (int)substr($parent, 1)), 'parent_qid=:parent_qid', array(':parent_qid' => (int)substr($ID, 1))); + $sBaseLanguage = Survey::model()->findByPk($iSurveyID)->language; + $oQuestion = Question::model()->findByPk(array("qid"=>$qid,'language'=>$sBaseLanguage)); + $oldGid = $oQuestion['gid']; - $questionorder[(int)substr($parent, 1)]++; + if($oldGid != $gid) { + fixMovedQuestionConditions($qid,$oldGid,$gid,$iSurveyID); + } + Question::model()->updateAll(array('question_order' => $aQuestionOrder[$gid], 'gid' => $gid), 'qid=:qid', array(':qid' => $qid)); + Question::model()->updateAll(array('gid' => $gid), 'parent_qid=:parent_qid', array(':parent_qid' => $qid)); + $aQuestionOrder[$gid]++; } } LimeExpressionManager::SetDirtyFlag(); // so refreshes syntax highlighting Yii::app()->session['flashmessage'] = gT("The new question group/question order was successfully saved."); + $this->getController()->redirect(array('admin/survey/sa/view/surveyid/' . $iSurveyID)); } /** diff --git a/application/views/admin/survey/Question/questionbar_view.php b/application/views/admin/survey/Question/questionbar_view.php index cedc0ee7ca6..7c27ce0e8a1 100644 --- a/application/views/admin/survey/Question/questionbar_view.php +++ b/application/views/admin/survey/Question/questionbar_view.php @@ -203,5 +203,14 @@ class="btn btn-default" + +
+ + + + + +
+ diff --git a/application/views/admin/survey/QuestionGroups/nquestiongroupbar_view.php b/application/views/admin/survey/QuestionGroups/nquestiongroupbar_view.php index 506564806b5..7b42fc94a15 100644 --- a/application/views/admin/survey/QuestionGroups/nquestiongroupbar_view.php +++ b/application/views/admin/survey/QuestionGroups/nquestiongroupbar_view.php @@ -113,6 +113,7 @@
+ diff --git a/application/views/admin/survey/organizeGroupsAndQuestions_view.php b/application/views/admin/survey/organizeGroupsAndQuestions_view.php index 15f721041c5..aef82c59481 100644 --- a/application/views/admin/survey/organizeGroupsAndQuestions_view.php +++ b/application/views/admin/survey/organizeGroupsAndQuestions_view.php @@ -9,12 +9,14 @@

+
    -
  1. ' class='group-item' data-level='group'>
    +
  2. ' class='group-item' data-level='group'> +
      @@ -31,11 +33,12 @@ }?>
+ 'frmOrganize')); ?>

- +

diff --git a/scripts/admin/organize.js b/scripts/admin/organize.js index 6ae37e68431..c6283a631f1 100644 --- a/scripts/admin/organize.js +++ b/scripts/admin/organize.js @@ -36,26 +36,8 @@ $(document).ready(function(){ toleranceElement: '> div' }); - // Old save button, not used - /* $('#btnSave').click(function(){ $('#orgdata').val($('ol.organizer').nestedSortable('serialize')); frmOrganize.submit(); - }) - */ - - // Save - $('#organizebar-save-btn').click(function(){ - $('#orgdata').val($('ol.organizer').nestedSortable('serialize')); - $('#close-after-save').val('false'); - frmOrganize.submit(); - }) - - // Save and close - $('#organizebar-save-and-close-btn').click(function(){ - $('#orgdata').val($('ol.organizer').nestedSortable('serialize')); - $('#close-after-save').val('true'); - frmOrganize.submit(); - }) - + }); });