Portions created by the Initial Developer are Copyright (C) 2013-2023 the Initial Developer. All Rights Reserved. Contributor(s): Mark J Crane James Rose */ //includes files require_once dirname(__DIR__, 4) . "/resources/require.php"; //add multi-lingual support $language = new text; $text = $language->get($_SESSION['domain']['language']['code'], 'app/ring_groups'); //get the list if (permission_exists('ring_group_add') || permission_exists('ring_group_edit')) { $domain_uuid = $_SESSION['domain_uuid']; } else { //show only assigned ring groups $domain_uuid = $_SESSION['user']['domain_uuid']; } //connect to the database if (!isset($database)) { $database = new database; } //find the path switch ($_SERVER['REQUEST_URI']) { case PROJECT_PATH."/core/dashboard/index.php": $validated_path = PROJECT_PATH."/core/dashboard/index.php"; break; case PROJECT_PATH."/app/ring_groups/ring_group_forward.php": $validated_path = PROJECT_PATH."/app/ring_groups/ring_group_forward.php"; break; default: $validated_path = PROJECT_PATH."/app/ring_groups/resources/dashboard/ring_group_forward.php"; } //update ring group forwarding if (isset($_POST['ring_groups']) && is_array($_POST['ring_groups']) && @sizeof($_POST['ring_groups']) != 0 && permission_exists('ring_group_forward')) { //validate the token $token = new token; if (!$token->validate('/app/ring_groups/ring_group_forward.php')) { message::add($text['message-invalid_token'],'negative'); header('Location: '.$validated_path); exit; } $x = 0; foreach ($_POST['ring_groups'] as $row) { //build array if (is_uuid($row['ring_group_uuid'])) { $array['ring_groups'][$x]['ring_group_uuid'] = $row['ring_group_uuid']; $array['ring_groups'][$x]['ring_group_forward_enabled'] = $row['ring_group_forward_enabled'] == 'true' && $row['ring_group_forward_destination'] != '' ? 'true' : 'false'; $array['ring_groups'][$x]['ring_group_forward_destination'] = $row['ring_group_forward_destination']; } //increment counter $x++; } if (is_array($array) && sizeof($array) != 0) { //update ring group $p = new permissions; $p->add('ring_group_edit', 'temp'); $database->app_name = 'ring_groups'; $database->app_uuid = '1d61fb65-1eec-bc73-a6ee-a6203b4fe6f2'; $database->save($array); unset($array); $p->delete('ring_group_edit', 'temp'); //set message message::add($text['message-update']); $validated_path = PROJECT_PATH."/core/dashboard/index.php"; //redirect the user header("Location: ".$validated_path); exit; } } //get the list if (permission_exists('ring_group_domain') || permission_exists('ring_group_all')) { //show all ring groups for the current domain $sql = "select * from v_ring_groups "; $sql .= "where domain_uuid = :domain_uuid "; $parameters['domain_uuid'] = $domain_uuid; } else { //show only assigned ring groups $sql = "select r.ring_group_uuid, r.ring_group_name, r.ring_group_extension, r.ring_group_strategy, "; $sql .= "r.ring_group_forward_destination, r.ring_group_forward_enabled, r.ring_group_description "; $sql .= "from v_ring_groups as r, v_ring_group_users as u "; $sql .= "where r.domain_uuid = :domain_uuid "; $sql .= "and r.ring_group_uuid = u.ring_group_uuid "; $sql .= "and u.user_uuid = :user_uuid "; $parameters['domain_uuid'] = $_SESSION['user']['domain_uuid']; $parameters['user_uuid'] = $_SESSION['user']['user_uuid']; } $sql .= "order by ring_group_extension asc "; $result = $database->select($sql, $parameters, 'all'); unset($sql, $parameters); //determine keys and stats unset($stats); //set defaults $stats['forwarding'] = 0; $stats['active'] = 0; if (is_array($result) && @sizeof($result) != 0) { foreach ($result as $row) { $stats['forwarding'] += $row['ring_group_forward_enabled'] == 'true' && $row['ring_group_forward_destination'] ? 1 : 0; } $stats['active'] = @sizeof($result) - $stats['forwarding']; } //set the row style $c = 0; $row_style["0"] = "row_style0"; $row_style["1"] = "row_style1"; //create token if (permission_exists('ring_group_forward')) { $object = new token; $token = $object->create('/app/ring_groups/ring_group_forward.php'); } //ring group forward echo "
\n"; echo "
\n"; echo " ".$text['header-ring-group-forward']."\n"; //doughnut chart if ($dashboard_chart_type == "doughnut") { echo "
\n"; echo "\n"; } if ($dashboard_chart_type == "none") { echo " ".$stats['forwarding'].""; } echo "
\n"; //details if (permission_exists('ring_group_forward')) { echo "
\n"; } echo "
"; if (is_array($result) && @sizeof($result) != 0 && permission_exists('ring_group_forward')) { echo button::create(['type'=>'button','label'=>$text['button-save'],'icon'=>$_SESSION['theme']['button_icon_save'],'collapse'=>false,'style'=>"position: absolute; margin-top: -35px; margin-left: -72px;",'onclick'=>"list_form_submit('form_list_ring_group_forward');"]); } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; //data if (is_array($result) && @sizeof($result) != 0) { $x = 0; foreach ($result as $row) { $tr_link = PROJECT_PATH."/app/ring_groups/ring_group_edit.php?id=".$row['ring_group_uuid']; echo "\n"; echo " \n"; echo " \n"; if (permission_exists('ring_group_forward')) { echo " \n"; if (permission_exists('ring_group_forward')) { echo " \n"; echo "\n"; $x++; $c = ($c) ? 0 : 1; } unset($result); } echo "
".$text['label-name']."".$text['label-extension']."".$text['label-forwarding']."".$text['label-destination']."
".escape($row['ring_group_name'])."".escape($row['ring_group_extension']).""; if ($row["ring_group_forward_enabled"] == 'true') { echo $text['option-enabled']; } else { echo $text['option-disabled']; } } echo " "; echo escape(format_phone($row["ring_group_forward_destination"] ?? '')); } echo "
\n"; echo "
"; //$n++; if (permission_exists('ring_group_forward')) { echo "\n"; echo "
\n"; } echo ""; echo "
\n"; ?>