Odyssey
admin_survey.prg
1 <?php
2  $monLibrary= dirname(__FILE__) . "/../library";
3  require_once("$monLibrary/cu_top.i");
4  require_once("$monLibrary/ck_hticket.i");
5 
6  if (!CheckPerm($link, $Hu, basename($_SERVER['SCRIPT_NAME']), $_SERVER['REMOTE_ADDR'])) {
7  // ** Permissions failed
8  // ** redirect to new page
9  header("Location: /hcuadm/hcu_noperm.prg");
10  exit;
11  }
12 
13 $dms_ok=array('survey'=>'string','action'=>'string','delrow'=>'digits','msg'=>'string','showrows'=>'digits','AddChange'=>'string','chgrun'=>'string','qstyle'=>'string','qtext'=>'string','rstat'=>'digits','sname'=>'string','sstart'=>'string','sstop'=>'string','todelete'=>'string','xa'=>'array');
14 dms_import($dms_ok);
15 
16 $survey = (empty($survey) ? "" : trim($survey));
17 $self = $_SERVER['PHP_SELF'] ;
18 $main_url = "https://" . $_SERVER['HTTP_HOST'] . $_SERVER['SCRIPT_NAME'];
19 
20  $pg_ttl = "CU Admin Survey Maintenance";
21 
22 $action = (empty($action) ? "OK" : $action);
23 $action = trim(strtolower($action));
24 
25 $msg = (empty($msg) ? "NO MESSAGE" : $msg);
26 
27 $today = date("m/d/Y");
28 $twoweeks = date("m/d/Y",mktime (0,0,0,date("m") ,date("d")+14,date("Y")));
29 
30 if (trim($delrow) != "") {$action = "delete row";}
31 
32 switch ($action) {
33  case "yes":
34  survey_update("delete survey");
35  break;
36  case "delete survey":
37  confirm($survey, $action);
38  break;
39  case "add":
40  case "save":
41  case "save intro":
42  case "save dates":
43  survey_update("$action");
44  break;
45  case "stretchdate":
46  stretchdate("$msg");
47  break;
48  case "more rows":
49  $showrows += 2;
50  getsurvey("NO MESSAGE");
51  break;
52  case "delete row":
53  array_splice($xa,$delrow,1);
54  $showrows -= 1;
55  getsurvey("NO MESSAGE");
56  break;
57  case "results":
58  showresults("$survey");
59  break;
60  case "cancel":
61  case "no":
62  $survey="";
63  case "find or add":
64  case "ok":
65  getsurvey("$msg");
66  break;
67  }
68 
69 //exit;
70 
71 
72 function survey_update($action) {
73  global $link;
74  global $survey;
75  global $intro;
76  global $sname;
77  global $sstart;
78  global $sstop;
79  global $qtext;
80  global $qstyle;
81  global $rstat;
82  global $Cn;
83  global $self;
84  global $showrows;
85  global $xa;
86  global $today;
87  global $twoweeks;
88  global $allow_html;
89  global $link;
90 
91 $msg = "";
92 
93 
94 if ($action == "add" || $action == "save" || $action == "save dates") {
95  $sname = (trim($sname) == "" ? "" : $sname);
96  $sstart = (trim($sstart) == "" ? "$today" : $sstart);
97  $sstop = (trim($sstop) == "" ? "$twoweeks" : $sstop);
98  $qtext = (trim($qtext) == "" ? "" : $qtext);
99  $qstyle = (($qstyle == 0 || trim($qstyle) == "") ? 1 : $qstyle);
100 
101 // $qtext = strip_tags($qtext, $allow_html);
102  $qtext = strip_tags($qtext); // This option allows NO html tag references
103 
104  // need to check start and stop dates here
105  if (trim($survey) == ""){ $msg .= "<li>Please Select a survey</li>\n"; }
106  if (preg_match("/^ *$/",$survey)) { $msg .= "<li>Invalid survey ID</li>\n";}
107  if (($starttime = strtotime($sstart)) === -1) {
108  $msg .= "<li>Invalid Start Date</li>\n";
109  } else {
110  list($mm,$dd,$yyyy) = explode("/",$sstart);
111  if (!checkdate("$mm", "$dd", "$yyyy")) {
112  $msg .= "<li>Invalid Start Date</li>\n";}
113  }
114  if (($stoptime = strtotime($sstop)) === -1) {
115  $msg .= "<li>Invalid Stop Date</li>\n";
116  } else {
117  list($mm,$dd,$yyyy) = explode("/",$sstop);
118  if (!checkdate("$mm", "$dd", "$yyyy")) {
119  $msg .= "<li>Invalid Stop Date</li>\n";}
120  }
121  if ($starttime > $stoptime) {
122  $msg .= "<li>Start Date must be before Stop Date</li>\n";}
123 
124  if (strlen($qtext) > 500) {
125  $l = strlen($qtext);
126  $msg .= "<li>Question text is too long. Maximum length is 500 characters. You have typed an additional " . ($l - 500) . " characters, please remove some characters and try again.</li>\n";}
127 }
128 
129 
130  if ($msg == ""){
131  switch ($action) {
132  case "delete survey":
133  $what = "Deleted";
134  $sql = "delete from cuadmin_surveymaster
135  where surveyid='$survey';
136  delete from cuadmin_surveydetail where surveyid='$survey';";
137  $sql .= "delete from cuadmin_surveysays
138  where surveyid='$survey';";
139  break;
140  case "save":
141  $sname=prep_save($sname);
142  $qtext=prep_save($qtext);
143  $what = "Updated";
144  $sql= "update cuadmin_surveymaster set
145  startdate='$sstart', stopdate='$sstop',
146  surveyname='$sname', question='$qtext',
147  qstyle='$qstyle', runstat=$rstat
148  where surveyid='$survey'";
149 
150  $sql .= ";delete from cuadmin_surveysays
151  where surveyid='$survey';
152  delete from cuadmin_surveydetail
153  where surveyid='$survey';";
154 
155  for ($prow=0; $prow < $showrows; $prow++) {
156  $answerid = $xa[$prow][0];
157  $answertext = $xa[$prow][1];
158  $drow = $prow+1;
159  if ( trim($answertext) != "") {
160  $answertext = prep_save(strip_tags($answertext)); // Be sure to strip any html tags
161  $sql .= "insert into cuadmin_surveydetail
162  (surveyid, answerid, answertext)
163  values
164  ('$survey','$drow','$answertext');\n";
165  }
166  }
167  break;
168 
169  case "save dates":
170  $what = "Updated";
171  $sql= "update cuadmin_surveymaster set
172  startdate='$sstart',
173  stopdate='$sstop'
174  where surveyid = $survey";
175 
176  break;
177 
178  case "add":
179  $what = "Added";
180  $sname=prep_save($sname);
181  $qtext=prep_save($qtext);
182  $sql = "insert into cuadmin_surveymaster (surveyid, startdate,
183  stopdate, surveyname, question, qstyle, runstat)
184  values (
185  nextval('cuadmin_surveymast_surveyid_seq'),
186  '$sstart','$sstop','$sname','$qtext',
187  '$qstyle', $rstat);";
188 
189  for ($prow=0; $prow < $showrows; $prow++) {
190  $answerid = $xa[$prow][0];
191  $answertext = strip_tags($xa[$prow][1]);
192  $drow = $prow+1;
193  if ( trim($answertext) != "") {
194  $answertext = prep_save(strip_tags($answertext));
195  $sql .= "insert into cuadmin_surveydetail
196  (surveyid, answerid, answertext)
197  values
198  (currval('cuadmin_surveymast_surveyid_seq'),
199  '$drow','$answertext');\n";
200  }
201  }
202  }
203 
204  $sth = db_query($sql,$link);
205  $msg = pg_errormessage();
206  if ($msg == "") { update_success($what);}
207 
208  db_free_result($sth);
209  }
210  if ($msg) {
211  switch ($action) {
212  case "save dates":
213  stretchdate("$msg");
214  break;
215  case "delete survey":
216  $survey="";
217  case "add":
218  case "save":
219  default:
220  getsurvey($msg);
221  break;
222  }
223 }
224 }
225 function getsurvey($msg) {
226 global $link;
227 global $self;
228 global $survey;
229 global $showrows;
230 global $xa;
231 global $AddChange;
232 global $today;
233 global $twoweeks;
234 global $sname;
235 global $qtext;
236 global $qstyle;
237 global $sstart;
238 global $sstop;
239 global $rstat;
240 global $helpicon;
241 global $helpdoc;
242 global $pg_ttl;
243 global $allow_html;
244 global $link;
245 
246  cu_header("List Admin Surveys");
247  $url_view = "&viewmsg=1";
248 
249 print <<<EOF
250 <script language="javascript">
251 <!--
252  function show_preview(status) {
253  var marker="Admin_SurveyView.prg?showid=";
254  helpwin=window.open(marker + status,"_Preview","toolbar=1,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,width=600,height=380");
255  helpwin.focus();
256  }
257 // -->
258 </script>
259 EOF;
260 
261 if (trim($survey)=="") {
262  $urlfindadd=urlencode("Find or Add");
263  $urldelsurvey=urlencode("Delete Survey");
264 
265  // Determine the query by using the current ft type --
266  $sql= "select surveyid, surveyname,
267  to_char(startdate,'mm/dd/yy'),
268  to_char(stopdate,'mm/dd/yy'),
269  case when stopdate < CURRENT_DATE then 3
270  when startdate > CURRENT_DATE then 1
271  else 2 end as datestat,
272  runstat
273  from cuadmin_surveymaster
274  order by 5, 4 desc, 3 desc";
275 
276  $sth = db_query($sql,$link);
277  print <<<EOF
278  <div align=center><br><form action="$self">
279  <table border=0 width=600 cellpadding=0 cellspacing=2 class='dmsbg'><tr><td>
280  <table width=600 cellspacing=0 cellpadding=3 border=0 bgcolor="#EDEDED">
281  <tr><td class="bar" colspan=4 align=center>$pg_ttl</td></tr>
282 EOF;
283  if ("$msg" != "NO MESSAGE") {
284  print <<<EOF
285  <tr><td class="msg" align=right><img src='/monitor/images/alert.black.gif'></td>
286  <td class="msg" colspan=3>$msg</td></tr>
287 EOF;
288  }
289 print<<<EOF
290  <tr><td class='dtl' align='left' colspan=4>
291  <table>
292 EOF;
293 print <<< EOF
294  </tr>
295  <tr><td align='left' colspan="2"><b>&nbsp;&nbsp; <a href="/hcuadm/cuilist.prg" target="parent">Credit Union List</a></td></tr>
296  <tr><td align='right'><b>&nbsp;&nbsp; See Results: </b></td>
297  <td><a href='$self?survey=ALL&action=results' class="white_link">All Surveys</a>&nbsp;
298  <a href='$self?survey=PAST&action=results' class="white_link">Past Surveys</a>&nbsp;
299  <a href='$self?survey=PRESENT&action=results' class="white_link">Present Surveys</a>&nbsp;
300  </td></tr>
301 EOF;
302 print <<< EOF
303  <tr><td align='right'><b>&nbsp;&nbsp;Preview: </b></td>
304  <td><a href='javascript:show_preview("ALL")' class="white_link">All Surveys</a>&nbsp;
305  <a href='javascript:show_preview("DRAFT")' class="white_link">Draft Surveys</a>&nbsp;
306  <a href='javascript:show_preview("PRESENT")' class="white_link">Present Surveys</a>&nbsp;
307  <a href='javascript:show_preview("FUTURE")' class="white_link">Future Surveys</a>&nbsp;
308  </td></tr>
309  </table>
310  </td></tr>
311  <tr><td class="hdr" NOWRAP>Survey
312  </td>
313  <td class="hdr" NOWRAP>Status
314  </td>
315  <td class="hdr" NOWRAP>Run Dates
316  </td>
317  <td class="hdr" align="right">
318  <a href="$self?action=${urlfindadd}&survey=new" class="white_link">New Survey</a>&nbsp;
319  </td></tr>
320 EOF;
321  $rbg="odd";
322  for ($row=0;list($survey, $sname, $sstart, $sstop, $dstat, $rstat) = db_fetch_array($sth,$row); $row++) {
323  switch ($dstat * $rstat){
324  case 0:
325  $sstat = "Draft";
326  break;
327  case 1:
328  $sstat = "Future";
329  break;
330  case 2:
331  $sstat = "Present";
332  break;
333  case 3:
334  $sstat = "Past";
335  break;
336  }
337  $urlsname=urlencode("$sname");
338 print <<<EOF
339  <tr class="{$rbg}"><td class="usul" colspan='3'>
340  <a href="$self?survey=$survey&action=$urlfindadd">$sname</a></td>
341  <td class="usul">&nbsp;</td></tr>
342  <tr class="{$rbg}"><td class="usul">&nbsp;</td>
343  <td class="usul">$sstat</td>
344  <td class="usul">$sstart - $sstop</td>
345  <td class="usul" ><font size=-1>
346  |
347 <a href="$self?survey=$survey&action=$urlfindadd"> &nbsp;Edit&nbsp;</a> |
348 EOF;
349 
350 if ($dstat < 3) {
351 print <<<EOF
352 <a href="javascript:show_preview('$survey')"> &nbsp;View&nbsp;</a> |
353 EOF;
354 } else {
355 print <<<EOF
356  &nbsp;View&nbsp; |
357 EOF;
358 }
359 
360 if ($rstat == 1) {
361 print <<<EOF
362 <a href="$self?survey=$survey&action=stretchdate"> &nbsp;Extend Date&nbsp;</a> |
363 EOF;
364 } else {
365 
366 print <<<EOF
367  &nbsp;<font size="1">Extend Date</font>&nbsp; |
368 EOF;
369 }
370 // No results for messages
371 print <<<EOF
372  <a href="$self?survey=$survey&action=Results"> &nbsp;Results&nbsp;</a> |
373 EOF;
374 print <<<EOF
375  <a href="$self?survey=$survey&action=$urldelsurvey&sname=$urlsname"> &nbsp;Delete&nbsp;</a>
376  </font></td></tr>
377 EOF;
378 $rbg = ($rbg == "odd" ? "even" : "odd");
379 
380  }
381 print "</table></td></tr></table></form></div>";
382 } else {
383 
384  // For Survey
385  $warn_msg = "Warning: Changing this survey will cause all survey results to be deleted!";
386 
387 print <<<EOF
388 <script>
389 function sendform(action) {
390  document.forms[0].action.value=action;
391  document.forms[0].submit();
392 }
393 function validate(mode, chgrun) {
394  var strSurvey = document.forms[0].survey.value;
395  var strMessage = "";
396  var patSpaces = /^ *$/;
397  if (chgrun == 1) {
398  if(!confirm("$warn_msg OK to continue?")) {
399  return false;
400  }
401  }
402 
403  // validate user entries
404 
405  if (strSurvey.length == 0)
406  { strMessage += "Please Select a Survey Number.\\n";}
407  if (patSpaces.exec(strSurvey) != null)
408  { strMessage += "Invalid Survey Number.\\n";}
409  if (strSurvey.indexOf("'") != -1 || strSurvey.indexOf('"') != -1)
410  { strMessage += "Invalid Characters in Survey Number.\\n";}
411 
412 
413  if (strMessage.length > 0) {
414  alert(strMessage);
415  return false;
416  } else {
417  document.forms[0].action.value=mode;
418  document.forms[0].submit();
419 
420  return true;
421  }
422 
423 }
424 function submitform(row) {
425  document.forms[0].delrow.value=row;
426  document.forms[0].action.value='Delete Row';
427  document.forms[0].submit();
428  }
429 
430 </script>
431 EOF;
432 
433 
434  //$loadform = isset($showrows);
435  $loadform = isset($AddChange);
436  if ($loadform == 0 ) {
437 
438  $sql= "select answerid, answertext from cuadmin_surveydetail
439  where surveyid='$survey'";
440  $sth = db_query($sql,$link);
441  for ($row=0;list($answerid, $answertext) = db_fetch_array($sth,$row); $row++) {
442 
443  $xa[$row][0]=$answerid;
444  $xa[$row][1]=$answertext;
445  }
446  $showrows=$row+2;
447 
448  $sql= "select to_char(startdate,'mm/dd/yyyy'),
449  to_char(stopdate,'mm/dd/yyyy'),
450  surveyname, question, qstyle, runstat
451  from cuadmin_surveymaster
452  where surveyid='$survey'";
453  $sth = db_query($sql,$link);
454  if (list($sstart, $sstop, $sname, $qtext, $qstyle, $rstat)
455  = db_fetch_array($sth,0)) {
456  $AddChange = "Save";
457  if ($rstat==1 && $AddChange=="Save") {
458  //print "<script>alert('Warning: Saving changes to this survey will cause all survey results to be deleted!');</script>";
459  print "<script>alert('$warn_msg');</script>";
460  }
461 
462  } else {
463  $AddChange = "Add";
464  }
465  $sname = (trim($sname) == "" ? "" : $sname);
466  $qtext = (trim($qtext) == "" ? "" : $qtext);
467  $sstart = (trim($sstart) == "" ? "$today" : $sstart);
468  $sstop = (trim($sstop) == "" ? "$twoweeks" : $sstop);
469  $qstyle = (($qstyle == 0 || trim($qstyle) == "") ? 1 : $qstyle);
470  $rstat = ($rstat == "" ? 0 : $rstat);
471  }
472 
473  $sname = (trim($sname) == "" ? "" : $sname);
474  $qtext = (trim($qtext) == "" ? "" : $qtext);
475 print <<<EOF
476  <div align=center><br><form name="surveyform" action="$self" method="post">
477  <table border=0 width=400 cellpadding=0 cellspacing=2 class='dmsbg'><tr><td>
478  <table width=400 cellspacing=0 cellpadding=3 border=0 bgcolor="#FFFFFF">
479  <tr><td class="bar" colspan=2 align=center>$pg_ttl</td></tr>
480 EOF;
481  if ($msg != "NO MESSAGE") {
482  print "<tr><td class='msg' colspan=2 align=left>
483  <ul>Error: $msg</ul></font></td></tr>";
484  }
485  if ($rstat==1 && $AddChange=="Save") {
486  $chgrun=1;
487  print "<tr><td class='ahd' colspan=2 align=center>
488  Warning: Saving changes to this survey will cause all survey results to be deleted!<br><input type=hidden name=chgrun value=$chgrun></td></tr>";
489  }
490 print <<<EOF
491  <tr><td class="hdr" colspan="2">Survey Details &nbsp;
492  <input type=hidden name=survey value="$survey">
493  <input type=hidden name="qstyle" value="3">
494  <input type=hidden name="action" value="">
495  <input type=hidden name="AddChange" value="$AddChange">
496  </td>
497  </tr>
498  <tr><td class="small" align="right" nowrap>Survey Name &nbsp;</td>
499  <td class="small">
500  <input type="text" name="sname" size="25" maxlength="50" value="$sname"></td>
501  </tr>
502  <tr><td class="small" align="right">Run Dates &nbsp;</td>
503  <td class="small">
504  <input type=text name="sstart" size="10" maxlength="10" value="$sstart"> &nbsp;to&nbsp;
505  <input type=text name="sstop" size="10" maxlength="10" value="$sstop"></td>
506  </tr>
507 
508  <tr><td class="small" align="right">Status &nbsp;</td><td class="small"><input type="radio" name="rstat" value="1"
509 EOF;
510 if ($rstat == 1) {print " checked";}
511 print <<<EOF
512 > Running &nbsp;&nbsp;
513 <input type="radio" name="rstat" value="0"
514 EOF;
515 if ($rstat == 0) {print " checked";}
516 
517 print <<<EOF
518 > Draft </td></tr>
519 EOF;
520 $qtext = disp_msg($qtext);
521 print <<< EOF
522  <tr><td colspan=2 class="small"><hr width=60%></td></tr>
523  <tr><td class="small" align="right" valign="top">
524  Question &nbsp;
525  </td>
526  <td class="small">
527  <textarea cols="25" rows="6" wrap="virtual" name="qtext"
528  >$qtext</textarea><br>
529 </td></tr>
530 EOF;
531 
532 print <<<EOF
533  <tr><td class="small" colspan=2 align="right">
534  <input type=button value="More Rows" onClick="sendform('More Rows')">
535  <input type=hidden name="showrows" value="$showrows">
536  <input type=hidden name="delrow" value="">
537  </td></tr></table>
538  <table width=400 cellspacing=0 cellpadding=3 border=0>
539  <tr><td class="hdr">Possible Answers</td></tr>
540 EOF;
541  for ($prow=0; $prow < $showrows; $prow++) {
542  print "<tr><td class=\"dtl\"><input type=\"hidden\"
543  name=\"xa[$prow][0]\" value=\"" . $xa[$prow][0] . "\">";
544  print "<input type=\"text\"
545  size=\"37\" maxlength=\"50\"
546  name=\"xa[$prow][1]\" value=\"" . $xa[$prow][1] . "\">";
547  print "&nbsp;<input type=\"button\"
548  value=\"Delete Row\"
549  onClick='submitform(\"$prow\");'>
550  </td></tr>\n";
551  }
552 print <<<EOF
553  <tr><td class="hdr" colspan=2 align=center><hr>
554  <input type=button value="$AddChange" onClick="validate('$AddChange','$chgrun');">
555 EOF;
556 if ($AddChange == "Save") {
557  print <<<EOF
558  <input type=button value="Delete Survey" onClick="sendform('Delete Survey');"><a href='javascript:show_help("$helpdoc#edit_delete");'>$helpicon</a>&nbsp;
559 EOF;
560 } else {
561  print <<<EOF
562 EOF;
563 }
564  print "<input type=button value=\"Cancel\" onClick=\"sendform('Cancel');\">
565  </td></tr></table></td></tr></table></form></div>";
566 }
567 echo cu_footer();
568 }
569 
570 function stretchdate($msg) {
571 global $link;
572 global $self;
573 global $Cn;
574 global $survey;
575 global $today;
576 global $twoweeks;
577 global $helpicon;
578 global $helpdoc;
579 
580 header("Expires: Sat 20 May 1995 03:32:38 GMT");
581 header("Pragma: no-cache");
582 header("Cache-Control: no-cache, must-revalidate");
583  cu_header("Stretch Admin Surveys");
584 print <<<EOF
585 <script language="javascript">
586 <!--
587  function show_help(marker)
588 {
589 helpwin=window.open(marker,"_Help","toolbar=1,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,width=500,height=340");
590 helpwin.focus();
591  }
592 // -->
593 </script>
594 EOF;
595 
596 
597 
598 if (trim($survey)=="") {
599  # redirect to menu?
600 } else {
601 print <<<EOF
602 <script>
603 function sendform(action)
604 {
605  document.forms[0].action.value=action;
606  document.forms[0].submit();
607 }
608 </script>
609 EOF;
610 
611  $sql = "select to_char(startdate,'mm/dd/yyyy') as sstart,
612  to_char(stopdate,'mm/dd/yyyy') as sstop,
613  m.surveyname, question, answertext
614  from cuadmin_surveymaster m, cuadmin_surveydetail d
615  where m.surveyid = $survey
616  and m.surveyid = d.surveyid
617  order by stopdate, m.surveyid, answerid";
618 
619  $sth = db_query($sql,$link);
620 
621  if (db_num_rows($sth) == 0 ) {
622  # redirect to menu?
623 
624  }
625 #
626 # get just the first row and format the heading
627 #
628  list( $sstart, $sstop, $sname, $qtext, $atext ) =
629  db_fetch_array($sth,$row);
630 
631  $sname = (trim($sname) == "" ? "" : $sname);
632  $qtext = (trim($qtext) == "" ? "" : $qtext);
633  $sstart = (trim($sstart) == "" ? "$today" : $sstart);
634  $sstop = (trim($sstop) == "" ? "$twoweeks" : $sstop);
635  $atext = (trim($atext) == "" ? "" : $atext);
636 
637  print <<<EOF
638  <div align=center><br><form name="dateform" action = $self>
639  <table border=0 width=400 cellpadding=0 cellspacing=2 class='dmsbg'><tr><td>
640  <table width=400 cellspacing=0 cellpadding=3 border=0>
641  <tr><td class="bar" colspan=2 align=center>HomeCU Survey Date Change</td></tr>
642 EOF;
643  if ($msg != "NO MESSAGE") {
644  print "<tr><td class='msg' colspan=2 align=left>
645  <ul>Error: $msg</ul></font></td></tr>";
646  }
647 print <<<EOF
648  <tr><td class="hdr" colspan=2>
649  <input type=hidden name=survey value="$survey">
650  <input type=hidden name="action" value=""></td>
651  </tr>
652  <tr><td class="small" align="right">Survey Name <a href='javascript:show_help("$helpdoc#name");'>$helpicon</a>&nbsp;</td>
653  <td class="small">$sname</td>
654  </tr>
655  <tr><td class="small" align="right">Run Dates <a href='javascript:show_help("$helpdoc#dates");'>$helpicon</a>&nbsp;</td>
656  <td class="small">
657  <input type=text name="sstart" size="10" maxlength="10" value="$sstart">
658 &nbsp;to&nbsp;
659  <input type=text name="sstop" size="10" maxlength="10" value="$sstop"></td>
660  </tr>
661  <tr><td colspan=2 class="small"><hr width=60%></td></tr>
662  <tr><td class="small">&nbsp;</td>
663  <td class="small">&nbsp;
664  <input type=button value="Save Dates" onClick="sendform('Save Dates');"><a href='javascript:show_help("$helpdoc#savedate");'>$helpicon</a>&nbsp;&nbsp;
665  <input type=button value="Cancel" onClick="sendform('Cancel');"><a href='javascript:show_help("$helpdoc#cancel");'>$helpicon</a></td></tr>
666 </table></td></tr></table></form>
667 <br><br>
668  <table border=0 width=400 cellpadding=0 cellspacing=2 class='dmsbg'><tr><td>
669  <table border=0 CELLSPACING=0 CELLPADDING=3 width=400>
670  <tr><td CLASS=ahd>$qtext</td></tr>
671  <tr><td class='dtl'>&nbsp;<font size=-1>$atext</font></td></tr>
672 EOF;
673 
674 #
675 # Now get the rest of the rows and format the possible answers
676 #
677 
678  for ($row=1; list( $sstart, $sstop, $sname, $qtext, $atext ) =
679  db_fetch_array($sth,$row); $row++) {
680 
681  print <<<EOF
682  <tr><td class='dtl'>&nbsp;<font size=-1>$atext</font></td></tr>
683 EOF;
684 
685  }
686  print "</table></td></tr></table></div>";
687  db_free_result($sth);
688 
689 
690 }
691 }
692 
693 function confirm($survey, $action) {
694 global $link;
695 global $self;
696 global $Cn;
697 global $sname;
698 global $pg_ttl;
699 
700  if (!$survey) {
701  getsurvey("You must enter a survey number");
702  return;
703  }
704 header("Expires: Sat 20 May 1995 03:32:38 GMT");
705 header("Pragma: no-cache");
706 header("Cache-Control: no-cache, must-revalidate");
707 cu_header("Delete Admin Survey");
708  $sname = (trim($sname) == "" ? "" : $sname);
709 
710  print <<<EOF
711  <div align=center><br><form action="$self">
712  <table border=0 width=500 cellpadding=0 cellspacing=2 class='dmsbg'><tr><td>
713  <table width=500 cellspacing=0 cellpadding=4 border=0>
714  <tr><td class="bar" colspan=2 align=center>$pg_ttl</td></tr>
715  <tr><td class="ahd" colspan=2 align=center>Warning! This action will delete all data<br> (question, answers, and member responses) <br>for survey '$sname'. <br><br>Do you wish to continue?</td></tr>
716 EOF;
717 print <<<EOF
718  <tr><td class="hdr" colspan=2><hr></td>
719  <tr><td class="hdr" align=right>
720  <input type=submit name="action" value="Yes">
721  </td>
722  <td class="hdr" align=left>
723  <input type=submit name="action" value="No">
724  </td>
725  </tr>
726  </table>
727  </td></tr></table>
728  <input type=hidden name="survey" value="$survey">
729  <input type=hidden name="todelete" value="delete survey">
730  </form></div>
731 EOF;
732 }
733 
734 function showresults($survey) {
735 global $link;
736 global $self;
737 global $Cn;
738 global $reason;
739 global $helpdoc;
740 global $helpicon;
741 $today = date("m/d/y");
742 
743  cu_header("Show Admin Surveys");
744 
745 print <<<EOF
746 <script language="javascript">
747 <!--
748  function show_help(marker)
749 {
750 helpwin=window.open(marker,"_Help","toolbar=1,location=0,directories=0,status=1,menubar=0,scrollbars=1,resizable=0,width=500,height=340");
751 helpwin.focus();
752  }
753 // -->
754 </script>
755 EOF;
756 
757 
758  print <<<EOF
759  <center>
760  <table border=0 width=500 cellpadding=0 cellspacing=2 class='dmsbg'><tr><td>
761  <table border=0 align=center width='500' cellspacing=0>
762  <tr><td class='bar' colspan='3' align='center'>
763  HomeCu Survey Results</td></tr></table>
764  <table border=0 align=center width='500' cellspacing=0>
765  <tr><td class='dtl' align='left'>
766  <a href='$self'>Survey Menu</a><a href='javascript:show_help("$helpdoc#menu");'>$helpicon</a>&nbsp;&nbsp;&nbsp;<b> See Results: </b>
767  <a href='$self?survey=ALL&action=results'>All Survey</a>&nbsp;
768  <a href='$self?survey=PAST&action=results'>Past Survey</a>&nbsp;
769  <a href='$self?survey=PRESENT&action=results'>Present Survey</a>&nbsp;
770  </td></tr></table>
771 EOF;
772 
773 
774  switch ($survey) {
775  case "ALL":
776  $sclause = '';
777  break;
778  case "PRESENT":
779  $sclause = " where runstat = 1 and m.startdate <= CURRENT_DATE and m.stopdate >= CURRENT_DATE ";
780  break;
781  case "PAST":
782  $sclause = " where m.stopdate < CURRENT_DATE ";
783  break;
784  default:
785  $sclause = " where m.surveyid = $survey ";
786  break;
787  }
788  $sql = "select d.surveyid, to_char(m.startdate,'mm/dd/yy') as sstart,
789  to_char(m.stopdate,'mm/dd/yy') as sstop,
790  m.question, d.answerid, d.answertext,
791  count(s.oid)
792  from (cuadmin_surveydetail d join cuadmin_surveymaster m on
793  (d.surveyid=m.surveyid))
794  left join cuadmin_surveysays s on
795  (d.surveyid = s.surveyid
796  and d.answerid = s.answerid)
797  $sclause
798  group by d.surveyid, m.startdate, m.stopdate, m.question, d.answerid, d.answertext
799  UNION
800  select m.surveyid, to_char(m.startdate,'mm/dd/yy') as sstart,
801  to_char(m.stopdate,'mm/dd/yy') as sstop,
802  m.question, -1::int4 as answerid,
803  'Total'::varchar as answertext, count(s.cu)
804  from cuadmin_surveymaster m left join cuadmin_surveysays s
805  on (m.surveyid = s.surveyid)
806  $sclause
807  group by m.surveyid, m.startdate, m.stopdate, m.question, answertext
808  order by 1,5";
809 
810  $sth = db_query($sql,$link);
811  $ilist=array('green','red','blue','orange','purple','olive','aqua','brown','yellow');
812  for ($row=0; list( $sid, $sstart, $sstop, $qtext, $aid, $atext, $votes ) =
813  db_fetch_array($sth,$row); $row++) {
814 
815 
816  if ($cur_sid != "$sid"){
817 
818  # if not first question
819 
820  if ($cur_sid != "" ) {
821  echo "<tr><td class='dtl'>&nbsp;</td>
822  <td class='dtl'><font size=-1>Total Votes: </font></td>
823  <td class='dtl'><font size=-1>$totalvotes</font></td></tr>
824  <tr><td colspan=3 class='dtl'><hr></td></tr></table>";
825  }
826 
827  $totalvotes = $votes;
828 
829  echo "<table border=0 CELLSPACING=0 CELLPADDING=3 width=500 align='center'>\n
830  <tr><td class='dtl'><font size=-1><b>Survey Dates:</b> $sstart to $sstop</font></td>
831  <td align=right colspan=2 class='dtl'><font size=-1><b>Results as of:&nbsp;</b>$today</font></td></tr>
832  <tr><td CLASS=ahd colspan=3>$qtext</td></tr>";
833  $cur_sid = "$sid";
834  reset($ilist);
835  } else {
836 
837  if ($totalvotes > 0) {
838  $wide = (($votes / $totalvotes) * 100);
839  $wide = sprintf("%3.1f",$wide);
840  } else {
841  $wide=0;
842  }
843  $color= current($ilist);
844  if (!next($ilist)) {reset($ilist);}
845 
846  print <<<EOF
847  <tr><td width='60%' class='dtl'><font size=-1>$atext</font></td>
848  <td width=140 class='dtl'>
849 EOF;
850  if ($wide > 0 ) {
851  print "<img src='/monitor/images/graph/graph_${color}.gif'
852  height='10' width='$wide'><font size=-1>${wide}%</font></td>";
853  } else {
854  print "&nbsp;</td>";
855  }
856  print <<<EOF
857  <td class='dtl'><font size=-1>$votes votes</font></td>
858  </tr>
859 EOF;
860 
861  }
862  }
863  if ($cur_sid != "" ) {
864  echo "<tr><td class='dtl'>&nbsp;</td>
865  <td class='dtl'><font size=-1>Total Votes: </font></td>
866  <td class='dtl'><font size=-1>$totalvotes</font></td></tr>
867  <tr><td colspan=3 class='dtl'><hr></td></tr></table>";
868  }
869  echo "</td></tr></table>";
870 }
871 
872 function update_success($what) {
873 global $link;
874 global $survey;
875 global $self;
876 global $main_url;
877  $msg=urlencode("Survey $what Successfully");
878  header("Location: $main_url?msg=$msg");
879 }
880 function disp_msg($msg) {
881  return htmlspecialchars(trim($msg));
882 }
883 function error_exit($reason) {
884 global $pg_ttl;
885  print <<<EOF
886  <CENTER><BR>
887  <TABLE BORDER=0 CELLPADDING=6 WIDTH=90%>
888 <tr><td CLASS="bar" align="center">HomeCU $pg_ttl
889 </td></tr><tr>
890  <td class='hdr' align='center'>
891  Unable to complete your request</td></tr>
892  <tr><td class='dtl' align='center'>
893  ${reason}.
894  </td></tr></table>
895 EOF;
896 exit;
897 }