Skip to content

Commit

Permalink
Fixed issue #17018: No simple selector for Question type (#1773)
Browse files Browse the repository at this point in the history
* Fixed issue #17018: No simple selector for Question type

* Fixed issue #17018: No simple selector for Question type

Integrating question themes into the simple selector
  • Loading branch information
gabrieljenik committed Feb 25, 2021
1 parent 55d787e commit f51aedb
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 11 deletions.
14 changes: 8 additions & 6 deletions application/controllers/QuestionAdministrationController.php
Expand Up @@ -233,6 +233,12 @@ public function renderFormAux(Question $question)
'core'
);

if (App()->session['questionselectormode'] !== 'default') {
$selectormodeclass = App()->session['questionselectormode'];
} else {
$selectormodeclass = App()->getConfig('defaultquestionselectormode');
}

$viewData = [
'oSurvey' => $question->survey,
'oQuestion' => $question,
Expand All @@ -242,7 +248,8 @@ public function renderFormAux(Question $question)
'generalSettings' => $generalSettings,
'showScriptField' => $showScriptField,
'jsVariablesHtml' => $jsVariablesHtml,
'modalsHtml' => $modalsHtml
'modalsHtml' => $modalsHtml,
'selectormodeclass' => $selectormodeclass,
];

$this->aData = array_merge($this->aData, $viewData);
Expand Down Expand Up @@ -2934,11 +2941,6 @@ private function getQuestionTypeGroups($aQuestionTypeList)
{
$aQuestionTypeGroups = [];

if (App()->session['questionselectormode'] !== 'default') {
$selectormodeclass = App()->session['questionselectormode'];
} else {
$selectormodeclass = App()->getConfig('defaultquestionselectormode');
}
uasort($aQuestionTypeList, "questionTitleSort");
foreach ($aQuestionTypeList as $questionType) {
$htmlReadyGroup = str_replace(' ', '_', strtolower($questionType['group']));
Expand Down
Expand Up @@ -123,7 +123,9 @@ if (typeof PreviewModalScript === 'function') {

$('#in_survey_common').off('change.previewModal');
$('#in_survey_common').on('change.previewModal', `#${this.widgetsJsName}`, (e) => {
this.options.onUpdate($(e.currentTarget).val());
var target = $(e.currentTarget);
var option = target.find("option:selected");
this.options.onUpdate(target.val(), option.data('theme'));
});
}

Expand Down
Expand Up @@ -8,11 +8,11 @@
foreach ($this->groupStructureArray as $sGroupTitle => $aGroupArray) {
echo sprintf("<optgroup label='%s'>", $aGroupArray[$this->groupTitleKey]);
foreach ($aGroupArray[$this->groupItemsKey] as $aItemContent) {
$selected = $this->value == $aItemContent['type'] ? 'selected' : '';
$selected = $this->value == $aItemContent['type'] && $this->theme == $aItemContent['name'] ? 'selected' : '';
if(YII_DEBUG) {
echo sprintf("<option value='%s' %s>%s (%s)</option>", $aItemContent['type'], $selected, $aItemContent['title'], $aItemContent['type']);
echo sprintf("<option value='%s' data-theme='%s' %s>%s (%s)</option>", $aItemContent['type'], $aItemContent['name'], $selected, $aItemContent['title'], $aItemContent['type']);
} else {
echo sprintf("<option value='%s' %s>%s</option>", $aItemContent['type'], $selected, $aItemContent['title']);
echo sprintf("<option value='%s' data-theme='%s' %s>%s</option>", $aItemContent['type'], $aItemContent['name'], $selected, $aItemContent['title']);
}
}
echo "</optgroup>";
Expand Down
3 changes: 2 additions & 1 deletion application/views/questionAdministration/create.php
Expand Up @@ -99,7 +99,8 @@ class="btn navbar-btn button white btn-success"
'aQuestionTypeGroups' => $aQuestionTypeGroups,
'questionThemeTitle' => $questionTheme['title'],
'questionThemeName' => $questionTheme['name'],
'questionThemeClass' => ($questionTheme['settings'])->class
'questionThemeClass' => ($questionTheme['settings'])->class,
'selectormodeclass' => $selectormodeclass,
]
); ?>
</div>
Expand Down

0 comments on commit f51aedb

Please sign in to comment.