diff --git a/app/operator_panel/app_languages.php b/app/operator_panel/app_languages.php index 03f2570a72..de86341a78 100644 --- a/app/operator_panel/app_languages.php +++ b/app/operator_panel/app_languages.php @@ -20,4 +20,34 @@ $text['label-no_extensions_found']['pt-pt'] = "Sem extensões encontrado."; $text['label-no_extensions_found']['fr-fr'] = "Aucun extensions trouvés."; + $text['label-status_available']['en-us'] = "Available"; + $text['label-status_available']['es-cl'] = "Disponible"; + $text['label-status_available']['pt-pt'] = "Disponível"; + $text['label-status_available']['fr-fr'] = "Disponible"; + + $text['label-status_available_on_demand']['en-us'] = "Available (On Demand)"; + $text['label-status_available_on_demand']['es-cl'] = "Disponible (A Pedido)"; + $text['label-status_available_on_demand']['pt-pt'] = "Disponível (A Pedido)"; + $text['label-status_available_on_demand']['fr-fr'] = "Disponble (sur demande)"; + + $text['label-status_logged_out']['en-us'] = "Logged Out"; + $text['label-status_logged_out']['es-cl'] = "Desconectado"; + $text['label-status_logged_out']['pt-pt'] = "Desligado"; + $text['label-status_logged_out']['fr-fr'] = "Déconnexion"; + + $text['label-status_logged_out_or_unknown']['en-us'] = "Logged Out / Unknown"; + $text['label-status_logged_out_or_unknown']['es-cl'] = "Desconectado / Desconocido"; + $text['label-status_logged_out_or_unknown']['pt-pt'] = "Desligado / Unknown"; + $text['label-status_logged_out_or_unknown']['fr-fr'] = "Déconnexion / Unknown"; + + $text['label-status_on_break']['en-us'] = "On Break"; + $text['label-status_on_break']['es-cl'] = "En Pausa"; + $text['label-status_on_break']['pt-pt'] = "Em Pausa"; + $text['label-status_on_break']['fr-fr'] = "En Pause"; + + $text['label-status_do_not_disturb']['en-us'] = "Do Not Disturb"; + $text['label-status_do_not_disturb']['es-cl'] = "No molestar"; + $text['label-status_do_not_disturb']['pt-pt'] = "Não Perturbar"; + $text['label-status_do_not_disturb']['fr-fr'] = "Ne pas déranger"; + ?> \ No newline at end of file diff --git a/app/operator_panel/index_inc.php b/app/operator_panel/index_inc.php index b370289a4b..4a84e94e6d 100644 --- a/app/operator_panel/index_inc.php +++ b/app/operator_panel/index_inc.php @@ -144,8 +144,8 @@ foreach ($activity as $extension => $ext) { //determine extension draggable state if (!in_array($extension, $_SESSION['user']['extensions'])) { if ($ext_state == "ringing") { - if ($_GET['vd_ext_from'] == '') { - $draggable = true; // selectable - is ringing so can transfer away the call (can set as vd_ext_from) + if ($_GET['vd_ext_from'] == '' && $dir_icon == 'inbound') { + $draggable = true; // selectable - is ringing and not outbound so can transfer away the call (can set as vd_ext_from) } else { $draggable = false; // unselectable - is ringing so can't send a call to the ext (can't set as vd_ext_to) @@ -176,12 +176,35 @@ foreach ($activity as $extension => $ext) { $draggable = true; } + //determine extension (user) status + switch ($ext['user_status']) { + case "Available" : + $status_icon = "available"; + $status_hover = $text['label-status_available']; + break; + case "Available (On Demand)" : + $status_icon = "available_on_demand"; + $status_hover = $text['label-status_available_on_demand']; + break; + case "On Break" : + $status_icon = "on_break"; + $status_hover = $text['label-status_on_break']; + break; + case "Do Not Disturb" : + $status_icon = "do_not_disturb"; + $status_hover = $text['label-status_do_not_disturb']; + break; + default : + $status_icon = "logged_out"; + $status_hover = $text['label-status_logged_out_or_unknown']; + } + $block .= "
";
$block .= " "; // DRAG FROM
- $block .= " ";
+ $block .= " | ";
$block .= " "; diff --git a/app/operator_panel/resources/functions/get_call_activity.php b/app/operator_panel/resources/functions/get_call_activity.php index a55f655aed..aa96b6eae1 100644 --- a/app/operator_panel/resources/functions/get_call_activity.php +++ b/app/operator_panel/resources/functions/get_call_activity.php @@ -2,10 +2,23 @@ function get_call_activity() { global $db; - //get the extensions - $sql = "select extension, number_alias, effective_caller_id_name, effective_caller_id_number, call_group, description from v_extensions "; - $sql .= "where domain_uuid = '".$_SESSION['domain_uuid']."' "; - $sql .= "order by extension asc "; + //get the extensions and their user status + $sql = "select "; + $sql .= "e.extension, "; + $sql .= "e.number_alias, "; + $sql .= "e.effective_caller_id_name, "; + $sql .= "e.effective_caller_id_number, "; + $sql .= "e.call_group, "; + $sql .= "e.description, "; + $sql .= "u.user_status "; + $sql .= "from "; + $sql .= "v_extensions as e "; + $sql .= "left outer join v_extension_users as eu on ( eu.extension_uuid = e.extension_uuid and eu.domain_uuid = '".$_SESSION['domain_uuid']."' ) "; + $sql .= "left outer join v_users as u on ( u.user_uuid = eu.user_uuid and u.domain_uuid = '".$_SESSION['domain_uuid']."' ) "; + $sql .= "where "; + $sql .= "e.domain_uuid = '".$_SESSION['domain_uuid']."' "; + $sql .= "order by "; + $sql .= "e.extension asc "; $prep_statement = $db->prepare($sql); $prep_statement->execute(); $extensions = $prep_statement->fetchAll(PDO::FETCH_NAMED); diff --git a/app/operator_panel/resources/images/status_available.png b/app/operator_panel/resources/images/status_available.png new file mode 100644 index 0000000000..fc4024d2e0 Binary files /dev/null and b/app/operator_panel/resources/images/status_available.png differ diff --git a/app/operator_panel/resources/images/status_available_on_demand.png b/app/operator_panel/resources/images/status_available_on_demand.png new file mode 100644 index 0000000000..8bf9824cc8 Binary files /dev/null and b/app/operator_panel/resources/images/status_available_on_demand.png differ diff --git a/app/operator_panel/resources/images/status_do_not_disturb.png b/app/operator_panel/resources/images/status_do_not_disturb.png new file mode 100644 index 0000000000..db5ab5860f Binary files /dev/null and b/app/operator_panel/resources/images/status_do_not_disturb.png differ diff --git a/app/operator_panel/resources/images/person.png b/app/operator_panel/resources/images/status_logged_out.png similarity index 100% rename from app/operator_panel/resources/images/person.png rename to app/operator_panel/resources/images/status_logged_out.png diff --git a/app/operator_panel/resources/images/status_on_break.png b/app/operator_panel/resources/images/status_on_break.png new file mode 100644 index 0000000000..9f7e53eb4d Binary files /dev/null and b/app/operator_panel/resources/images/status_on_break.png differ |