get(); //get the http post data if (!empty($_POST['emergency_logs']) && is_array($_POST['emergency_logs'])) { $action = $_POST['action'] ?? ''; $search = $_POST['search'] ?? ''; $emergency_logs = $_POST['emergency_logs'] ?? ''; } //set permissions for CDR details and call recordings $permission = array(); $permission['xml_cdr_hangup_cause'] = permission_exists('xml_cdr_hangup_cause'); $permission['xml_cdr_status'] = permission_exists('xml_cdr_status'); $permission['xml_cdr_recording'] = permission_exists('xml_cdr_recording'); $permission['xml_cdr_recording_play'] = permission_exists('xml_cdr_recording_play'); $permission['xml_cdr_recording_download'] = permission_exists('xml_cdr_recording_download'); //process the http post data by action if (!empty($action) && !empty($emergency_logs) && is_array($emergency_logs) && @sizeof($emergency_logs) != 0) { //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: emergency.php'); exit; } //prepare the array if (!empty($emergency_logs)) { foreach ($emergency_logs as $row) { $array['emergency_logs'][$x]['checked'] = $row['checked']; $array['emergency_logs'][$x]['emergency_log_uuid'] = $row['emergency_log_uuid']; $x++; } } //send the array to the database class if (!empty($action) && $action == 'delete') { $database->delete($array); } //redirect the user header('Location: emergency.php'.($search != '' ? '?search='.urlencode($search) : '')); exit; } //get order and order by $order_by = $_GET["order_by"] ?? null; $order = $_GET["order"] ?? null; //define the variables $search = ''; $show = ''; //add the search variable if (!empty($_GET["search"])) { $search = strtolower($_GET["search"]); } //add the show variable if (!empty($_GET["show"])) { $show = $_GET["show"]; } //get the count $sql = "select count(emergency_log_uuid) "; $sql .= "from v_emergency_logs "; if ($show == 'all') { $sql .= "where true "; } else { $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } if (!empty($search)) { $sql .= "and ( "; $sql .= " lower(event) like :search "; $sql .= ") "; $parameters['search'] = '%'.$search.'%'; } $num_rows = $database->select($sql, $parameters ?? null, 'column'); unset($sql, $parameters); //prepare to page the results $rows_per_page = $settings->get('domain', 'paging', 50); $param = !empty($search) ? "&search=".$search : null; $param .= (!empty($_GET['page']) && $show == 'all' && permission_exists('user_log_all')) ? "&show=all" : null; $page = !empty($_GET['page']) && is_numeric($_GET['page']) ? $_GET['page'] : 0; list($paging_controls, $rows_per_page) = paging($num_rows, $param, $rows_per_page); list($paging_controls_mini, $rows_per_page) = paging($num_rows, $param, $rows_per_page, true); $offset = $rows_per_page * $page; //set the time zone $time_zone = $settings->get('domain', 'time_zone', date_default_timezone_get()); //set the time format options: 12h, 24h if ($settings->get('domain', 'time_format') == '24h') { $time_format = 'HH24:MI:SS'; } else { $time_format = 'HH12:MI:SS am'; } //get the list $sql = "select e.emergency_log_uuid, "; $sql .= "e.domain_uuid, "; $sql .= "e.extension, "; $sql .= "e.event, "; $sql .= "to_char(timezone(:time_zone, e.insert_date), 'DD Mon YYYY') as date_formatted, "; $sql .= "to_char(timezone(:time_zone, e.insert_date), '".$time_format."') as time_formatted, "; $sql .= "e.insert_date, "; $sql .= "c.status as status, "; $sql .= "concat(c.record_path, '/', c.record_name) as recording, "; //temp $sql .= "c.record_path as call_recording_path, "; $sql .= "c.record_name as call_recording_name "; $sql .= "from v_emergency_logs e "; $sql .= "left join v_xml_cdr c "; $sql .= "on e.emergency_log_uuid = c.xml_cdr_uuid "; if ($show == 'all') { $sql .= "where true "; } else { $sql .= "where e.domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } if (!empty($search)) { $sql .= "and ( "; $sql .= " lower(e.event) like :search "; $sql .= ") "; $parameters['search'] = '%'.$search.'%'; } $sql .= "order by e.insert_date desc "; $sql .= limit_offset($rows_per_page, $offset); $parameters['time_zone'] = $time_zone; $emergency_logs = $database->select($sql, $parameters ?? null, 'all'); unset($sql, $parameters); //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //additional includes $document['title'] = $text['title-emergency_logs']; require_once "resources/header.php"; //show the content echo "
\n"; echo "
".$text['title-emergency_logs']."
".number_format($num_rows)."
\n"; echo "
\n"; if ($emergency_logs) { echo button::create(['type'=>'button','label'=>$text['button-delete'],'icon'=>$settings->get('theme', 'button_icon_delete'),'id'=>'btn_delete','name'=>'btn_delete','style'=>'display:none;','onclick'=>"modal_open('modal-delete','btn_delete');"]); } echo "\n"; echo "
\n"; echo "
\n"; echo "
\n"; if ($emergency_logs) { echo modal::create(['id'=>'modal-delete','type'=>'delete','actions'=>button::create(['type'=>'button','label'=>$text['button-continue'],'icon'=>'check','id'=>'btn_delete','style'=>'float: right; margin-left: 15px;','collapse'=>'never','onclick'=>"modal_close(); list_action_set('delete'); list_form_submit('form_list');"])]); } echo $text['title_description-emergency_logs']."\n"; echo "

\n"; echo "
\n"; echo "\n"; echo "\n"; if (!empty($show) && $show == 'all' && permission_exists('emergency_logs_view_all')) { echo th_order_by('domain_name', $text['label-domain'], $order_by, $order); } echo "\n"; echo "\n"; echo "\n"; echo "\n"; if ($permission['xml_cdr_recording'] && ($permission['xml_cdr_recording_play'] || $permission['xml_cdr_recording_download'])) { echo "\n"; } if ($permission['xml_cdr_status'] || $permission['xml_cdr_hangup_cause']) { echo "\n"; } echo "\n"; if (!empty($emergency_logs) && is_array($emergency_logs) && @sizeof($emergency_logs) != 0) { $x = 0; foreach ($emergency_logs as $row) { echo "\n"; if (!empty($_GET['show']) && $_GET['show'] == 'all' && permission_exists('emergency_logs_view_all')) { echo " \n"; } echo " \n"; echo " \n"; echo " \n"; echo " \n"; if (permission_exists('call_recording_play') || permission_exists('call_recording_download')) { echo " \n"; } // debug: display file directory and filename of the call recording /* if ($permission['xml_cdr_recording'] && ($permission['xml_cdr_recording_play'] || $permission['xml_cdr_recording_download'])) { if ($row['recording'] !== '/') { echo "\n"; } } */ $domain_name = $_SESSION['domains'][$row['domain_uuid']]['domain_name']; if ($permission['xml_cdr_status'] || $permission['xml_cdr_hangup_cause']) { if (!empty($_GET['show']) && $_GET['show'] == 'all' && permission_exists('emergency_logs_view_all')) { echo " \n"; } else { //echo " \n"; echo " \n"; } } echo "\n"; $x++; } unset($emergency_logs); } echo "
".$text['label-emergency_date']."".$text['label-emergency_time']."".$text['label-emergency_extension']."".$text['label-emergency_event']."".$text['label-recording']."".$text['label-emergency_call_status']."
".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name'])."".escape($row['date_formatted'])."".escape($row['time_formatted'])."".escape($row['extension'])."".escape($row['event'])."" . escape($row['recording']) . "" . (isset($row['status']) && $row['status'] !== '' ? "".escape($row['status'])."" : ' ') . "" . (isset($row['status']) && $row['status'] !== '' ? escape($row['status']) : '') . "" . (isset($row['status']) && $row['status'] !== '' ? "".escape($row['status'])."" : ' ') . "
\n"; echo "
\n"; echo "
\n"; echo "
".$paging_controls."
\n"; echo "\n"; echo "\n"; //include the footer require_once "resources/footer.php"; ?>