-
Notifications
You must be signed in to change notification settings - Fork 2
Neuroglancer short links #277
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
|
I have not looked too deeply at the code, but I think there are aspects of the UI/UX that l like from both. I like the "+ New Link" button in the Claude version and I like that it is not tucked away next to the search box. I like this version for the input form, since it is what I would expect from a link shortener. I also like that the link is clickable in this version. I am not sure why there is an outlined "URL" button in the modal, but that seems unnecessary / broken. I think the references to "Views" needs to be more consistent. It seems like the title of the second column of the views table should be changed to "Neuroglancer View". |
|
One note: When using our existing link shortener, I very very frequently make tweaks to my neuroglancer scene and then overwrite it. IIUC, both PRs have flaws:
In either case, it might be nice to alert the user when overwriting an existing link, and ask for confirmation. That's slightly more complicated, though. |
|
I agree with Jody that the “+ New Link” button in the Claude implementation is easier to find. I couldn't find the Codex one at first. I also like calling the page “Neuroglancer Links” better than “Views”. To Stuart's point above - in ngLinkQueries.tsx in the Claude implementation, the payload for the update mutation has the option to provide “state” but this hasn’t been implemented in the "edit" dialog. I do like the way the Codex UI allows you to toggle between pasting in a URL vs JSON state (via the outlined URL button). So I think that extending the Codex UI to the "edit" dialog and using the Claude update mutation would create the correct combination of being able to update the state in the link (also the short name, which is currently the only thing you can update for an NG link in the Claude version). A few other small notes: Codex
Claude
|
|
Thanks everyone! I think I rushed these out too quickly at the end of the year and both have major issues. I will concentrate on this PR as a starting point and get it fixed up. |
|
@allison-truhlar Please review this commit in particular: allow search by URL in both Data Links and NG Links I took out the special URL handling because it didn't seem necessary for Data Links and it was interfering with NG Links. But maybe I missed something.. |
@krokicki The purpose of that code was to allow users to paste in the proxied path URL and have the data link table filter to the correct row. However, in looking at the code again, I found a better way to do this that doesn't break the Neuroglancer link searching. Now in the globalFilterFn, in the existing special handling case for the "File Path" column of the data link table, I include the proxied path URL in the array of values to search. See this commit: 5ba5088 |
|
@allison-truhlar Great idea on URL search. I just refactored it to keep TableCard generic. It now uses TanStack's column meta feature so that each column defines its own searchable values. This keeps domain-specific logic (like ProxiedPath) out of the shared component and makes it easy to extend for other tables. One thing I noticed when testing this: the Data Links table doesn't respect the user's path display setting when showing paths. Is that possible to do? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The NGLinks dialog works for me - I can create links and edit them. I left some specific comments for minor fixes/clarifications. Also, I'm happy to help with any of the suggested changes you agree with - let me know.
|
@krokicki In my testing, it looks like the Data Links table is respecting the user's path preferences. I checked both the displayed path and the path that gets copied from the Action menu for all three path preferences, and both seemed to be correct for me. Here's where the displayed path gets set based on preference, and here's where the path for copying gets set based on preference. |
Resolved conflicts in tests/test_endpoints.py by keeping all symlink tests from main. Co-Authored-By: Claude Sonnet 4.5 <[email protected]>
- only needed in the NGLinks component, so can wrap it immediately around that component
- analogous validation to the frontend in NGLinks
- still included in the response






Clickup id: 86adpkkgt
Implements Neuroglancer short links a la the FlyEM Shortener.
There is also a version of this PR implemented by Claude (#278), for comparison purposes. I think I prefer this one because it has simpler code, more features, and I like the UI better. But it is not reactive and needs some work.
@JaneliaSciComp/fileglancer @stuarteberg @StephanPreibisch