-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
fix(gui): get version from header when not authenticated #9724
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
In syncthing#9175 we will sometimes want to show links to the documentation on the login page. These links currently get truncated to just `https://docs.syncthing.net`, discarding the section path, because the server version is not yet known while on the login page. I don't think it's any worse to try to preserve the section path even without an explicit version tag, than to fall back to just the host and lose all context the link was attempting to provide.
I didn't look at the details yet, but gut feeling says Syncthing should be able to know what version it is even without being logged in... |
The data is retrieved via an API call to ...but on the other hand you're very much right that the information exists elsewhere! Looks like every successful HTTP response from the backend, authenticated or not, includes a I'll see what I can do with that. |
Ok, as you can see in the commit log (I assume this is no problem since you'll squash it anyway?) I experimented with a couple of solutions for this but settled on making a (most likely already cached) simple GET request to |
Looks good to me. |
) ### Purpose Since syncthing#8757, the Syncthing GUI now has an unauthenticated state. One consequence of this is that `$scope.versionBase()` is not initialized while unauthenticated, which causes the `docsURL` function to truncate links to just `https://docs.syncthing.net`/, discarding the section path. This currently affects at least the "Help > Introduction" link reachable both while logged in and not. The issue is exacerbated in syncthing#9175 where we sometimes want to show additional contextual help links from the login page to particular sections of the docs. I don't think it's any worse to try to preserve the section path even without an explicit version tag, than to fall back to just the host and lose all context the link was attempting to provide. ### Testing - On commit b1ed280 (before): - Open the GUI, set a username and log out. - Open the "Help" drop-down. The "Introduction" item links to: https://docs.syncthing.net/ - Log in. - Open the "Help" drop-down. The "Introduction" item links to: https://docs.syncthing.net/v1.27.10/intro/gui - On commit 44fef31 (after): - Open the GUI, set a username and log out. - Open the "Help" drop-down. The "Introduction" item links to: https://docs.syncthing.net/intro/gui - Log in. - Open the "Help" drop-down. The "Introduction" item links to: https://docs.syncthing.net/v1.27.10/intro/gui ### Screenshots This is a GUI change, but affecting only URLs in the markup with no visual changes. ### Drawbacks If a `docsURL` call generates a versionless link to a docs page that doesn't exist on https://docs.syncthing.net - presumably because Syncthing is not the latest version and links to a deleted page? - then this will lead to GitHub's generic 404 page with no link to the Syncthing docs root. Before, any versionless link would also be a pathless link, leading to the Syncthing docs root instead of a 404 page.
Purpose
Since #8757, the Syncthing GUI now has an unauthenticated state. One consequence of this is that
$scope.versionBase()
is not initialized while unauthenticated, which causes thedocsURL
function to truncate links to justhttps://docs.syncthing.net
/, discarding the section path. This currently affects at least the "Help > Introduction" link reachable both while logged in and not. The issue is exacerbated in #9175 where we sometimes want to show additional contextual help links from the login page to particular sections of the docs.I don't think it's any worse to try to preserve the section path even without an explicit version tag, than to fall back to just the host and lose all context the link was attempting to provide.
Testing
Screenshots
This is a GUI change, but affecting only URLs in the markup with no visual changes.
Drawbacks
If a
docsURL
call generates a versionless link to a docs page that doesn't exist on https://docs.syncthing.net - presumably because Syncthing is not the latest version and links to a deleted page? - then this will lead to GitHub's generic 404 page with no link to the Syncthing docs root. Before, any versionless link would also be a pathless link, leading to the Syncthing docs root instead of a 404 page.