Skip to content

Retarget GHCR, releases, and docs to this repo - #18

Merged
maxijabase merged 1 commit into
mainfrom
chore/srcds-cutover
Aug 31, 2026
Merged

maxijabase merged 1 commit into
mainfrom
chore/srcds-cutover

Conversation

@maxijabase

Copy link
Copy Markdown
Collaborator

Summary

  • Publish the production Docker image to ghcr.io/srcdslab/sourcebans-pp. Push to main also publishes a rolling :main tag. Semver tags still own :latest.
  • Stop docs-deploy-trigger.yml from dispatching into sbpp/sbpp.github.io. Docs stay in-tree; docs-build.yml still validates the Astro build.
  • Point README, panel footer, recovery pages, system.check_version, and operator-facing docs at srcdslab/sourcebans-pp.

Plugins-Latest

That GitHub release is leftover from the old plugin.yml CI on php81. It rebuilt a floating plugin-only tarball on every plugin-path push. It is not a semver panel release. Current release.yml only fires on *.*.* tags, and this repo has never had one.

Do not tag a version until this PR is on main. Then git tag X.Y.Z && git push srcds X.Y.Z. Before that, un-latest or delete Plugins-Latest so GitHub and system.check_version do not treat it as the latest release.

Test plan

  • Merge this PR, then confirm GHCR package ghcr.io/srcdslab/sourcebans-pp:main exists (org admin may need to allow GitHub Actions to create packages).
  • Confirm a docs push does not call sbpp/sbpp.github.io.
  • Enable Issues on the repo (Maintain cannot; needs Admin).
  • After merge, delete or un-latest the Plugins-Latest release, then cut the first X.Y.Z tag.

Publish the production image to ghcr.io/srcdslab/sourcebans-pp, including a rolling :main tag on pushes to main. Stop dispatching docs deploys into sbpp/sbpp.github.io. Point panel and operator-facing links at this repo.
@maxijabase
maxijabase merged commit a6fdce9 into main Aug 31, 2026
5 of 6 checks passed
@maxijabase
maxijabase deleted the chore/srcds-cutover branch August 31, 2026 17:48
Rushaway added a commit that referenced this pull request Sep 6, 2026
The 2.0 player drawer's Comments section was read-only, so once a
ban/comm had comments the only way to add another from the list view
was to expand the inline disclosure and scroll past the thread (the
review's "only the raw ?comment= URL" point). 1.x kept an always-
present "Add comment" admin action on the expanded row.

- api_bans_detail / api_comms_detail: new `can_comment` (login-only,
  mirrors the page handlers' `can_comment` splat) plus per-comment
  `can_edit` (own comment or Owner) / `can_delete` (Owner) — same
  gating as page.banlist.php's `$commentres` loop. `C.aid` added to
  the comment SELECT to compute ownership.
- theme.js renderOverviewPane: render the per-comment edit/delete row
  and an "Add comment" CTA. Edit/add link to the same server-rendered
  `?p=…&comment=…` surface the inline disclosure uses; delete reuses
  the global `data-action="comment-delete"` dispatcher
  (comment-actions.js) with `data-page="-1"`.
- api-contract.js: regenerated (also picks up the stale
  ApiSystemCheckVersion re-wrap left by #18's hand-edit).
- player-drawer.tpl: reference shape + variable contract updated.
- Tests: bans/comms detail snapshots + assertions for the new flags;
  e2e drawer-mirror asserts the admin Add-comment CTA.

Follow-up to #28 review.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rushaway added a commit that referenced this pull request Sep 6, 2026
#28)

* fix(banlist/commslist): restore per-punishment comment CTAs (sbpp#1544)

The 2.0.0 theme rebuild rendered the inline comment thread on the
public ban list and comms list but dropped the add / edit / delete
call-to-action buttons. page.banlist.php / page.commslist.php still
build addcomment, editcomlink and delcomlink for every row (already
permission-gated), the templates just never printed them.

- page_bans.tpl / page_comms.tpl: render $com.editcomlink +
  $com.delcomlink under each inline comment (delete reuses the
  existing data-action="comment-delete" dispatcher in
  comment-actions.js), and an "Add comment" footer link in the
  disclosure. For admins the disclosure now also renders on rows
  with zero comments so a thread can be started there.
- BanListView / CommsListView: new can_comment flag
  ($userbank->is_admin(), matching the login-only bans.add_comment
  API gate), defaulted false for third-party callers.
- theme.css: styles for the new action row + add-comment footer.
- BanlistCommentsVisibilityTest: cover the admin add-comment CTA and
  the public no-CTA path (replaces the now-obsolete "disclosure never
  renders on an uncommented row" assertion).

Upstream issue: sbpp#1544

* fix: guard commentdata access when public comments are disabled

page_bans.tpl accessed $ban.commentdata before the $view_comments
gate, tripping an 'Undefined array key' warning (PHPUnit treats it as
a failure) for anonymous callers when config.enablepubliccomments=0 —
the handler doesn't build commentdata in that branch.

* fix(comments): render banlist/commslist comment CTAs as Lucide icons

The restored per-comment edit/delete controls and the "Add comment"
link were still emitting Font Awesome markup (`<i class="fas fa-edit
fa-lg">` / `fa-trash` / `fa-comment-dots`). The 2.0 theme dropped
Font Awesome, so `editcomlink` and `delcomlink` — which are icon-only
— rendered as empty `<a>` elements; `addcomment` lost its glyph but
kept the visible "Add Comment" text.

Swap all three to `<i data-lucide="…">` (pencil / trash-2 /
message-square-plus), matching the icon vocabulary the rest of the
banlist/commslist chrome uses (and the Lucide-not-glyph rule
PublicBanListRegressionTest pins for the row-action buttons). Add
`aria-label` to the icon-only edit/delete anchors so they carry an
accessible name the way the row-action buttons do.

Follow-up to #28 review.

* feat(drawer): add/edit/delete comment affordances in the player drawer

The 2.0 player drawer's Comments section was read-only, so once a
ban/comm had comments the only way to add another from the list view
was to expand the inline disclosure and scroll past the thread (the
review's "only the raw ?comment= URL" point). 1.x kept an always-
present "Add comment" admin action on the expanded row.

- api_bans_detail / api_comms_detail: new `can_comment` (login-only,
  mirrors the page handlers' `can_comment` splat) plus per-comment
  `can_edit` (own comment or Owner) / `can_delete` (Owner) — same
  gating as page.banlist.php's `$commentres` loop. `C.aid` added to
  the comment SELECT to compute ownership.
- theme.js renderOverviewPane: render the per-comment edit/delete row
  and an "Add comment" CTA. Edit/add link to the same server-rendered
  `?p=…&comment=…` surface the inline disclosure uses; delete reuses
  the global `data-action="comment-delete"` dispatcher
  (comment-actions.js) with `data-page="-1"`.
- api-contract.js: regenerated (also picks up the stale
  ApiSystemCheckVersion re-wrap left by #18's hand-edit).
- player-drawer.tpl: reference shape + variable contract updated.
- Tests: bans/comms detail snapshots + assertions for the new flags;
  e2e drawer-mirror asserts the admin Add-comment CTA.

Follow-up to #28 review.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant