From 8478f113efade00adc7d669abd4a8c930e1b0b2b Mon Sep 17 00:00:00 2001 From: Adam Zammit Date: Fri, 12 Jun 2020 12:13:28 +1000 Subject: [PATCH] New feature: Allow operators to search the sample (visible fields only) and assign cases to themselves --- config.default.php | 1 + index.php | 9 +++ index_interface2.php | 9 +++ searchsample.php | 128 +++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 147 insertions(+) create mode 100644 searchsample.php diff --git a/config.default.php b/config.default.php index 30cf25b9..9e8717f5 100644 --- a/config.default.php +++ b/config.default.php @@ -205,6 +205,7 @@ if (!defined('TAB_PERFORMANCE')) define('TAB_PERFORMANCE', true); if (!defined('TAB_CALLHISTORY')) define('TAB_CALLHISTORY', true); if (!defined('TAB_PROJECTINFO')) define('TAB_PROJECTINFO', true); if (!defined('TAB_INFO')) define('TAB_INFO', true); +if (!defined('TAB_SEARCHSAMPLE')) define('TAB_SEARCHSAMPLE', false); /** * Enable a header expander for the main page to shrink/expand when not in use? diff --git a/index.php b/index.php index d4793b4b..dbfef8e4 100644 --- a/index.php +++ b/index.php @@ -380,6 +380,15 @@ xhtml_object($data,"main-content"); + +
"> +

+
+
+ + + diff --git a/index_interface2.php b/index_interface2.php index 9d5a7fe4..332a74fe 100644 --- a/index_interface2.php +++ b/index_interface2.php @@ -338,6 +338,15 @@ $availability = is_using_availability($case_id); + +
"> +

+
+
+ + + diff --git a/searchsample.php b/searchsample.php new file mode 100644 index 00000000..3265b6bc --- /dev/null +++ b/searchsample.php @@ -0,0 +1,128 @@ + + * @copyright Australian Consortium for Social and Political Research Incorporated (ACSPRI), 2016 + * @package queXS + * @subpackage user + * @link http://www.acspri.org.au/ queXS was writen for ACSPRI + * @license http://opensource.org/licenses/gpl-2.0.php The GNU General Public License (GPL) Version 2 + * + */ + +/** + * Configuration file + */ +include ("config.inc.php"); + +/** + * Database file + */ +include ("db.inc.php"); + +/** + * Authentication + */ +require ("auth-interviewer.php"); + +/** + * XHTML functions + */ +include ("functions/functions.xhtml.php"); + +/** + * Operator functions + */ +include("functions/functions.operator.php"); + +$js = false; +if (AUTO_LOGOUT_MINUTES !== false) + $js = array("include/jquery/jquery-1.4.2.min.js","js/childnap.js"); + +xhtml_head(T_("Search sample"),true,array("css/table.css"),$js); + +$operator_id = get_operator_id(); + +if (isset($_GET['callnext'])) +{ + $cn = intval($_GET['callnext']); + + $db->StartTrans(); + $sql = "SELECT next_case_id FROM `operator` WHERE operator_id = $operator_id"; + $nc = $db->GetOne($sql); + if (!empty($nc)) + print "

" . T_("Already calling case") . " $nc " . T_("next") . "

"; + else + { + $sql = "UPDATE `operator` SET next_case_id = $cn WHERE operator_id = $operator_id"; + $db->Execute($sql); + print "

" . T_("Will call case") . " $cn " . T_("next") . "

"; + } + $db->CompleteTrans(); +} + +$rs = ""; + +//search +if (isset($_POST['search'])) { + //display sample details + //limit to those allowed by admin + // + $search = $db->qstr("%" . $_POST['search'] . "%"); + + $sql = "SELECT c.case_id,CASE WHEN op.next_case_id IS NULL THEN CONCAT('".T_("Call next")."') ELSE CONCAT('".T_("Calling case")." ', op.next_case_id, ' ".T_("next")."') END as callnext, + sv.val,sivr.var + FROM `sample_var` as sv, `sample_import_var_restrict` as sivr, `case` as c, `operator_questionnaire` as oq, `questionnaire_sample` as qs, `sample` as s, operator as op + WHERE oq.operator_id = '$operator_id' + AND op.operator_id = oq.operator_id + AND oq.questionnaire_id = qs.questionnaire_id + AND s.import_id = qs.sample_import_id + AND c.sample_id = s.sample_id + AND c.questionnaire_id = qs.questionnaire_id + AND sv.sample_id = s.sample_id + AND sivr.var_id = sv.var_id + AND (sivr.restrict IS NULL OR sivr.restrict = 0) + AND sv.val like $search"; + + $rs = $db->GetAll($sql); + + if (!empty($rs)) + { + xhtml_table($rs,array("case_id","var","val","callnext"),array(T_("Case id"),T_("Var"),T_("Value"),T_("Call next"))); + } else { + print "

" . T_("No results") . "

"; + } +} + +//display search form + print "
"; + print ""; + print ""; + print "

"; + + + + +xhtml_foot(); + +?>