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('', (SELECT GROUP_CONCAT(CONCAT('', Time_zone_name, ' ') SEPARATOR '') as tzones
+ FROM timezone_template),' ') 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 ";
+
+ ?>
+
+ " . 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 "";
+}
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);