Portions created by the Initial Developer are Copyright (C) 2018-2025 the Initial Developer. All Rights Reserved. */ //includes files require_once dirname(__DIR__, 2) . "/resources/require.php"; require_once "resources/check_auth.php"; //check permissions if (permission_exists('stream_add') || permission_exists('stream_edit')) { //access granted } else { echo "access denied"; exit; } //add multi-lingual support $language = new text; $text = $language->get(); //set the defaults $stream_name = ''; $stream_location = ''; $stream_description = ''; $stream_uuid = ''; //action add or update if (!empty($_REQUEST["id"])) { $action = "update"; $stream_uuid = $_REQUEST["id"]; $id = $_REQUEST["id"]; } else { $action = "add"; } //get http post variables and set them to php variables if (count($_POST) > 0) { $domain_uuid = $_POST['domain_uuid']; $stream_uuid = $_POST["stream_uuid"]; $stream_name = $_POST["stream_name"]; $stream_location = $_POST["stream_location"]; $stream_enabled = $_POST["stream_enabled"]; $stream_description = $_POST["stream_description"]; } //process the user data and save it to the database if (count($_POST) > 0 && empty($_POST["persistformvar"])) { //get the uuid from the POST if ($action == "update") { $stream_uuid = $_POST["stream_uuid"]; } //validate the token $token = new token; if (!$token->validate($_SERVER['PHP_SELF'])) { message::add($text['message-invalid_token'],'negative'); header('Location: streams.php'); exit; } //check for all required data $msg = ''; if (empty($stream_name)) { $msg .= $text['message-required']." ".$text['label-stream_name']."
\n"; } if (empty($stream_location)) { $msg .= $text['message-required']." ".$text['label-stream_location']."
\n"; } if (empty($stream_enabled)) { $msg .= $text['message-required']." ".$text['label-stream_enabled']."
\n"; } //if (empty($domain_uuid)) { $msg .= $text['message-required']." ".$text['label-domain_uuid']."
\n"; } //if (empty($stream_description)) { $msg .= $text['message-required']." ".$text['label-stream_description']."
\n"; } if (!empty($msg) && empty($_POST["persistformvar"])) { require_once "resources/header.php"; require_once "resources/persist_form_var.php"; echo "
\n"; echo "
\n"; echo $msg."
"; echo "
\n"; persistformvar($_POST); echo "
\n"; require_once "resources/footer.php"; return; } //get the original stream location if (!empty($stream_uuid) && is_uuid($stream_uuid)) { //get the original value from the database $sql = "select stream_location from v_streams "; $sql .= "where stream_uuid = :stream_uuid "; $parameters['stream_uuid'] = $stream_uuid; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { $original_stream_location = $row["stream_location"]; } //update call center queues if (!empty($original_stream_location)) { $sql = "update v_call_center_queues "; $sql .= "set queue_moh_sound = :stream_location "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and queue_moh_sound = :original_stream_location "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['stream_location'] = $stream_location; $parameters['original_stream_location'] = $original_stream_location; $database->execute($sql, $parameters); unset($parameters); } //update destinations if (!empty($original_stream_location)) { $sql = "update v_destinations "; $sql .= "set destination_hold_music = :stream_location "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and destination_hold_music = :original_stream_location "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['stream_location'] = $stream_location; $parameters['original_stream_location'] = $original_stream_location; $database->execute($sql, $parameters); unset($parameters); } //update extensions if (!empty($original_stream_location)) { $sql = "update v_extensions "; $sql .= "set hold_music = :stream_location "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and hold_music = :original_stream_location "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['stream_location'] = $stream_location; $parameters['original_stream_location'] = $original_stream_location; $database->execute($sql, $parameters); unset($parameters); } //update ivr menus if (!empty($original_stream_location)) { $sql = "update v_ivr_menus "; $sql .= "set ivr_menu_ringback = :stream_location "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ivr_menu_ringback = :original_stream_location "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['stream_location'] = $stream_location; $parameters['original_stream_location'] = $original_stream_location; $database->execute($sql, $parameters); unset($parameters); } //update ring groups if (!empty($original_stream_location)) { $sql = "update v_ring_groups "; $sql .= "set ring_group_ringback = :stream_location "; $sql .= "where domain_uuid = :domain_uuid "; $sql .= "and ring_group_ringback = :original_stream_location "; $parameters['domain_uuid'] = $_SESSION['domain_uuid']; $parameters['stream_location'] = $stream_location; $parameters['original_stream_location'] = $original_stream_location; $database->execute($sql, $parameters); unset($parameters); } } //add the stream_uuid if (empty($_POST["stream_uuid"])) { $stream_uuid = uuid(); } //prepare the array $array['streams'][0]['stream_uuid'] = $stream_uuid; if (permission_exists('stream_all')) { $array['streams'][0]['domain_uuid'] = $domain_uuid; } elseif ($action == 'add') { $array['streams'][0]['domain_uuid'] = $_SESSION["domain_uuid"]; } $array['streams'][0]['stream_name'] = $stream_name; $array['streams'][0]['stream_location'] = $stream_location; $array['streams'][0]['stream_enabled'] = $stream_enabled; $array['streams'][0]['stream_description'] = $stream_description; //save to the data $database->save($array); $message = $database->message; //redirect the user if (isset($action)) { if ($action == "add") { $_SESSION["message"] = $text['message-add']; } if ($action == "update") { $_SESSION["message"] = $text['message-update']; } header('Location: stream_edit.php?id='.urlencode($stream_uuid)); return; } } //pre-populate the form if (!empty($_GET) && (empty($_POST["persistformvar"]) || $_POST["persistformvar"] != "true")) { $stream_uuid = $_GET["id"]; $sql = "select * from v_streams "; $sql .= "where stream_uuid = :stream_uuid "; $parameters['stream_uuid'] = $stream_uuid; $row = $database->select($sql, $parameters, 'row'); if (is_array($row) && @sizeof($row) != 0) { $domain_uuid = $row["domain_uuid"]; $stream_name = $row["stream_name"]; $stream_location = $row["stream_location"]; $stream_enabled = $row["stream_enabled"]; $stream_description = $row["stream_description"]; } unset($sql, $parameters, $row); } //need stream_all permission to edit a global stream if (!permission_exists('stream_all') && $domain_uuid == null) { header('Location: streams.php'); return; } //create token $object = new token; $token = $object->create($_SERVER['PHP_SELF']); //include the header $document['title'] = $text['title-stream']; require_once "resources/header.php"; //show the content echo "
\n"; echo "
\n"; echo "
".$text['title-stream']."
\n"; echo "
\n"; echo button::create(['type'=>'button','label'=>$text['button-back'],'icon'=>$settings->get('theme', 'button_icon_back'),'id'=>'btn_back','link'=>'streams.php']); echo button::create(['type'=>'submit','label'=>$text['button-save'],'icon'=>$settings->get('theme', 'button_icon_save'),'id'=>'btn_save','style'=>'margin-left: 15px;']); echo "
\n"; echo "
\n"; echo "
\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; if (permission_exists('stream_all')) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; } echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
\n"; echo " ".$text['label-stream_name']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-stream_name']."\n"; echo "
\n"; echo " ".$text['label-stream_location']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-stream_location']."\n"; echo "
\n"; echo " ".$text['label-stream_enabled']."\n"; echo "\n"; if ($input_toggle_style_switch) { echo " \n"; } echo " \n"; if ($input_toggle_style_switch) { echo " \n"; echo " \n"; } echo "
\n"; echo $text['description-stream_enabled']."\n"; echo "
\n"; echo " ".$text['label-domain_uuid']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo !empty($text['description-domain_uuid'])."\n"; echo "
\n"; echo " ".$text['label-stream_description']."\n"; echo "\n"; echo " \n"; echo "
\n"; echo $text['description-stream_description']."\n"; echo "
"; echo "
\n"; echo "

"; echo "\n"; echo "\n"; echo "
"; //include the footer require_once "resources/footer.php"; ?>