2
0
mirror of https://github.com/ACSPRI/queXS synced 2024-04-02 12:12:16 +00:00

Added ability to edit operators

Can delete all traces of a queXS questionnaire
This commit is contained in:
Adam Zammit
2013-03-07 12:51:36 +11:00
parent 797fde759a
commit 10c68d7d11
2 changed files with 257 additions and 34 deletions

View File

@@ -45,35 +45,97 @@ include_once(dirname(__FILE__).'/../db.inc.php');
include_once(dirname(__FILE__).'/../functions/functions.xhtml.php'); include_once(dirname(__FILE__).'/../functions/functions.xhtml.php');
$display = true; $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) //update password in htaccess
{ include_once(dirname(__FILE__).'/../functions/functions.htpasswd.php');
$operator_id = intval(substr($key,8)); $htp = New Htpasswd(HTPASSWD_PATH);
//update password in htaccess $htp->deleteUser($_POST["existing_username"]);
include_once(dirname(__FILE__).'/../functions/functions.htpasswd.php'); $htp->deleteUser($_POST["username"]);
$htp = New Htpasswd(HTPASSWD_PATH); $htp->addUser($_POST["username"],$_POST["password"]);
$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);
} }
$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 name=\'timezone\'>', (SELECT GROUP_CONCAT(CONCAT('<option ', CASE WHEN timezone_template.Time_zone_name LIKE operator.Time_zone_name THEN ' selected=\"selected\" ' ELSE '' END ,'value=\"', Time_zone_name, '\">', Time_zone_name, '</option>') SEPARATOR '') as tzones
FROM timezone_template),'</select>') as timezone
FROM operator
WHERE operator_id = $operator_id";
$rs = $db->GetRow($sql);
print "<h2>" . T_("Edit") . ": " . $rs['username'] . "</h2>";
echo "<p><a href='?'>" . T_("Go back") . "</a></p>";
if (!empty($msg)) print "<h3>$msg</h3>";
?>
<form action="?" method="post">
<div><label for="username"><?php echo T_("Username") . ": "; ?></label><input type='text' name='username' value="<?php echo $rs['username'];?>"/></div>
<?php
if (HTPASSWD_PATH !== false)
{ ?>
<div><label for="password"><?php echo T_("Update password (leave blank to keep existing password)") . ": "; ?></label><input type='text' name='password'/></div>
<?php }
?>
<div><label for="firstName"><?php echo T_("First name") . ": "; ?></label><input type='text' name='firstName' value="<?php echo $rs['firstName'];?>"/></div>
<div><label for="lastName"><?php echo T_("Last name") . ": "; ?></label><input type='text' name='lastName' value="<?php echo $rs['lastName'];?>"/></div>
<div><label for="extension"><?php echo T_("Extension") . ": "; ?></label><input type='text' name='extension' value="<?php echo $rs['extension'];?>"/></div>
<div><label for="extension_password"><?php echo T_("Extension Password") . ": "; ?></label><input type='text' name='extension_password' value="<?php echo $rs['extension_password'];?>"/></div>
<div><label for="timezone"><?php echo T_("Timezone") . ": ";?></label><?php echo $rs['timezone'];?></div>
<div><label for="enabled"><?php echo T_("Enabled") . "? ";?></label><input type="checkbox" name="enabled" <?php if ($rs['enabled'] == 1) echo "checked=\"checked\"";?> value="1" /></div>
<div><label for="voip"><?php echo T_("Uses VoIP") . "? ";?></label><input type="checkbox" name="voip" <?php if ($rs['voip'] == 1) echo "checked=\"checked\"";?> value="1" /></div>
<div><input type='hidden' name='operator_id' value='<?php echo $operator_id;?>'/></div>
<div><input type='hidden' name='existing_username' value="<?php echo $rs['username'];?>"/></div>
<div><input type="submit" name="submit" value="<?php echo T_("Update operator");?>"/></div>
</form>
<?php
xhtml_foot();
exit();
}
if (isset($_GET['voipdisable'])) if (isset($_GET['voipdisable']))
{ {
$operator_id = intval($_GET['voipdisable']); $operator_id = intval($_GET['voipdisable']);
@@ -175,8 +237,8 @@ if ($display)
CONCAT('<a href=\'?voipenable=',operator_id,'\'>" . T_("Enable VoIP") . "</a>') CONCAT('<a href=\'?voipenable=',operator_id,'\'>" . T_("Enable VoIP") . "</a>')
ELSE ELSE
CONCAT('<a href=\'?voipdisable=',operator_id,'\'>" . T_("Disable VoIP") . "</a>') CONCAT('<a href=\'?voipdisable=',operator_id,'\'>" . T_("Disable VoIP") . "</a>')
END END as voipenabledisable,
as voipenabledisable, CONCAT('<a href=\'?edit=',operator_id,'\'>" . T_("Edit") . "</a>') as edit,
username username
FROM operator"; FROM operator";
@@ -184,8 +246,8 @@ if ($display)
xhtml_head(T_("Operator list"),true,array("../css/table.css")); xhtml_head(T_("Operator list"),true,array("../css/table.css"));
$columns = array("name","username","enabledisable","timezone"); $columns = array("name","username","enabledisable","edit");
$titles = array(T_("Operator"),T_("Username"),T_("Enable/Disable"),T_("Update timezone")); $titles = array(T_("Operator"),T_("Username"),T_("Enable/Disable"),T_("Edit"));
if (VOIP_ENABLED) if (VOIP_ENABLED)
{ {
@@ -202,12 +264,6 @@ if ($display)
$titles[] = T_("*nix VoIP"); $titles[] = T_("*nix VoIP");
} }
if (HTPASSWD_PATH !== false)
{
$columns[] = "password";
$titles[] = T_("Update password");
}
xhtml_table($rs,$columns,$titles); xhtml_table($rs,$columns,$titles);

View File

@@ -57,6 +57,149 @@ include("../include/ckeditor/ckeditor.php");
global $db; 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'])) if (isset($_GET['disable']))
{ {
$questionnaire_id = intval($_GET['disable']); $questionnaire_id = intval($_GET['disable']);
@@ -224,10 +367,33 @@ if (isset($_GET['modify']))
<?php <?php
} }
else if (isset($_GET['delete']))
{
$questionnaire_id = intval($_GET['delete']);
$sql = "SELECT *
FROM questionnaire
WHERE questionnaire_id = $questionnaire_id";
$rs = $db->GetRow($sql);
echo "<h1>" . $rs['description'] . "</h1>";
echo "<p><a href='?'>" . T_("Go back") . "</a></p>";
print "<p>" . T_("Any collected data and the limesurvey instrument will NOT be deleted") . "</p>";
print "<p>" . 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") . "</p>";
print "<p>" . T_("Please confirm you wish to delete the questionnaire") . "</p>";
print "<form method='post' action='?'>";
print "<p><input type='submit' name='submit' value='" . T_("Delete this questionnaire") . "'/>";
print "<input type='hidden' name='questionnaire_id' value='$questionnaire_id'/></p>";
print "</form>";
}
else else
{ {
$columns = array("description","enabledisable","modify"); $columns = array("description","enabledisable","modify","deletee");
$titles = array(T_("Questionnaire"),T_("Enable/Disable"),("Modify")); $titles = array(T_("Questionnaire"),T_("Enable/Disable"),T_("Modify"),T_("Delete"));
$sql = "SELECT $sql = "SELECT
description, description,
@@ -237,7 +403,8 @@ else
CONCAT('<a href=\'?disable=',questionnaire_id,'\'>" . T_("Disable") . "</a>') CONCAT('<a href=\'?disable=',questionnaire_id,'\'>" . T_("Disable") . "</a>')
END END
as enabledisable, as enabledisable,
CONCAT('<a href=\'?modify=',questionnaire_id,'\'>" . T_("Modify"). "</a>') as modify CONCAT('<a href=\'?modify=',questionnaire_id,'\'>" . T_("Modify"). "</a>') as modify,
CONCAT('<a href=\'?delete=',questionnaire_id,'\'>" . T_("Delete"). "</a>') as deletee
FROM questionnaire"; FROM questionnaire";
$rs = $db->GetAll($sql); $rs = $db->GetAll($sql);