7 $parameters= array(
"a" => array(
"page" =>
"",
"mode" =>
"",
"answerid" =>
"",
"language" =>
"",
"surveyid" =>
"",
"languageArray" =>
"",
"startdate" =>
"",
"stopdate" =>
"",
8 "surveyname" =>
"",
"surveytitle" =>
"",
"runstat" =>
"",
"employee" =>
"",
"incBalances" =>
"",
"dontshow" =>
"",
"questions" =>
"",
"answers" =>
"",
"answerid" =>
""));
9 $string= array(
"filter" => FILTER_DEFAULT);
10 HCU_ImportVars($parameters,
"a", array(
"page" => $string,
"surveyid" => $string,
"mode" => $string,
"answerid" => $string,
"language" => $string,
"languageArray" => $string,
11 "startdate" => $string,
"stopdate" => $string,
"surveyname" => $string,
"surveytitle" => $string,
"runstat" => $string,
"employee" => $string,
"incBalances" => $string,
12 "dontshow" => $string,
"questions" => $string,
"answers" => $string,
"answerid" => $string));
13 extract($parameters[
"a"]);
15 $page= isset($page) ? trim($page) :
"";
16 $mode= isset($mode) ? trim($mode) :
"";
17 $operation= isset($operation) ? trim($operation) :
"";
18 $showSQL= $SYSENV[
"devmode"];
19 $self=
"$menu_link?ft=$ft";
20 $isMarketing= $ft == 37;
22 require_once(
"surveyMntc.data");
29 printEditPage($isMarketing, $self, $surveyid);
32 $isMarketing ? print
"Page is only available for survey maintenance." : printResultsPage($self, $mode, $surveyid);
35 $isMarketing ? print
"Page is only available for survey maintenance." : printResultDetailPage($self, $surveyid, $language, $answerid);
38 printExtendDatesPage($isMarketing, $self, $surveyid);
41 $isMarketing ? print
"Page is only available for survey maintenance." : printIntroPage($self);
44 $previewData= readView($isMarketing, $dbh, $Cu, $surveyid, $mode,
false);
45 printPreviewPage($isMarketing, $self, $previewData);
50 printMainPage($isMarketing, $self, $mode);
53 print
"Page $page not found.";
62 $returnArray= readMain($isMarketing, $dbh, $Cu);
65 $returnArray= readEdit($isMarketing, $dbh, $Cu, $surveyid);
68 $returnArray= readNew($dbh, $Cu);
71 $returnArray= readView($isMarketing, $dbh, $Cu, $surveyid, $mode,
false);
73 case "readExtendDates":
74 $returnArray= readView($isMarketing, $dbh, $Cu, $surveyid, $mode,
true);
77 $returnArray= readResults($isMarketing, $dbh, $Cu, $mode, $surveyid);
79 case "readResultDetails":
80 $returnArray= readResultDetails($isMarketing, $dbh, $Cu, $surveyid, $language, $answerid);
83 $returnArray=
delete($dbh, $Cu, $surveyid);
86 $returnArray= save($isMarketing, $dbh, $Cu, $surveyid, $startdate, $stopdate, $surveyname, $surveytitle, $runstat, $employee, $incBalances, $dontshow, $questions, $answers,
false);
89 $returnArray= save($isMarketing, $dbh, $Cu, $surveyid, $startdate, $stopdate, $surveyname, $surveytitle, $runstat, $employee, $incBalances, $dontshow, $questions, $answers,
true);
92 $returnArray= readIntro($isMarketing, $dbh, $Cu);
95 $returnArray= saveIntro($isMarketing, $dbh, $Cu, $languageArray);
98 $returnArray= array(
"error" => array(
"Operation not specified: '$operation'"),
"record" => array(),
"sql" => array());
102 header(
'Content-type: application/json');
104 unset($returnArray[
"sql"]);
105 print HCU_JsonEncode($returnArray);
108 function printDeleteAllConfirm($isMarketing, $self, $fromMain)
110 $text= !$isMarketing ?
"survey" :
"marketing message";
111 $warnText= !$isMarketing ?
"Warning! This action will delete all data (question, answers, and member responses) for survey" :
"Warning! This action will delete all data for marketing message";
112 $statusText= (!$isMarketing ?
"Survey" :
"Marketing message") .
" deleted correctly.";
114 function openDeleteAllTemplate(surveyid, surveyname, tr)
116 var deleteConfirmDialog= $(
"#deleteConfirmDialog").data(
"kendoDialog");
118 if (deleteConfirmDialog ==
null)
120 deleteConfirmDialog= $(
"<div id='deleteConfirmDialog'></div>").appendTo(
"body").kendoDialog({
121 title:
"Confirm Deletion",
122 content:
"Are you sure you want to delete these sub-accounts?",
125 {text:
"Yes", primary:
true, action:
function() {
126 deleteConfirmDialog.close();
127 var surveyid= Number($(
"#deleteConfirmDialog").data(
"surveyid"));
129 $.post(
"<?php echo $self ?>&operation=delete", {surveyid: surveyid},
function(data) {
132 if (data.error.length > 0)
133 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
136 <?php
if ($fromMain) { ?>
137 $.homecuValidator.displayMessage(
"<?php echo $statusText; ?>", $.homecuValidator.settings.statusInfo );
138 $(
"#surveyGrid").data(
"kendoGrid").removeRow($(
"#deleteConfirmDialog").data(
"tr"));
140 window.location.href=
"<?php echo $self; ?>&mode=deleted";
150 if (window.activeWindows !=
null)
151 window.activeWindows.push(
this);
154 if (window.activeWindows !=
null)
155 window.activeWindows.pop();
157 }).data(
"kendoDialog");
160 var
template= kendo.template(
'<p><?php echo $warnText; ?> "<b>#: surveyname #</b>."</p>' 161 +
'<p>Do you wish to continue?</p>');
163 $(
"#deleteConfirmDialog").data({surveyid: surveyid, tr: tr});
164 deleteConfirmDialog.content(
template({surveyname: surveyname})).open();
177 function printMainPage($isMarketing, $self, $mode)
179 $text= $isMarketing ?
"Marketing" :
"Surveys";
180 $addText= $isMarketing ?
"Marketing Message" :
"Survey";
181 $modeText= $mode ==
"" ?
"" :
"$text message $mode correctly.";
183 <script type=
"text/javascript">
185 getShowWaitFunctions();
186 printDeleteAllConfirm($isMarketing, $self,
true);
189 var detailRecords= [];
199 $.homecuValidator.setup({formValidate:
"surveyMntcMainForm", formStatusField:
"mainValidateDiv"});
200 var grid= $(
"#surveyGrid").kendoGrid({
203 read:
function (options)
205 options.success(detailRecords);
212 surveyid: {type:
"number"},
213 startdate: {type:
"date"},
214 stopdate: {type:
"date"},
215 surveyname: {type:
"string"},
216 status: {type:
"string"},
217 range: {type:
"string"},
218 surveyType: {type:
"string"},
219 sortid: {type:
"number"}
223 sort: {field:
"sortid", dir:
"desc"}
225 columns: [{title:
"Title"}, {title:
"Type", headerAttributes: {
"class":
"hidden-xs"}}, {title:
"Status", headerAttributes: {
"class":
"hidden-xs"}},
226 {title:
"Range", headerAttributes: {
"class":
"hidden-xs"}}, {headerTemplate:
" "}],
227 rowTemplate: $(
"#rowTemplate").html(),
230 }).data(
"kendoGrid");
232 $(
"#surveyGrid colgroup").each(
function() {
233 $(
this).html(kendo.template($(
"#colTemplate").html()));
237 $.post(
"<?php echo $self; ?>&operation=readMain", {},
function(data) {
239 if (data.error.length > 0)
240 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
243 <?php
if ($modeText !=
"") { ?>
244 $.homecuValidator.displayMessage(
"<?php echo $modeText; ?>", $.homecuValidator.settings.statusInfo );
247 detailRecords= data.record;
248 grid.dataSource.read();
253 $(
"#surveyGrid").on(
"click",
".surveyExtendBtn",
function() {
254 var dataItem= grid.dataItem($(
this).closest(
"tr"));
255 window.location.href=
"<?php echo $self; ?>&page=extendDates&surveyid=" + dataItem.surveyid;
259 $(
"#surveyGrid").on(
"click",
".surveyEditBtn",
function() {
260 var dataItem= grid.dataItem($(
this).closest(
"tr"));
261 window.location.href=
"<?php echo $self; ?>&page=edit&surveyid=" + dataItem.surveyid;
265 $(
"#surveyGrid").on(
"click",
".surveyResultsBtn",
function() {
266 var dataItem= grid.dataItem($(
this).closest(
"tr"));
267 window.location.href=
"<?php echo $self; ?>&page=results&surveyid=" + dataItem.surveyid;
271 $(
"#main-container").on(
"click",
".surveyNewBtn",
function() {
272 window.location.href=
"<?php echo $self; ?>&page=edit";
276 $(
"#surveyGrid").on(
"click",
".surveyDeleteBtn",
function() {
277 var tr= $(
this).closest(
"tr");
278 var dataItem= grid.dataItem(tr);
279 openDeleteAllTemplate(dataItem.surveyid, dataItem.surveyname, tr);
283 $(
"#surveyGrid").on(
"click",
".surveyViewBtn",
function() {
284 var dataItem= $(
"#surveyGrid").data(
"kendoGrid").dataItem($(
this).closest(
"tr"));
285 window.location.href=
"<?php echo $self; ?>&page=preview&surveyid=" + dataItem.surveyid;
290 var activeWindows= [];
291 $(document).ready(
function() {
293 <?php printClickOverlayEvent(); ?>
296 <script type=
"text/x-kendo-template" id=
"rowTemplate">
297 # var extendDateLink= status != "Draft" ? "<a href='\\#' class='surveyExtendBtn'>Extend Date</a>" : "Extend Date"; 298 var viewLink= status !=
"Past" ?
"<a href='\\#' class='surveyViewBtn'>View</a>" :
"View"; #
299 <tr data-uid=
'#: uid #'><td>#: surveyname # <span
class=
"visible-xs-inline"><br><b>Range</b> #: range #<br><b>Status</b> #: status #</span></td>
300 <td
class=
"hidden-xs">#: surveyType #</td>
301 <td
class=
"hidden-xs">#: status #</td>
302 <td
class=
"hidden-xs">#: range #</td>
304 <div
class=
"dropdown">
305 <a href=
"\\#" class=
"dropdown-toggle" data-toggle=
"dropdown" aria-haspopup=
"true" aria-expanded=
"false">Action <span
class=
"caret"></span>
306 <ul
class=
"dropdown-menu" aria-labelledby=
"actionMenu">
307 <li><a href=
'\\#' class=
'surveyEditBtn'>Edit</a></li>
308 # if (status != "Past") { # <li><a href='\\#' class='surveyViewBtn'>View</a></li> # } # 309 # if (status != "Draft") { # <li><a href='\\#' class='surveyExtendBtn'>Extend Date</a></li> # } # 310 <?php
if (!$isMarketing) { ?> <li><a href=
'\\#' class=
'surveyResultsBtn'>Results</a></li> <?php } ?>
311 <li><a href=
'\\#' class=
'surveyDeleteBtn'>Delete</a></li>
318 <script type=
"text/x-kendo-template" id=
"colTemplate">
319 <col
class=
"col-xs-8 col-sm-4 col-lg-2">
320 <col
class=
"hidden-xs col-sm-2 col-lg-1">
321 <col
class=
"hidden-xs col-sm-1 col-lg-1">
322 <col
class=
"hidden-xs col-sm-3 col-lg-1">
323 <col
class=
"col-xs-4 col-sm-2 col-lg-1">
325 <div
class=
"container hcu-all-100">
326 <div
id=
"mainValidateDiv"></div>
327 <div
class=
"row"><div
class=
"col-xs-12"><a href=
'#' class=
'surveyNewBtn'>New <?php echo $addText; ?></a>
328 <?php
if (!$isMarketing) { ?>
329 <div
class=
"row"><div
class=
"col-xs-12"><a href=
"<?php echo $self; ?>&page=intro">Survey Intro</a></div></div>
330 <div
class=
"row"><div
class=
"col-xs-12"><b> See Results: </b>
331 <a href=
"<?php echo $self; ?>&page=results&mode=all" id=
"allSurveys">All Surveys</a> |
332 <a href=
"<?php echo $self; ?>&page=results&mode=past" id=
"pastSurveys">Past Surveys</a> |
333 <a href=
"<?php echo $self; ?>&page=results&mode=present" id=
"presentSurveys">Present Surveys</a>
336 <div
class=
"row"><div
class=
"col-xs-12"><b> Preview: </b>
337 <a href=
"<?php echo $self; ?>&page=preview&mode=all">All <?php echo $text; ?></a> |
338 <a href=
"<?php echo $self; ?>&page=preview&mode=draft">Draft <?php echo $text; ?></a> |
339 <a href=
"<?php echo $self; ?>&page=preview&mode=present">Present <?php echo $text; ?></a> |
340 <a href=
"<?php echo $self; ?>&page=preview&mode=future">Future <?php echo $text; ?></a>
343 <div
class=
"col-xs-12">
344 <div
id=
"surveyGrid" class=
"hcu-all-100"></div>
347 <form
id=
"surveyMntcMainForm"></form> <?php
359 function printPreviewPage($isMarketing, $self, $previewData)
361 $text= $isMarketing ?
"Marketing" :
"Surveys"; ?>
362 <script type=
"text/javascript">
364 getShowWaitFunctions(); ?>
368 $.homecuValidator.setup({formValidate:
'previewDIV', formStatusField:
'formValidate'});
369 var
template= kendo.template($(
"#previewTemplate").html());
370 var data= <?php echo HCU_JsonEncode($previewData); ?>;
371 if (data.error.length > 0)
372 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
374 $(
"#previewDIV").html(
template({languages: data.data}));
377 $(document).ready(
function() {
381 <script type=
"text/x-kendo-template" id=
"previewTemplate">
382 # var l=0; if (languages.length == 0) { # (No Records Found) # } else { 383 for(var i=0, iLength= languages.length; i!= iLength; i++) { var lang= languages[i];
384 if (lang.surveys.length == 0 <?php if (!$isMarketing) { ?> && lang.surveyintro ==
""<?php } ?>)
continue; #
385 <div
class=
"container-fluid" data-language=
"#: lang.language #" data-description=
"#: lang.description #">
386 # if (lang.language != "en_US") { # <div class="row"><div class="col-xs-12 h4">#: lang.description # </div></div> # } # 387 <?php
if (!$isMarketing) { ?> <div
class=
"row"><div
class=
"col-xs-12"><b>Intro:</b> #: lang.surveyintro #</div></div> <?php } ?>
389 # if (lang.surveys.length == 0) { # <div class="col-xs-12">(No Results)</div> # } else { 390 for (var j=0, jLength= lang.surveys.length; j!= jLength; j++) { var survey= lang.surveys[j];
391 var question= survey.question ==
null || survey.question.trim() ==
'' ?
"(No question)" : survey.question; #
392 <div
class=
"well well-sm row">
393 <div
class=
"container-fluid" data-
id=
"#: survey.surveyid #">
394 <div
class=
"col-xs-12 hcu-no-padding"><?php
if (!$isMarketing) { ?>#: question #<?php }
else { ?> #= question # <?php } ?></div>
395 <?php
if (!$isMarketing) { ?>
396 # if (survey.answers.length == 0) { # (No answers) # } else { 397 l++;
for (var k=0, kLength= survey.answers.length; k != kLength; k++) { var answer= survey.answers[k]; #
398 <div
class=
"col-xs-12 hcu-no-padding"><div
class=
"radio radio-inline radio-spacer"><label><input type=
'radio' name=
'radio#: l #'> #: answer.text #</label></div></div>
407 <div
id=
"formValidate"></div>
408 <div
class=
"container-fluid">
409 <div
class=
"row hcuSpacer"><div
class=
"col-xs-12">
410 <a href=
"<?php echo $self; ?>" id=
"surveyMenu"><?php
if ($isMarketing) { ?> Marketing Messages <?php }
else { ?> Survey Menu <?php } ?></a> <b> See Results: </b>
411 <a href=
"<?php echo $self; ?>&page=preview&mode=all">All <?php echo $text; ?></a> |
412 <a href=
"<?php echo $self; ?>&page=preview&mode=draft">Draft <?php echo $text; ?></a> |
413 <a href=
"<?php echo $self; ?>&page=preview&mode=present">Present <?php echo $text; ?></a> |
414 <a href=
"<?php echo $self; ?>&page=preview&mode=future">Future <?php echo $text; ?></a>
417 <div
id=
"previewDIV" class=
"col-xs-12"></div>
431 function printExtendDatesPage($isMarketing, $self, $surveyid)
433 $surveyid= intval($surveyid);
434 $text= $isMarketing ?
"Marketing" :
"Survey";
435 $modeText= $mode ==
"" ?
"" :
"$text message $mode correctly.";
437 <script type=
"text/javascript">
439 getShowWaitFunctions();
448 $.homecuValidator.setup({formValidate:
'surveyMntcEditForm', formStatusField:
'mainValidateDiv'});
450 var fromDatePicker= $(
"[name='from']").kendoDatePicker({}).data(
"kendoDatePicker");
451 var toDatePicker= $(
"[name='to']").kendoDatePicker({}).data(
"kendoDatePicker");
453 $(
"#saveBtn").click(
function() {
454 if ($.homecuValidator.validate())
456 var parameters= {surveyid: <?php echo $surveyid; ?>};
457 parameters.startdate= kendo.toString(fromDatePicker.value(),
"yyyy-MM-dd");
458 parameters.stopdate= kendo.toString(toDatePicker.value(),
"yyyy-MM-dd");
459 parameters.dontshow= $(
"[name='dontShowUsers']").prop(
"checked") ?
"Y" :
"N";
460 parameters.surveyname= $(
"[name='name']").val().trim();
463 $.post(
"<?php echo $self; ?>&operation=extendDates", parameters,
function(data) {
466 if (data.error.length > 0)
467 $.homecuValidator.displayMessage( data.error, $.homecuValidator.settings.statusError );
469 window.location.href=
"<?php echo $self; ?>&mode=saved";
475 $(
"#cancelBtn").click(
function() {
476 window.location.href=
"<?php echo $self; ?>";
480 var templateQuestion=
"# if (language.question == null || language.question.trim() == '') { # (No question) # } else { # ";
481 <?php
if ($isMarketing) { ?>
482 templateQuestion= templateQuestion +
"#= language.question #" +
" # } #"; <?php
483 var templateAnswers=
"";
485 templateQuestion=
"<b>" + templateQuestion +
"#: language.question #" +
" # } #</b>"; <?php
486 var templateAnswers=
"# if (language.answers.length == 0) { # (No answers) # } else { for (var j=0; j!= language.answers.length; j++) { var answer= language.answers[j]; #" 487 +
"<div class='row radio radio-spacer'><label><input type='radio' name='radio#: i #' disabled> #: answer.text #</label></div> # }} # <div class='row'><hr></div></div>" 489 var
template= kendo.template(
"<div class='container' style='width:100%'> # for (var i=0, iLength= languages.length; i!= iLength; i++) { var language= languages[i]; #" 490 +
"<div class='languageWrapper' data-id='#: language.language #'> # if (language.language != 'en_US') { # <div class='row'>( #: language.description # )</div> # } #" 491 +
"<div class='row'>" + templateQuestion +
"</div>" + templateAnswers +
"# } # </div>");
494 $.post(
"<?php echo $self; ?>&operation=readExtendDates", {surveyid: <?php echo $surveyid; ?>},
function(data) {
496 if (data.error.length > 0)
497 $.homecuValidator.displayMessage( data.error, $.homecuValidator.settings.statusError );
500 var masterData= data.data[0];
501 $(
"#surveyNameInput").text(masterData.surveyname);
502 fromDatePicker.value(masterData.startdate);
503 toDatePicker.value(masterData.stopdate);
504 $(
"[name='dontShowUsers']").prop(
"checked", masterData.dontShow);
505 $(
"[name='name']").val(masterData.surveyname);
507 $(
"#surveyPreview").html(
template(masterData));
511 $(document).ready(
function() {
516 .radio-spacer input {
532 <div
class=
"surveyMntcMax"><div
id=
"surveyMntcContainer" class=
"container-fluid hcu-template"><form
id=
"surveyMntcEditForm">
534 <div
id=
"mainValidateDiv" class=
"k-block k-error-colored formValidateDiv" style=
"display:none;"></div>
536 <div
class=
"row"><div
class=
"col-xs-12 h3"><?php echo $text; ?> Details</div></div>
537 <div
class=
"row hcuSpacer">
538 <div
class=
"col-xs-12 col-sm-2"><?php echo $text; ?> Name</div>
539 <div
class=
"col-xs-12 col-sm-10"><input type=
"text" class=
"k-input k-textbox hcu-all-100" name=
"name" maxlength=
"50"></div>
541 <div
class=
"row hcuSpacer">
542 <div
class=
"col-xs-12 col-sm-2">Run Dates</div>
543 <div
class=
"col-xs-12 col-sm-10 hcu-no-padding">
544 <div
class=
"col-xs-5"><input
id=
"from" name=
"from" required
class=
"hcu-all-100" homecu-match=
"date" data-homecuCustomMatch-msg=
"From date is invalid"></div>
545 <div
class=
"col-xs-2"><center>To</center></div>
546 <div
class=
"col-xs-5"><input
id=
"to" name=
"to" required
class=
"hcu-all-100" homecu-match=
"date" data-homecuCustomMatch-msg=
"To date is invalid" homecu-dategtvalue=
"from" 547 homecu-dategttype=
"field" data-homecuCustomDateGTValue-msg=
"Invalid range"></div>
551 <?php
if (!$isMarketing) { ?>
553 <div
class=
"check"><label
class=
"col-xs-12"><input type=
"checkbox" name=
"dontShowUsers"> Suppress survey results from the member?</label></div>
556 <div
class=
"row"><hr
class=
"col-xs-12"></div>
558 <div
class=
"col-xs-12 col-sm-2">Preview</div>
559 <div
class=
"col-xs-12 col-sm-10"><div
class=
"well well-sm"><div
id=
'surveyPreview' class=
"hcu-all-100"></div></div></div>
562 <div
class=
"hcu-edit-buttons k-state-default row">
563 <a
id=
'cancelBtn' href=
"#">Cancel</a>
564 <a
id=
"saveBtn" class=
"k-button k-primary" href=
"#">Save Dates</a>
573 function printValidateQuestionsAnswers()
584 validateAnswers:
function(input)
586 if (input.is(
"[name='validateAnswers']"))
588 var showSpanish= !$(
"#surveyMntcContainer").hasClass(
"hideBB");
589 var showPolish= !$(
"#surveyMntcContainer").hasClass(
"hideCC");
591 $(
"#surveyQuestionTabStrip .question[data-language]").each(
function() {
592 if ($(
this).val() !=
"")
595 switch($(
this).data(
"language"))
598 $(input).attr(
"data-validateAnswers-msg",
"English question must be populated.");
605 $(input).attr(
"data-validateAnswers-msg",
"Spanish question must be populated.");
613 $(input).attr(
"data-validateAnswers-msg",
"Spanish question must be populated.");
624 $(
"#answerGrid tbody tr td").each(
function() {
625 var emptyEnglish= $(
this).find(
"[data-language='en_US'] input").val().trim() ==
"";
626 var emptySpanish= $(
this).find(
"[data-language='es_US'] input").val().trim() ==
"";
627 var emptyPolish= $(
this).find(
"[data-language='pl_US'] input").val().trim() ==
"";
629 if (emptyEnglish && ((showSpanish && !emptySpanish) || (showPolish && !emptyPolish)))
632 $(input).attr(
"data-validateAnswers-msg",
"English answers must be populated when other languages are filled in.");
636 if (!emptyEnglish && showSpanish && emptySpanish)
639 $(input).attr(
"data-validateAnswers-msg",
"Spanish answers must be populated.");
643 if (!emptyEnglish && showPolish && emptyPolish)
646 $(input).attr(
"data-validateAnswers-msg",
"Polish answers must be populated.");
662 function printSurveyOnlyExtraFunctions()
672 function initAnswerGrid()
675 var answerGrid= $(
"#answerGrid").kendoGrid({
682 rowid: {type:
"number"},
683 english: {type:
"string"},
684 spanish: {type:
"string"},
685 polish: {type:
"string"}
690 columns: [{headerTemplate: kendo.template($(
"#answerGridHeaderTemplate").html())}],
691 rowTemplate: $(
"#answerGridRowTemplate").html(),
693 template:
"<tr><td>No Records Found!</td></tr>" 695 toolbar:
"<a class='k-grid-add' href='\\#'>Add Answer Row</a>",
701 }).data(
"kendoGrid");
703 var inAdd=
false; <?php
704 $(
"#answerGrid").on(
"click",
".k-grid-add",
function() {
707 answerGrid.saveChanges();
712 $(
"#answerGrid .k-grid-header").addClass(
"hidden-xs");
714 $(
"<div id='answerDeleteWindow'></div>").appendTo(
"body");
716 $(
"#answerGrid").on(
"click",
".k-grid-custdelete",
function() {
717 var deleteWindow= $(
"#answerDeleteWindow").data(
"kendoDialog");
719 if (deleteWindow ==
null)
721 var deleteWindow= $(
"<div id='answerDeleteWindow'></div>").kendoDialog({
722 content:
"<p>Are you sure you want to remove this answer?</p>",
725 title:
"Confirm Removal",
728 if (window.activeWindows !=
null)
729 window.activeWindows.push(
this);
732 if (window.activeWindows !=
null)
733 window.activeWindows.pop();
737 {text:
"Yes", primary:
true, action:
function() {
738 deleteWindow.close();
739 var tr= $(
"#answerDeleteWindow").data(
"tr");
740 $(
"#answerGrid").data(
"kendoGrid").removeRow(tr);
743 }).data(
"kendoDialog");
745 $(
"#answerDeleteWindow").data(
"tr", $(
this).closest(
"tr"));
750 $(
"#answerGrid").on(
"blur",
"tbody [data-language] input",
function() {
754 var value= $(
this).val().trim();
755 var tr= $(
this).closest(
"tr");
756 var language= $(
this).closest(
"[data-language]").attr(
"data-language").trim();
757 var dataItem= answerGrid.dataItem(tr);
761 dataItem.english= value;
764 dataItem.spanish= value;
767 dataItem.polish= value;
778 function printMarketingMessageOnlyExtraFunctions()
785 function initTinyMCE()
788 selector:
"#surveyQuestionTabStrip textarea",
789 relative_urls:
false,
790 remove_script_host :
false,
792 "advlist autolink link image lists preview anchor pagebreak",
793 "searchreplace visualblocks visualchars code insertdatetime nonbreaking",
794 "table contextmenu directionality template textcolor homecuchar paste textcolor" 796 toolbar1:
"code newdocument | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | fontselect fontsizeselect | bullist numlist",
797 toolbar2:
"outdent indent blockquote | undo redo | link unlink image | preview | forecolor backcolor | removeformat | homecuchar | nonbreaking",
800 toolbar_items_size:
"small",
801 valid_children :
"+body[style]" 816 function printEditPage($isMarketing, $self, $surveyid=0)
818 $cloudfrontDomainName = GetCloudFrontDomainName();
819 $tinymceVersion = GetTinyMCEVersion ();
820 $surveyid= intval($surveyid);
821 $text= $isMarketing ?
"Message" :
"Survey";
822 $saveInfo= $isMarketing ?
"Changing this marketing message will cause all members to see the message!" :
"Saving this survey will remove survey results!";
823 $confirmSaveText= $isMarketing ?
"marketing message" :
"survey";
825 <?php
if ($isMarketing) { ?>
826 <script type=
"text/javascript" src=
"https://<?php echo $cloudfrontDomainName; ?>/homecu/js/tinymce/<?php echo $tinymceVersion; ?>/tinymce.min.js"></script>
827 <script type=
"text/javascript" src=
"https://<?php echo $cloudfrontDomainName; ?>/homecu/js/tinymce/homecuchar.plugin.js"></script>
829 <script type=
"text/javascript">
831 getShowWaitFunctions();
833 printDeleteAllConfirm($isMarketing, $self,
false);
834 $isMarketing ? printMarketingMessageOnlyExtraFunctions() : printSurveyOnlyExtraFunctions(); ?>
845 $.homecuValidator.setup({formValidate:
'surveyMntcEditForm', formStatusField:
'mainValidateDiv', homecuCustomRules: {
846 <?php
if (!$isMarketing) { printValidateQuestionsAnswers(); } ?>
849 var fromDatePicker= $(
"[name='fromEdit']").kendoDatePicker({}).data(
"kendoDatePicker");
850 var toDatePicker= $(
"[name='toEdit']").kendoDatePicker({}).data(
"kendoDatePicker");
852 <?php
if (!$isMarketing) { ?>
862 $(
"#saveBtn").click(
function() {
863 if ($.homecuValidator.validate())
865 var saveWindow= $(
"#saveWindow").data(
"kendoDialog");
866 if (saveWindow ==
null)
868 saveWindow= $(
"<div id='saveWindow'></div>").appendTo(
"body").kendoDialog({
869 content:
"<p>Are you sure you want to save this <?php echo $confirmSaveText; ?>?</p>" + ($(
this).data(
"hasResults") ?
"<p><?php echo $saveInfo; ?></p>" :
""),
872 title:
"Confirm Save",
876 if (window.activeWindows !=
null)
877 window.activeWindows.push(
this);
880 if (window.activeWindows !=
null)
881 window.activeWindows.pop();
885 {text:
"Save", primary:
true, action:
function() {
887 doSave(fromDatePicker, toDatePicker, questionTabStrip);
890 }).data(
"kendoDialog");
898 $(
"#cancelBtn").click(
function() {
899 window.location.href=
"<?php echo $self; ?>";
903 var questionTabStrip= $(
"#surveyQuestionTabStrip").kendoTabStrip({
904 dataTextField:
"description",
905 dataContentField:
"template",
912 language: {type:
"string"},
913 description: {type:
"string"},
914 question: {type:
"string"},
915 template: {type:
"string"},
916 index: {type:
"number"}
921 activate:
function(e)
923 <?php
if ($isMarketing) { ?>
924 if (tinymce.editors.length > 0)
926 var index= $(e.item).index();
927 tinymce.editors[index].focus();
930 $(
"#surveyQuestionTabStrip textarea:visible").focus();
933 }).data(
"kendoTabStrip");
936 setTimeout(
function() {
937 $(questionTabStrip.wrapper).find(
".k-tabstrip-items li").each(
function(index) {
938 var classClass= index == 0 ?
"aa" : (index == 1 ?
"bb" :
"cc");
939 $(
this).addClass(classClass);
943 $(
"#addSpanishBtn").click(
function() {
944 if ($(
this).text().trim() ==
"Add Spanish")
946 $(
"#surveyMntcContainer").removeClass(
"hideBB");
947 $(
this).text(
"Remove Spanish");
951 $(
"#surveyMntcContainer").addClass(
"hideBB");
952 $(
this).text(
"Add Spanish");
955 <?php
if (!$isMarketing) { ?>
956 var grid= $(
"#answerGrid").data(
"kendoGrid");
957 var options= grid.getOptions();
958 options.columns[0].headerAttributes= kendo.template($(
"#answerGridHeaderTemplate").html());
960 grid.setOptions(options);
961 $(
"#answerGrid .k-grid-header").addClass(
"hidden-xs");
966 $(
"#addPolishBtn").click(
function() {
967 if ($(
this).text().trim() ==
"Add Polish")
969 $(
"#surveyMntcContainer").removeClass(
"hideCC");
970 $(
this).text(
"Remove Polish");
974 $(
"#surveyMntcContainer").addClass(
"hideCC");
975 $(
this).text(
"Add Polish");
978 <?php
if (!$isMarketing) { ?>
979 var grid= $(
"#answerGrid").data(
"kendoGrid");
980 var options= grid.getOptions();
981 options.columns[0].headerAttributes= kendo.template($(
"#answerGridHeaderTemplate").html());
983 grid.setOptions(options);
984 $(
"#answerGrid .k-grid-header").addClass(
"hidden-xs");
989 <?php
if (!$isMarketing) { ?>
990 $(
"#surveyQuestionTabStrip").on(
"blur",
"textarea",
function() {
991 $(
"[name='validateQuestions']").blur();
992 var data= questionTabStrip.dataSource.data();
993 var row= data[$(
this).closest(
".questionTemplateBody").data(
"index")];
994 row.question= $(
this).val();
998 var questionTemplate=
'<div data-index="#:index#" class="questionTemplateBody"><textarea class="question" data-language="#: language #" style="width:100%" maxlength="2000">' 999 +
'#:question#</textarea></div>';
1006 if ($surveyid != 0) { ?>
1008 $.post(
"<?php echo $self; ?>&operation=readEdit", {surveyid: <?php echo $surveyid; ?>},
function(data) {
1010 if (data.error.length > 0)
1011 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1014 $(
"[name='name']").val(data.masterData.surveyname);
1015 fromDatePicker.value(data.masterData.startdate);
1016 toDatePicker.value(data.masterData.stopdate);
1017 $(
"[name='draft']").prop(
"checked", data.masterData.isDraft);
1018 $(
"[name='includeEmps']").prop(
"checked", data.masterData.affectsEmployees);
1019 $(
"[name='type']:eq(" + (data.masterData.isPopup ? 0 : 1) +
")").prop(
"checked",
true);
1020 $(
"[name='dontShowUsers']").prop(
"checked", data.masterData.dontShow);
1022 questionTemplate= kendo.template(questionTemplate);
1023 var englishIndex= -1;
1024 for(var i=0; i!= data.questionData.length; i++)
1026 var row= data.questionData[i];
1028 row.template= questionTemplate(row);
1031 if (row.language ==
"en_US")
1035 questionTabStrip.dataSource.data(data.questionData);
1036 questionTabStrip.select(englishIndex);
1038 if (data.hasSpanish)
1040 $(
"#surveyMntcContainer").removeClass(
"hideBB");
1041 $(
"#addSpanishBtn").text(
"Remove Spanish");
1045 $(
"#surveyMntcContainer").removeClass(
"hideCC");
1046 $(
"#addPolishBtn").text(
"Remove Polish");
1049 <?php
if (!$isMarketing) { ?>
1050 rowid= data.nextAnswerRowid;
1051 $(
"#answerGrid").data(
"kendoGrid").dataSource.data(data.answerData);
1053 if (data.hasSpanish || data.hasPolish)
1055 var grid= $(
"#answerGrid").data(
"kendoGrid");
1056 var options= grid.getOptions();
1057 options.columns[0].headerAttributes= kendo.template($(
"#answerGridHeaderTemplate").html());
1059 grid.setOptions(options);
1060 $(
"#answerGrid .k-grid-header").addClass(
"hidden-xs");
1063 $(
"[name='title']").val(data.masterData.surveytitle);
1067 if (data.hasResults)
1069 $(
"#saveNotice").show();
1070 openAnnoyingPopup();
1073 $(
"#saveBtn").data(
"hasResults", data.hasResults);
1075 $(
"#deleteBtn").click(
function() {
1076 openDeleteAllTemplate(<?php echo $surveyid; ?>, data.masterData.surveyname);
1089 $.post(
"<?php echo $self; ?>&operation=readNew", {},
function(data) {
1091 if (data.error.length > 0)
1092 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1095 questionTemplate= kendo.template(questionTemplate);
1096 var englishIndex= -1;
1097 for(var i=0; i!= data.questionData.length; i++)
1099 var row= data.questionData[i];
1101 row.template= questionTemplate(row);
1104 if (row.language ==
"en_US")
1108 questionTabStrip.dataSource.data(data.questionData);
1109 questionTabStrip.select(englishIndex);
1111 <?php
if (!$isMarketing) { ?>
1113 $(
"#answerGrid").data(
"kendoGrid").dataSource.data([]);
1118 $(
"#saveBtn").data(
"hasResults",
false);
1133 function openAnnoyingPopup()
1135 var annoyingPopup= $(
"#annoyingPopup").data(
"kendoDialog");
1136 if (annoyingPopup ==
null)
1138 $(
"<div id='annoyingPopup'></div>").appendTo(
"body");
1139 annoyingPopup= $(
"#annoyingPopup").kendoDialog({
1140 content:
"<?php echo $saveInfo; ?>",
1147 {text:
"Okay", primary:
true}
1150 if (window.activeWindows !=
null)
1151 window.activeWindows.push(
this);
1154 if (window.activeWindows !=
null)
1155 window.activeWindows.pop();
1157 }).data(
"kendoDialog");
1159 annoyingPopup.open();
1172 function doSave(fromDatePicker, toDatePicker, questionTabStrip)
1174 var parameters= {surveyid: <?php echo $surveyid; ?>};
1175 parameters.startdate= kendo.toString(fromDatePicker.value(),
"yyyy-MM-dd");
1176 parameters.stopdate= kendo.toString(toDatePicker.value(),
"yyyy-MM-dd");
1177 parameters.surveyname= $(
"[name='name']").val();
1178 parameters.runstat= $(
"[name='draft']").prop(
"checked") ? 0 : 1;
1179 parameters.employee= $(
"[name='includeEmps']").prop(
"checked") ?
"Y" :
"N";
1180 parameters.incBalances= $(
"[name='type']:checked").data(
"val") ==
"balances" ?
"Y" :
"N";
1181 parameters.dontshow= $(
"[name='dontShowUsers']").prop(
"checked") ?
"Y" :
"N";
1183 <?php
if (!$isMarketing) { ?>
1184 var data= questionTabStrip.dataSource.data();
1186 var showSpanish= !$(
"#surveyMntcContainer").hasClass(
"hideBB");
1187 var showPolish= !$(
"#surveyMntcContainer").hasClass(
"hideCC");
1188 for(var i=0; i!= data.length; i++)
1191 var language= row.language.trim();
1192 var question= row.question.trim();
1193 if (language ==
"en_US" || (showSpanish && language ==
"es_US") || (showPolish && language ==
"pl_US"))
1194 condensed.push({question: row.question.trim(), language: row.language.trim()});
1196 parameters.questions= kendo.stringify(condensed);
1199 answers= $(
"#answerGrid").data(
"kendoGrid").dataSource.view();
1201 for(var i=0; i!= answers.length; i++)
1203 var row= answers[i];
1204 var english= row.english.trim();
1205 var spanish= showSpanish ? row.spanish.trim() :
"";
1206 var polish= showPolish ? row.polish.trim() :
"";
1208 if (english !=
"" || spanish !=
"" || polish !=
"")
1209 condensed.push({english: english, spanish: spanish, polish: polish});
1212 parameters.answers= kendo.stringify(condensed);
1215 for(var i=0; i != tinymce.editors.length; i++)
1217 var editor= tinymce.editors[i];
1218 var value= editor.getContent().trim();
1232 tinyData.push({question: value, language: language});
1234 parameters.questions= kendo.stringify(tinyData);
1235 parameters.surveytitle= $(
"[name='title']").val();
1239 $.post(
"<?php echo $self; ?>&operation=save", parameters,
function(data) {
1240 if (data.error.length > 0)
1243 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1246 window.location.href=
"<?php echo $self; ?>&mode=saved";
1250 var activeWindows= [];
1251 $(document).ready(
function() {
1253 <?php printClickOverlayEvent(); ?>
1257 <?php
if (!$isMarketing) { ?>
1258 <script type=
"text/x-kendo-template" id=
"answerGridRowTemplate">
1259 <tr data-uid=
"#=uid#">
1260 <td
class=
"container-fluid">
1262 # var showSpanish= !$("\\#surveyMntcContainer").hasClass("hideBB"); 1263 var showPolish= !$(
"\\#surveyMntcContainer").hasClass(
"hideCC");
1264 var division= showSpanish ? (showPolish ?
"col-sm-4" :
"col-sm-6") : (showPolish ?
"col-sm-6" :
"col-sm-12"); #
1266 <div
class=
"col-xs-12 col-sm-10 hcu-no-padding">
1267 <div
class=
"aa col-xs-12 #= division #" data-language=
"en_US">
1268 <label
class=
"col-xs-12 hidden-sm hidden-md hidden-lg hcu-no-padding">English</label>
1269 <div
class=
"col-xs-12 hcu-no-padding"><input type=
"text" class=
"k-input k-textbox hcu-all-100" value=
"#:english#" maxlength=
"255"></div>
1271 <div
class=
"bb col-xs-12 #= division #" data-language=
"es_US">
1272 <label
class=
"col-xs-12 hidden-sm hidden-md hidden-lg hcu-no-padding">Spanish</label>
1273 <div
class=
"col-xs-12 hcu-no-padding"><input type=
"text" class=
"k-input k-textbox hcu-all-100" value=
"#:spanish#" maxlength=
"255"></div>
1275 <div
class=
"cc col-xs-12 #= division #" data-language=
"pl_US">
1276 <label
class=
"col-xs-12 hidden-sm hidden-md hidden-lg hcu-no-padding">Polish</label>
1277 <div
class=
"col-xs-12 hcu-no-padding"><input type=
"text" class=
"k-input k-textbox hcu-all-100" value=
"#:polish#" maxlength=
"255"></div>
1280 <div
class=
"col-xs-12 col-sm-2"><a href=
"\\#" class=
"k-grid-custdelete">Remove</a></div>
1284 <script type=
"text/x-kendo-template" id=
"answerGridHeaderTemplate">
1285 <div
class=
"container-fluid">
1286 # var showSpanish= !$("\\#surveyMntcContainer").hasClass("hideBB"); 1287 var showPolish= !$(
"\\#surveyMntcContainer").hasClass(
"hideCC");
1288 var division= showSpanish ? (showPolish ?
"col-sm-4" :
"col-sm-6") : (showPolish ?
"col-sm-6" :
"col-sm-12"); #
1290 <div
class=
"col-sm-10 hcu-no-padding">
1291 <div
class=
"aa #= division #" data-language=
"english">English</div>
1292 <div
class=
"bb #= division #" data-language=
"spanish">Spanish</div>
1293 <div
class=
"cc #= division #" data-language=
"polish">Polish</div>
1295 <div
class=
"col-sm-2"> </div>
1300 .radio-spacer input {
1315 <div
class=
"surveyMntcMax"><div
id=
"surveyMntcContainer" class=
"container-fluid hcu-template hideBB hideCC"><form
id=
"surveyMntcEditForm">
1317 <div
id=
"mainValidateDiv" class=
"k-block k-error-colored formValidateDiv" style=
"display:none;"></div>
1319 <div
class=
"row"><div
class=
"col-xs-12 h3"><?php echo $text; ?> Details</div></div>
1320 <div
class=
"row hcuSpacer">
1321 <div
class=
"col-xs-12 col-sm-2"><?php echo $text; ?> Name</div>
1322 <div
class=
"col-xs-12 col-sm-10"><input type=
"text" class=
"k-input k-textbox hcu-all-100" name=
"name" maxlength=
"50"></div>
1324 <?php
if ($isMarketing) { ?>
1325 <div
class=
"row hcuSpacer">
1326 <div
class=
"col-xs-12 col-sm-2"><?php echo $text; ?> Title</div>
1327 <div
class=
"col-xs-12 col-sm-10"><input type=
"text" class=
"k-input k-textbox hcu-all-100" name=
"title"></div>
1330 <div
class=
"row hcuSpacer">
1331 <div
class=
"col-xs-12 col-sm-2">Run Dates</div>
1332 <div
class=
"col-xs-12 col-sm-10 hcu-no-padding">
1333 <div
class=
"col-xs-5"><input
id=
"fromEdit" name=
"fromEdit" required
class=
"hcu-all-100" homecu-match=
"date" data-homecuCustomMatch-msg=
"From date is invalid" 1334 data-required-msg=
"From date is required"></div>
1335 <div
class=
"col-xs-2"><center>To</center></div>
1336 <div
class=
"col-xs-5"><input
id=
"toEdit" name=
"toEdit" required
class=
"hcu-all-100" homecu-match=
"date" data-homecuCustomMatch-msg=
"To date is invalid" 1337 homecu-dategtvalue=
"fromEdit" homecu-dategttype=
"field" data-homecuCustomDateGTValue-msg=
"Invalid range" data-required-msg=
"To date is required"></div>
1342 <div
class=
"col-xs-12 col-sm-6 hcu-no-padding">
1343 <div
class=
"check"><label
class=
"col-xs-12"><input type=
"checkbox" name=
"draft"> Save As Draft?</label></div>
1344 <div
class=
"check"><label
class=
"col-xs-12"><input type=
"checkbox" name=
"includeEmps"> CU Employees?</label></div>
1345 <?php
if (!$isMarketing) { ?>
1346 <div
class=
"check"><label
class=
"col-xs-12"><input type=
"checkbox" name=
"dontShowUsers"> Suppress survey results from the member?</label></div>
1349 <div
class=
"col-xs-12 col-sm-6 hcu-no-padding">
1350 <div
class=
"col-xs-12"><div
class=
"radio radio-spacer"><label><input type=
"radio" name=
"type" data-val=
"popup" checked>Popup <?php echo $text; ?> upon member login</label>
1352 <div
class=
"col-xs-12"><div
class=
"radio radio-spacer"><label><input type=
"radio" name=
"type" data-val=
"balances">Include <?php echo $text; ?> in Balances screen</label>
1357 <div
class=
"row"><div
class=
"col-xs-12 h3"><?php echo $isMarketing ?
"Message" :
"Question"; ?></div></div>
1359 <div
class=
"col-xs-12"><div
id=
"surveyQuestionTabStrip" class=
"hcu-all-100"></div></div>
1360 <div
class=
"col-xs-12"><a href=
"#" id=
"addSpanishBtn">Add Spanish</a> | <a href=
"#" id=
"addPolishBtn">Add Polish</a></div>
1363 <?php
if (!$isMarketing) { ?>
1364 <div
class=
"row"><div
class=
"col-xs-12 h3">Possible Answers</div></div>
1366 <div
class=
"col-xs-12"><div
id=
"answerGrid" class=
"hcu-all-100"></div></div>
1368 <input type=
"hidden" name=
"validateAnswers">
1371 <div
class=
"hcu-edit-buttons k-state-default row">
1372 <?php
if ($surveyid != 0) { ?><span
class=
"hcu-icon-delete"><a
id=
'deleteBtn' href=
"#"><i
class=
"fa fa-trash-o fa-lg"></i></a></span><?php } ?>
1373 <a
id=
'cancelBtn' href=
"#">Cancel</a>
1374 <a
id=
"saveBtn" class=
"k-button k-primary" href=
"#">Save</a>
1387 function printResultsPage($self, $mode=
"single", $surveyid=0)
1389 $surveyid= intval($surveyid);
1401 margin-bottom: 10px;
1404 progress, progress[value], progress:not([value]) {
1405 -webkit-appearance: none;
1406 -moz-appearance: none;
1410 progress, progress::-webkit-progress-bar {
1412 box-shadow: 0 2px 3px rgba(0,0,0,0.2) inset;
1416 html.k-ie progress {
1420 filter: progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=0),
1421 progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=90),
1422 progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=180),
1423 progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=270);
1433 mix-blend-mode: exclusion;
1435 font-weight: normal;
1438 .colorBar progress {
1447 progress::-webkit-progress-value {
1451 progress::-moz-progress-bar {
1457 $colorList= array(
'Green',
'Red',
'Blue',
'Orange',
'Purple');
1458 foreach($colorList as $color)
1460 progress.<?php echo $color; ?>::-webkit-progress-value {
1461 background-color: <?php echo $color; ?>;
1464 progress.<?php echo $color; ?>::-moz-progress-bar {
1465 background-color: <?php echo $color; ?>;
1469 progress.<?php echo $color; ?> {
1470 color: <?php echo $color; ?>;
1484 #resultsGrid tr:not(.k-state-selected):hover { 1489 #resultsGrid tr.k-alt:not(.k-state-selected):hover { 1490 background: #f1f1f1;
1493 #resultsGrid .well { 1497 #resultsGrid, #resultsGrid td { 1498 border-width: 0 !important;
1501 <script type=
"text/javascript">
1503 getShowWaitFunctions();
1514 var grid= $(
"#resultsGrid").kendoGrid({
1518 url:
"<?php echo $self; ?>&operation=readResults",
1522 mode:
"<?php echo $mode; ?>" 1523 <?php
if ($mode ==
"single" || $mode ==
"") { ?>, surveyid: <?php echo $surveyid; ?> <?php } ?>
1531 surveyid: {type:
"number"},
1532 range: {type:
"string"},
1533 surveyname: {type:
"string"},
1534 details: {type:
"odata"},
1535 sort: {type:
"number"}
1538 parse:
function(data) {
1540 if (data.error.length > 0)
1542 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1545 else return data.data;
1548 sort: {field:
"sort", dir:
"asc"}
1551 rowTemplate: $(
"#rowTemplate").html(),
1553 template:
"<tr><td>No Records Found</td></tr>" 1556 }).data(
"kendoGrid");
1558 $(
"#resultsGrid").find(
".k-grid-header").remove();
1560 $(
"#showEmptyBtn").click(
function() {
1561 if ($(
this).text().trim() ==
"Show Empty")
1563 $(
".surveyMaintenanceContainer").removeClass(
"hideAA");
1564 $(
this).text(
"Hide Empty");
1568 $(
".surveyMaintenanceContainer").addClass(
"hideAA");
1569 $(
this).text(
"Show Empty");
1574 $(
"#resultsGrid").on(
"click",
".detailLink",
function() {
1575 <?php
if ($mode ==
"single" || $mode ==
"") { ?>
1576 var url=
"<?php echo $self; ?>&page=resultDetails&surveyid=<?php echo $surveyid; ?>";
1578 var url=
"<?php echo $self; ?>&page=resultDetails&surveyid=" + $(
this).closest(
"tr").data(
"surveyid");
1580 url+=
"&answerid=" + $(
this).closest(
".answerRow").data(
"answerid") +
"&language=" + $(
this).closest(
"[data-language]").data(
"language");
1581 window.location.href= url;
1586 $(document).ready(
function() {
1590 <script type=
"text/x-kendo-template" id=
"rowTemplate">
1591 <tr data-uid=
"#= uid #" data-surveyid=
"#: surveyid #"><td><div
class=
"well well-sm row">
1592 <div
class=
"row"><div
class=
"col-xs-12 h4">#: surveyname #</div></div>
1593 <div
class=
"row"><div
class=
"col-xs-12 vsgSecondary">#: range #</div></div>
1594 # for (var i=0, iLength= details.length; i != iLength; i++) { var iRow= details[i]; # 1595 <div
class=
"row"><div
class=
"col-xs-12" data-language=
"#: iRow.language #">
1596 # if (iLength > 1) { # <div class="col-xs-12 h5 vsgSecondary">#: iRow.description #</div> # } # 1597 <div
class=
"col-xs-12 h5">#: iRow.question #</div>
1598 # for(var j=0, jLength= iRow.answers.length; j!= jLength; j++) { var jRow= iRow.answers[j]; # 1599 <div
class=
"# if (jRow.percentage == 0) { # aa # } # answerRow col-xs-12 hcu-no-padding" data-answerid=
"#: jRow.answerid #">
1600 <div
class=
"col-xs-12 col-sm-6"><a href=\\#
class=
"detailLink">#: jRow.text #</a></div>
1601 <div
class=
"col-xs-12 col-sm-4 colorBar">
1602 <label>#: kendo.toString(jRow.percentage,
"p2") #</label>
1603 <progress value=
"#: jRow.percentage #" class=
"#: jRow.color #"></progress>
1606 <div
class=
"col-xs-12 col-sm-2 col-md-2 amount">
1607 <span
class=
"hidden-xs"> </span>
1608 <span><a href=\\#
class=
"detailLink">#: jRow.count #</a> votes</span>
1612 <hr
class=
"hidden-xs col-sm-12">
1613 <div
class=
"col-xs-12 hcu-no-padding">
1614 <div
class=
"hidden-xs col-sm-6"> </div>
1615 <div
class=
"col-xs-6 col-sm-4"><b>Total Votes</b></div>
1616 <div
class=
"col-xs-6 col-sm-2 col-md-2 total amount">
1617 <span
class=
"a">#: iRow.total # votes</span>
1620 <div
class=
"col-xs-12 hidden-sm hidden-md hidden-lg"> </div>
1625 <div
class=
"surveyMntcMax"><div
class=
"container-fluid surveyMaintenanceContainer">
1627 <div
id=
"mainValidateDiv" class=
"k-block k-error-colored formValidateDiv" style=
"display:none;"></div>
1630 <a href=
"<?php echo $self; ?>" id=
"surveyMenu">Survey Menu</a> <b> See Results: </b>
1631 <a href=
"<?php echo $self; ?>&page=results&mode=all" id=
"allSurveys">All Surveys</a> |
1632 <a href=
"<?php echo $self; ?>&page=results&mode=past" id=
"pastSurveys">Past Surveys</a> |
1633 <a href=
"<?php echo $self; ?>&page=results&mode=present" id=
"presentSurveys">Present Surveys</a>
1636 <a href=
"#" id=
"showEmptyBtn">Hide Empty</a>
1639 <div
id=
"resultsGrid"></div>
1653 function printResultDetailPage($self, $surveyid, $language, $answerid)
1655 $surveyid= isset($surveyid) ? intval($surveyid) : 0;
1656 $answerid= isset($answerid) ? intval($answerid) : 0;
1657 $language= isset($language) ? trim($language) :
"";
1659 <script type=
"text/javascript">
1661 getShowWaitFunctions();
1670 $.homecuValidator.setup({formValidate:
'surveyMntcForm', formStatusField:
'mainValidateDiv'});
1674 var
template= kendo.template($(
"#topTemplate").html());
1675 var grid= $(
"#usersGrid").kendoGrid({
1679 url:
"<?php echo $self; ?>&operation=readResultDetails",
1682 data: {surveyid: <?php echo $surveyid; ?>, language:
"<?php echo $language; ?>", answerid: <?php echo $answerid; ?>}
1689 user_id: {type:
"number"},
1690 user_name: {type:
"string"},
1691 optin: {type:
"boolean"},
1692 email: {type:
"string"}
1695 parse:
function(data) {
1697 if (data.error.length > 0)
1699 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1704 $(
"#usersGrid").parent().parent().before(
template(data.topData[0]));
1705 return data.bottomData;
1709 sort: {field:
"user_id", dir:
"asc"}
1712 {field:
"user_name", title:
"User"},
1713 {field:
"email", title:
"Email"},
1714 {field:
"optin", title:
"Optin",
template:
"# if (optin) { # Y # } else { # N # } #", width: 100}
1717 template:
"<tr><td colspan='3'>No Records Found!</td></tr>" 1719 }).data(
"kendoGrid");
1722 $(document).ready(
function() {
1731 <script type=
"text/x-kendo-template" id=
"topTemplate">
1732 <div
class=
"col-xs-12 hcuSpacer iPickYou"><div
class=
"row well well-sm"><div
class=
"row">
1733 <div
class=
"col-xs-6 col-md-4 hcuSpacer hcu-no-padding">
1734 <div
class=
"col-xs-12 col-sm-3">Survey</div>
1735 <div
class=
"col-xs-12 col-sm-9"><b>#: question #</b></div>
1737 <div
class=
"col-xs-6 col-md-4 hcuSpacer hcu-no-padding">
1738 <div
class=
"col-xs-12 col-sm-3">Response</div>
1739 <div
class=
"col-xs-12 col-sm-9"><b>#: answer #</b></div>
1741 <div
class=
"col-xs-6 col-md-4 hcuSpacer hcu-no-padding">
1742 <div
class=
"col-xs-12 col-sm-4">Run Dates</div>
1743 <div
class=
"col-xs-12 col-sm-8"><b>#: range #</b></div>
1745 <div
class=
"col-xs-6 col-md-4 hcuSpacer hcu-no-padding">
1746 <div
class=
"col-xs-12 col-sm-3">Votes</div>
1747 <div
class=
"col-xs-12 col-sm-9"><b>#: votes # <span
class=
"vsgSecondary">(#: kendo.toString(percentage,
"p2") #)</b></div>
1751 <div
class=
"container-fluid surveyMntcReportDetailDiv"><form
id=
"surveyMntcForm"></form>
1753 <div
id=
"mainValidateDiv" class=
"k-block k-error-colored formValidateDiv" style=
"display:none;"></div>
1755 <div
class=
"row"><div
class=
"col-xs-12">
1756 <a href=
"<?php echo $self; ?>" id=
"surveyMenu">Survey Menu</a> <b> See Results: </b>
1757 <a href=
"<?php echo $self; ?>&page=results&mode=all" id=
"allSurveys">All Surveys</a> |
1758 <a href=
"<?php echo $self; ?>&page=results&mode=past" id=
"pastSurveys">Past Surveys</a> |
1759 <a href=
"<?php echo $self; ?>&page=results&mode=present" id=
"presentSurveys">Present Surveys</a>
1762 <div
class=
"col-xs-12"><div
class=
"iPickYou" id=
"usersGrid"></div></div>
1773 function printIntroPage($self)
1775 <script type=
"text/javascript">
1777 getShowWaitFunctions();
1785 $.homecuValidator.setup({formValidate:
'surveyMntcForm', formStatusField:
'surveyMntcDiv'});
1787 var
template= kendo.template(
'<div data-index="#:index#" class="introTemplateBody"><textarea class="question" data-language="#: language #" style="width:100%" maxlength="2000">' 1788 +
'#:surveyintro#</textarea></div>');
1790 var surveyIntroStrip= $(
"#surveyIntroStrip").kendoTabStrip({
1791 dataTextField:
"description",
1792 dataContentField:
"blank",
1799 language: {type:
"string"},
1800 description: {type:
"string"},
1801 surveyintro: {type:
"string"},
1802 blank: {type:
"string"},
1803 changed: {type:
"boolean"},
1804 index: {type:
"number"},
1805 exists: {type:
"boolean"}
1812 var index= $(e.item).index();
1813 var dataItem= this.dataSource.data()[index];
1814 $(e.contentElement).html(
template(dataItem));
1816 }).data(
"kendoTabStrip");
1818 $(
"#surveyIntroStrip").on(
"blur",
"textarea",
function() {
1819 var data= surveyIntroStrip.dataSource.data();
1820 var row= data[$(
this).closest(
".introTemplateBody").data(
"index")];
1821 row.surveyintro= $(
this).val();
1825 $(
"#saveBtn").click(
function() {
1826 var data= surveyIntroStrip.dataSource.data();
1828 for(var i=0; i!= data.length; i++)
1833 condensed.push({language: row.language, surveyintro: row.surveyintro, exists: row.exists ?
"Y" :
"N"});
1836 if (condensed.length > 0) <?php
1838 var saveWindow= $(
"#saveWindow").data(
"kendoDialog");
1839 if (saveWindow ==
null)
1841 saveWindow= $(
"<div id='saveWindow'></div>").appendTo(
"body").kendoDialog({
1842 content:
"<p>Are you sure you want to save this survey introduction? </p>",
1845 title:
"Confirm Save",
1849 if (window.activeWindows !=
null)
1850 window.activeWindows.push(
this);
1853 if (window.activeWindows !=
null)
1854 window.activeWindows.pop();
1858 {text:
"Save", primary:
true, action:
function() {
1861 parameters.languageArray= kendo.stringify(condensed);
1864 $.post(
"<?php echo $self; ?>&operation=saveIntro", parameters,
function(data) {
1866 if (data.error.length > 0)
1867 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1869 window.location.href=
"<?php echo $self; ?>&mode=saved";
1873 }).data(
"kendoDialog");
1881 $(
"#cancelBtn").click(
function() {
1882 window.location.href=
"<?php echo $self; ?>";
1887 $.post(
"<?php echo $self; ?>&operation=readIntro", {},
function(data) {
1889 if (data.error.length > 0)
1890 $.homecuValidator.displayMessage(data.error, $.homecuValidator.settings.statusError );
1893 surveyIntroStrip.dataSource.data(data.languageArray);
1894 surveyIntroStrip.select(0);
1899 $(document).ready(
function() {
1903 <div
class=
"container-fluid hcu-template"><form
id=
"surveyMntcForm">
1906 <div
id=
"surveyMntcDiv" class=
"k-block k-error-colored formValidateDiv" style=
"display:none;"></div>
1908 <div
class=
"row"><div
class=
"col-xs-12 h3">Introductory Text View Help</div></div>
1909 <div
class=
"row vsgSecondary hcuSpacer"><div
class=
"col-xs-12">shows at the top of the survey popup</div></div>
1911 <div
class=
"col-xs-12"><div
id=
"surveyIntroStrip" class=
"hcu-all-100"></div></div>
1913 <div
class=
"hcu-edit-buttons k-state-default row">
1914 <a
id=
'cancelBtn' href=
"#">Cancel</a>
1915 <a
id=
"saveBtn" class=
"k-button k-primary" href=
"#">Save Intro</a>