Skip to content

Commit

Permalink
Fixed issue #11858: When adding a new group In multi lingual : only 1…
Browse files Browse the repository at this point in the history
…st language is created

Dev: no need to control of survey-name is set: remove it
Dev: if it must be : fix model not do a js
Dev: return a clear error string when try to add a group to an active survey (before : same test, but no error)
  • Loading branch information
Shnoulle committed Nov 3, 2016
1 parent 1a389b9 commit 074ce16
Show file tree
Hide file tree
Showing 5 changed files with 43 additions and 77 deletions.
4 changes: 2 additions & 2 deletions application/controllers/admin/database.php
Expand Up @@ -229,11 +229,11 @@ function index($sa = null)
LimeExpressionManager::UpgradeConditionsToRelevance($iSurveyID);
if (!Yii::app()->request->getPost('bFullPOST'))
{
Yii::app()->setFlashMessage(gT("Not all answer options were saved. This usually happens due to server limitations ( PHP setting max_input_vars) - please contact your system administrator."));
Yii::app()->setFlashMessage(gT("Not all answer options were saved. This usually happens due to server limitations ( PHP setting max_input_vars) - please contact your system administrator."),'error');
}
else
{
Yii::app()->session['flashmessage']= gT("Answer options were successfully saved.");
Yii::app()->setFlashMessage(gT("Answer options were successfully saved."));
}
LimeExpressionManager::SetDirtyFlag();
if ($sDBOutput != '')
Expand Down
92 changes: 38 additions & 54 deletions application/controllers/admin/questiongroups.php
Expand Up @@ -203,64 +203,49 @@ public function insert($surveyid)
{
Yii::app()->loadHelper('surveytranslator');

$sSurveyLanguages = Survey::model()->findByPk($surveyid)->additionalLanguages;
$sSurveyLanguages[] = Survey::model()->findByPk($surveyid)->language;
$errorstring = '';
$sSurveyLanguages = Survey::model()->findByPk($surveyid)->getAllLanguages();
foreach ($sSurveyLanguages as $sLanguage)
if (empty($_POST['group_name_' . $sLanguage]))
$errorstring.= getLanguageNameFromCode($sLanguage, false) . "\\n";

if ($errorstring != '')
$this->getController()->redirect(array('admin/survey/sa/view/surveyid/' . $surveyid));

else
{
$sInsertArray=array();
foreach ($sSurveyLanguages as $sLanguage)
{
$sGroupname = Yii::app()->request->getPost('group_name_' . $sLanguage);
$sGroupDescription = Yii::app()->request->getPost('description_' . $sLanguage);
// Decode entities
$sGroupname = html_entity_decode($sGroupname, ENT_QUOTES, "UTF-8");
$sGroupDescription = html_entity_decode($sGroupDescription, ENT_QUOTES, "UTF-8");
// Fix bug with FCKEditor saving strange BR types
$sGroupname = fixCKeditorText($sGroupname);
$sGroupDescription = fixCKeditorText($sGroupDescription);
$sInsertArray[$sLanguage] = array(
'sid' => $surveyid,
'group_name' => $sGroupname,
'description' => $sGroupDescription,
'group_order' => getMaxGroupOrder($surveyid),
'language' => $sLanguage,
'randomization_group' => Yii::app()->request->getPost('randomization_group'),
'grelevance' => Yii::app()->request->getPost('grelevance')
);
$oGroup=new QuestionGroup;
$oGroup->sid=$surveyid;
if(isset($newGroupID)){
$oGroup->gid=$newGroupID;
}
$newGroupID=QuestionGroup::model()->insertNewGroup($sInsertArray);
if ($newGroupID===false) {
// Error, redirect back.
Yii::app()->setFlashMessage(gT("Question group was not saved. Please check if the survey is active."), 'error');
$this->getController()->redirect(Yii::app()->request->urlReferrer);
}

$questions = new Question('search');
$questions->gid = $newGroupID;
Yii::app()->setFlashMessage(gT("New question group was saved."));

if($questions->search()->itemCount<1)
{
Yii::app()->setFlashMessage(sprintf(gT('You can now %sadd a question%s in this group.'),'<a href="'.Yii::app()->createUrl("admin/questions/sa/newquestion/surveyid/$surveyid/gid/$newGroupID").'">','</a>'),'info');
}
if(Yii::app()->request->getPost('close-after-save') === 'true')
{
$this->getController()->redirect(array("admin/questiongroups/sa/view/surveyid/$surveyid/gid/$newGroupID"));
$oGroup->group_name = Yii::app()->request->getPost('group_name_' . $sLanguage,"");
$oGroup->description = Yii::app()->request->getPost('description_' . $sLanguage,"");
if(!isset($newGroupOrder)){
$newGroupOrder=getMaxGroupOrder($surveyid);
}
else
{
// After save, go to edit
$this->getController()->redirect(array("admin/questiongroups/sa/edit/surveyid/$surveyid/gid/$newGroupID"));
$oGroup->group_order=$newGroupOrder;
$oGroup->language =$sLanguage;
$oGroup->randomization_group =Yii::app()->request->getPost('randomization_group');
$oGroup->grelevance =Yii::app()->request->getPost('grelevance');
if($oGroup->save()){
if(!isset($newGroupID)){
$newGroupID=$oGroup->gid;
}
}else{
Yii::app()->setFlashMessage(CHtml::errorSummary($oGroup),'error');
}
}
if(!isset($newGroupID)){
// Error, redirect back.
Yii::app()->setFlashMessage(gT("Question group was not saved."), 'error');
$this->getController()->redirect(array("admin/questiongroups/sa/add/surveyid/$surveyid"));
}

Yii::app()->setFlashMessage(gT("New question group was saved."));
Yii::app()->setFlashMessage(sprintf(gT('You can now %sadd a question%s in this group.'),'<a href="'.Yii::app()->createUrl("admin/questions/sa/newquestion/surveyid/$surveyid/gid/$newGroupID").'">','</a>'),'info');
if(Yii::app()->request->getPost('close-after-save') === 'true')
{
$this->getController()->redirect(array("admin/questiongroups/sa/view/surveyid/$surveyid/gid/$newGroupID"));
}
else
{
// After save, go to edit
$this->getController()->redirect(array("admin/questiongroups/sa/edit/surveyid/$surveyid/gid/$newGroupID"));
}

}
else
{
Expand Down Expand Up @@ -459,7 +444,6 @@ public function edit($surveyid, $gid)
public function update($gid)
{
$gid = (int) $gid;

$group = QuestionGroup::model()->findByAttributes(array('gid' => $gid));
$surveyid = $group->sid;

Expand Down Expand Up @@ -508,7 +492,7 @@ public function update($gid)
}
}

Yii::app()->session['flashmessage'] = gT("Question group successfully saved.");
Yii::app()->setFlashMessage(gT("Question group successfully saved."));

if(Yii::app()->request->getPost('close-after-save') === 'true')
$this->getController()->redirect(array('admin/questiongroups/sa/view/surveyid/' . $surveyid . '/gid/' . $gid));
Expand Down
4 changes: 2 additions & 2 deletions application/models/QuestionGroup.php
Expand Up @@ -348,9 +348,9 @@ protected function beforeSave()
if (parent::beforeSave())
{
$surveyIsActive = Survey::model()->findByPk($this->sid)->active !== 'N';

if ($surveyIsActive && $this->getIsNewRecord())
if ($surveyIsActive && $this->getIsNewRecord()) /* And for multi lingual, when add a new language ? */
{
$this->addError('gid',gT("You can not add a group if survey is active."));
return false;
}
return true;
Expand Down
Expand Up @@ -43,7 +43,7 @@
<div class="form-group">
<label class="control-label col-sm-2" for='group_name_<?php echo $grouplang; ?>'><?php eT("Title:"); ?></label>
<div class="col-sm-3">
<input class="form-control group_title" type='text' size='80' maxlength='100' name='group_name_<?php echo $grouplang; ?>' id='group_name_<?php echo $grouplang; ?>' /><span class='annotation'> <?php eT("Required"); ?></span></li>
<input class="form-control group_title" type='text' size='80' maxlength='100' name='group_name_<?php echo $grouplang; ?>' id='group_name_<?php echo $grouplang; ?>' /></li>
</div>
</div>

Expand Down
18 changes: 0 additions & 18 deletions scripts/admin/questiongroup.js
Expand Up @@ -9,21 +9,3 @@
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

$(document).ready(function(){
$('#newquestiongroup').submit(function(){
bResult=true;
$('.group_title').each( function()
{
if ($(this).val()=='')
{
bResult=false;
}
});
if (!bResult)
{
alert(sEnterTitle);
}
return bResult;
});
});

0 comments on commit 074ce16

Please sign in to comment.