mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Make form/pagination button stick at the bottom #6494
Closed
opened 2025-12-29 19:41:29 +01:00 by adam
·
17 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#6494
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 @PieterL75 on GitHub (May 18, 2022).
NetBox version
v3.2.3
Feature type
Change to existing functionality
Proposed functionality
The pagination and edit button are currently hidden at the bottom of the page.
One needs to scroll down to reach the 'Save' or 'Page 5' like buttons.
It would be very handy if those buttons 'stick' to the bottom of the page, and the do not scroll.
Use case
This way, when you only need to edit the 'name' of a device for example, you have that 'Save' button right at hand.
Or of you open a prefix list, you have the 'Page 5' button right at hand, rather having to scroll down to navigate
Database changes
None
External dependencies
None
@huntabyte commented on GitHub (Jun 22, 2022):
I have spent some time working on a solution for the tables and each one has some sort of shortcoming.
For the table, doesn't it make the most sense to add a vertical scroll and set a max height? This way all the top elements (title, buttons, etc) and the bottom elements (pagination, other buttons) don't have to scroll with it.
I was able to implement that, however, due to the dropdown menu required to be wrapped in a static position element (due to triggering a
transformon dropdown open event causing a horizontal scrollbar to temporarily appear) - when scrolling down the dropdown menu stays on top and goes to the top of the page which looks very unpleasant.A tradeoff to make this happen without a decent amount of restructuring is to drop the static position, but then overflow-x on the table must be hidden (at least down to a phone breakpoint).
Thoughts?
@github-actions[bot] commented on GitHub (Aug 21, 2022):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide.
@arthanson commented on GitHub (Sep 7, 2022):
I think this would be doable with the bootstrap sticky / fixed footer, however it would require repositioning several elements: for example the edit/delete buttons are outside the table card (where the pagination buttons are).
I'd purpose moving the docs/graphql/Rest API.. buttons into the sidebar along with the date-time and version string. This would free up the bottom which could then be used for a sticky footer where needed. However, this should be part of a larger UI / design conversation. The edit/delete buttons would then need to be moved together with the pagination buttons..
@github-actions[bot] commented on GitHub (Dec 12, 2022):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide.
@PieterL75 commented on GitHub (Dec 18, 2022):
Is it possible to create 'floating buttons'
Just leave them at their current location, but always show them at the bottom of the screen?
Not sure if bootstrap supports this
@PieterL75 commented on GitHub (Jan 12, 2023):
That the 'position: sticky; bottom: 2em;' that does the job pretty good. (thx @arthanson )
https://elad.medium.com/css-position-sticky-how-it-really-works-54cd01dc2d46
When set to the div that contains the bottom buttons on an edit form, they just float above the rest..
really cool
All I need to know, is how this can be added as an option to the templates.. I guess we don't want all buttons to start floating
@PieterL75 commented on GitHub (Jan 12, 2023):
@jeremystretch can you remove the pending closure ? I want to get see if I can make this work
@PieterL75 commented on GitHub (Jan 12, 2023):
looks like the sticky-bottom is available in bootstrap 5.2 or higher.. any plans to upgrade ?
@kkthxbye-code commented on GitHub (Jan 12, 2023):
I avoided upgrading bootstrap when I did the last frontend dependency bump as it broke stuff.
https://github.com/netbox-community/netbox/pull/10555
You are free to experiment with upgrading it though. If you can fix the regressions I see no reason why we couldn't bump it.
@PieterL75 commented on GitHub (Jan 12, 2023):
now, that's above my skills... too bad..
but I'm going for the 'position-sticky' class and set an extra class for the position... works pretty good (windows chrome/edge, mac chrome/safari are liking it)
@PieterL75 commented on GitHub (Feb 23, 2023):
@jeremystretch Is this approach ok ?
Anything you would like to see changed ?
@bluikko commented on GitHub (Apr 7, 2023):
I want to state my dislike of the proposed solution in the OP second screenshot in the strongest of terms.

It reduces the vertical space available to actual data, the reason of existence of the page it illustrates, to less than half of the browser viewport:
Here the red lines are the non-data vertical space above and below the actual data.
In fact, only 9 lines fit in the table which is totally ridiculous!
This screenshot illustrates very well what is wrong with the top part of data pages, but so far the situation is not totally untenable since the bottom part is not "stickied" to take even more useful space for chrome.
Taking away all that bottom space as well is like trying to read a poster through a letterbox.
Already way too much padding exists - look at the vertical spacing of the table rows as there is as much data as whitespace in the table; third of the page is taken by just a few buttons and massive amount of whitespace at the top - please do not take away yet more few rows of space. I too would like to see sticky bottom-of-page controls but this is definitely not the way to do it. I would rather hit the "end" button to find the buttons than pay such a high price for "sticky" controls.
@PieterL75 commented on GitHub (Apr 7, 2023):
I think you are misinterpreting the image. The whole yellow block will scroll up and down.
Besides that, the current PR I submitted, took a different approach. It will just stick the buttons at the bottom when scrolling..
Please feel free to run the PR in a lab and review
@bluikko commented on GitHub (Apr 7, 2023):
I realize that from the top part only the topmost piece is sticky in addition to the bottom sticky.
It does not change the fact that only 9 rows fit in the page initially. Some more rows vertically will be displayed after scrolling down. I opened a new issue about the fact that vertically two thirds (!!) of the data tables is whitespace.
@PieterL75 commented on GitHub (Apr 7, 2023):
I tend to zoom the page to 80% to get more data on it..
This how the current PR looks like. The buttons stick at top/bottom

@github-actions[bot] commented on GitHub (Aug 1, 2023):
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Do not attempt to circumvent this process by "bumping" the issue; doing so will result in its immediate closure and you may be barred from participating in any future discussions. Please see our contributing guide.
@github-actions[bot] commented on GitHub (Sep 1, 2023):
This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.