Adding multiple choice subclass of scale type questions, only difference is answer text location (above button).

This commit is contained in:
Kaleb Murphy 2008-04-23 16:59:23 +00:00
parent 29d4017b41
commit ffc316e2a0
4 changed files with 85 additions and 19 deletions

View file

@ -4,7 +4,8 @@ if (typeof Survey == "undefined") {
Survey.Form = new function() {
var multipleChoice = {'Multiple Choice':1,'Gender':1,'Yes/No':1,'True/False':1,'Agree/Disagree':1,'Oppose/Support':1,'Importance':1,
var multipleChoice = {'Multiple Choice':1,'Gender':1,'Yes/No':1,'True/False':1};
var scale = {'Agree/Disagree':1,'Oppose/Support':1,'Importance':1,
'Likelihood':1,'Certainty':1,'Satisfaction':1,'Confidence':1,'Effectiveness':1,'Concern':1,'Risk':1,'Threat':1,'Security':1,'Ideology':1,
'Race':1,'Party':1,'Education':1};
var text = {'Text':1, 'Email':1, 'Phone Number':1, 'Text Date':1, 'Currency':1};
@ -14,12 +15,13 @@ Survey.Form = new function() {
var hidden = {'Hidden':1};
var hasFile;
var verb = 0;
var lastSection = 'first';
this.displayQuestions = function(params){
var qs = params.questions;
var s = params.section;
//What to show and where
document.getElementById('survey').innerHTML = params.html;
@ -29,14 +31,16 @@ document.getElementById('survey').appendChild(te);
YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer('','loadQuestions');});
if(qs[0] != undefined){
if(qs[0].sequenceNumber == '1' || s.everyPageTitle > 0){
if(lastSection != s.Survey_sectionId || s.everyPageTitle > 0){
document.getElementById('headertitle').style.display='block';
}
if(qs[0].sequenceNumber == '1' || s.everyPageText > 0){
if(lastSection != s.Survey_sectionId || s.everyPageText > 0){
//if(qs[0].sequenceNumber == '1' || s.everyPageText > 0){
document.getElementById('headertext').style.display = 'block';
}
if(qs[0].sequenceNumber == '1' && s.questionsOnSectionPage != '1'){
if((lastSection != s.Survey_sectionId && lastSection != 'first') || s.questionsOnSectionPage != '1'){
// if(qs[0].sequenceNumber == '1' && s.questionsOnSectionPage != '1'){
var span = document.createElement("div");
span.innerHTML = "<input type=button id='showQuestionsButton' value='Continue'>";
span.style.display = 'block';
@ -56,6 +60,7 @@ YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer
}else{
document.getElementById('questions').style.display='inline';
}
lastSection = s.Survey_sectionId;
}else{
document.getElementById('headertitle').style.display='block';
document.getElementById('headertext').style.display = 'block';
@ -79,14 +84,28 @@ YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer
html += "<hr>";
html += "<div class='question'>Q"+q.sequenceNumber+": "+q.questionText+"</div>";
if(multipleChoice[q.questionType]){
var butts = new Array();
if(multipleChoice[q.questionType] || scale[q.questionType]){
var butts = new Array();
verb = 0;
for(var x = 0; x < q.answers.length; x++){
var a = q.answers[x];
var b = new YAHOO.widget.Button({ type: "checkbox", label: a.answerText, id: a.Survey_answerId+'button', name: a.Survey_answerId+'button',
value: a.Survey_answerId,
container: a.Survey_answerId+"container", checked: false });
var b;
if(scale[q.questionType]){
b = new YAHOO.widget.Button({ type: "checkbox", label: a.recordedAnswer, id: a.Survey_answerId+'button', name: a.Survey_answerId+'button',
value: a.Survey_answerId,
container: a.Survey_answerId+"container", checked: false });
b.label=a.recordedAnswer;
}else{
b = new YAHOO.widget.Button({ type: "checkbox", label: a.answerText, id: a.Survey_answerId+'button', name: a.Survey_answerId+'button',
value: a.Survey_answerId,
container: a.Survey_answerId+"container", checked: false });
b.label=a.answerText;
}
b.setStyle('text-align','center');
b.on("click", this.buttonChanged,[b,a.Survey_questionId,q.maxAnswers,butts,qs.length]);
if(a.verbatim == 1){
verb = 1;
}
b.hid = a.Survey_answerId;
butts.push(b);
}
@ -303,7 +322,8 @@ YAHOO.util.Event.addListener("testB", "click", function(){Survey.Comm.callServer
document.getElementById(qid+'max').innerHTML = parseInt(max+1);
document.getElementById(b.hid).value = 1;
}
if(qsize == 1){
//console.log('qsize '+qsize+' verb '+verb);
if(qsize == 1 && verb == 0){
Survey.Form.formsubmit();
}
}

View file

@ -33,11 +33,13 @@ Survey.QuestionTemplate = new function(){
html = html+ this.makeRadio('randomizeAnswers',[{text:'Yes',value:1},{text:'No',value:0}],params.randomizeAnswers);
html = html + "<p>Previous answers to display:<textarea name='previousAnswerWords' cols=4 rows=2>"+params.previousAnswerWords+"</textarea>";
html = html + "<p>Question type:";
var questions = ['Multiple Choice','Gender','Yes/No','True/False','Agree/Disagree','Oppose/Support','Importance','Likelihood','Certainty','Satisfaction',
'Confidence','Effectiveness','Concern','Risk','Threat','Security','Ideology','Race','Party','Education',
'Text', 'Email', 'Phone Number', 'Text Date', 'Currency',
'Slider','Dual Slider - Range','Multi Slider - Allocate', 'Date','Date Range', 'File Upload','Hidden'];
var questions = ['Agree/Disagree','Certainty','Concern','Confidence','Currency','Date','Date Range','Dual Slider - Range','Education','Effectiveness',
'Email','File Upload','Gender','Hidden','Ideology','Importance','Likelihood','Multi Slider - Allocate','Multiple Choice','Oppose/Support',
'Party','Phone Number','Race','Risk','Satisfaction','Security','Slider','Text','Text Date','Threat','True/False','Yes/No'];
// var questions = ['Multiple Choice','Gender','Yes/No','True/False','Agree/Disagree','Oppose/Support','Importance','Likelihood','Certainty','Satisfaction',
// 'Confidence','Effectiveness','Concern','Risk','Threat','Security','Ideology','Race','Party','Education',
// 'Text', 'Email', 'Phone Number', 'Text Date', 'Currency',
// 'Slider','Dual Slider - Range','Multi Slider - Allocate', 'Date','Date Range', 'File Upload','Hidden'];
html = html + this.makeMenu('questionType',questions,questions,params.questionType);

View file

@ -31,4 +31,10 @@ div.slider-max-thumb {
#questions {
display: none;
}
.yui-button{
text-align: center;
}
.yui-button button{
text-align: center;
min-width: 50px;
}

View file

@ -7,8 +7,6 @@
<form name='surveyForm'>
<input type='hidden' name='section' value='<tmpl_var name='Survey_sectionId'>'>
<tmpl_loop name='questions'>
<hr>
<div class='question'>Q<tmpl_var name='sequenceNumber'>: <tmpl_var name='questionText'></div>
@ -36,6 +34,12 @@
</tmpl_loop>
</tmpl_if>
<tmpl_if name='hidden'>
<tmpl_loop name='answers'>
<input type='hidden' name='<tmpl_var name="Survey_answerId">' value='<tmpl_var name='recordedAnswer'>'>
</tmpl_loop>
</tmpl_if>
<tmpl_if name='text'>
<tmpl_loop name=answers>
<tmpl_var name='verts'>
@ -49,6 +53,33 @@
</tmpl_loop>
</tmpl_if>
<tmpl_if name='scale'>
<table class="scale">
<tr>
<tmpl_loop name=answers>
<th>
<tmpl_var name='answerText'>
</th>
</tmpl_loop>
</tr>
<tr>
<tmpl_loop name=answers>
<td align="center" width="2em">
<span class=answer id="<tmpl_var name='Survey_answerId'>container"></span>
<tmpl_if name='verbatim'>
<span><input type=text name='<tmpl_var name='Survey_answerId'>verbatim'></span>
</tmpl_if>
</td>
</tmpl_loop>
</tr>
</table>
<tmpl_loop name=answers>
<input type=hidden name=<tmpl_var name='Survey_answerId'> id=<tmpl_var name='Survey_answerId'>>
</tmpl_loop>
</tmpl_if>
<tmpl_if name='multipleChoice'>
<tmpl_loop name=answers>
<tmpl_var name='verts'>
@ -140,6 +171,11 @@
</tmpl_if>
</tmpl_if>
<tmpl_if name='allowComment'>
<p>Comment: <input type='text' name='<tmpl_var name='Survey_questionId'>comment'></p>
</tmpl_if>
</tmpl_loop>
<hr><input type=button id=submitbutton value=submitbutton></input>
</form>
@ -149,3 +185,5 @@
<div id="footer"></div>