Update music_on_hold.php
Update music_on_hold.php prevent duplciate records if the path already exists.
This commit is contained in:
parent
a20881395e
commit
e3d23acb3c
|
|
@ -46,100 +46,121 @@
|
||||||
//increase the exucution time
|
//increase the exucution time
|
||||||
ini_set('max_execution_time', 7200);
|
ini_set('max_execution_time', 7200);
|
||||||
|
|
||||||
//get music_on_hold records, build array
|
//get the music_on_hold array
|
||||||
$sql = "select * from v_music_on_hold ";
|
$sql = "select * from v_music_on_hold ";
|
||||||
$sql .= "where domain_uuid = '".$domain_uuid."' ";
|
$sql .= "where ( ";
|
||||||
|
$sql .= "domain_uuid = '".$_SESSION['domain_uuid']."' ";
|
||||||
if (permission_exists('music_on_hold_global_view')) {
|
if (permission_exists('music_on_hold_global_view')) {
|
||||||
$sql .= "or domain_uuid is null ";
|
$sql .= "or domain_uuid is null ";
|
||||||
}
|
}
|
||||||
|
$sql .= ") ";
|
||||||
$sql .= "order by domain_uuid desc, music_on_hold_rate asc, music_on_hold_name asc";
|
$sql .= "order by domain_uuid desc, music_on_hold_rate asc, music_on_hold_name asc";
|
||||||
$prep_statement = $db->prepare(check_sql($sql));
|
$prep_statement = $db->prepare(check_sql($sql));
|
||||||
$prep_statement->execute();
|
$prep_statement->execute();
|
||||||
$result = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
$streams = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
||||||
if (count($result) > 0) {
|
|
||||||
foreach($result as $row) {
|
|
||||||
$stream_name_only = (substr_count($row['music_on_hold_name'], '/') > 0) ? substr($row['music_on_hold_name'], 0, strpos($row['music_on_hold_name'], '/')) : $row['music_on_hold_name'];
|
|
||||||
$stream_domain_uuid = ($row['domain_uuid'] != '') ? $row['domain_uuid'] : '_global_';
|
|
||||||
$stream_rate = $row['music_on_hold_rate'];
|
|
||||||
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['uuid'] = $row['music_on_hold_uuid'];
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['name'] = $row['music_on_hold_name']; //value may include '/[rate]'
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['path'] = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $row['music_on_hold_path']);
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['shuffle'] = $row['music_on_hold_shuffle'];
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['channels'] = $row['music_on_hold_channels'];
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['interval'] = $row['music_on_hold_interval'];
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['chime_list'] = $row['music_on_hold_chime_list'];
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['chime_freq'] = $row['music_on_hold_chime_freq'];
|
|
||||||
$mohs[$stream_domain_uuid][$stream_name_only][$stream_rate]['chime_max'] = $row['music_on_hold_chime_max'];
|
|
||||||
|
|
||||||
$stream_names[(($stream_domain_uuid == '_global_') ? 'global' : 'local')][] = $stream_name_only;
|
|
||||||
$stream_paths[$row['music_on_hold_uuid']] = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $row['music_on_hold_path']);
|
|
||||||
$stream_domains[$row['music_on_hold_uuid']][] = $row['domain_uuid'];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
unset($sql, $prep_statement, $result);
|
|
||||||
foreach ($mohs as &$moh) { ksort($moh); }
|
|
||||||
$stream_names['global'] = array_unique($stream_names['global']);
|
|
||||||
$stream_names['local'] = array_unique($stream_names['local']);
|
|
||||||
sort($stream_names['global'], SORT_NATURAL);
|
|
||||||
sort($stream_names['local'], SORT_NATURAL);
|
|
||||||
//echo "<pre>".print_r($mohs, true)."</pre>\n\n\n\n\n"; exit;
|
|
||||||
|
|
||||||
//download music on hold file
|
//download music on hold file
|
||||||
if ($_GET['action'] == "download") {
|
if ($_GET['action'] == "download") {
|
||||||
$stream_uuid = $_GET['id'];
|
//get the uuid
|
||||||
$stream_file = base64_decode($_GET['file']);
|
$stream_uuid = $_GET['id'];
|
||||||
$stream_full_path = path_join($stream_paths[$stream_uuid], $stream_file);
|
|
||||||
|
|
||||||
session_cache_limiter('public');
|
//get the record
|
||||||
if (file_exists($stream_full_path)) {
|
foreach($streams as $row) {
|
||||||
$fd = fopen($stream_full_path, "rb");
|
if ($stream_uuid == $row['music_on_hold_uuid']) {
|
||||||
if ($_GET['t'] == "bin") {
|
$stream_domain_uuid = $row['domain_uuid'];
|
||||||
header("Content-Type: application/force-download");
|
$stream_name = $row['music_on_hold_name'];
|
||||||
header("Content-Type: application/octet-stream");
|
$stream_path = $row['music_on_hold_path'];
|
||||||
header("Content-Type: application/download");
|
break;
|
||||||
header("Content-Description: File Transfer");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$stream_file_ext = pathinfo($stream_file, PATHINFO_EXTENSION);
|
|
||||||
switch ($stream_file_ext) {
|
|
||||||
case "wav" : header("Content-Type: audio/x-wav"); break;
|
|
||||||
case "mp3" : header("Content-Type: audio/mpeg"); break;
|
|
||||||
case "ogg" : header("Content-Type: audio/ogg"); break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
header('Content-Disposition: attachment; filename="'.$stream_file.'"');
|
|
||||||
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
//replace the sounds_dir variable in the path
|
||||||
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
|
// str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
|
||||||
header("Content-Length: ".filesize($stream_full_path));
|
$stream_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $stream_path);
|
||||||
fpassthru($fd);
|
|
||||||
}
|
//get the file
|
||||||
exit;
|
$stream_file = base64_decode($_GET['file']);
|
||||||
|
$stream_full_path = path_join($stream_path, $stream_file);
|
||||||
|
|
||||||
|
//dowload the file
|
||||||
|
session_cache_limiter('public');
|
||||||
|
if (file_exists($stream_full_path)) {
|
||||||
|
$fd = fopen($stream_full_path, "rb");
|
||||||
|
if ($_GET['t'] == "bin") {
|
||||||
|
header("Content-Type: application/force-download");
|
||||||
|
header("Content-Type: application/octet-stream");
|
||||||
|
header("Content-Type: application/download");
|
||||||
|
header("Content-Description: File Transfer");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$stream_file_ext = pathinfo($stream_file, PATHINFO_EXTENSION);
|
||||||
|
switch ($stream_file_ext) {
|
||||||
|
case "wav" : header("Content-Type: audio/x-wav"); break;
|
||||||
|
case "mp3" : header("Content-Type: audio/mpeg"); break;
|
||||||
|
case "ogg" : header("Content-Type: audio/ogg"); break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
header('Content-Disposition: attachment; filename="'.$stream_file.'"');
|
||||||
|
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
|
||||||
|
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
|
||||||
|
header("Content-Length: ".filesize($stream_full_path));
|
||||||
|
fpassthru($fd);
|
||||||
|
}
|
||||||
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
//upload music on hold file
|
//upload music on hold file
|
||||||
if ($_POST['action'] == 'upload' && is_array($_FILES) && is_uploaded_file($_FILES['file']['tmp_name'])) {
|
if ($_POST['action'] == 'upload' && is_array($_FILES) && is_uploaded_file($_FILES['file']['tmp_name'])) {
|
||||||
|
|
||||||
//determine name & scope
|
//determine name & scope
|
||||||
if ($_POST['name_new'] != '') {
|
if ($_POST['name_new'] != '') {
|
||||||
$stream_scope = (permission_exists('music_on_hold_global_add')) ? $_POST['scope'] : 'local';
|
if (permission_exists('music_on_hold_global_add')) { $stream_scope = $_POST['scope']; } else { $stream_scope = 'local'; }
|
||||||
$stream_name_only = strtolower($_POST['name_new']);
|
$stream_name_only = strtolower($_POST['name_new']);
|
||||||
$stream_new_name = true;
|
if (is_numeric($_POST['rate'])) { $stream_rate = $_POST['rate']; } else { $stream_rate = ''; }
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$tmp = explode('|', $_POST['name']);
|
$stream_uuid = $_POST['name'];
|
||||||
$stream_scope = $tmp[0];
|
foreach ($streams as $row) {
|
||||||
$stream_name_only = $tmp[1];
|
if ($stream_uuid == $row['music_on_hold_uuid']) {
|
||||||
$stream_new_name = false;
|
//set the variables
|
||||||
|
$stream_domain_uuid = $row['domain_uuid'];
|
||||||
|
$stream_name = $row['music_on_hold_name'];
|
||||||
|
$stream_path = $row['music_on_hold_path'];
|
||||||
|
$stream_rate = $row['music_on_hold_rate'];
|
||||||
|
$stream_shuffle = $row['music_on_hold_shuffle'];
|
||||||
|
$stream_channels = $row['music_on_hold_channels'];
|
||||||
|
$stream_internal = $row['music_on_hold_interval'];
|
||||||
|
$stream_timer_name = $row['music_on_hold_timer_name'];
|
||||||
|
$stream_chime_list = $row['music_on_hold_chime_list'];
|
||||||
|
$stream_chime_freq = $row['music_on_hold_chime_freq'];
|
||||||
|
$stream_chime_max = $row['music_on_hold_chime_max'];
|
||||||
|
$stream_rate = $row['music_on_hold_rate'];
|
||||||
|
|
||||||
|
//set the scope
|
||||||
|
if (strlen($stream_domain_uuid) == 0) {
|
||||||
|
$stream_scope = "public";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$stream_scope = "local";
|
||||||
|
}
|
||||||
|
|
||||||
|
//end the loop
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$stream_name_only = $stream_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
//get remaining values
|
//get remaining values
|
||||||
$stream_rate = $_POST['rate'];
|
|
||||||
$stream_file_name_temp = $_FILES['file']['tmp_name'];
|
$stream_file_name_temp = $_FILES['file']['tmp_name'];
|
||||||
$stream_file_name = $_FILES['file']['name'];
|
$stream_file_name = $_FILES['file']['name'];
|
||||||
$stream_file_ext = strtolower(pathinfo($stream_file_name, PATHINFO_EXTENSION));
|
$stream_file_ext = strtolower(pathinfo($stream_file_name, PATHINFO_EXTENSION));
|
||||||
//check file type
|
//check file type
|
||||||
$valid_file_type = ($stream_file_ext == 'wav' || $stream_file_ext == 'mp3' || $stream_file_ext == 'ogg') ? true : false;
|
$valid_file_type = ($stream_file_ext == 'wav' || $stream_file_ext == 'mp3' || $stream_file_ext == 'ogg') ? true : false;
|
||||||
//check permissions
|
//check permissions
|
||||||
$has_permission = ( ($stream_scope == 'global' && permission_exists('music_on_hold_global_add')) || ($stream_scope == 'local' && permission_exists('music_on_hold_add')) ) ? true : false;
|
$has_permission = (($stream_scope == 'global' && permission_exists('music_on_hold_global_add'))
|
||||||
|
|| ($stream_scope == 'local' && permission_exists('music_on_hold_add')) ) ? true : false;
|
||||||
|
|
||||||
//process, if possible
|
//process, if possible
|
||||||
if (!$valid_file_type) {
|
if (!$valid_file_type) {
|
||||||
$_SESSION['message'] = $text['message-unsupported_file_type'];
|
$_SESSION['message'] = $text['message-unsupported_file_type'];
|
||||||
|
|
@ -166,35 +187,50 @@
|
||||||
(($stream_scope == 'global') ? 'global' : $_SESSION['domain_name']),
|
(($stream_scope == 'global') ? 'global' : $_SESSION['domain_name']),
|
||||||
$stream_name_only, $path_rate
|
$stream_name_only, $path_rate
|
||||||
);
|
);
|
||||||
//flag to mark if there already has such music on hold profile
|
//find whether the path already exists
|
||||||
$stream_path_found = false;
|
$stream_new_name = true;
|
||||||
//begin query
|
foreach ($streams as $row) {
|
||||||
$music_on_hold_uuid = uuid();
|
$alternate_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $row['music_on_hold_path']);
|
||||||
$sql = "insert into v_music_on_hold ";
|
if ($stream_path == $row['music_on_hold_path']
|
||||||
$sql .= "( ";
|
|| $stream_path == $alternate_path) {
|
||||||
$sql .= "music_on_hold_uuid, ";
|
$stream_new_name = false;
|
||||||
$sql .= "domain_uuid, ";
|
break;
|
||||||
$sql .= "music_on_hold_name, ";
|
}
|
||||||
$sql .= "music_on_hold_path, ";
|
}
|
||||||
$sql .= "music_on_hold_rate, ";
|
|
||||||
$sql .= "music_on_hold_shuffle, ";
|
//set the variables
|
||||||
$sql .= "music_on_hold_channels, ";
|
|
||||||
$sql .= "music_on_hold_interval, ";
|
|
||||||
$sql .= "music_on_hold_timer_name, ";
|
|
||||||
$sql .= "music_on_hold_chime_list, ";
|
|
||||||
$sql .= "music_on_hold_chime_freq, ";
|
|
||||||
$sql .= "music_on_hold_chime_max ";
|
|
||||||
$sql .= ") values ";
|
|
||||||
//new name
|
|
||||||
if ($stream_new_name) {
|
|
||||||
$music_on_hold_name = $stream_name_only;
|
$music_on_hold_name = $stream_name_only;
|
||||||
$music_on_hold_path = str_replace($_SESSION['switch']['sounds']['dir'], '$${sounds_dir}', $stream_path);
|
$music_on_hold_path = str_replace('$${sounds_dir}', $_SESSION['switch']['sounds']['dir'], $stream_path);
|
||||||
|
|
||||||
|
//begin query
|
||||||
|
if ($stream_new_name) {
|
||||||
|
$music_on_hold_uuid = uuid();
|
||||||
|
$sql = "insert into v_music_on_hold ";
|
||||||
$sql .= "( ";
|
$sql .= "( ";
|
||||||
|
$sql .= "music_on_hold_uuid, ";
|
||||||
|
$sql .= "domain_uuid, ";
|
||||||
|
$sql .= "music_on_hold_name, ";
|
||||||
|
$sql .= "music_on_hold_path, ";
|
||||||
|
$sql .= "music_on_hold_rate, ";
|
||||||
|
$sql .= "music_on_hold_shuffle, ";
|
||||||
|
$sql .= "music_on_hold_channels, ";
|
||||||
|
$sql .= "music_on_hold_interval, ";
|
||||||
|
$sql .= "music_on_hold_timer_name, ";
|
||||||
|
$sql .= "music_on_hold_chime_list, ";
|
||||||
|
$sql .= "music_on_hold_chime_freq, ";
|
||||||
|
$sql .= "music_on_hold_chime_max ";
|
||||||
|
$sql .= ") ";
|
||||||
|
$sql .= "values ( ";
|
||||||
$sql .= "'".$music_on_hold_uuid."',";
|
$sql .= "'".$music_on_hold_uuid."',";
|
||||||
$sql .= (($stream_scope == 'global') ? 'null' : "'".$domain_uuid."'").", ";
|
$sql .= (($stream_scope == 'global') ? 'null' : "'".$domain_uuid."'").", ";
|
||||||
$sql .= "'".check_str($music_on_hold_name)."', ";
|
$sql .= "'".check_str($music_on_hold_name)."', ";
|
||||||
$sql .= "'".check_str($music_on_hold_path)."', ";
|
$sql .= "'".check_str($music_on_hold_path)."', ";
|
||||||
$sql .= "'".check_str($stream_rate)."', ";
|
if (strlen($stream_rate) == 0) {
|
||||||
|
$sql .= "null, ";
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$sql .= "'".$stream_rate."', ";
|
||||||
|
}
|
||||||
$sql .= "'false', ";
|
$sql .= "'false', ";
|
||||||
$sql .= "1, ";
|
$sql .= "1, ";
|
||||||
$sql .= "20, ";
|
$sql .= "20, ";
|
||||||
|
|
@ -205,41 +241,11 @@
|
||||||
$sql .= ") ";
|
$sql .= ") ";
|
||||||
unset($music_on_hold_name, $music_on_hold_path);
|
unset($music_on_hold_name, $music_on_hold_path);
|
||||||
}
|
}
|
||||||
//existing name
|
|
||||||
else {
|
|
||||||
//get existing path
|
|
||||||
$stream_settings = $mohs[(($stream_scope == 'global') ? '_global_' : $domain_uuid)][$stream_name_only][$stream_rate];
|
|
||||||
if (($stream_rate_auto && $stream_name_only == $stream_settings['name']) ||
|
|
||||||
(!$stream_rate_auto && path_join($stream_name_only, $stream_rate) == $stream_settings['name'])) {
|
|
||||||
$stream_path = $stream_settings['path'];
|
|
||||||
$stream_path_found = true;
|
|
||||||
}
|
|
||||||
//not found, finish query
|
|
||||||
else {
|
|
||||||
$music_on_hold_name = $stream_name_only;
|
|
||||||
$music_on_hold_path = str_replace($_SESSION['switch']['sounds']['dir'], '$${sounds_dir}', $stream_path);
|
|
||||||
|
|
||||||
$sql .= "( ";
|
|
||||||
$sql .= "'".$music_on_hold_uuid."',";
|
|
||||||
$sql .= (($stream_scope == 'global') ? 'null' : "'".$domain_uuid."'").", ";
|
|
||||||
$sql .= "'".check_str($music_on_hold_name)."', ";
|
|
||||||
$sql .= "'".check_str($music_on_hold_path)."', ";
|
|
||||||
$sql .= "'".check_str($stream_rate)."', ";
|
|
||||||
$sql .= "'false', ";
|
|
||||||
$sql .= "1, ";
|
|
||||||
$sql .= "20, ";
|
|
||||||
$sql .= "'soft', ";
|
|
||||||
$sql .= "null, ";
|
|
||||||
$sql .= "null, ";
|
|
||||||
$sql .= "null ";
|
|
||||||
$sql .= ") ";
|
|
||||||
unset($music_on_hold_name, $music_on_hold_path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//execute query
|
//execute query
|
||||||
if (!$stream_path_found) {
|
if (!$stream_path_found) {
|
||||||
$db->exec(check_sql($sql));
|
$db->exec(check_sql($sql));
|
||||||
unset($sql);
|
unset($sql);
|
||||||
}
|
}
|
||||||
//check target folder, move uploaded file
|
//check target folder, move uploaded file
|
||||||
if (!is_dir($stream_path)) {
|
if (!is_dir($stream_path)) {
|
||||||
|
|
@ -261,15 +267,26 @@
|
||||||
|
|
||||||
//delete the music on hold file
|
//delete the music on hold file
|
||||||
if ($_GET['action'] == "delete") {
|
if ($_GET['action'] == "delete") {
|
||||||
|
|
||||||
//get submitted values
|
//get submitted values
|
||||||
$stream_uuid = check_str($_GET['id']);
|
$stream_uuid = check_str($_GET['id']);
|
||||||
$stream_file = check_str(base64_decode($_GET['file']));
|
$stream_file = check_str(base64_decode($_GET['file']));
|
||||||
|
|
||||||
|
//get the record
|
||||||
|
foreach($streams as $row) {
|
||||||
|
if ($stream_uuid == $row['music_on_hold_uuid']) {
|
||||||
|
$stream_domain_uuid = $row['domain_uuid'];
|
||||||
|
$stream_name = $row['music_on_hold_name'];
|
||||||
|
$stream_path = $row['music_on_hold_path'];
|
||||||
|
$stream_rate = $row['music_on_hold_rate'];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//check permissions
|
//check permissions
|
||||||
if (
|
if (($stream_domain_uuid == '' && permission_exists('music_on_hold_global_delete')) ||
|
||||||
($stream_domains[$stream_uuid] == '' && permission_exists('music_on_hold_global_delete')) ||
|
($stream_domain_uuid != '' && permission_exists('music_on_hold_delete'))) {
|
||||||
($stream_domains[$stream_uuid] != '' && permission_exists('music_on_hold_delete'))
|
|
||||||
) {
|
|
||||||
$stream_path = $stream_paths[$stream_uuid];
|
|
||||||
//remove specified file
|
//remove specified file
|
||||||
if ($stream_file != '') {
|
if ($stream_file != '') {
|
||||||
@unlink(path_join($stream_path, $stream_file));
|
@unlink(path_join($stream_path, $stream_file));
|
||||||
|
|
@ -292,7 +309,7 @@
|
||||||
$sql = "delete from v_music_on_hold ";
|
$sql = "delete from v_music_on_hold ";
|
||||||
$sql .= "where music_on_hold_uuid = '".$stream_uuid."' ";
|
$sql .= "where music_on_hold_uuid = '".$stream_uuid."' ";
|
||||||
if (!permission_exists('music_on_hold_global_delete')) {
|
if (!permission_exists('music_on_hold_global_delete')) {
|
||||||
$sql .= "and domain_uuid = '".$domain_uuid."' ";
|
$sql .= "and domain_uuid = '".$stream_domain_uuid."' ";
|
||||||
}
|
}
|
||||||
//echo $sql; exit;
|
//echo $sql; exit;
|
||||||
$prep_statement = $db->prepare(check_sql($sql));
|
$prep_statement = $db->prepare(check_sql($sql));
|
||||||
|
|
@ -311,75 +328,6 @@
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
//get variables used to control the order
|
|
||||||
$order_by = check_str($_GET["order_by"]);
|
|
||||||
$order = check_str($_GET["order"]);
|
|
||||||
|
|
||||||
//add the search term
|
|
||||||
$search = check_str($_GET["search"]);
|
|
||||||
if (strlen($search) > 0) {
|
|
||||||
$sql_search = "and (";
|
|
||||||
$sql_search .= "music_on_hold_name like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_path like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_rate like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_shuffle like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_channels like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_interval like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_timer_name like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_chime_list like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_chime_freq like '%".$search."%'";
|
|
||||||
$sql_search .= "or music_on_hold_chime_max like '%".$search."%'";
|
|
||||||
$sql_search .= ")";
|
|
||||||
}
|
|
||||||
|
|
||||||
//additional includes
|
|
||||||
require_once "resources/paging.php";
|
|
||||||
|
|
||||||
//prepare to page the results
|
|
||||||
$sql = "select count(*) as num_rows from v_music_on_hold ";
|
|
||||||
$sql .= "where domain_uuid = '$domain_uuid' ";
|
|
||||||
$sql .= $sql_search;
|
|
||||||
if (strlen($order_by)> 0) { $sql .= "order by $order_by $order "; }
|
|
||||||
$prep_statement = $db->prepare($sql);
|
|
||||||
if ($prep_statement) {
|
|
||||||
$prep_statement->execute();
|
|
||||||
$row = $prep_statement->fetch(PDO::FETCH_ASSOC);
|
|
||||||
if ($row['num_rows'] > 0) {
|
|
||||||
$num_rows = $row['num_rows'];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$num_rows = '0';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//prepare to page the results
|
|
||||||
$rows_per_page = ($_SESSION['domain']['paging']['numeric'] != '') ? $_SESSION['domain']['paging']['numeric'] : 50;
|
|
||||||
$param = "";
|
|
||||||
$page = $_GET['page'];
|
|
||||||
if (strlen($page) == 0) { $page = 0; $_GET['page'] = 0; }
|
|
||||||
list($paging_controls, $rows_per_page, $var3) = paging($num_rows, $param, $rows_per_page);
|
|
||||||
$offset = $rows_per_page * $page;
|
|
||||||
|
|
||||||
//set the default order by
|
|
||||||
if (strlen($order_by) == 0) { $order_by = 'music_on_hold_name, music_on_hold_rate'; }
|
|
||||||
if (strlen($order) == 0) { $order = 'asc'; }
|
|
||||||
|
|
||||||
//get the list
|
|
||||||
$sql = "select * from v_music_on_hold ";
|
|
||||||
$sql .= "where (";
|
|
||||||
$sql .= "domain_uuid = '".$_SESSION['domain_uuid']."' ";
|
|
||||||
if (permission_exists('music_on_hold_global_view')) {
|
|
||||||
$sql .= "or domain_uuid is null ";
|
|
||||||
}
|
|
||||||
$sql .= ") ";
|
|
||||||
$sql .= $sql_search;
|
|
||||||
$sql .= "order by $order_by $order ";
|
|
||||||
$sql .= "limit $rows_per_page offset $offset ";
|
|
||||||
$prep_statement = $db->prepare(check_sql($sql));
|
|
||||||
$prep_statement->execute();
|
|
||||||
$streams = $prep_statement->fetchAll(PDO::FETCH_NAMED);
|
|
||||||
unset ($prep_statement, $sql);
|
|
||||||
|
|
||||||
//include the header
|
//include the header
|
||||||
require_once "resources/header.php";
|
require_once "resources/header.php";
|
||||||
$document['title'] = $text['title-music_on_hold'];
|
$document['title'] = $text['title-music_on_hold'];
|
||||||
|
|
@ -450,31 +398,36 @@
|
||||||
echo " </td>\n";
|
echo " </td>\n";
|
||||||
echo " <td class='vtable' width='70%' style='white-space: nowrap;'>\n";
|
echo " <td class='vtable' width='70%' style='white-space: nowrap;'>\n";
|
||||||
echo " <select name='name' id='name_select' class='formfld' style='width: auto;'>\n";
|
echo " <select name='name' id='name_select' class='formfld' style='width: auto;'>\n";
|
||||||
if (is_array($stream_names['local']) && sizeof($stream_names['local']) > 0) {
|
|
||||||
if (permission_exists('music_on_hold_global_view') && permission_exists('music_on_hold_global_add')) {
|
echo " <optgroup label='".$text['option-local']."'>\n";
|
||||||
echo " <optgroup label='".$text['option-local']."'>\n";
|
foreach ($streams as $row) {
|
||||||
}
|
if (strlen($row['domain_uuid']) > 0) {
|
||||||
foreach ($stream_names['local'] as $local_stream_name) {
|
if (strlen($row['music_on_hold_rate']) == 0) { $option_name = $row['music_on_hold_name']; }
|
||||||
echo " <option value='local|".$local_stream_name."'>".str_replace('_',' ',$local_stream_name)."</option>\n";
|
if (strlen($row['music_on_hold_rate']) > 0) { $option_name = $row['music_on_hold_name'] .'/'.$row['music_on_hold_rate']; }
|
||||||
}
|
echo " <option value='".$row['music_on_hold_uuid']."'>".$option_name."</option>\n";
|
||||||
if (permission_exists('music_on_hold_global_view') && permission_exists('music_on_hold_global_add')) {
|
|
||||||
echo " </optgroup>\n";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (permission_exists('music_on_hold_global_add') && is_array($stream_names['global']) && sizeof($stream_names['global']) > 0) {
|
echo " </optgroup>\n";
|
||||||
|
|
||||||
|
if (permission_exists('music_on_hold_global_add')) {
|
||||||
echo " <optgroup label='".$text['option-global']."'>\n";
|
echo " <optgroup label='".$text['option-global']."'>\n";
|
||||||
foreach ($stream_names['global'] as $global_stream_name) {
|
foreach ($streams as $row) {
|
||||||
echo " <option value='global|".$global_stream_name."' style='font-style: italic;'>".str_replace('_',' ',$global_stream_name)."</option>\n";
|
if (strlen($row['domain_uuid']) == 0) {
|
||||||
|
if (strlen($row['music_on_hold_rate']) == 0) { $option_name = $row['music_on_hold_name']; }
|
||||||
|
if (strlen($row['music_on_hold_rate']) > 0) { $option_name = $row['music_on_hold_name'] .'/'.$row['music_on_hold_rate']; }
|
||||||
|
echo " <option value='".$row['music_on_hold_uuid']."'>".$option_name."</option>\n";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
echo " </optgroup>\n";
|
echo " </optgroup>\n";
|
||||||
}
|
}
|
||||||
echo " </select>";
|
echo " </select>";
|
||||||
|
|
||||||
echo " <button type='button' id='btn_new' class='btn btn-default list_control_icon' style='margin-left: 3px;' onclick=\"name_mode('new');\"><span class='glyphicon glyphicon-plus'></span></button>";
|
echo " <button type='button' id='btn_new' class='btn btn-default list_control_icon' style='margin-left: 3px;' onclick=\"name_mode('new');\"><span class='glyphicon glyphicon-plus'></span></button>";
|
||||||
if (permission_exists('music_on_hold_global_view') && permission_exists('music_on_hold_global_add')) {
|
if (permission_exists('music_on_hold_global_view') && permission_exists('music_on_hold_global_add')) {
|
||||||
echo " <select name='scope' id='scope' class='formfld' style='display: none;' onchange=\"document.getElementById('name_new').focus();\">\n";
|
echo " <select name='scope' id='scope' class='formfld' style='display: none;' onchange=\"document.getElementById('name_new').focus();\">\n";
|
||||||
echo " <option value='local' selected>".$text['option-local']."</option>\n";
|
echo " <option value='local' selected>".$text['option-local']."</option>\n";
|
||||||
echo " <option value='global'>".$text['option-global']."</option>\n";
|
echo " <option value='global'>".$text['option-global']."</option>\n";
|
||||||
echo " </select>\n";
|
echo " </select>\n";
|
||||||
}
|
}
|
||||||
echo " <input class='formfld' style='width: 100px; display: none;' type='text' name='name_new' id='name_new' maxlength='255' value=''>";
|
echo " <input class='formfld' style='width: 100px; display: none;' type='text' name='name_new' id='name_new' maxlength='255' value=''>";
|
||||||
echo " <button type='button' id='btn_select' class='btn btn-default list_control_icon' style='display: none; margin-left: 3px;' onclick=\"name_mode('select');\"><span class='glyphicon glyphicon-list-alt'></span></button>";
|
echo " <button type='button' id='btn_select' class='btn btn-default list_control_icon' style='display: none; margin-left: 3px;' onclick=\"name_mode('select');\"><span class='glyphicon glyphicon-list-alt'></span></button>";
|
||||||
|
|
@ -550,13 +503,12 @@
|
||||||
//set the variables
|
//set the variables
|
||||||
$music_on_hold_name = $row['music_on_hold_name'];
|
$music_on_hold_name = $row['music_on_hold_name'];
|
||||||
$music_on_hold_rate = $row['music_on_hold_rate'];
|
$music_on_hold_rate = $row['music_on_hold_rate'];
|
||||||
|
|
||||||
$stream_scope = $row['domain_uuid'];
|
$stream_scope = $row['domain_uuid'];
|
||||||
if (!$stream_scope) $stream_scope = '_global_';
|
if (!$stream_scope) $stream_scope = '_global_';
|
||||||
$tmp = explode('/', $row['music_on_hold_name']);
|
$tmp = explode('/', $row['music_on_hold_name']);
|
||||||
$stream_name_only = $tmp[0];
|
$stream_name_only = $tmp[0];
|
||||||
$stream_rate = $row['music_on_hold_rate'];
|
$stream_rate = $row['music_on_hold_rate'];
|
||||||
$stream_settings = $mohs[$stream_scope][$stream_name_only][$stream_rate];
|
|
||||||
|
|
||||||
//add vertical space
|
//add vertical space
|
||||||
echo "<tr class='tr_link_void'><td colspan='5'><div style='width: 1px; height: 10px;'></div></td></tr>\n";
|
echo "<tr class='tr_link_void'><td colspan='5'><div style='width: 1px; height: 10px;'></div></td></tr>\n";
|
||||||
|
|
@ -581,20 +533,20 @@
|
||||||
$i = 0;
|
$i = 0;
|
||||||
if (permission_exists('music_on_hold_path')) {
|
if (permission_exists('music_on_hold_path')) {
|
||||||
$stream_icons[$i]['glyphicon'] = 'glyphicon-folder-open';
|
$stream_icons[$i]['glyphicon'] = 'glyphicon-folder-open';
|
||||||
$stream_icons[$i]['title'] = $stream_paths[$row['music_on_hold_uuid']];
|
$stream_icons[$i]['title'] = $row['music_on_hold_name'];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if ($stream_settings['shuffle'] == 'true') {
|
if ($row['music_on_hold_shuffle'] == 'true') {
|
||||||
$stream_icons[$i]['glyphicon'] = 'glyphicon-random';
|
$stream_icons[$i]['glyphicon'] = 'glyphicon-random';
|
||||||
$stream_icons[$i]['title'] = $text['label-shuffle'];
|
$stream_icons[$i]['title'] = $text['label-shuffle'];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if ($stream_settings['chime_list'] != '') {
|
if ($row['music_on_hold_chime_list'] != '') {
|
||||||
$stream_icons[$i]['glyphicon'] = 'glyphicon-bell';
|
$stream_icons[$i]['glyphicon'] = 'glyphicon-bell';
|
||||||
$stream_icons[$i]['title'] = $text['label-chime_list'].': '.$stream_settings['chime_list'];
|
$stream_icons[$i]['title'] = $text['label-chime_list'].': '.$row['music_on_hold_chime_list'];
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
if ($stream_settings['channels'] == '2') {
|
if ($row['music_on_hold_channels'] == '2') {
|
||||||
$stream_icons[$i]['glyphicon'] = 'glyphicon-headphones';
|
$stream_icons[$i]['glyphicon'] = 'glyphicon-headphones';
|
||||||
$stream_icons[$i]['title'] = $text['label-stereo'];
|
$stream_icons[$i]['title'] = $text['label-stereo'];
|
||||||
$stream_icons[$i]['margin'] = 6;
|
$stream_icons[$i]['margin'] = 6;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue