Extension - List: Show registration status icon (when permitted).

This commit is contained in:
fusionate
2024-08-12 12:15:40 -06:00
parent 4b23913555
commit 37af618998
3 changed files with 128 additions and 53 deletions

View File

@@ -374,6 +374,22 @@
$apps[$x]['default_settings'][$y]['default_setting_value'] = "5";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "true";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the maximum number of concurrent outbound calls allowed";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "3a4a14e4-8937-4a02-8038-ea5afb1d842f";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "extension";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "icon_registered_color";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#12d600";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the color of the status icon when the extension is registered.";
$y++;
$apps[$x]['default_settings'][$y]['default_setting_uuid'] = "10e5288b-9ac7-40c9-b5e7-c99be78a6b02";
$apps[$x]['default_settings'][$y]['default_setting_category'] = "extension";
$apps[$x]['default_settings'][$y]['default_setting_subcategory'] = "icon_unregistered_color";
$apps[$x]['default_settings'][$y]['default_setting_name'] = "text";
$apps[$x]['default_settings'][$y]['default_setting_value'] = "#e21b1b";
$apps[$x]['default_settings'][$y]['default_setting_enabled'] = "false";
$apps[$x]['default_settings'][$y]['default_setting_description'] = "Set the color of the status icon when the extension is unregistered.";
//cache details
$apps[$x]['cache']['key'] = "directory.\${extension}@\${domain_name}";

View File

@@ -2132,31 +2132,83 @@ $text['label-accountcode']['zh-cn'] = "帐户代码";
$text['label-accountcode']['ja-jp'] = "口座番号";
$text['label-accountcode']['ko-kr'] = "계정 코드";
$text['label-is_registered']['en-us'] = "Registered";
$text['label-is_registered']['en-gb'] = "Registered";
$text['label-is_registered']['ar-eg'] = "المسجلة";
$text['label-is_registered']['de-at'] = "Registriert";
$text['label-is_registered']['de-ch'] = "Registriert";
$text['label-is_registered']['de-de'] = "Registriert";
$text['label-is_registered']['el-gr'] = "Εγγεγραμμένος";
$text['label-is_registered']['es-cl'] = "Registrado";
$text['label-is_registered']['es-mx'] = "Registrado";
$text['label-is_registered']['fr-ca'] = "Inscrit";
$text['label-is_registered']['fr-fr'] = "Inscrit";
$text['label-is_registered']['he-il'] = "רשום";
$text['label-is_registered']['it-it'] = "Registrato";
$text['label-is_registered']['nl-nl'] = "Geregistreerd";
$text['label-is_registered']['pl-pl'] = "Rejestrować";
$text['label-is_registered']['pt-br'] = "Registrado";
$text['label-is_registered']['pt-pt'] = "Registado";
$text['label-is_registered']['ro-ro'] = "Înregistrat";
$text['label-is_registered']['ru-ru'] = "Зарегистрировано";
$text['label-is_registered']['sv-se'] = "Registrerad";
$text['label-is_registered']['uk-ua'] = "Реєстрація";
$text['label-is_registered']['tr-tr'] = "Kayıtlı";
$text['label-is_registered']['zh-cn'] = "挂号的";
$text['label-is_registered']['ja-jp'] = "登録済み";
$text['label-is_registered']['ko-kr'] = "등기";
$text['label-registered']['en-us'] = "Registered";
$text['label-registered']['en-gb'] = "Registered";
$text['label-registered']['ar-eg'] = "المسجلة";
$text['label-registered']['de-at'] = "Registriert";
$text['label-registered']['de-ch'] = "Registriert";
$text['label-registered']['de-de'] = "Registriert";
$text['label-registered']['el-gr'] = "Εγγεγραμμένος";
$text['label-registered']['es-cl'] = "Registrado";
$text['label-registered']['es-mx'] = "Registrado";
$text['label-registered']['fr-ca'] = "Inscrit";
$text['label-registered']['fr-fr'] = "Inscrit";
$text['label-registered']['he-il'] = "רשום";
$text['label-registered']['it-it'] = "Registrato";
$text['label-registered']['nl-nl'] = "Geregistreerd";
$text['label-registered']['pl-pl'] = "Rejestrować";
$text['label-registered']['pt-br'] = "Registrado";
$text['label-registered']['pt-pt'] = "Registado";
$text['label-registered']['ro-ro'] = "Înregistrat";
$text['label-registered']['ru-ru'] = "Зарегистрировано";
$text['label-registered']['sv-se'] = "Registrerad";
$text['label-registered']['uk-ua'] = "Реєстрація";
$text['label-registered']['tr-tr'] = "Kayıtlı";
$text['label-registered']['zh-cn'] = "挂号的";
$text['label-registered']['ja-jp'] = "登録済み";
$text['label-registered']['ko-kr'] = "등기";
$text['label-unregistered']['en-us'] = "Unregistered";
$text['label-unregistered']['en-gb'] = "Unregistered";
$text['label-unregistered']['ar-eg'] = "غير مسجل";
$text['label-unregistered']['de-at'] = "Nicht registriert";
$text['label-unregistered']['de-ch'] = "Nicht registriert";
$text['label-unregistered']['de-de'] = "Nicht registriert";
$text['label-unregistered']['el-gr'] = "Αδήλωτος";
$text['label-unregistered']['es-cl'] = "No registrado";
$text['label-unregistered']['es-mx'] = "No registrado";
$text['label-unregistered']['fr-ca'] = "Non enregistré";
$text['label-unregistered']['fr-fr'] = "Non enregistré";
$text['label-unregistered']['he-il'] = "לא רשום";
$text['label-unregistered']['it-it'] = "Non registrato";
$text['label-unregistered']['nl-nl'] = "Niet geregistreerd";
$text['label-unregistered']['pl-pl'] = "Niezarejestrowany";
$text['label-unregistered']['pt-br'] = "Não registrado";
$text['label-unregistered']['pt-pt'] = "Não registado";
$text['label-unregistered']['ro-ro'] = "Neînregistrat";
$text['label-unregistered']['ru-ru'] = "Незарегистрированный";
$text['label-unregistered']['sv-se'] = "Oregistrerad";
$text['label-unregistered']['uk-ua'] = "Незареєстрований";
$text['label-unregistered']['tr-tr'] = "Kayıtlı değil";
$text['label-unregistered']['zh-cn'] = "未註冊";
$text['label-unregistered']['ja-jp'] = "未登録";
$text['label-unregistered']['ko-kr'] = "미등록";
$text['label-registrations']['en-us'] = "Registrations";
$text['label-registrations']['en-gb'] = "Registrations";
$text['label-registrations']['ar-eg'] = "التسجيلات";
$text['label-registrations']['de-at'] = "Registrierungen";
$text['label-registrations']['de-ch'] = "Registrierungen";
$text['label-registrations']['de-de'] = "Registrierungen";
$text['label-registrations']['el-gr'] = "Συνδέσεις";
$text['label-registrations']['es-cl'] = "Inscripciones";
$text['label-registrations']['es-mx'] = "Inscripciones";
$text['label-registrations']['fr-ca'] = "Enregistrements SIP";
$text['label-registrations']['fr-fr'] = "Enregistrements SIP";
$text['label-registrations']['he-il'] = "רישומים";
$text['label-registrations']['it-it'] = "Registrazioni";
$text['label-registrations']['nl-nl'] = "Registraties";
$text['label-registrations']['pl-pl'] = "Rejestracje";
$text['label-registrations']['pt-br'] = "Registros";
$text['label-registrations']['pt-pt'] = "Inscrições";
$text['label-registrations']['ro-ro'] = "Înregistrări";
$text['label-registrations']['ru-ru'] = "Регистрации SIP";
$text['label-registrations']['sv-se'] = "Registreringar";
$text['label-registrations']['uk-ua'] = "Реєстрації";
$text['label-registrations']['tr-tr'] = "Kayıtlar";
$text['label-registrations']['zh-cn'] = "登记";
$text['label-registrations']['ja-jp'] = "登録";
$text['label-registrations']['ko-kr'] = "등록";
$text['label-column_name']['en-us'] = "Column Name";
$text['label-column_name']['en-gb'] = "Column Name";

View File

@@ -17,7 +17,7 @@
The Initial Developer of the Original Code is
Mark J Crane <markjcrane@fusionpbx.com>
Portions created by the Initial Developer are Copyright (C) 2008-2020
Portions created by the Initial Developer are Copyright (C) 2008-2024
the Initial Developer. All Rights Reserved.
Contributor(s):
@@ -305,6 +305,9 @@
echo "<th>".$text['label-domain']."</th>\n";
//echo th_order_by('domain_name', $text['label-domain'], $order_by, $order);
}
if (permission_exists('extension_registered')) {
echo "<th>&nbsp;</th>\n";
}
echo th_order_by('extension', $text['label-extension'], $order_by, $order);
echo th_order_by('effective_caller_id_name', $text['label-effective_cid_name'], $order_by, $order, null, "class='hide-xs'");
if (permission_exists("outbound_caller_id_name")) {
@@ -325,9 +328,6 @@
if (permission_exists("extension_user_context")) {
echo th_order_by('user_context', $text['label-user_context'], $order_by, $order);
}
if (permission_exists('extension_registered')) {
echo "<th>".$text['label-is_registered']."</th>\n";
}
echo th_order_by('enabled', $text['label-enabled'], $order_by, $order, null, "class='center'");
echo th_order_by('description', $text['label-description'], $order_by, $order, null, "class='hide-sm-dn'");
if (permission_exists('extension_edit') && !empty($_SESSION['theme']['list_row_edit_button']['boolean']) && $_SESSION['theme']['list_row_edit_button']['boolean'] == 'true') {
@@ -351,6 +351,37 @@
if (!empty($_GET['show']) && $_GET['show'] == "all" && permission_exists('extension_all')) {
echo " <td>".escape($_SESSION['domains'][$row['domain_uuid']]['domain_name'])."</td>\n";
}
if (permission_exists('extension_registered')) {
$icon_registered_color = $_SESSION['extension']['icon_registered_color']['text'] ?? '#12d600';
$icon_unregistered_color = $_SESSION['extension']['icon_unregistered_color']['text'] ?? '#e21b1b';
$extension_number = $row['extension'].'@'.$_SESSION['domains'][$row['domain_uuid']]['domain_name'];
$extension_number_alias = $row['number_alias'];
if (!empty($extension_number_alias)) {
$extension_number_alias .= '@'.$_SESSION['domains'][$row['domain_uuid']]['domain_name'];
}
$found_count = 0;
if (is_array($registrations)) {
foreach ($registrations as $array) {
if ($extension_number == $array['user'] || ($extension_number_alias != '' && $extension_number_alias == $array['user'])) {
$found_count++;
}
}
}
if ($found_count > 0) {
echo " <td class='middle button center' style='text-align: center; cursor: help;' title=\"".($found_count > 1 ? $found_count.' '.$text['label-registrations'] : $text['label-registered'])."\">";
if ($found_count > 1) {
echo "<div style='display: inline-block; width: 8px; height: 8px; border-radius: 50%; background-color: ".$icon_registered_color."; border: 1px solid ".color_adjust($icon_registered_color, -0.07)."; margin-top: 4px;'></div>\n";
}
echo " <div style='display: inline-block; width: 8px; height: 8px; line-height: 8px; border-radius: 50%; background-color: ".$icon_registered_color."; border: 1px solid ".color_adjust($icon_registered_color, -0.07)."; margin-top: 4px; ".($found_count > 1 ? 'margin-left: -7px;' : null)."'></div>\n";
}
else {
echo " <td class='middle button center' style='text-align: center; cursor: help;' title=\"".$text['label-unregistered']."\">";
echo "<div style='display: inline-block; width: 8px; height: 8px; border-radius: 50%; background-color: ".$icon_unregistered_color."; border: 1px solid ".color_adjust($icon_unregistered_color, -0.15)."; margin-top: 4px;'></div>\n";
}
unset($extension_number, $extension_number_alias, $found_count, $array);
echo "</td>\n";
}
echo " <td>";
if (permission_exists('extension_edit')) {
echo "<a href='".$list_row_url."' title=\"".$text['button-edit']."\">".escape($row['extension'])."</a>";
@@ -379,30 +410,6 @@
if (permission_exists("extension_user_context")) {
echo " <td>".escape($row['user_context'])."</td>\n";
}
if (permission_exists('extension_registered')) {
echo " <td>";
$extension_number = $row['extension'].'@'.$_SESSION['domains'][$row['domain_uuid']]['domain_name'];
$extension_number_alias = $row['number_alias'];
if (!empty($extension_number_alias)) {
$extension_number_alias .= '@'.$_SESSION['domains'][$row['domain_uuid']]['domain_name'];
}
$found_count = 0;
if (is_array($registrations)) {
foreach ($registrations as $array) {
if ($extension_number == $array['user'] || ($extension_number_alias != '' && $extension_number_alias == $array['user'])) {
$found_count++;
}
}
}
if ($found_count > 0) {
echo $text['label-true']." (".$found_count.")";
}
else {
echo $text['label-false'];
}
unset($extension_number, $extension_number_alias, $found_count, $array);
echo "&nbsp;</td>\n";
}
if (permission_exists('extension_enabled')) {
echo " <td class='no-link center'>";
echo button::create(['type'=>'submit','class'=>'link','label'=>$text['label-'.$row['enabled']],'title'=>$text['button-toggle'],'onclick'=>"list_self_check('checkbox_".$x."'); list_action_set('toggle'); list_form_submit('form_list')"]);