diff --git a/ajax/networking/get_frequencies.php b/ajax/networking/get_frequencies.php
new file mode 100644
index 00000000..7fb29990
--- /dev/null
+++ b/ajax/networking/get_frequencies.php
@@ -0,0 +1,42 @@
+0) {
+ $flags += NL80211_BAND_24GHZ;
+ }
+ if (count(preg_grep('/^5[0-9]{3}/i', $frequencies)) >0) {
+ $flags += NL80211_BAND_5GHZ;
+ }
+
+ switch ($flags) {
+ case NL80211_BAND_24GHZ:
+ $msg = sprintf(_("The selected interface (%s) has support for the 2.4 GHz wireless band only."), $iface);
+ break;
+ case NL80211_BAND_5GHZ:
+ $msg = sprintf(_("The selected interface (%s) has support for the 5 GHz wireless band only."), $iface);
+ break;
+ case NL80211_BAND_24GHZ | NL80211_BAND_5GHZ:
+ $msg = sprintf(_("The selected interface (%s) has support for both the 2.4 and 5 GHz wireless bands."), $iface);
+ break;
+ default:
+ $msg = sprintf(_("The selected interface (%s) does not support wireless mode operation."), $iface);
+ }
+ echo json_encode($msg);
+}
+
diff --git a/app/icons/site.webmanifest b/app/icons/site.webmanifest
index 321ab7db..5d0d01c4 100644
--- a/app/icons/site.webmanifest
+++ b/app/icons/site.webmanifest
@@ -3,7 +3,7 @@
"short_name": "RaspAP",
"icons": [
{
- "src": "/dist/icons/android-chrome-192x192.png",
+ "src": "/app/icons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
}
diff --git a/app/js/custom.js b/app/js/custom.js
index 6483614b..1412b44f 100644
--- a/app/js/custom.js
+++ b/app/js/custom.js
@@ -183,6 +183,7 @@ function contentLoaded() {
break;
case "hostapd_conf":
loadChannel();
+ setHardwareModeTooltip();
break;
case "dhcpd_conf":
loadInterfaceDHCPSelect();
@@ -387,6 +388,21 @@ function loadChannelSelect(selected) {
});
}
+/* Sets hardware mode tooltip text for selected interface.
+ */
+function setHardwareModeTooltip() {
+ var iface = $('#cbxinterface').val();
+ var hwmodeText = '';
+ // Explanatory text if 802.11ac is disabled
+ if ($('#cbxhwmode').find('option[value="ac"]').prop('disabled') == true ) {
+ var hwmodeText = $('#hwmode').attr('data-tooltip');
+ }
+ $.post('ajax/networking/get_frequencies.php?',{'interface': iface},function(data){
+ var responseText = JSON.parse(data);
+ $('#tiphwmode').attr('data-original-title', responseText + '\n' + hwmodeText );
+ });
+}
+
/* Updates the selected blocklist
* Request is passed to an ajax handler to download the associated list.
* Interface elements are updated to indicate current progress, status.
diff --git a/includes/firewall.php b/includes/firewall.php
old mode 100644
new mode 100755
diff --git a/includes/functions.php b/includes/functions.php
index 2971a329..35d285cf 100755
--- a/includes/functions.php
+++ b/includes/functions.php
@@ -792,3 +792,14 @@ function get_public_ip()
return $public_ip[0];
}
+/* Returns a standardized tooltip
+ *
+ * @return string $tooltip
+ */
+function getTooltip($msg, $id, $visible = true, $data_html = false)
+{
+ ($visible) ? $opt1 = 'visible' : $opt1 = 'invisible';
+ ($data_html) ? $opt2 = 'data-html="true"' : $opt2 = 'data-html="false"';
+ echo '';
+}
+
diff --git a/includes/get_clients.php b/includes/get_clients.php
old mode 100644
new mode 100755
diff --git a/includes/hostapd.php b/includes/hostapd.php
index d1160d6d..7f47cd7d 100755
--- a/includes/hostapd.php
+++ b/includes/hostapd.php
@@ -25,7 +25,7 @@ function DisplayHostAPDConfig()
'b' => '802.11b - 2.4 GHz',
'g' => '802.11g - 2.4 GHz',
'n' => '802.11n - 2.4 GHz',
- 'ac' => '802.11.ac - 5 GHz'
+ 'ac' => '802.11ac - 5 GHz'
];
$arrSecurity = array(1 => 'WPA', 2 => 'WPA2', 3 => 'WPA+WPA2', 'none' => _("None"));
$arrEncType = array('TKIP' => 'TKIP', 'CCMP' => 'CCMP', 'TKIP CCMP' => 'TKIP+CCMP');
@@ -109,6 +109,30 @@ function DisplayHostAPDConfig()
$txpower = $_POST['txpower'];
}
+ $countries_5Ghz_max48ch = RASPI_5GHZ_ISO_ALPHA2;
+ $selectedHwMode = $arrConfig['hw_mode'];
+ if (isset($arrConfig['ieee80211n'])) {
+ if (strval($arrConfig['ieee80211n']) === '1') {
+ $selectedHwMode = 'n';
+ }
+ }
+ if (isset($arrConfig['ieee80211ac'])) {
+ if (strval($arrConfig['ieee80211ac']) === '1') {
+ $selectedHwMode = 'ac';
+ }
+ }
+ if (isset($arrConfig['ieee80211w'])) {
+ if (strval($arrConfig['ieee80211w']) === '2') {
+ $selectedHwMode = 'w';
+ }
+ }
+ if (!in_array($arrConfig['country_code'], $countries_5Ghz_max48ch)) {
+ $hwModeDisabled = 'ac';
+ if ($selectedHwMode === $hwModeDisabled) {
+ unset($selectedHwMode);
+ }
+ }
+
echo renderTemplate(
"hostapd", compact(
"status",
@@ -124,7 +148,9 @@ function DisplayHostAPDConfig()
"arrTxPower",
"txpower",
"arrHostapdConf",
- "operatingSystem"
+ "operatingSystem",
+ "selectedHwMode",
+ "hwModeDisabled"
)
);
}
diff --git a/includes/wireguard.php b/includes/wireguard.php
old mode 100644
new mode 100755
diff --git a/locale/en_US/LC_MESSAGES/messages.mo b/locale/en_US/LC_MESSAGES/messages.mo
index f8d9ba40..c1a7c5c7 100644
Binary files a/locale/en_US/LC_MESSAGES/messages.mo and b/locale/en_US/LC_MESSAGES/messages.mo differ
diff --git a/locale/en_US/LC_MESSAGES/messages.po b/locale/en_US/LC_MESSAGES/messages.po
index 1b51ca08..fd1ff0c1 100644
--- a/locale/en_US/LC_MESSAGES/messages.po
+++ b/locale/en_US/LC_MESSAGES/messages.po
@@ -585,6 +585,21 @@ msgstr "Sets the txpower
option for the AP interface and the config
msgid "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW."
msgstr "dBm is a unit of level used to indicate that a power ratio is expressed in decibels (dB) with reference to one milliwatt (mW). 30 dBm is equal to 1000 mW, while 0 dBm equals 1.25 mW."
+msgid "The selected interface (%s) has support for the 2.4 GHz wireless band only."
+msgstr "The selected interface (%s) has support for the 2.4 GHz wireless band only."
+
+msgid "The selected interface (%s) has support for the 2.5 GHz wireless band only."
+msgstr "The selected interface (%s) has support for the 2.5 GHz wireless band only."
+
+msgid "The selected interface (%s) has support for both the 2.4 and 5 GHz wireless bands."
+msgstr "The selected interface (%s) has support for both the 2.4 and 5 GHz wireless bands."
+
+msgid "The selected interface (%s) does not support wireless mode operation."
+msgstr "The selected interface (%s) does not support wireless mode operation."
+
+msgid "The 802.11ac 5 GHz option is disabled until a compatible wireless regulatory domain is set."
+msgstr "The 802.11ac 5 GHz option is disabled until a compatible wireless regulatory domain is set."
+
#: includes/networking.php
msgid "Summary"
msgstr "Summary"
diff --git a/templates/hostapd/advanced.php b/templates/hostapd/advanced.php
index 89d90c72..d765d34c 100644
--- a/templates/hostapd/advanced.php
+++ b/templates/hostapd/advanced.php
@@ -56,10 +56,8 @@