From 107dcd9b6903b50cba8097793f2b29fc2acdec48 Mon Sep 17 00:00:00 2001 From: Nate Jones Date: Tue, 17 Feb 2015 11:04:56 +0000 Subject: [PATCH] Operator Panel: Added ability to set Eavesdrop destination (from assigned extensions), pause refresh manually or on mouse hover of control elements for better user experience. Hide eavesdrop function if no extensions assigned to user (addresses Issue 851). --- app/operator_panel/app_languages.php | 20 ++++++ app/operator_panel/index.php | 8 ++- app/operator_panel/index_inc.php | 61 +++++++++++++----- .../resources/images/refresh_active.gif | Bin 0 -> 1079 bytes .../resources/images/refresh_paused.png | Bin 0 -> 501 bytes resources/functions.php | 24 ++++--- 6 files changed, 87 insertions(+), 26 deletions(-) create mode 100644 app/operator_panel/resources/images/refresh_active.gif create mode 100644 app/operator_panel/resources/images/refresh_paused.png diff --git a/app/operator_panel/app_languages.php b/app/operator_panel/app_languages.php index 8ec1eeaf3d..d53768c89e 100644 --- a/app/operator_panel/app_languages.php +++ b/app/operator_panel/app_languages.php @@ -60,6 +60,11 @@ $text['label-eavesdrop']['pt-pt'] = "Bisbilhotar"; $text['label-eavesdrop']['fr-fr'] = "Espionner"; + $text['description-eavesdrop_destination']['en-us'] = "Select the Eavesdrop Destination"; + $text['description-eavesdrop_destination']['es-cl'] = "Seleccione el Eavesdrop Destino"; + $text['description-eavesdrop_destination']['pt-pt'] = "Selecione o Eavesdrop Destino"; + $text['description-eavesdrop_destination']['fr-fr'] = "Sélectionnez le Eavesdrop Destinations"; + $text['label-kill']['en-us'] = "Kill"; $text['label-kill']['es-cl'] = "Finalizar Llamada"; $text['label-kill']['pt-pt'] = "Chamada Final"; @@ -80,4 +85,19 @@ $text['button-all']['pt-pt'] = "Tudo"; $text['button-all']['fr-fr'] = "Tous"; + $text['label-refresh_pause']['en-us'] = "Pause Refresh"; + $text['label-refresh_pause']['es-cl'] = "Actualizar Pausa"; + $text['label-refresh_pause']['pt-pt'] = "Pausa Atualizar"; + $text['label-refresh_pause']['fr-fr'] = "Pause Actualiser"; + + $text['label-refresh_enable']['en-us'] = "Enable Refresh"; + $text['label-refresh_enable']['es-cl'] = "Activar Actualizar"; + $text['label-refresh_enable']['pt-pt'] = "Habilitar Atualização"; + $text['label-refresh_enable']['fr-fr'] = "Activer Actualiser"; + + $text['label-call_direction']['en-us'] = "Call Direction"; + $text['label-call_direction']['es-cl'] = "Dirección de la llamada"; + $text['label-call_direction']['pt-pt'] = "Direção da chamada"; + $text['label-call_direction']['fr-fr'] = "Sens de l'appel"; + ?> \ No newline at end of file diff --git a/app/operator_panel/index.php b/app/operator_panel/index.php index 278b1853c0..3a85312628 100644 --- a/app/operator_panel/index.php +++ b/app/operator_panel/index.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2012 + Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): @@ -119,6 +119,7 @@ require_once "resources/header.php"; url += '&vd_ext_from=' + document.getElementById('vd_ext_from').value; url += '&vd_ext_to=' + document.getElementById('vd_ext_to').value; url += '&group=' + ((document.getElementById('group')) ? document.getElementById('group').value : ''); + url += '&eavesdrop_dest=' + ((document.getElementById('eavesdrop_dest')) ? document.getElementById('eavesdrop_dest').value : ''); \" title=\"\">"; } function refresh_start() { + if (document.getElementById('refresh_state')) { document.getElementById('refresh_state').innerHTML = "\"<?=$text['label-refresh_pause']?\" title=\"\">"; } interval_timer_id = setInterval( function() { url = source_url; url += '&vd_ext_from=' + document.getElementById('vd_ext_from').value; url += '&vd_ext_to=' + document.getElementById('vd_ext_to').value; url += '&group=' + ((document.getElementById('group')) ? document.getElementById('group').value : ''); + url += '&eavesdrop_dest=' + ((document.getElementById('eavesdrop_dest')) ? document.getElementById('eavesdrop_dest').value : ''); ,origination_caller_id_number=" + ext + "}user/@ &eavesdrop(" + chan_uuid + ")"; + cmd = "bgapi originate {origination_caller_id_name=,origination_caller_id_number=" + ext + "}user/"+(document.getElementById('eavesdrop_dest').value)+"@ &eavesdrop(" + chan_uuid + ")"; return cmd; } diff --git a/app/operator_panel/index_inc.php b/app/operator_panel/index_inc.php index bf2a8e9635..989b0b87f9 100644 --- a/app/operator_panel/index_inc.php +++ b/app/operator_panel/index_inc.php @@ -17,7 +17,7 @@ The Initial Developer of the Original Code is Mark J Crane - Portions created by the Initial Developer are Copyright (C) 2008-2012 + Portions created by the Initial Developer are Copyright (C) 2008-2015 the Initial Developer. All Rights Reserved. Contributor(s): @@ -57,6 +57,8 @@ foreach ($activity as $extension => $fields) { $groups = array_unique($groups); sort($groups); +$onhover_pause_refresh = " onmouseover='refresh_stop();' onmouseout='refresh_start();'"; + echo ""; echo " "; echo " "; echo " "; echo " "; echo "
"; @@ -84,34 +86,61 @@ if (sizeof($_SESSION['user']['extensions']) > 0) { $status_options[5]['style'] = "op_btn_status_logged_out"; foreach ($status_options as $status_option) { - echo " \n"; + echo " \n"; } } echo " "; +echo " "; +echo " "; +echo " "; + +if (permission_exists('operator_panel_eavesdrop')) { + echo " "; +} if (sizeof($groups) > 0) { - echo " "; + echo " "; } +echo " "; +echo "
"; +echo " \"".$text['label-refresh_pause']."\""; +echo " "; + if (sizeof($_SESSION['user']['extensions']) > 1) { + echo " "; + echo " "; + echo " \n"; + } + else if (sizeof($_SESSION['user']['extensions']) == 1) { + echo " "; + } + echo " "; + echo " "; if (sizeof($groups) > 5) { //show select box - echo " \n"; + echo " "; + echo " "; foreach ($groups as $group) { - echo " \n"; + echo " \n"; } - echo " \n"; + echo " \n"; } else { //show buttons - echo " "; + echo " "; foreach ($groups as $group) { - echo " "; + echo " "; } } + echo "
"; + echo "
"; @@ -256,7 +285,7 @@ foreach ($activity as $extension => $ext) { $block .= " "; $block .= " "; if ($dir_icon != '') { - $block .= " "; + $block .= " \"".$text['label-call_direction']."\""; } $block .= "