From c16a4f60b56e649d5aae14e73edd06f0a5a8da38 Mon Sep 17 00:00:00 2001 From: Andrew Querol Date: Thu, 14 Jan 2021 14:01:24 -0600 Subject: [PATCH 1/2] Group extensions by their call_group when viewing all extensions. --- .../resources/content.php | 44 ++++++++++++------- 1 file changed, 28 insertions(+), 16 deletions(-) diff --git a/app/basic_operator_panel/resources/content.php b/app/basic_operator_panel/resources/content.php index e71a5d7492..1fe82ce8c8 100644 --- a/app/basic_operator_panel/resources/content.php +++ b/app/basic_operator_panel/resources/content.php @@ -168,6 +168,11 @@ echo " "; echo ""; echo "
"; +// Define the arrays to ensure no errors are omitted below with the sizeof operators +$user_extensions = array(); +$grouped_extensions = array(); +$other_extensions = array(); + if (is_array($activity)) foreach ($activity as $extension => $ext) { unset($block); @@ -453,42 +458,49 @@ if (is_array($activity)) foreach ($activity as $extension => $ext) { if (in_array($extension, $_SESSION['user']['extensions'])) { $user_extensions[] = $block; - } - else { + } elseif (!empty($ext['call_group'])) { + $grouped_extensions[$ext['call_group']][] = $block; + } else { $other_extensions[] = $block; } } - -if (is_array($user_extensions) && @sizeof($user_extensions) > 0) { +if (sizeof($user_extensions) > 0) { echo "
"; if (is_array($user_extensions)) foreach ($user_extensions as $ext_block) { echo $ext_block; } - echo "
"; + echo "
"; } -if ($_REQUEST['group'] != '') { - if (is_array($user_extensions) && @sizeof($user_extensions) > 0) { echo "
"; } - echo "".ucwords(escape($_REQUEST['group'])).""; - echo "

"; -} -else if (is_array($user_extensions) && @sizeof($user_extensions) > 0) { - echo "
"; - echo "".$text['label-other_extensions'].""; - echo "

"; +if (sizeof($grouped_extensions) > 0) { + // Ensure alphabetical order + ksort($grouped_extensions); + foreach ($grouped_extensions as $group => $extensions) { + echo "".ucwords(escape($group)).""; + echo "

"; + echo "
"; + foreach ($extensions as $ext_block) { + echo $ext_block; + } + echo "

"; + } } if (sizeof($other_extensions) > 0) { + echo "".$text['label-other_extensions'].""; + echo "

"; echo "
"; - if (is_array($other_extensions)) foreach ($other_extensions as $ext_block) { + foreach ($other_extensions as $ext_block) { echo $ext_block; } echo "
"; } -else { + +if (sizeof($other_extensions) + sizeof($grouped_extensions) < 1) { echo $text['label-no_extensions_found']; } + echo "

"; /* From 42b421e646f8723f031eeaef4721ee60f5a7da91 Mon Sep 17 00:00:00 2001 From: Andrew Querol Date: Thu, 14 Jan 2021 14:20:38 -0600 Subject: [PATCH 2/2] Add a setting to control the grouping behavior if people want it back the old way. --- app/basic_operator_panel/app_config.php | 8 ++++++++ app/basic_operator_panel/resources/content.php | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/basic_operator_panel/app_config.php b/app/basic_operator_panel/app_config.php index ab1473f8ab..39cd6bf82a 100644 --- a/app/basic_operator_panel/app_config.php +++ b/app/basic_operator_panel/app_config.php @@ -67,5 +67,13 @@ $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; $apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the refresh rate in seconds (<=120) or milliseconds (>=500)."; $y++; + $apps[$x]['default_settings'][$y]['default_setting_uuid'] = "0c273cad-1ee4-48d9-9336-08bc8260579a"; + $apps[$x]['default_settings'][$y]['default_setting_category'] = "operator_panel"; + $apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "group_extensions"; + $apps[$x]['default_settings'][$y]['default_setting_name'] = "boolean"; + $apps[$x]['default_settings'][$y]['default_setting_value'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true"; + $apps[$x]['default_settings'][$y]['default_setting_description'] = "Set if extensions are grouped by call_group when viewing all extensions."; + $y++; ?> \ No newline at end of file diff --git a/app/basic_operator_panel/resources/content.php b/app/basic_operator_panel/resources/content.php index 1fe82ce8c8..ae123ba9ba 100644 --- a/app/basic_operator_panel/resources/content.php +++ b/app/basic_operator_panel/resources/content.php @@ -458,7 +458,7 @@ if (is_array($activity)) foreach ($activity as $extension => $ext) { if (in_array($extension, $_SESSION['user']['extensions'])) { $user_extensions[] = $block; - } elseif (!empty($ext['call_group'])) { + } elseif (!empty($ext['call_group']) && filter_var($_SESSION['operator_panel']['group_extensions']['boolean'], FILTER_VALIDATE_BOOLEAN)) { $grouped_extensions[$ext['call_group']][] = $block; } else { $other_extensions[] = $block;