From 7cf969cbbe6e6e80df3d23f428c644b5955509b1 Mon Sep 17 00:00:00 2001 From: Maximiliano Jabase Date: Mon, 7 Sep 2026 17:32:55 -0300 Subject: [PATCH 1/6] feat(banlist): surface demo download on the public list row The drawer already had a download CTA; the public table still hid demos behind that extra click. --- .../integration/AdminEditBanDemoTest.php | 10 ++++++++++ web/themes/default/page_bans.tpl | 20 ++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/web/tests/integration/AdminEditBanDemoTest.php b/web/tests/integration/AdminEditBanDemoTest.php index 6244e0270..032ea4e66 100644 --- a/web/tests/integration/AdminEditBanDemoTest.php +++ b/web/tests/integration/AdminEditBanDemoTest.php @@ -34,4 +34,14 @@ public function testEditBanTemplateShipsRemoveDemoButton(): void $this->assertStringContainsString('data-testid="editban-demo-remove"', $contents); $this->assertStringContainsString('data-ban-id="{$ban_id}"', $contents); } + + public function testBanlistShipsResponsiveDemoDownloadActions(): void + { + $contents = file_get_contents(self::webRoot() . '/themes/default/page_bans.tpl'); + $this->assertIsString($contents); + $this->assertStringContainsString('{if $ban.demo_available}', $contents); + $this->assertStringContainsString('data-testid="row-action-demo-download"', $contents); + $this->assertStringContainsString('data-testid="row-action-demo-download-mobile"', $contents); + $this->assertStringContainsString('href="getdemo.php?type=B&id={$ban.bid}"', $contents); + } } diff --git a/web/themes/default/page_bans.tpl b/web/themes/default/page_bans.tpl index ea660e0d0..359a4e8ad 100644 --- a/web/themes/default/page_bans.tpl +++ b/web/themes/default/page_bans.tpl @@ -531,6 +531,15 @@ {/if} {/if} + {if $ban.demo_available} + + + + {/if} {if !empty($ban.steam)} {* #1308: NO `onclick="event.stopPropagation()"` here. The document-level [data-copy] click delegate in theme.js @@ -681,7 +690,7 @@ - {if $view_bans || !empty($ban.steam) || $ban.can_delete_ban} + {if $view_bans || $ban.demo_available || !empty($ban.steam) || $ban.can_delete_ban}
{if $view_bans} {if $ban.can_edit_ban && $ban.state != 'unbanned'} @@ -716,6 +725,15 @@ {/if} {/if} + {if $ban.demo_available} + + + + {/if} {if !empty($ban.steam)}