mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Remove ability to force a custom link to open in a new window/tab #7481
Closed
opened 2025-12-29 20:23:54 +01:00 by adam
·
9 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#7481
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @jeremystretch on GitHub (Jan 9, 2023).
NetBox version
v3.4.2
Feature type
Change to existing functionality
Proposed functionality
Remove the
new_windowboolean field from the CustomLink model, and do not modify the default behavior of rendered links.Use case
By default, the user has the option of letting a link open in the current tab/window or (using ctrl/chift-click) a new one. Forcing the link to open in a new tab/window should be considered poor practice as it removes this choice from the user. It also raises concerns around ensuring accessibility for those using screen readers.
Here is some additional justification and discussion for why forcing links to open in a new tab should be avoided.
Database changes
No response
External dependencies
No response
@stavr666 commented on GitHub (Jan 9, 2023):
NB in not public service, but IT-only. In most cases for NetBox:
Thus, I believe that the above arguments do not apply to NetBox (also, how many "those using screen readers" among NB users?).
For me, personally, holding CTRL to force open management links in new window (keeping pinned NB tab on it's place), instead of using current customizable functionality - is step back in usability.
As alternative, user-level option to override links behavior will work better, than system-wide removal of toggle.
@jeremystretch commented on GitHub (Jan 9, 2023):
One is enough.
What you're describing is the default browser behavior.
@ITJamie commented on GitHub (Jan 9, 2023):
Per the linked diversity and inclusion webpage
It is possible to force links to open in new tabs if you provide a notification method in addition to visual cues, such as typing inside the link text a cue like, “(opens in new tab).”This solves the issue for screenreaders as the cue on the url can have a message warning of the new tab.
An additional safety could be a user preference to always open links in current context. that way for specific users could override that functionality if needed
@sleepinggenius2 commented on GitHub (Jan 10, 2023):
I agree with the comments from both @stavr666 and @ITJamie. My user base seems to have a strong preference for external links to always open in a new tab and often get caught out when they don't, especially if they lose any state in the originating application. A lot of the users are not particularly tech savvy and don't understand that they can ctrl+click or middle click to perform that action as a one-off. It's also something that they have gotten used to in NetBox at this point, so I expect that removing that functionality is going to generate a lot of tickets in our app support queue, regardless of how much we communicate the change or provide training beforehand. I am a huge proponent of accessibility, but I think that can be accomplished by setting
aria-labelon links or, my personal preference, including an icon withmdi-open-in-newand an appropriatealtattribute on links that are set to open in a new window/tab. Including a user preference to override thenew_windowvalue would also be great.I had to deal with a lot of fallout with the change that reversed the layout of all the create/save buttons and changed the default from Create & Add Another to just Create (#9437), which caught a number of people out (myself included). I ultimately had to add a local style override to put the buttons in a flex container with
flex-direction: row-reverseto keep everyone from clicking Cancel all the time. I would love to see more things that create a significant impact on existing user experience turned into user preferences. It could also be paired with setting an application-level default preference to support workflows for users to either opt in to the new functionality or opt out of it, when it's enabled application-wide. That would also allow for a simpler upgrade process to be able to upgrade for added functionality and roll out the UX changes asynchronously.@jeremystretch commented on GitHub (Jan 10, 2023):
This is solvable via user education, and IMO not sufficient justification for governing design decisions, particularly for an application acutely targeted to IT professionals.
This is exactly the browser's default behavior, and what we want to achieve by removing the forced override.
By the way, we've already had a very similar conversation regarding links to devices in rack elevations, wherein there was a strong consensus that links should not force a new tab.
@ShellBoyAFK commented on GitHub (Jan 10, 2023):
Most of my NB User are over thirty-five......
@stavr666 commented on GitHub (Jan 10, 2023):
It can't be "same" conversation. With racks, by clicking link you keep user inside NB app.
With custom link you (always?) leading user outside of NB app.
For me, it's PWA logic vs Search Engine logic:
This is how (modern, familiar with mobile phones and tablets) users expect to interact. That's how I try to deliver our monitoring, managements and other infrastructure-related tools behavior.
Overriding it can be done at browser-level (are you sure it's not the extension? didn't find the override in Chrome/Edge settings/flags, middle-click and CTLR-click not equals overriding default clicks, imo), but like you described in motivation post, giving user more control is better then removing it. Thus, per-app customization (in User Preferences) is better, than "set it for all", similar to regional settings (date-time format not universal, have context like export, sorting, level of details etc.)
@ShellBoyAFK commented on GitHub (Jan 10, 2023):
me too
@jeremystretch commented on GitHub (Jan 10, 2023):
Alright, there's clearly enough opposition to this proposal that it's not worth discussing any further. We'll leave it as-is.