diff --git a/admin/operatorlist.php b/admin/operatorlist.php index 1df24930..3698aa69 100644 --- a/admin/operatorlist.php +++ b/admin/operatorlist.php @@ -45,35 +45,97 @@ include_once(dirname(__FILE__).'/../db.inc.php'); include_once(dirname(__FILE__).'/../functions/functions.xhtml.php'); $display = true; +$msg = ""; -if (isset($_POST)) +if (isset($_POST['submit'])) { - foreach($_POST as $key => $val) + $operator_id = intval($_POST['operator_id']); + $voip = $enabled = 0; + if (isset($_POST['voip'])) $voip = 1; + if (isset($_POST['enabled'])) $enabled = 1; + + $sql = "UPDATE operator + SET username = " . $db->qstr($_POST['username']) . ", + lastName = " . $db->qstr($_POST['lastName']) . ", + firstName = " . $db->qstr($_POST['firstName']) . ", + extension = " . $db->qstr($_POST['extension']) . ", + extension_password = " . $db->qstr($_POST['extension_password']) . ", + Time_zone_name = " . $db->qstr($_POST['timezone']) . ", + voip = $voip, enabled = $enabled + WHERE operator_id = $operator_id"; + + $rs = $db->Execute($sql); + + if (!empty($rs)) { - if (substr($key,0,8) == "password") + if (HTPASSWD_PATH !== false && !empty($_POST['password'])) { - if (HTPASSWD_PATH !== false) - { - $operator_id = intval(substr($key,8)); - //update password in htaccess - include_once(dirname(__FILE__).'/../functions/functions.htpasswd.php'); - $htp = New Htpasswd(HTPASSWD_PATH); - $htp->deleteUser($_POST["username" . $operator_id]); - $htp->addUser($_POST["username" . $operator_id],$val); - } - } - else if (substr($key,0,8) == "timezone") - { - $operator_id = intval(substr($key,8)); - $tzone = $db->qstr($val); - $sql = "UPDATE operator - SET Time_zone_name = $tzone - WHERE operator_id = '$operator_id'"; - $db->Execute($sql); + //update password in htaccess + include_once(dirname(__FILE__).'/../functions/functions.htpasswd.php'); + $htp = New Htpasswd(HTPASSWD_PATH); + $htp->deleteUser($_POST["existing_username"]); + $htp->deleteUser($_POST["username"]); + $htp->addUser($_POST["username"],$_POST["password"]); } + + $msg = T_("Successfully updated user"); } + else + { + $msg = T_("Failed to update user. Please make sure the username and extension are unique"); + } + + $_GET['edit'] = $operator_id; } + +if (isset($_GET['edit'])) +{ + xhtml_head(T_("Operator edit"),true,array("../css/table.css")); + + $operator_id = intval($_GET['edit']); + + $sql = "SELECT *, + CONCAT('') as timezone + FROM operator + WHERE operator_id = $operator_id"; + + $rs = $db->GetRow($sql); + + print "

" . T_("Edit") . ": " . $rs['username'] . "

"; + echo "

" . T_("Go back") . "

"; + if (!empty($msg)) print "

$msg

"; + + ?> +
+
+ +
+ +
+
+
+
+
+
value="1" />
+
value="1" />
+
+
+
"/>
+
+ " . T_("Enable VoIP") . "') ELSE CONCAT('" . T_("Disable VoIP") . "') - END - as voipenabledisable, + END as voipenabledisable, + CONCAT('" . T_("Edit") . "') as edit, username FROM operator"; @@ -184,8 +246,8 @@ if ($display) xhtml_head(T_("Operator list"),true,array("../css/table.css")); - $columns = array("name","username","enabledisable","timezone"); - $titles = array(T_("Operator"),T_("Username"),T_("Enable/Disable"),T_("Update timezone")); + $columns = array("name","username","enabledisable","edit"); + $titles = array(T_("Operator"),T_("Username"),T_("Enable/Disable"),T_("Edit")); if (VOIP_ENABLED) { @@ -202,12 +264,6 @@ if ($display) $titles[] = T_("*nix VoIP"); } - if (HTPASSWD_PATH !== false) - { - $columns[] = "password"; - $titles[] = T_("Update password"); - } - xhtml_table($rs,$columns,$titles); diff --git a/admin/questionnairelist.php b/admin/questionnairelist.php index 01ddfaf8..42285267 100644 --- a/admin/questionnairelist.php +++ b/admin/questionnairelist.php @@ -57,6 +57,149 @@ include("../include/ckeditor/ckeditor.php"); global $db; +if (isset($_POST['questionnaire_id']) && isset($_POST['submit'])) +{ + //Delete the questionnaire + + $questionnaire_id = intval($_POST['questionnaire_id']); + + $db->StartTrans(); + + $sql = "DELETE FROM `appointment` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + $sql = "DELETE FROM `call` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + + $sql = "DELETE FROM `call_attempt` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + + $sql = "DELETE FROM `case_availability` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + $sql = "DELETE FROM `case_note` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + $sql = "DELETE FROM `contact_phone` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + $sql = "DELETE FROM `respondent` + WHERE case_id IN + (SELECT case_id + FROM `case` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + $sql = "DELETE FROM `client_questionnaire` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `operator_questionnaire` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_availability` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_prefill` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_sample` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_sample_exclude_priority` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_sample_priority` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_sample_quota` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_sample_quota_row` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire_sample_quota_row_exclude` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `shift_report` + WHERE shift_id IN + (SELECT shift_id + FROM `shift` + WHERE questionnaire_id = $questionnaire_id)"; + + $db->Execute($sql); + + $sql = "DELETE FROM `shift` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `case` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $sql = "DELETE FROM `questionnaire` + WHERE questionnaire_id = $questionnaire_id"; + + $db->Execute($sql); + + $db->CompleteTrans(); + +} + if (isset($_GET['disable'])) { $questionnaire_id = intval($_GET['disable']); @@ -224,10 +367,33 @@ if (isset($_GET['modify'])) GetRow($sql); + + echo "

" . $rs['description'] . "

"; + + echo "

" . T_("Go back") . "

"; + + print "

" . T_("Any collected data and the limesurvey instrument will NOT be deleted") . "

"; + print "

" . T_("The questionnaire will be deleted from queXS including call history, cases, case notes, respondent details, appointments and the links between operators, clients and the questionnaire") . "

"; + print "

" . T_("Please confirm you wish to delete the questionnaire") . "

"; + + print "
"; + print "

"; + print "

"; + print "
"; +} else { - $columns = array("description","enabledisable","modify"); - $titles = array(T_("Questionnaire"),T_("Enable/Disable"),("Modify")); + $columns = array("description","enabledisable","modify","deletee"); + $titles = array(T_("Questionnaire"),T_("Enable/Disable"),T_("Modify"),T_("Delete")); $sql = "SELECT description, @@ -237,7 +403,8 @@ else CONCAT('" . T_("Disable") . "') END as enabledisable, - CONCAT('" . T_("Modify"). "') as modify + CONCAT('" . T_("Modify"). "') as modify, + CONCAT('" . T_("Delete"). "') as deletee FROM questionnaire"; $rs = $db->GetAll($sql);