root/trunk/website/soundings/handlers/multiplechoice/edit.cfm @ 41

Revision 5, 7.0 kB (checked in by DanWilson, 17 years ago)

Initial Commit Of ModelGlue? Website (upgrade to blogcfc 511)

Line 
1<cfsetting enablecfoutputonly=true>
2<!---
3        Name         : handlers/multiplechoice/edit.cfm
4        Author       : Raymond Camden
5        Created      : September 17, 2004
6        Last Updated : October 7, 2005
7        History      : try/catch
8        Purpose          : Supports Multiple Choice
9--->
10
11<cfparam name="attributes.multi" default="false">
12<cfparam name="attributes.other" default="false">
13<cfparam name="answers" default="#arrayNew(1)#">
14
15<cfif isDefined("attributes.question")>
16        <cfparam name="form.question" default="#attributes.question.question#">
17        <cfparam name="form.rank" default="#attributes.question.rank#">
18        <cfparam name="form.required" default="#attributes.question.required#">
19        <cfloop query="attributes.question.answers">
20                <cfset answers[arrayLen(answers)+1] = structNew()>
21                <cfset answers[arrayLen(answers)].answer = answer>
22                <cfset answers[arrayLen(answers)].rank = rank>
23                <cfset answers[arrayLen(answers)].id = id>
24        </cfloop>
25<cfelse>
26        <cfparam name="form.question" default="">
27        <cfparam name="form.rank" default="#attributes.toprank+1#">
28        <cfparam name="form.required" default="false">
29</cfif>
30<cfparam name="form.answer_new" default="">
31<cfparam name="form.rank_new" default="">
32<cfparam name="form.answer_new2" default="">
33<cfparam name="form.rank_new2" default="">
34
35<cfif isDefined("form.delete")>
36        <cfset index = listLast(form.delete," ")>
37        <cfset id = answers[index].id>
38        <cfset application.question.deleteAnswer(id)>
39        <cfset arrayDeleteAt(answers,index)>
40</cfif>
41
42<cfif isDefined("form.save")>
43        <cfset form = request.udf.cleanStruct(form)>
44        <cfset errors = "">
45
46        <cfif not len(form.question)>
47                <cfset errors = errors & "You must enter a question.<br>">
48        </cfif>
49       
50        <cfif form.rank is "" or not isNumeric(form.rank) or form.rank lte 0>
51                <cfset errors = errors & "Rank must be 1 or above.<br>">
52        </cfif>
53       
54        <cfset answers = arrayNew(1)>
55        <cfset counter = 1>
56        <cfloop condition="isDefined(""form.answer#counter#"")">
57                <cfset a = form["answer#counter#"]>
58                <cfset r = form["rank#counter#"]>
59                <cfif len(a) and len(r) and isNumeric(r) and r gte 1>
60                        <cfset answers[arrayLen(answers)+1] = structNew()>
61                        <cfset answers[arrayLen(answers)].answer = a>
62                        <cfset answers[arrayLen(answers)].rank = r>
63                        <cfif isDefined("form.answerid#counter#")>
64                                <cfset answers[arrayLen(answers)].id = form["answerid#counter#"]>
65                        </cfif>
66                </cfif>
67                <cfif a is "" and r is "">
68                        <!--- deletion of answer, it's ok, really --->
69                <cfelse>
70                        <cfif a is "">
71                                <cfset errors = errors & "The answer cannot be blank.<br>">
72                        <cfelseif r is "">
73                                <cfset errors = errors & "The rank for #a# cannot be blank.<br>">
74                        <cfelseif not isNumeric(r) or r lte 0>
75                                <cfset errors = errors & "The rank, #r#, must be numeric and greater than zero.<br>">
76                        </cfif>
77                </cfif>
78                <cfset counter = counter + 1>
79        </cfloop>
80        <cfif len(form.answer_new)>
81                <cfif not len(form.rank_new) or not isNumeric(form.rank_new) or form.rank_new lte 0>
82                        <cfset errors = errors & "Your rank for the new answer must be numeric and greater than one.<br>">
83                <cfelse>
84                        <cfset answers[arrayLen(answers)+1] = structNew()>
85                        <cfset answers[arrayLen(answers)].answer = form.answer_new>
86                        <cfset answers[arrayLen(answers)].rank = form.rank_new>
87                        <cfset form.answer_new = "">
88                        <cfset form.rank_new = "">
89                </cfif>                 
90        </cfif>
91        <cfif len(form.answer_new2)>
92                <cfif not len(form.rank_new2) or not isNumeric(form.rank_new2) or form.rank_new2 lte 0>
93                        <cfset errors = errors & "Your rank for the new answer must be numeric and greater than one.<br>">
94                <cfelse>
95                        <cfset answers[arrayLen(answers)+1] = structNew()>
96                        <cfset answers[arrayLen(answers)].answer = form.answer_new2>
97                        <cfset answers[arrayLen(answers)].rank = form.rank_new2>
98                        <cfset form.answer_new2 = "">
99                        <cfset form.rank_new2 = "">
100                </cfif>                 
101        </cfif>
102
103        <cfif arrayLen(answers) lt 2>
104                <cfset errors = errors & "You must have at least two answers.<br>">
105        </cfif>
106               
107        <cfif not len(errors)>
108                <cftry>
109                        <cfif not isDefined("attributes.question")>
110                                <cfset application.question.addQuestion(form.question, form.rank, form.required, attributes.surveyidfk, attributes.questionType.id,answers)>
111                        <cfelse>
112                                <cfset application.question.updateQuestion(attributes.question.id,form.question, form.rank, form.required, attributes.surveyidfk, attributes.questiontype.id,answers)>
113                        </cfif>
114                        <cfset msg = "Your question has been saved.">
115                        <cflocation url="questions.cfm?surveyidfk=#attributes.surveyidfk#&msg=#urlEncodedFormat(msg)#" addToken="false">
116
117                        <cfcatch>
118                                <cfset errors = cfcatch.message>
119                        </cfcatch>
120                </cftry>
121
122        </cfif>
123       
124</cfif>
125
126<cfoutput>
127<p>
128Please use the form below to edit the Multiple Choice
129<cfif attributes.multi>(Multi)<cfelse>(Single)</cfif>
130<cfif attributes.other> (with other) </cfif>
131question. You must have at least two choices.
132</p>
133
134<p>
135<cfif isDefined("errors")><ul><b>#errors#</b></ul></cfif>
136<form action="#cgi.script_name#?#attributes.queryString#" method="post">
137<table cellspacing=0 cellpadding=5 class="adminEditTable" width="100%">
138        <tr valign="top">
139                <td width="200"><b>(*) Question:</b></td>
140                <td><input type="text" name="question" value="#form.question#" size="50"></td>
141        </tr>
142        <tr valign="top">
143                <td><b>(*) Rank:</b></td>
144                <td><input type="text" name="rank" value="#form.rank#" size="2"></td>
145        </tr>
146        <tr valign="top">
147                <td><b>(*) Required:</b></td>
148                <td>
149                        <input type="radio" name="required" value="true" <cfif form.required>checked</cfif>>Yes<br>     
150                        <input type="radio" name="required" value="false" <cfif not form.required>checked</cfif>>No<br>
151                </td>
152        </tr>
153        <!--- Answers --->
154        <cfloop index="x" from="1" to="#arrayLen(answers)#">
155                <cfif structKeyExists(answers[x],"id")>
156                        <input type="hidden" name="answerid#x#" value="#answers[x].id#">
157                </cfif>
158                <tr>
159                        <td><b>Answer #x#:</b></td>
160                        <td><input type="text" name="answer#x#" value="#answers[x].answer#" size="50"></td>
161                </tr>
162                <tr valign="top">
163                        <td><b>Rank #x#:</b></td>
164                        <td><input type="text" name="rank#x#" value="#answers[x].rank#" size="2"> <cfif structKeyExists(answers[x],"id")><input type="submit" name="delete" value="Delete Answer #x#" onClick="return confirm('This change cannot be undone. Are you sure?')"></cfif></td>
165                </tr>   
166        </cfloop>
167        <tr>
168                <td><b>New Answer:</b></td>
169                <td><input type="text" name="answer_new" value="#form.answer_new#" size="50"></td>
170        </tr>
171        <tr valign="top">
172                <td><b>New Rank:</b></td>
173                <td><input type="text" name="rank_new" value="#form.rank_new#" size="2"></td>
174        </tr>   
175        <tr>
176                <td><b>New Answer:</b></td>
177                <td><input type="text" name="answer_new2" value="#form.answer_new2#" size="50"></td>
178        </tr>
179        <tr valign="top">
180                <td><b>New Rank:</b></td>
181                <td><input type="text" name="rank_new2" value="#form.rank_new2#" size="2"></td>
182        </tr>   
183        <tr>
184                <td>&nbsp;</td>
185                <td><input type="submit" name="save" value="Save"> <input type="submit" name="cancel" value="Cancel"></td>
186        </tr>
187</table>
188</form>
189</p>
190
191</cfoutput>
192
193<cfsetting enablecfoutputonly=false>
194
195<cfexit method="exittag">
Note: See TracBrowser for help on using the browser.