@matter-server/dashboard 0.3.6 → 0.3.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/dialog-box/dialog-box.d.ts.map +1 -1
- package/dist/esm/components/dialog-box/dialog-box.js.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js +4 -4
- package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js +7 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-dialog.js.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.d.ts.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js +3 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-existing.js.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.d.ts.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js +6 -2
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-thread.js.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.d.ts.map +1 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js +3 -1
- package/dist/esm/components/dialogs/commission-node-dialog/commission-node-wifi.js.map +1 -1
- package/dist/esm/components/dialogs/settings/log-level-dialog.d.ts.map +1 -1
- package/dist/esm/components/dialogs/settings/log-level-dialog.js +3 -1
- package/dist/esm/components/dialogs/settings/log-level-dialog.js.map +1 -1
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.d.ts.map +1 -1
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.js +3 -1
- package/dist/esm/pages/cluster-commands/clusters/basic-information-commands.js.map +1 -1
- package/dist/esm/pages/components/footer.d.ts.map +1 -1
- package/dist/esm/pages/components/footer.js +1 -3
- package/dist/esm/pages/components/footer.js.map +1 -1
- package/dist/esm/pages/components/header.d.ts.map +1 -1
- package/dist/esm/pages/components/header.js.map +1 -1
- package/dist/esm/pages/components/node-details.d.ts.map +1 -1
- package/dist/esm/pages/components/node-details.js +6 -4
- package/dist/esm/pages/components/node-details.js.map +1 -1
- package/dist/esm/pages/components/server-details.d.ts.map +1 -1
- package/dist/esm/pages/components/server-details.js +3 -1
- package/dist/esm/pages/components/server-details.js.map +1 -1
- package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-cluster-view.js +1 -1
- package/dist/esm/pages/matter-cluster-view.js.map +1 -1
- package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-node-view.js.map +1 -1
- package/dist/esm/pages/matter-server-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-server-view.js +3 -1
- package/dist/esm/pages/matter-server-view.js.map +1 -1
- package/dist/esm/pages/network/device-panel.d.ts.map +1 -1
- package/dist/esm/pages/network/device-panel.js.map +1 -1
- package/dist/esm/pages/network/network-details.d.ts.map +1 -1
- package/dist/esm/pages/network/network-details.js +9 -3
- package/dist/esm/pages/network/network-details.js.map +1 -1
- package/dist/esm/pages/network/thread-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/thread-graph.js +3 -1
- package/dist/esm/pages/network/thread-graph.js.map +1 -1
- package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -1
- package/dist/esm/pages/network/update-connections-dialog.js +6 -2
- package/dist/esm/pages/network/update-connections-dialog.js.map +1 -1
- package/dist/esm/pages/network/wifi-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/wifi-graph.js +3 -1
- package/dist/esm/pages/network/wifi-graph.js.map +1 -1
- package/dist/web/js/{commission-node-dialog-DOtOjWT7.js → commission-node-dialog-h9QTg0uL.js} +11 -5
- package/dist/web/js/{commission-node-existing-B0e6xZeB.js → commission-node-existing-TnFjP70Q.js} +5 -3
- package/dist/web/js/{commission-node-thread-CetoXqfb.js → commission-node-thread-DumLBlyw.js} +8 -4
- package/dist/web/js/{commission-node-wifi-B69SoNfD.js → commission-node-wifi-CbT2wQDc.js} +5 -3
- package/dist/web/js/{dialog-box-RdFIn1hd.js → dialog-box-DVtkVga3.js} +1 -1
- package/dist/web/js/{fire_event-DTKKR48v.js → fire_event-D_gZK7cY.js} +1 -1
- package/dist/web/js/{log-level-dialog-BheZgiD2.js → log-level-dialog-ChcYXgfz.js} +4 -2
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-Dq3JvQBw.js → matter-dashboard-app-Dpr9EPlS.js} +70 -50
- package/dist/web/js/{node-binding-dialog-CtmtVf1D.js → node-binding-dialog-BI9spkUK.js} +115 -115
- package/package.json +3 -3
- package/src/components/dialog-box/dialog-box.ts +15 -9
- package/src/components/dialogs/binding/node-binding-dialog.ts +6 -9
- package/src/components/dialogs/commission-node-dialog/commission-node-dialog.ts +15 -7
- package/src/components/dialogs/commission-node-dialog/commission-node-existing.ts +7 -1
- package/src/components/dialogs/commission-node-dialog/commission-node-thread.ts +14 -2
- package/src/components/dialogs/commission-node-dialog/commission-node-wifi.ts +12 -4
- package/src/components/dialogs/settings/log-level-dialog.ts +13 -7
- package/src/pages/cluster-commands/clusters/basic-information-commands.ts +7 -3
- package/src/pages/components/footer.ts +1 -3
- package/src/pages/components/header.ts +25 -15
- package/src/pages/components/node-details.ts +34 -21
- package/src/pages/components/server-details.ts +7 -1
- package/src/pages/matter-cluster-view.ts +10 -6
- package/src/pages/matter-node-view.ts +5 -3
- package/src/pages/matter-server-view.ts +7 -1
- package/src/pages/network/device-panel.ts +5 -3
- package/src/pages/network/network-details.ts +134 -82
- package/src/pages/network/thread-graph.ts +3 -1
- package/src/pages/network/update-connections-dialog.ts +31 -17
- package/src/pages/network/wifi-graph.ts +3 -1
|
@@ -136,46 +136,56 @@ export class NetworkDetails extends LitElement {
|
|
|
136
136
|
return html`
|
|
137
137
|
<div class="section">
|
|
138
138
|
<h4>WiFi Network</h4>
|
|
139
|
-
${
|
|
140
|
-
|
|
139
|
+
${
|
|
140
|
+
wifiDiag.bssid
|
|
141
|
+
? html`
|
|
141
142
|
<div class="info-row">
|
|
142
143
|
<span class="label">BSSID:</span>
|
|
143
144
|
<span class="value mono">${wifiDiag.bssid}</span>
|
|
144
145
|
</div>
|
|
145
146
|
`
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
: nothing
|
|
148
|
+
}
|
|
149
|
+
${
|
|
150
|
+
wifiDiag.rssi !== null
|
|
151
|
+
? html`
|
|
149
152
|
<div class="info-row">
|
|
150
153
|
<span class="label">Signal:</span>
|
|
151
154
|
<span class="value" style="color: ${signalColor}">${wifiDiag.rssi} dBm</span>
|
|
152
155
|
</div>
|
|
153
156
|
`
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
+
: nothing
|
|
158
|
+
}
|
|
159
|
+
${
|
|
160
|
+
wifiDiag.channel !== null
|
|
161
|
+
? html`
|
|
157
162
|
<div class="info-row">
|
|
158
163
|
<span class="label">Channel:</span>
|
|
159
164
|
<span class="value">${wifiDiag.channel}</span>
|
|
160
165
|
</div>
|
|
161
166
|
`
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
167
|
+
: nothing
|
|
168
|
+
}
|
|
169
|
+
${
|
|
170
|
+
wifiDiag.securityType !== null
|
|
171
|
+
? html`
|
|
165
172
|
<div class="info-row">
|
|
166
173
|
<span class="label">Security:</span>
|
|
167
174
|
<span class="value">${getWiFiSecurityTypeName(wifiDiag.securityType)}</span>
|
|
168
175
|
</div>
|
|
169
176
|
`
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
177
|
+
: nothing
|
|
178
|
+
}
|
|
179
|
+
${
|
|
180
|
+
wifiDiag.wifiVersion !== null
|
|
181
|
+
? html`
|
|
173
182
|
<div class="info-row">
|
|
174
183
|
<span class="label">WiFi Version:</span>
|
|
175
184
|
<span class="value">${getWiFiVersionName(wifiDiag.wifiVersion)}</span>
|
|
176
185
|
</div>
|
|
177
186
|
`
|
|
178
|
-
|
|
187
|
+
: nothing
|
|
188
|
+
}
|
|
179
189
|
</div>
|
|
180
190
|
`;
|
|
181
191
|
}
|
|
@@ -198,22 +208,26 @@ export class NetworkDetails extends LitElement {
|
|
|
198
208
|
<span class="label">Role:</span>
|
|
199
209
|
<span class="value">${getThreadRoleName(threadRole)}</span>
|
|
200
210
|
</div>
|
|
201
|
-
${
|
|
202
|
-
|
|
211
|
+
${
|
|
212
|
+
channel !== undefined
|
|
213
|
+
? html`
|
|
203
214
|
<div class="info-row">
|
|
204
215
|
<span class="label">Channel:</span>
|
|
205
216
|
<span class="value">${channel}</span>
|
|
206
217
|
</div>
|
|
207
218
|
`
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
219
|
+
: nothing
|
|
220
|
+
}
|
|
221
|
+
${
|
|
222
|
+
extAddressHex
|
|
223
|
+
? html`
|
|
211
224
|
<div class="info-row">
|
|
212
225
|
<span class="label">Extended Address:</span>
|
|
213
226
|
<span class="value mono">${extAddressHex}</span>
|
|
214
227
|
</div>
|
|
215
228
|
`
|
|
216
|
-
|
|
229
|
+
: nothing
|
|
230
|
+
}
|
|
217
231
|
<div class="info-row">
|
|
218
232
|
<span class="label">Direct neighbors:</span>
|
|
219
233
|
<span class="value">${connections.length}</span>
|
|
@@ -231,8 +245,9 @@ export class NetworkDetails extends LitElement {
|
|
|
231
245
|
})()}
|
|
232
246
|
</div>
|
|
233
247
|
|
|
234
|
-
${
|
|
235
|
-
|
|
248
|
+
${
|
|
249
|
+
connections.length > 0
|
|
250
|
+
? html`
|
|
236
251
|
<md-divider></md-divider>
|
|
237
252
|
<div class="section">
|
|
238
253
|
<h4>Connections (${connections.length})</h4>
|
|
@@ -252,30 +267,36 @@ export class NetworkDetails extends LitElement {
|
|
|
252
267
|
></ha-svg-icon>
|
|
253
268
|
<div class="neighbor-info">
|
|
254
269
|
<div class="neighbor-name">
|
|
255
|
-
${
|
|
256
|
-
|
|
270
|
+
${
|
|
271
|
+
conn.connectedNode
|
|
272
|
+
? html`Node ${conn.connectedNodeId}
|
|
257
273
|
<span class="node-id-hex"
|
|
258
274
|
>${this._formatNodeIdHex(conn.connectedNodeId)}</span
|
|
259
275
|
>: ${getDeviceName(conn.connectedNode)}`
|
|
260
|
-
|
|
276
|
+
: html`External: <span class="mono">${conn.extAddressHex}</span>`
|
|
277
|
+
}
|
|
261
278
|
</div>
|
|
262
279
|
<div class="neighbor-signal">
|
|
263
|
-
${conn.rssi !== null
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
? html`LQI: ${conn.lqi}`
|
|
269
|
-
: nothing}${conn.bidirectionalLqi !== undefined
|
|
270
|
-
? html`<span class="route-info"
|
|
280
|
+
${conn.rssi !== null ? html`RSSI: ${conn.rssi} dBm` : nothing}${
|
|
281
|
+
conn.rssi !== null && conn.lqi !== null ? ", " : nothing
|
|
282
|
+
}${conn.lqi !== null ? html`LQI: ${conn.lqi}` : nothing}${
|
|
283
|
+
conn.bidirectionalLqi !== undefined
|
|
284
|
+
? html`<span class="route-info"
|
|
271
285
|
>, Bidir: ${conn.bidirectionalLqi}</span
|
|
272
286
|
>`
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
287
|
+
: nothing
|
|
288
|
+
}${
|
|
289
|
+
conn.pathCost !== undefined
|
|
290
|
+
? html`<span class="route-info">, Cost: ${conn.pathCost}</span>`
|
|
291
|
+
: nothing
|
|
292
|
+
}
|
|
293
|
+
${
|
|
294
|
+
!conn.isOutgoing
|
|
295
|
+
? html`
|
|
296
|
+
<span class="direction-hint">(reverse)</span>
|
|
297
|
+
`
|
|
298
|
+
: nothing
|
|
299
|
+
}
|
|
279
300
|
</div>
|
|
280
301
|
</div>
|
|
281
302
|
</div>
|
|
@@ -284,7 +305,8 @@ export class NetworkDetails extends LitElement {
|
|
|
284
305
|
</div>
|
|
285
306
|
</div>
|
|
286
307
|
`
|
|
287
|
-
|
|
308
|
+
: nothing
|
|
309
|
+
}
|
|
288
310
|
`;
|
|
289
311
|
}
|
|
290
312
|
|
|
@@ -306,14 +328,16 @@ export class NetworkDetails extends LitElement {
|
|
|
306
328
|
<span class="label">Product:</span>
|
|
307
329
|
<span class="value">${node.productName ?? "Unknown"}</span>
|
|
308
330
|
</div>
|
|
309
|
-
${
|
|
310
|
-
|
|
331
|
+
${
|
|
332
|
+
node.serialNumber
|
|
333
|
+
? html`
|
|
311
334
|
<div class="info-row">
|
|
312
335
|
<span class="label">Serial:</span>
|
|
313
336
|
<span class="value mono">${node.serialNumber}</span>
|
|
314
337
|
</div>
|
|
315
338
|
`
|
|
316
|
-
|
|
339
|
+
: nothing
|
|
340
|
+
}
|
|
317
341
|
<div class="info-row">
|
|
318
342
|
<span class="label">Network:</span>
|
|
319
343
|
<span class="value">${networkType.charAt(0).toUpperCase() + networkType.slice(1)}</span>
|
|
@@ -326,18 +350,22 @@ export class NetworkDetails extends LitElement {
|
|
|
326
350
|
</div>
|
|
327
351
|
</div>
|
|
328
352
|
|
|
329
|
-
${
|
|
330
|
-
|
|
353
|
+
${
|
|
354
|
+
networkType === "thread"
|
|
355
|
+
? html`
|
|
331
356
|
<md-divider></md-divider>
|
|
332
357
|
${this._renderThreadInfo(node)}
|
|
333
358
|
`
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
359
|
+
: nothing
|
|
360
|
+
}
|
|
361
|
+
${
|
|
362
|
+
networkType === "wifi"
|
|
363
|
+
? html`
|
|
337
364
|
<md-divider></md-divider>
|
|
338
365
|
${this._renderWiFiInfo(node)}
|
|
339
366
|
`
|
|
340
|
-
|
|
367
|
+
: nothing
|
|
368
|
+
}
|
|
341
369
|
`;
|
|
342
370
|
}
|
|
343
371
|
|
|
@@ -358,7 +386,9 @@ export class NetworkDetails extends LitElement {
|
|
|
358
386
|
private _renderUnknownDeviceInfo(deviceId: string): TemplateResult | typeof nothing {
|
|
359
387
|
const unknown = this.unknownDevices.get(deviceId);
|
|
360
388
|
if (!unknown) {
|
|
361
|
-
return html
|
|
389
|
+
return html`
|
|
390
|
+
<p>Unknown device data not available</p>
|
|
391
|
+
`;
|
|
362
392
|
}
|
|
363
393
|
|
|
364
394
|
return html`
|
|
@@ -372,18 +402,21 @@ export class NetworkDetails extends LitElement {
|
|
|
372
402
|
<span class="label">Extended Address:</span>
|
|
373
403
|
<span class="value mono">${unknown.extAddressHex}</span>
|
|
374
404
|
</div>
|
|
375
|
-
${
|
|
376
|
-
|
|
405
|
+
${
|
|
406
|
+
unknown.bestRssi !== null
|
|
407
|
+
? html`
|
|
377
408
|
<div class="info-row">
|
|
378
409
|
<span class="label">Best RSSI:</span>
|
|
379
410
|
<span class="value">${unknown.bestRssi} dBm</span>
|
|
380
411
|
</div>
|
|
381
412
|
`
|
|
382
|
-
|
|
413
|
+
: nothing
|
|
414
|
+
}
|
|
383
415
|
</div>
|
|
384
416
|
|
|
385
|
-
${
|
|
386
|
-
|
|
417
|
+
${
|
|
418
|
+
unknown.seenBy.length > 0
|
|
419
|
+
? html`
|
|
387
420
|
<md-divider></md-divider>
|
|
388
421
|
<div class="section">
|
|
389
422
|
<h4>Neighbors (${unknown.seenBy.length})</h4>
|
|
@@ -406,28 +439,32 @@ export class NetworkDetails extends LitElement {
|
|
|
406
439
|
@click=${() => this._handleSelectNode(nodeId)}
|
|
407
440
|
@keydown=${(e: KeyboardEvent) => this._handleKeyDown(e, nodeId)}
|
|
408
441
|
>
|
|
409
|
-
${
|
|
410
|
-
|
|
442
|
+
${
|
|
443
|
+
neighborEntry
|
|
444
|
+
? html`
|
|
411
445
|
<ha-svg-icon
|
|
412
446
|
.path=${this._getSignalIcon(neighborEntry)}
|
|
413
447
|
style="--icon-primary-color: ${signalColor}"
|
|
414
448
|
></ha-svg-icon>
|
|
415
449
|
`
|
|
416
|
-
|
|
450
|
+
: nothing
|
|
451
|
+
}
|
|
417
452
|
<div class="neighbor-info">
|
|
418
453
|
<div class="neighbor-name">
|
|
419
454
|
Node ${nodeId}
|
|
420
455
|
<span class="node-id-hex">${this._formatNodeIdHex(nodeId)}</span>:
|
|
421
456
|
${getDeviceName(node)}
|
|
422
457
|
</div>
|
|
423
|
-
${
|
|
424
|
-
|
|
458
|
+
${
|
|
459
|
+
neighborEntry
|
|
460
|
+
? html`
|
|
425
461
|
<div class="neighbor-signal">
|
|
426
462
|
${rssi !== null ? html`RSSI: ${rssi} dBm, ` : nothing}
|
|
427
463
|
${lqi !== undefined ? html`LQI: ${lqi}` : nothing}
|
|
428
464
|
</div>
|
|
429
465
|
`
|
|
430
|
-
|
|
466
|
+
: nothing
|
|
467
|
+
}
|
|
431
468
|
</div>
|
|
432
469
|
</div>
|
|
433
470
|
`;
|
|
@@ -435,7 +472,8 @@ export class NetworkDetails extends LitElement {
|
|
|
435
472
|
</div>
|
|
436
473
|
</div>
|
|
437
474
|
`
|
|
438
|
-
|
|
475
|
+
: nothing
|
|
476
|
+
}
|
|
439
477
|
|
|
440
478
|
<md-divider></md-divider>
|
|
441
479
|
<div class="section">
|
|
@@ -556,7 +594,9 @@ export class NetworkDetails extends LitElement {
|
|
|
556
594
|
private _renderWiFiAccessPointInfo(apId: string): TemplateResult | typeof nothing {
|
|
557
595
|
const ap = this.wifiAccessPoints.get(apId);
|
|
558
596
|
if (!ap) {
|
|
559
|
-
return html
|
|
597
|
+
return html`
|
|
598
|
+
<p>Access point data not available</p>
|
|
599
|
+
`;
|
|
560
600
|
}
|
|
561
601
|
|
|
562
602
|
return html`
|
|
@@ -571,8 +611,9 @@ export class NetworkDetails extends LitElement {
|
|
|
571
611
|
<span class="value">${ap.connectedNodes.length}</span>
|
|
572
612
|
</div>
|
|
573
613
|
</div>
|
|
574
|
-
${
|
|
575
|
-
|
|
614
|
+
${
|
|
615
|
+
ap.connectedNodes.length > 0
|
|
616
|
+
? html`
|
|
576
617
|
<md-divider></md-divider>
|
|
577
618
|
<div class="section">
|
|
578
619
|
<h4>Connected Nodes</h4>
|
|
@@ -596,18 +637,21 @@ export class NetworkDetails extends LitElement {
|
|
|
596
637
|
<span class="node-id-hex">${this._formatNodeIdHex(nodeId)}</span>:
|
|
597
638
|
${getDeviceName(node)}
|
|
598
639
|
</div>
|
|
599
|
-
${
|
|
600
|
-
|
|
640
|
+
${
|
|
641
|
+
wifiDiag.rssi !== null
|
|
642
|
+
? html`<div class="node-signal" style="color: ${signalColor}">
|
|
601
643
|
${wifiDiag.rssi} dBm
|
|
602
644
|
</div>`
|
|
603
|
-
|
|
645
|
+
: nothing
|
|
646
|
+
}
|
|
604
647
|
</div>
|
|
605
648
|
`;
|
|
606
649
|
})}
|
|
607
650
|
</div>
|
|
608
651
|
</div>
|
|
609
652
|
`
|
|
610
|
-
|
|
653
|
+
: nothing
|
|
654
|
+
}
|
|
611
655
|
<md-divider></md-divider>
|
|
612
656
|
<div class="section">
|
|
613
657
|
<p class="hint-text">
|
|
@@ -636,8 +680,9 @@ export class NetworkDetails extends LitElement {
|
|
|
636
680
|
<div class="header">
|
|
637
681
|
<h3>External Device</h3>
|
|
638
682
|
<div class="header-actions">
|
|
639
|
-
${
|
|
640
|
-
|
|
683
|
+
${
|
|
684
|
+
onlineSeenByNodes.length > 0
|
|
685
|
+
? html`
|
|
641
686
|
<button
|
|
642
687
|
class="action-button"
|
|
643
688
|
@click=${this._handleUpdateConnections}
|
|
@@ -647,7 +692,8 @@ export class NetworkDetails extends LitElement {
|
|
|
647
692
|
<ha-svg-icon .path=${mdiRefresh}></ha-svg-icon>
|
|
648
693
|
</button>
|
|
649
694
|
`
|
|
650
|
-
|
|
695
|
+
: nothing
|
|
696
|
+
}
|
|
651
697
|
<button class="close-button" @click=${this._handleClose} aria-label="Close details panel">
|
|
652
698
|
<ha-svg-icon .path=${mdiClose}></ha-svg-icon>
|
|
653
699
|
</button>
|
|
@@ -655,8 +701,9 @@ export class NetworkDetails extends LitElement {
|
|
|
655
701
|
</div>
|
|
656
702
|
<div class="content">${this._renderUnknownDeviceInfo(this.selectedNodeId as string)}</div>
|
|
657
703
|
</div>
|
|
658
|
-
${
|
|
659
|
-
|
|
704
|
+
${
|
|
705
|
+
this._showUpdateDialog
|
|
706
|
+
? html`
|
|
660
707
|
<update-connections-dialog
|
|
661
708
|
.client=${this.client}
|
|
662
709
|
.nodes=${this.nodes}
|
|
@@ -667,7 +714,8 @@ export class NetworkDetails extends LitElement {
|
|
|
667
714
|
@dialog-closed=${this._handleDialogClose}
|
|
668
715
|
></update-connections-dialog>
|
|
669
716
|
`
|
|
670
|
-
|
|
717
|
+
: nothing
|
|
718
|
+
}
|
|
671
719
|
`;
|
|
672
720
|
}
|
|
673
721
|
|
|
@@ -709,8 +757,9 @@ export class NetworkDetails extends LitElement {
|
|
|
709
757
|
<span class="node-id-hex">${this._formatNodeIdHex(this.selectedNodeId)}</span>
|
|
710
758
|
</h3>
|
|
711
759
|
<div class="header-actions">
|
|
712
|
-
${
|
|
713
|
-
|
|
760
|
+
${
|
|
761
|
+
canUpdate
|
|
762
|
+
? html`
|
|
714
763
|
<button
|
|
715
764
|
class="action-button"
|
|
716
765
|
@click=${this._handleUpdateConnections}
|
|
@@ -720,7 +769,8 @@ export class NetworkDetails extends LitElement {
|
|
|
720
769
|
<ha-svg-icon .path=${mdiRefresh}></ha-svg-icon>
|
|
721
770
|
</button>
|
|
722
771
|
`
|
|
723
|
-
|
|
772
|
+
: nothing
|
|
773
|
+
}
|
|
724
774
|
<button class="close-button" @click=${this._handleClose} aria-label="Close details panel">
|
|
725
775
|
<ha-svg-icon .path=${mdiClose}></ha-svg-icon>
|
|
726
776
|
</button>
|
|
@@ -731,8 +781,9 @@ export class NetworkDetails extends LitElement {
|
|
|
731
781
|
<a href="#node/${this.selectedNodeId}" class="view-link">View node details</a>
|
|
732
782
|
</div>
|
|
733
783
|
</div>
|
|
734
|
-
${
|
|
735
|
-
|
|
784
|
+
${
|
|
785
|
+
this._showUpdateDialog
|
|
786
|
+
? html`
|
|
736
787
|
<update-connections-dialog
|
|
737
788
|
.client=${this.client}
|
|
738
789
|
.nodes=${this.nodes}
|
|
@@ -743,7 +794,8 @@ export class NetworkDetails extends LitElement {
|
|
|
743
794
|
@dialog-closed=${this._handleDialogClose}
|
|
744
795
|
></update-connections-dialog>
|
|
745
796
|
`
|
|
746
|
-
|
|
797
|
+
: nothing
|
|
798
|
+
}
|
|
747
799
|
`;
|
|
748
800
|
}
|
|
749
801
|
|
|
@@ -187,8 +187,9 @@ export class UpdateConnectionsDialog extends LitElement {
|
|
|
187
187
|
private _renderOnlineContent(): unknown {
|
|
188
188
|
return html`
|
|
189
189
|
<p>Refresh network information for "<strong>${this.selectedNodeName}</strong>".</p>
|
|
190
|
-
${
|
|
191
|
-
|
|
190
|
+
${
|
|
191
|
+
this.onlineNeighborIds.length > 0
|
|
192
|
+
? html`
|
|
192
193
|
<label class="checkbox-row">
|
|
193
194
|
<md-checkbox
|
|
194
195
|
?checked=${this._includeNeighbors}
|
|
@@ -201,36 +202,45 @@ export class UpdateConnectionsDialog extends LitElement {
|
|
|
201
202
|
>
|
|
202
203
|
</label>
|
|
203
204
|
`
|
|
204
|
-
|
|
205
|
+
: nothing
|
|
206
|
+
}
|
|
205
207
|
`;
|
|
206
208
|
}
|
|
207
209
|
|
|
208
210
|
private _renderOfflineContent(): unknown {
|
|
209
211
|
return html`
|
|
210
212
|
<p>"<strong>${this.selectedNodeName}</strong>" appears to be offline.</p>
|
|
211
|
-
${
|
|
212
|
-
|
|
213
|
+
${
|
|
214
|
+
this.onlineNeighborIds.length > 0
|
|
215
|
+
? html`
|
|
213
216
|
<p>
|
|
214
217
|
Update network data from its ${this.onlineNeighborIds.length} online
|
|
215
218
|
neighbor${this.onlineNeighborIds.length !== 1 ? "s" : ""} to refresh connection info.
|
|
216
219
|
</p>
|
|
217
220
|
`
|
|
218
|
-
|
|
221
|
+
: html`
|
|
222
|
+
<p>No online neighbors available to update.</p>
|
|
223
|
+
`
|
|
224
|
+
}
|
|
219
225
|
`;
|
|
220
226
|
}
|
|
221
227
|
|
|
222
228
|
private _renderUnknownContent(): unknown {
|
|
223
229
|
return html`
|
|
224
230
|
<p>This device is not commissioned to this fabric and cannot be queried directly.</p>
|
|
225
|
-
${
|
|
226
|
-
|
|
231
|
+
${
|
|
232
|
+
this.onlineNeighborIds.length > 0
|
|
233
|
+
? html`
|
|
227
234
|
<p>
|
|
228
235
|
Update network data from ${this.onlineNeighborIds.length}
|
|
229
236
|
node${this.onlineNeighborIds.length !== 1 ? "s" : ""} that
|
|
230
237
|
see${this.onlineNeighborIds.length === 1 ? "s" : ""} this device to refresh info.
|
|
231
238
|
</p>
|
|
232
239
|
`
|
|
233
|
-
|
|
240
|
+
: html`
|
|
241
|
+
<p>No online nodes available that see this device.</p>
|
|
242
|
+
`
|
|
243
|
+
}
|
|
234
244
|
`;
|
|
235
245
|
}
|
|
236
246
|
|
|
@@ -244,11 +254,13 @@ export class UpdateConnectionsDialog extends LitElement {
|
|
|
244
254
|
<md-dialog @closed=${this._handleDialogClosed}>
|
|
245
255
|
<div slot="headline">Update Connection Data</div>
|
|
246
256
|
<div slot="content">
|
|
247
|
-
${
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
257
|
+
${
|
|
258
|
+
this.selectedNodeType === "online"
|
|
259
|
+
? this._renderOnlineContent()
|
|
260
|
+
: this.selectedNodeType === "offline"
|
|
261
|
+
? this._renderOfflineContent()
|
|
262
|
+
: this._renderUnknownContent()
|
|
263
|
+
}
|
|
252
264
|
</div>
|
|
253
265
|
<div slot="actions">
|
|
254
266
|
<md-text-button @click=${this._closeDialog} ?disabled=${this._isUpdating}>Cancel</md-text-button>
|
|
@@ -256,11 +268,13 @@ export class UpdateConnectionsDialog extends LitElement {
|
|
|
256
268
|
@click=${this._executeUpdate}
|
|
257
269
|
?disabled=${this._isUpdating || this._updateCount === 0}
|
|
258
270
|
>
|
|
259
|
-
${
|
|
260
|
-
|
|
271
|
+
${
|
|
272
|
+
this._isUpdating
|
|
273
|
+
? html`<span class="updating-content"
|
|
261
274
|
>${svg`<svg class="spinner" viewBox="0 0 24 24" width="18" height="18"><path fill="currentColor" d="${mdiLoading}"/></svg>`}Updating...</span
|
|
262
275
|
>`
|
|
263
|
-
|
|
276
|
+
: buttonText
|
|
277
|
+
}
|
|
264
278
|
</md-filled-button>
|
|
265
279
|
</div>
|
|
266
280
|
</md-dialog>
|