| 994 |
994 |
return $content;
|
| 995 |
995 |
}
|
| 996 |
996 |
|
| 997 |
|
function gateway_info_popup($showgw) {
|
| 998 |
|
global $config, $user_settings;
|
|
997 |
function gateway_info_popup($gw, $status) {
|
|
998 |
global $config;
|
| 999 |
999 |
|
| 1000 |
|
init_config_arr(array('gateways', 'gateway_group'));
|
| 1001 |
|
$a_gateways = return_gateways_array();
|
| 1002 |
|
$gateways_status = return_gateways_status(true);
|
| 1003 |
|
|
| 1004 |
|
$content = "";
|
| 1005 |
|
$gws = array();
|
|
1000 |
/* Cache gateway status for this page load.
|
|
1001 |
* See https://redmine.pfsense.org/issues/12174 */
|
| 1006 |
1002 |
$bgdanger = array('force_down', 'down', 'highloss', 'highdelay');
|
| 1007 |
1003 |
$bgwarning = array('loss', 'delay');
|
| 1008 |
|
$bgsuccess = array('none');
|
|
1004 |
$bgsuccess = array('online', 'none');
|
| 1009 |
1005 |
$bgcolor = "bg-info";
|
| 1010 |
|
|
| 1011 |
|
if (is_array($a_gateways)) {
|
| 1012 |
|
foreach ($a_gateways as $i => $gateway) {
|
| 1013 |
|
if ($gateway['name'] == $showgw) {
|
| 1014 |
|
$gws[] = $gateway['name'];
|
| 1015 |
|
}
|
| 1016 |
|
}
|
| 1017 |
|
}
|
| 1018 |
|
if (is_array($config['gateways']['gateway_group'])) {
|
| 1019 |
|
foreach($config['gateways']['gateway_group'] as $gwgroup) {
|
| 1020 |
|
if ($gwgroup['name'] == $showgw) {
|
| 1021 |
|
foreach ($gwgroup['item'] as $member) {
|
| 1022 |
|
$membersplit = explode("|", $member);
|
| 1023 |
|
$gws[] = $membersplit[0];
|
| 1024 |
|
}
|
| 1025 |
|
}
|
| 1026 |
|
}
|
| 1027 |
|
}
|
| 1028 |
|
|
| 1029 |
|
if (!empty($gws)) {
|
| 1030 |
|
$content .= "<table>\n";
|
| 1031 |
|
$content .= "<thead>\n";
|
| 1032 |
|
$content .= "<tr>\n";
|
| 1033 |
|
$content .= "<th>" . gettext("Name") . "</th><th style='padding-left: 10px;'>" . gettext("Interface") . "</th>";
|
| 1034 |
|
$content .= "<th style='padding-left: 10px;'>" . gettext("Gateway") . "</th></tr>\n";
|
| 1035 |
|
$content .= "</thead>\n";
|
| 1036 |
|
$content .= "<tbody>\n";
|
| 1037 |
|
foreach ($gws as $gw) {
|
| 1038 |
|
foreach ($gateways_status as $gwstatus) {
|
| 1039 |
|
if ($gwstatus['name'] == $gw) {
|
| 1040 |
|
if (in_array($gwstatus['status'], $bgdanger)) {
|
| 1041 |
|
$bgcolor = "bg-danger";
|
| 1042 |
|
} elseif (in_array($gwstatus['status'], $bgwarning)) {
|
| 1043 |
|
$bgcolor = "bg-warning";
|
| 1044 |
|
} elseif (in_array($gwstatus['status'], $bgsuccess)) {
|
| 1045 |
|
$bgcolor = "bg-success";
|
| 1046 |
|
} else {
|
| 1047 |
|
$bgcolor = "bg-info";
|
| 1048 |
|
}
|
| 1049 |
|
}
|
| 1050 |
|
}
|
| 1051 |
|
$content .= " <tr class='{$bgcolor}'>\n";
|
| 1052 |
|
$content .= " <td>\n";
|
| 1053 |
|
$content .= $gw;
|
| 1054 |
|
$content .= " </td>\n";
|
| 1055 |
|
$content .= " <td style='padding-left: 10px;'>\n";
|
| 1056 |
|
$content .= $config['interfaces'][lookup_gateway_interface_by_name($gw)]['descr'];
|
| 1057 |
|
$content .= " </td>\n";
|
| 1058 |
|
$content .= " <td style='padding-left: 10px;'>\n";
|
| 1059 |
|
$content .= lookup_gateway_ip_by_name($gw);
|
| 1060 |
|
$content .= " </td>\n";
|
| 1061 |
|
$content .= " </tr>\n";
|
| 1062 |
|
$idx++;
|
| 1063 |
|
}
|
| 1064 |
|
$content .= "</tbody>\n";
|
| 1065 |
|
$content .= "</table>\n";
|
|
1006 |
if (in_array($status[$gw]['status'], $bgdanger)) {
|
|
1007 |
$bgcolor = "bg-danger";
|
|
1008 |
} elseif (in_array($status[$gw]['status'], $bgwarning)) {
|
|
1009 |
$bgcolor = "bg-warning";
|
|
1010 |
} elseif (in_array($status[$gw]['status'], $bgsuccess)) {
|
|
1011 |
$bgcolor = "bg-success";
|
| 1066 |
1012 |
} else {
|
| 1067 |
|
return;
|
|
1013 |
$bgcolor = "bg-info";
|
| 1068 |
1014 |
}
|
| 1069 |
|
|
|
1015 |
$content .= " <tr class='{$bgcolor}'>\n";
|
|
1016 |
$content .= " <td>\n";
|
|
1017 |
$content .= $gw;
|
|
1018 |
$content .= " </td>\n";
|
|
1019 |
$content .= " <td style='padding-left: 10px;'>\n";
|
|
1020 |
$content .= $config['interfaces'][lookup_gateway_interface_by_name($gw)]['descr'];
|
|
1021 |
$content .= " </td>\n";
|
|
1022 |
$content .= " <td style='padding-left: 10px;'>\n";
|
|
1023 |
$content .= lookup_gateway_ip_by_name($gw);
|
|
1024 |
$content .= " </td>\n";
|
|
1025 |
$content .= " </tr>\n";
|
| 1070 |
1026 |
return $content;
|
| 1071 |
1027 |
}
|
| 1072 |
1028 |
|