From 88322671dadc5267bf0d6aa767f6f03c940dc29d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 10:42:19 +0200 Subject: [PATCH 1/7] Bump tmpl from 1.0.4 to 1.0.5 in /assets/packages/adminbasics (#2049) Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5. - [Release notes](https://github.com/daaku/nodejs-tmpl/releases) - [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5) --- updated-dependencies: - dependency-name: tmpl dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- assets/packages/adminbasics/yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/packages/adminbasics/yarn.lock b/assets/packages/adminbasics/yarn.lock index eea59047d3f..b200318efb8 100644 --- a/assets/packages/adminbasics/yarn.lock +++ b/assets/packages/adminbasics/yarn.lock @@ -5993,9 +5993,9 @@ through@2, through@^2.3.8, through@~2.3, through@~2.3.4: integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= tmpl@1.0.x: - version "1.0.4" - resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.4.tgz#23640dd7b42d00433911140820e5cf440e521dd1" - integrity sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE= + version "1.0.5" + resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc" + integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== to-fast-properties@^2.0.0: version "2.0.0" From c59f8686d4b7ab9f696ec893bd99954268818a6c Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Wed, 22 Sep 2021 11:43:24 +0200 Subject: [PATCH 2/7] Fixed issue #17592: Call to a member function getColumn() on string when updating using MSSQL --- framework/db/schema/mssql/CMssqlCommandBuilder.php | 1 + 1 file changed, 1 insertion(+) diff --git a/framework/db/schema/mssql/CMssqlCommandBuilder.php b/framework/db/schema/mssql/CMssqlCommandBuilder.php index 896a9a6c406..f79a077168c 100644 --- a/framework/db/schema/mssql/CMssqlCommandBuilder.php +++ b/framework/db/schema/mssql/CMssqlCommandBuilder.php @@ -60,6 +60,7 @@ public function createFindCommand($table,$criteria,$alias='t') */ public function createUpdateCommand($table,$data,$criteria) { + $this->ensureTable($table); $criteria=$this->checkCriteria($table,$criteria); $fields=array(); $values=array(); From a2dea270ab356a1ca992802d4794a10008ee6428 Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Wed, 22 Sep 2021 15:45:12 +0200 Subject: [PATCH 3/7] Fixed issue #17611: Updating from 2.05 or earlier throws error "Undefined function getDBConnectionStringProperty()" --- application/commands/UpdateDbCommand.php | 1 + 1 file changed, 1 insertion(+) diff --git a/application/commands/UpdateDbCommand.php b/application/commands/UpdateDbCommand.php index dc96c968ca6..32af3ea8e12 100644 --- a/application/commands/UpdateDbCommand.php +++ b/application/commands/UpdateDbCommand.php @@ -40,6 +40,7 @@ public function run($args = null) echo "Update " . Yii::app()->db->connectionString . " with prefix :"; echo Yii::app()->db->tablePrefix . " from {$currentDbVersion} to {$newDbVersion}\n"; Yii::import('application.helpers.common_helper', true); + Yii::import('application.helpers.update.update_helper', true); Yii::import('application.helpers.update.updatedb_helper', true); Yii::import('application.helpers.update.update_helper', true); $result = db_upgrade_all($currentDbVersion); From 022518db2288b5dcc33cefba7eaea3f4ee1d6d2f Mon Sep 17 00:00:00 2001 From: Olle Haerstedt Date: Wed, 22 Sep 2021 16:03:40 +0200 Subject: [PATCH 4/7] Fixed issue #17608: Remove orphan labels before adding table unique constraint --- application/helpers/update/updatedb_helper.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/application/helpers/update/updatedb_helper.php b/application/helpers/update/updatedb_helper.php index d7ff162228f..3daac29d99c 100644 --- a/application/helpers/update/updatedb_helper.php +++ b/application/helpers/update/updatedb_helper.php @@ -8060,6 +8060,14 @@ function regenerateLabelCodes400(int $lid, $hasLanguageColumn = true) sprintf("SELECT * FROM {{labelsets}} WHERE lid = %d", (int) $lid) )->queryRow(); if (empty($labelSet)) { + // No belonging label set, remove orphan labels. + // @see https://bugs.limesurvey.org/view.php?id=17608 + $oDB->createCommand( + sprintf( + 'DELETE FROM {{labels}} WHERE lid = %d', + (int) $lid + ) + )->execute(); return; } From 563fca65572c07c4ddb609dd2d276ebb8849396f Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Wed, 22 Sep 2021 16:42:27 +0200 Subject: [PATCH 5/7] Fixed issue #17557: Allowed image extensions are not properly shown in administration --- application/core/LSYii_ImageValidator.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/core/LSYii_ImageValidator.php b/application/core/LSYii_ImageValidator.php index 196bebfea49..5eab042a0b7 100644 --- a/application/core/LSYii_ImageValidator.php +++ b/application/core/LSYii_ImageValidator.php @@ -73,7 +73,7 @@ public static function validateImage($file) $result['uploadresult'] = ''; $result['check'] = true; } else { - $result['uploadresult'] = gT("This file is not a supported image - please only upload JPG,PNG,GIF or SVG type images."); + $result['uploadresult'] = sprintf(gT("This file is not a supported image format - only the following ones are allowed: %s"),strtoupper(Yii::app()->getConfig('allowedthemeimageformats'))); $result['check'] = false; } return $result; From f8c4170be78c42b711f6eace7feaff06269b4a31 Mon Sep 17 00:00:00 2001 From: Gabriel Jenik Date: Thu, 23 Sep 2021 06:45:16 -0300 Subject: [PATCH 6/7] Fixed issue #T1228: Close button does not work when attempting to abort importing participants from CSV file (#2051) Co-authored-by: encuestabizdevgit --- application/controllers/admin/tokens.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/application/controllers/admin/tokens.php b/application/controllers/admin/tokens.php index 862a99ea1c9..06cae16ac81 100644 --- a/application/controllers/admin/tokens.php +++ b/application/controllers/admin/tokens.php @@ -1621,6 +1621,7 @@ public function exportdialog(int $iSurveyId) // White Close Button $aData['showWhiteCloseButton'] = true; + $aData['closeUrl'] = Yii::app()->createUrl('admin/tokens/sa/index/surveyid/' . $iSurveyId); $aData['topBar']['name'] = 'tokensTopbar_view'; $aData['topBar']['rightSideView'] = 'tokensTopbarRight_view'; @@ -2215,6 +2216,7 @@ public function import($iSurveyId) $aData['thischaracterset'] = $thischaracterset; $aData['showCloseButton'] = true; + $aData['closeUrl'] = Yii::app()->createUrl('admin/tokens/sa/index/surveyid/' . $iSurveyId); $aData['topBar']['name'] = 'tokensTopbar_view'; $aData['topBar']['rightSideView'] = 'tokensTopbarRight_view'; @@ -2490,6 +2492,7 @@ public function _handletokenform($iSurveyId, $subaction, $iTokenId = "", $ajax = $aData['showSaveAndCloseButton'] = true; // White Close Button $aData['showWhiteCloseButton'] = true; + $aData['closeUrl'] = Yii::app()->createUrl('admin/tokens/sa/index/surveyid/' . $iSurveyId); $aData['topBar']['name'] = 'tokensTopbar_view'; $aData['topBar']['rightSideView'] = 'tokensTopbarRight_view'; From e7979e1faa27d5bd12fc51192d54105c11903439 Mon Sep 17 00:00:00 2001 From: Carsten Schmitz Date: Thu, 23 Sep 2021 16:05:00 +0200 Subject: [PATCH 7/7] Dev Removed last traces of obsolete question type Z --- .../DataSetListRadioFlexible.php | 6 --- .../RenderListRadioFlexible.php | 52 ------------------- application/helpers/admin/activate_helper.php | 2 +- application/helpers/questionHelper.php | 31 ++++------- 4 files changed, 12 insertions(+), 79 deletions(-) delete mode 100644 application/core/QuestionTypes/ListRadioFlexible/DataSetListRadioFlexible.php delete mode 100644 application/core/QuestionTypes/ListRadioFlexible/RenderListRadioFlexible.php diff --git a/application/core/QuestionTypes/ListRadioFlexible/DataSetListRadioFlexible.php b/application/core/QuestionTypes/ListRadioFlexible/DataSetListRadioFlexible.php deleted file mode 100644 index cbe3681f09b..00000000000 --- a/application/core/QuestionTypes/ListRadioFlexible/DataSetListRadioFlexible.php +++ /dev/null @@ -1,6 +0,0 @@ - string qid - * 1 => string sgqa - * 2 => string questioncode - * 3 => string question - * 4 => string type - * 5 => string gid - * 6 => string mandatory, - * 7 => string conditionsexist, - * 8 => string usedinconditions - * 0 => string used in group.php for question count - * 10 => string new group id for question in randomization group (GroupbyGroup Mode) - * - */ -class RenderListRadioFlexible extends QuestionBaseRenderer -{ - public function getMainView() - { - return '/survey/questions/answer/dummy/answer'; - } - - public function getRows() - { - return; - } - - public function render($sCoreClasses = '') - { - $answer = ''; - $inputnames = []; - - if (!empty($this->getQuestionAttribute('time_limit'))) { - $answer .= $this->getTimeSettingRender(); - } - - $answer .= Yii::app()->twigRenderer->renderQuestion($this->getMainView(), array( - 'ia' => $this->aFieldArray, - 'name' => $this->sSGQA, - 'basename' => $this->sSGQA, - 'content' => $this->oQuestion, - 'coreClass' => 'ls-answers ' . $sCoreClasses, - ), true); - - $this->registerAssets(); - $inputnames[] = []; - return array($answer, $inputnames); - } -} diff --git a/application/helpers/admin/activate_helper.php b/application/helpers/admin/activate_helper.php index 871ff24a9ae..14d30659a8b 100644 --- a/application/helpers/admin/activate_helper.php +++ b/application/helpers/admin/activate_helper.php @@ -202,7 +202,7 @@ function checkQuestions($postsid, $iSurveyID) ->join('{{question_l10ns}} ls', 'ls.qid=q.qid') ->andWhere("(SELECT count(*) from {{answers}} as a where a.qid=q.qid and scale_id=0)=0") ->andWhere("sid=:sid", [':sid' => $iSurveyID]) - ->andWhere("type IN ('" . Question::QT_F_ARRAY_FLEXIBLE_ROW . "', '" . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . "', '" . Question::QT_Z_LIST_RADIO_FLEXIBLE . "', '" . Question::QT_1_ARRAY_MULTISCALE . "')") + ->andWhere("type IN ('" . Question::QT_F_ARRAY_FLEXIBLE_ROW . "', '" . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . "', '" . Question::QT_1_ARRAY_MULTISCALE . "')") ->andWhere("q.parent_qid=0"); $chkresult = $chkquery->queryAll(); foreach ($chkresult as $chkrow) { diff --git a/application/helpers/questionHelper.php b/application/helpers/questionHelper.php index bfdfeae1ca5..0016fc5805f 100644 --- a/application/helpers/questionHelper.php +++ b/application/helpers/questionHelper.php @@ -56,7 +56,7 @@ public static function getAttributesDefinitions() // If you need to create a new attribute selector rendering for question advanced attribute // Just add it to application/views/admin/survey/Question/advanced_settings_view self::$attributes["alphasort"] = array( - "types" => Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_L_LIST_DROPDOWN . Question::QT_O_LIST_WITH_COMMENT . Question::QT_Z_LIST_RADIO_FLEXIBLE, + "types" => Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_L_LIST_DROPDOWN . Question::QT_O_LIST_WITH_COMMENT, 'category' => gT('Display'), 'sortorder' => 100, 'inputtype' => 'switch', @@ -150,15 +150,6 @@ public static function getAttributesDefinitions() "caption" => gT('Category separator') ); - self::$attributes["code_filter"] = array( - "types" => Question::QT_Z_LIST_RADIO_FLEXIBLE, - 'category' => gT('Logic'), - 'sortorder' => 100, - 'inputtype' => 'text', - "help" => gT('Filter the available answers by this value'), - "caption" => gT('Code filter') - ); - self::$attributes["commented_checkbox"] = array( "types" => Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS, 'category' => gT('Logic'), @@ -532,7 +523,7 @@ public static function getAttributesDefinitions() ); self::$attributes['hidden'] = array( - 'types' => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_I_LANGUAGE . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD . Question::QT_ASTERISK_EQUATION, + 'types' => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_I_LANGUAGE . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD . Question::QT_ASTERISK_EQUATION, 'category' => gT('Display'), 'sortorder' => 101, 'inputtype' => 'switch', @@ -543,7 +534,7 @@ public static function getAttributesDefinitions() ); self::$attributes['cssclass'] = array( - 'types' => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_I_LANGUAGE . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD . Question::QT_ASTERISK_EQUATION, + 'types' => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_I_LANGUAGE . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD . Question::QT_ASTERISK_EQUATION, 'category' => gT('Display'), 'sortorder' => 102, 'inputtype' => 'text', @@ -756,7 +747,7 @@ public static function getAttributesDefinitions() ); self::$attributes["other_comment_mandatory"] = array( - "types" => Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_L_LIST_DROPDOWN . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_Z_LIST_RADIO_FLEXIBLE, + "types" => Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_L_LIST_DROPDOWN . Question::QT_EXCLAMATION_LIST_DROPDOWN, 'category' => gT('Logic'), 'sortorder' => 100, 'inputtype' => 'switch', @@ -778,7 +769,7 @@ public static function getAttributesDefinitions() ); self::$attributes["other_replace_text"] = array( - "types" => Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN, + "types" => Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_EXCLAMATION_LIST_DROPDOWN, 'category' => gT('Display'), 'sortorder' => 100, 'inputtype' => 'text', @@ -789,7 +780,7 @@ public static function getAttributesDefinitions() ); self::$attributes["page_break"] = array( - "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD . Question::QT_ASTERISK_EQUATION, + "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD . Question::QT_ASTERISK_EQUATION, 'category' => gT('Other'), 'sortorder' => 100, 'inputtype' => 'switch', @@ -822,7 +813,7 @@ public static function getAttributesDefinitions() ); self::$attributes["printable_help"] = array( - "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_R_RANKING_STYLE . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_ASTERISK_EQUATION, + "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_R_RANKING_STYLE . Question::QT_Y_YES_NO_RADIO . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_ASTERISK_EQUATION, 'category' => gT('Display'), 'sortorder' => 201, "inputtype" => "text", @@ -834,7 +825,7 @@ public static function getAttributesDefinitions() ); self::$attributes["public_statistics"] = array( - "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_R_RANKING_STYLE . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_ASTERISK_EQUATION, + "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_R_RANKING_STYLE . Question::QT_Y_YES_NO_RADIO . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_ASTERISK_EQUATION, 'category' => gT('Statistics'), 'sortorder' => 80, 'inputtype' => 'switch', @@ -845,7 +836,7 @@ public static function getAttributesDefinitions() ); self::$attributes["random_order"] = array( - "types" => Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_1_ARRAY_MULTISCALE . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT, + "types" => Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_1_ARRAY_MULTISCALE . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT, 'category' => gT('Display'), 'sortorder' => 100, 'inputtype' => 'singleselect', @@ -1217,7 +1208,7 @@ public static function getAttributesDefinitions() ); self::$attributes["scale_export"] = array( - "types" => Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_1_ARRAY_MULTISCALE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_ASTERISK_EQUATION, + "types" => Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Y_YES_NO_RADIO . Question::QT_1_ARRAY_MULTISCALE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_ASTERISK_EQUATION, 'category' => gT('Other'), 'sortorder' => 100, 'inputtype' => 'singleselect', @@ -1526,7 +1517,7 @@ public static function getAttributesDefinitions() ); self::$attributes["random_group"] = array( - "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_I_LANGUAGE . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_Z_LIST_RADIO_FLEXIBLE . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD, + "types" => Question::QT_1_ARRAY_MULTISCALE . Question::QT_5_POINT_CHOICE . Question::QT_A_ARRAY_5_CHOICE_QUESTIONS . Question::QT_B_ARRAY_10_CHOICE_QUESTIONS . Question::QT_C_ARRAY_YES_UNCERTAIN_NO . Question::QT_D_DATE . Question::QT_E_ARRAY_OF_INC_SAME_DEC_QUESTIONS . Question::QT_F_ARRAY_FLEXIBLE_ROW . Question::QT_G_GENDER_DROPDOWN . Question::QT_H_ARRAY_FLEXIBLE_COLUMN . Question::QT_I_LANGUAGE . Question::QT_K_MULTIPLE_NUMERICAL_QUESTION . Question::QT_L_LIST_DROPDOWN . Question::QT_M_MULTIPLE_CHOICE . Question::QT_N_NUMERICAL . Question::QT_O_LIST_WITH_COMMENT . Question::QT_P_MULTIPLE_CHOICE_WITH_COMMENTS . Question::QT_Q_MULTIPLE_SHORT_TEXT . Question::QT_R_RANKING_STYLE . Question::QT_S_SHORT_FREE_TEXT . Question::QT_T_LONG_FREE_TEXT . Question::QT_U_HUGE_FREE_TEXT . Question::QT_X_BOILERPLATE_QUESTION . Question::QT_Y_YES_NO_RADIO . Question::QT_EXCLAMATION_LIST_DROPDOWN . Question::QT_COLON_ARRAY_MULTI_FLEX_NUMBERS . Question::QT_SEMICOLON_ARRAY_MULTI_FLEX_TEXT . Question::QT_VERTICAL_FILE_UPLOAD, 'category' => gT('Logic'), 'sortorder' => 180, 'inputtype' => 'text',