Operator Panel: Extension icon now indicates Status (Available, On Break, etc).

This commit is contained in:
Nate Jones 2014-12-08 19:43:21 +00:00
parent b3b6dcfb61
commit 12e7b163a8
8 changed files with 73 additions and 7 deletions

View File

@ -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";
?>

View File

@ -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 .= "<div id='".$extension."' class='ext ".$style."' ".(($_GET['vd_ext_from'] == $extension || $_GET['vd_ext_to'] == $extension) ? "style='border-style: dotted;'" : null)." ".(($ext_state != 'active' && $ext_state != 'ringing') ? "ondrop='drop(event, this.id);' ondragover='allowDrop(event, this.id);' ondragleave='discardDrop(event, this.id);'" : null).">"; // DRAG TO
$block .= "<table class='ext ".$style."'>";
$block .= " <tr>";
$block .= " <td class='ext_icon'>";
$block .= " <span name='".$extension."'>"; // DRAG FROM
$block .= "<img id='".$call_identifier."' class='ext_icon' src='resources/images/person.png' ".(($draggable) ? "draggable='true' ondragstart=\"drag(event, this.parentNode.getAttribute('name'));\" onclick=\"virtual_drag('".$call_identifier."', '".$extension."');\"" : "onfocus='this.blur();' draggable='false' style='cursor: not-allowed;'").">";
$block .= "<img id='".$call_identifier."' class='ext_icon' src='resources/images/status_".$status_icon.".png' title='".$status_hover."' ".(($draggable) ? "draggable='true' ondragstart=\"drag(event, this.parentNode.getAttribute('name'));\" onclick=\"virtual_drag('".$call_identifier."', '".$extension."');\"" : "onfocus='this.blur();' draggable='false' style='cursor: not-allowed;'").">";
$block .= "</span>";
$block .= " </td>";
$block .= " <td class='ext_info ".$style."'>";

View File

@ -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);

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB