Portions created by the Initial Developer are Copyright (C) 2008-2023 the Initial Developer. All Rights Reserved. Contributor(s): KonradSC */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; require_once "resources/check_auth.php"; require_once "resources/paging.php"; //include the class require_once "resources/check_auth.php"; //check permissions require_once "resources/check_auth.php"; if (permission_exists('bulk_account_settings_extensions')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //get the http values and set them as variables $order_by = check_str($_GET["order_by"]); $order = check_str($_GET["order"]); $option_selected = check_str($_GET["option_selected"]); //handle search term $search = check_str($_GET["search"]); if (strlen($search) > 0) { $search = strtolower($search); $sql_mod = "and ( "; $sql_mod .= "lower(extension) like '%".$search."%' "; $sql_mod .= "or lower(accountcode) like '%".$search."%' "; $sql_mod .= "or lower(call_group) like '%".$search."%' "; $sql_mod .= "or lower(description) like '%".$search."%' "; if (($option_selected == "") or ($option_selected == 'call_group') or ($option_selected == 'accountcode')) { } elseif (($option_selected == 'call_timeout') or ($option_selected == 'sip_force_expires')){ $sql_mod .= "or lower(cast (".$option_selected." as text)) like '%".$search."%' "; } else { $sql_mod .= "or lower(".$option_selected.") like '%".$search."%' "; } $sql_mod .= ") "; } if (strlen($order_by) < 1) { $order_by = "extension"; $order = "ASC"; } $domain_uuid = $_SESSION['domain_uuid']; //get total extension count from the database $sql = "select count(*) as num_rows from v_extensions where domain_uuid = '".$_SESSION['domain_uuid']."' ".$sql_mod." "; $prep_statement = $db->prepare($sql); if ($prep_statement) { $prep_statement->execute(); $row = $prep_statement->fetch(PDO::FETCH_ASSOC); $total_extensions = $row['num_rows']; if (($db_type == "pgsql") or ($db_type == "mysql")) { $numeric_extensions = $row['num_rows']; } } unset($prep_statement, $row); //prepare to page the results $rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50; $param = "&search=".$search."&option_selected=".$option_selected; 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']; //get all the extensions from the database $sql = "SELECT \n"; $sql .= "description, \n"; $sql .= "extension, \n"; $sql .= "extension_uuid, \n"; if (($option_selected == "") or ($option_selected == 'call_group') or ($option_selected == 'accountcode')) {} else { $sql .= "".$option_selected.", \n"; } $sql .= "accountcode, \n"; $sql .= "call_group \n"; $sql .= "FROM v_extensions \n"; $sql .= "WHERE domain_uuid = '$domain_uuid' \n"; $sql .= $sql_mod; //add search mod from above $sql .= "ORDER BY ".$order_by." ".$order." \n"; $sql .= "limit $rows_per_page offset $offset "; $database = new database; $directory = $database->select($sql, 'all'); unset($database); //additional includes require_once "resources/header.php"; $document['title'] = $text['title-extensions_settings']; //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 " ".$text['header-extensions']." (".$numeric_extensions.")
\n"; //options list echo "
\n"; echo " \n"; echo "
\n"; echo "
\n"; echo $text['description-extension_settings_description']."\n"; echo "
"; echo "
\n"; echo "
\n"; echo " \n"; echo " "; echo " "; echo " "; if ($paging_controls_mini != '') { echo "".$paging_controls_mini."\n"; } echo "
\n"; echo " ".$text['description-extensions_settings']."\n"; echo "
\n"; echo "
"; if (strlen($option_selected) > 0) { echo "
\n"; echo "\n"; echo "\n"; echo "\n"; //options with a free form input if($option_selected == 'accountcode' || $option_selected == 'call_group' || $option_selected == 'call_timeout' || $option_selected == 'emergency_caller_id_name' || $option_selected == 'emergency_caller_id_number' || $option_selected == 'limit_max' || $option_selected == 'outbound_caller_id_name' || $option_selected == 'outbound_caller_id_number' || $option_selected == 'toll_allow' || $option_selected == 'sip_force_expires' || $option_selected == 'mwi_account') { echo "\n"; } //option is Enabled if($option_selected == 'enabled') { echo "\n"; } //option is Directory Visible if($option_selected == 'directory_visible') { echo "\n"; } //option is User Record if($option_selected == 'user_record') { echo "\n"; } //option is SIP Bypass Media if($option_selected=='sip_bypass_media') { echo "\n"; } //option is hold_music if($option_selected == 'hold_music') { echo "\n"; } echo "\n"; echo "\n"; echo "
\n"; echo " \n"; echo "
\n"; echo $text["description-".escape($option_selected).""]."\n"; echo "
\n"; echo " \n"; echo "
\n"; echo $text["description-".$option_selected.""]."\n"; echo "
\n"; echo " \n"; echo "
\n"; echo $text["description-".$option_selected.""]."\n"; echo "
\n"; echo " \n"; echo "
\n"; echo $text["description-".$option_selected.""]."\n"; echo "
\n"; echo " \n"; echo "
\n"; echo $text["description-".$option_selected.""]."\n"; echo "
\n"; if (is_dir($_SERVER["DOCUMENT_ROOT"].PROJECT_PATH.'/app/music_on_hold')) { require_once "app/music_on_hold/resources/classes/switch_music_on_hold.php"; $options = ''; $moh = new switch_music_on_hold; echo $moh->select('new_setting', $hold_music, $options); } $new_setting = $hold_music; echo "
\n"; echo $text["description-".escape($option_selected).""]."\n"; echo "
\n"; echo "\n"; echo "
"; echo "
"; } echo "\n"; echo "\n"; if (is_array($directory)) { echo ""; } echo th_order_by('extension', $text['label-extension'], $order_by,$order,'','',"option_selected=".$option_selected."&search=".$search.""); if (($option_selected == "") or ($option_selected == 'call_group') or ($option_selected == 'accountcode')) { } else { echo th_order_by($option_selected, $text["label-".$option_selected.""], $order_by,$order,'','',"option_selected=".$option_selected."&search=".$search.""); } echo th_order_by('accountcode', $text['label-accountcode'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search.""); echo th_order_by('call_group', $text['label-call_group'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search.""); echo th_order_by('description', $text['label-description'], $order_by, $order,'','',"option_selected=".$option_selected."&search=".$search.""); echo "\n"; if (is_array($directory)) { foreach($directory as $key => $row) { $tr_link = (permission_exists('extension_edit')) ? " href='/app/extensions/extension_edit.php?id=".$row['extension_uuid']."'" : null; echo "\n"; echo " "; $ext_ids[] = 'checkbox_'.$row['extension_uuid']; echo " \n"; if (($option_selected == "") or ($option_selected == 'call_group') or ($option_selected == 'accountcode')) { } else { echo " \n"; } echo " \n"; echo " \n"; echo " \n"; echo "\n"; $c = ($c) ? 0 : 1; } unset($directory, $row); } echo "
".$row['extension']."  ".escape($row[$option_selected])."  ".escape($row['accountcode'])."  ".escape($row['call_group'])."  ".escape($row['description'])."
"; echo "
"; if (strlen($paging_controls) > 0) { echo "
"; echo $paging_controls."\n"; } echo "

".((is_array($directory)) ? "

" : null); // check or uncheck all checkboxes if (sizeof($ext_ids) > 0) { echo "\n"; } if (is_array($directory)) { // 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"; ?>