Portions created by the Initial Developer are Copyright (C) 2008-2018 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane */ //includes include "root.php"; require_once "resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('extension_view')) { //access granted } else { echo "access denied"; exit; } //get the registrations if (permission_exists('extension_registered')) { $obj = new registrations; $registrations = $obj->get('all'); } //add multi-lingual support $language = new text; $text = $language->get(); //get the http values and set them as variables $search = $_GET["search"]; $order_by = $_GET["order_by"]; $order = $_GET["order"]; //handle search term $search = $_GET["search"]; if (strlen($search) > 0) { $search = strtolower($search); $sql_search = "and ( "; $sql_search .= "lower(extension) like :search "; $sql_search .= "or lower(call_group) like :search "; $sql_search .= "or lower(user_context) like :search "; $sql_search .= "or lower(enabled) like :search "; $sql_search .= "or lower(description) like :search "; $sql_search .= ") "; $parameters['search'] = '%'.$search.'%'; } //additional includes require_once "resources/header.php"; $document['title'] = $text['title-extensions']; require_once "resources/paging.php"; //get total extension count $sql_1 = "select count(*) from v_extensions "; if (!($_GET['show'] == "all" && permission_exists('extension_all'))) { $sql_1 .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; } $sql_1 .= $sql_search; $database = new database; $total_extensions = $database->select($sql_1, $parameters, 'column'); //get total numeric extension count if ($db_type == "pgsql" || $db_type == "mysql") { $sql_2 = $sql_1." and extension ~ '^[0-9]+$' "; $database = new database; $numeric_extensions = $database->select($sql_2, $parameters, 'column'); } unset($sql_2); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; $param = "&search=".escape($search); if (!isset($_GET['page'])) { $_GET['page'] = 0; } $_GET['page'] = check_str($_GET['page']); list($paging_controls_mini, $rows_per_page, $var_3) = paging($total_extensions, $param, $rows_per_page, true); //top list($paging_controls, $rows_per_page, $var_3) = paging($total_extensions, $param, $rows_per_page); //bottom $offset = $rows_per_page * $_GET['page']; //to cast or not to cast $order_text = $db_type == "pgsql" && $total_extensions == $numeric_extensions ? 'cast(extension as bigint)' : 'extension'; //get the extensions $sql_3 = str_replace('count(*)', '*', $sql_1); $sql_3 .= $order_by == '' || $order_by == 'extension' ? ' order by '.$order_text.' '.$order.' ' : order_by($order_by, $order); $sql_3 .= limit_offset($rows_per_page, $offset); $database = new database; $extensions = $database->select($sql_3, $parameters, 'all'); unset($sql_1, $sql_3, $parameters); //set the alternating styles $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //show the content echo "\n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo "
\n"; echo " ".$text['header-extensions']." (".$total_extensions.")
\n"; echo "
\n"; if (permission_exists('extension_all')) { if ($_GET['show'] == 'all') { echo " "; } else { echo " \n"; } } if (permission_exists('extension_import')) { echo "\n"; } if (permission_exists('extension_export')) { echo " \n"; } echo " "; echo " "; if ($paging_controls_mini != '') { echo "".$paging_controls_mini."\n"; } echo "
\n"; echo " ".$text['description-extensions']."\n"; echo "
\n"; echo "
"; echo "
\n"; echo "\n"; echo "\n"; if (permission_exists('extension_delete') && is_array($extensions)) { echo ""; } if ($_GET['show'] == "all" && permission_exists('extension_all')) { echo th_order_by('domain_name', $text['label-domain'], $order_by, $order, $param); } echo th_order_by('extension', $text['label-extension'], $order_by, $order); echo th_order_by('call_group', $text['label-call_group'], $order_by, $order); //echo th_order_by('voicemail_mail_to', $text['label-voicemail_mail_to'], $order_by, $order); if (permission_exists("extension_user_context")) { echo th_order_by('user_context', $text['label-user_context'], $order_by, $order); } if (permission_exists('extension_registered')) { echo "\n"; } echo th_order_by('enabled', $text['label-enabled'], $order_by, $order); echo th_order_by('description', $text['label-description'], $order_by, $order); echo "\n"; echo "\n"; if (is_array($extensions)) { foreach($extensions as $row) { $tr_link = (permission_exists('extension_edit')) ? " href='extension_edit.php?id=".escape($row['extension_uuid'])."'" : null; echo "\n"; if (permission_exists('extension_delete')) { echo " "; $ext_ids[] = 'checkbox_'.$row['extension_uuid']; } if ($_GET['show'] == "all" && permission_exists('extension_all')) { echo " \n"; } echo " \n"; echo " \n"; //echo " \n"; if (permission_exists("extension_user_context")) { echo " \n"; } if (permission_exists('extension_registered')) { echo " \n"; } echo " \n"; echo " \n"; echo " \n"; echo "\n"; $c = ($c) ? 0 : 1; } } unset($extensions, $row); if (is_array($extensions)) { echo "\n"; echo " \n"; echo "\n"; } echo "
".$text['label-is_registered']."\n"; if (permission_exists('extension_add')) { if ($_SESSION['limit']['extensions']['numeric'] == '' || ($_SESSION['limit']['extensions']['numeric'] != '' && $total_extensions < $_SESSION['limit']['extensions']['numeric'])) { echo "".$v_link_label_add.""; } } if (permission_exists('extension_delete') && is_array($extensions)) { echo "".$v_link_label_delete.""; } echo "
".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name']).""; if (permission_exists('extension_edit')) { echo "".escape($row['extension']).""; } else { echo escape($row['extension']); } echo "".escape($row['call_group'])." ".$row['voicemail_mail_to']." ".escape($row['user_context']).""; $extension_number = $row['extension'].'@'.$_SESSION['domain_name']; $extension_number_alias = $row['number_alias']; if(strlen($extension_number_alias) > 0) { $extension_number_alias .= '@'.$_SESSION['domain_name']; } $found_count = 0; foreach ($registrations as $array) { if ( ($extension_number == $array['user']) || ($extension_number_alias != '' && $extension_number_alias == $array['user'] ) ) { $found_count++; } } if ($found_count > 0) { echo "Yes ($found_count)"; } else { echo "No"; } unset($extension_number, $extension_number_alias, $found_count, $array); echo " ".($row['enabled'] == 'true' ? $text['label-true'] : $text['label-false'])."".escape($row['description'])." "; if (permission_exists('extension_edit')) { echo "$v_link_label_edit"; } if (permission_exists('extension_delete')) { echo "$v_link_label_delete"; } echo "
\n"; if (permission_exists('extension_add')) { if ($_SESSION['limit']['extensions']['numeric'] == '' || ($_SESSION['limit']['extensions']['numeric'] != '' && $total_extensions < $_SESSION['limit']['extensions']['numeric'])) { echo "".$v_link_label_add.""; } } if (permission_exists('extension_delete')) { echo "".$v_link_label_delete.""; } echo "
"; echo "
"; if (strlen($paging_controls) > 0) { echo "
"; echo $paging_controls."\n"; } echo "

".((is_array($extensions)) ? "

" : null); // check or uncheck all checkboxes if (sizeof($ext_ids) > 0) { echo "\n"; } if (is_array($extensions)) { // check all checkboxes key_press('ctrl+a', 'down', 'document', null, null, "check('all');", true); // delete checked key_press('delete', 'up', 'document', array('#search'), $text['confirm-delete'], 'document.forms.frm.submit();', true); } //show the footer require_once "resources/footer.php"; ?>