Skip to content

Admin UI polish: pagination, accordions, spacing, date fields - #219

Merged
snoopdave merged 7 commits into
masterfrom
ui-improvements
Oct 31, 2026
Merged

snoopdave merged 7 commits into
masterfrom
ui-improvements

Conversation

@snoopdave

@snoopdave snoopdave commented Oct 24, 2026 •

Copy link
Copy Markdown
Contributor

Fixes found while running Roller locally with latest master.

Hi, it's me Dave and not Claude or Codex. The changes in this PR are mostly about:

  • Making pagination controls consistent across all pages, with first and last buttons
  • Fixing the entry editor page so that the accordian control of advanced settings looks good
  • Making the date field control more intuitive and useful

I have tested this locally and it looks good, but I have not reviewed the code changes closely.

(the PR is large because adding a last button to the pagination control required new queries)

- One pager for Entries, Comments and media search: First / Newer /
  Page N of M / Older / Last. Backed by new count queries that share
  the list queries' WHERE clauses. Media search results are reachable
  past page 1 for the first time.
- Entry editor panels are Bootstrap 5 accordions with a chevron.
- Spacing for editor buttons, accordions and sidebar filter forms.
- Comment and entry tables fit narrow screens; long unbroken spam
  URLs wrap.
- Date fields: attached calendar button that works, clear button on
  filters, no longer greyed out; one shared script replaces five
  per-page snippets.
- CommentTest had no @test annotations and never ran; it does now.
@snoopdave
snoopdave requested a review from mraible October 24, 2026 20:53
Bootstrap 5 sizes everything for a 16px root, which reads large in the
admin UI; a 15px root scales text, controls and spacing down together.
Page titles and sidebar headings get smaller sizes, and cards stacked in
a column (sidebar cards, setup steps) no longer touch.
…button

The accordion headers are Bootstrap 5 buttons now, not links.
The check read each select's position separately while the collapse was
still animating, so the y values drifted apart on slower runners.

@mraible mraible left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The total-count pagers and First/Last links work well, and the re-enabled CommentTest cases pass. LGTM, with one non-blocking note inline. Separately, the media Java files went from CRLF to LF, so their diffs look much bigger than the real change (MediaFileView.java shows 978 changed lines, but only 12 without line-ending and whitespace changes). That's fine to keep, but it's worth knowing for blame.

// build entries pager
String baseUrl = buildBaseUrl();
setPager(new EntriesPager(baseUrl, getBean().getPage(), entries, hasMore));
setPager(new EntriesPager(baseUrl, getBean().getPage(), entries, totalCount, COUNT));

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This predates the PR, but the new page count makes it easier to hit. buildBaseUrl() puts the category under bean.categoryPath (line 131), while EntriesBean and the sidebar use bean.categoryName. So with a category filter, Next and Last open a page of the unfiltered list, even though "Page 1 of M" was counted with the filter. Changing that key to bean.categoryName would fix it.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0dd3de0. Next and Last now keep the category filter.

@snoopdave
snoopdave merged commit ad726cc into master Oct 31, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants