Voicemail - Edit: Add playback of selected Greeting.

This commit is contained in:
fusionate
2023-11-06 17:12:07 +00:00
parent 2ed2ac63ae
commit e5f2a697bf

View File

@@ -354,8 +354,13 @@
$parameters['domain_uuid'] = $domain_uuid;
$parameters['voicemail_id'] = $voicemail_id;
$database = new database;
$greetings = $database->select($sql, $parameters, 'all');
unset($sql, $parameters);
$rows = $database->select($sql, $parameters, 'all');
if (!empty($rows) && is_array($rows) && @sizeof($rows) != 0) {
foreach ($rows as $row) {
$greetings[$row['greeting_id']] = $row;
}
}
unset($sql, $parameters, $rows, $row);
//get the voicemail options
if ($action == 'update' && is_uuid($voicemail_uuid)) {
@@ -483,6 +488,22 @@
}
//show the content
if (permission_exists('voicemail_greeting_play') || permission_exists('voicemail_greeting_download')) {
echo "<script type='text/javascript' language='JavaScript'>\n";
echo " function set_playable(id, greeting_selected) {\n";
echo " if (greeting_selected != undefined) {\n";
echo " $('#recording_audio_' + id).attr('src', '../voicemail_greetings/voicemail_greetings.php?id=".escape($voicemail_id)."&a=download&type=rec&uuid=' + greeting_selected);\n";
echo " $('#recording_audio_' + id).attr('type', 'audio/wav');\n";
echo " $('#recording_button_' + id).show();\n";
echo " }\n";
echo " else {\n";
echo " $('#recording_button_' + id).hide();\n";
echo " $('#recording_audio_' + id).attr('src','').attr('type','');\n";
echo " }\n";
echo " }\n";
echo "</script>\n";
}
echo "<form method='post' name='frm' id='frm'>\n";
echo "<div class='action_bar' id='action_bar'>\n";
@@ -542,20 +563,40 @@
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vncell' valign='top' align='left' nowrap='nowrap'>\n";
echo "<td class='vncell' rowspan='2' valign='top' align='left' nowrap='nowrap'>\n";
echo " ".$text['label-greeting']."\n";
echo "</td>\n";
echo "<td class='vtable playback_progress_bar_background' id='recording_progress_bar_greeting' style='display: none; border-bottom: none; padding-top: 0 !important; padding-bottom: 0 !important;' align='left'><span class='playback_progress_bar' id='recording_progress_greeting'></span></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td class='vtable' align='left'>\n";
echo " <select class='formfld' name='greeting_id' onchange=\"if (this.selectedIndex == 0) { $('#alternate_greeting_id').slideDown(); } else { $('#alternate_greeting_id').slideUp(); }\">\n";
echo " <select class='formfld' name='greeting_id' id='greeting_id' onchange=\"if (this.selectedIndex == 0) { $('#alternate_greeting_id').slideDown(); } else { $('#alternate_greeting_id').slideUp(); } ".(permission_exists('voicemail_greeting_play') || permission_exists('voicemail_greeting_download') ? "recording_reset('greeting'); set_playable('greeting', this.options[this.selectedIndex].getAttribute('data-uuid'));" : null)."\">\n";
echo " <option value=''>".$text['label-default']."</option>\n";
echo " <option value='0' ".(isset($greeting_id) && $greeting_id == "0" ? "selected='selected'" : null).">".$text['label-none']."</option>\n";
$playable_greeting = false;
if (is_array($greetings) && @sizeof($greetings) != 0) {
foreach ($greetings as $greeting) {
$selected = ($greeting['greeting_id'] == $greeting_id) ? 'selected' : null;
echo "<option value='".escape($greeting['greeting_id'])."' ".escape($selected).">".escape($greeting['greeting_name'])."</option>\n";
if (!empty($greeting_id) && $greeting['greeting_id'] == $greeting_id) {
$selected = "selected='selected'";
$playable_greeting = $greeting['greeting_filename'];
}
else {
unset($selected);
}
echo "<option value='".escape($greeting['greeting_id'])."' ".($selected ?? '')." data-uuid='".$greeting['voicemail_greeting_uuid']."'>".escape($greeting['greeting_name'])."</option>\n";
}
}
echo " </select>\n";
if ((permission_exists('voicemail_greeting_play') || permission_exists('voicemail_greeting_download')) && !empty($playable_greeting)) {
switch (pathinfo($playable_greeting, PATHINFO_EXTENSION)) {
case 'wav' : $audio_file_type = 'audio/wav'; break;
case 'mp3' : $audio_file_type = 'audio/mpeg'; break;
case 'ogg' : $audio_file_type = 'audio/ogg'; break;
}
}
echo "<audio id='recording_audio_greeting' style='display: none;' preload='none' ontimeupdate=\"update_progress('greeting')\" onended=\"recording_reset('greeting');\" src='../voicemail_greetings/voicemail_greetings.php?id=".escape($voicemail_id)."&a=download&type=rec&uuid=".escape($greetings[$greeting_id]['voicemail_greeting_uuid'])."' type='".($audio_file_type ?? '')."'></audio>";
echo button::create(['type'=>'button','title'=>$text['label-play'].' / '.$text['label-pause'],'icon'=>$_SESSION['theme']['button_icon_play'],'id'=>'recording_button_greeting','style'=>'display: '.(!empty($audio_file_type) ? 'inline' : 'none'),'onclick'=>"recording_play('greeting')"]);
unset($playable_greeting, $audio_file_type);
echo "<br />\n";
echo $text['description-greeting']."\n";
echo "</td>\n";
@@ -875,4 +916,4 @@
//include the footer
require_once "resources/footer.php";
?>
?>