From ffc316e2a0143619b1816b15d246ae5f3c99dc0f Mon Sep 17 00:00:00 2001 From: Kaleb Murphy Date: Wed, 23 Apr 2008 16:59:23 +0000 Subject: [PATCH] Adding multiple choice subclass of scale type questions, only difference is answer text location (above button). --- www/extras/wobject/Survey/administersurvey.js | 42 ++++++++++++++----- .../wobject/Survey/editsurvey/question.js | 12 +++--- www/extras/wobject/Survey/survey.css | 8 +++- .../wobject/Survey/templates/takeSurvey.html | 42 ++++++++++++++++++- 4 files changed, 85 insertions(+), 19 deletions(-) diff --git a/www/extras/wobject/Survey/administersurvey.js b/www/extras/wobject/Survey/administersurvey.js index 238f2efdc..91a50d5bd 100644 --- a/www/extras/wobject/Survey/administersurvey.js +++ b/www/extras/wobject/Survey/administersurvey.js @@ -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 = ""; 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 += "
"; html += "
Q"+q.sequenceNumber+": "+q.questionText+"
"; - 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(); } } diff --git a/www/extras/wobject/Survey/editsurvey/question.js b/www/extras/wobject/Survey/editsurvey/question.js index 11edd7b84..097505aa8 100644 --- a/www/extras/wobject/Survey/editsurvey/question.js +++ b/www/extras/wobject/Survey/editsurvey/question.js @@ -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 + "

Previous answers to display:"; html = html + "

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); diff --git a/www/extras/wobject/Survey/survey.css b/www/extras/wobject/Survey/survey.css index bae7b65b3..913bf4383 100644 --- a/www/extras/wobject/Survey/survey.css +++ b/www/extras/wobject/Survey/survey.css @@ -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; +} diff --git a/www/extras/wobject/Survey/templates/takeSurvey.html b/www/extras/wobject/Survey/templates/takeSurvey.html index c5ab9f306..fcc57391b 100644 --- a/www/extras/wobject/Survey/templates/takeSurvey.html +++ b/www/extras/wobject/Survey/templates/takeSurvey.html @@ -7,8 +7,6 @@

-'> -
Q:
@@ -36,6 +34,12 @@
+ + + '> + + + @@ -49,6 +53,33 @@ + + + + + + + + + + + + + +
+ +
+ + + verbatim'> + +
+ + id=> + +
+ + @@ -140,6 +171,11 @@ + +

Comment: comment'>

+
+ +
@@ -149,3 +185,5 @@ + +