Skip to content

Commit

Permalink
Dev Added rudimentary facility to edit/add/save default values - Work…
Browse files Browse the repository at this point in the history
… in progress

git-svn-id: file:///Users/Shitiz/Downloads/lssvn/source/limesurvey@8577 b72ed6b6-b9f8-46b5-92b4-906544132732
  • Loading branch information
c-schmitz committed Apr 11, 2010
1 parent a4889b6 commit 124985f
Show file tree
Hide file tree
Showing 9 changed files with 111 additions and 18 deletions.
5 changes: 3 additions & 2 deletions admin/admin.php
Expand Up @@ -488,8 +488,8 @@
if(hasRight($surveyid,'browse_response')) {include('vvimport.php');}
else { include('access_denied.php');}
}
if ($action=='addquestion' || $action=='copyquestion' || $action=='editquestion' ||
$action=='orderquestions' || $action=='ajaxquestionattributes' || $action=='ajaxlabelsetpicker' || $action=='ajaxlabelsetdetails')
if ($action=='addquestion' || $action=='copyquestion' || $action=='editquestion' || $action=='editdefaultvalues' ||
$action=='orderquestions' || $action=='ajaxquestionattributes' || $action=='ajaxlabelsetpicker' || $action=='ajaxlabelsetdetails')
{
if(hasRight($surveyid,'define_questions'))
{
Expand Down Expand Up @@ -544,6 +544,7 @@

if (isset($editgroup)) {$adminoutput.= $editgroup;}
if (isset($editquestion)) {$adminoutput.= $editquestion;}
if (isset($editdefvalues)) {$adminoutput.= $editdefvalues;}
if (isset($editsurvey)) {$adminoutput.= $editsurvey;}
if (isset($quotasoutput)) {$adminoutput.= $quotasoutput;}
if (isset($labelsoutput)) {$adminoutput.= $labelsoutput;}
Expand Down
14 changes: 10 additions & 4 deletions admin/html.php
Expand Up @@ -858,11 +858,11 @@
}
if ($first) $surveysummary .= "</tr>";

if ($surveyinfo['surveyls_urldescription']==""){$surveyinfo['surveyls_urldescription']=$surveyinfo['surveyls_url'];}
if ($surveyinfo['surveyls_urldescription']==""){$surveyinfo['surveyls_urldescription']=htmlspecialchars($surveyinfo['surveyls_url']);}
$surveysummary .= "<tr><td align='right' valign='top'><strong>"
. $clang->gT("Exit Link").":</strong></td>\n"
. "<td align='left'>";
if ($surveyinfo['surveyls_url']!="") {$surveysummary .=" <a href=\"{$surveyinfo['surveyls_url']}\" title=\"{$surveyinfo['surveyls_url']}\">{$surveyinfo['surveyls_urldescription']}</a>";}
. "<td align='left'>";
if ($surveyinfo['surveyls_url']!="") {$surveysummary .=" <a href=\"".htmlspecialchars($surveyinfo['surveyls_url'])."\" title=\"".htmlspecialchars($surveyinfo['surveyls_url'])."\">{$surveyinfo['surveyls_urldescription']}</a>";}
$surveysummary .="</td></tr>\n";
$surveysummary .= "<tr><td align='right' valign='top'><strong>"
. $clang->gT("Number of questions/groups").":</strong></td><td>$sumcount3/$sumcount2</td></tr>\n";
Expand Down Expand Up @@ -1225,6 +1225,12 @@
{
$questionsummary .= "<img src='$imagefiles/blank.gif' alt='' width='40' />\n";
}
if(hasRight($surveyid,'define_questions') && $qtypes[$qrrow['type']]['hasdefaultvalues'] >0)
{
$questionsummary .= "<a href='".$scriptname."?action=editdefaultvalues&amp;sid=$surveyid&amp;gid=$gid&amp;qid=$qid'"
."title=\"".$clang->gTview("Edit default answers for this question")."\">"
."<img src='$imagefiles/defaultanswers.png' alt='".$clang->gT("Edit default answers for this question")."' name='EdtAnswerOptions' /></a>\n" ;
}
$questionsummary .= "</div>\n"
. "<div class='menubar-right'>\n"
. "<input type='image' src='$imagefiles/minus.gif' title='"
Expand All @@ -1241,7 +1247,7 @@
. "</div>\n";
$questionsummary .= "<p style='margin:0;font-size:1px;line-height:1px;height:1px;'>&nbsp;</p>"; //CSS Firefox 2 transition fix

if ($action=='editansweroptions' || $action =="editsubquestions" || $action =="editquestion" || $action =="copyquestion")
if ($action=='editansweroptions' || $action =="editsubquestions" || $action =="editquestion" || $action =="editdefaultvalues" || $action =="copyquestion")
{
$qshowstyle = "style='display: none'";
}
Expand Down
10 changes: 8 additions & 2 deletions admin/install/create-mysql.sql
@@ -1,6 +1,4 @@



CREATE TABLE `prefix_answers` (
`qid` int(11) NOT NULL default '0',
`code` varchar(5) NOT NULL default '',
Expand Down Expand Up @@ -41,6 +39,14 @@ CREATE TABLE `prefix_conditions` (
) ENGINE=$databasetabletype AUTO_INCREMENT=1 CHARACTER SET utf8 COLLATE utf8_unicode_ci;


CREATE TABLE `prefix_defaultvalues` (
`qid` int(11) NOT NULL default '0',
`scale_id` int(11) NOT NULL default '0',
`language` varchar(20) NOT NULL,
`defaultvalue` text,
PRIMARY KEY (`qid` , `scale_id`, `language` )
) ENGINE=$databasetabletype CHARACTER SET utf8 COLLATE utf8_unicode_ci;


CREATE TABLE `prefix_groups` (
`gid` int(11) NOT NULL auto_increment,
Expand Down
47 changes: 47 additions & 0 deletions admin/questionhandling.php
Expand Up @@ -123,6 +123,53 @@
}
}


if ($action == "editdefaultvalues")
{
$questlangs = GetAdditionalLanguagesFromSurveyID($surveyid);
$baselang = GetBaseLanguageFromSurveyID($surveyid);
$questlangs[] = $baselang;
$questlangs = array_flip($questlangs);
$questiontype=$connect->GetOne("SELECT type FROM ".db_table_name('questions')." WHERE sid=$surveyid AND gid=$gid AND qid=$qid AND language='$baselang'");
$qtproperties=getqtypelist('','array');

$editdefvalues="<div class='header'>".$clang->gT('Edit default answer values')."</div> "
. '<div class="tab-pane" id="tab-pane-editdefaultvalues-'.$surveyid.'">'
. "<form id='frmdefaultvalues' name='frmdefaultvalues' action='$scriptname' method='post'>\n";
$editdefvalues .= '<div class="tab-page"> <h2 class="tab">'.getLanguageNameFromCode($baselang,false).'</h2>';
if ($qtproperties[$questiontype]['answerscales']>0)
{
$editdefvalues.="<ul> ";
for ($scale_id=0;$scale_id<$qtproperties[$questiontype]['answerscales'];$scale_id++)
{
$editdefvalues.=" <li><label for='defaultanswerscale_{$scale_id}'>";
if ($qtproperties[$questiontype]['answerscales']>1)
{
$editdefvalues.=sprintf($clang->gT('Default answer for scale %s:'),$scale_id)."</label>";
}
else
{
$editdefvalues.=sprintf($clang->gT('Default answer:'),$scale_id)."</label>";
}
$editdefvalues.="<select name='defaultanswerscale_{$scale_id}' id='defaultanswerscale_{$scale_id}'>";
$editdefvalues.="<option value=''>".$clang->gT('<No default value>')."</option>";
$answerquery = "SELECT code, answer FROM ".db_table_name('answers')." WHERE qid=$qid and language='$baselang' order by sortorder";
$answerresult = db_execute_assoc($answerquery);
foreach ($answerresult as $answer)
{
$editdefvalues.="<option value='{$answer['code']}'>{$answer['answer']}</option>";
}
$editdefvalues.="</select></li> ";
}
$editdefvalues.="</ul> ";
$editdefvalues.="</div> "; // Closing page
$editdefvalues.="</div> "; // Closing pane
}
$editdefvalues.="<p><input type='submit' value='".$clang->gT('Save')."'/></form>";
}



if ($action == "editquestion" || $action=="addquestion")
{
$adding=($action=="addquestion");
Expand Down
12 changes: 9 additions & 3 deletions admin/update/upgrade-mysql.php
Expand Up @@ -349,14 +349,20 @@ function db_upgrade($oldversion) {
if ($oldversion < 143) //Modify surveys table
{
modify_database("", "ALTER TABLE `prefix_questions` ADD `parent_qid` integer NOT NULL default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_questions` ADD `default_value` text"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_answers` ADD `scale_id` tinyint NOT NULL default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_questions` ADD `scale_id` tinyint NOT NULL default '0'"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_answers` DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE(`qid`,`code`,`language`,`scale_id`)"); echo $modifyoutput; flush();
modify_database("", "ALTER TABLE `prefix_answers` DROP PRIMARY KEY, ADD PRIMARY KEY USING BTREE (`qid`,`code`,`language`,`scale_id`)"); echo $modifyoutput; flush();
modify_database("", "CREATE TABLE `prefix_defaultvalues` (
`qid` int(11) NOT NULL default '0',
`scale_id` int(11) NOT NULL default '0',
`language` varchar(20) NOT NULL,
`defaultvalue` text,
PRIMARY KEY (qid, scale_id, `language`)
) ENGINE=$databasetabletype CHARACTER SET utf8 COLLATE utf8_unicode_ci;"); echo $modifyoutput; flush();

// -Move all 'answers' that are subquestions to the questions table
// -Move all 'labels' that are answers to the answers table
// -Transscript the default values where applicable
// -Transscribe the default values where applicable
// -Move default values from answers to questions
upgrade_tables143();

Expand Down
12 changes: 6 additions & 6 deletions admin/usercontrol.php
Expand Up @@ -105,8 +105,8 @@
if ($result->RecordCount() < 1)
{
// wrong or unknown username
$loginsummary .= "<br />".$clang->gT("Incorrect User name and/or Password!")."<br />";
$loginsummary .= "<br /><br /><a href='$scriptname'>".$clang->gT("Continue")."</a><br />&nbsp;\n";
$loginsummary .= "<p>".$clang->gT("Incorrect username and/or password!")."<br />";
$loginsummary .= "<br /><a href='$scriptname'>".$clang->gT("Continue")."</a><br />&nbsp;\n";

}
else
Expand Down Expand Up @@ -165,8 +165,8 @@
}
else
{
$loginsummary .= "<br />".$clang->gT("Incorrect User name and/or Password!")."<br />";
$loginsummary .= "<br /><br /><a href='$scriptname'>".$clang->gT("Continue")."</a><br />&nbsp;\n";
$loginsummary .= "<p>".$clang->gT("Incorrect username and/or password!")."<br />";
$loginsummary .= "<br /><a href='$scriptname'>".$clang->gT("Continue")."</a><br />&nbsp;\n";
}
}
}
Expand Down Expand Up @@ -266,8 +266,8 @@
else
{
// wrong or unknown username
$loginsummary .= "<br />".$clang->gT("Incorrect User name and/or Password!")."<br />";
$loginsummary .= "<br /><br /><a href='$scriptname'>".$clang->gT("Continue")."</a><br />&nbsp;\n";
$loginsummary .= "<p>".$clang->gT("Incorrect username and/or password!")."<br />";
$loginsummary .= "<br /><a href='$scriptname'>".$clang->gT("Continue")."</a><br />&nbsp;\n";
$isAuthenticated=false;
}

Expand Down
27 changes: 27 additions & 0 deletions common.php
Expand Up @@ -335,109 +335,136 @@ function getqtypelist($SelectedCode = "T", $ReturnType = "selector")
"1"=>array('description'=>$clang->gT("Array Dual Scale"),
'subquestions'=>1,
'assessable'=>0,
'hasdefaultvalues'=>0,
'answerscales'=>2),
"5"=>array('description'=>$clang->gT("5 Point Choice"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"A"=>array('description'=>$clang->gT("Array (5 Point Choice)"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>0),
"B"=>array('description'=>$clang->gT("Array (10 Point Choice)"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>0),
"C"=>array('description'=>$clang->gT("Array (Yes/No/Uncertain)"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>0),
"D"=>array('description'=>$clang->gT("Date"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"E"=>array('description'=>$clang->gT("Array (Increase/Same/Decrease)"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>0),
"F"=>array('description'=>$clang->gT("Array"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>1),
"G"=>array('description'=>$clang->gT("Gender"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"H"=>array('description'=>$clang->gT("Array by column"),
'hasdefaultvalues'=>0,
'subquestions'=>1,
'assessable'=>0,
'answerscales'=>1),
"I"=>array('description'=>$clang->gT("Language Switch"),
'hasdefaultvalues'=>0,
'subquestions'=>0,
'assessable'=>0,
'answerscales'=>0),
"K"=>array('description'=>$clang->gT("Multiple Numerical Input"),
'hasdefaultvalues'=>0,
'subquestions'=>1,
'assessable'=>1,
'answerscales'=>0),
"L"=>array('description'=>$clang->gT("List (Radio)"),
'subquestions'=>0,
'hasdefaultvalues'=>1,
'assessable'=>0,
'answerscales'=>1),
"M"=>array('description'=>$clang->gT("Multiple Options"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"N"=>array('description'=>$clang->gT("Numerical Input"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"O"=>array('description'=>$clang->gT("List With Comment"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>1),
"P"=>array('description'=>$clang->gT("Multiple Options With Comments"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"Q"=>array('description'=>$clang->gT("Multiple Short Text"),
'subquestions'=>1,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"R"=>array('description'=>$clang->gT("Ranking"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>1),
"S"=>array('description'=>$clang->gT("Short Free Text"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"T"=>array('description'=>$clang->gT("Long Free Text"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"U"=>array('description'=>$clang->gT("Huge Free Text"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"X"=>array('description'=>$clang->gT("Boilerplate Question"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"Y"=>array('description'=>$clang->gT("Yes/No"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
"!"=>array('description'=>$clang->gT("List (Dropdown)"),
'subquestions'=>0,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>1),
":"=>array('description'=>$clang->gT("Array (Numbers)"),
'subquestions'=>2,
'hasdefaultvalues'=>0,
'assessable'=>1,
'answerscales'=>0),
";"=>array('description'=>$clang->gT("Array (Texts)"),
'subquestions'=>2,
'hasdefaultvalues'=>0,
'assessable'=>0,
'answerscales'=>0),
);
Expand Down
2 changes: 1 addition & 1 deletion config.php
Expand Up @@ -53,7 +53,7 @@
$defaultpass = 'password'; // This is the password for the administration user when LimeSurvey is installed

// Debug Settings
$debug = 0; // Set this to 1 if you are looking for errors. If you still get no errors after enabling this
$debug = 3; // Set this to 1 if you are looking for errors. If you still get no errors after enabling this
// then please check your error-logs - either in your hosting provider admin panel or in some /logs dir
// on your webspace.
// LimeSurvey developers: Set this to 2 to circumvent the restriction to remove the installation directory
Expand Down
Binary file added images/defaultanswers.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 124985f

Please sign in to comment.