diff --git a/app/basic_operator_panel/app_languages.php b/app/basic_operator_panel/app_languages.php index 4a79d465d2..05e1cfd06b 100644 --- a/app/basic_operator_panel/app_languages.php +++ b/app/basic_operator_panel/app_languages.php @@ -432,6 +432,30 @@ $text['label-call_direction']['zh-cn'] = "呼叫方向"; $text['label-call_direction']['ja-jp'] = "通話方向"; $text['label-call_direction']['ko-kr'] = "통화 방향"; +$text['label-filter']['en-us'] = "Filter..."; +$text['label-filter']['en-gb'] = "Filter..."; +$text['label-filter']['ar-eg'] = "فيلم"; +$text['label-filter']['de-at'] = "Filter..."; +$text['label-filter']['de-ch'] = "Filter..."; +$text['label-filter']['de-de'] = "Filter..."; +$text['label-filter']['es-cl'] = "Filtro..."; +$text['label-filter']['es-mx'] = "Filtro..."; +$text['label-filter']['fr-ca'] = "Filtre..."; +$text['label-filter']['fr-fr'] = "Filtre..."; +$text['label-filter']['he-il'] = "Filter..."; +$text['label-filter']['it-it'] = "Filtro..."; +$text['label-filter']['nl-nl'] = "Filter..."; +$text['label-filter']['pl-pl'] = "Filter..."; +$text['label-filter']['pt-br'] = "Filtro..."; +$text['label-filter']['pt-pt'] = "Filtro..."; +$text['label-filter']['ro-ro'] = "Filtru..."; +$text['label-filter']['ru-ru'] = "Фильтр"; +$text['label-filter']['sv-se'] = "Filter..."; +$text['label-filter']['uk-ua'] = "Фільтри"; +$text['label-filter']['zh-cn'] = "筛选"; +$text['label-filter']['ja-jp'] = "フィルター"; +$text['label-filter']['ko-kr'] = "필터"; + $text['description-eavesdrop_destination']['en-us'] = "Select the Eavesdrop Destination"; $text['description-eavesdrop_destination']['en-gb'] = "Select the Eavesdrop Destination"; $text['description-eavesdrop_destination']['ar-eg'] = "حدد وجهة Eavesdrop"; @@ -480,4 +504,4 @@ $text['button-all']['zh-cn'] = "全部"; $text['button-all']['ja-jp'] = "全て"; $text['button-all']['ko-kr'] = "모두"; -?> +?> \ No newline at end of file diff --git a/app/basic_operator_panel/index.php b/app/basic_operator_panel/index.php index e506904912..117b4e41ad 100644 --- a/app/basic_operator_panel/index.php +++ b/app/basic_operator_panel/index.php @@ -270,8 +270,7 @@ unset($refresh_default); 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 += '&extension_filter=' + ((document.getElementById('extension_filter')) ? document.getElementById('extension_filter').value : ''); - url += '&name_filter=' + ((document.getElementById('name_filter')) ? document.getElementById('name_filter').value : ''); + url += '&filter=' + ((document.getElementById('search')) ? document.getElementById('search').value : ''); url += '&eavesdrop_dest=' + ((document.getElementById('eavesdrop_dest')) ? document.getElementById('eavesdrop_dest').value : ''); if (document.getElementById('sort1')) if (document.getElementById('sort1').value == '1') url += '&sort'; @@ -359,8 +358,7 @@ unset($refresh_default); 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 += '&extension_filter=' + ((document.getElementById('extension_filter')) ? document.getElementById('extension_filter').value : ''); - url += '&name_filter=' + ((document.getElementById('name_filter')) ? document.getElementById('name_filter').value : ''); + url += '&filter=' + ((document.getElementById('search')) ? document.getElementById('search').value : ''); url += '&eavesdrop_dest=' + ((document.getElementById('eavesdrop_dest')) ? document.getElementById('eavesdrop_dest').value : ''); if (document.getElementById('sort1')) if (document.getElementById('sort1').value == '1') url += '&sort'; diff --git a/app/basic_operator_panel/resources/classes/basic_operator_panel.php b/app/basic_operator_panel/resources/classes/basic_operator_panel.php index eec11fc750..f2da858a3b 100644 --- a/app/basic_operator_panel/resources/classes/basic_operator_panel.php +++ b/app/basic_operator_panel/resources/classes/basic_operator_panel.php @@ -57,7 +57,6 @@ if (!class_exists('basic_operator_panel')) { $sql .= "e.extension, "; $sql .= "e.number_alias, "; $sql .= "e.effective_caller_id_name, "; - $sql .= "lower(e.effective_caller_id_name) as filter_name, "; $sql .= "e.effective_caller_id_number, "; $sql .= "e.call_group, "; $sql .= "e.description, "; diff --git a/app/basic_operator_panel/resources/content.php b/app/basic_operator_panel/resources/content.php index 93c29c4227..e8555e886e 100644 --- a/app/basic_operator_panel/resources/content.php +++ b/app/basic_operator_panel/resources/content.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-2022 + Portions created by the Initial Developer are Copyright (C) 2008-2023 the Initial Developer. All Rights Reserved. Contributor(s): @@ -189,27 +189,30 @@ if (!empty($groups)) { echo " \n"; } else { //show buttons echo " \n"; - if (is_array($groups)) foreach ($groups as $group) { - echo " \n"; + if (is_array($groups)) { + foreach ($groups as $group) { + echo " \n"; + } } } echo " \n"; } echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; -echo " \n"; +echo " \n"; +if (!empty($_REQUEST['filter'])) { + echo button::create(['label'=>$text['button-reset'],'icon'=>$_SESSION['theme']['button_icon_reset'],'type'=>'button','id'=>'btn_reset','style'=>(empty($_REQUEST['filter']) ? 'display: none;' : null),'onclick'=>"document.getElementById('search').value = '';",'onmouseover'=>'refresh_stop();','onmouseout'=>'refresh_start();']); +} echo " \n"; echo " \n"; echo " \n"; @@ -233,8 +236,15 @@ if (is_array($activity)) { if ($_REQUEST['group'] != '' && substr_count($ext['call_group'], $_REQUEST['group']) == 0 && !in_array($extension, $_SESSION['user']['extensions'])) { continue; } //filter by extension or name, if defined - if ($_REQUEST['extension_filter'] != '' && substr_count($ext['extension'], $_REQUEST['extension_filter']) == 0 && !in_array($extension, $_SESSION['user']['extensions'])) { continue; } - if ($_REQUEST['name_filter'] != '' && substr_count($ext['filter_name'], $_REQUEST['name_filter']) == 0 && !in_array($extension, $_SESSION['user']['extensions'])) { continue; } + if (!empty($_REQUEST['filter'])) { + if ( + !in_array($extension, $_SESSION['user']['extensions']) && ( + substr_count($ext['extension'], $_REQUEST['filter']) == 0 && + substr_count(strtolower($ext['description'] ?? ''), strtolower($_REQUEST['filter'])) == 0 && + substr_count(strtolower($ext['effective_caller_id_name'] ?? ''), strtolower($_REQUEST['filter'])) == 0 + ) + ) { continue; } + } //check if feature code being called $format_number = (!empty($ext['dest']) && substr($ext['dest'], 0, 1) == '*') ? false : true; @@ -332,8 +342,9 @@ if (is_array($activity)) { } if ($found_count > 0) { //determine block style by state (if any) and register status - $style = ($ext_state != '') ? "op_ext op_state_".$ext_state : "op_ext"; - } else { + $style = !empty($ext_state) ? "op_ext op_state_".$ext_state : "op_ext"; + } + else { $style = "off_ext"; } unset($extension_number, $found_count, $array); @@ -383,10 +394,10 @@ if (is_array($activity)) { if ($ext['uuid'] != '' && $ext['uuid'] == $ext['call_uuid'] && $ext['variable_bridge_uuid'] == '') { $draggable = false; } - else if ($ext_state == 'ringing' && $ext['variable_call_direction'] == 'local') { + else if (!empty($ext_state) && $ext_state == 'ringing' && $ext['variable_call_direction'] == 'local') { $draggable = false; } - else if ($ext_state != '' && !$format_number) { + else if (!empty($ext_state) && !$format_number) { $draggable = false; } else { @@ -543,87 +554,89 @@ if (sizeof($user_extensions) > 0) { } } - foreach($valet_array as $row) { - $extension = $row['extension']; - $ext_state = 'active'; - $style = "op_ext op_valet_park_active"; - $draggable = false; + if (!empty($valet_array) && is_array($valet_array) && @sizeof($valet_array) != 0) { + foreach ($valet_array as $row) { + $extension = $row['extension']; + $ext_state = 'active'; + $style = "op_ext op_valet_park_active"; + $draggable = false; - //build the list of park extensions - $valet_block .= "
\n"; // DRAG TO - $valet_block .= "\n"; - $valet_block .= " \n"; - $valet_block .= " \n"; - $valet_block .= " \n"; + $valet_block .= " \n"; + $valet_block .= "
\n"; - $valet_block .= " "; // DRAG FROM - $valet_block .= "\n"; - $valet_block .= "\n"; - $valet_block .= " \n"; - if ($dir_icon != '') { - $valet_block .= " \"".$text['label-call_direction']."\"\n"; - } - $valet_block .= "
\n"; - //if ($ext_state != '') { - $valet_block .= " \n"; - $valet_block .= "
\n"; - $valet_block .= " ".escape($ext['call_length'])."
\n"; - $valet_block .= " \n"; - - $call_identifier_record = $ext['call_uuid']; - - $valet_block .= "\n"; - //transfer - //if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { - // $valet_block .= ""; - //} - $valet_block .= "
\n"; - if (permission_exists('operator_panel_call_details')) { - $valet_block .= " ".escape($row['caller_id_name'])."
".escape($row['caller_id_number'])."
\n"; + //build the list of park extensions + $valet_block .= "
\n"; // DRAG TO + $valet_block .= "\n"; + $valet_block .= " \n"; + $valet_block .= " \n"; + $valet_block .= " \n"; - $valet_block .= " \n"; - $valet_block .= "
\n"; + $valet_block .= " "; // DRAG FROM + $valet_block .= "\n"; + $valet_block .= "\n"; + $valet_block .= " \n"; + if ($dir_icon != '') { + $valet_block .= " \"".$text['label-call_direction']."\"\n"; } - $valet_block .= " \n"; - //transfer - //if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { - $call_identifier_transfer = $ext['variable_bridge_uuid']; - $valet_block .= "
\n"; - $valet_block .= " \n"; - $valet_block .= "
\n"; - //} - //} - //else { - // //call - // if (in_array($extension, $_SESSION['user']['extensions'])) { - // $valet_block .= " "; - // $valet_block .= "
"; - // $valet_block .= " "; - // $valet_block .= "
\n"; - // } - //} - $valet_block .= "
\n"; + $valet_block .= "
\n"; + //if ($ext_state != '') { + $valet_block .= " \n"; + $valet_block .= "
\n"; + $valet_block .= " ".escape($ext['call_length'])."
\n"; + $valet_block .= " \n"; - if (if_group("superadmin") && isset($_GET['debug'])) { - $valet_block .= "\n"; - $valet_block .= "From ID
    ".escape($extension)."
\n"; - $valet_block .= "uuid
    ".escape($ext['uuid'])."
\n"; - $valet_block .= "call_uuid
    ".escape($ext['call_uuid'])."
\n"; - $valet_block .= "variable_bridge_uuid
    ".escape($ext['variable_bridge_uuid'])."
\n"; - $valet_block .= "direction
    ".escape($ext['direction'])."
\n"; - $valet_block .= "variable_call_direction
    ".escape($ext['variable_call_direction'])."
\n"; - $valet_block .= "state
    ".escape($ext['state'])."
\n"; - $valet_block .= "cid_num
    ".escape($ext['cid_num'])."
\n"; - $valet_block .= "dest
    ".escape($ext['dest'])."
\n"; - $valet_block .= "context
    ".escape($ext['context'])."
\n"; - $valet_block .= "presence_id
    ".escape($ext['presence_id'])."
\n"; - $valet_block .= "callstate
    ".escape($ext['callstate'])."
\n"; - $valet_block .= "
\n"; + $call_identifier_record = $ext['call_uuid']; + + $valet_block .= "
\n"; + //transfer + //if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { + // $valet_block .= ""; + //} + $valet_block .= "
\n"; + if (permission_exists('operator_panel_call_details')) { + $valet_block .= " ".escape($row['caller_id_name'])."
".escape($row['caller_id_number'])."
\n"; + } + $valet_block .= "
\n"; + //transfer + //if (in_array($extension, $_SESSION['user']['extensions']) && $ext_state == 'active') { + $call_identifier_transfer = $ext['variable_bridge_uuid']; + $valet_block .= "
\n"; + $valet_block .= " \n"; + $valet_block .= "
\n"; + //} + //} + //else { + // //call + // if (in_array($extension, $_SESSION['user']['extensions'])) { + // $valet_block .= " "; + // $valet_block .= "
"; + // $valet_block .= " "; + // $valet_block .= "
\n"; + // } + //} + $valet_block .= "
\n"; + + if (if_group("superadmin") && isset($_GET['debug'])) { + $valet_block .= "\n"; + $valet_block .= "From ID
    ".escape($extension)."
\n"; + $valet_block .= "uuid
    ".escape($ext['uuid'])."
\n"; + $valet_block .= "call_uuid
    ".escape($ext['call_uuid'])."
\n"; + $valet_block .= "variable_bridge_uuid
    ".escape($ext['variable_bridge_uuid'])."
\n"; + $valet_block .= "direction
    ".escape($ext['direction'])."
\n"; + $valet_block .= "variable_call_direction
    ".escape($ext['variable_call_direction'])."
\n"; + $valet_block .= "state
    ".escape($ext['state'])."
\n"; + $valet_block .= "cid_num
    ".escape($ext['cid_num'])."
\n"; + $valet_block .= "dest
    ".escape($ext['dest'])."
\n"; + $valet_block .= "context
    ".escape($ext['context'])."
\n"; + $valet_block .= "presence_id
    ".escape($ext['presence_id'])."
\n"; + $valet_block .= "callstate
    ".escape($ext['callstate'])."
\n"; + $valet_block .= "
\n"; + } + $valet_block .= "
\n"; + echo $valet_block; + unset($valet_block); } - $valet_block .= "\n"; - echo $valet_block; - unset($valet_block); } echo "
\n";