[Feature Request] Headscale Widget Grid Mode #4265
Replies: 5 comments
-
Is there a possibility of a grid mode for the Tailscale widget? |
Beta Was this translation helpful? Give feedback.
-
looks great! Would this be achievable for plain tailscale too? |
Beta Was this translation helpful? Give feedback.
-
tailscale has a similar API with minor differences, I'm sure if the layout gets accepted, tailscale widget can be adapted too. |
Beta Was this translation helpful? Give feedback.
-
Testing out the new headscale widget and it works great. On the wiki page the widget config reads as follows:
It doesn't work in this configuration as it's missing the URL field. It should read as
Keeping in line with other widget examples on the wiki. |
Beta Was this translation helpful? Give feedback.
-
Is this grid system available on homepage widget in the current version, and if so does any of you have and example config for it? Thanks |
Beta Was this translation helpful? Give feedback.
-
Description
Headscale widget is implemented with 4247. It is modeled after Tailscale widget and shows information about a single node as follows:
This requires multiple widgets to track multiple nodes, and multiple API calls.
I've implemented a second version of this widget that can be used as a status tracker for multiple nodes with a single API call that looks as follows:
This version uses
<div>
tags to wrap the information in columns and achieve the following look which is not really allowed for widgets:return ( <Container service={service}> <div class="w-full"> {nodes.map((node)=> ( <Block key={node.id} label="" value={node.givenName || node.name} /> ))} </div> <div class="w-full"> {nodes.map((node)=> ( <Block key={node.id} label="" value={node.ipAddresses[0]}/> ))} </div> <div class="w-full"> {nodes.map((node)=> ( <Block key={node.id} label="" value={node.online ? t("headscale.online") : t("common.relativeDate", {value: node.lastSeen})}/> ))} </div> </Container> );
This feature request aims to see if there is interest in such a version and how best to implement it if there is interest.
Other
If anyone wants to give it a try, the implementation is available here.
Beta Was this translation helpful? Give feedback.
All reactions