Skip to content

Commit 4cba295

Browse files
wip
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
1 parent 82ecfd3 commit 4cba295

File tree

2 files changed

+45
-10
lines changed

2 files changed

+45
-10
lines changed

core/frontend/src/components/wifi/WifiNetworkCard.vue

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
<v-col :cols="1" />
1212

1313
<v-col
14-
:cols="7"
14+
:cols="6"
1515
class="d-flex flex-column justify-center"
1616
>
1717
<span>{{ network_name }}</span>
@@ -23,6 +23,16 @@
2323
</span>
2424
</v-col>
2525

26+
<v-col :cols="1">
27+
<v-chip
28+
x-small
29+
:color="frequency_band_color"
30+
class="frequency-chip"
31+
>
32+
{{ frequency_band }}
33+
</v-chip>
34+
</v-col>
35+
2636
<v-col :cols="1">
2737
<v-icon class="d-flex flex-justify-center">
2838
{{ network_saved_icon }}
@@ -86,6 +96,18 @@ export default Vue.extend({
8696
signal_strength_icon(): string {
8797
return wifi_strenght_icon(this.network.signal)
8898
},
99+
frequency_band(): string {
100+
const freq = this.network.frequency
101+
if (freq >= 5925) return '6G'
102+
if (freq >= 5000) return '5G'
103+
return '2.4G'
104+
},
105+
frequency_band_color(): string {
106+
const freq = this.network.frequency
107+
if (freq >= 5925) return 'purple'
108+
if (freq >= 5000) return 'green'
109+
return 'orange'
110+
},
89111
},
90112
methods: {
91113
emitClick(): void {
@@ -100,4 +122,10 @@ export default Vue.extend({
100122
cursor: pointer;
101123
background-color: #2174aa;
102124
}
125+
.frequency-chip {
126+
font-size: 10px !important;
127+
height: 18px !important;
128+
padding: 0 6px !important;
129+
font-weight: 600;
130+
}
103131
</style>

core/services/wifi/api/v2/routers/wifi.py

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -150,15 +150,22 @@ async def connect(request: ConnectRequest) -> dict[str, str]:
150150
"""
151151
manager = get_wifi_manager()
152152

153-
if hasattr(manager, "connect_interface"):
154-
await manager.connect_interface(request.interface, request.credentials, request.hidden)
155-
else:
156-
if request.interface != "wlan0":
157-
raise HTTPException(
158-
status_code=status.HTTP_400_BAD_REQUEST,
159-
detail=f"Interface '{request.interface}' not supported. Multi-interface support requires NetworkManager.",
160-
)
161-
await manager.try_connect_to_network(request.credentials, request.hidden)
153+
try:
154+
if hasattr(manager, "connect_interface"):
155+
await manager.connect_interface(request.interface, request.credentials, request.hidden)
156+
else:
157+
if request.interface != "wlan0":
158+
raise HTTPException(
159+
status_code=status.HTTP_400_BAD_REQUEST,
160+
detail=f"Interface '{request.interface}' not supported. Multi-interface support requires NetworkManager.",
161+
)
162+
await manager.try_connect_to_network(request.credentials, request.hidden)
163+
except ValueError as e:
164+
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=str(e)) from e
165+
except TimeoutError as e:
166+
raise HTTPException(status_code=status.HTTP_408_REQUEST_TIMEOUT, detail=str(e)) from e
167+
except Exception as e:
168+
raise HTTPException(status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, detail=str(e)) from e
162169

163170
return {"status": "connecting", "interface": request.interface, "ssid": request.credentials.ssid}
164171

0 commit comments

Comments
 (0)