#!/usr/bin/perl

# ---------------------------------------------------------------------------
#     ADMIN.PL
#
#      Ver: 8_4_8
# ---------------------------------------------------------------------------
# SSI Web - Web Surveying System
# Copyright Sawtooth Software, Inc. 1998-2015. All rights reserved.
# Orem, UT  USA  (801) 477-4700
# Any modification of this script will be considered violation of
# copyright (with the exception of the first line which can be
# modified to reflect the correct path to the Perl interpreter)
# Any use of this script or its code for purposes outside of
# the systems created by Sawtooth Software is prohibited.
# ---------------------------------------------------------------------------
 use strict; use File::Copy; ssiwebadmin8_4_8::_cnc(); package ssiwebadmin8_4_8; %ssiwebadmin8_4_8::_csr = (); $ssiwebadmin8_4_8::_css = ""; $ssiwebadmin8_4_8::_ctp = 0; $ssiwebadmin8_4_8::_ctn = {}; $ssiwebadmin8_4_8::_ctq = 0; $ssiwebadmin8_4_8::_ctg = 0; $ssiwebadmin8_4_8::_ctf = 0; $ssiwebadmin8_4_8::_ctc = 0; $ssiwebadmin8_4_8::_ctd = 0; $ssiwebadmin8_4_8::_cth = ""; $ssiwebadmin8_4_8::_cti = 0; sub _cnb { %ssiwebadmin8_4_8::_csr = (); $ssiwebadmin8_4_8::_css = ""; $ssiwebadmin8_4_8::_ctp = 0; $ssiwebadmin8_4_8::_ctn = {}; $ssiwebadmin8_4_8::_ctq = 0; $ssiwebadmin8_4_8::_ctf = 0; $ssiwebadmin8_4_8::_ctc = 0; $ssiwebadmin8_4_8::_ctd = 0; $ssiwebadmin8_4_8::_cth = ""; $ssiwebadmin8_4_8::_cti = 0; } sub _cnc { _cnb(); my $__jtx = ""; my $__jty = ""; if ((exists($ENV{'SCRIPT_FILENAME'}) || (defined ($ENV{'SCRIPT_FILENAME'})))) { $__jtx = $ENV{'SCRIPT_FILENAME'}; } if ($__jtx eq "") { $__jtx = $ENV{'PATH_TRANSLATED'}; $__jtx =~ tr[\\][/]; } if ($ENV{'PERLXS'} =~ m/PerlIS/i) { print "HTTP/1.1 200 OK\n"; } $__jtx =~ s/(.+)\/.+$/$1/; unshift @INC, $__jtx; _bha("authlib8_4_8.pl"); authlib8_4_8::_bmp(0); $authlib8_4_8::_bys = 1; $authlib8_4_8::_bxv = $__jtx; authlib8_4_8::_bnf(); authlib8_4_8::_bot(); my $__jtz = authlib8_4_8::_bnt(1); if (exists $authlib8_4_8::_bzi{"s"}) { my $__jua = $authlib8_4_8::_bzi{"s"}; $__jua =~ s/(\d{2})/$1,/g; my @__jub = split(",", $__jua); my @__juc = map {chr($_ + 30)} @__jub; my @__jud = split("&", join("", @__juc)); foreach my $__jue (@__jud) { my ($__jut, $__juu) = split("=", $__jue); $authlib8_4_8::_bzi{$__jut} = $__juu; } } if (exists $authlib8_4_8::_bzi{"hid_page"}) { if ($authlib8_4_8::_bzi{"hid_page"} !~ m/^[a-z0-9_]*$/i) { authlib8_4_8::_bse(0, "hid_page contains an invalid character: " . $authlib8_4_8::_bzi{"hid_page"}); delete $authlib8_4_8::_bzi{"hid_page"}; } if($authlib8_4_8::_bzi{"hid_page"} eq "test_survey_admin") { $authlib8_4_8::_bzi{"hid_test_mode"} = 1; } elsif ($authlib8_4_8::_bzi{"hid_page"} eq "test_survey_return" || $authlib8_4_8::_bzi{"hid_page"} eq "test_survey_return2") { delete $authlib8_4_8::_bzi{"hid_test_mode"}; } } if (exists $authlib8_4_8::_bzi{"hid_studyname"}) { $authlib8_4_8::_byz = $authlib8_4_8::_bzi{"hid_studyname"}; } else { $authlib8_4_8::_byz = authlib8_4_8::_bqb(); } $ssiwebadmin8_4_8::_cth = $authlib8_4_8::_byz; $authlib8_4_8::_bzb = $authlib8_4_8::_byz; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { $authlib8_4_8::_bzb = authlib8_4_8::_buc(); } if (exists $authlib8_4_8::_bzi{"hid_screen_width"}) { $ssiwebadmin8_4_8::_ctc = int($authlib8_4_8::_bzi{"hid_screen_width"}); if ($ssiwebadmin8_4_8::_ctc > 0 && $ssiwebadmin8_4_8::_ctc <= 600) { $ssiwebadmin8_4_8::_ctd = 1; if (!exists $authlib8_4_8::_bzi{"hid_mobile"}) { $ssiwebadmin8_4_8::_ctf = 1; } } } if (exists $authlib8_4_8::_bzi{"hid_mobile"}) { $ssiwebadmin8_4_8::_ctf = $authlib8_4_8::_bzi{"hid_mobile"}; } authlib8_4_8::_bpv($__jtx); if ($__jtz ne "") { authlib8_4_8::_bse(0, $__jtz); } _coz(); my $__juf = ""; my $__jug = 0; my $__juh = ""; $authlib8_4_8::_byr = authlib8_4_8::_bob(); my $__jui = ""; ($__jug, $__jui) = _cpa(); my $__juj = 0; my $__juk = ""; my $__jul = ""; my $__jum = ""; my $__jun = ""; my $__juo = ""; my $__jup = 0; my $__juq = 0; my $__jur = 0; if ($__jug) { if (exists $authlib8_4_8::_bzi{"hid_page"}) { $__juk = $authlib8_4_8::_bzi{"hid_page"}; } elsif (exists $authlib8_4_8::_bzi{"hid_api"}) { $__jul = $authlib8_4_8::_bzi{"hid_api"}; if ($__jul !~ m/^[a-z0-9_]*$/i) { authlib8_4_8::_bse(0, "hid_api contains an invalid character: " . $__jul); $__jul = ""; delete $authlib8_4_8::_bzi{"hid_api"}; } } if ($__juk || $__jul) { if ($__juk eq "setup_survey_auto_apply") { $ssiwebadmin8_4_8::_ctg = 1; } my($__juv, $__juw, $__jux) = authlib8_4_8::_bmq($authlib8_4_8::_byr); if ($__juk eq "setup_survey_check") { my $__jus = 0; print authlib8_4_8::_bpm(); print "<!-- Auto Status: "; if ($__juv) { ($__juv, $__juw, $__jux, $__jur) = authlib8_4_8::_boa(0); if ($__jur) { print "Error: " . $__juw; if ($__jux) { print "\n\nSystem Error: " . $__jux; } $__jus = 1; } } else { print "Error: " . $__juw; if ($__jux) { print "\n\nSystem Error: " . $__jux; } $__jus = 1; } if (!$__jus) { print "Success: "; } print " -->"; authlib8_4_8::_bso(); } elsif (!$__juv) { $__juk = "setup"; } else { ($__juv, $__juw, $__jux, $__jur) = authlib8_4_8::_boa(0); if (!$__juv && $__juk ne "delete_database_tables") { $__juk = "setup"; } } if ($__juk eq "setup") { $__juf .= _cqw(0, 1, 0, 0, 0); $__juq = 1; } else { ($__jum, $__juo, $__jun, $__jup) = authlib8_4_8::_bou(0, 0, ""); if ($__jup) { $__juk = "setup_survey_auto_apply"; } else { if (exists $authlib8_4_8::_bzk->{'_cg'}) { $ssiwebadmin8_4_8::_cth = $authlib8_4_8::_bzk->{'_cg'}; } if (exists $authlib8_4_8::_bzk->{'_ch'}) { $ssiwebadmin8_4_8::_cti = 1; } if($__jui) { _csb("Log In", "User \"" . $__jui . "\" logged in.", 0); } if ($__juk eq "download_all") { if (exists $ssiwebadmin8_4_8::_csr{"download_data"}) { _coo(0); $__juj = 1; } } elsif ($__juk eq "download_completes") { if (exists $ssiwebadmin8_4_8::_csr{"download_data"}) { _coo(1); $__juj = 1; } } elsif (( $__juk eq "password_report_not_started" || $__juk eq "password_report_not_finished" || $__juk eq "password_report_completes" || $__juk eq "password_report_disqualified") && (exists $ssiwebadmin8_4_8::_csr{"password_reports"})) { _cpg($__juk); $__juj = 1; } elsif ($__juk eq "log_download" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _cos($authlib8_4_8::_bwv{'_cba'} . "error_log.cgi", "error_log.txt", 1, 0, 0); $__juj = 1; } elsif ($__juk eq "download_data_report") { $__juj = 1; } elsif($__juk eq "download_history_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("history"); $__juj = 1; } elsif($__juk eq "download_admin_log_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("admin_log"); $__juj = 1; } elsif($__juk eq "download_clists_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("clists"); $__juj = 1; } elsif($__juk eq "download_info_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("info"); $__juj = 1; } elsif($__juk eq "download_map_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("map"); $__juj = 1; } elsif($__juk eq "download_design_log_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("design_log"); $__juj = 1; } elsif($__juk eq "download_url_restore_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("url_restore"); $__juj = 1; } elsif($__juk eq "download_passwords_table" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("passwords"); $__juj = 1; } elsif($__juk =~ m/^download_data(\d+)_table$/i && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _csf("data" . $1); $__juj = 1; } } } if($ssiwebadmin8_4_8::_ctf) { _csc(); } else { if ($__jul eq "status" && (exists $ssiwebadmin8_4_8::_csr{"study_summary"})) { print authlib8_4_8::_bpm(); print _cnk(0); } elsif ($__jul eq "pause" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { _crs(1); } elsif ($__jul eq "unpause" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { _crs(0); } else { if (!$__juj) { $| = 1; print authlib8_4_8::_bpm(); if ($__juk ne "add_passwords" && $__juk ne "save_report" && $__juk ne "delete_reports") { print _cow($__juk, $__juq, $__jum); } $| = 0; } if ($__juk eq "study_summary" && (exists $ssiwebadmin8_4_8::_csr{"study_summary"})) { $__juf .= _cnf(); } elsif ($__juk eq "download_data" && (exists $ssiwebadmin8_4_8::_csr{"download_data"})) { $__juf .= _cnn(); } elsif ($__juk eq "view_all_data" && (exists $ssiwebadmin8_4_8::_csr{"view_data"})) { delete $authlib8_4_8::_bzi{"view_data_search"}; $__juf .= _cnr(); } elsif ($__juk eq "search_data" && (exists $ssiwebadmin8_4_8::_csr{"view_data"})) { $__juf .= _cno(); } elsif ($__juk eq "data_reports" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { $__juf .= _cpq(0, 0); } elsif ($__juk eq "view_data_report_settings" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { $__juf .= _cpq(0, 1); } elsif ($__juk eq "password_reports" && (exists $ssiwebadmin8_4_8::_csr{"password_reports"})) { $__juf .= _cpe(); } elsif ($__juk eq "incompletes_report" && (exists $ssiwebadmin8_4_8::_csr{"incompletes_report"})) { $__juf .= _cpf(); } elsif ($__juk eq "test_survey" && (exists $ssiwebadmin8_4_8::_csr{"test_survey"})) { $__juf .= _cqt($__jum, $__juo); } elsif ($__juk eq "advanced" && (exists $ssiwebadmin8_4_8::_csr{"advanced"})) { $__juf .= _cqw(1, 0, 1, 0, 0); } elsif ($__juk eq "setup_survey_auto_apply" && (exists $ssiwebadmin8_4_8::_csr{"advanced"})) { $__juf .= _cqy($__jum, $__juo); } elsif ($__juk eq "close_survey" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { $__juf .= _cpj(); } elsif ($__juk eq "close_survey_update" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { $__juf .= _cpl(); } elsif ($__juk eq "reset_survey" && (exists $ssiwebadmin8_4_8::_csr{"reset_survey"})) { $__juf .= _cpm(); } elsif ($__juk eq "delete_database_tables" && (exists $ssiwebadmin8_4_8::_csr{"reset_survey"})) { $__juf .= _cpp(1, 0); } elsif ($__juk eq "view_data_search" && (exists $ssiwebadmin8_4_8::_csr{"view_data"})) { $__juf .= _cnr(); } elsif ((($__juk eq "view_data_next1") || ($__juk eq "view_data_next2")) && exists $ssiwebadmin8_4_8::_csr{"view_data"}) { $__juf .= _cny(0, 1); } elsif ((($__juk eq "view_data_previous1") || ($__juk eq "view_data_previous2")) && exists $ssiwebadmin8_4_8::_csr{"view_data"}) { $__juf .= _cny(0, -1); } elsif ((($__juk eq "view_data_cancel1") || ($__juk eq "view_data_cancel2")) && exists $ssiwebadmin8_4_8::_csr{"view_data"}) { $__juf .= _cny(0, 0); } elsif (($__juk eq "view_data_delete") && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { $__juf .= _com(); } elsif ((($__juk eq "view_data_edit1") || ($__juk eq "view_data_edit2")) && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { $__juf .= _cny(1, 0); } elsif ((($__juk eq "view_data_save1") || ($__juk eq "view_data_save2")) && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { $__juf .= _cof(); } elsif ($__juk eq "question_report" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { my ($__juy, $__juz) = _cpu("", 0); $__juf .= $__juy; $__juf .= _cpw(); } elsif ($__juk eq "view_saved_report" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { $__juf .= _cqc(); $__juf .= _cpw(); } elsif($__juk eq "update_report" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { _cri(); $__juf .= _cqc(); $__juf .= _cpw(); } elsif ($__juk eq "edit_data_report" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { $__juf .= _cpr(); } elsif ($__juk eq "delete_reports" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { _cqd(); } elsif ($__juk eq "download_data_report" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { _cpx(); } elsif ($__juk eq "test_survey_admin" && (exists $ssiwebadmin8_4_8::_csr{"test_survey"})) { $__juf .= _cqt($__jum, $__juo); } elsif (($__juk eq "test_survey_return" || $__juk eq "test_survey_return2") && exists $ssiwebadmin8_4_8::_csr{"test_survey"} && exists $ssiwebadmin8_4_8::_csr{"study_summary"}) { $__juf .= _cnf(); } elsif ($__juk eq "close_survey_close" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { $__juf .= _cdr(); } elsif ($__juk eq "close_survey_open" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { $__juf .= _cpk(); } elsif ($__juk eq "reset_survey_reset" && (exists $ssiwebadmin8_4_8::_csr{"reset_survey"})) { $__juf .= _cpo(); } elsif ($__juk eq "save_report" && (exists $ssiwebadmin8_4_8::_csr{"data_reports"})) { _crh(); } elsif ($__juk eq "add_passwords" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { _crj(); } elsif ($__juk eq "log_view" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { $__juf .= _cph(); } elsif ($__juk eq "log_delete" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { unlink($authlib8_4_8::_bwv{'_cba'} . "error_log.cgi"); $__juf .= _cnf(); } elsif ($__juk eq "change_quotas" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { if (exists $authlib8_4_8::_bzi{"save_new_limits"}) { $__juf .= _cnl(); } else { $__juf .= _cni(); } } elsif($__juk eq "apply_changes" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { $__juf .= _crq($__jum, $__juo, 0); } elsif($__juk eq "error_log_exists" && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { if (-e $authlib8_4_8::_bwv{'_cba'} . "error_log.cgi") { $__juf .= "<!-- Auto Status: Error Log Exists: true -->"; } else { $__juf .= "<!-- Auto Status: Error Log Exists: false -->"; } } } } } } if(!$__juj && !$ssiwebadmin8_4_8::_ctf && !$__jul) { print $__juf; print _cox($__juq); } authlib8_4_8::_bso(); } sub _cnd { my ($__jvg, $__jvh, $__jvi, $__jvj) = @_; my $__jva = 0; my $__jvb = ""; my $__jvc = <$__jvg>; my $__jvd = authlib8_4_8::ParseDataHeaderLine($__jvc, "dat.cgi"); if ($__jvd != 0) { $__jvb = $__jvi->($__jvg, $__jvj); my $__jve = length($__jvj) == 0 ? -1 : rindex($__jvb, $__jvj); my @__jvf = $__jvb =~ m/(\n)/go; if ($__jve != -1 && @__jvf == $__jvd->{'_ctr'} + 1) { $__jva = 1; } elsif (@__jvf == $__jvd->{'_ctr'}) { $__jva = 1; } else { authlib8_4_8::_bse(0, "ADMIN Can't read data file respnum= " . $__jvd->{'_cts'} . " -- Line count in header does not match lines in file. " . $__jvh); } } return ($__jva, $__jvd, $__jvc . $__jvb); } sub _cne { my ($__jvo, $__jvp, $__jvq, $__jvr, $__jvs) = @_; my $__jvk = 0; my $__jvl = $__jvr->($__jvp, $__jvs); my $__jvm = length($__jvs) == 0 ? -1 : rindex($__jvl, $__jvs); my @__jvn = $__jvl =~ m/(\n)/go; if ($__jvm != -1 && @__jvn == $__jvo->{'_ctr'} + 1) { $__jvk = 1; } elsif (@__jvn == $__jvo->{'_ctr'}) { $__jvk = 1; } else { authlib8_4_8::_bse(0, "ADMIN Can't read data file respnum= " . $__jvo->{'_cts'} . " -- Line count in header does not match lines in file. " . $__jvq); } return ($__jvk, $__jvl); } sub _cnf { my($__jvu, $__jvv, $__jvw) = _cov(); my $__jvt = ""; $__jvu = authlib8_4_8::_brp($__jvu, ",", ".", 0); $__jvv = authlib8_4_8::_brp($__jvv, ",", ".", 0); $__jvw = authlib8_4_8::_brp($__jvw, ",", ".", 0); if ($ssiwebadmin8_4_8::_ctd) { $__jvt .= "<center><table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" id=\"study_summary_box\">"; $__jvt .= "<tr><td>Complete</td><td>Disqualified</td><td>Incomplete</td></tr>"; $__jvt .= "<tr><td><span id=\"completes\">" . $__jvu . "</span></td>"; $__jvt .= "<td><span id=\"disqualifieds\">" . $__jvw . "</span></td>"; $__jvt .= "<td><span id=\"incompletes\">" . $__jvv . "</span></td>"; $__jvt .= "</table></center>"; } else { $__jvt .= "<center><table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" id=\"study_summary_box\">"; $__jvt .= "<tr><td align=\"right\" width=\"50%\">Qualified / Complete:</td><td width=\"50%\" align=\"left\"><span id=\"completes\">" . $__jvu . "</span></td></tr>"; $__jvt .= "<tr><td align=\"right\">Disqualified:</td><td align=\"left\"><span id=\"disqualifieds\">" . $__jvw . "</span></td></tr>"; $__jvt .= "<tr><td align=\"right\">Incomplete:</td><td align=\"left\"><span id=\"incompletes\">" . $__jvv . "</span><span style=\"padding-left: 25px;\">(in progress or abandoned)</span></td></tr>"; $__jvt .= "</table></center>"; } if ($authlib8_4_8::_bxw) { $__jvt .= _cnj(0, 0); } return _cou("Study Summary", $__jvt); } sub _cng { my $__jvx = ""; my $__jvy = ""; my $__jvz = 0; my ($__jwa, $__jwb) = _cnh(); if (!$__jwa) { $__jvx .= "<div id=\"setup_error\" class=\"error_msg_box display_class_hide\"><span class=\"warning\">Server Security Issues Detected:</span><br>"; $__jvx .= "<div id=\"setup_error_text1\" style=\"margin: 20px;\"></div>"; $__jvx .= "<div id=\"setup_error_text2\" style=\"margin: 20px;\"></div>"; $__jvx .= "Contact Sawtooth Software (or your Sawtooth Software representative) for further assistance."; $__jvx .= "</div>\n"; } return $__jvx; } sub _cnh { my $__jwc = ""; my $__jwd = 0; $__jwc = $ENV{'SCRIPT_NAME'}; if ($__jwc =~ m/\/admin\.exe/) { $__jwd = 1; } else { $__jwc =~ s/\/admin\.pl//; $__jwc = authlib8_4_8::_bpx($__jwc, $authlib8_4_8::_bwv{'_cbg'}); } return($__jwd, $__jwc); } sub _cni { my $__jwe = ""; $__jwe .= _cnj(1, 0); $__jwe .= authlib8_4_8::_bns("document.mainform.hid_page.value = \"change_quotas\";"); return _cou("Change Quota Limits", $__jwe); } sub _cnj { my($__jxe, $__jxf) = @_; my $__jwf = ""; my $__jwg = 1; my $__jwh = 20; my $__jwi = 10; my $__jwj = 70; if ($ssiwebadmin8_4_8::_ctf || $ssiwebadmin8_4_8::_ctd) { $__jwg = 0; $__jwh = 52; $__jwi = 30; $__jwj = 18; } authlib8_4_8::_bpd(); if ($authlib8_4_8::_bzq) { my $__jwk = $authlib8_4_8::_bzq->{'_gw'}; my $__jwl = ""; my $__jwm = 0; if ($__jxe || $ssiwebadmin8_4_8::_ctf) { $__jwf .= "<div class=\"edit_quota_warning\"><span class=\"warning\">WARNING:</span><br>"; $__jwf .= "<div style=\"font-size: 12px; color: #808080; padding: 5px;\">Modifying the quota cell limits from the Admin Module only updates the quota limits on the web server."; $__jwf .= " &nbsp;If you later update your study on the web server (changing question text etc.), then the modified quota cell limits on the web server"; $__jwf .= " will be overwritten by the quota cell limits defined in the SSI Web authoring module.<br><br>"; $__jwf .= "As another option quota cell limits can be modified by changing them in the SSI Web authoring module and then updating the study on the web server.<br><br>"; $__jwf .= "If you decide to modify the quota cell limits in the "; $__jwf .= "Admin Module, we highly recommend that you update your local study in the "; $__jwf .= "SSI Web authoring module so that it matches the changes made on the web server.</div></div>"; } if (!$ssiwebadmin8_4_8::_ctf) { $__jwf .= "<br><div style=\"border-top: 2px dashed #C0C0C0; \"></div><br>"; } if ($__jxf) { $__jwf .= "<div class=\"warning\">Error: Invalid Quota Cell Limit. Quota Cell Limits must be positive numbers.</div><br><br>"; } foreach $__jwl (@{$__jwk}) { $__jwm = authlib8_4_8::_bpj($__jwl); if ($__jwm) { my $__jwn = $__jwm->{'_bkt'}; my $__jwo = authlib8_4_8::_bpg($__jwl, $__jwn); my $__jwp = 0; my $__jwq = 0; my $__jwr = 4; my $__jws = 0; my $__jwt = 0; my $__jwu = 0; my $__jwv = ""; my $__jww = ""; my $__jwx = 0; my $__jwy = 0; if (exists $__jwn->{'_bcp'}) { $__jwp = 1; if (exists $__jwn->{'_bcp'}->{'_bcq'}) { $__jwq = 1; } } $__jwf .= "<div class=\"quota_box\">Quota: <b>" . $__jwl . "</b>"; $__jwf .= "<table class=\"quota_table\">\n"; my $__jwz = $__jwn->{'_bce'}; my $__jxa = 0; my $__jxb = 0; my $__jxc = 0; my $__jxd = ""; foreach $__jxa (@{$__jwz}) { $__jwy = 0; $__jxc = 0; $__jww = $__jxa->{'_bgt'}; $__jwx = $__jxa->{'_bcm'}; $__jws = $__jwo->{$__jwx}->{'_bck'}; $__jwt = $__jwo->{$__jwx}->{'_cbd'}; $__jwu = $__jws - $__jwt; if ($__jwu <= 0) { $__jwy = 1; } $__jwf .= "<tr id=\"" . $__jwl . "-" . $__jwx . "\" class=\""; if ($ssiwebadmin8_4_8::_ctp) { $__jxd = ""; $ssiwebadmin8_4_8::_ctp = 0; } else { $__jxd = "alt_color1"; $ssiwebadmin8_4_8::_ctp = 1; } $__jwf .= $__jxd; if ($__jwy) { $__jwf .= " quota_closed"; } $__jwf .= "\">\n"; $__jwf .= "<td class=\"quota_name_cell\" align=\"left\" width=\"" . $__jwh . "%\" nowrap>"; $__jwf .= $__jww . " (" . $__jwx . ") "; $__jwf .= "</td>\n"; $__jwf .= "<td class=\"quota_count_cell\" width=\"" . $__jwi . "%\" nowrap>"; $__jwf .= "<span class=\"quota_count_text\">" . $__jwt . "</span> /"; $__jwf .= "</td><td class=\"quota_limit_cell\">"; if ($__jxe || $ssiwebadmin8_4_8::_ctf) { $__jwf .= "<input class=\"quota_input numeric_input\" type=\"tel\" name=\"" . $__jwl . "_" . $__jwx . "\" size=\"4\" maxlength=\"9\" "; $__jwf .= " value=\""; if ($__jxf && (exists $authlib8_4_8::_bzi{$__jwl . "_" . $__jwx})) { $__jwf .= $authlib8_4_8::_bzi{$__jwl . "_" . $__jwx}; } else { $__jwf .= $__jws; } $__jwf .= "\" >"; if ($ssiwebadmin8_4_8::_ctf) { $__jwf .= "<div class=\"quota_limit_text\">" . $__jws . "</div>"; } } else { $__jwf .= $__jws; } $__jwf .= "</td>\n"; if ($__jws > 0) { $__jxc = int(($__jwt / $__jws) * 100); } else { $__jxc = 100; } if ($__jxc > 100) { $__jxc = 100; } if($__jwg) { $__jwf .= "<td align=\"left\" width=\"" . $__jwj . "%\">"; $__jwf .= "<table border=\"1\" cellpadding=\"0\" cellspacing=\"0\" class=\"quota_graph_table\" width=\"100%\">\n"; $__jwf .= "<tr>\n"; if ($__jxc) { $__jwf .= "<td align=\"right\" style=\"width:" . $__jxc . "%; background: #74A5CD;\">\n"; if ($__jxc > 85) { if ($__jxc >= 100) { $__jwf .= "<div class=\"closed_quota_text\">[closed]</div>\n"; } $__jwf .= $__jxc . "%"; } else { $__jwf .= "<span style=\"font-size: 1px;\">&nbsp;</span>"; } $__jwf .= "</td>\n"; } if ($__jxc < 100) { $__jwf .= "<td align=\"left\" style=\"padding-left: 3px;\">\n"; if ($__jxc <= 85) { $__jwf .= $__jxc . "%"; } else { $__jwf .= "<span style=\"font-size: 1px;\">&nbsp;</span>"; } $__jwf .= "</td>\n"; } $__jwf .= "</tr></table>\n"; $__jwf .= "</td>\n"; } else { $__jwf .= "<td class=\"quota_percent_cell\" width=\"" . $__jwj . "%\">"; if ($ssiwebadmin8_4_8::_ctf && $__jxc == 100) { $__jwf .= "<div class=\"closed_quota_text\">[closed]</div>\n"; } else { $__jwf .= $__jxc . "%"; } $__jwf .= "</td>"; } $__jwf .= "</tr>\n"; if (!$ssiwebadmin8_4_8::_ctf && $__jwp) { $__jwf .= "<tr class=\"" . $__jxd . "\">\n"; $__jwf .= "<td align=\"left\" valign=\"top\" >&nbsp;</td>\n"; $__jwf .= "<td align=\"left\" colspan=\"3\" valign=\"top\" style=\"font-size: 12px; color: #808080;\">\n"; if ($__jwp) { $__jwf .= "In Progress: "; $__jwf .= $__jwo->{$__jwx}->{'actual-in-progress'}; if ($__jwq) { $__jwf .= "<span style=\"padding-left: 10px;\">Inactive: "; $__jwf .= $__jwo->{$__jwx}->{'in-active'}; $__jwf .= "</span>"; } } else { $__jwf .= "&nbsp;"; } $__jwf .= "<br><br></td></tr>\n"; } } $__jwf .= "</table></div>\n"; } } if (exists $ssiwebadmin8_4_8::_csr{"full_access"}) { $__jwf .= "<center><div id=\"change_quotas\" class=\"link\" style=\"width: 175px;\" data-save_quotas=\"0\" data-role=\"button\" data-mini=\"true\">Change Quota Limits</div></center>"; if(!$ssiwebadmin8_4_8::_ctf) { $__jwf .= authlib8_4_8::_bns(_con("change_quotas")); } if ($__jxe) { $__jwf .= "<input type=\"hidden\" name=\"save_new_limits\" value=\"1\">\n"; } } } return $__jwf; } sub _cnk { my ($__jxs) = @_; my @__jxg = (); my $__jxh = "{"; my ($__jxt, $__jxu, $__jxv) = _cov(); if($__jxs) { $__jxt = authlib8_4_8::_brp($__jxt, ",", ".", 0); $__jxu = authlib8_4_8::_brp($__jxu, ",", ".", 0); $__jxv = authlib8_4_8::_brp($__jxv, ",", ".", 0); } $__jxh .= "\"completes\":" . $__jxt . ","; $__jxh .= "\"incompletes\":" . $__jxu . ","; $__jxh .= "\"disqualifieds\":" . $__jxv . ","; $__jxh .= "\"quotas\":["; if ($authlib8_4_8::_bxw) { authlib8_4_8::_bpd(); if ($authlib8_4_8::_bzq) { my $__jxi = $authlib8_4_8::_bzq->{'_gw'}; my $__jxj = ""; my $__jxk = 0; foreach $__jxj (@{$__jxi}) { $__jxk = authlib8_4_8::_bpj($__jxj); if ($__jxk) { my $__jxl = $__jxk->{'_bkt'}; my $__jxm = authlib8_4_8::_bpg($__jxj, $__jxl); my $__jxn = $__jxl->{'_bce'}; my $__jxo = 0; my $__jxp = 0; my $__jxq = 0; my $__jxr = 0; foreach $__jxo (@{$__jxn}) { $__jxp = $__jxo->{'_bcm'}; $__jxq = $__jxm->{$__jxp}->{'_bck'}; $__jxr = $__jxm->{$__jxp}->{'_cbd'}; push @__jxg, "{\"name\":\"" . $__jxj . "\",\"value\":" . $__jxp . ",\"limit\":" . $__jxq . ",\"count\":" . $__jxr . "}"; } } } } } $__jxh .= join(",", @__jxg); $__jxh .= "]}"; return $__jxh; } sub _cnl { my $__jxw = ""; authlib8_4_8::_bpd(); if ($authlib8_4_8::_bzq) { my $__jxx = $authlib8_4_8::_bzq->{'_gw'}; my $__jxy = ""; my $__jxz = 0; my $__jya = 0; my $__jyb = 0; my $__jyc = 0; my $__jyd = 0; my $__jye = 0; my %__jyf = (); foreach $__jxy (@{$__jxx}) { $__jxz = authlib8_4_8::_bpj($__jxy); if ($__jxz) { $__jya = $__jxz->{'_bkt'}->{'_bce'}; foreach $__jyb (@{$__jya}) { $__jyc = $__jyb->{'_bcm'}; if (exists $authlib8_4_8::_bzi{$__jxy . "_" . $__jyc}) { $__jyd = authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__jxy . "_" . $__jyc}); $__jyd =~ s/^0+(\d+?)$/$1/; if (_cnm($__jyd)) { $__jyf{$__jxy . "_" . $__jyc} = $__jyd; } else { $__jye = 1; last; } } } if ($__jye) { last; } } } if ($__jye) { $__jxw .= _cnj(1, 1); } else { my $__jyg = 0; my @__jyh = sort keys(%__jyf); my $__jyi = ""; my $__jyj = 0; my $__jyk = ""; my $__jyl = 0; if (@__jyh) { foreach $__jyi (@__jyh) { ($__jxy, $__jyc) = split("_", $__jyi); $__jyj = $__jyf{$__jyi}; eval { $__jyk = "UPDATE `" . $authlib8_4_8::_bzb . "_quotas` SET `cell_limit` = " . $__jyj . " WHERE `quota_name` = " . $authlib8_4_8::_byw->quote($__jxy) . " AND `cell_value` = " . $__jyc; $__jyl = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__jyk, 0)); $__jyl->execute(); }; if ($@) { authlib8_4_8::_bqa(232, "Database error.", "Database error updating quota table.", $@); } } $authlib8_4_8::_byw->commit(); $__jxw .= "New quota cell limits have been saved.<br><br>Remember to update them in the SSI Web authoring module."; } } } return _cou("Change Quota Limits", $__jxw); } sub _cnm { my($__jym) = @_; if ($__jym =~ m/^\d+$/) { if ($__jym >= 0) { return 1; } } return 0; } sub _cnn { my $__jyn = ""; $__jyn .= "<div style=\"margin: 10px 0 20px 0;\"><span id=\"download_all\" class=\"link\">Download All Data</span></div>"; $__jyn .= "<div style=\"margin: 10px 0 20px 0;\"><span id=\"download_completes\" class=\"link\">Download Qualified / Complete Data Only</span></div>"; if (!$ssiwebadmin8_4_8::_cti) { $__jyn .= "<div class=\"note\">Clicking a link above will allow you to save the <b>" . $authlib8_4_8::_byz . "_data.csv</b> file to your local computer. You will then need to use the \"Data Management\" dialog within SSI Web to \"Accumulate\" the data so that it can be exported.</div>"; } my $__jyo = ""; $__jyo .= _con("download_all"); $__jyo .= _con("download_completes"); $__jyn .= authlib8_4_8::_bns($__jyo); return _cou("Download Data", $__jyn); } sub _cno { my $__jyp = ""; $__jyp .= "<center>\n"; $__jyp .= "<div class=\"search_options_box\">"; $__jyp .= "<div class=\"section_header\">Data Record Search Options</div>"; $__jyp .= "<div style=\"padding: 10px;\">"; $__jyp .= "Respondent Status:\n"; $__jyp .= "<select name=\"status\">\n"; $__jyp .= "<option value=\"\">All</option>\n"; $__jyp .= "<option value=\"5\">Qualified / Complete</option>\n"; $__jyp .= "<option value=\"2\">Incomplete</option>\n"; $__jyp .= "<option value=\"4\">Disqualified</option>\n"; $__jyp .= "</select>\n"; $__jyp .= "</div>"; $__jyp .= "<center>"; my ($__jyr, $__jys) = _cnp(0); $__jyp .= $__jyr; $__jyp .= "</center></div>"; $__jyp .= "<br><span id=\"view_data_search\" class=\"link\">Search</span>\n"; $__jyp .= "</center>\n"; my $__jyq = _con("view_data_search", "VerifySearchLogic()"); $__jyp .= authlib8_4_8::_bns($__jyq); $__jyp .= "<input type=\"hidden\" name=\"task\" value=\"vd_result\">\n"; return _cou("View Data - Search", $__jyp); } sub _cnp { my($__jzd) = @_; my $__jyt = ""; my $__jyu = 0; my $__jyv = 0; my $__jyw = 5; my $__jyx = ""; my $__jyy = ""; my $__jyz = ""; my $__jza = ""; my $__jzb = ""; my @__jzc = (); my ($__jze, $__jzf, $__jzg, $__jzh) = authlib8_4_8::_btv(0, 0, 0, 0, "", "", 0, ""); $__jyt .= "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\" style=\"margin-top: 10px;\"><tr>\n"; $__jyt .= "<td align=\"left\" nowrap>Variable Name</td>\n"; $__jyt .= "<td align=\"left\">Operator</td>\n"; $__jyt .= "<td align=\"left\">Value</td>\n"; $__jyt .= "<td align=\"left\">&nbsp;</td>\n"; for ($__jyv = 1; $__jyv <= $__jyw; $__jyv++) { $__jyt .= "<tr class=\"row_" . $__jyv . "\">\n"; $__jyy = "variable_" . $__jyv; $__jyt .= "<td align=\"left\">\n"; $__jyt .= "<select name=\"" . $__jyy . "\" id=\"" . $__jyy . "\" style=\"margin-right: 20px;\">\n"; $__jyt .= "<option value=\"\" selected></option>\n"; $__jyt .= $__jze; $__jyt .= "</select>"; $__jyt .= "</td>\n"; $__jyz = "operator_" . $__jyv; $__jyt .= "<td align=\"center\">\n"; $__jyt .= "<select name=\"" . $__jyz . "\" id=\"" . $__jyz . "\" style=\"margin-right: 20px;\">\n"; $__jyt .= "<option value=\"\" selected></option>\n"; $__jyt .= "<option value=\"=\" id=\"" . _cnq("=") . "\"> = </option>\n"; $__jyt .= "<option value=\"<>\" id=\"" . _cnq("<>") . "\"> <> </option>\n"; $__jyt .= "<option value=\"<\" id=\"" . _cnq("<") . "\"> &lt; </option>\n"; $__jyt .= "<option value=\">\" id=\"" . _cnq(">") . "\"> &gt; </option>\n"; $__jyt .= "<option value=\"<=\" id=\"" . _cnq("<=") . "\"> &lt;= </option>\n"; $__jyt .= "<option value=\">=\" id=\"" . _cnq(">=") . "\"> &gt;= </option>\n"; $__jyt .= "<option value=\"contains\" id=\"" . _cnq("contains") . "\"> contains </option>\n"; $__jyt .= "<option value=\"does not contain\" id=\"" . _cnq("does not contain") . "\"> does not contain </option>\n"; $__jyt .= "</select>"; $__jyt .= "</td>\n"; $__jza = "value_" . $__jyv; $__jyt .= "<td align=\"left\"><input name=\"" . $__jza . "\" id=\"" . $__jza . "\" type=\"text\" class=\"text_input\" style=\"margin-right: 20px;\"></td>\n"; $__jyt .= "<td align=\"left\">\n"; if ($__jyv < $__jyw) { $__jzb = "joiner_" . $__jyv; $__jyt .= "<select name=\"" . $__jzb . "\" id=\"" . $__jzb . "\">\n"; $__jyt .= "<option value=\"\" selected></option>\n"; $__jyt .= "<option value=\"AND\" id=\"AND\"> AND </option>\n"; $__jyt .= "<option value=\"OR\" id=\"OR\"> OR </option>\n"; $__jyt .= "</select>"; } else { $__jyt .= "&nbsp;"; } $__jyt .= "</td>\n"; $__jyt .= "</tr>\n"; if ($__jzd) { if (exists $authlib8_4_8::_bzi{$__jyy}) { $__jyu = 1; push @__jzc, "jQuery(\".row_" . $__jyv . " #" . $authlib8_4_8::_bzi{$__jyy} . "\")[0].selected = true;"; } if (exists $authlib8_4_8::_bzi{$__jyz}) { push @__jzc, "jQuery(\".row_" . $__jyv . " #" . _cnq($authlib8_4_8::_bzi{$__jyz}) . "\")[0].selected = true;"; } if (exists $authlib8_4_8::_bzi{$__jza}) { push @__jzc, "jQuery(\".row_" . $__jyv . " #" . $__jza . "\")[0].value = \"" . $authlib8_4_8::_bzi{$__jza} . "\";"; } if ($__jyv < $__jyw && exists $authlib8_4_8::_bzi{$__jzb}) { push @__jzc, "jQuery(\".row_" . $__jyv . " #" . $authlib8_4_8::_bzi{$__jzb} . "\")[0].selected = true;"; } } } $__jyt .= "</tr>"; $__jyt .= "</table>\n"; if (@__jzc) { my $__jyx = "jQuery(document).ready(function() {" . join("\n", @__jzc) . "});"; $__jyt .= authlib8_4_8::_bns($__jyx); } return ($__jyt, $__jyu); } sub _cnq { my ($__jzj) = @_; my $__jzi = ""; if ($__jzj eq "=") { $__jzi = "equal"; } elsif($__jzj eq "<>") { $__jzi = "not_equal"; } elsif($__jzj eq "<") { $__jzi = "less_than"; } elsif($__jzj eq ">") { $__jzi = "greater_than"; } elsif($__jzj eq "<=") { $__jzi = "less_than_equal"; } elsif($__jzj eq ">=") { $__jzi = "greater_than_equal"; } elsif($__jzj eq "contains") { $__jzi = "contains"; } elsif($__jzj eq "does not contain") { $__jzi = "does_not_contain"; } return $__jzi; } sub _cnr { my $__jzk = ""; my $__jzl = 0; my $__jzm = 0; my $__jzn = 0; my @__jzo = (); my $__jzp = ""; my $__jzq = 0; if (exists $authlib8_4_8::_bzi{"view_data_search"}) { _cns($authlib8_4_8::_bzi{"view_data_search"}); } if (exists $authlib8_4_8::_bzi{"status"}) { $__jzn = int($authlib8_4_8::_bzi{"status"}); if ($__jzn) { push @__jzo, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespStatus` = " . $__jzn; $__jzq = 1; } } my $__jzr = {}; my ($__jzv, $__jzw) = _cnu($__jzr); if ($__jzv) { push @__jzo, $__jzv; $__jzq = 1; } $__jzp = "SELECT `" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` FROM "; my $__jzs = $authlib8_4_8::_bzb . "_data1"; $__jzr->{$__jzs} = 1; foreach my $__jzt (sort keys %{$__jzr}) { $__jzp .= "`" . $__jzt . "`,"; } chop($__jzp); if (@__jzo) { foreach my $__jzt (sort keys %{$__jzr}) { if($__jzs ne $__jzt) { push @__jzo, "`" . $__jzs . "`.`sys_RespNum` = `" . $__jzt . "`.`sys_RespNum`"; } } $__jzp .= " WHERE " . join(" AND ", @__jzo); } $__jzl = _cnt(authlib8_4_8::_bms($__jzp)); $__jzk .= "<center>\n"; $__jzk .= "<div id=\"data_results_box\">"; $__jzk .= "<table border=\"0\"><tr><td align=\"left\" width=\"25%\" nowrap>\n"; $__jzk .= "Data Records Found\n"; $__jzk .= "</td><td align=\"left\" width=\"75%\" valign=\"top\">&nbsp;</td></tr>"; $__jzk .= "<tr><td id=\"data_results_cell\" align=\"left\">\n"; $__jzk .= "<select name=\"result_list\" multiple size=\"15\" id=\"data_list\""; $__jzk .= " onclick='document.mainform[\"select_all\"].checked = false;'>\n"; foreach $__jzm (@{$__jzl}) { $__jzk .= "<option selected value=\"" . $__jzm . "\">" . $__jzm . "</option>\n"; } $__jzk .= "</select>\n"; $__jzk .= "<div style=\"margin-bottom: 10px;\"><input checked type=\"checkbox\" onclick=\"Select();\" name=\"select_all\" id=\"select_all\" value=\"1\"> <label for=\"select_all\">Select All</label></div>\n"; $__jzk .= "</td>\n"; $__jzk .= "<td id=\"data_results_options_cell\" align=\"left\" nowrap valign=\"top\" style=\"padding-left: 50px;\">\n"; $__jzk .= "<span id=\"view_data_next1\" class=\"link\" >\n"; $__jzk .= "View Selected Records</span>\n"; my $__jzu = ""; if(exists $ssiwebadmin8_4_8::_csr{"full_access"}) { $__jzk .= "<div style=\"padding-bottom: 10px; padding-top: 10px;\">\n"; $__jzk .= "<span id=\"view_data_delete\" class=\"link\">Delete Selected Records</span>"; $__jzu .= _con("view_data_delete"); } $__jzk .= "</td></tr>\n"; $__jzk .= "<tr><td colspan=\"2\" align=\"left\">"; $__jzk .= "<div class=\"note\">Listed by Internal Respondent Number from oldest to newest</div>\n"; $__jzk .= "</td></tr>"; $__jzk .= "</table>\n"; $__jzk .= "</div></center>\n"; $__jzu .= _con("view_data_next1"); $__jzu .= "function Select(){\n"; $__jzu .= "if(document.mainform[\"select_all\"].checked){\n"; $__jzu .= "var i = 0;\n"; $__jzu .= "var SelBoxObj = document.mainform[\"result_list\"];\n"; $__jzu .= "for(i = 0; i < SelBoxObj.options.length; i++){\n"; $__jzu .= "SelBoxObj.options[i].selected = true;}\n"; $__jzu .= "}else{document.mainform[\"result_list\"].selectedIndex = -1;}\n"; $__jzu .= "}\n"; $__jzk .= authlib8_4_8::_bns($__jzu); if($__jzq) { $__jzk .= _cnv("", $__jzw); } return _cou("View Data", $__jzk); } sub _cns { my($__kab) = @_; $__kab =~ s/^{//; $__kab =~ s/}$//; my @__jzx = split(",", $__kab); my $__jzy = ""; my $__jzz = ""; my $__kaa = ""; foreach $__jzy (@__jzx) { if($__jzy =~ m/"(.*?)"\s*=>\s*"(.*?)"$/) { $__jzz = $1; $__kaa = $2; $authlib8_4_8::_bzi{$__jzz} = $__kaa; } } } sub _cnt { my($__kaf) = @_; my $__kac = 0; eval { $__kac = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__kaf, 0)); }; if ($@) { authlib8_4_8::_bqa(214, "Database error.", "Database error. Cannot get data results.", $@); } my @__kad = (); my $__kae = 0; foreach $__kae (@{$__kac}) { push @__kad, $__kae->[0]; } return \@__kad; } sub _cnu { my ($__kay) = @_; my $__kag = ""; my $__kah = ""; my $__kai = ""; my $__kaj = ""; my $__kak = ""; my $__kal = ""; my $__kam = 0; my $__kan = 0; my $__kao = 0; my $__kap = ""; my %__kaq = (); my $__kar = ""; my $__kas = ""; my $__kat = ""; my $__kau = ""; my $__kav = 1; my $__kaw = ""; for ($__kam = 1; $__kam <= 5; $__kam++) { $__kah = ""; $__kai = ""; $__kak = ""; $__kal = ""; $__kan = 0; $__kar = "variable_" . $__kam; if (exists $authlib8_4_8::_bzi{$__kar}) { $__kah = authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__kar}); if ($__kah) { $__kaq{$__kar} = $__kah; ($__kav, $__kaw) = authlib8_4_8::_bnv($__kah); $__kap = $authlib8_4_8::_bzb . "_data" . $__kav; $__kay->{$__kap} = 1; $__kah = "`" . $__kap . "`.`" . $__kah . "`"; } } else { last; } $__kas = "operator_" . $__kam; if (exists $authlib8_4_8::_bzi{$__kas}) { $__kaj = authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__kas}); if ($__kaj) { $__kaq{$__kas} = $__kaj; if($__kaj eq "=") { $__kai = "="; } elsif($__kaj eq "<>") { $__kai = "<>"; } elsif($__kaj eq "<") { $__kai = "<"; } elsif($__kaj eq ">") { $__kai = ">"; } elsif($__kaj eq "<=") { $__kai = "<="; } elsif($__kaj eq ">=") { $__kai = ">="; } elsif ($__kaj eq "contains") { $__kai = "LIKE"; $__kan = 1; } elsif ($__kaj eq "does not contain") { $__kai = "NOT LIKE"; $__kan = 1; } else { authlib8_4_8::_bqa(0, "Error.", "Filter operator does not exist.", $@); } } } $__kat = "value_" . $__kam; if (exists $authlib8_4_8::_bzi{$__kat}) { $__kak = authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__kat}); $__kaq{$__kat} = $__kak; if ($__kan) { $__kak = "\%" . $__kak . "\%"; } $__kak = $authlib8_4_8::_byw->quote($__kak); } if ($__kah && $__kai && $__kak) { my $__kax = ""; if ($__kai eq "=" && $__kak eq "''") { $__kax = $__kah . " IS NULL OR "; } elsif ($__kai eq "<>" && $__kak eq "''") { $__kax = $__kah . " IS NOT NULL OR "; } elsif($__kai eq "<>") { $__kax = $__kah . " IS NULL OR "; } $__kag .= "("; if ($__kax) { $__kag .= $__kax; } $__kag .= $__kah . " " . $__kai . " " . $__kak . ")"; } $__kau = "joiner_" . $__kam; if (exists $authlib8_4_8::_bzi{$__kau}) { $__kal = uc(authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__kau})); if ($__kal eq "AND" || $__kal eq "OR") { $__kaq{$__kau} = $__kal; $__kag .= " " . $__kal . " "; } } } if ($__kag) { $__kag = "(" . $__kag . ")"; } return ($__kag, \%__kaq); } sub _cnv { my ($__kaz, $__kba) = @_; if ($__kba) { $__kaz = _cpv(0, 0, $__kba, 0); } $__kaz =~ s/"/&quot;/g; $__kaz =~ s/\n//g; return "<input type=\"hidden\" name=\"view_data_search\" value=\"" . $__kaz . "\">\n"; } sub _cnw { my $__kbb = ""; if (exists $authlib8_4_8::_bzi{"result_list"}) { my $__kbc = $authlib8_4_8::_bzi{"result_list"}; my $__kbd = ref $__kbc; if ($__kbd eq "ARRAY") { $__kbb = join(",", @{$__kbc}); } else { $__kbb = $__kbc; } } return $__kbb; } sub _cnx { my $__kbe = ""; $__kbe .= "<br><center><table>\n"; $__kbe .= "<tr><td align=\"center\">\n"; $__kbe .= "You must select one or more data records.<br><br>"; $__kbe .= "<span id=\"view_data_next1\" class=\"link\">Return to data list</span>\n"; $__kbe .= authlib8_4_8::_bns(_con("view_data_next1")); $__kbe .= "</td></tr>\n"; $__kbe .= "</table></center>"; if (exists $authlib8_4_8::_bzi{"view_data_search"}) { $__kbe .= _cnv($authlib8_4_8::_bzi{"view_data_search"}, 0); } return _cou("Error", $__kbe); } sub _cny { my ($__kch, $__kci) = @_; my $__kbf = 0; my $__kbg = ""; my $__kbh = 0; my $__kbi = 0; my $__kbj = 0; my $__kbk = _cnw(); my @__kbl = split(",", $__kbk); if (exists $authlib8_4_8::_bzi{"result_list_index"}) { $__kbj = $authlib8_4_8::_bzi{"result_list_index"}; $__kbj += $__kci; } if (!$__kch && (@__kbl == 0 || $__kbj >= @__kbl || $__kbj < 0)) { if (exists $authlib8_4_8::_bzi{"view_data_results"}) { return _cnx(); } else { return _cnr(); } } if ($__kch) { if (exists $authlib8_4_8::_bzi{"hid_respnum"}) { $__kbf = $authlib8_4_8::_bzi{"hid_respnum"}; } } else { $__kbf = $__kbl[$__kbj]; } my $__kbm = _coe($__kbf); my $__kbn = ""; my $__kbo = ""; my $__kbp = 0; my @__kbq = (); my $__kbr = @{$__kbm}; my $__kbs = 1; my $__kbt = ""; my $__kbu = ""; my $__kbv = ""; my $__kbw = ""; my $__kbx = 0; my $__kby = 0; my %__kbz = (); my $__kca = ""; for($__kbp = 0; $__kbp < $__kbr; $__kbp++) { $__kbx = 0; $__kby = 0; $__kbs = 1; @__kbq = (); $__kbn = $__kbm->[$__kbp]->[0]; $__kbo = $__kbm->[$__kbp]->[1]; if ($__kbn =~ m/^sys_/i) { $__kbz{$__kbn} = $__kbo; next; } ($__kbu, $__kbv, $__kbw) = authlib8_4_8::_brx($__kbn); $__kby = authlib8_4_8::_btu($__kbu); if ($__kby) { $__kbx = $__kby->{'_bgu'}; } $__kca .= _cod($__kbn, $__kbo, $__kbx, $__kch); } $__kbg .= "<center>\n"; $__kbg .= "<table border=\"0\" width=\"90%\" id=\"view_data_table\">\n"; $__kbg .= "<tr><td>\n"; if ($__kch) { $__kbg .= "<div class=\"warning\" style=\"font-size: 14px; font-weight: normal; padding-bottom: 20px;\"><b>Warning:</b> Please be careful editing data. Entering an invalid response may cause problems in data analysis.</div>\n"; $__kbg .= "<input type=\"hidden\" name=\"hid_timestamp\" value=\"" . time() . "\">"; } $__kbg .= _cob(1, $__kbf, $__kch, $__kbj); $__kbg .= "</td></tr><tr><td>"; $__kbg .= "<table border=\"0\" width=\"100%\" id=\"view_data_general_info\">\n"; $__kbg .= "<tr class=\"section_header\">\n"; $__kbg .= "<td colspan=\"2\" align=\"left\">General Information</td>\n"; $__kbg .= "</tr>\n"; $__kbg .= _coc("Internal Respondent Number", "", $__kbf, -1, 0); $__kbg .= _coc("Status", "", $__kbz{"sys_RespStatus"}, -1, $__kch); my $__kcb = ""; if (exists $__kbz{"sys_Browser"}) { $__kcb .= "Browser = " . htmlentity::encode($__kbz{"sys_Browser"}) . "<br>"; } if (exists $__kbz{"sys_UserJavaScript"}) { my $__kcc = $__kbz{"sys_UserJavaScript"}; my $__kcd = ""; if ($__kcc) { $__kcd = "Yes"; } else { $__kcd = "No"; } $__kcb .= "JavaScript = " . $__kcd . "<br>"; } if (exists $__kbz{"sys_OperatingSystem"}) { $__kcb .= "Operating System = " . htmlentity::encode($__kbz{"sys_OperatingSystem"}) . "<br>"; } if (exists $__kbz{"sys_IPAddress"}) { $__kcb .= "I.P. Address = " . htmlentity::encode($__kbz{"sys_IPAddress"}); } if ($__kcb) { $__kbg .= _coc("Respondent Computer", "", $__kcb, -1, 0); } if (length($__kbz{"sys_DispositionCode"}) > 0) { $__kbg .= _coc("Disposition", "", $__kbz{"sys_DispositionCode"}, -1, $__kch); } $__kbg .= _coc("Time Interview Began", "", authlib8_4_8::_bud($__kbz{"sys_StartTime"}), -1, 0); $__kbg .= _coc("Time Interview Finished", "", authlib8_4_8::_bud($__kbz{"sys_EndTime"}), -1, 0); if ($__kch && !exists($authlib8_4_8::_bzi{"hid_test_mode"})) { $__kbg .= _coc("Restart Question", "", $__kbz{"sys_LastQuestion"}, -1, 1); } $__kbg .= "</table><br>\n"; $__kbg .= "</td></tr><tr><td>\n"; $__kbg .= "<table cellspacing=\"0\" cellpadding=\"3\" id=\"view_data_question_info\" width=\"100%\"><tr class=\"section_header\">\n"; $__kbg .= "<td align=\"left\">Question</td>\n"; $__kbg .= "<td align=\"left\">Response</td>\n"; $__kbg .= "</tr>\n"; $__kbg .= $__kca; my $__kce = _cnz($__kbf); my $__kcf = 0; foreach $__kcf (@{$__kce}) { $__kbg .= _cod($__kcf->[1], $__kcf->[2], 0, $__kch); } $__kbg .= "</table></td></tr><tr><td align=\"center\">"; $__kbg .= _cob(2, $__kbf, $__kch, $__kbj); $__kbg .= "</td></tr></table></center><br>\n"; $__kbg .= "<input type=\"hidden\" name=\"result_list\" value=\"" . $__kbk . "\">\n"; $__kbg .= "<input type=\"hidden\" name=\"result_list_index\" value=\"" . $__kbj . "\">\n"; $__kbg .= "<input type=\"hidden\" name=\"task\" value=\"vd_view\">\n"; $__kbg .= "<input type=\"hidden\" name=\"hid_respnum\" value=\"" . $__kbf . "\">\n"; if (exists $authlib8_4_8::_bzi{"view_data_search"}) { $__kbg .= _cnv($authlib8_4_8::_bzi{"view_data_search"}, 0); } $__kbg .= "<style type=\"text/css\">.stage{width: auto;}</style>"; my $__kcg = ""; if ($__kch) { $__kcg = "Edit Data"; } else { $__kcg = "View Data"; } return _cou($__kcg, $__kbg); } sub _cnz { my($__kcl) = @_; my $__kcj = "SELECT * FROM `" . $authlib8_4_8::_bzb . "_clists`"; if ($__kcl) { $__kcj .= " WHERE `sys_RespNum` = " . $__kcl; } my $__kck = 0; eval { $__kck = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__kcj, 0)); }; if ($@) { authlib8_4_8::_bqa(256, "Database error.", "Database error. Cannot read clist record.", $@); } return $__kck; } sub _coa { my $__kcm = _cnz(0); my $__kcn = 0; my @__kco = (); my %__kcp = (); my $__kcq = ""; my %__kcr = (); my $__kcs = 0; my $__kct = ""; foreach $__kcn (@{$__kcm}) { $__kcs = $__kcn->[0]; $__kcq = $__kcn->[1]; $__kct = $__kcn->[2]; if (not exists $__kcp{$__kcq}) { $__kcp{$__kcq} = 1; } $__kcr{$__kcs . "_" . $__kcq} = $__kct; } my @__kcu = sort keys(%__kcp); return (\@__kcu, \%__kcr); } sub _cob { my($__kcw, $__kcx, $__kcy, $__kcz) = @_; my $__kcv = ""; $__kcv .= "<div style=\"height: 25px;"; if ($__kcw == 1) { $__kcv .= "margin-bottom: 5px;"; } else { $__kcv .= "margin-top: 5px;"; } $__kcv .= "\">\n"; if ($__kcy) { $__kcv .= "<div id=\"view_data_save" . $__kcw . "\" class=\"link floating_button\" style=\"width: 125px; padding-left: 0px;\">Save Changes</div>\n"; $__kcv .= authlib8_4_8::_bns(_cpn("view_data_save" . $__kcw, "SaveDataCheck()")); $__kcv .= "<div id=\"view_data_cancel" . $__kcw . "\" class=\"link floating_button\">Cancel</div>\n"; $__kcv .= authlib8_4_8::_bns(_con("view_data_cancel" . $__kcw, "")); } else { $__kcv .= "<div id=\"view_data_previous" . $__kcw . "\" class=\"next_button ui-corner-tl ui-corner-bl\">&lt;</div>"; $__kcv .= authlib8_4_8::_bns(_con("view_data_previous" . $__kcw)); $__kcv .= "<div id=\"view_data_next" . $__kcw . "\" class=\"next_button ui-corner-tr ui-corner-br\" style=\"border-left-width: 0px;\">&gt;</div>"; $__kcv .= authlib8_4_8::_bns(_con("view_data_next" . $__kcw)); if(exists $ssiwebadmin8_4_8::_csr{"full_access"}) { $__kcv .= "<div id=\"view_data_edit" . $__kcw . "\" class=\"link floating_button\">Edit</div>\n"; $__kcv .= authlib8_4_8::_bns(_con("view_data_edit" . $__kcw)); } if(exists $ssiwebadmin8_4_8::_csr{"full_access"}) { if ($__kcw == 1) { $__kcv .= "<input type=\"hidden\" name=\"delete_records\" value=\"1\">\n"; $__kcv .= "<input type=\"hidden\" name=\"delete_list\" value=\"" . $__kcx . "\">\n"; } $__kcv .= "<div id=\"view_data_delete" . $__kcw . "\" class=\"link floating_button\">Delete</div>\n"; $__kcv .= authlib8_4_8::_bns(_cpn("view_data_delete" . $__kcw, "DeleteRecordDialog()")); } } $__kcv .= "</div>\n"; return $__kcv; } sub _coc { my ($__kdn, $__kdo, $__kdp, $__kdm, $__kdq) = @_; my $__kda = ""; my $__kdb = 0; my $__kdc = ""; my $__kdd = 0; if (length(authlib8_4_8::_bpy($__kdp)) > 0) { $__kdd = 1; } $__kdc .= "<tr "; if ($ssiwebadmin8_4_8::_ctp) { $__kdc .= "class=\"alt_color1\""; $ssiwebadmin8_4_8::_ctp = 0; } else { $ssiwebadmin8_4_8::_ctp = 1; } $__kdc .= "><td width=\"10%\" class=\"data_cell_label\" "; my $__kde = length($__kdo); if ($__kde < 50) { $__kdc .= " nowrap "; } $__kdc .= ">\n"; $__kdc .= "<b>" . $__kdn . "</b>"; $__kdc .= "</td><td class=\"data_cell_value\">"; if ($__kdn eq "Status" && $__kdm == -1 && !$__kdq) { if ($__kdp eq "5") { $__kdp = "Complete"; } elsif ($__kdp eq "4") { $__kdp = "Disqualified"; } elsif ($__kdp eq "2") { $__kdp = "Incomplete"; } } if ($__kdq) { if ($__kdn eq "Status" && $__kdm == -1) { $__kdc .= "\n<select name=\"sys_RespStatus\">\n"; $__kdc .= "<option value=\"2\" id=\"sys_RespStatus_2\">Incomplete</option>\n"; $__kdc .= "<option value=\"4\" id=\"sys_RespStatus_4\">Disqualified</option>\n"; $__kdc .= "<option value=\"5\" id=\"sys_RespStatus_5\">Complete</option>\n"; $__kdc .= "</select>\n"; $__kdc .= authlib8_4_8::_bns("jQuery(\"#sys_RespStatus_" . authlib8_4_8::_bmu($__kdp) . "\")[0].selected = true;\n"); } elsif ($__kdn eq "Restart Question" && $__kdm == -1) { my $__kdf = @{$authlib8_4_8::_bzj}; my $__kdg = 0; my $__kdh = 0; my $__kdi = 0; my $__kdj = 0; my $__kdk = 0; my $__kdl = 0; my $__kdm = 0; $__kdc .= "\n<select name=\"sys_LastQuestion\">\n"; my ($__kdr, $__kds, $__kdt, $__kdu) = authlib8_4_8::_btv(0, 1, 0, 0, "", "", 0, ""); $__kdc .= $__kdr; $__kdc .= "</select>\n"; $__kdc .= authlib8_4_8::_bns("jQuery(\"#" . authlib8_4_8::_bua(authlib8_4_8::_bmu($__kdp)) . "\")[0].selected = true;\n"); } elsif ($__kdn eq "Disposition" && $__kdm == -1) { $__kdc .= "<input type=\"tel\" class=\"numeric_input\" name=\"sys_DispositionCode\" size=\"3\" maxlength=\"3\" value=\"" . htmlentity::encode($__kdp) . "\" >\n"; } else { $__kdc .= "<input type=\"text\" class=\"text_input\" name=\"" . htmlentity::encode($__kdn) . "\" size=\"20\" value=\"" . htmlentity::encode($__kdp) . "\" >\n"; } } else { if ($__kdm == &authlib8_4_8::_CCB || $__kdm == &authlib8_4_8::_CCC || $__kdm == &authlib8_4_8::_CCD) { $__kdb = index($__kdp, ","); $__kda = substr($__kdp, $__kdb + 1); $__kdp = substr($__kdp, 0, $__kdb); $__kdc .= htmlentity::encode($__kdp); if ($__kda) { $__kdc .= "&nbsp; Levels = " . htmlentity::encode($__kda); } } else { if (length(authlib8_4_8::_bpy($__kdp)) == 0) { $__kdp = "&nbsp;"; } else { if ($__kdm != -1) { $__kdp = htmlentity::encode($__kdp); } } $__kdc .= $__kdp; } } if ($__kdo ne "" && $__kdd) { $__kdc .= _col($__kdo, 150, 1) . "\n"; } $__kdc .= "</td></tr>\n"; return $__kdc; } sub _cod { my($__keg, $__keh, $__kei, $__kej) = @_; my $__kdv = ""; my $__kdw = ""; my $__kdx = ""; my $__kdy = ""; my $__kdz = 0; my $__kea = ""; my $__keb = ""; my $__kec = ""; my $__ked = 0; my $__kee = ""; $__kdv = ""; ($__kdw, $__kdx, $__kdy) = authlib8_4_8::_brx($__keg); if ($__kei == 0 && $__kdw =~ m/^ACAIMP/i) { $__kei = &authlib8_4_8::_CCB; } if (($__kei == &authlib8_4_8::_CBV) || ($__kei == &authlib8_4_8::_CCH) || ($__kei == &authlib8_4_8::_CCI) || ($__kei == &authlib8_4_8::_CCJ) || ($__kei == &authlib8_4_8::_CCL) || ($__kei == &authlib8_4_8::_CCT)) { if ($__keg !~ m/_other$/) { if ($__kei == &authlib8_4_8::_CCH) { ($__kea, $__keb, $__kec, $__ked) = _coh($__keg, $__keh); if (!$__ked) { $__kdv = $__kea . ")(" . $__keb; if ($__kec ne "") { $__kdv .= ")(" . $__kec; } } } elsif($__kei == &authlib8_4_8::_CCT) { my($__kek, $__kel) = _coi($__keg, $__keh); $__kdv = $__kek . ")(" . $__kel; } else { $__kdv = authlib8_4_8::_bry($__keg, 1, $__keh, 1); } } } elsif ($__kei == &authlib8_4_8::_CCA) { $__kdv = _coj($__keg); } elsif ($__kei == &authlib8_4_8::_CCB) { $__kdv = _cok($__keg); } elsif ($__kei == &authlib8_4_8::_CCM) { $__kdv = authlib8_4_8::_bpi($__keg, $__keh) } elsif ($__kei == &authlib8_4_8::_CCN) { my $__kef = 0; if ($__keg =~ m/BYO_(\d+)/i) { $__kef = $1; } my ($__kem, $__ken) = authlib8_4_8::_brb($__keg, $__kef, $__keh, 1); if ($__kem || $__ken) { $__kdv = $__kem . ")(" . $__ken; } } elsif ($__kei == 0) { if ($__keg =~ m/_others$/i) { next; } } $__kee .= _coc($__keg, $__kdv, $__keh, $__kei, $__kej); return $__kee; } sub _coe { my($__kez) = @_; my @__keo = (); my @__kep = (); my $__keq = 1; my $__ker = ""; my $__kes = ""; my $__ket = 0; my $__keu = 0; push @__keo, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = " . $__kez; my($__kfa, $__kfb, $__kfc, $__kfd, $__kfe, $__kff) = _cor(\@__keo, 1, 1); if($authlib8_4_8::_bze->{"remove_num"} > 0 && $__kfb == 0) { my ($__kfg, $__kfh, $__kfi, $__kfj) = _cre($authlib8_4_8::_bze->{"layout_build"}, 0); if ($__kfj) { $__keq = 1; } else { my $__kev = 0; eval { $__kev = $authlib8_4_8::_byw->selectrow_hashref(authlib8_4_8::_bmy($__kfa, 0)); }; if ($@) { authlib8_4_8::_bqa(249, "Database error.", "Database error. Cannot read data record", $@); } $__keq = 0; $__keu = @{$__kfg}; for ($__ket = 0; $__ket < $__keu; $__ket++) { $__ker = $__kfg->[$__ket]->[0]; if (exists $__kev->{$__ker}) { $__kes = $__kev->{$__ker}; if (exists $__kfe->{$__kff->{$__ker}}) { $__kes = authlib8_4_8::_bmt($__kes); } else { $__kes = authlib8_4_8::_brt($__kes); } push @__kep, [$__ker, $__kes]; } } } } if($__keq) { my $__kew = 1; do { my $__kex = 0; eval { $__kex = $authlib8_4_8::_byw->selectrow_arrayref(authlib8_4_8::_bmy($__kfa, 0)); }; if ($@) { authlib8_4_8::_bqa(216, "Database error.", "Database error. Cannot read data record.", $@); } my $__key = 0; $__keu = @{$__kex}; for ($__ket = 1; $__ket <= $__keu; $__ket++) { if (!exists $__kfd->{$__ket}) { $__ker = $__kfc->[$__key]; $__key++; $__kes = $__kex->[$__ket - 1]; if (exists $__kfe->{$__ket}) { $__kes = authlib8_4_8::_bmt($__kes); } else { $__kes = authlib8_4_8::_brt($__kes); } push @__kep, [$__ker, $__kes]; } } if ($__kfb > 0) { ($__kfa, $__kfb, $__kfc, $__kfd, $__kfe, $__kff) = _cor(\@__keo, $__kfb, 0); } else { $__kew = 0; } }while($__kew); } return \@__kep; } sub _cof { my $__kfk = ""; my $__kfl = ""; my $__kfm = $authlib8_4_8::_bzi{"hid_respnum"}; my $__kfn = 0; my $__kfo = 0; if (exists $authlib8_4_8::_bzi{"hid_timestamp"}) { if ($authlib8_4_8::_bzi{"hid_timestamp"} =~ m/^\d+$/) { $__kfo = $authlib8_4_8::_bzi{"hid_timestamp"}; } else { authlib8_4_8::_bse(0, "hid_timestamp contains an invalid character: " . $authlib8_4_8::_bzi{"hid_timestamp"}); delete $authlib8_4_8::_bzi{"hid_timestamp"}; } } eval { my $__kfp = "SELECT `time_stamp` FROM `" . $authlib8_4_8::_bzb . "_admin_log` WHERE `time_stamp` = " . $__kfo; $__kfn = @{$authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__kfp, 0))}; }; if ($@) { authlib8_4_8::_bqa(276, "Database error.", "Database error. Error checking Admin Log.", $@); } if ($__kfn) { $__kfk = _cny(0, 0); } else { my @__kfq = (); push @__kfq, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = " . $__kfm; my $__kfp = ""; my $__kfr = 1; my $__kfs = 0; my $__kft = 0; my $__kfu = 0; my $__kfv = 0; my $__kfw = 1; my $__kfx = ""; my $__kfy = ""; my @__kfz = (); do { if ($__kfr > 0) { ($__kfp, $__kfr, $__kfs, $__kft, $__kfu, $__kfv) = _cor(\@__kfq, $__kfr, 1); foreach $__kfx (@{$__kfs}) { if (exists $authlib8_4_8::_bzi{$__kfx}) { $__kfy = authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__kfx}); if (!exists $__kfu->{$__kfv->{$__kfx}}) { if($__kfy ne "" && !authlib8_4_8::_bto($__kfy)) { $__kfl = "Invalid input. \"" . $__kfx . "\" should be a number."; $__kfw = 0; last; } } push @__kfz, [$__kfx, $__kfy]; } } } else { $__kfw = 0; } }while($__kfw); if($__kfl) { $__kfk = "<div class=\"error_msg\" style=\"padding: 10px;\">Error: " . $__kfl . " Please backup and fix the error.</div>"; } else { my $__kga = _coe($__kfm); authlib8_4_8::_bnu(\@__kfz, $__kfm, 1); my $__kgb = _cnz($__kfm); my $__kgc = 0; my $__kgd = 0; my $__kge = 0; foreach $__kgc (@{$__kgb}) { $__kfx = $__kgc->[1]; if (exists $authlib8_4_8::_bzi{$__kfx}) { $__kfy = authlib8_4_8::_bpy($authlib8_4_8::_bzi{$__kfx}); $__kgd = 1; eval { $__kfp = "UPDATE `" . $authlib8_4_8::_bzb . "_clists` SET `value` = ? WHERE `sys_RespNum` = " . $__kfm . " AND `list_name` = " . $authlib8_4_8::_byw->quote($__kfx); $__kge = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__kfp, 0)); $__kge->execute(authlib8_4_8::_bms($__kfy)); }; if ($@) { authlib8_4_8::_bqa(257, "Database error.", "Database error. Cannot update clist on Admin Save Data.", $@); } } } if ($__kgd) { $authlib8_4_8::_byw->commit(); } $__kfk = _cny(0, 0); my $__kgf = _cog($__kga, \@__kfz, $__kfm); _csb("Edit Data", $__kgf, $__kfo); } } return $__kfk; } sub _cog { my($__kgj, $__kgk, $__kgl) = @_; my %__kgg = (); my $__kgh = ""; my $__kgi = 0; foreach $__kgi (@{$__kgj}) { $__kgg{$__kgi->[0]} = $__kgi->[1]; } foreach $__kgi (@{$__kgk}) { if ($__kgg{$__kgi->[0]} ne $__kgi->[1]) { $__kgh .= $__kgi->[0] . " changed " . $__kgg{$__kgi->[0]} . " to " . $__kgi->[1] . "\n"; } } if ($__kgh) { $__kgh = "Respondent Number " . $__kgl . " values were changed.\n" . $__kgh; } return $__kgh; } sub _coh { my($__khh, $__khi) = @_; my $__kgm = 0; my $__kgn = 0; my $__kgo = ""; my $__kgp = ""; my $__kgq = ""; my $__kgr = 0; my $__kgs = 0; my $__kgt = 0; my $__kgu = 0; if ($__khh =~ m/(.*?)\./) { $__khh = $1; } if ($__khh =~ m/^(.*?)_r(\d+)_c(\d+)$/) { $__kgo = $1; $__kgm = $2; $__kgn = $3; } elsif ($__khh =~ m/^(.*?)_r(\d+)_c\*$/) { $__kgo = $1; $__kgm = $2; $__kgn = $__khi; } elsif ($__khh =~ m/^(.*?)_r\*_c(\d+)$/) { $__kgo = $1; $__kgm = $__khi; $__kgn = $2; } elsif ($__khh =~ m/^(.*?)_r(\d+)$/) { $__kgo = $1; $__kgm = $2; $__kgn = $__khi; $__kgt = 1; } elsif ($__khh =~ m/^(.*?)_c(\d+)$/) { $__kgo = $1; $__kgm = $__khi; $__kgn = $2; $__kgt = 1; } if ($__kgo eq "") { return ("", "", "", $__kgu); } elsif ($__kgt && $__khi eq "") { $__kgu = 1; return ("", "", "", $__kgu); } else { my $__kgv = tell $authlib8_4_8::_byh; my $__kgw = $authlib8_4_8::_bwq{$__kgo}; my $__kgx = $__kgw->{'_bgu'}; my $__kgy = $__kgw->{'_w'}; seek $authlib8_4_8::_byh, ($__kgy), 0; my $__kgz = authlib8_4_8::_bps(0); my $__kha = 0; if ($__kgz->{'_afl'} eq "rows") { $__kha = $__kgm - 1; } else { $__kha = $__kgn - 1; } my $__khb = ""; if ($__kha >= 0) { my $__khc = $__kgz->{'_any'}->[$__kha]; my $__khd = ref($__khc); if ($__khd eq "ComboVar") { my $__khe = authlib8_4_8::_bsw($__khc->{'_bcs'}); $__khb = authlib8_4_8::_bsa($__khe->[$__khi - 1]); } } $__kgp = $__kgz->{'_ajl'}; $__kgq = $__kgz->{'_alu'}; $__kgr = authlib8_4_8::_bsw($__kgp); $__kgs = authlib8_4_8::_bsw($__kgq); my $__khf = ""; my $__khg = ""; if ($__kgm > 0) { $__khf = authlib8_4_8::_bsa($__kgr->[$__kgm - 1]); } if ($__kgn > 0) { $__khg = authlib8_4_8::_bsa($__kgs->[$__kgn - 1]); } seek $authlib8_4_8::_byh, $__kgv, 0; return ($__khf, $__khg, $__khb, $__kgu); } } sub _coi { my($__khx, $__khy) = @_; my $__khj = 0; my $__khk = 0; my $__khl = 0; my ($__khz, $__kia, $__kib) = authlib8_4_8::_brx($__khx); my $__khm = tell $authlib8_4_8::_byh; my $__khn = $authlib8_4_8::_bwq{$__khz}; my $__kho = $__khn->{'_w'}; seek $authlib8_4_8::_byh, ($__kho), 0; my $__khp = authlib8_4_8::_bps(0); my $__khq = $__kia; my $__khr = authlib8_4_8::_bsw($__khp->{'_bcs'}); my $__khs = authlib8_4_8::_bsw($__khp->{'_bct'}); my $__kht = authlib8_4_8::_bsa($__khr->[$__khq - 1]); my $__khu = authlib8_4_8::_bsa($__khs->[$__khq - 1]); my $__khv = ""; my $__khw = ""; if ($__khp->{'_bcu'} eq "left") { $__khv = $__kht; $__khw = $__khu; } else { $__khv = $__khu; $__khw = $__kht; } seek $authlib8_4_8::_byh, $__khm, 0; return ($__khv, $__khw); } sub _coj { my($__kii) = @_; my $__kic = 0; my $__kid = 0; my $__kie = ""; my $__kif = ""; if ($__kii =~ m/_Rating(\d+)_(\d+)/i) { $__kic = $1; $__kid = $2; my $__kig = authlib8_4_8::_bpl($__kii, 0); my $__kih = $__kig->{'_asc'}; $__kie = $__kih->[$__kic - 1]->{'_bgt'}; $__kif = $__kih->[$__kic - 1]->{'_bca'}->[$__kid - 1]; return (authlib8_4_8::_bpy($__kie) . ")(" . authlib8_4_8::_bpy($__kif)); } else { return ""; } } sub _cok { my($__kin) = @_; my $__kij = 0; my $__kik = ""; if ($__kin =~ m/_Importance(\d+)/i) { $__kij = $1; my $__kil = authlib8_4_8::_bpl($__kin, 0); my $__kim = $__kil->{'_asc'}; $__kik = $__kim->[$__kij - 1]->{'_bgt'}; return authlib8_4_8::_bpy($__kik); } else { return ""; } } sub _col { my($__kio, $__kip, $__kiq) = @_; if ($__kio ne "") { $__kio = _crz($__kio); if (length($__kio) > $__kip) { $__kio = substr($__kio, 0, $__kip) . "..."; } if ($__kiq) { $__kio = " &nbsp;(" . $__kio . ")"; } } return $__kio; } sub _com { my $__kir = ""; if(exists $authlib8_4_8::_bzi{"delete_records"}) { if(exists $authlib8_4_8::_bzi{"delete_list"}) { my $__kis = $authlib8_4_8::_bzi{"delete_list"}; my @__kit = split(",", $__kis); my $__kiu = 0; my $__kiv = $authlib8_4_8::_bze->{"num_data_tables"}; my $__kiw = 0; my $__kix = 0; my $__kiy = ""; foreach $__kiu (@__kit) { for ($__kix = 1; $__kix <= $__kiv; $__kix++) { eval { $__kiy = "DELETE FROM `" . $authlib8_4_8::_bzb . "_data" . $__kix . "` WHERE `sys_RespNum` = " . $__kiu; $authlib8_4_8::_byw->do(authlib8_4_8::_bmy($__kiy, 0)); }; if ($@) { authlib8_4_8::_bqa(235, "Database error.", "Database error. Cannot delete row.", $@); } } $__kiw++; } $authlib8_4_8::_byw->commit(); $__kir .= "<br><center>The number of data records that have been deleted is: <b>" . $__kiw . "</b><br><br>\n"; $__kir .= "<span id=\"view_data_next1\" class=\"link\">Return to data list</span>\n"; $__kir .= authlib8_4_8::_bns(_con("view_data_next1")); $__kir .= "</center>"; _csb("Delete Records", "The following records were deleted: " . $__kis, 0); } } else { my $__kiz = _cnw(); if ($__kiz) { $__kir .= "<center><table><tr><td>"; $__kir .= "<div style=\"margin-bottom: 20px;\"><span class=\"warning\">Warning:</span> <b>Deleting Survey Records is FINAL!</b></div>"; $__kir .= "<div style=\"margin-bottom: 20px;\">Note: Any passwords associated with these respondents will be available to use again.</div>\n"; if ($authlib8_4_8::_bxw > 0) { $__kir .= "<div style=\"margin-bottom: 20px;\">The records being deleted will also be removed from the Quota Cell counts. This could cause" . " a closed quota cell to be re-opened.</div>"; } $__kir .= "<div style=\"margin-bottom: 20px;\">The following records will be deleted and removed from the system:</div>\n"; my $__kja = $__kiz; $__kja =~ s/,/, /g; $__kir .= "<b>" . $__kja . "</b><br><br>"; $__kir .= "<div id=\"view_data_delete\" class=\"link\">Delete Records</div>"; $__kir .= authlib8_4_8::_bns(_con("view_data_delete")); $__kir .= "<input type=\"hidden\" name=\"delete_list\" value=\"" . $__kiz . "\">\n"; $__kir .= "<input type=\"hidden\" name=\"delete_records\" value=\"1\">\n"; if ((exists $authlib8_4_8::_bzi{"no_restart"}) && (defined $authlib8_4_8::_bzi{"no_restart"})) { $__kir .= "<input type=\"hidden\" name=\"no_restart\" value=\"1\">\n"; } $__kir .= "</td></tr></table></center>"; } else { return _cnx(); } } return _cou("Delete Data", $__kir); } sub _con { my($__kjc, $__kjd) = @_; my $__kjb = ""; if ($__kjd eq "") { $__kjd = "true"; } $__kjb .= "CreateLink(\"" . $__kjc . "\", \"" . $__kjd . "\");\n"; return $__kjb; } sub _coo { my($__kkj) = @_; my $__kje = "\r\n"; my $__kjf = 0; my @__kjg = (); my $__kjh = 1; my $__kji = 0; my $__kjj = 0; my $__kjk = 0; my $__kjl = 30; my $__kjm = 0; my $__kjn = 0; my $__kjo = 0; my $__kjp = 0; my @__kjq = (); my $__kjr = ""; my $__kjs = 0; my $__kjt = 0; my $__kju = ""; binmode STDOUT; print _cot($ssiwebadmin8_4_8::_cth . "_data.csv"); if($__kkj) { push @__kjg, "`sys_RespStatus` = 5"; } my($__kkk, $__kkl, $__kkm, $__kkn, $__kko, $__kkp) = _cor(\@__kjg, 1, 1); if ($__kkl) { $__kji = 1; eval { $__kju = "SELECT `sys_RespNum` FROM `" . $authlib8_4_8::_bzb . "_data1`"; $__kjt = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__kju, 0)); $__kjk = @{$__kjt}; }; if ($@) { authlib8_4_8::_bqa(264, "Database error.", "Database error. Cannot read data record while reading respnum column in download area.", $@); } } else { eval { $__kju = "SELECT COUNT(*) FROM `" . $authlib8_4_8::_bzb . "_data1`"; $__kjj = $authlib8_4_8::_byw->selectrow_arrayref(authlib8_4_8::_bmy($__kju, 0)); $__kjk = $__kjj->[0]; }; if ($@) { authlib8_4_8::_bqa(211, "Database error.", "Database error. Cannot read data record while counting records in download area.", $@); } $__kjm = int($__kjk / $__kjl) + 1; } my ($__kkq, $__kkr) = _coa(); my $__kjv = ""; my @__kjw = (); my @__kjq = (); foreach $__kjv (@{$__kkq}) { my $__kjx = _cop($__kjv); push @__kjw, $__kjx; } if($authlib8_4_8::_bze->{"remove_num"} > 0 && !$__kji) { ($__kjo, $__kjp, $__kjr, $__kjs) = _cre($authlib8_4_8::_bze->{"layout_build"}, 0); if ($__kjs) { $__kjh = 1; } else { $__kjh = 0; my $__kjy = 0; my $__kjz = ""; my $__kka = 0; foreach $__kjy (@{$__kjo}) { $__kjz .= _cop($__kjy->[0]) . ","; $__kka = 0; if (authlib8_4_8::_bna($__kjy->[1])) { $__kka = 1; } push @__kjq, [$__kkp->{$__kjy->[0]} - 1, $__kka]; } chop($__kjz); if (@__kjw) { $__kjz .= "," . join(",", @__kjw); } print $__kjz . $__kje; } } if ($__kjh) { my $__kkb = 1; do { my $__kkc = ""; foreach my $__kkd (@{$__kkm}) { print $__kkc . _cop($__kkd); $__kkc = ','; } if ($__kkl > 0) { ($__kju, $__kkl, $__kkm, $__kkn, $__kko, $__kkp) = _cor(\@__kjg, $__kkl, 0); print ","; } else { $__kkb = 0; } }while($__kkb); if (@__kjw) { print "," . join(",", @__kjw); } print $__kje; } if ($__kji) { my $__kkb = 1; my $__kke = 0; my $__kkf = 0; my @__kkg = @__kjg; my $__kkh = 0; foreach $__kke (@{$__kjt}) { $__kkf = $__kke->[0]; $__kkl = 1; $__kkh = 0; $__kkb = 1; @__kjg = @__kkg; push @__kjg, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = " . $__kkf; do { ($__kju, $__kkl, $__kkm, $__kkn, $__kko, $__kkp) = _cor(\@__kjg, $__kkl, 0); eval { my $__kki = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__kju, 0)); $__kki->execute(); $__kjf = $__kki->fetchall_arrayref(undef, 1); if ($__kkh) { print ","; } _coq($__kjf, $__kkn, $__kko, $__kje, $__kjh, \@__kjq, $__kkl, $__kkq, $__kkr, 1); }; if ($@) { authlib8_4_8::_bqa(263, "Database error.", "Database error. Cannot read data record in big data download area.", $@); } if ($__kkl > 0) { $__kkh = 1; } else { $__kkb = 0; } }while($__kkb); print $__kje; } } else { eval { if($authlib8_4_8::_bzu == 2) { $__kkk .= " ORDER BY `sys_RespStatus` DESC"; } my $__kki = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__kkk, 0)); $__kki->execute(); for ($__kjn = 0; $__kjn < $__kjm; $__kjn++) { $__kjf = $__kki->fetchall_arrayref(undef, $__kjl); _coq($__kjf, $__kkn, $__kko, $__kje, $__kjh, \@__kjq, $__kkl, $__kkq, $__kkr, 0); } }; if ($@) { authlib8_4_8::_bqa(213, "Database error.", "Database error. Cannot read data record in download area.", $@); } } _csb("Download Data", "Downloaded " . $__kjk . " records.", 0); } sub _cop { my ($__kkt) = @_; $__kkt =~ s/(?:\r\n)+|\n+/ /og; my $__kks = 0; if ($__kkt =~ s/"/""/go) { $__kks = 1; } if ($__kkt =~ m/,/o) { $__kks = 1; } if ($__kkt =~ m/\r|\n/o) { $__kks = 1; } if ($__kks) { $__kkt = '"' . $__kkt . '"'; } return $__kkt; } sub _coq { my($__klc, $__kld, $__kle, $__klf, $__klg, $__klh, $__kli, $__klj, $__klk, $__kll) = @_; my $__kku = 0; my $__kkv = ""; my $__kkw = ""; my $__kkx = 0; my $__kky = 0; my $__kkz = ""; foreach $__kku (@{$__klc}) { $__kky = $__kku->[0]; $__kkx = 0; $__kkw = ""; if ($__klg) { foreach $__kkv (@{$__kku}) { $__kkx++; if (!exists $__kld->{$__kkx}) { if (exists $__kle->{$__kkx}) { $__kkv = _cop(authlib8_4_8::_bmt($__kkv)); } else { $__kkv = authlib8_4_8::_brt($__kkv); } $__kkw .= $__kkv . ","; } } } else { my $__kla = 0; my $__klb = @{$__klh}; for ($__kla = 0; $__kla < $__klb; $__kla++) { $__kkv = $__kku->[$__klh->[$__kla][0]]; if($__klh->[$__kla][1]) { $__kkv = _cop(authlib8_4_8::_bmt($__kkv)); } else { $__kkv = authlib8_4_8::_brt($__kkv); } $__kkw .= $__kkv . ","; } } if ($__kli == 0) { foreach $__kkz (@{$__klj}) { $__kkw .= _cop(authlib8_4_8::_bmt($__klk->{$__kky . "_" . $__kkz})) . ","; } } chop($__kkw); print $__kkw; if (!$__kll) { print $__klf; } } } sub _cor { my($__kml, $__kmm, $__kmn) = @_; my $__klm = $authlib8_4_8::_bze->{"num_data_tables"}; my $__kln = $authlib8_4_8::_bwn->{'_caz'}; my $__klo = $__kmm + ($__kln - 1); my $__klp = 0; if ($__klo >= $__klm) { $__klo = $__klm; } else { $__klp = $__klo + 1; } my $__klq = 0; my @__klr = (); my @__kls = (); my @__klt = (); my $__klu = 0; my @__klv = (); my $__klw = ""; my $__klx = 0; my $__kly = 0; my $__klz = ""; my $__kma = ""; if ($__kmm > 1) { if ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { push @__klv, ["", "sys_RespNum", "int"]; } else { push @__klv, ["sys_RespNum", "int"]; } push @__klr, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum`"; push @__kls, "`" . $authlib8_4_8::_bzb . "_data1`"; } for ($__klq = $__kmm; $__klq <= $__klo; $__klq++) { ($__klw, $__klx, $__kly, $__klz, $__kma) = authlib8_4_8::_bmx($authlib8_4_8::_bzb . "_data" . $__klq); eval { $__klu = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__klw, 0)); }; if ($@) { authlib8_4_8::_bqa(212, "Database error.", "Database error. Cannot get table description.", $@); } push @__klv, @{$__klu}; push @__klr, "`" . $authlib8_4_8::_bzb . "_data" . $__klq . "`.*"; push @__kls, "`" . $authlib8_4_8::_bzb . "_data" . $__klq . "`"; if ($__kmm > 1) { push @__klt, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = `" . $authlib8_4_8::_bzb . "_data" . $__klq . "`.`sys_RespNum`"; } elsif ($__klq < $__klo && $__klo > 1) { push @__klt, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = `" . $authlib8_4_8::_bzb . "_data" . ($__klq + 1) . "`.`sys_RespNum`"; } } my $__klw = "SELECT " . join(",", @__klr) . " FROM " . join(",", @__kls); my @__kmb = (@{$__kml}, @__klt); if (@__kmb) { $__klw .= " WHERE " . join(" AND ", @__kmb); } my $__kmc = 0; my @__kmd = (); my %__kme = (); my %__kmf = (); my %__kmg = (); my $__kmh = ""; my $__kmi = 0; my $__kmj = 0; my $__kmk = 0; if ($__kmm > 1) { $__kmk = 1; } foreach $__kmc (@__klv) { $__kmi++; $__kmj = 0; $__kmh = $__kmc->[$__klx]; if($__kmh =~ m/^sys_RespNum$/i) { $__kmj = 1; } if ($__kmh =~ m/^_OLD/i || ($__kmj && $__kmk)) { $__kme{$__kmi} = 1; } else { if (authlib8_4_8::_bna($__kmc->[$__kly])) { $__kmf{$__kmi} = 1; } push @__kmd, $__kmh; if($__kmn) { $__kmg{$__kmh} = $__kmi; } } if ($__kmj) { $__kmk = 1; } } return($__klw, $__klp, \@__kmd, \%__kme, \%__kmf, \%__kmg); } sub _cos { my ($__kmv, $__kmw, $__kmx, $__kmy, $__kmz) = @_; my $__kmo = 0; my $__kmp = 0; my $__kmq = 0; my $__kmr = authlib8_4_8::_bpn(); my $__kms = ""; my ($__kna, $__knb) = authlib8_4_8::_bon($__kmv, "read", 0, 1); binmode $__kna; authlib8_4_8::_bpo($__kna, 0); if (!$__kmo) { binmode STDOUT; if ($__kmx) { print _cot($__kmw); } if ($__kmy && $__kmz) { ($__kmp, $__kmq, $__kms) = _cnd($__kna, "Downloading data " . $__kmv . ".", \&authlib8_4_8::_bok); if (!$__kmp) { close $__kna; return; } } elsif ($__kmy) { my $__kmt = ""; my $__kmu = $__kmr ? "\r\n\r\n" : "\n\n"; while (tell $__kna != -s $__kna) { ($__kmp, $__kmq, $__kmt) = _cnd($__kna, "Downloading data " . $__kmv . ".", \&authlib8_4_8::_boj, $__kmu); if ($__kmp) { $__kms .= $__kmt; } else { last; } } } else { $__kms = authlib8_4_8::_bok($__kna); } if ($__kmz && $__kmr) { $__kms .= "\r\n"; } elsif ($__kmz) { $__kms .= "\n"; } if (!$__kmr) { $__kms =~ s/\n/\r\n/go; } print $__kms; } close $__kna; } sub _cot { my ($__knh) = @_; my $__knc = ""; my $__knd = 0; my $__kne = 0; my $__knf = ""; $__knf .= "Content-Type: application/octet-stream;\n"; $__knf .= "Content-Disposition: attachment; filename=\"" . $__knh . "\"\n\n"; if (exists($ENV{'MOD_PERL'}) && defined($ENV{'MOD_PERL'})) { $__knd = 1; $__kne = $ENV{'MOD_PERL'}; $__kne =~ s/mod_perl\/(\d\.\d)(.*?)$/$1/i; } if ($ENV{'PERL_SEND_HEADER'} || ($__knd == 0)) { $__knc .= $__knf; } else { if ($__kne < 1.9) { my $__kng = Apache->request; $__kng->content_type('application/octet-stream;'); $__kng->header_out("Content-Disposition" => "attachment; filename=\"" . $__knh . "\""); $__kng->send_http_header; } else { $__knc .= $__knf; } } $__knc .= chr(239) . chr(187) . chr(191); return $__knc; } sub _cou { my($__knj, $__knk) = @_; my $__kni = ""; $__kni .= "<div class=\"stage_title\">" . $__knj . "</div>"; $__kni .= "<div class=\"stage_content\">" . $__knk . "</div>"; return $__kni; } sub _cov { my $__knl = 0; my $__knm = 0; my $__knn = 0; my $__kno = 0; my $__knp = ""; eval { $__knp = "SELECT `sys_RespStatus`,COUNT(*) FROM `" . $authlib8_4_8::_bzb . "_data1` GROUP BY `sys_RespStatus` ORDER BY `sys_RespStatus`"; $__kno = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__knp, 0)); }; if ($@ || $__kno == 0) { return(0, "Database error. Cannot read all rows to get status in data1 table.", $@); } my $__knq = 0; foreach $__knq (@{$__kno}) { if ($__knq->[0] == &authlib8_4_8::_CCX) { $__knl += $__knq->[1]; } elsif($__knq->[0] == &authlib8_4_8::_CCV) { $__knm += $__knq->[1]; } elsif($__knq->[0] == &authlib8_4_8::_CCW) { $__knn += $__knq->[1]; } } return($__knl, $__knm, $__knn); } sub _cow { my ($__knw, $__knx, $__kny) = @_; my $__knr = ""; my $__kns = 0; $__knr .= _crw(); if (!$__knx) { $__knr .= "<style type=\"text/css\">\n"; $__knr .= ".stage{display: none;}\n"; $__knr .= "</style>\n"; $__knr .= "<script type=\"text/javascript\">\n"; $__knr .= "jQuery(document).ready(function(){InitializePage();});\n"; $__knr .= "function InitializePage(){\n"; $__knr .= "SetUpPage();\n"; if (($__knw eq "study_summary") && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { my ($__knz, $__koa) = _cnh(); if (!$__knz) { my $__knt = (-s $authlib8_4_8::_bwv{'_cba'} . $authlib8_4_8::_byz . "_config.cgi"); my $__knu = $__koa . $authlib8_4_8::_byz . "_config.cgi"; $__knr .= "RunSecurityTest(" . $__knt . ",\"" . $__knu . "\",\"" . $__koa . "\");"; } } $__knr .= "}\n"; $__knr .= "\n</script>\n"; } $__knr .= "</head>\n"; $__knr .= "<body class=\""; if (exists($authlib8_4_8::_bzi{"hid_test_mode"})) { $__knr .= "test_mode"; } if ($ssiwebadmin8_4_8::_cti) { $__knr .= " c2_mode"; } $__knr .= "\">\n"; $__knr .= "<form method=\"post\" action=\"" . "admin" . $authlib8_4_8::_bwy . "\" name=\"mainform\" id=\"mainform\">\n"; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { $__knr .= "<div id=\"test_mode_header\"><span id=\"test_title\">Test Survey Data</span></div>"; $__knr .= "<input type=\"hidden\" name=\"hid_test_mode\" value=\"" . $authlib8_4_8::_bzi{"hid_test_mode"} . "\">\n"; } $__knr .= "<div class=\"page"; if($ssiwebadmin8_4_8::_ctd) { $__knr .= " small_screen"; } $__knr .= "\">\n"; if (exists $authlib8_4_8::_bzi{"hid_session"}) { $__knr .= "<input type=\"hidden\" name=\"hid_session\" value=\"" . $authlib8_4_8::_bzi{"hid_session"} . "\">\n"; } $__knr .= "<input type=\"hidden\" name=\"hid_studyname\" value=\"" . $authlib8_4_8::_byz . "\">\n"; $__knr .= "<input type=\"hidden\" name=\"hid_page\" value=\"study_summary\">\n"; if ($ssiwebadmin8_4_8::_ctc) { $__knr .= "<input type=\"hidden\" name=\"hid_screen_width\" value=\"" . $ssiwebadmin8_4_8::_ctc . "\">\n"; } if (exists $authlib8_4_8::_bzi{"hid_mobile"}) { $__knr .= "<input type=\"hidden\" name=\"hid_mobile\" value=\"" . $authlib8_4_8::_bzi{"hid_mobile"} . "\">\n"; } $__knr .= _crv(); if (!$__knx) { my $__knv = ""; if (exists $ssiwebadmin8_4_8::_csr{"study_summary"} || exists $ssiwebadmin8_4_8::_csr{"download_data"} || exists $ssiwebadmin8_4_8::_csr{"view_data"}) { $__knv .= "<div class=\"menu_header\" style=\"margin-top: 0px;\">Data Management</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"study_summary"}) { $__knv .= "<div class=\"menu_item\" id=\"study_summary\">Summary</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"download_data"}) { $__knv .= "<div class=\"menu_item\" id=\"download_data\">Download</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"view_data"}) { $__knv .= "<div class=\"menu_item\" id=\"view_all_data\">View / Edit</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"view_data"}) { $__knv .= "<div class=\"menu_item\" id=\"search_data\">Search</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"data_reports"} || exists $ssiwebadmin8_4_8::_csr{"password_reports"} || exists $ssiwebadmin8_4_8::_csr{"incompletes_report"}) { $__knv .= "<div class=\"menu_header\">Reports</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"data_reports"}) { $__knv .= "<div class=\"menu_item\" id=\"data_reports\">Data</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"password_reports"}) { authlib8_4_8::_box(); if ($authlib8_4_8::_bzo && exists $authlib8_4_8::_bzo->{'_bfx'}) { $__knv .= "<div class=\"menu_item\" id=\"password_reports\">Password</div>\n"; } } if (exists $ssiwebadmin8_4_8::_csr{"incompletes_report"}) { $__knv .= "<div class=\"menu_item\" id=\"incompletes_report\">Incompletes</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"test_survey"} || exists $ssiwebadmin8_4_8::_csr{"advanced"} || exists $ssiwebadmin8_4_8::_csr{"close_survey"} || exists $ssiwebadmin8_4_8::_csr{"reset_survey"}) { $__knv .= "<div class=\"menu_header\">Survey Administration</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"test_survey"} && !$ssiwebadmin8_4_8::_cti) { $__knv .= "<div class=\"menu_item\" id=\"test_survey\">Test Mode</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"advanced"}) { $__knv .= "<div class=\"menu_item\" id=\"advanced\">Advanced</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"close_survey"}) { $__knv .= "<div class=\"menu_item\" id=\"close_survey\">Close Survey</div>\n"; } if (exists $ssiwebadmin8_4_8::_csr{"reset_survey"}) { $__knv .= "<div class=\"menu_item"; if (!exists($authlib8_4_8::_bzi{"hid_test_mode"})) { $__knv .= " remove_bottom_border"; } $__knv .= "\" id=\"reset_survey\">Reset Web Survey</div>\n"; } if (exists($authlib8_4_8::_bzi{"hid_test_mode"}) && $authlib8_4_8::_bzi{"hid_test_mode"} == 1) { $__knv .= "<div class=\"menu_item\" id=\"test_survey_run2\">" . _cqu("test_survey_run2") . "</div>\n"; $__knv .= "<div class=\"menu_item remove_bottom_border\" id=\"test_survey_return2\">Regular Mode</div>\n"; } if ($__knv) { $__knr .= "<div id=\"menu\">\n" . $__knv . "</div>\n"; $__kns = 1; } if ((($__knw eq "study_summary" || $__knw eq "test_survey") && !(exists $authlib8_4_8::_bzi{"hid_test_mode"})) && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { my ($__kob, $__koc) = _crp($__kny, 0); $__knr .= $__kob; } if (($__knw eq "study_summary") && (exists $ssiwebadmin8_4_8::_csr{"full_access"})) { $__knr .= _cng(); } $__knr .= "<div class=\"loading\">\n"; $__knr .= "<center><table border=0 width=\"230px;\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>Processing...</td>"; $__knr .= "<td>\n"; $__knr .= "<img src=\"" . $authlib8_4_8::_bwv{'_blf'} . "system/loading.gif\" alt=\"Processing...\">\n"; $__knr .= "</td></tr></table></center></div>\n"; } $__knr .= "<div class=\"stage\">\n"; if (!$__knx && !$__kns) { $__knr .= "<div style=\"padding: 10px;\">No menu items are available for this user. Check your Admin Module settings.</div>"; } return $__knr; } sub _cox { my($__kog) = @_; my $__kod = ""; $__kod .= "</div>"; print authlib8_4_8::_bqd(); if (-e $authlib8_4_8::_bwv{'_cba'} . "error_log.cgi" && exists $ssiwebadmin8_4_8::_csr{"full_access"} && !$__kog && $authlib8_4_8::_bzi{"hid_page"} ne "log_view") { my $__koe = ""; $__kod .= "<br><div class=\"error_log\" style=\"border-style: dotted\">\n"; $__koe .= "An <span class=\"warning\">error log</span> has been generated for this study.<br><br>"; $__koe .= "<span class=\"note\">There may be an error with one or more of your respondent data records, or one of your respondents "; $__koe .= "has seen a \"Sawtooth Error\" message. &nbsp;If you have just uploaded the survey there might have been errors generated as you were setting permissions and configuring the server."; $__koe .= "<br><br>Please contact Sawtooth Software (or your Sawtooth Software representative) for further assistance. <br><br>Thank you.</span>"; $__koe .= "<br>"; $__koe .= "<center><span id=\"log_view\" class=\"link\">View Error Log</span>\n"; $__koe .= "<span id=\"log_download\" class=\"link\" style=\"margin-left: 50px;\">Download Error Log</span>\n"; $__koe .= "<span id=\"log_delete\" class=\"link\" style=\"margin-left: 50px;\">Delete Error Log</span></center>\n"; my $__kof .= _con("log_view"); $__kof .= _con("log_download"); $__kof .= _con("log_delete"); $__koe .= authlib8_4_8::_bns($__kof); $__kod .= _cou("Study Message", $__koe); $__kod .= "</div><br>"; } $__kod .= "</div></form>\n"; $__kod .= "</body></html>"; return $__kod; } sub _coy { my($__koi) = @_; my $__koh = authlib8_4_8::_bpm(); $__koh .= _cru(); if ($__koi) { $__koh .= "<center><br><br><b><span style=\"color: #ff0000;\">"; $__koh .= $__koi; $__koh .= "</span></b></center>"; } $__koh .= "<noscript>"; $__koh .= "<center><span style='color:#ff0000'><b>JavaScript is disabled. Please enable JavaScript to continue.</b></span></center><br><br>"; $__koh .= "</noscript>"; $__koh .= "<script type=\"text/javascript\">\n"; $__koh .= "var strVersion = navigator.appVersion;\n"; $__koh .= "var intVersion = 0;\n"; $__koh .= "var indexMSIE = strVersion.indexOf(\"MSIE\");\n"; $__koh .= "if (indexMSIE > -1){\n"; $__koh .= "intVersion = parseFloat(strVersion.substring(indexMSIE + 4));\n"; $__koh .= "if (intVersion < 6){\n"; $__koh .= "document.write(\"<center><span style='color:#ff0000'><b>The Admin Module does not support Microsoft Internet Explorer version 5 or less.</b></span></center><br>\");\n"; $__koh .= "}}\n"; $__koh .= "\n</script>\n"; $__koh .= _crx(); $__koh .= _cry(); $__koh .= "</form>"; return $__koh; } sub _coz { my $__koj = $authlib8_4_8::_bwv{'_cba'} . $authlib8_4_8::_byz . "_access.cgi"; if (-e $__koj) { my ($__kol, $__kom) = authlib8_4_8::_bon($__koj, "read", 0, 1); authlib8_4_8::_bpo($__kol, 0); my $__kok = ""; while(!eof($__kol)) { $__kok .= <$__kol>; } close $__kol; $ssiwebadmin8_4_8::_ctn = eval($__kok); if ($@) { authlib8_4_8::_bqa(192, "", "Problem reading " . $__koj, $@); } } } sub _cpa { my $__kon = 0; my $__koo = ""; my $__kop = 0; my $__koq = ""; my $__kor = 0; my $__kos = ""; if (exists $ssiwebadmin8_4_8::_ctn->{"admin_access"}) { $__kor = $ssiwebadmin8_4_8::_ctn->{"admin_access"}; } else { my $__kot = $authlib8_4_8::_byr->{"admin_username"} . "|" . $authlib8_4_8::_byr->{"admin_password"}; my $__kou = $authlib8_4_8::_byr->{"admin_username"} . "|" . $authlib8_4_8::_byr->{"admin_read_password"}; $__kor = { $__kou => {"read_access"=>1}, $__kot => {"full_access"=>1}, }; } if (exists $authlib8_4_8::_bzi{"expired"}) { $__koq = "Your session has expired. <br>Please login again."; } elsif (exists $authlib8_4_8::_bzi{"hid_session"}) { $__koo = $authlib8_4_8::_bzi{"hid_session"}; ($__kon, $__kop) = _cpd($__koo, $__kor); if (!$__kon) { $__koq = "Your session has expired. <br>Please login again."; } } else { if (exists $authlib8_4_8::_bzi{"username"} && exists $authlib8_4_8::_bzi{"password"}) { my $__kov = $authlib8_4_8::_bzi{"username"}; my $__kow = $authlib8_4_8::_bzi{"password"}; my $__kox = $__kov . "|" . $__kow; if (exists $__kor->{$__kox}) { $__kop = $__kor->{$__kox}; $__kon = 1; $authlib8_4_8::_bzi{"hid_session"} = _cpb($__kov, $__kow); $__kos = $__kov; } else { $__koq = "Invalid user name or password. <br>Please try again."; } } } if ($__kon) { if (exists $__kop->{"full_access"}) { $ssiwebadmin8_4_8::_csr{"full_access"} = 1; } elsif (exists $__kop->{"read_access"}) { $ssiwebadmin8_4_8::_csr{"read_access"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"read_access"} || exists $__kop->{"study_summary"}) { $ssiwebadmin8_4_8::_csr{"study_summary"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"download_data"}) { $ssiwebadmin8_4_8::_csr{"download_data"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"read_access"} || exists $__kop->{"view_data"}) { $ssiwebadmin8_4_8::_csr{"view_data"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"read_access"} || exists $__kop->{"data_reports"}) { $ssiwebadmin8_4_8::_csr{"data_reports"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"read_access"} || exists $__kop->{"password_reports"}) { $ssiwebadmin8_4_8::_csr{"password_reports"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"read_access"} || exists $__kop->{"incompletes_report"}) { $ssiwebadmin8_4_8::_csr{"incompletes_report"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"read_access"} || exists $__kop->{"test_survey"}) { $ssiwebadmin8_4_8::_csr{"test_survey"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"close_survey"}) { $ssiwebadmin8_4_8::_csr{"close_survey"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"reset_survey"}) { $ssiwebadmin8_4_8::_csr{"reset_survey"} = 1; } if (exists $__kop->{"full_access"} || exists $__kop->{"advanced"}) { $ssiwebadmin8_4_8::_csr{"advanced"} = 1; } if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { delete $ssiwebadmin8_4_8::_csr{"password_reports"}; delete $ssiwebadmin8_4_8::_csr{"close_survey"}; } } else { print _coy($__koq); authlib8_4_8::_bso(); } return ($__kon, $__kos); } sub _cpb { my($__koz, $__kpa) = @_; my $__koy = _cpc($__koz . "|" . $__kpa); return $__koy . time(); } sub _cpc { my($__kpg) = @_; my @__kpb = split("", $__kpg); my $__kpc = "1"; my $__kpd = ""; my $__kpe = 0; my $__kpf = @__kpb; for ($__kpe = 0; $__kpe < $__kpf; $__kpe++) { $__kpd = ord($__kpb[$__kpe]); if (length($__kpd) < 3) { $__kpd = "0" . $__kpd; } $__kpc .= $__kpd; } return $__kpc; } sub _cpd { my($__kpq, $__kpr) = @_; my $__kph = ""; my $__kpi = ""; my $__kpj = 0; my $__kpk = ""; my $__kpl = 0; if ($__kpq =~ m/^(\d)(\d*?)(\d{10})$/) { $__kph = $2; $__kpi = $3; my @__kpm = split("", $__kph); my $__kpn = ""; my $__kpo = 0; for ($__kpo = 0; $__kpo < @__kpm; $__kpo = $__kpo + 3) { $__kpn .= chr($__kpm[$__kpo] . $__kpm[$__kpo + 1] . $__kpm[$__kpo + 2]); } if (exists $__kpr->{$__kpn}) { $__kpl = $__kpr->{$__kpn}; $__kpj = 1; $__kpk = time(); my $__kpp = 60; if($authlib8_4_8::_byr->{"admin_timeout"}) { $__kpp = $authlib8_4_8::_byr->{"admin_timeout"}; } if (($__kpi + $__kpp * 60) < $__kpk) { $__kpj = 0; $authlib8_4_8::_bzi{"hid_session"} = 0; } else { $authlib8_4_8::_bzi{"hid_session"} = "1" . $__kph . $__kpk; } } } return ($__kpj, $__kpl); } sub _cpe { my $__kps = ""; $__kps .= "<center>\n"; $__kps .= "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">"; $__kps .= "<tr><td align=\"left\"><b>Download passwords for respondents who have...</b></td></tr>"; $__kps .= "<tr><td align=\"left\" nowrap class=\"password_options\">\n"; $__kps .= "<span id=\"password_report_not_started\" class=\"link\">Not started the survey</span></td></tr>\n"; $__kps .= "<tr><td align=\"left\" nowrap class=\"password_options\">\n"; $__kps .= "<span id=\"password_report_not_finished\" class=\"link\">Started but not finished the survey (incomplete)</span></td></tr>\n"; $__kps .= "<tr><td align=\"left\" nowrap class=\"password_options\">\n"; $__kps .= "<span id=\"password_report_completes\" class=\"link\">Finished the survey (qualified complete)</span></td></tr>\n"; $__kps .= "<tr><td align=\"left\" nowrap class=\"password_options\">\n"; $__kps .= "<span id=\"password_report_disqualified\" class=\"link\">Been disqualified from the survey</span></td></tr>\n"; $__kps .= "</table>\n"; $__kps .= "</center>\n"; my $__kpt = ""; $__kpt .= _con("password_report_not_started"); $__kpt .= _con("password_report_not_finished"); $__kpt .= _con("password_report_completes"); $__kpt .= _con("password_report_disqualified"); $__kps .= authlib8_4_8::_bns($__kpt); return _cou("Password Reports", $__kps); } sub _cpf { my $__kpu = ""; my $__kpv = 0; my $__kpw = 0; my $__kpx = 0; my %__kpy = (); my $__kpz = ""; eval { $__kpz = "SELECT `sys_RespStatus`, `sys_LastQuestion` FROM `" . $authlib8_4_8::_bzb . "_data1`"; $__kpx = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__kpz, 0)); }; if ($@) { authlib8_4_8::_bqa(221, "Database error.", "Database error. Error getting information for Incompletes Report.", $@); } my $__kqa = @{$__kpx}; my $__kqb = 0; my $__kqc = ""; my $__kqd = 0; foreach $__kqb (@{$__kpx}) { $__kqd = $__kqb->[0]; $__kqc = $__kqb->[1]; if ($__kqd == &authlib8_4_8::_CCV) { if (exists $__kpy{$__kqc}) { $__kpy{$__kqc}++; } else { $__kpy{$__kqc} = 1; } } } $__kpu .= "<center>\n"; $__kpu .= "<table border=\"0\" cellspacing=\"0\" cellpadding=\"3\" width=\"60%\" id=\"view_data_general_info\">\n"; $__kpu .= "<tr class=\"section_header\">\n"; $__kpu .= "<td align=\"left\" nowrap>Last Question Seen</td>\n"; $__kpu .= "<td align=\"left\" nowrap>Incompletes</td>\n"; $__kpu .= "<td align=\"left\" nowrap>\% of Respondents</td>\n"; $__kpu .= "</tr>\n"; my $__kqe = 0; my ($__kqg, $__kqh, $__kqi, $__kqj) = authlib8_4_8::_btv(0, 1, 0, 0, "", "", 0, ""); foreach my $__kqf (@{$__kqh}) { $__kqc = $__kqf->[0]; if (exists $__kpy{$__kqc}) { $__kpu .= "<tr "; if ($ssiwebadmin8_4_8::_ctp) { $__kpu .= "class=\"alt_color1\""; $ssiwebadmin8_4_8::_ctp = 0; } else { $ssiwebadmin8_4_8::_ctp = 1; } $__kpu .= ">"; $__kqe = $__kpy{$__kqc}; $__kpu .= "<td align=\"left\">" . $__kqc . "</td>\n"; $__kpu .= "<td align=\"left\">" . $__kqe . "</td>\n"; $__kpu .= "<td align=\"left\" style=\"padding-left: 20px;\">" . int(($__kqe / $__kqa) * 100) . "%</td>\n"; $__kpu .= "</tr>"; } } $__kpu .= "</table></center><br>\n"; return _cou("Incompletes Report", $__kpu); } sub _cpg { my($__krh) = @_; my $__kqk = "\r\n"; authlib8_4_8::_box(); if (exists $authlib8_4_8::_bzo->{'_bfx'}) { my $__kql = $authlib8_4_8::_bzo->{'_bfx'}; my $__kqm = 0; if (exists $__kql->{'_bfy'}) { my $__kqn = $__krh; $__kqn =~ s/password_report//i; my $__kqo = $authlib8_4_8::_byz . $__kqn . ".csv"; my $__kqk = "\r\n"; binmode STDOUT; print _cot($__kqo); my @__kqp = (); my @__kqq = (); my @__kqr = (); my $__kqs = ""; my %__kqt = (); my $__kqu = 0; my $__kqv = ""; my %__kqw = (); my @__kqx = (); my @__kqy = (); $__kqw{1} = 1; foreach $__kqm (@{$__kql->{'_bfy'}}) { $__kqs = $__kqm->{'_bgt'}; ($__kqu, $__kqv) = authlib8_4_8::_bnv($__kqs, 0, 0); $__kqw{$__kqu} = 1; push @__kqr, "`" . $authlib8_4_8::_bzb . "_data" . $__kqu . "`.`" . $__kqs . "`"; if ($__kqu != 1) { push @__kqy, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = `" . $authlib8_4_8::_bzb . "_data" . $__kqu . "`.`sys_RespNum`"; } push @__kqq, "`" . $__kqs . "`"; push @__kqp, _cpi($__kqs); } foreach $__kqu (sort {$a <=> $b} keys %__kqw) { push @__kqx, "`" . $authlib8_4_8::_bzb . "_data" . $__kqu . "`"; } if($__krh eq "password_report_not_finished") { push @__kqy, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespStatus` = " . &authlib8_4_8::_CCV; } elsif($__krh eq "password_report_completes") { push @__kqy, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespStatus` = " . &authlib8_4_8::_CCX; } elsif($__krh eq "password_report_disqualified") { push @__kqy, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespStatus` = " . &authlib8_4_8::_CCW; } my $__kqz = 0; my $__kra = 0; my $__krb = ""; my %__krc = (); my $__krd = ""; my @__kre = (); my $__krf = ""; eval { $__krf = "SELECT " . join(",", @__kqr) . " FROM " . join(",", @__kqx); if (@__kqy) { $__krf .= " WHERE " . join(" AND ", @__kqy); } $__kqz = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__krf, 0)); }; if ($@) { authlib8_4_8::_bqa(227, "Database error.", "Database error reading data for password report.", $@); } print join(",", @__kqp) . $__kqk; if ($__krh eq "password_report_not_started") { my $__krg = 1; foreach $__kra (@{$__kqz}) { $__krd = uc(join("_", @{$__kra})); $__krc{$__krd} = 1; } eval { $__krf = "SELECT " . join(",", @__kqq) . " FROM `" . $authlib8_4_8::_bzb . "_passwords`"; $__kqz = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__krf, 0)); }; if ($@) { if (exists $__kql->{'_bgo'}) { $__krg = 0; } else { authlib8_4_8::_bqa(228, "Database error.", "Database error reading password table for password report.", $@); } } if ($__krg) { foreach $__kra (@{$__kqz}) { $__krd = uc(join("_", @{$__kra})); if (!exists $__krc{$__krd}) { @__kre = map {_cpi(authlib8_4_8::_bmt($_))} @{$__kra}; print join(",", @__kre) . $__kqk; } } } } else { foreach $__kra (@{$__kqz}) { @__kre = map {_cpi(authlib8_4_8::_bmt($_))} @{$__kra}; print join(",", @__kre) . $__kqk; } } } } } sub _cph { my $__kri = ""; my $__krj = ""; my ($__kru, $__krv) = authlib8_4_8::_bon($authlib8_4_8::_bwv{'_cba'} . "error_log.cgi", "read", 0, 1); binmode $__kru; authlib8_4_8::_bpo($__kru, 0); $__krj = authlib8_4_8::_boi($__kru); close $__kru; my @__krk = split("\ntime=", $__krj); my $__krl = ""; foreach $__krl (@__krk) { $__krl = authlib8_4_8::_bpy($__krl); if($__krl =~ m/(.*?)\s*\|\s*(SSIWebVersion=.*?)\s*\|\s*ErrorNum=\s*(.*?)\s*\|\s*msg=(.*?)(: Script:.*?)?\s*\|\s*(Server Error:(.*?)\s*\|\s*)?params=(.*?)$/si) { my $__krm = $1; my $__krn = $2; my $__kro = $3; my $__krp = $4; my $__krq = $5 . " params=" . $8; my $__krr = authlib8_4_8::_bpy($7); $__krm =~ s/^time=//; $__kri .= "<div class=\"error_log_line\"><b>Error #" . htmlentity::encode($__kro) . "</b> - " . htmlentity::encode($__krp) . "<div class=\"error_log_line_date\">" . htmlentity::encode($__krm) . "</div><div class=\"error_log_line_details\">"; if ($__krq =~ m/script:(.*?)\|(.*?)$/si) { my $__krs = authlib8_4_8::_bpy($1); $__krq = $2; $__krs =~ s/\n/<br>\n/g; $__kri .= "SCRIPT: <div class=\"error_log_script\">" . htmlentity::encode($__krs) . "</div>"; } if ($__krr) { $__kri .= "<div class=\"error_log_server_error\">Server Error: " . htmlentity::encode($__krr) . "</div>"; } $__kri .= htmlentity::encode($__krn) . " " . htmlentity::encode($__krq); $__kri .= "</div></div>"; } elsif($__krl ne "") { $__kri .= "<div class=\"error_log_line\">" . htmlentity::encode($__krl) . "</div>"; } } $__kri .= "<div style=\"margin-top: 30px;\"><span id=\"log_download\" class=\"link\">Download Error Log</span>\n"; $__kri .= "<span id=\"log_delete\" class=\"link\" style=\"margin-left: 30px;\">Delete Error Log</span></div>\n"; $__kri .= "<style type=\"text/css\">.stage{width: auto;}</style>"; my $__krt .= _con("log_download"); $__krt .= _con("log_delete"); $__kri .= authlib8_4_8::_bns($__krt); return _cou("Error Log", $__kri); } sub _cpi { my($__krw) = @_; $__krw =~ s/"/""/g; return "\"" . $__krw . "\""; } sub _cpj { my $__krx = ""; my $__kry = 0; my $__krz = ""; if ($authlib8_4_8::_bze->{"close_survey"} == 1) { $__kry = 1; } if ($authlib8_4_8::_bze->{"close_survey_msg"}) { $__krz = $authlib8_4_8::_bze->{"close_survey_msg"}; } if ($__krz eq "" && !$__kry) { $__krz = "<br><br>\n\n<center>\n<h3>\nThis survey is closed. Thank you.\n</h3>\n</center>"; } my $__ksa = ""; $__ksa .= "<div style=\"margin-top: 20px; margin-bottom: 20px;\">"; $__ksa .= "Close Survey Message:<br>\n"; $__ksa .= "<textarea name=\"message\" id=\"message\" rows=\"10\" cols=\"80\" wrap=\"virtual\" style=\"width:99%\">\n"; $__ksa .= $__krz; $__ksa .= "</textarea></div>\n"; $__krx .= "<div class=\"close_survey_box"; if ($__kry) { $__krx .= " survey_closed"; } else { $__krx .= " survey_open"; } $__krx .= "\">"; my $__ksb = "<div id=\"closed_message\">The survey is now <b>CLOSED</b>. &nbsp;&nbsp; Respondents are <b>NOT</b> able to enter the survey.</div>"; my $__ksc = "<div id=\"open_message\">The survey is now <b>OPEN</b>. &nbsp;&nbsp; Respondents are able to enter the survey.</div>"; my $__ksd = "<div id=\"update_link\" style=\"margin-top: 10px;\"><span id=\"close_survey_update\" class=\"link\" data-role=\"button\" data-mini=\"true\">Update Message</span></div>\n"; my $__kse = "<div id=\"open_link\"><span id=\"close_survey_open\" class=\"link\" data-role=\"button\" data-mini=\"true\">Open Survey to Respondents</span></div>\n"; my $__ksf = "<div id=\"close_link\"><span id=\"close_survey_close\" class=\"link\" data-role=\"button\" data-mini=\"true\">Close Survey and Show Message</span></div>\n"; if(!$ssiwebadmin8_4_8::_ctf) { $__ksd .= authlib8_4_8::_bns(_con("close_survey_update")); $__kse .= authlib8_4_8::_bns(_con("close_survey_open")); $__ksf .= authlib8_4_8::_bns(_con("close_survey_close")); } if ($ssiwebadmin8_4_8::_ctf) { $__krx .= $__ksc; $__krx .= $__ksb; $__krx .= $__ksa; $__krx .= $__kse; $__krx .= $__ksf; $__krx .= $__ksd; } else { if ($__kry) { $__krx .= $__ksb; $__krx .= $__ksa; $__krx .= $__kse; $__krx .= $__ksd; } else { $__krx .= $__ksc; $__krx .= $__ksa; $__krx .= $__ksf; } } $__krx .= "</div>"; $__krx .= "<div class=\"note\" style=\"margin-top: 20px;\"><b>NOTE:</b> Close Survey allows you to display a message to all respondents who are entering the survey (this includes restarts)."; $__krx .= "&nbsp;&nbsp;When the survey is closed, respondents <b>entering</b> the survey see the specified message and are not able to take (or restart) the survey."; $__krx .= "&nbsp;&nbsp;Respondents who have already entered the survey do not see the message and are allowed to finish.</div>"; return _cou("Close Survey", $__krx); } sub _cdr { _cpl(); eval { my $__ksg = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `close_survey` = 1"; my $__ksh = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ksg, 0)); $__ksh->execute(); $authlib8_4_8::_byw->commit(); $authlib8_4_8::_bze->{"close_survey"} = 1; }; if ($@) { authlib8_4_8::_bqa(219, "Database error.", "Database error. Error closing survey.", $@); } _csb("Close Survey", "Survey closed.", 0); return _cpj(); } sub _cpk { eval { my $__ksi = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `close_survey` = 0"; my $__ksj = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ksi, 0)); $__ksj->execute(); $authlib8_4_8::_byw->commit(); $authlib8_4_8::_bze->{"close_survey"} = 0; }; if ($@) { authlib8_4_8::_bqa(220, "Database error.", "Database error. Error closing survey.", $@); } _csb("Open Survey", "Survey opened.", 0); return _cpj(); } sub _cpl { my $__ksk = ""; if (exists($authlib8_4_8::_bzi{"message"})) { $__ksk = $authlib8_4_8::_bzi{"message"}; $__ksk =~ s/\r\n/\n/g; } eval { my $__ksl = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `close_survey_msg` = ?"; my $__ksm = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ksl, 0)); $__ksm->execute(authlib8_4_8::_bms($__ksk)); $authlib8_4_8::_byw->commit(); $authlib8_4_8::_bze->{"close_survey_msg"} = $__ksk; }; if ($@) { authlib8_4_8::_bqa(218, "Database error.", "Database error. Error writing close survey message.", $@); } return _cpj(); } sub _cpm { my $__ksn = ""; my $__kso = 0; $__ksn .= "Clicking \"Reset Survey\" below will cause this web survey" . " (<b>" . $ssiwebadmin8_4_8::_cth . "</b>) to be reset. Resetting a survey includes: <br><br>"; $__ksn .= "<table>\n"; $__kso++; $__ksn .= "<tr><td><b>" . $__kso . ")</b></td>\n"; $__ksn .= "<td>Deleting <b>ALL</b> respondent data.</td></tr>\n"; $__ksn .= "<tr><td>&nbsp;</td><td class=\"note\">All of the collected respondent data and the internal respondent counter will be reset.</td></tr>"; $__kso++; $__ksn .= "<tr><td><b>" . $__kso . ")</b></td>\n"; $__ksn .= "<td>Resetting all respondent password information.</td></tr>\n"; $__ksn .= "<tr><td>&nbsp;</td><td class=\"note\">All passwords will be reset and ready to use again.</td></tr>"; if ($authlib8_4_8::_bxw) { $__kso++; $__ksn .= "<tr><td><b>" . $__kso . ")</b></td>\n"; $__ksn .= "<td>Resetting Quota Control information.</td></tr>\n"; $__ksn .= "<tr><td>&nbsp;</td><td class=\"note\">All quota cells will be reset and ready to use again. Changes made to Quota Cell Limits in the Admin Module will remain.</td></tr>"; } if ($authlib8_4_8::_bze->{"close_survey"} == 1) { $__kso++; $__ksn .= "<tr><td><b>" . $__kso . ")</b></td>\n"; $__ksn .= "<td>Opening the survey to respondents.</td></tr>\n"; $__ksn .= "<tr><td>&nbsp;</td><td class=\"note\">This includes removing any \"Close Survey\" message.</td></tr>"; } $__ksn .= "</table>"; $__ksn .= "<br>"; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { $__ksn .= "NOTE: This resets the data collected in <b>Test Mode</b> only."; $__ksn .= "<br><br>"; } elsif(!$ssiwebadmin8_4_8::_cti) { $__ksn .= "NOTE: Test data collected in <b>Test Mode</b> will <b>NOT</b> be deleted. To delete <b>Test Mode</b> data go to Test Mode, Enter Test Mode, Reset Web Survey."; $__ksn .= "<br><br>"; } $__ksn .= "Only reset a survey if you have been testing and want to clean out test data and restart, or if you are finished with your survey and no longer have use for the data."; $__ksn .= "<br><br>"; $__ksn .= "Saved Data Reports will <b>NOT</b> be deleted."; $__ksn .= "<br><br>"; $__ksn .= "Clicking <b>Reset Survey</b> will <span class=\"warning\">DELETE ALL "; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { $__ksn .= " <u>TEST MODE</u>"; } $__ksn .= " DATA</span> collected for this study!</div>"; $__ksn .= "<div style=\"text-align: center; margin: 30px 0px 30px 0px;\"><span id=\"reset_survey_reset\" class=\"link\">Reset Survey</span></div>\n"; $__ksn .= authlib8_4_8::_bns(_cpn("reset_survey_reset", "ResetSurveyDialog();")); return _cou("Reset Survey", $__ksn); } sub _cpn { my($__ksq, $__ksr) = @_; my $__ksp = "jQuery(document).ready(function() {\n"; $__ksp .= "jQuery(\"" . "#" . $__ksq . "\").click(function(){\n"; $__ksp .= $__ksr . "\n"; $__ksp .= "return false;\n"; $__ksp .= "});\n"; $__ksp .= "});\n"; return $__ksp; } sub _cpo { if ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { if (-e $authlib8_4_8::_bwv{'_cba'} . $authlib8_4_8::_bzb . ".sqlite") { authlib8_4_8::_bmr(); unlink $authlib8_4_8::_bwv{'_cba'} . $authlib8_4_8::_bzb . ".sqlite" or authlib8_4_8::_bqa(236, "Database error.", "Database error. During Survey Reset, cannot delete SQLite file.", $@); } } else { _cpp(0, 1); _csb("Reset Survey", "", 0); } if (-e $authlib8_4_8::_bwv{'_cba'} . "error_log.cgi") { unlink $authlib8_4_8::_bwv{'_cba'} . "error_log.cgi"; } my $__kss = _cqw(1, 1, 0, 1, 0); $authlib8_4_8::_byw->commit(); return $__kss; } sub _cpp { my($__ktf, $__ktg) = @_; my $__kst = $__ktf; my @__ksu = (); my $__ksv = 0; my $__ksw = ""; my $__ksx = $authlib8_4_8::_bzb; if ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite" && $__ktf) { authlib8_4_8::_bmr(); my $__ksy = 0; if (-e $authlib8_4_8::_bwv{'_cba'} . $__ksx . ".sqlite") { unlink $authlib8_4_8::_bwv{'_cba'} . $__ksx . ".sqlite" or {$__ksy = 1}; } $__ksx = authlib8_4_8::_buc(); if (-e $authlib8_4_8::_bwv{'_cba'} . $__ksx . ".sqlite") { unlink $authlib8_4_8::_bwv{'_cba'} . $__ksx . ".sqlite" or {$__ksy = 1}; } if ($__ksy) { $__ksw .= "<!-- Auto Status: Error: Database error. Cannot delete SQLite tables. \n\nSystem Error: " . $@ . " -->"; } else { $__ksw .= "<!-- Auto Status: Success: -->"; } } else { my $__ksz = 0; do { if ($__ksz) { $__ktf = 0; $__ksx = authlib8_4_8::_buc(); } if ($authlib8_4_8::_bze) { my $__kta = $authlib8_4_8::_bze->{"num_data_tables"}; my $__ktb = 0; for ($__ktb = 1; $__ktb <= $__kta; $__ktb++) { push @__ksu, $__ksx . "_data" . $__ktb; } } push @__ksu, $__ksx . "_map"; push @__ksu, $__ksx . "_history"; push @__ksu, $__ksx . "_design_log"; push @__ksu, $__ksx . "_info"; push @__ksu, $__ksx . "_clists"; push @__ksu, $__ksx . "_passwords"; push @__ksu, $__ksx . "_quotas"; push @__ksu, $__ksx . "_aca_avg_imp"; push @__ksu, $__ksx . "_url_restore"; if (!$__ktg) { push @__ksu, $__ksx . "_admin_log"; push @__ksu, $__ksx . "_saved_reports"; } if($__ktf) { $__ksz = 1; } } while($__ktf); my $__ktc = ""; my $__ktd = ""; my $__kte = 0; foreach $__ktd (@__ksu) { eval { $__ktc = authlib8_4_8::_bmw($__ktd); $__ksv = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ktc, 0)); $__ksv->execute(); }; if ($@) { if ($__kst) { $__kte = 1; $__ksw .= "<!-- Auto Status: Error: Database error. Cannot drop tables. \n\nSystem Error: " . $@ . " -->"; last; } else { authlib8_4_8::_bqa(217, "Database error.", "Database error. Cannot drop tables.", $@); } } } if(!$__kte && $__kst) { $__ksw .= "<!-- Auto Status: Success: -->"; } $authlib8_4_8::_byw->commit(); } return $__ksw; } sub _cpq { my ($__kue, $__kuf) = @_; my $__kth = ""; my $__kti = ""; my $__ktj = 0; my $__ktk = ""; my $__ktl = 0; my $__ktm = 0; if ($__kuf && exists $authlib8_4_8::_bzi{"hid_report_settings_newreport"}) { my $__ktn = $authlib8_4_8::_bzi{"hid_report_settings_newreport"}; _cps($__ktn); $__ktm = 1; } $__kth .= "<div width=\"100%\" class=\"options_box\">\n"; $__kth .= "<div class=\"section_header\">\n"; if ($__kue) { if (exists $authlib8_4_8::_bzi{"hid_report_name_" . $__kue}) { $__kth .= "Edit Report - <input type=\"text\" name=\"report_name\" id=\"report_name\" value='" . $authlib8_4_8::_bzi{"hid_report_name_" . $__kue} . "'>"; $__kth .= "<input name=\"hid_report_id\" type=\"hidden\" value=\"" . $__kue . "\">\n"; $__ktm = 1; } } else { $__ktl = 1; $__kth .= "New Report"; } $__kth .= "</div>"; $__kth .= "<center>\n"; $__kth .= "<table cellpadding=\"3\" cellspacing=\"0\" style=\"margin-top: 20px;\">\n"; $__kth .= "<tr>"; $__kth .= "<td id=\"rows_select_cell\" align=\"left\" nowrap>\n"; $__kth .= "<div class=\"checkbox_title\">Rows (stubs)</div>"; $__kth .= "<div id=\"rows_select_box\" class=\"select_scroll_box\">\n"; my ($__kug, $__kuh, $__kui, $__kuj) = authlib8_4_8::_btv(1, 0, 0, 1, "*ReportRows_", $__ktm, 0, ""); $__kth .= $__kug; $__kth .= "</div></td>\n"; $__kth .= "<td id=\"cols_select_cell\" align=\"left\" nowrap>\n"; $__kth .= "<div class=\"checkbox_title\">Columns (banners)</div>"; $__kth .= "<div id=\"cols_select_box\" class=\"select_scroll_box\">\n"; my $__kto = 0; ($__kug, $__kuh, $__kui, $__kto) = authlib8_4_8::_btv(1, 0, 0, 1, "*ReportCols_", $__ktm, 0, ""); $__kth .= $__kug; $__kth .= "</div>\n"; $__kth .= "</td></tr>\n"; $__ktk .= "jQuery(document).ready(function(){InitializeCheckboxes();});\n"; $__kth .= "<tr><td colspan=\"2\" align=\"left\">\n"; $__kth .= "<div style=\"font-weight: bold; margin-bottom: 5px; margin-top: 10px;\">Filters</div>"; $__kth .= "<div style=\"border: 1px solid #C0C0C0; padding: 5px;\">"; $__kth .= "Respondent Status: <select name=\"status\" id=\"status\">\n"; $__kth .= "<option value=\"\">All</option>\n"; my $__ktp = ""; my $__ktq = ""; my $__ktr = ""; if ($__ktm) { if (exists $authlib8_4_8::_bzi{"status"}) { my $__kts = $authlib8_4_8::_bzi{"status"}; if ($__kts == 5) { $__ktp = " selected "; } elsif($__kts == 2) { $__ktq = " selected "; } elsif($__kts == 4) { $__ktr = " selected "; } } } $__kth .= "<option value=\"5\"" . $__ktp . ">Qualified / Complete</option>\n"; $__kth .= "<option value=\"2\"" . $__ktq . ">Incomplete</option>\n"; $__kth .= "<option value=\"4\"" . $__ktr . ">Disqualified</option>\n"; $__kth .= "</select>\n"; my ($__kuk, $__kul) = _cnp($__ktm); if (!$__kul) { $__kth .= "<div style=\"font-size: 12px; margin-top: 10px; margin-bottom: 10px;\"><span id=\"show_filters\" class=\"link\">Add additional filters</span></div>"; } $__ktk .= "jQuery(document).ready(function(){\n"; $__ktk .= "SetupShowFilters();\n"; $__ktk .= "var intOptionsBoxWidth = jQuery('.options_box').css('_aus');\n"; $__ktk .= "intOptionsBoxWidth = parseInt(intOptionsBoxWidth) + 20;\n"; $__ktk .= "jQuery('.stage').css('_aus', intOptionsBoxWidth);\n"; $__ktk .= "});\n"; $__kth .= "<div id=\"filter_settings\""; if (!$__kul) { $__kth .= " class=\"display_class_hide\""; } $__kth .= ">"; $__kth .= $__kuk; $__kth .= "</div></div>"; $__kth .= "</td></tr>"; if ($__ktm) { $__kth .= "<tr><td colspan=\"2\" style=\"padding-top: 15px;\" align=\"left\">"; $__kth .= "<table id=\"chart_display_settings_table\">"; my $__ktt = ""; my $__ktu = 0; my $__ktv = ""; $__kth .= "<tr class=\"chart_display_row chart_display_template\"><td style=\"text-align: right;\"><span class=\"report_row_name\"></span> chart:</td><td style=\"text-align: left;\">"; $__kth .= "<select name=\"\">\n"; $__kth .= "<option value=\"0\" class=\"chart_display_none\">None</option>"; $__kth .= "<option value=\"1\" class=\"chart_display_column\" SELECTED>Column</option>"; $__kth .= "<option value=\"2\" class=\"chart_display_pie\">Pie</option>"; $__kth .= "</select>\n"; $__kth .= "</td></tr>"; foreach $__ktt (@{$__kuj}) { $__ktu = 0; $__ktv = "chart_display_*_" . $__ktt; if (exists $authlib8_4_8::_bzi{$__ktv}) { $__ktu = $authlib8_4_8::_bzi{$__ktv}; } $__kth .= "<tr class=\"chart_display_row\"><td style=\"text-align: right;\">" . $__ktt . " chart:</td><td style=\"text-align: left;\">"; $__kth .= "<select name=\"" . $__ktv . "\">\n"; $__kth .= "<option value=\"0\" class=\"chart_display_none\""; if ($__ktu == 0) { $__kth .= " SELECTED"; } $__kth .= ">None</option>"; $__kth .= "<option value=\"1\" class=\"chart_display_column\""; if ($__ktu == 1) { $__kth .= " SELECTED"; } $__kth .= ">Column</option>"; $__kth .= "<option value=\"2\" class=\"chart_display_pie\""; if ($__ktu == 2) { $__kth .= " SELECTED"; } $__kth .= ">Pie</option>"; $__kth .= "</select>\n"; $__kth .= "</td></tr>"; } $__kth .= "</table>"; $__kth .= "</td></tr>"; } $__kth .= "</table>\n"; $__kth .= "<div style=\"margin: 20px 10px 20px 10px;\">\n"; if ($__kue) { $__kth .= "<span id=\"update_report\" class=\"link\">Update Report</span>"; $__kth .= authlib8_4_8::_bns($__ktk . _con("update_report", "CreateReportCheck()")); } else { $__kth .= "<span id=\"question_report\" class=\"link\">Create Report</span>"; $__kth .= authlib8_4_8::_bns($__ktk . _con("question_report", "CreateReportCheck()")); } $__kth .= "</div>"; $__kth .= "</td></tr></table>"; $__kth .= "</center></div>"; if (!$__kue) { my @__ktw = (); eval { my $__ktx = ""; my $__kty = 1; my $__ktz = $authlib8_4_8::_bzb . "_saved_reports"; if ($authlib8_4_8::_bwn->{'_bgu'} eq "odbc") { $__ktx = "SELECT OBJECT_ID('" . $__ktz . "')"; my $__kua = $authlib8_4_8::_byw->selectrow_arrayref(authlib8_4_8::_bmy($__ktx, 0)); if (!$__kua->[0]) { $__kty = 0; } } if ($__kty) { $__ktx = "SELECT `id`, `name` FROM `" . $__ktz . "` ORDER BY `id` ASC"; my $__kub = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__ktx, 0)); my $__kuc = 0; foreach $__kuc (@{$__kub}) { push @__ktw, [$__kuc->[0], authlib8_4_8::_bmt($__kuc->[1])]; } } }; if (@__ktw) { $__kth .= "<div width=\"100%\" class=\"options_box\" style=\"margin-top: 20px;\">\n"; $__kth .= "<div class=\"section_header\">Saved Reports</div>\n"; $__kth .= "<center>"; $__kth .= "<table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\">"; $__kth .= "<tr><td width=\"45%\" align=\"left\">\n"; $__kth .= "<div id=\"saved_report_list\" class=\"select_scroll_box\" style=\"margin: 5px;\">\n"; my $__kud = 0; foreach $__kud (@__ktw) { $__kth .= authlib8_4_8::_btx($__kud->[0], $__kud->[1], "*SavedReport_", 0, 0); } $__kth .= "</div>"; $__kth .= "</td>\n"; $__kth .= "<td width=\"55%\" align=\"left\" valign=\"top\">\n"; $__kth .= "<div style=\"margin: 10px 10px 0px 20px;\">"; $__kth .= "<span id=\"view_saved_report\" class=\"link\">View Selected Reports</span>\n"; $__kth .= authlib8_4_8::_bns(_con("view_saved_report", "AreItemsSelected('saved_report_list', 'No reports have been selected.');")); $__kth .= "<div style=\"margin-top: 10px;\"><span id=\"delete_saved_report\" class=\"link\">Delete Selected Reports</span></div>\n"; $__kth .= authlib8_4_8::_bns("jQuery(document).ready(function() {DeleteReportDialog(\"admin" . $authlib8_4_8::_bwy . "\");});"); $__kth .= "<div id=\"delete_report_dialog\">\n"; $__kth .= "<div id=\"reports_to_delete\" style=\"margin: 10px 0px 0px 10px;\"></div>"; $__kth .= "</div>\n"; $__kth .= "</div>"; $__kth .= "</td>"; $__kth .= "</tr></table>"; $__kth .= "</center></div>"; } } return _cou("Data Reports", $__kth); } sub _cpr { my $__kum = ""; if (exists $authlib8_4_8::_bzi{"hid_edit_report_name"}) { my $__kun = $authlib8_4_8::_bzi{"hid_edit_report_name"}; my $__kuo = 0; if ($__kun =~ m/^edit_report_(.*?)$/i) { $__kuo = $1; } my $__kup = ""; if (exists $authlib8_4_8::_bzi{"hid_report_settings_" . $__kuo}) { $__kup = $authlib8_4_8::_bzi{"hid_report_settings_" . $__kuo}; my $__kuq = eval($__kup); if ($@) { authlib8_4_8::_bqa(246, "Database error.", "Database error. Error evaluating settings for edit data reports.", $@); } else { my $__kur = ""; foreach $__kur (keys %authlib8_4_8::_bzi) { if ($__kur !~ m/^hid_/i) { delete $authlib8_4_8::_bzi{$__kur}; } } foreach $__kur (keys %{$__kuq}) { $authlib8_4_8::_bzi{$__kur} = $__kuq->{$__kur}; } $__kum .= _cpq($__kuo, 0); } } } return $__kum; } sub _cps { my($__kuu) = @_; my $__kus = eval($__kuu); if ($@) { authlib8_4_8::_bqa(248, "Report settings error.", "Error evaluating prior report settings.", $@); } else { my $__kut = ""; foreach $__kut (keys %authlib8_4_8::_bzi) { if ($__kut !~ m/^hid_/i) { delete $authlib8_4_8::_bzi{$__kut}; } } foreach $__kut (keys %{$__kus}) { $authlib8_4_8::_bzi{$__kut} = $__kus->{$__kut}; } } } sub _cpt { my($__kuv) = @_; $__kuv =~ s/ /XSPACEX/g; $__kuv =~ s/\./XDOTX/g; $__kuv =~ s/,/XCOMMAX/g; $__kuv =~ s/'/XSINGLEQUOTEX/g; $__kuv =~ s/"/XDOUBLEQUOTEX/g; $__kuv =~ s/\*/XSTARX/g; $__kuv =~ s/_/XUNDERSCOREX/g; return $__kuv; } sub _cpu { my ($__kyf, $__kyg) = @_; my $__kuw = ""; my $__kux = ""; my $__kuy = ""; my $__kuz = 0; my $__kva = 0; my $__kvb = 0; my @__kvc = (); my @__kvd = (); my @__kve = (); my $__kvf = 0; if ($__kyf eq "") { $__kyf = "newreport"; $__kvf = 1; } if (!$__kvf) { $__kuw .= _cqf($__kyg); } else { $__kuw .= _cqe(); $__kuw .= authlib8_4_8::_bns("jQuery(document).ready(function() {SaveReportDialog(\"admin" . $authlib8_4_8::_bwy . "\");});"); $__kuw .= "<div id=\"save_report_dialog\">\n"; $__kuw .= "<div id=\"save_report_name_box\" style=\"text-align: center; margin-top: 10px;\">Report Name: <input type=\"text\" class=\"text_input\" name=\"report_name\" id=\"report_name\">"; $__kuw .= "<div id=\"save_report_note\" style=\"font-size: 11px; margin-top: 35px;\">Note: This will save only the report settings. Each time this report is viewed<br> it will be updated using the live data from the server.</div>"; $__kuw .= "</div>\n"; $__kuw .= "<div id=\"save_report_progress\" style=\"text-align: center; margin-top: 20px;\">\n"; $__kuw .= "Saving... <img src=\"" . $authlib8_4_8::_bwv{'_blf'} . "system/blue_squares_loading.gif\" alt=\"Saving...\">\n"; $__kuw .= "</div>\n"; $__kuw .= "</div>\n"; } my ($__kyh, $__kyi, $__kyj, $__kyk) = authlib8_4_8::_btv(1, 0, 0, 1, "", "", 0, ""); my $__kvg = _cqj(\@__kvc, "*ReportRows_", $__kyi, 0); my $__kvh = _cqj(\@__kvd, "*ReportCols_", $__kyi, 0); if (@__kvd && @__kvc) { $__kvb = 1; } my @__kvi = (); my $__kvj = {}; if (exists $authlib8_4_8::_bzi{"status"}) { my $__kvk = int($authlib8_4_8::_bzi{"status"}); if ($__kvk) { push @__kvi, "`" . $authlib8_4_8::_bzb . "_data1`.`sys_RespStatus` = " . $__kvk; $__kvj->{$authlib8_4_8::_bzb . "_data1"} = 1; } } my ($__kyl, $__kym) = _cnu($__kvj); if ($__kyl) { push @__kvi, $__kyl; } my $__kvl = []; my $__kvm = {}; my $__kvn = 0; my $__kvo = ""; my $__kvp = ""; my $__kvq = 0; my $__kvr = ""; my $__kvs = 0; my $__kvt = {}; my $__kvu = 0; my @__kvv = (); my $__kvw = 0; my $__kvx = ""; my $__kvy = ""; my $__kvz = 0; my $__kwa = 0; my $__kwb = ""; my $__kwc = 0; my $__kwd = 1; my $__kwe = 1; my $__kwf = 0; my $__kwg = 0; my $__kwh = 0; my $__kwi = 0; my $__kwj = 0; my $__kwk = 1; my $__kwl = ""; my @__kwm = (); my $__kwn = 1; if (exists $authlib8_4_8::_bzi{"hid_download_crosstab_type"}) { $__kwn = $authlib8_4_8::_bzi{"hid_download_crosstab_type"}; } if (@__kvc) { foreach $__kva(@__kvc) { $__kwk = 1; $__kwe = 1; $__kwd = 1; $__kvs = 0; $__kvt = {}; @__kvv = (); $__kux = $__kva->{'_bgt'}; $__kuy = $__kva->{'_bgg'}; _cqm($__kux, $__kvt, $__kva, \@__kvd, \@__kvi, $__kvj, 0, 0); if ($__kvb) { _cqm($__kux, $__kvt, $__kva, [], \@__kvi, $__kvj, 0, 0); if (exists $__kva->{'_ctt'}) { foreach $__kvw(@__kvd) { $__kvx = $__kvw->{'_bgt'}; _cqm($__kvx, $__kvt, $__kvw, [], \@__kvi, $__kvj, 1, $__kva); } } } if (exists $__kva->{'_ctt'}) { $__kvl = []; $__kvm = {}; $__kwd = 0; $__kvo = $__kva->{'_ctt'}; $__kvz = $__kva->{'_ctu'}; foreach $__kwa (@{$__kvz}) { $__kwb = $__kvo; $__kwc = $__kwa->{'_bcm'}; $__kwb =~ s/\*/$__kwc/; _cqp($__kwb, $__kvl, $__kvm); } my $__kwo = _cql($__kvm, $__kvj); $__kvr = "SELECT COUNT(*) FROM `" . join("`,`", @{$__kwo}) . "`"; @__kvv = (); my @__kwp = (); foreach $__kvp (@{$__kvl}) { push @__kwp, $__kvp . " IS NOT NULL"; } push @__kvv, "(" . join(" OR ", @__kwp) . ")"; push @__kvv, @__kvi; _cqo(\@__kvv, $__kwo); $__kvr .= " WHERE " . join(" AND ", @__kvv); eval { $__kvs = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__kvr, 0)); }; if ($@) { authlib8_4_8::_bqa(241, "Database error.", "Database error. Cannot get data in Data Reports.", $@); } $__kvt->{"total"} = $__kvs->[0]->[0]; } my $__kwq = 0; my $__kwr = 0; my $__kws = 0; my $__kwt = 0; my $__kwu = 0; my $__kwv = 0; my $__kww = 0; my $__kwx = 0; my $__kwy = 0; my $__kwz = 0; my $__kxa = 0; my $__kxb = 0; my $__kxc = ""; my $__kvy = ""; my $__kvx = ""; my @__kxd = (); my @__kxe = (); my @__kxf = (); my %__kxg = (); my @__kxh = (); my $__kxi = ""; $__kuw .= "<div id=\"" . $__kuy . "_div\" class=\"question_report\">"; $__kuw .= "<div class=\"question_report_title\">" . $__kuy . "</div>"; $__kuw .= "<div class=\"question_report_body\">"; if (exists $__kva->{'_bft'}) { $__kuw .= "<div class=\"question_text\">" . $__kva->{'_bft'} . "</div>"; } my $__kxj = 0; if (keys %{$__kvt}) { $__kxj = 1; } if($__kxj) { if ($__kvb) { $__kwf = 5; $__kwg = 20; $__kwj = 5; $__kwl = 70; if (exists $__kva->{'_ctv'}) { $__kwk = 0; $__kwl = 90; } my $__kxk = "jQuery(document).ready(function(){\n"; $__kxk .= "jQuery(\".stage\").width(GetLargestTableWidth(\"question_report_table\") + 50);\n"; $__kxk .= "});\n"; $__kuw .= authlib8_4_8::_bns($__kxk); my $__kxl = "Value"; my $__kxm = "Label"; my $__kxn = "Total"; my @__kxo = (); $__kuw .= "<table class=\"question_report_table crosstabs_table\">"; $__kuw .= "<tr class=\"question_report_table_header\">"; $__kuw .= "<td width=\"" . $__kwf . "%\" align=\"center\" rowspan=\"2\" valign=\"bottom\"><b>" . $__kxl . "</b></td>"; push @__kxo, $__kxl; if ($__kwk) { $__kuw .= "<td width=\"" . $__kwg . "%\" align=\"left\" rowspan=\"2\" valign=\"bottom\"><b>" . $__kxm . "</b></td>"; push @__kxo, $__kxm; } $__kuw .= "<td width=\"" . $__kwj . "%\" align=\"center\" rowspan=\"2\" valign=\"bottom\" class=\"crosstab_separator\"><b>" . $__kxn . "</b></td>"; push @__kxo, $__kxn; my $__kxp = {}; foreach $__kvw(@__kvd) { $__kvx = $__kvw->{'_bgt'}; push @__kxd, $__kvx; if (exists $__kva->{'_ctv'}) { _cqh($__kvt, $__kxp, $__kvx, 1); } if (exists $__kvw->{'_ctv'}) { my $__kxq = {}; _cqh($__kvt, $__kxq, $__kvx, 0); if (!keys %{$__kxq}) { $__kxq->{0} = {'_bcm' => "(no data)"}; } $__kvw->{'_ctu'} = _cqi($__kxq); } $__kww = @{$__kvw->{'_ctu'}}; $__kwx = $__kwl / @__kvd; $__kxa += $__kww; $__kuw .= "<td colspan=\"" . $__kww . "\" align=\"center\" width=\"" . $__kwx . "%\" class=\"crosstab_separator\"><b>Question: " . $__kvx . "</b></td>"; } if (exists $__kva->{'_ctv'}) { if (!keys %{$__kxp}) { $__kxp->{0} = {'_bcm' => "(no data)"}; } $__kva->{'_ctu'} = _cqi($__kxp); } $__kuw .= "</tr>"; $__kuw .= "<tr class=\"question_report_table_header\">"; foreach $__kvw(@__kvd) { my @__kxr = (); if (exists $__kvw->{'_ctu'}) { if ($__kxa) { $__kwy = int(70 / $__kxa); } $__kxb = 1; foreach $__kuz (@{$__kvw->{'_ctu'}}) { $__kuw .= "<td align=\"center\" valign=\"top\" width=\"" . $__kwy . "%\""; if ($__kxb == @{$__kvw->{'_ctu'}}) { $__kuw .= " class=\"crosstab_separator\""; } $__kvy = _col(authlib8_4_8::_bsa($__kuz), 150, 0); if ($__kvy) { push @__kxr, $__kvy; } else { push @__kxr, $__kuz->{'_bcm'}; } $__kuw .= ">" . $__kuz->{'_bcm'} . "<br>" . $__kvy . "</td>"; $__kxi = $__kuz->{'_bcm'}; if ($__kvy) { $__kxi .= " - " . $__kvy; } push @__kxo, $__kxi; $__kxb++; } } push @__kxf, \@__kxr; } push @__kve, \@__kxo; $__kuw .= "</tr>"; if (exists $__kva->{'_ctu'}) { foreach $__kuz (@{$__kva->{'_ctu'}}) { my @__kxs = (); $__kwe = 1; $__kuw .= "<tr"; if ($__kwt) { $__kwt = 0; $__kuw .= " class=\"alt_row\""; } else { $__kwt = 1; } $__kuw .= "><td align=\"center\" valign=\"top\">" . $__kuz->{'_bcm'} . "</td>"; push @__kxs, $__kuz->{'_bcm'}; if ($__kwk) { $__kxc = _col(authlib8_4_8::_bsa($__kuz), 150, 0); push @__kxe, $__kxc; $__kuw .= "<td valign=\"top\">" . $__kxc . "</td>"; push @__kxs, $__kxc; } else { push @__kxe, $__kuz->{'_bcm'}; } foreach $__kvw(@__kvd) { $__kwr = $__kvt->{$__kuz->{'_bcm'} . ",total"}; if ($__kwe) { $__kuw .= "<td align=\"center\" valign=\"top\" class=\"crosstab_separator\">" . $__kwr; $__kws = 0; if ($__kwr) { $__kws = authlib8_4_8::_brn(($__kwr / $__kvt->{"total"}) * 100, 1); $__kuw .= "<br>" . $__kws . "%"; } if ($__kwn == 1) { push @__kxs, $__kws . "%"; } else { push @__kxs, $__kwr; } $__kuw .= "</td>"; $__kwe = 0; } if (exists $__kvw->{'_ctu'}) { $__kvx = $__kvw->{'_bgt'}; my @__kxt = (); $__kxb = 1; foreach $__kwz (@{$__kvw->{'_ctu'}}) { $__kwq = $__kvt->{$__kvx . "," . $__kuz->{'_bcm'} . "," . $__kwz->{'_bcm'}}; $__kuw .= "<td align=\"center\" valign=\"top\""; if ($__kxb == @{$__kvw->{'_ctu'}}) { $__kuw .= " class=\"crosstab_separator\""; } $__kuw .= ">" . $__kwq; $__kws = 0; $__kwr = 0; if ($__kwq) { $__kwr = $__kvt->{$__kvx . ",total," . $__kwz->{'_bcm'}}; if ($__kwr) { $__kws = authlib8_4_8::_brn(($__kwq / $__kwr) * 100, 1); $__kuw .= "<br>" . $__kws . "%"; } } if ($__kwn == 1) { push @__kxs, $__kws . "%"; } else { push @__kxs, $__kwq; } push @__kxt, $__kws; $__kuw .= "</td>"; $__kxb++; } if (!exists $__kxg{$__kvx}) { $__kxg{$__kvx} = []; } push @{$__kxg{$__kvx}}, \@__kxt; } } $__kuw .= "</tr>"; push @__kve, \@__kxs; } } $__kuw .= "<tr class=\"question_report_table_header cross_tab_summary_row\"><td"; if ($__kwk) { $__kuw .= " colspan=\"2\""; } $__kuw .= " align=\"right\" valign=\"top\"><b>Summary:</b></td>"; $__kwe = 1; foreach $__kvw(@__kvd) { if ($__kwe) { $__kuw .= "<td align=\"center\" valign=\"top\" class=\"crosstab_separator\">\n"; $__kuw .= "<table class=\"crosstab_summary_table\"><tr><td align=\"right\">N:</td><td align=\"left\">" . $__kvt->{"total"} . "</td></tr>"; if(exists $__kvt->{"min"}) { $__kuw .= "<tr><td align=\"right\">Min:</td><td>" . $__kvt->{"min"} . "</td></tr>"; } if(exists $__kvt->{"max"}) { $__kuw .= "<tr><td align=\"right\">Max:</td><td align=\"left\">" . $__kvt->{"max"} . "</td></tr>"; } if($__kwd && exists $__kvt->{"mean_total"}) { $__kuw .= "<tr><td align=\"right\">Mean:</td><td align=\"left\">" . authlib8_4_8::_brn($__kvt->{"mean_total"} / $__kvt->{"total"}, 2) . "</td></tr>"; } $__kuw .= "</table></td>"; $__kwe = 0; } if (exists $__kvw->{'_ctu'}) { $__kvx = $__kvw->{'_bgt'}; $__kxb = 1; foreach $__kwz (@{$__kvw->{'_ctu'}}) { $__kwr = $__kvt->{$__kvx . ",total," . $__kwz->{'_bcm'}}; $__kuw .= "<td align=\"center\" valign=\"top\""; if ($__kxb == @{$__kvw->{'_ctu'}}) { $__kuw .= " class=\"crosstab_separator\""; } $__kuw .= "><table class=\"crosstab_summary_table\">\n"; if ($__kwr) { $__kuw .= "<tr><td align=\"right\">N:</td><td align=\"left\">" . $__kwr . "</td></tr>"; } if (exists $__kvt->{$__kvx . ",min," . $__kwz->{'_bcm'}}) { $__kuw .= "<tr><td align=\"right\">Min:</td><td align=\"left\">" . $__kvt->{$__kvx . ",min," . $__kwz->{'_bcm'}} . "</td></tr>"; } if (exists $__kvt->{$__kvx . ",max," . $__kwz->{'_bcm'}}) { $__kuw .= "<tr><td align=\"right\">Max:</td><td align=\"left\">" . $__kvt->{$__kvx . ",max," . $__kwz->{'_bcm'}} . "</td></tr>"; } if ($__kwd && exists $__kvt->{$__kvx . ",mean_total," . $__kwz->{'_bcm'}} && $__kwr) { $__kuw .= "<tr><td align=\"right\">Mean:</td><td align=\"left\">" . authlib8_4_8::_brn($__kvt->{$__kvx . ",mean_total," . $__kwz->{'_bcm'}} / $__kwr, 2) . "</td></tr>"; } $__kuw .= "</table></td>"; $__kxb++; } } } $__kuw .= "</tr></table>"; my $__kxu = authlib8_4_8::_bua($__kux); my $__kxv = "chart_display_" . $__kyg . "_" . $__kxu . "_" . authlib8_4_8::_bua(join("_", @__kxd)); $__kuw .= "<div style=\"margin: 5px 0px 5px 0px; text-align: left;\">\n"; $__kuw .= "<b>Chart</b>: <select name=\"" . $__kxv . "\" id=\"" . $__kxv . "\">\n"; $__kuw .= "<option value=\"0\" selected>None</option>\n"; $__kuw .= "<option value=\"1\">Column</option>\n"; $__kuw .= "</select>\n"; $__kuw .= "<span id=\"download_" . $__kyg . "_" . $__kxu . "\" class=\"link download_crosstabs_report\" style=\"margin-left: 10px;\">Download</span>\n"; $__kuw .= "</div>\n"; } else { if(keys %{$__kvt} && exists $__kvt->{"total"} && $__kvt->{"total"} > 0) { $__kwf = 10; $__kwg = 70; $__kwh = 10; $__kwi = 10; $__kwk = 1; if (exists $__kva->{'_ctv'}) { $__kva->{'_ctu'} = _cqg($__kvt); $__kwk = 0; $__kwg = 80; } my @__kxw = (); my $__kxl = "Value"; my $__kxm = "Label"; my $__kxx = "Count"; my $__kxy = "Percent"; $__kuw .= "<table class=\"question_report_table\">"; $__kuw .= "<tr class=\"question_report_table_header\"><td width=\"" . $__kwf . "%\" align=\"center\" valign=\"top\"><b>" . $__kxl . "</b></td>\n"; push @__kxw, $__kxl; if ($__kwk) { $__kuw .= "<td width=\"" . $__kwg . "%\" align=\"left\"><b>" . $__kxm . "</b></td>\n"; push @__kxw, $__kxm; } $__kuw .= "<td width=\"" . $__kwh . "%\" align=\"center\"><b>" . $__kxx . "</b></td>\n"; push @__kxw, $__kxx; $__kuw .= "<td width=\"" . $__kwi . "%\" align=\"center\"><b>" . $__kxy . "</b></td></tr>\n"; push @__kxw, $__kxy; push @__kve, \@__kxw; if (exists $__kva->{'_ctu'}) { foreach $__kuz (@{$__kva->{'_ctu'}}) { my @__kxz = (); my $__kya = ""; $__kuw .= "<tr"; if ($__kwt) { $__kwt = 0; $__kuw .= " class=\"alt_row\""; } else { $__kwt = 1; } $__kuw .= "><td align=\"center\">" . $__kuz->{'_bcm'} . "</td>"; $__kya = ""; if ($__kwk) { $__kya = _col(authlib8_4_8::_bsa($__kuz), 150, 0); $__kuw .= "<td>" . $__kya . "</td>"; } $__kwq = $__kvt->{$__kuz->{'_bcm'} . ",total"}; if ($__kwq) { if ($__kwu == 0 || $__kuz->{'_bcm'} < $__kwu) { $__kwu = $__kuz->{'_bcm'}; } if ($__kwv < $__kuz->{'_bcm'}) { $__kwv = $__kuz->{'_bcm'}; } $__kwr += $__kwq * $__kuz->{'_bcm'}; } $__kuw .= "<td align=\"center\">" . $__kwq . "</td>"; $__kuw .= "<td align=\"center\">"; $__kws = authlib8_4_8::_brn(($__kwq / $__kvt->{"total"}) * 100, 0); $__kuw .= $__kws . "%"; push @__kxz, $__kuz->{'_bcm'}; if ($__kwk) { push @__kxz, $__kya; } push @__kxz, $__kwq; push @__kxz, $__kws; push @__kxh, \@__kxz; push @__kve, \@__kxz; $__kuw .= "</td>"; $__kuw .= "</tr>"; } $__kuw .= "</table>"; } $__kuw .= "<div style=\"margin: 5px 0px 5px 5px;\">\n"; $__kuw .= "<table id=\"marginals_summary_table\" width=\"100%\"><tr>\n"; $__kuw .= "<td align=\"left\" nowrap>\n"; my $__kxu = authlib8_4_8::_bua($__kux); my $__kyb = "chart_display_" . $__kyg . "_" . $__kxu; $__kuw .= "<b>Chart</b>: <select name=\"" . $__kyb . "\" id=\"" . $__kyb . "\">\n"; $__kuw .= "<option value=\"0\" selected>None</option>\n"; $__kuw .= "<option value=\"1\">Column</option>\n"; $__kuw .= "<option value=\"2\">Pie</option>\n"; $__kuw .= "</select>\n"; $__kuw .= "<span id=\"download_" . $__kyg . "_" . $__kxu . "\" class=\"link download_marginals_report\" style=\"margin-left: 10px;\">Download</span>\n"; $__kuw .= "</td>\n"; $__kuw .= "<td id=\"marginals_summary_cell\" align=\"right\" width=\"80%\"><span class=\"marginals_summary\"><b>N</b>: " . $__kvt->{"total"} . "</span>"; $__kuw .= "<span class=\"marginals_summary\"><b>Min</b>: " . $__kwu . "</span>"; $__kuw .= "<span class=\"marginals_summary\"><b>Max</b>: " . $__kwv . "</span>"; if ($__kwd) { $__kuw .= "<span class=\"marginals_summary\"><b>Mean</b>: " . authlib8_4_8::_brn(($__kwr / $__kvt->{"total"}), 2) . "</span>"; } $__kuw .= "</td></tr></table>\n"; $__kuw .= "</div>"; } else { $__kuw .= _cqr(); $__kxj = 0; } } } else { $__kuw .= _cqr(); foreach $__kvw(@__kvd) { $__kvx = $__kvw->{'_bgt'}; push @__kxd, $__kvx; } } if ($__kvb) { my $__kyc = authlib8_4_8::_bua($__kux . "_" . join("_", @__kxd)); push @__kwm, $__kyc; if ($__kxj) { $__kuw .= _cpy($__kux, \@__kxe, \@__kxd, \@__kxf, \%__kxg, $__kyc, $__kyg); } } else { push @__kwm, $__kux; if ($__kxj) { $__kuw .= _cpz($__kux, \@__kxh, $__kyg); } } $__kuw .= "</div></div>"; } } else { $__kuw .= _cqr(); } if ($__kvf) { $__kuw .= _cqe(); my $__kyd = _cpv($__kvg, $__kvh, $__kym, 0); $__kuw .= "<input type=\"hidden\" name=\"hid_report_settings_" . $__kyg . "\" value='" . $__kyd . "'>"; $__kuw .= "<input type=\"hidden\" name=\"hid_report_table_names\" id=\"hid_report_table_names\" value=\"" . join(",", @__kwm) . "\">"; } my $__kye = "Data Report<span id=\"report_name_label\">"; if (!$__kvf) { $__kye .= " - " . $__kyf } $__kye .= "</span>"; return (_cou($__kye, $__kuw), \@__kve); } sub _cpv { my($__kyq, $__kyr, $__kys, $__kyt) = @_; my $__kyn = ""; my $__kyo = ""; my $__kyp = "{\n"; if ($__kyq) { foreach $__kyn (@{$__kyq}) { $__kyp .= "\"" . $__kyn . "\" => 1,\n"; } } if($__kyr) { foreach $__kyn (@{$__kyr}) { $__kyp .= "\"" . $__kyn . "\" => 1,\n"; } } foreach $__kyn (sort keys %{$__kys}) { $__kyo = $__kys->{$__kyn}; $__kyo =~ s/"/\\"/g; $__kyp .= "\"" . $__kyn . "\" => \"" . $__kyo . "\",\n"; } if (exists $authlib8_4_8::_bzi{"status"} && $authlib8_4_8::_bzi{"status"}) { $__kyp .= "\"status\" => \"" . int($authlib8_4_8::_bzi{"status"}) . "\",\n"; } if ($__kyt && exists $authlib8_4_8::_bzi{"display_charts"}) { if ($authlib8_4_8::_bzi{"display_charts"} > 0) { $__kyp .= "\"display_charts\" => \"" . $authlib8_4_8::_bzi{"display_charts"} . "\",\n"; } } foreach $__kyn (sort keys %authlib8_4_8::_bzi) { if ($__kyn =~ m/^chart_display_\*(.*?)$/i) { $__kyp .= "\"" . $__kyn . "\" => \"" . $authlib8_4_8::_bzi{$__kyn} . "\",\n"; } } $__kyp .= "}"; return $__kyp; } sub _cpw { my $__kyu = ""; $__kyu .= "<input name=\"hid_edit_report_name\" type=\"hidden\">"; $__kyu .= "<input name=\"hid_data_download_name\" type=\"hidden\">"; $__kyu .= "<input name=\"hid_download_crosstab_type\" type=\"hidden\" value=\"1\">"; $__kyu .= "<div id=\"crosstab_download_prompt\">\n"; $__kyu .= "<input type=\"radio\" name=\"download_crosstab_type\" id=\"download_crosstab_percent\" checked value=\"1\"><label for=\"download_crosstab_percent\">Download data with <b>percents</b></label><br>"; $__kyu .= "<input type=\"radio\" name=\"download_crosstab_type\" id=\"download_crosstab_counts\" value=\"2\"><label for=\"download_crosstab_counts\">Download data with <b>counts</b></label><br>"; $__kyu .= "</div>\n"; my $__kyv = "jQuery(document).ready(function() {DownloadDataReportSetup(); EditDataReportSetup(); ViewReportSettings();});\n"; $__kyu .= authlib8_4_8::_bns($__kyv); return $__kyu; } sub _cpx { if (exists $authlib8_4_8::_bzi{"hid_data_download_name"}) { my $__kyw = $authlib8_4_8::_bzi{"hid_data_download_name"}; my $__kyx = ""; my $__kyy = 0; if ($__kyw =~ m/^download_(.*?)_(.*?)$/i) { $__kyy = $1; $__kyx = $2; $__kyx =~ s/_(r|c)XSTARX/_$1\*/ig; $__kyx =~ s/XDOTX/\./ig; } my $__kyz = ""; if (exists $authlib8_4_8::_bzi{"hid_report_settings_" . $__kyy}) { $__kyz = $authlib8_4_8::_bzi{"hid_report_settings_" . $__kyy}; my $__kza = eval($__kyz); if ($@) { authlib8_4_8::_bqa(245, "Database error.", "Database error. Error evaluating settings for data reports.", $@); } else { my $__kzb = ""; foreach $__kzb (keys %authlib8_4_8::_bzi) { if ($__kzb !~ m/^hid_/i) { delete $authlib8_4_8::_bzi{$__kzb}; } } foreach $__kzb (keys %{$__kza}) { if ($__kzb =~ m/^\*ReportRows_(.*?)$/i) { if ($1 eq $__kyx) { $authlib8_4_8::_bzi{$__kzb} = $__kza->{$__kzb}; } } else { $authlib8_4_8::_bzi{$__kzb} = $__kza->{$__kzb}; } } } } my($__kzg, $__kzh) = _cpu("", 0); my $__kzc = 0; my $__kzd = ""; my $__kze = ""; my $__kzf = "\r\n"; binmode STDOUT; print _cot($authlib8_4_8::_byz . "_" . $__kyx . "_report.csv"); foreach $__kzc (@{$__kzh}) { $__kze = ""; foreach $__kzd (@{$__kzc}) { if($__kzd eq "0" || $__kzd eq "0%") { $__kzd = ""; } elsif($__kzd && $__kzd !~ m/^[\.\d+]$/) { $__kzd = _cpi($__kzd); } $__kze .= $__kzd . ","; } chop($__kze); print $__kze . $__kzf; } } } sub _cpy { my($__kzw, $__kzx, $__kzy, $__kzz, $__laa, $__lab, $__lac) = @_; my $__kzi = ""; my $__kzj = ""; my $__kzk = _cqa($__kzx); my $__kzl = ""; my $__kzm = ""; my $__kzn = 0; foreach $__kzl (@{$__kzy}) { $__kzm = authlib8_4_8::_bua($__lac . "_" . $__kzw . "_" . $__kzl); $__kzj .= "var ChartObj_" . $__kzm . " = null;\n"; $__kzj .= "function ShowChart_" . $__kzm . "(intDisplayOption){\n"; my $__kzo = ""; my $__kzp = 0; my $__kzq = 0; my $__kzr = $__kzz->[$__kzn]; my $__kzs = $__laa->{$__kzl}; $__kzo .= "["; for ($__kzp = 0; $__kzp < @{$__kzr}; $__kzp++) { $__kzo .= "{"; $__kzo .= "name: '" . _cqb($__kzr->[$__kzp], 0) . "',"; $__kzo .= "data: ["; foreach $__kzq (@{$__kzs}) { $__kzo .= $__kzq->[$__kzp] . ","; } chop($__kzo); $__kzo .= "]"; $__kzo .= "},"; } chop($__kzo); $__kzo .= "]"; $__kzj .= "if (intDisplayOption == 1){\n"; $__kzj .= "ChartObj_" . $__kzm . " = CreateCrossTabColChart(\"" . $__kzw . "\", \"" . $__kzl . "\", [" . $__kzk . "], " . $__kzo . ", \"" . $__lac . "_" . authlib8_4_8::_bua($__kzw . "_" . $__kzl) . "\");}\n"; $__kzj .= "}\n\n"; $__kzn++; } my $__kzt = "chart_display_" . $__lac . "_" . $__lab; my $__kzu = $__lac . "_" . $__lab; $__kzj .= "jQuery(document).ready(function() {\n"; $__kzj .= "jQuery(\"#" . $__kzu . "\").tabs({\nselect: function(event, ui){\n"; $__kzn = 0; foreach $__kzl (@{$__kzy}) { $__kzm = $__lac . "_" . authlib8_4_8::_bua($__kzw . "_" . $__kzl); if ($__kzn == 0) { $__kzj .= "if" } else { $__kzj .= "else if" } $__kzj .= "(ui.index == " . $__kzn . " && ChartObj_" . $__kzm . " == null){\n"; $__kzj .= "ShowChart_" . $__kzm . "(1);\n"; $__kzj .= "}\n"; $__kzn++; } $__kzj .= "}});\n"; $__kzj .= "jQuery(\"#" . $__kzt . "\").change(function(){\n"; $__kzj .= "var intDisplayOption = this.value;\n"; foreach $__kzl (@{$__kzy}) { $__kzm = $__lac . "_" . authlib8_4_8::_bua($__kzw . "_" . $__kzl); $__kzj .= "if(ChartObj_" . $__kzm . "){\n"; $__kzj .= "ChartObj_" . $__kzm . ".destroy();\n"; $__kzj .= "ChartObj_" . $__kzm . " = null;}\n"; } $__kzm = $__lac . "_" . authlib8_4_8::_bua($__kzw . "_" . $__kzy->[0]); $__kzj .= "if (intDisplayOption > 0){\n"; $__kzj .= "jQuery(\"#" . $__kzu . "\").show();\n"; $__kzj .= "jQuery(\"#" . $__kzu . "\").tabs(\"select\", 0);\n"; $__kzj .= "ShowChart_" . $__kzm . "(intDisplayOption);\n"; $__kzj .= "this.blur();\n"; $__kzj .= "}else{\n"; $__kzj .= "jQuery(\"#" . $__kzu . "\").hide();\n"; $__kzj .= "}\n"; $__kzj .= "});\n"; my $__kzv = 1; if (exists $authlib8_4_8::_bzi{$__kzt}) { $__kzv = $authlib8_4_8::_bzi{$__kzt}; } if(exists $authlib8_4_8::_bzi{"display_charts"}) { if ($authlib8_4_8::_bzi{"display_charts"} == 1) { $__kzv = 1; } elsif ($authlib8_4_8::_bzi{"display_charts"} == 2) { $__kzv = 0; } } if ($__kzv) { $__kzj .= "jQuery(\"#" . $__kzt . "\")[0][" . $__kzv . "].selected = true;\n"; $__kzm = $__lac . "_" . authlib8_4_8::_bua($__kzw . "_" . $__kzy->[0]); $__kzj .= "ShowChart_" . $__kzm . "(" . $__kzv . ");\n"; } else { $__kzj .= "jQuery(\"#" . $__kzu . "\").hide();\n"; } $__kzj .= "});\n"; $__kzi .= authlib8_4_8::_bns($__kzj); $__kzi .= "<div id=\"" . $__kzu . "\" class=\"crosstab_container\">\n"; $__kzi .= "<ul>\n"; $__kzn = 0; foreach $__kzl (@{$__kzy}) { $__kzi .= "<li><a href=\"#" . $__kzu . "-" . $__kzn . "\">" . $__kzl . "</a></li>\n"; $__kzn++; } $__kzi .= "</ul>\n"; $__kzn = 0; foreach $__kzl (@{$__kzy}) { $__kzi .= "<div id=\"" . $__kzu . "-" . $__kzn . "\">\n"; $__kzi .= "<div id=\"chart_" . $__lac . "_" . authlib8_4_8::_bua($__kzw . "_" . $__kzl) . "\" class=\"crosstab_chart\"></div>\n"; $__kzi .= "</div>\n"; $__kzn++; } $__kzi .= "</div>\n"; return $__kzi; } sub _cpz { my($__lao, $__lap, $__laq) = @_; my $__lad = ""; my $__lae = authlib8_4_8::_bua($__lao); my $__laf = "chart_display_" . $__laq . "_" . $__lae; my $__lag = "chart_" . $__laq . "_" . $__lae; my $__lah = "ShowChart_" . $__laq . "_" . $__lae; my $__lai = "ChartObj_" . $__laq . "_" . $__lae; $__lad .= "var " . $__lai . " = null;\n"; $__lad .= "function " . $__lah . "(intDisplayOption){\n"; $__lad .= "var DataArray = ["; my $__laj = 0; my $__lak = ""; my $__lal = 0; my $__lam = @{$__lap}; foreach $__laj (@{$__lap}) { if (@{$__laj} == 4) { $__lak = $__laj->[1]; $__lal = $__laj->[3]; } else { $__lak = $__laj->[0]; $__lal = $__laj->[2]; } $__lad .= "['" . _cqb($__lak, $__lam) . "', " . $__lal . "],"; } chop($__lad); $__lad .= "];\n"; $__lad .= "if (intDisplayOption == 1){\n"; $__lad .= "ChartObj_" . $__lae . " = CreateMarginalsColChart(\"" . $__lao . "\", \"" . $__lae . "\", DataArray, \"" . $__laq . "\");}\n"; $__lad .= "else if(intDisplayOption == 2){\n"; $__lad .= "ChartObj_" . $__lae . " = CreatePieChart(\"" . $__lao . "\",\"" . $__lae . "\", DataArray, \"" . $__laq . "\");}\n"; $__lad .= "}\n\n"; $__lad .= "jQuery(document).ready(function() {\n"; $__lad .= "jQuery(\"#" . $__laf . "\").change(function(){\n"; $__lad .= "var intDisplayOption = this.value;\n"; $__lad .= "if(" . $__lai . "){\n"; $__lad .= $__lai . ".destroy();\n"; $__lad .= $__lai . " = null;}\n"; $__lad .= "if (intDisplayOption > 0){\n"; $__lad .= "jQuery(\"#" . $__lag . "\").show();\n"; $__lad .= $__lah . "(intDisplayOption);\n"; $__lad .= "this.blur();\n"; $__lad .= "}else{\n"; $__lad .= "jQuery(\"#" . $__lag . "\").hide();\n"; $__lad .= "}});\n"; my $__lan = 1; if (exists $authlib8_4_8::_bzi{$__laf}) { $__lan = $authlib8_4_8::_bzi{$__laf}; } if(exists $authlib8_4_8::_bzi{"display_charts"}) { if ($authlib8_4_8::_bzi{"display_charts"} == 1) { $__lan = 1; } elsif ($authlib8_4_8::_bzi{"display_charts"} == 2) { $__lan = 0; } } if ($__lan) { $__lad .= "jQuery(\"#" . $__laf . "\")[0][" . $__lan . "].selected = true;\n"; $__lad .= $__lah . "(" . $__lan . ");\n"; } else { $__lad .= "jQuery(\"#" . $__lag . "\").hide();\n"; } $__lad .= "});\n"; $__lad = authlib8_4_8::_bns($__lad); $__lad .= "<div id=\"" . $__lag . "\" class=\"marginal_chart\"></div>\n"; return $__lad; } sub _cqa { my($__lav) = @_; my $__lar = ""; my $__las = ""; my $__lat = ""; my $__lau = @{$__lav}; foreach $__lar (@{$__lav}) { $__las = _cqb($__lar, $__lau); $__lat .= "'" . $__las . "',"; } chop($__lat); return $__lat; } sub _cqb { my($__lax, $__lay) = @_; my $__law = 50; if ($__lay > 8) { $__law = 35; } $__lax =~ s/'/\\\'/g; $__lax = _col($__lax, $__law, 0); if ($__lax eq "") { $__lax = " "; } return $__lax; } sub _cqc { my $__laz = ""; my $__lba = 0; my $__lbb = ""; my $__lbc = ""; my $__lba = 0; my $__lbd = ""; my @__lbe = (); foreach $__lbd (sort keys %authlib8_4_8::_bzi) { if ($__lbd =~ m/\*SavedReport_(.*?)$/i) { push @__lbe, $1; } } my @__lbe = sort {$a <=> $b} @__lbe; my $__lbf = 0; foreach $__lbf (@__lbe) { eval { my $__lbg = "SELECT * FROM `" . $authlib8_4_8::_bzb . "_saved_reports` WHERE `id` = " . $__lbf; my $__lbh = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__lbg, 0)); $__lba = $__lbh->[0]->[0]; $__lbb = authlib8_4_8::_bmt($__lbh->[0]->[1]); $__lbc = authlib8_4_8::_bmt($__lbh->[0]->[2]); }; if ($@) { authlib8_4_8::_bqa(243, "Database error.", "Database error. Cannot select saved reports.", $@); } if ($__lbc) { my $__lbi = eval($__lbc); if ($@) { authlib8_4_8::_bqa(244, "Database error.", "Database error. Error evaluating saved reports.", $@); } else { my $__lbj = ""; foreach $__lbj (keys %authlib8_4_8::_bzi) { if ($__lbj !~ m/^hid_/i) { delete $authlib8_4_8::_bzi{$__lbj}; } } my $__lbk = ""; foreach $__lbj (keys %{$__lbi}) { $__lbk = $__lbi->{$__lbj}; if ($__lbj =~ m/^(chart_display_)\*(.*?)$/i) { $__lbj = $1 . $__lba . $2; } $authlib8_4_8::_bzi{$__lbj} = $__lbk; } $__laz .= "<input type=\"hidden\" name=\"hid_report_settings_" . $__lba . "\" value='" . $__lbc . "'>\n"; $__laz .= "<input type=\"hidden\" name=\"hid_report_name_" . $__lba . "\" value='" . $__lbb . "'>\n"; } } my($__lbl, $__lbm) = _cpu($__lbb, $__lba); $__laz .= $__lbl; } return $__laz; } sub _cqd { my $__lbn = "{"; my $__lbo = ""; if (exists $authlib8_4_8::_bzi{"report_names"}) { my $__lbp = $authlib8_4_8::_bzi{"report_names"}; my @__lbq = split(",", $__lbp); my $__lbr = ""; my $__lbs = 0; foreach $__lbs (@__lbq) { $__lbr .= "`id` = " . $__lbs . " OR "; } $__lbr =~ s/\s+OR\s+$//i; eval { my $__lbt = "DELETE FROM `" . $authlib8_4_8::_bzb . "_saved_reports` WHERE " . $__lbr; $authlib8_4_8::_byw->do(authlib8_4_8::_bms(authlib8_4_8::_bmy($__lbt, 0))); $authlib8_4_8::_byw->commit(); }; if ($@) { $__lbo = "Database error. Cannot delete saved reports. " . $@; authlib8_4_8::_bse(0, $__lbo); } } if ($__lbo) { $__lbn .= "\"error\": \"" . $__lbo . "\""; } $__lbn .= "}"; print $__lbn; authlib8_4_8::_bso(); } sub _cqe { my $__lbu = ""; $__lbu .= "<table style=\"margin: 0px 0px 10px 0px; width: 100%\"><tr>"; $__lbu .= "<td align=\"left\"><span id=\"save_report\" class=\"link save_report_link\">Save Report</span></td>"; $__lbu .= "<td align=\"right\"><span id=\"report_settings\" class=\"link report_settings_link\">Report Settings</span></td>"; $__lbu .= "</tr></table>"; return $__lbu; } sub _cqf { my($__lbw) = @_; my $__lbv = ""; $__lbv .= "<div style=\"margin: 0px 0px 10px 0px;\"><span id=\"edit_report_" . $__lbw . "\" class=\"link edit_report_link\">Edit Report</span></div>"; return $__lbv; } sub _cqg { my($__lca) = @_; my $__lbx = ""; my @__lby = (); foreach $__lbx (sort keys %{$__lca}) { if ($__lbx =~ m/^(-?(\d*\.\d+|\d+)),total$/i) { push @__lby, {'_bcm' => $1}; } } my @__lbz = sort {$a->{'_bcm'} <=> $b->{'_bcm'}} @__lby; return \@__lbz; } sub _cqh { my($__lcd, $__lce, $__lcf, $__lcg) = @_; my $__lcb = ""; my $__lcc = 0; foreach $__lcb (keys %{$__lcd}) { if ($__lcb =~ m/^$__lcf,(-?(\d*\.\d+|\d+)),(-?(\d*\.\d+|\d+))$/i) { if ($__lcg) { $__lcc = $1; } else { $__lcc = $3; } $__lce->{$__lcc} = {'_bcm' => $__lcc}; } } } sub _cqi { my($__lck) = @_; my $__lch = ""; my @__lci = (); foreach $__lch (keys %{$__lck}) { push @__lci, $__lck->{$__lch}; } my @__lcj = sort {$a->{'_bcm'} <=> $b->{'_bcm'}} @__lci; return \@__lcj; } sub _cqj { my ($__ldf, $__ldg, $__ldh) = @_; my $__lcl = ""; my $__lcm = ""; my $__lcn = 0; my $__lco = 0; my $__lcp = 0; my $__lcq = 0; my $__lcr = ""; my @__lcs = (); my $__lct = ""; foreach $__lcn (@{$__ldh}) { $__lcl = $__lcn->[0]; $__lcm = $__lcn->[1]; if ($__lcm eq "") { $__lcm = $__lcl; } $__lcr = $__ldg . $__lcl; if (exists $authlib8_4_8::_bzi{$__lcr}) { my $__lcu = {}; push @__lcs, $__lcr; $__lcu->{'_bgt'} = $__lcl; $__lcu->{'_bgg'} = $__lcm; $__lco = authlib8_4_8::_btu($__lcl); if ($__lco) { $__lcp = $__lco->{'_bgu'}; _cqq($__lco); $__lct = ""; if (exists $__lco->{'_bkt'}->{'_bfd'}) { $__lct .= "<div class=\"question_header1 question_header\">" . _crz($__lco->{'_bkt'}->{'_bfd'}->{'_bft'}) . "</div>\n"; } if (exists $__lco->{'_bkt'}->{'_bfi'}) { $__lct .= "<div class=\"question_header2 question_header\">" . _crz($__lco->{'_bkt'}->{'_bfi'}->{'_bft'}) . "</div>\n"; } if (exists $__lco->{'_bkt'}->{'_aym'}) { $__lct .= "<div class=\"question_body question_header\">" . _crz($__lco->{'_bkt'}->{'_aym'}->{'_bft'}) . "</div>\n"; } if (exists $__lco->{'_bkt'}->{'_aih'}) { $__lct .= "<div class=\"question_grid_header question_header\">" . _crz($__lco->{'_bkt'}->{'_aih'}->{'_bft'}) . "</div>\n"; } if ($__lcp == &authlib8_4_8::_CCH) { my $__lcv = 0; my $__lcw = 0; my $__lcq = 0; if($__lcl =~ m/_r(\d+)/i) { $__lcv = $1; $__lcq = authlib8_4_8::_bsw($__lco->{'_bkt'}->{'_ajl'}); $__lct .= "<div class=\"question_grid_row question_header\">Row " . $__lcv . ": " . _crz(authlib8_4_8::_bsa($__lcq->[$__lcv - 1])) . "</div>\n"; } if($__lcl =~ m/_c(\d+)/i) { $__lcw = $1; $__lcq = authlib8_4_8::_bsw($__lco->{'_bkt'}->{'_alu'}); $__lct .= "<div class=\"question_grid_col question_header\">Column " . $__lcw . ": " . _crz(authlib8_4_8::_bsa($__lcq->[$__lcw - 1])) . "</div>\n"; } } if ($__lct) { $__lcu->{'_bft'} = $__lct; } if($__lcp == &authlib8_4_8::_CBV) { $__lcq = authlib8_4_8::_bsw($__lco->{'_bkt'}->{'_bcs'}); $__lcu->{'_ctu'} = $__lcq; if ($__lco->{'_bkt'}->{'_bgu'} eq "check") { if ($__lcl =~ m/(.*?)(\..*?)$/) { $__lcu->{'_ctt'} = $1 . "_*" . $2; } else { $__lcu->{'_ctt'} = $__lcl . "_*"; } } } elsif($__lcp == &authlib8_4_8::_CCH) { my $__lcx = $__lco->{'_bkt'}; my $__lcy = $__lcx->{'_any'}; my $__lcz = 0; my $__lda = ""; my $__ldb = $__lcl; if ($__ldb =~ m/(.*?)\./) { $__ldb = $1; } if ($__lcx->{'_afl'} eq "rows") { $__ldb =~ s/_c(\*|\d+)//ig; } else { $__ldb =~ s/_r(\*|\d+)//ig; } foreach $__lcz (@{$__lcy}) { if ($__lcz->{'_bgt'} eq $__ldb) { $__lda = ref($__lcz); if ($__lda eq "RadioVar" || $__lda eq "CheckVar") { if ($__lcx->{'_afl'} eq "rows") { $__lcu->{'_ctu'} = authlib8_4_8::_bsw($__lcx->{'_alu'}); } else { $__lcu->{'_ctu'} = authlib8_4_8::_bsw($__lcx->{'_ajl'}); } if ($__lda eq "CheckVar") { $__lcu->{'_ctt'} = $__lcu->{'_bgt'}; } } elsif($__lda eq "ComboVar" || ($__lda eq "RankVar") && ($__lcz->{'_bgu'} eq "combo")) { $__lcu->{'_ctu'} = authlib8_4_8::_bsw($__lcz->{'_bcs'}); } elsif($__lda eq "NumericVar" || $__lda eq "RankVar" || $__lda eq "ConsumVar") { $__lcu->{'_ctv'} = 1; } last; } } } elsif($__lcp == &authlib8_4_8::_CCN) { my $__ldc = authlib8_4_8::_bqx($__lcl); my $__ldd = $__ldc->{'_apa'}; my $__lde = 0; if ($__lcl =~ m/BYO_(\d+)$/i) { $__lde = $1; } if (exists $__ldd->{$__lde}) { $__lcq = authlib8_4_8::_bsw($__ldd->{$__lde}->{'_apo'}); $__lcu->{'_ctu'} = $__lcq; } else { $__lcu->{'_ctv'} = 1; } } else { $__lcu->{'_ctv'} = 1; } } else { $__lcu->{'_ctv'} = 1; } push @{$__ldf}, $__lcu; } } return \@__lcs; } sub _cqk { my($__ldv, $__ldw, $__ldx, $__ldy, $__ldz) = @_; my $__ldi = 0; my @__ldj = (); my $__ldk = _cql($__ldw, $__ldy); if ($__ldz) { my $__ldl = []; my $__ldm = {}; if (exists $__ldz->{'_ctt'}) { my $__ldn = $__ldz->{'_ctt'}; my $__ldo = $__ldz->{'_ctu'}; my $__ldp = ""; my $__ldq = 0; my $__ldr = 0; foreach $__ldq (@{$__ldo}) { $__ldp = $__ldn; $__ldr = $__ldq->{'_bcm'}; $__ldp =~ s/\*/$__ldr/; _cqp($__ldp, $__ldl, $__ldm); } $__ldk = _cql($__ldw, $__ldm); my @__lds = (); my $__ldt = ""; foreach $__ldt (@{$__ldl}) { push @__lds, $__ldt . " IS NOT NULL"; } push @__ldj, "(" . join(" OR ", @__lds) . ")"; } } my $__ldu = "SELECT " . join(",", @{$__ldv}) . ", COUNT(*) FROM `" . join("`,`", @{$__ldk}) . "`"; push @__ldj, @{$__ldx}; _cqo(\@__ldj, $__ldk); if (@__ldj) { $__ldu .= " WHERE " . join(" AND ", @__ldj); } $__ldu .= " GROUP BY " . join(",", @{$__ldv}); eval { $__ldi = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__ldu, 0)); }; if ($@) { authlib8_4_8::_bqa(265, "Database error.", "Database error. Cannot get data in Data Reports.", $@); } return $__ldi; } sub _cql { my($__lec, $__led) = @_; my $__lea = ""; my @__leb = (); foreach $__lea (sort keys %{$__lec}) { push @__leb, $__lea; } foreach $__lea (sort keys %{$__led}) { if (!exists $__lec->{$__lea}) { $__lec->{$__lea} = 1; push @__leb, $__lea; } } return \@__leb; } sub _cqm { my($__ler, $__les, $__let, $__leu, $__lev, $__lew, $__lex, $__ley) = @_; my $__lee = 0; my $__lef = []; my $__leg = {}; my $__leh = 0; my $__lei = ""; my $__lej = 0; my $__lek = 0; my $__lel = 0; my $__lem = ""; my $__len = ""; my $__leo = 0; my $__lep = 0; my $__leq = 0; if (exists $__let->{'_ctt'}) { $__leh = $__let->{'_ctu'}; } else { $__leh = [{}]; } foreach $__lej (@{$__leh}) { $__lef = []; $__leg = {}; $__lek = 0; $__lep = 0; $__lei = $__ler; if (exists $__let->{'_ctt'}) { $__lei = $__let->{'_ctt'}; $__lek = $__lej->{'_bcm'}; $__lei =~ s/\*/$__lek/; } if (@{$__leu}) { foreach $__leq(@{$__leu}) { $__len = $__leq->{'_bgt'}; if (exists $__leq->{'_ctt'}) { $__lel = $__leq->{'_ctu'}; } else { $__lel = [{}]; } foreach $__leo (@{$__lel}) { $__lef = []; $__leg = {}; _cqp($__lei, $__lef, $__leg); $__lem = $__leq->{'_bgt'}; if (exists $__leq->{'_ctt'}) { $__lem = $__leq->{'_ctt'}; $__lep = $__leo->{'_bcm'}; $__lem =~ s/\*/$__lep/; } else { $__lep = 0; } _cqp($__lem, $__lef, $__leg); $__lee = _cqk($__lef, $__leg, $__lev, $__lew, $__ley); _cqn($__lee, $__les, $__len, $__lek, $__lep, $__lex); } } } else { _cqp($__lei, $__lef, $__leg); $__lee = _cqk($__lef, $__leg, $__lev, $__lew, $__ley); _cqn($__lee, $__les, $__ler, $__lek, $__lep, $__lex); } } } sub _cqn { my($__lff, $__lfg, $__lfh, $__lfi, $__lfj, $__lfk) = @_; my $__lez = 0; my $__lfa = 0; my $__lfb = 0; my $__lfc = 0; my $__lfd = 0; my $__lfe = 0; foreach $__lez (@{$__lff}) { if (defined $__lez->[0]) { $__lfa = $__lez->[-1]; if (@$__lez == 3) { $__lfe = 1; $__lfc = $__lez->[0]; $__lfd = $__lez->[1]; if ($__lfi) { if ($__lfc == 1) { $__lfc = $__lfi; } else { $__lfe = 0; } } if ($__lfj) { if ($__lfd == 1) { $__lfd = $__lfj; } else { $__lfe = 0; } } if ($__lfe) { $__lfg->{$__lfh . "," . $__lfc . "," . $__lfd} += $__lfa; $__lfg->{$__lfh . ",total," . $__lfd} += $__lfa; $__lfg->{$__lfh . ",mean_total," . $__lfd} += $__lfc * $__lfa; if (exists $__lfg->{$__lfh . ",min," . $__lfd}) { if ($__lfc < $__lfg->{$__lfh . ",min," . $__lfd}) { $__lfg->{$__lfh . ",min," . $__lfd} = $__lfc; } } else { $__lfg->{$__lfh . ",min," . $__lfd} = $__lfc; } if (exists $__lfg->{$__lfh . ",max," . $__lfd}) { if ($__lfc > $__lfg->{$__lfh . ",max," . $__lfd}) { $__lfg->{$__lfh . ",max," . $__lfd} = $__lfc; } } else { $__lfg->{$__lfh . ",max," . $__lfd} = $__lfc; } if (exists $__lfg->{$__lfh . ",min"}) { if ($__lfc < $__lfg->{$__lfh . ",min"}) { $__lfg->{$__lfh . ",min"} = $__lfc; } } else { $__lfg->{$__lfh . ",min"} = $__lfc; } if (exists $__lfg->{$__lfh . ",max"}) { if ($__lfc > $__lfg->{$__lfh . ",max"}) { $__lfg->{$__lfh . ",max"} = $__lfc; } } else { $__lfg->{$__lfh . ",max"} = $__lfc; } } } else { $__lfc = $__lez->[0]; $__lfe = 1; if ($__lfi) { if ($__lfc == 1) { $__lfc = $__lfi; } else { $__lfe = 0; } } if ($__lfe) { if ($__lfk) { $__lfg->{$__lfh. ",total," . $__lfc} = $__lfa; } else { $__lfg->{"total"} += $__lfa; $__lfg->{$__lfc . ",total"} += $__lfa; $__lfg->{"mean_total"} += $__lfc * $__lfa; if (exists $__lfg->{"min"}) { if ($__lfc < $__lfg->{"min"}) { $__lfg->{"min"} = $__lfc; } } else { $__lfg->{"min"} = $__lfc; } if (exists $__lfg->{"max"}) { if ($__lfc > $__lfg->{"max"}) { $__lfg->{"max"} = $__lfc; } } else { $__lfg->{"max"} = $__lfc; } } } } } } } sub _cqo { my($__lfn, $__lfo) = @_; my $__lfl = @{$__lfo}; if ($__lfl > 1) { my $__lfm = 0; for ($__lfm = 0; $__lfm < ($__lfl - 1); $__lfm++) { push @{$__lfn}, "`" . $__lfo->[$__lfm] . "`.`sys_RespNum` = `" . $__lfo->[$__lfm + 1] . "`.`sys_RespNum`"; } } } sub _cqp { my($__lfr, $__lfs, $__lft) = @_; my $__lfp = 0; my $__lfq = ""; my ($__lfu, $__lfv) = authlib8_4_8::_bnv($__lfr); $__lfq = $authlib8_4_8::_bzb . "_data" . $__lfu; $__lft->{$__lfq} = 1; $__lfr = "`" . $__lfq . "`.`" . $__lfr . "`"; push @{$__lfs}, $__lfr; } sub _cqq { my($__lfy) = @_; my $__lfw = $__lfy->{'_w'}; seek $authlib8_4_8::_byh, ($__lfw), 0; my $__lfx = authlib8_4_8::_bps(0); $__lfy->{'_bkt'} = $__lfx; } sub _cqr { return "<div>No data for this report.</div>"; } sub _cqs { my($__lgg, $__lgh, $__lgi) = @_; my $__lfz = tell $authlib8_4_8::_byh; my $__lga = $__lgi->{'_w'}; seek $authlib8_4_8::_byh, ($__lga), 0; my $__lgb = authlib8_4_8::_bps(0); my $__lgc = authlib8_4_8::_bsw($__lgb->{'_bcs'}); my $__lgd = @{$__lgc}; my $__lge = 0; my $__lgf = 0; for ($__lge = 1; $__lge <= $__lgd; $__lge++) { if (!exists($__lgg->{$__lgh}->{$__lge})) { $__lgg->{$__lgh}->{$__lge} = '0'; } else { $__lgf = 1; } } if (!$__lgf) { $__lgg->{$__lgh} = {}; } seek $authlib8_4_8::_byh, $__lfz, 0; } sub _cqt { my ($__lgl, $__lgm) = @_; my $__lgj = ""; my $__lgk = ""; $__lgj .= "<center>"; $__lgj .= "<br><table>\n"; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { my ($__lgn, $__lgo) = _crp($__lgl, 1); $__lgj .= $__lgn; if($ssiwebadmin8_4_8::_ctq) { _crq($__lgl, $__lgm, 0); } $__lgj .= "<tr><td align=\"left\">\n"; $__lgj .= _cqu("test_survey_run"); $__lgj .= "<br><br></td></tr>"; } $__lgj .= "<tr><td align=\"left\">\n"; if (exists $authlib8_4_8::_bzi{"hid_test_mode"}) { $__lgj .= "<span class=\"link\" id=\"test_survey_return\">Return to Regular Mode</span>"; $__lgk .= _con("test_survey_return"); } else { if($ssiwebadmin8_4_8::_ctq) { $__lgj .= "\"Apply Changes\" must be clicked above before entering Test Mode."; } else { $__lgj .= "<span id=\"test_survey_admin\" class=\"link\">Enter Test Mode</span>"; $__lgk .= _con("test_survey_admin"); } } $__lgj .= "</td></tr>\n"; $__lgj .= "</table>"; $__lgj .= "</center>\n"; $__lgj .= authlib8_4_8::_bns($__lgk); return _cou("Test Survey", $__lgj); } sub _cqu { my ($__lgq) = @_; my $__lgp = "<a href=\"ciwweb" . $authlib8_4_8::_bwy . "?hid_studyname=" . htmlentity::encode($authlib8_4_8::_bzi{"hid_studyname"}) . "&hid_pagenum=0&hid_test_mode=1" . "\" target=\"new_window\"" . " style=\"text-decoration: none\" class=\"link\" id=\"" . $__lgq . "\">Run Test Survey</a>"; return $__lgp; } sub _cqv { print authlib8_4_8::_bpm(); print "<html><head>\n"; print "<meta http-equiv=\"refresh\" content=\"0;"; print "url=ciwweb" . $authlib8_4_8::_bwy . "?hid_studyname=" . htmlentity::encode($authlib8_4_8::_bzi{"hid_studyname"}) . "&hid_pagenum=0&hid_test_mode=1\">\n"; print "<meta http-equiv=\"pragma\" content=\"no-cache\">\n"; print "</head>\n<body bgcolor=\"#ffffff\"></body></html>\n"; } sub _bha { my ($__lgr) = @_; eval { require $__lgr; }; if ($@) { print "Content-type: text/html\r\n\r\n"; print "<html><body style=\"font-family: arial; margin: 20px;\">"; print "<span style=\"color: red; font-weight: bold; padding-right: 10px\">Error:</span>"; print "Cannot load library: <span style=\"color: blue;\">" . $__lgr . "</span>"; print "<div style=\"margin-top: 20px;\">" . $@ . "</div>"; print "</body></html>"; exit(); } } sub _cqw { my($__lhk, $__lhl, $__lhm, $__lhn, $__lho) = @_; my $__lgs = ""; my $__lgt = 0; my $__lgu = ""; my $__lgv = ""; my $__lgw = 0; my $__lgx = 0; my $__lgy = 0; if (!$__lhk) { $__lgs .= "<style type=\"text/css\">\n"; $__lgs .= ".stage{margin-left: 10px;}\n"; $__lgs .= "</style>\n"; } authlib8_4_8::_bmr(); ($__lgt, $__lgu, $__lgv) = authlib8_4_8::_bmq($authlib8_4_8::_byr); $__lgs .= _cqz("Database Connectivity", $__lgt, $__lgu, $__lgv); if ($__lgt && $__lhl) { ($__lgt, $__lgu, $__lgv, $__lgy) = authlib8_4_8::_boa($__lho); if ($__lgy) { $__lgs .= _cqz("Database Table Name Conflict", 0, $__lgu, $__lgv); } elsif (!$__lgt) { my ($__lhp, $__lhq, $__lhr, $__lhs, $__lht) = _crb(1); if ($__lht) { $__lgt = 0; $__lgu = $__lht->{'_cbb'}; $__lgv = $__lht->{'_cbc'}; } else { ($__lgt, $__lgu, $__lgv, $__lgw, $__lgx) = _crc(1, $__lhq, $__lhr, $__lhs, $__lhn); } if ($__lgt) { ($__lgt, $__lgu, $__lgv) = _crt($__lhs); } $__lgs .= _cqz("Survey Loaded", $__lgt, $__lgu, $__lgv); if(exists $authlib8_4_8::_byr->{"respnum_start"}) { my $__lgz = $authlib8_4_8::_byr->{"respnum_start"}; if ($__lgz > 1) { if ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { my $__lha = $__lgz - 1; eval { my $__lhb = "INSERT INTO `" . $authlib8_4_8::_bzb . "_data1` (`sys_RespNum`) VALUES (" . $__lha . ")"; my $__lhc = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lhb, 0)); $__lhc->execute(); $authlib8_4_8::_byw->commit(); $__lhb = "DELETE FROM `" . $authlib8_4_8::_bzb . "_data1` WHERE `" . $authlib8_4_8::_bzb . "_data1`.`sys_RespNum` = " . $__lha; $__lhc = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lhb, 0)); $__lhc->execute(); $authlib8_4_8::_byw->commit(); }; if ($@) { $__lgt = 0; $__lgu = "Failed to set Respondent Number"; $__lgv = $@; } } elsif($authlib8_4_8::_bwn->{'_bgu'} eq "odbc") { } else { eval { my $__lhb = "ALTER TABLE `" . $authlib8_4_8::_bzb . "_data1` AUTO_INCREMENT = " . $__lgz; my $__lhc = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lhb, 1)); $__lhc->execute(); $authlib8_4_8::_byw->commit(); }; if ($@) { $__lgt = 0; $__lgu = "Failed to set Respondent Number"; $__lgv = $@; } } $__lgs .= _cqz("Custom Respondent Number Start: " . $__lgz, $__lgt, $__lgu, $__lgv); } } if ($__lgw) { if ($ssiwebadmin8_4_8::_ctg) { $__lgs .= "<!-- Auto Status: Add_Passwords: " . $__lgw . " -->"; } else { $__lgs .= _cqx($__lgw, $__lgx); } } } } if ($__lgt) { if ($__lhn) { $__lgs .= "<div style=\"margin-top: 10px; margin-bottom: 20px;\" id=\"all_finished_message\">Your web survey has been reset. All respondent data has been removed and the survey has been reloaded.</div>"; } } $__lgs .= "<div class=\"setup_system_info_box\">\n"; $__lgs .= "<div class=\"setup_system_info_header\">System Information</div>\n"; $__lgs .= "<table>\n"; $__lgs .= _cra("SSI Web Version", $authlib8_4_8::_bwx); $__lgs .= _cra("Perl Version", $]); if ($authlib8_4_8::_byw) { $__lgs .= _cra("Database", $authlib8_4_8::_byw->get_info(17) . " - " . $authlib8_4_8::_byw->get_info(18)); } my @__lhd = ("DBI", "DBD::mysql", "DBD::ODBC", "DBD::SQLite"); my $__lhe = ""; foreach my $__lhf (@__lhd) { $__lhe = "require " . $__lhf; eval $__lhe; if ($__lhf->VERSION) { $__lgs .= _cra("Perl Module - " . $__lhf . " - Version", $__lhf->VERSION); } } $__lgs .= "</table></div>\n"; if($__lhm) { my $__lhg = $authlib8_4_8::_bze->{"num_data_tables"}; my $__lhh = 0; my $__lhi = ""; $__lgs .= "<div class=\"setup_system_info_box\">\n"; $__lgs .= "<div class=\"setup_system_info_header\">Download Database Tables</div>\n"; $__lgs .= "<div class=\"download_db_tables_box\" style=\"margin: 10px;\">\n"; $__lgs .= "<table width=\"100%\"><tr><td width=\"50%\" valign=\"top\">\n"; $__lgs .= "<div><span id=\"download_history_table\" class=\"link\">History Table</span></div>\n"; $__lgs .= "<div><span id=\"download_admin_log_table\" class=\"link\">Admin Log Table</span></div>\n"; $__lgs .= "<div><span id=\"download_clists_table\" class=\"link\">Constructed Lists Table</span></div>\n"; $__lgs .= "<div><span id=\"download_info_table\" class=\"link\">Info Table</span></div>\n"; $__lgs .= "<div><span id=\"download_map_table\" class=\"link\">Map Table</span></div>\n"; $__lgs .= "<div><span id=\"download_design_log_table\" class=\"link\">Design Log Table</span></div>\n"; $__lgs .= "<div><span id=\"download_url_restore_table\" class=\"link\">URL Restore Table</span></div>\n"; if($authlib8_4_8::_bze->{"password_build"}) { $__lgs .= "<div><span id=\"download_passwords_table\" class=\"link\">Passwords Table</span></div>\n"; $__lhi .= _con("download_passwords_table"); } $__lgs .= "</td><td width=\"50%\" valign=\"top\">\n"; for($__lhh = 1; $__lhh <= $__lhg; $__lhh++) { $__lgs .= "<div><span id=\"download_data" . $__lhh . "_table\" class=\"link\">Data" . $__lhh . " Table</span></div>\n"; $__lhi .= _con("download_data" . $__lhh . "_table"); } $__lgs .= "</td></tr></table></div></div>\n"; $__lhi .= _con("download_history_table"); $__lhi .= _con("download_admin_log_table"); $__lhi .= _con("download_clists_table"); $__lhi .= _con("download_info_table"); $__lhi .= _con("download_map_table"); $__lhi .= _con("download_design_log_table"); $__lhi .= _con("download_url_restore_table"); $__lgs .= authlib8_4_8::_bns($__lhi); } if (!$__lhk) { $__lgs .= "<div style=\"text-align: center; margin-top: 30px;\" id=\"main_menu_button\"><input type=\"submit\" value=\""; if ($__lgt) { $__lgs .= "Main Menu"; } else { $__lgs .= "Try Again"; } $__lgs .= "\"></div>\n"; } my $__lhj = "Setup"; if($__lhm) { $__lhj = "Advanced"; } elsif($__lhn) { $__lhj = "Reset Survey"; } return _cou($__lhj, $__lgs); } sub _cqx { my($__lhz, $__lia) = @_; my $__lhu = ""; my $__lhv = $ENV{'SCRIPT_NAME'}; my $__lhw = 0; my $__lhx = ""; my $__lhy = int($__lhz / 1024); $__lia = int($__lia / 1024); if (exists $authlib8_4_8::_bzi{"hid_session"}) { $__lhw = $authlib8_4_8::_bzi{"hid_session"}; } if (exists $authlib8_4_8::_bzi{"hid_studyname"}) { $__lhx = $authlib8_4_8::_bzi{"hid_studyname"}; } $__lhu .= "<style type=\"text/css\">#all_finished_message, #main_menu_button{display: none;}</style>"; $__lhu .= "<div id=\"loading_passwords\">Loading passwords... <b><span id=\"password_offset\">" . $__lhy . "</span></b> of " . $__lia . " KB"; $__lhu .= "<br><img src=\"" . $authlib8_4_8::_bwv{'_blf'} . "system/loading.gif\" alt=\"Processing...\">\n"; $__lhu .= "</div>"; $__lhu .= authlib8_4_8::_bns("AddPasswords(\"" . $__lhv . "\",\"" . $__lhx . "\", \"" . $__lhw . "\",\"" . $__lhz . "\")"); return $__lhu; } sub _cqy { my ($__lic, $__lid) = @_; my $__lib = ""; my ($__lie, $__lif) = _crp($__lic, 1); $__lib .= $__lie; if($ssiwebadmin8_4_8::_ctq) { $__lib .= _crq($__lic, $__lid, 1); } else { if ($__lif) { $__lib .= "<!-- Auto Status: Error: " . $__lif->{'_cbb'} . ". \n\nSystem Error: " . $__lif->{'_cbc'} . " -->"; } else { $__lib .= "<!-- Auto Status: Success: -->"; } } return $__lib; } sub _cqz { my($__lih, $__lii, $__lij, $__lik) = @_; my $__lig = ""; $__lig .= "<div class=\"setup_item\">\n"; $__lig .= "<div class=\"setup_header\"><table><tr>"; $__lig .= "<td><img src=\"" . $authlib8_4_8::_bwv{'_blf'} . "system/"; if ($__lii) { $__lig .= "green_check.gif"; } else { $__lig .= "red_x.gif"; } $__lig .= "\"></td>"; $__lig .= "<td class=\"setup_title\">"; if (!$__lii) { $__lig .= "<span class=\"setup_failed\">FAILED</span>\n"; } $__lig .= $__lih . "</td>"; $__lig .= "</tr></table></div>"; $__lig .= "<div class=\"setup_body\">\n"; $__lij =~ s/\n/<br>/gi; $__lig .= "<div class=\"setup_simple_error\">" . $__lij . "</div>"; if ($__lik) { $__lig .= "<div class=\"setup_system_error\"><b>System Error:</b> " . $__lik . "</div>"; } if ($__lij || $__lik) { $__lig .= "<!-- Auto Status: Error: " . $__lij . ". \n\nSystem Error: " . $__lik . " -->"; } $__lig .= "</div>"; $__lig .= "</div>"; return $__lig; } sub _cra { my($__lil, $__lim) = @_; return "<tr><td class=\"setup_system_info_title\">" . $__lil . ":</td><td class=\"setup_system_info_value\">" . $__lim . "</td></tr>"; } sub _crb { my($__lix) = @_; my %__lin = (); my $__lio = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_questionnaire.cgi"; my ($__liy, $__liz) = authlib8_4_8::_bon($__lio, "read", 0, 0); if ($__liz) { return ("", "", "", {}, $__liz); } binmode $__liy; seek $__liy, 0, 0; my ($__lja, $__ljb, $__ljc, $__ljd, $__liz) = authlib8_4_8::_bov($__liy, 0); if (!$__liz && $__lix) { my ($__lje, $__ljf, $__ljg, $__ljh, $__lji, $__ljj, $__ljk) = authlib8_4_8::_bow($__liy); if ($__ljg) { my $__lip = authlib8_4_8::_bpt($__liy, $__lio, 1); seek $__liy, $__ljg, 0; my $__liq = authlib8_4_8::_bpt($__liy, $__lio, 1); my $__lir = $__liq->{'_gw'}; my $__lis = ""; my $__lit = 0; my $__liu = 0; my $__liv = 0; my $__liw = 0; foreach $__lis (@{$__lir}) { $__lit = $authlib8_4_8::_bwq{$__lis}; seek $__liy, $__lit->{'_w'}, 0; $__liu = authlib8_4_8::_bpt($__liy, $__lio, 1); $__liv = $__liu->{'_bce'}; foreach $__liw (@{$__liv}) { $__lin{$__lis . "_" . $__liw->{'_bcm'}} = $__liw->{'_bck'}; } } } } close $__liy; return ($__lja, $__ljb, $__ljc, \%__lin, $__liz); } sub _crc { my ($__lkc, $__lkd, $__lke, $__lkf, $__lkg) = @_; my $__ljl = $authlib8_4_8::_bwn->{'_caw'}; my $__ljm = 5; my $__ljn = ""; my $__ljo = ""; my $__ljp = ""; my $__ljq = 0; my $__ljr = ""; my $__ljs = ""; my $__ljt = ""; my $__lju = 0; my $__ljv = 0; my $__ljw = 0; my $__ljx = ""; my ($__lkh, $__lki, $__lkj, $__lkk) = _cre($__lkd, 1); if ($__lkk) { return (0, $__lkk->{'_cbb'}, $__lkk->{'_cbc'}, 0); } ($__lju, $__lkk, $__ljv, $__ljw, $__ljx) = _crf($__lkc, $__lke, 1); if (!$__lju) { return (0, $__lkk->{'_cbb'}, $__lkk->{'_cbc'}, 0); } if ($__lkc) { _cpp(0, $__lkg); eval { $__ljp = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_info` (`data_version` INT, `layout_build` TEXT, `password_build` TEXT, `study_path` TEXT, `num_data_tables` INT, `remove_num` INT, `survey_paused` TINYINT(1), `close_survey` TINYINT(1), `close_survey_msg` TEXT) " . $authlib8_4_8::_bwn->{'_cax'}; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create info table. $__ljp", $@, 0); } eval { $__ljp = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_clists` (`sys_RespNum` INT NOT NULL, `list_name` TEXT NOT NULL, `value` TEXT NOT NULL)" . $authlib8_4_8::_bwn->{'_cax'}; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create clists table.", $@, 0); } eval { $__ljp = "CREATE INDEX `" . $authlib8_4_8::_bzb . "_clists_index` ON `" . $authlib8_4_8::_bzb . "_clists` (`sys_RespNum`)"; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create clists index.", $@, 0); } eval { $__ljp = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_history` (`sys_RespNum` INT NOT NULL, `hop` INT NOT NULL, `ipaddress` VARCHAR(50) NOT NULL, `user_agent` TEXT NOT NULL, `timestamp` INT NOT NULL, `qst_version` VARCHAR(256) NOT NULL, `quest_name` VARCHAR(64) NOT NULL, `quest_version` VARCHAR(128) NOT NULL, `page_num` INT NOT NULL, `limbo` TINYINT(1) NOT NULL, `data` TEXT NOT NULL)" . $authlib8_4_8::_bwn->{'_cax'}; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create history table.", $@, 0); } eval { $__ljp = "CREATE INDEX `" . $authlib8_4_8::_bzb . "_history_index` ON `" . $authlib8_4_8::_bzb . "_history` (`sys_RespNum`, `hop`, `quest_name`, `quest_version`, `page_num`, `limbo`)"; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create history index.", $@, 0); } eval { $__ljp = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_design_log` (`sys_RespNum` INT NOT NULL, `ipaddress` VARCHAR(50) NOT NULL, `user_agent` TEXT NOT NULL, `timestamp` INT NOT NULL, `qst_version` VARCHAR(256) NOT NULL, `exercisename` VARCHAR(32) NOT NULL, `input` TEXT NOT NULL, `message` TEXT NOT NULL)" . $authlib8_4_8::_bwn->{'_cax'}; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create design log table.", $@, 0); } eval { $__ljp = "INSERT INTO `" . $authlib8_4_8::_bzb . "_info` (`data_version`, `layout_build`, `study_path`) VALUES (" . $__ljm . "," . $authlib8_4_8::_byw->quote($__lkj) . ", ?)"; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 0)); $__ljq->execute(authlib8_4_8::_bms($authlib8_4_8::_bwv{'_cba'})); }; if ($@) { return (0, "Database error. Cannot insert into info table.", $@, 0); } if (!$__lkg || $authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { eval { my $__ljy = $authlib8_4_8::_bzb . "_admin_log"; $__ljp = "`" . $__ljy . "`(`date` TEXT NOT NULL, `action` TEXT NOT NULL, `info` TEXT, `ip_address` TEXT, `user_agent` TEXT, `time_stamp` INT)" . $authlib8_4_8::_bwn->{'_cax'}; if($authlib8_4_8::_bwn->{'_bgu'} eq "odbc") { $__ljp = "IF OBJECT_ID('" . $__ljy . "') IS NULL CREATE TABLE " . $__ljp; } elsif ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { $__ljp = "CREATE TABLE " . $__ljp; } else { $__ljp = "CREATE TABLE IF NOT EXISTS " . $__ljp; } $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create admin_log table.", $@, 0); } } } eval { $__ljp = authlib8_4_8::_bmw($authlib8_4_8::_bzb . "_map"); my $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 0)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot delete map table.", $@, 0); } eval { $__ljp = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_map` (`table` INT PRIMARY KEY, `fields` LONGTEXT) " . $authlib8_4_8::_bwn->{'_cax'}; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create map table.", $@, 0); } eval { $__ljp = authlib8_4_8::_bmw($authlib8_4_8::_bzb . "_url_restore"); my $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 0)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot delete url_restore table.", $@, 0); } eval { $__ljp = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_url_restore` (`id` INT PRIMARY KEY"; $__ljp .= " " . $authlib8_4_8::_bwn->{'_cay'}; $__ljp .= ", `timestamp` INT, `fields` TEXT) " . $authlib8_4_8::_bwn->{'_cax'}; my $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 1)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot create data table.", $@); } my $__ljz = 0; if($__lkc) { ($__ljz, $__ljr, $__ljs) = _crl($__lkh, $__lki, $__ljl, 0); } else { ($__ljz, $__ljr, $__ljs) = _crm($__lkh, $__lki, $__ljl); } if ($__ljz == 0 && $__ljr) { return (0, $__ljr, $__ljs, 0); } eval { $__ljp = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `layout_build` = " . $authlib8_4_8::_byw->quote($__lkj) . ", `num_data_tables`=" . $__ljz; $__ljq = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__ljp, 0)); $__ljq->execute(); }; if ($@) { return (0, "Database error. Cannot update info table.", $@, 0); } ($__lju, $__lkk) = _crd($__lkh, $__lki); my $__lka = 0; my $__lkb = 0; if ($__ljv) { ($__lju, $__lkk, $__lka) = _crg($__ljw, $__ljx, 0); $__lkb = -s $__ljw; close $__ljw; if (!$__lju) { return (0, $__lkk->{'_cbb'}, $__lkk->{'_cbc'}, 0); } } $authlib8_4_8::_byw->commit(); return (1, "", "", $__lka, $__lkb); } sub _crd { my($__lkv, $__lkw) = @_; my $__lkl = 0; my $__lkm = {}; my $__lkn = 0; my $__lko = ""; my $__lkp = 0; my %__lkq = (); $__lkq{1} .= "sys_RespNum,"; foreach $__lkn (@{$__lkv}) { $__lko = $__lkn->[0]; $__lkp = $__lkw->{$__lko}->[1]; $__lkq{$__lkp} .= $__lko . ","; } my $__lkr = ""; my $__lks = 0; my @__lkt = sort keys %__lkq; my $__lku = ""; foreach $__lkp (@__lkt) { $__lku = $__lkq{$__lkp}; chop($__lku); eval { $__lkr = "INSERT INTO `" . $authlib8_4_8::_bzb . "_map` (`table`, `fields`) VALUES (" . $__lkp . "," . $authlib8_4_8::_byw->quote($__lku) . ")"; $__lks = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lkr, 0)); $__lks->execute(); $authlib8_4_8::_byw->commit(); }; if ($@) { $__lkl = 1; $__lkm->{'_cbb'} = "Database error. Cannot update info table."; $__lkm->{'_cbc'} = $@; last; } } return ($__lkl, $__lkm); } sub _cre { my($__lle, $__llf) = @_; my $__lkx = ""; my $__lky = ""; my $__lkz = ""; my $__lla = ""; my @__llb = (); my %__llc = (); my $__lld = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_layout.cgi"; my ($__llg, $__llh) = authlib8_4_8::_bon($__lld, "read", 0, 0); if (!$__llh) { $__lkx = <$__llg>; $__lla = authlib8_4_8::_bpy($__lkx); if ($__lla ne $__lle) { close $__llg; $__llh = {}; $__llh->{'_cbb'} = "There is a mismatch between the setup questionnaire file and the layout file in the db_setup folder. Try re-uploading both files."; } else { while (!(eof $__llg)) { $__lkx = <$__llg>; if($__lkx =~ m/^\s*(.*?)\s*,\s*(.*?)\s*$/) { $__lky = $1; $__lkz = $2; $__lkz = authlib8_4_8::_bmz($__lkz); if ($__llf && $__lky eq "sys_RespNum") { } else { _crk($__lky, $__lkz, \@__llb, \%__llc); } if ($__lky eq "sys_RespNum") { _crk("sys_CheckSum", authlib8_4_8::_bmz("INT"), \@__llb, \%__llc); } } } } } close $__llg; return (\@__llb, \%__llc, $__lla, $__llh); } sub _crf { my($__llo, $__llp, $__llq) = @_; my $__lli = {}; my $__llj = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_pwds.cgi"; my $__llk = 0; my $__lll = ""; my $__llm = 0; if (-e $__llj) { $__llm = 1; ($__llk, $__lli) = authlib8_4_8::_bon($__llj, "read", 0, 0); if ($__lli) { return (0, $__lli, $__llm, $__llk); } my $__lln = <$__llk>; $__lll = authlib8_4_8::_bpy($__lln); if($__llq && !$__llo && ($__lll eq $authlib8_4_8::_bze->{"password_build"})) { close $__llk; $__llm = 0; } if ($__llm && ($__lll ne $__llp)) { close $__llk; $__lli = {}; $__lli->{'_cbb'} = "There is a mismatch between the setup questionnaire file and the password file in the db_setup folder." . " Try re-uploading both files. If you have not specified predefined passwords for this study" . " remove the password file " . $__llj . " from the server."; return (0, $__lli, $__llm, $__llk); } } return (1, $__lli, $__llm, $__llk, $__lll); } sub _crg { my($__lmj, $__lmk, $__lml) = @_; my $__llr = <$__lmj>; my $__lls = 0; my $__llt = authlib8_4_8::_bpy($__llr); my @__llu = split(",", $__llt); my $__llv = ""; my $__llw = ""; my $__llx = ""; my @__lly = (); my $__llz = @__llu; my $__lma = 1; if ($__lml) { $__lma = 0; } foreach $__llx (@__llu) { if ($__llx =~ m/^"(.*?)"$/) { $__llx = $1; } push @__lly, "`" . $__llx . "`"; $__llw .= "`" . $__llx . "`"; if ($__llx eq "max_respondents") { $__llw .= " INT"; } else { $__llw .= " TEXT"; } $__llw .= ","; } chop($__llw); if ($__lma) { eval { $__llv = authlib8_4_8::_bmw($authlib8_4_8::_bzb . "_passwords"); my $__lmb = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__llv, 0)); $__lmb->execute(); }; if ($@) { $__lls = {}; $__lls->{'_cbb'} = "Database error. Cannot delete passwords table."; $__lls->{'_cbc'} = $@; return (0, $__lls, 0); } eval { $__llv = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_passwords` (" . $__llw . ") " . $authlib8_4_8::_bwn->{'_cax'}; my $__lmb = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__llv, 1)); $__lmb->execute(); }; if ($@) { $__lls = {}; $__lls->{'_cbb'} = "Database error. Cannot create password table."; $__lls->{'_cbc'} = $@; return (0, $__lls, 0); } } my @__lmc = ("?") x $__llz; $__llv = "INSERT INTO `" . $authlib8_4_8::_bzb . "_passwords` (" . join(",", @__lly) . ") VALUES (" . join(",", @__lmc) . ")"; my $__lmd = 0; if ($__lml) { seek $__lmj, $__lml, 0; $__lmd = $__lml; } else { $__lmd = tell $__lmj; } my $__lme = 0; my $__lmf = 0; eval { my $__lmb = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__llv, 0)); my @__lmg = (); my @__lmh = (); my $__lmi = ""; while (!eof($__lmj) && $__lmf < 500000) { @__lmh = (); $__llr = <$__lmj>; $__llr = authlib8_4_8::_bpy($__llr); if ($__llr) { @__lmg = split(/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/o, $__llr); foreach $__lmi (@__lmg) { if ($__lmi =~ m/^"(.*?)"$/) { $__lmi = $1; } $__lmi =~ s/""/"/g; push @__lmh, authlib8_4_8::_bms($__lmi); } $__lmb->execute(@__lmh); } $__lme = tell $__lmj; $__lmf = $__lme - $__lmd; } if (eof($__lmj)) { $__lme = 0; } }; if ($@) { $__lls = {}; $__lls->{'_cbb'} = "Database error. Cannot insert password data."; $__lls->{'_cbc'} = $@; return (0, $__lls, 0); } if ($__lme == 0) { eval { $__llv = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `password_build`=" . $authlib8_4_8::_byw->quote($__lmk); my $__lmb = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__llv, 0)); $__lmb->execute(); }; if ($@) { $__lls = {}; $__lls->{'_cbb'} = "Database error. Cannot update password_build in info table."; $__lls->{'_cbc'} = $@; return (0, $__lls, 0); } } return (1, $__lls, $__lme); } sub _crh { my $__lmm = ""; my $__lmn = ""; if (exists $authlib8_4_8::_bzi{"report_name"}) { $__lmm = $authlib8_4_8::_bzi{"report_name"}; } $__lmm = authlib8_4_8::_bpy($__lmm); if ($__lmm) { my $__lmo = ""; my $__lmp = 0; my $__lmq = $authlib8_4_8::_bzb . "_saved_reports"; my $__lmr = 1; eval { if ($authlib8_4_8::_bwn->{'_bgu'} eq "odbc") { $__lmo = "SELECT OBJECT_ID('" . $__lmq . "')"; my $__lms = $authlib8_4_8::_byw->selectrow_arrayref(authlib8_4_8::_bmy($__lmo, 0)); if (!$__lms->[0]) { $__lmr = 0; } } if($__lmr) { $__lmo = "SELECT `name` FROM `" . $__lmq . "` WHERE `name` = " . $authlib8_4_8::_byw->quote($__lmm); my $__lmt = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bms(authlib8_4_8::_bmy($__lmo, 0))); my $__lmu = 0; foreach $__lmu (@{$__lmt}) { if (uc(authlib8_4_8::_bmt($__lmu->[0])) eq uc($__lmm)) { $__lmn = "This Report Name already exists."; last; } } } }; if ($@ || $__lmr == 0) { eval { $__lmo = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_saved_reports` (`id` INT PRIMARY KEY " . $authlib8_4_8::_bwn->{'_cay'} . ", `name` TEXT, `settings` TEXT) " . $authlib8_4_8::_bwn->{'_cax'}; $__lmp = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lmo, 1)); $__lmp->execute(); }; if ($@) { $__lmn = "Database error. Cannot create saved reports table. " . $@; authlib8_4_8::_bse(0, $__lmn); } } if (!$__lmn) { if (!$__lmn) { my $__lmv = ""; if (exists $authlib8_4_8::_bzi{"hid_report_settings_newreport"}) { $__lmv = $authlib8_4_8::_bzi{"hid_report_settings_newreport"}; } if (exists $authlib8_4_8::_bzi{"hid_report_chart_settings"}) { my $__lmw = $authlib8_4_8::_bzi{"hid_report_chart_settings"}; if ($__lmw) { if ($__lmv =~ m/(.*?)\}$/s) { $__lmv = $1 . $__lmw . "}"; } } } eval { $__lmo = "INSERT INTO `" . $authlib8_4_8::_bzb . "_saved_reports` (`name`, `settings`) VALUES (?,?)"; $__lmp = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lmo, 0)); $__lmp->execute(authlib8_4_8::_bms($__lmm), authlib8_4_8::_bms($__lmv)); }; if ($@) { $__lmn = "Database error. Cannot insert into saved reports table. " . $@; authlib8_4_8::_bse(0, $__lmn); } } } } else { $__lmn = "Please specify a Report Name."; } my $__lmx = "{"; if ($__lmn) { $__lmx .= "\"error\": \"" . $__lmn . "\""; } $__lmx .= "}"; print $__lmx; $authlib8_4_8::_byw->commit(); authlib8_4_8::_bso(); } sub _cri { if(exists $authlib8_4_8::_bzi{"hid_report_id"}) { my $__lmy = $authlib8_4_8::_bzi{"hid_report_id"}; my $__lmz = ""; if (exists $authlib8_4_8::_bzi{"report_name"}) { $__lmz = $authlib8_4_8::_bzi{"report_name"}; } my $__lna = ""; my @__lnb = (); my @__lnc = (); foreach $__lna (sort keys %authlib8_4_8::_bzi) { if ($__lna =~ m/^\*ReportRows_/i) { push @__lnb, $__lna; } elsif($__lna =~ m/^\*ReportCols_/i) { push @__lnc, $__lna; } } my ($__lng, $__lnh) = _cnu({}); my $__lnd = _cpv(\@__lnb, \@__lnc, $__lnh, 1); eval { my $__lne = "UPDATE `" . $authlib8_4_8::_bzb . "_saved_reports` SET `name` = ?, `settings` = ? WHERE `id` = " . $__lmy; my $__lnf = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lne, 0)); $__lnf->execute(authlib8_4_8::_bms($__lmz), authlib8_4_8::_bms($__lnd)); $authlib8_4_8::_byw->commit(); }; if ($@) { authlib8_4_8::_bqa(247, "Database error.", "Cannot update saved reports table.", $@); } $authlib8_4_8::_bzi{"*SavedReport_" . $__lmy} = 1; } } sub _crj { my $__lni = ""; my $__lnj = 0; my $__lnk = 0; if (exists $authlib8_4_8::_bzi{"hid_passwords_auto_apply"}) { $__lnk = 1; } my ($__lnq, $__lnr, $__lns, $__lnt, $__lnu) = _crb(1); if ($__lnu) { $__lnj = 1; } else { my $__lnl = 0; my $__lnm = 0; my $__lnn = ""; my $__lno = 0; ($__lno, $__lnu, $__lnl, $__lnm, $__lnn) = _crf(0, $__lns, 0); if ($__lno) { if (exists $authlib8_4_8::_bzi{"hid_password_offset"}) { my $__lnp = $authlib8_4_8::_bzi{"hid_password_offset"}; ($__lno, $__lnu, $__lnp) = _crg($__lnm, $__lnn, $__lnp); if ($__lno) { if ($__lnk) { if ($__lnp) { $__lni .= "<!-- Auto Status: Add_Passwords: " . $__lnp . " -->"; } else { $__lni .= "<!-- Auto Status: Success: -->"; } } else { $__lni .= "1," . $__lnp; } } else { $__lnj = 1; } } close $__lnm; } else { $__lnj = 1; } } if($__lnj) { if ($__lnk) { $__lni .= "<!-- Auto Status: Error: "; } else { $__lni = "0,"; } if (exists $__lnu->{'_cbb'}) { $__lni .= $__lnu->{'_cbb'}; } if (exists $__lnu->{'_cbc'}) { $__lni .= "\n\nSystem Error: " . $__lnu->{'_cbc'}; } if ($__lnk) { $__lni .= "-->"; } } print $__lni; authlib8_4_8::_bso(); } sub _crk { my($__lnv, $__lnw, $__lnx, $__lny) = @_; push @{$__lnx}, [$__lnv, $__lnw]; $__lny->{$__lnv} = [$__lnw, 0]; } sub _crl { my($__lom, $__lon, $__loo, $__lop) = @_; my $__lnz = 0; my $__loa = ""; my $__lob = ""; my $__loc = @{$__lom}; my $__lod = $__loc / $__loo; if ($__lod > int($__lod)) { $__lod = int($__lod) + 1; } my $__loe = 0; my $__lof = 0; my $__log = 0; my $__loh = 0; my $__lnz = 0; my $__loi = ""; my $__loj = ""; my $__lok = 0; for ($__loe = 1; $__loe <= $__lod; $__loe++) { $__lob = ""; $__lok = $__lop + $__loe; for ($__lof = 0; $__lof < $__loo; $__lof++) { $__loh = $__lof + $__log; if ($__loh < $__loc) { $__lnz = $__lom->[$__lof + $__log]; $__loi = $__lnz->[0]; $__loj = $__lnz->[1]; $__lob .= "`" . $__loi . "` " . $__loj; if ($__lnz->[1] eq "text" && $authlib8_4_8::_bwn->{'_bgu'} eq "mysql") { $__lob .= " CHARACTER SET utf8"; } $__lob .= ","; $__lon->{$__loi}->[1] = $__lok; } else { last; } } $__log += $__loo; if ($__lob) { chop($__lob); eval { $__loa = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_data" . $__lok . "` (`sys_RespNum` INT PRIMARY KEY"; if ($__lok == 1) { $__loa .= " " . $authlib8_4_8::_bwn->{'_cay'}; } $__loa .= "," . $__lob . ") " . $authlib8_4_8::_bwn->{'_cax'}; my $__lol = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__loa, 1)); $__lol->execute(); }; if ($@) { return (0, "Database error. Cannot create data table.", $@); } } } return ($__lod, "", ""); } sub _crm { my($__lpy, $__lpz, $__lqa) = @_; my $__loq = 0; my $__lor = $authlib8_4_8::_bze->{"num_data_tables"}; my $__los = 0; my $__lot = 0; my $__lou = $authlib8_4_8::_bze->{"remove_num"}; my $__lov = 0; my %__low = (); my $__lox = 0; my $__loy = ""; my $__loz = ""; my $__lpa = ""; my $__lpb = 0; my $__lpc = 0; my $__lpd = ""; my $__lpe = ""; my $__lpf = 0; my $__lpg = ""; if ($__lou == 0) { $__lou = 1; } for($__los = 1; $__los <= $__lor; $__los++) { $__lpg = $authlib8_4_8::_bzb . "_data" . $__los; eval { ($__lpa, $__lpb, $__lpc, $__lpd, $__lpe) = authlib8_4_8::_bmx($__lpg); $__loq = $authlib8_4_8::_byw->selectall_hashref(authlib8_4_8::_bmy($__lpa, 0), $__lpd); }; if ($@) { return (0, "Database error. Cannot get table description.", $@); } my $__lph = ""; my $__lpi = ""; my $__lpj = ""; my %__lpk = (); foreach $__lpi (keys %{$__loq}) { if (exists $__lpz->{$__lpi}) { $__loz = $__lpz->{$__lpi}->[0]; $__loz =~ s/\(.*?\)//g; $__lph = $__loq->{$__lpi}->{$__lpe}; $__lph =~ s/\(.*?\)//g; if (uc($__loz) ne uc($__lph)) { $__lpk{$__lpi} = 1; } else { $__low{$__lpi} = 1; $__lpz->{$__lpi}->[1] = $__los; } } else { $__lpk{$__lpi} = 1; } } my $__lpl = ""; my $__lpm = ""; my %__lpn = (); my $__lpo = ""; $__lpf = 0; foreach $__lpl (keys %__lpk) { if($__lpl ne "sys_RespNum" && $__lpl !~ m/^_OLD/i) { $__lpf = 1; $__lpo = "_OLD" . $__lou . "_" . $__lpl; $__lpn{$__lpl} = [$__lpo, $__loq->{$__lpl}->{$__lpe}]; $__lou++; } } if ($__lpf) { my ($__lqb, $__lqc, $__lqd) = _crn(\%__lpn, $__lpg); if (!$__lqb) { return ($__lqb, $__lqc, $__lqd); } eval { $__lpa = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `remove_num`=" . $__lou; $__lov = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lpa, 0)); $__lov->execute(); }; if ($@) { return (0, "Database error. Cannot update info table.", $@); } } } my $__lpp = 0; my $__lpq = $authlib8_4_8::_bze->{"num_data_tables"}; $__loq = 0; eval { ($__lpa, $__lpb, $__lpc, $__lpd, $__lpe) = authlib8_4_8::_bmx($authlib8_4_8::_bzb . "_data" . $__lpq); $__loq = $authlib8_4_8::_byw->selectall_hashref(authlib8_4_8::_bmy($__lpa, 0), $__lpd); }; if ($@) { return (0, "Database error. Cannot get table description.", $@); } my $__lpr = keys %{$__loq}; $__lpp = $__lqa - $__lpr; my @__lps = (); my $__lpt = ""; my @__lpu = (); $__lpf = 0; foreach $__lox (@{$__lpy}) { $__loy = $__lox->[0]; $__loz = $__lox->[1]; if(!exists $__low{$__loy}) { if ($__lpp > 0) { if($authlib8_4_8::_bwn->{'_bgu'} eq "odbc" && $__lpf) { } else { $__lpt .= "ADD "; } $__lpt .= "`" . $__loy . "` " . $__loz; if ($__loz eq "text" && $authlib8_4_8::_bwn->{'_bgu'} eq "mysql") { $__lpt .= " CHARACTER SET utf8"; } $__lpt .= ","; push @__lpu, "`" . $__loy . "` " . $__loz; $__lpz->{$__loy}->[1] = $__lpq; $__lpp--; $__lpf = 1; } else { push @__lps, $__lox; } } } if ($__lpf) { if ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { if (@__lpu) { my ($__lqb, $__lqc, $__lqd) = _cro($authlib8_4_8::_bzb . "_data" . $__lpq, {}, \@__lpu); if (!$__lqb) { return ($__lqb, $__lqc, $__lqd); } } } else { chop($__lpt); eval { $__lpa = "ALTER TABLE `" . $authlib8_4_8::_bzb . "_data" . $__lpq . "` " . $__lpt; $__lov = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lpa, 0)); $__lov->execute(); }; if ($@) { return(0, "Database error. Cannot alter table adding new columns.", $@); } } } if (@__lps) { my $__lpv = 0; my ($__lqe, $__lqc, $__lqd) = _crl(\@__lps, $__lpz, $__lqa, $__lor); if ($__lqe == 0 && $__lqc) { return(0, $__lqc, $__lqd); } eval { $__lpa = "SELECT `sys_RespNum` FROM `" . $authlib8_4_8::_bzb . "_data1`"; $__lpv = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__lpa, 0)); }; if ($@) { return(0, "Database error. Cannot read all rows in data1 table.", $@); } my $__lpw = $__lor; $__lor += $__lqe; my $__lpx = @{$__lpv}; if ($__lpx) { for ($__los = $__lpw + 1; $__los <= $__lor; $__los++) { for ($__lot = 0; $__lot < $__lpx; $__lot++) { eval { $__lpa = "INSERT INTO `" . $authlib8_4_8::_bzb . "_data" . $__los . "` (`sys_RespNum`) VALUES (" . $__lpv->[$__lot][0] . ")"; $__lov = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lpa, 0)); $__lov->execute(); }; if ($@) { return(0, "Database error. Cannot insert data row into data table #" . $__los . ".", $@); } } } } } $authlib8_4_8::_byw->commit(); return ($__lor, "", ""); } sub _crn { my($__lqm, $__lqn) = @_; my $__lqf = 1; my $__lqg = ""; my $__lqh = ""; my $__lqi = ""; my $__lqj = ""; my $__lqk = 0; if ($authlib8_4_8::_bwn->{'_bgu'} eq "sqlite") { ($__lqf, $__lqg, $__lqh) = _cro($__lqn, $__lqm, 0); } elsif ($authlib8_4_8::_bwn->{'_bgu'} eq "odbc") { foreach $__lqj (sort keys(%{$__lqm})) { eval { $__lqi = "sp_rename '" . $__lqn . ".[" . $__lqj . "]', '" . $__lqm->{$__lqj}->[0] . "'"; $__lqk = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lqi, 0)); $__lqk->execute(); }; if ($@) { $__lqf = 0; $__lqg = "Database error. Cannot alter table removing old columns."; $__lqh = $@; last; } } } else { my @__lql = (); foreach $__lqj (sort keys(%{$__lqm})) { push @__lql, "CHANGE `" . $__lqj . "` `" . $__lqm->{$__lqj}->[0] . "` " . $__lqm->{$__lqj}->[1]; } eval { $__lqi = "ALTER TABLE `" . $__lqn . "` " . join(",", @__lql); $__lqk = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lqi, 0)); $__lqk->execute(); }; if ($@) { $__lqf = 0; $__lqg = "Database error. Cannot alter table removing old columns."; $__lqh = $@; } } return ($__lqf, $__lqg, $__lqh); } sub _cro { my ($__lrc, $__lrd, $__lre) = @_; my $__lqo = time(); my $__lqp = "temp" . $__lqo . "_" . $__lrc; my $__lqq = 0; my $__lqr = ""; my $__lqs = 0; eval { $__lqr = "PRAGMA table_info(`" . $__lrc . "`)"; $__lqq = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__lqr, 0)); }; if ($@) { authlib8_4_8::_bqa(212, "Database error.", "Database error. Cannot get table description.", $@); } eval { $__lqr = "ALTER TABLE `" . $__lrc . "` RENAME TO `" . $__lqp . "`"; $__lqs = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lqr, 0)); $__lqs->execute(); }; if ($@) { return(0, "Database error. Cannot alter SQLite table.", $@); } my @__lqt = (); my $__lqu = 0; my $__lqv = ""; my $__lqw = ""; my @__lqx = (); my @__lqy = (); my @__lqz = (); my $__lra = 0; foreach $__lqu (@{$__lqq}) { $__lqv = $__lqu->[1]; $__lqw = $__lqu->[2]; $__lra = $__lqu->[5]; push @__lqz, "`" . $__lqv . "`"; if (exists $__lrd->{$__lqv}) { $__lqv = $__lrd->{$__lqv}->[0]; } push @__lqx, "`" . $__lqv . "`"; if ($__lra) { $__lqw .= " PRIMARY KEY " . $authlib8_4_8::_bwn->{'_cay'}; } push @__lqy, "`" . $__lqv . "` " . $__lqw; } eval { if ($__lre) { my $__lrb = ""; foreach $__lrb (@{$__lre}) { push @__lqy, $__lrb; } } $__lqr = "CREATE TABLE `" . $__lrc . "` (" . join(",", @__lqy) . ")"; $__lqs = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lqr, 1)); $__lqs->execute(); }; if ($@) { return (0, "Database error. Cannot create new table for SQLite in alter table function.", $@); } eval { $__lqr = "INSERT INTO `" . $__lrc . "` (" . join(",", @__lqx) . ")"; $__lqr .= "SELECT " . join(",", @__lqz) . " FROM `" . $__lqp . "`"; $__lqs = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lqr, 0)); $__lqs->execute(); }; if ($@) { return (0, "Database error. Cannot insert data for SQLite in alter table function.", $@); } eval { $__lqr = authlib8_4_8::_bmw($__lqp); $__lqs = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lqr, 0)); $__lqs->execute(); }; if ($@) { return (0, "Database error. Cannot delete temporary table for SQLite in alter table function.", $@); } $authlib8_4_8::_byw->commit(); return (1, "", ""); } sub _crp { my ($__lrv, $__lrw) = @_; my $__lrf = ""; my $__lrg = 0; my $__lrh = 0; my $__lri = 0; my $__lrj = ""; my $__lrk = ""; my $__lrl = ""; my $__lrm = 0; my $__lrn = 0; my $__lro = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_questionnaire.cgi"; my $__lrp = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_layout.cgi"; my $__lrq = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_pwds.cgi"; if (-e $__lro || -e $__lrp || -e $__lrq) { ($__lrj, $__lrk, $__lrl, $__lrm, $__lrn) = _crb(0); if ($__lrn) { $__lrf .= _csa($__lrn->{'_cbb'}, $__lrn->{'_cbc'}); } else { if ($__lrv ne $__lrj) { $__lrg = 1; } my $__lrr = $authlib8_4_8::_bze->{"layout_build"}; if ($__lrr ne $__lrk) { $__lrh = 1; } if (-e $__lrq) { my ($__lrx, $__lrn) = authlib8_4_8::_bon($__lrq, "read", 0, 1); my $__lrs = <$__lrx>; $__lrs = authlib8_4_8::_bpy($__lrs); close $__lrx; my $__lrt = $authlib8_4_8::_bze->{"password_build"}; if ($__lrt ne $__lrs) { $__lri = 1; } } if ($__lrg || $__lrh || $__lri) { $ssiwebadmin8_4_8::_ctq = 1; my $__lru = $__lrg . "," . $__lrh . "," . $__lri; if ($__lrw) { $authlib8_4_8::_bzi{"hid_apply_changes"} = $__lru; } else { $__lrf .= "<input type=\"hidden\" name=\"hid_apply_changes\" value=\"" . $__lru . "\">\n"; $__lrf .= "<div class=\"update_box\">\n"; $__lrf .= "<div class=\"update_header\">Apply changes to update survey?</div>"; $__lrf .= "<div class=\"update_body\">"; $__lrf .= "Changes to your survey have been uploaded and are ready to be applied."; $__lrf .= " To commit these changes to your live survey click the button below."; $__lrf .= "<div style=\"margin-top: 20px; margin-bottom: 15px; text-align: center;\"><span id=\"apply_changes\" class=\"link\">\n"; $__lrf .= "Apply Changes</span></div>"; $__lrf .= authlib8_4_8::_bns(_con("apply_changes")); $__lrf .= "</div></div>"; } } } } return ($__lrf, $__lrn); } sub _crq { my ($__lsc, $__lsd, $__lsr) = @_; my $__lry = ""; my $__lrz = 0; my $__lsa = ""; my $__lsb = ""; my $__lsc = ""; my $__lsd = ""; my $__lse = 0; my $__lsf = 0; my $__lsg = 0; my $__lsh = 0; my $__lsi = ""; my $__lsj = 0; if (exists $authlib8_4_8::_bzi{"hid_apply_changes"}) { ($__lse, $__lsf, $__lsg) = split(",", $authlib8_4_8::_bzi{"hid_apply_changes"}); if ($__lsf || $__lsg) { $__lse = 1; } } if ($__lse || $__lsf || $__lsg) { ($__lrz, $__lsa, $__lsb) = _crr(1); my $__lsk = ""; my $__lsl = ""; my $__lsm = ""; my $__lsn = 0; my $__lso = 0; my $__lsp = 0; my $__lsq = 0; if (!$__lrz) { ($__lsk, $__lsl, $__lsm, $__lsn, $__lso) = _crb(1); if ($__lso) { $__lrz = 1; $__lsa = $__lso->{'_cbb'}; $__lsb = $__lso->{'_cbc'}; } } if (!$__lrz && ($__lsf || $__lsg)) { ($__lsh, $__lsa, $__lsb, $__lsp, $__lsq) = _crc(0, $__lsl, $__lsm, $__lsn, 0); if (!$__lsh) { $__lrz = 1; } } if(!$__lrz && $__lse) { ($__lsh, $__lsa, $__lsb) = _crt($__lsn); if (!$__lsh) { $__lrz = 1; } } ($__lrz, $__lsa, $__lsb) = _crr(0); if ($__lrz) { $__lry .= "<!-- Auto Status: Error: " . $__lsa . ". \n\nSystem Error: " . $__lsb . " -->"; $__lry .= "<div class=\"error_msg\" style=\"margin-top: 10px;\">Error. Changes were NOT applied.</div>"; if ($__lsa) { $__lry .= "<div class=\"setup_simple_error\">" . $__lsa . "</div>"; } if ($__lsb) { $__lry .= "<div class=\"setup_system_error\">" . $__lsb . "</div>"; } $__lry .= "<div style=\"margin-top: 30px;\">Please fix the error and try again.</div>"; $__lry .= "<input type=\"hidden\" name=\"hid_apply_changes\" value=\"" . $authlib8_4_8::_bzi{"hid_apply_changes"} . "\">\n"; $__lry .= "<div style=\"margin-top: 20px; margin-bottom: 15px; text-align: center;\"><span id=\"apply_changes\" class=\"link\">\n"; $__lry .= "Apply Changes</span></div>"; $__lry .= authlib8_4_8::_bns(_con("apply_changes")); } else { if ($__lsr) { if ($__lsp) { $__lry .= "<!-- Auto Status: Add_Passwords: " . $__lsp . " -->"; } else { $__lry .= "<!-- Auto Status: Success: -->"; } } else { if ($__lsp) { $__lry .= _cqx($__lsp, $__lsq); } } $__lry .= "<div id=\"all_finished_message\" style=\"margin-top: 10px;\">Survey updated!</div>"; } } $authlib8_4_8::_byw->commit(); return _cou("Apply Changes", $__lry); } sub _crr { my($__lsx) = @_; my $__lss = 0; my $__lst = ""; my $__lsu = ""; eval { my $__lsv = "UPDATE `" . $authlib8_4_8::_bzb . "_info` SET `survey_paused` = " . $__lsx; my $__lsw = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lsv, 0)); $__lsw->execute(); }; if ($@) { $__lss = 1; $__lst = "Error while updating system pause."; $__lsu = $@; } return ($__lss, $__lst, $__lsu); } sub _crs { my($__lsy) = @_; print authlib8_4_8::_bpm(); my ($__lsz, $__lta, $__ltb) = _crr($__lsy); print "{"; if($__lsz) { print "\"error_msg\": " . $__lta; } print "}"; } sub _crt { my ($__lto) = @_; my $__ltc = ""; my $__ltd = ""; my $__lte = 0; my $__ltf = $authlib8_4_8::_bwv{'_cba'} . "db_setup/" . $authlib8_4_8::_byz . "_questionnaire.cgi"; my $__ltg = $authlib8_4_8::_bwv{'_cba'} . $authlib8_4_8::_byz . "_qst.cgi"; eval { my $__lth = 1; if (exists $authlib8_4_8::_bzi{"hid_test_mode"} && $authlib8_4_8::_bzi{"hid_test_mode"} == 1) { $__lth = 0; } if($__lth) { File::Copy::copy($__ltf, $__ltg); } }; if ($@) { $__ltc = "Failed to update QST file."; $__ltd = $!; } else { $__lte = 1; if (keys %{$__lto}) { my $__lti = ""; my $__ltj = ""; eval { $__lti = authlib8_4_8::_bmw($authlib8_4_8::_bzb . "_quotas"); $__ltj = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lti, 0)); $__ltj->execute(); }; if ($@) { return (0, "Database error. Cannot delete quotas table.", $@); } eval { $__lti = "CREATE TABLE `" . $authlib8_4_8::_bzb . "_quotas` (`quota_name` TEXT, `cell_value` INT, `cell_limit` INT) " . $authlib8_4_8::_bwn->{'_cax'}; $__ltj = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lti, 1)); $__ltj->execute(); }; if ($@) { return (0, "Database error. Cannot create quotas table.", $@); } my $__lti = "INSERT INTO `" . $authlib8_4_8::_bzb . "_quotas` (`quota_name`, `cell_value`, `cell_limit`) VALUES (?, ?, ?)"; eval { my $__ltk = ""; my $__ltl = ""; my $__ltm = 0; my $__ltn = 0; $__ltj = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lti, 0)); foreach $__ltk (sort keys %{$__lto}) { ($__ltl, $__ltm) = split("_", $__ltk); $__ltn = $__lto->{$__ltk}; $__ltj->execute($__ltl, $__ltm, $__ltn); } }; if ($@) { return (0, "Database error. Cannot insert quota data.", $@); } } } $authlib8_4_8::_byw->commit(); return ($__lte, $__ltc, $__ltd); } sub _cru { my $__ltp = ""; $__ltp .= _crw(); $__ltp .= "<meta http-equiv=\"pragma\" content=\"no-cache\">\n"; $__ltp .= "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n"; $__ltp .= "\n</head>\n"; $__ltp .= "<body"; if ($ssiwebadmin8_4_8::_cti) { $__ltp .= " class=\"c2_mode\""; } $__ltp .= ">\n"; $__ltp .= "<div class=\"page\">\n"; $__ltp .= "<form name=\"mainform\" method=\"post\""; $__ltp .= " action=\"admin" . $authlib8_4_8::_bwy . "\">\n"; $__ltp .= "<input type=\"hidden\" name=\"hid_studyname\" value=\"" . $authlib8_4_8::_byz . "\">\n"; $__ltp .= "<input type=\"hidden\" name=\"hid_page\" value=\"study_summary\">\n"; $__ltp .= "<input type=\"hidden\" name=\"hid_screen_width\" value=\"\" id=\"screen_width\">"; $__ltp .= _crv(); return $__ltp; } sub _crv { my $__ltq = ""; if ($authlib8_4_8::_bzu == 1) { $__ltq .= authlib8_4_8::_boq(1); } $__ltq .= "<div id=\"title\"><div id=\"title_text\">"; if ($authlib8_4_8::_bzk && exists $authlib8_4_8::_bzk->{'_cf'}) { $__ltq .= "Admin Module"; } else { $__ltq .= "SSI Web - Admin Module"; } $__ltq .= "</div></div>\n"; $__ltq .= "<div id=\"header1\">\n"; $__ltq .= "<span id=\"study\">" . $ssiwebadmin8_4_8::_cth . "</span></div>\n"; return $__ltq; } sub _crw { my ($__ltt) = @_; my $__ltr = ""; $__ltr .= authlib8_4_8::_bop($__ltt); $__ltr .= authlib8_4_8::_btq(); $__ltr .= authlib8_4_8::_btr(); $__ltr .= authlib8_4_8::_bts(); $__ltr .= authlib8_4_8::_btt(); $__ltr .= "<script type=\"text/javascript\" src=\"" . $authlib8_4_8::_bwv{'_blf'} . "system/ssi_admin_javascript8_4_8.js\"></script>\n"; $__ltr .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . $authlib8_4_8::_bwv{'_blf'} . "system/ssi_admin_style8_4_8.css\">"; $__ltr .= "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n"; if($ssiwebadmin8_4_8::_ctf) { $__ltr .= "<link rel=\"stylesheet\" href=\"http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css\" />\n"; $__ltr .= "<script src=\"http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js\"></script>\n"; } my $__lts = ""; if ($authlib8_4_8::_bzk) { if (exists $authlib8_4_8::_bzk->{'_cf'}) { $__lts = $authlib8_4_8::_bzk->{'_cf'}; } } if ($__lts) { $__ltr .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . authlib8_4_8::_bqf($__lts, 0) . "\">"; } $__ltr .= "\n<title>\n"; if ($__lts) { $__ltr .= "Admin Module"; } else { $__ltr .= $ssiwebadmin8_4_8::_cth; } $__ltr .= "\n</title>\n"; return $__ltr; } sub _crx { my $__ltu = ""; $__ltu .= "<div id=\"login_box\">\n"; $__ltu .= "<table cellspacing=\"0\" cellpadding=\"3\">\n"; $__ltu .= "<tr>\n"; $__ltu .= "<td align=\"left\" colspan=\"2\" id=\"login_title\">Login</td></tr>\n"; $__ltu .= "<tr><td align=\"right\" style=\"padding-top:10px;\">User Name:</td>\n"; $__ltu .= "<td align=\"left\" style=\"padding-top:10px;\"><input type=\"text\" class=\"text_input\" name=\"username\" size=\"24\" style=\"width: 170px\"></td></tr>\n"; $__ltu .= "<tr><td align=\"right\">Password:</td>\n"; $__ltu .= "<td align=\"left\"><input type=\"password\" class=\"text_input\" name=\"password\" size=\"24\" style=\"width: 170px;\"></td></tr>\n"; $__ltu .= "<tr><td>&nbsp;</td>\n"; $__ltu .= "<td align=\"left\">\n"; $__ltu .= "<input id=\"login_button\" type=\"submit\" name=\"Login\" value=\"Login\" onclick=\"document.mainform.submit()\">"; $__ltu .= "<script type=\"text/javascript\">\n"; $__ltu .= "jQuery(document).ready(function() {\n"; $__ltu .= "document.mainform.username.focus();\n"; $__ltu .= "});\n"; $__ltu .= "\n</script>\n"; $__ltu .= "</td></tr></table></center></div>"; return $__ltu; } sub _cry { my $__ltv = ""; $__ltv .= "<div id=\"page_footer_div\">\n"; $__ltv .= "<span id=\"page_footer_text\">"; if (!$authlib8_4_8::_bzk || !exists $authlib8_4_8::_bzk->{'_cf'}) { $__ltv .= "Copyright 2015 Sawtooth Software, Inc.<br>\n"; $__ltv .= "<a href=\"http://www.sawtoothsoftware.com\" target=\"sawtooth\">www.sawtoothsoftware.com</a>\n"; } $__ltv .= "</span>\n</div>\n"; if(!$ssiwebadmin8_4_8::_ctf) { $__ltv .= "</div>\n"; $__ltv .= "<!-- ssiweb-20365011074 -->\n"; $__ltv .= "</body>\n</html>\n"; } return $__ltv; } sub _crz { my($__luc) = @_; my $__ltw = ""; my $__ltx = ""; my $__lty = ""; my $__ltz = ""; my $__lua = ""; my $__lub = ""; if ($__luc =~ m/^(\s+)/) { $__lua = $1; } if ($__luc =~ m/(\s+)$/) { $__lub = $1; } while($__luc =~ m/\[%(.*?)%\]/isg) { $__ltz = $1; $__ltz =~ s/<([a-zA-Z\/])/<\0\0\0$1/isg; $__luc =~ s/\[%(.*?)%\]/\[\0\0\0%$__ltz%\]/is; } $__luc =~ s/\[\0\0\0%(.*?)%\]/\[%$1%\]/isg; while($__luc =~ m/<img(.*?)>/isg) { $__ltw = $1; $__lty = ""; if($__ltw =~ m/src\s*=\s*"(.*?)"/isg) { $__ltx = $1; $__ltx = reverse($__ltx); if($__ltx =~ m/(.*?)[\]\\\/]/isg) { $__lty = $1; $__lty = reverse($__lty); } } $__luc =~ s/<img(.*?)>/{Graphic: $__lty}/is; } $__luc =~ s/<script(.*?)<\/script>/ /isg; $__luc =~ s/<style(.*?)<\/style>/ /isg; $__luc =~ s/<[a-zA-Z\/][^>]*>/ /isg; $__luc =~ s/&lt;/</isg; $__luc =~ s/&gt;/>/isg; $__luc =~ s/&[#\w]+;/ /isg; $__luc =~ s/<!--(.*?)-->/ /isg; $__luc =~ s/<\0\0\0([a-zA-Z\/])/<$1/isg; $__luc =~ s/ +/ /isg; $__luc =~ s/^\s+//isg; $__luc =~ s/\s+$//isg; $__luc =~ s/\n\s+/\n/isg; $__luc = $__lua . $__luc . $__lub; return $__luc; } sub _csa { my($__lue, $__luf) = @_; my $__lud = ""; $__lud .= "<div class=\"error_msg_box\">"; $__lud .= "<div class=\"error_msg\">" . $__lue . "</div>"; $__lud .= "<div style=\"margin-top: 10px;\">" . $__luf . "</div>"; $__lud .= "</div>"; } sub _csb { my($__luk, $__lul, $__lum) = @_; if ($__lum == 0) { $__lum = time(); } my ($__lun, $__luo, $__lup, $__luq, $__lur, $__lus, $__lut, $__luu, $__luv) = localtime($__lum); my @__lug = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"); if ($__luo < 10) { $__luo = "0" . $__luo; } if ($__lun < 10) { $__lun = "0" . $__lun; } my $__luh = $__lug[$__lur] . " " . $__luq . ", " . (1900 + $__lus) . " - " . $__lup . ":" . $__luo . ":" . $__lun; eval { my $__lui = "INSERT INTO `" . $authlib8_4_8::_bzb . "_admin_log` (`date`, `action`, `info`, `ip_address`, `user_agent`, `time_stamp`) VALUES (" . $authlib8_4_8::_byw->quote($__luh) . "," . $authlib8_4_8::_byw->quote($__luk) . "," . $authlib8_4_8::_byw->quote($__lul) . "," . $authlib8_4_8::_byw->quote(authlib8_4_8::_bql()) . "," . $authlib8_4_8::_byw->quote(authlib8_4_8::_bqk()) . "," . $__lum . ")"; my $__luj = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy($__lui, 0)); $__luj->execute(); }; if ($@) { authlib8_4_8::_bqa(275, "Database error.", "Cannot insert into admin_log.", $@); } $authlib8_4_8::_byw->commit(); } sub _csc { my $__luw = ""; my $__lux = ""; $__luw .= authlib8_4_8::_bpm(); if (exists $authlib8_4_8::_bzi{"hid_page"}) { $__lux = $authlib8_4_8::_bzi{"hid_page"}; } if($__lux eq "mobile_status_json") { $__luw .= _cnk(1); } elsif($__lux eq "mobile_change_quotas" && exists $ssiwebadmin8_4_8::_csr{"full_access"}) { if (exists $authlib8_4_8::_bzi{"hid_data"}) { _cse($authlib8_4_8::_bzi{"hid_data"}); _cnl(); $__luw .= _cnk(1); } } elsif($__lux eq "close_survey_close" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { _cdr(); $__luw .= "{\"success\": 1}"; } elsif($__lux eq "close_survey_open" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { _cpk(); $__luw .= "{\"success\": 1}"; } elsif($__lux eq "close_survey_update" && (exists $ssiwebadmin8_4_8::_csr{"close_survey"})) { _cpl(); $__luw .= "{\"success\": 1}"; } else { $__luw .= _crw("<!DOCTYPE html>"); $__luw .= "</head>\n"; $__luw .= "<body class=\"mobile\">\n"; $__luw .= "<form method=\"post\" action=\"" . "admin" . $authlib8_4_8::_bwy . "\" name=\"mainform\" id=\"mainform\">\n"; if (exists $authlib8_4_8::_bzi{"hid_session"}) { $__luw .= "<input type=\"hidden\" name=\"hid_session\" value=\"" . $authlib8_4_8::_bzi{"hid_session"} . "\">\n"; } $__luw .= "<input type=\"hidden\" name=\"hid_studyname\" value=\"" . $authlib8_4_8::_byz . "\">\n"; $__luw .= "<input type=\"hidden\" name=\"hid_page\" value=\"study_summary\">\n"; $__luw .= "<input id=\"hid_mobile\" type=\"hidden\" name=\"hid_mobile\" value=\"1\">\n"; if ($ssiwebadmin8_4_8::_ctc) { $__luw .= "<input type=\"hidden\" name=\"hid_screen_width\" value=\"" . $ssiwebadmin8_4_8::_ctc . "\">\n"; } $__luw .= "<div id=\"page_title\" style=\"display: none;\"><a href=\"#summary\">" . $ssiwebadmin8_4_8::_cth . "</a></div>"; $__luw .= "<div id=\"page_footer\" style=\"display: none;\">"; $__luw .= "<div style=\"text-align: center; margin-bottom: 10px;\"><a id=\"full_view\" href=\"admin.pl?hid_studyname=" . $authlib8_4_8::_byz; if ($ssiwebadmin8_4_8::_ctc) { $__luw .= "&hid_screen_width=" . $ssiwebadmin8_4_8::_ctc; } $__luw .= "&hid_mobile=0&hid_page=study_summary&hid_session=" . $authlib8_4_8::_bzi{"hid_session"} . "\" rel=\"external\">Full Site</a></div>"; $__luw .= _cry() . "</div>"; $__luw .= "<div id=\"summary\" class=\"page\" data-role=\"page\">\n"; $__luw .= "<div class=\"title\"></div>\n"; $__luw .= "<div data-role=\"content\">\n"; $__luw .= _csd(); if (exists $ssiwebadmin8_4_8::_csr{"close_survey"}) { $__luw .= "<ul data-role=\"listview\" data-inset=\"true\">\n"; if (exists $ssiwebadmin8_4_8::_csr{"close_survey"}) { $__luw .= "<li><a href=\"#close_survey\">Close Survey</a></li>\n"; } $__luw .= "</ul>\n"; } $__luw .= "</div>"; $__luw .= "<div class=\"footer\"></div>\n"; $__luw .= "</div>"; $__luw .= "<div id=\"close_survey\" class=\"page\" data-role=\"page\">\n"; $__luw .= "<div class=\"title\"></div>\n"; $__luw .= "<div data-role=\"content\">\n"; $__luw .= _cpj(); $__luw .= "<ul data-role=\"listview\" data-inset=\"true\">\n"; $__luw .= "<li><a href=\"#summary\" id=\"#summary\">Summary</a></li>\n"; $__luw .= "</ul>\n"; $__luw .= "</div>"; $__luw .= "<div class=\"footer\"></div>\n"; $__luw .= "</div>"; $__luw .= "</form>"; $__luw .= "</body></html>"; } print $__luw; } sub _csd { my($__luz, $__lva, $__lvb) = _cov(); my $__luy = ""; $__luz = authlib8_4_8::_brp($__luz, ",", ".", 0); $__lva = authlib8_4_8::_brp($__lva, ",", ".", 0); $__lvb = authlib8_4_8::_brp($__lvb, ",", ".", 0); $__luy .= "<center><table border=\"0\" width=\"100%\" cellpadding=\"3\" cellspacing=\"0\" id=\"study_summary_box\">"; $__luy .= "<tr class=\"table_header\">"; $__luy .= "<td class=\"ui-corner-tl\" align=\"center\" width=\"33%\">Complete</td>\n"; $__luy .= "<td align=\"center\" width=\"33%\">Disqualified</td>\n"; $__luy .= "<td class=\"ui-corner-tr\" align=\"center\" width=\"33%\">Incomplete</td>\n"; $__luy .= "</tr>"; $__luy .= "<tr class=\"table_body\">"; $__luy .= "<td class=\"ui-corner-bl\" align=\"center\" id=\"completes\">" . $__luz . "</td>"; $__luy .= "<td align=\"center\" id=\"disqualifieds\">" . $__lvb . "</td>"; $__luy .= "<td class=\"ui-corner-br\" align=\"center\" id=\"incompletes\">" . $__lva . "</td>"; $__luy .= "</tr>"; $__luy .= "</table></center>"; if ($authlib8_4_8::_bxw) { $__luy .= "<div style=\"margin-left: 9px; margin-right: 9px;\" data-role=\"collapsible\" data-collapsed=\"false\" data-content-theme=\"c\">\n"; $__luy .= "<h3>Quotas</h3>\n"; $__luy .= _cnj(0, 0); $__luy .= "</div>\n"; } return $__luy; } sub _cse { my($__lvg) = @_; my @__lvc = split("&", $__lvg); my $__lvd = ""; my $__lve = ""; foreach my $__lvf (@__lvc) { if($__lvf =~ m/^(.*?)=(.*?)$/) { $__lvd = $1; $__lve = $2; $authlib8_4_8::_bzi{$__lvd} = $__lve; } } } sub _csf { my($__lvv) = @_; my $__lvh = $authlib8_4_8::_bzb . "_" . $__lvv; my $__lvi = 0; my $__lvj = "\r\n"; binmode STDOUT; print _cot($__lvh . ".csv"); my($__lvw, $__lvx, $__lvy, $__lvz, $__lwa) = authlib8_4_8::_bmx($__lvh); eval { $__lvi = $authlib8_4_8::_byw->selectall_arrayref(authlib8_4_8::_bmy($__lvw, 0)); }; if ($@) { authlib8_4_8::_bqa(212, "Database error.", "Database error. Cannot get table description.", $@); } my @__lvk = (); my $__lvl = 0; foreach $__lvl(@{$__lvi}) { push @__lvk, $__lvl->[$__lvx]; } print "\"" . join("\",\"", @__lvk) . "\""; print $__lvj; my $__lvm = 0; my $__lvn = 200; eval { $__lvw = "SELECT COUNT(*) FROM `" . $__lvh . "`"; my $__lvo = $authlib8_4_8::_byw->selectrow_arrayref(authlib8_4_8::_bmy($__lvw, 0)); $__lvm = $__lvo->[0]; }; if ($@) { authlib8_4_8::_bqa(285, "Database error.", "Database error. Cannot read table while downloading table.", $@); } my $__lvp = $authlib8_4_8::_byw->prepare(authlib8_4_8::_bmy("SELECT * FROM `" . $__lvh . "`", 0)); $__lvp->execute(); my $__lvq = int($__lvm / $__lvn) + 1; my $__lvr = 0; my $__lvs = 0; my $__lvt = 0; my $__lvu = ""; for ($__lvr = 0; $__lvr < $__lvq; $__lvr++) { $__lvu = ""; $__lvs = $__lvp->fetchall_arrayref(undef, $__lvn); foreach $__lvl (@{$__lvs}) { foreach $__lvt (@{$__lvl}) { $__lvu .= _cop(authlib8_4_8::_bmt($__lvt)) . ","; } chop($__lvu); $__lvu .= $__lvj; } print $__lvu; } } END { if($authlib8_4_8::_byh) { close $authlib8_4_8::_byh; } } 1;
