Repository navigation
Put every admin form's buttons in Orchard Core's sticky bottom action bar - #1262
Merged
Merged
Conversation
… bar Orchard Core 4 (PR #19302) keeps the buttons of every admin edit page in a bar fixed to the bottom of the screen, so Save and Cancel stay visible on long forms. The module views now do the same: - 143 admin create, edit, import, upload, refund, convert and setup views render their buttons in <div class="action-bar-bottom"> instead of an ocat-wrapper/ocat-end-offset (or d-flex/mb-3) row at the end of the form. - Delete, Preview, Deliveries and similar less used buttons are marked action-bar-secondary, so they move into the bar's ellipsis menu in the Menu actions layout and on small screens. - The calendar event forms, which also render inside the calendar modal, use the bar only on the full page. - Hints and warnings that sat under the buttons moved above the bar. - Modals, card and accordion sub-forms, list filters, row actions and storefront pages keep their buttons inline. AGENTS.md, CLAUDE.md and a new crestapps-admin-edit-views skill describe the rule for new forms, and a lint test fails when a module view ends a form with an inline button row again. The 3.0.0 changelog notes the change.
…'s buttons into it The page check found two more things: - The soft phone button, the Contact Center agent bar tab and the admin AI assistant are fixed to the bottom of the screen too, and covered the bar's Cancel button. On pages with an action bar they now sit above it, using the bar height Orchard Core publishes in --oc-action-bar-bottom-height. The agent bar stays one layer under the bar, so the bar's "more actions" menu opens over its tab. - My account and its address form are admin pages, so their Save buttons move into the bar as well.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Orchard Core 4 (OrchardCMS/OrchardCore#19302, TheAdmin
4.0.0-preview-19210, already onmain) keeps the buttons of every admin edit page in a bar fixed to the bottom of the screen, so Save and Cancel stay visible on long forms. This PR does the same for every admin form page in this solution, so our pages match Orchard Core's own editors.What changed
<div class="action-bar-bottom">instead of anocat-wrapper/ocat-end-offset,d-flex gap-2ormb-3row at the end of the form. 122 were converted by script (the row had to hold only buttons and be the last thing in a page-level form), and the rest by hand.action-bar-secondary(Delete, Preview, Deliveries, Cancel event, Remove the address, "Receive everything still to come"). With Configuration → Settings → Admin → Actions layout = Menu, and always on phones, they move into the bar's ellipsis menu.--oc-action-bar-bottom-height), and the agent bar stays one layer under the bar so its menu opens over the tab.Guidance for new forms
AGENTS.md: new "Admin Edit (Form) Page Buttons" rules, plus the skill in the skills list.CLAUDE.md: the same rule in short..agents/skills/crestapps-admin-edit-views: the markup, secondary actions, page+modal partials, which forms stay inline, and how to check a page.tests/js/lint/admin-forms-use-action-bar.test.jsfails when a module view ends a page-level form with an inlineocat-end-offsetbutton row again. It fails onmain(lists the old views) and passes here.Validation
dotnet buildofCrestApps.OrchardCore.Cms.Webin Release with-warnaserror: 0 warnings, 0 errors (views compile at build).npx vitest run: 85 files, 1401 tests pass.Not covered: Edit pages of records that a fresh site doesn't have were only compiled, not opened (their markup matches the Create page of the same record, which was opened). The admin AI assistant offset was not checked in a browser, because no admin chat widget was configured on the test site.
🤖 Generated with Claude Code