Skip to content

Commit 6e46605

Browse files
committed
Fix view mode switch in EA bridge
1 parent 289f8c4 commit 6e46605

File tree

2 files changed

+33
-11
lines changed

2 files changed

+33
-11
lines changed

src/Bridge/EasyAdmin/templates/list.html.twig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,11 +126,11 @@
126126
<div class="content-header-title">
127127
<h1 class="title d-none">{{ 'media_library'|trans }}</h1>
128128
<div class="btn-group" role="group" aria-label="Change view mode">
129-
<a href="{{ ea_url().setRoute(route_name, { key: current_key, view_mode: 'list' }) }}" class="btn btn-secondary {{ app.session.get('view_mode', 'grid') == 'list' ? 'active disabled' }}">
129+
<a href="{{ ea_url().setRoute(route_name).set('key', current_key).set('view_mode', 'list') }}" class="btn btn-secondary {{ app.session.get('view_mode', 'grid') == 'list' ? 'active disabled' }}">
130130
<span>
131131
<i class="fas fa-list"></i> {{ 'view.list'|trans }}
132132
</span>
133-
</a><a href="{{ ea_url().setRoute(route_name, { key: current_key, view_mode: 'grid' }) }}" class="btn btn-secondary {{ app.session.get('view_mode', 'grid') == 'grid' ? 'active disabled' }}">
133+
</a><a href="{{ ea_url().setRoute(route_name).set('key', current_key).set('view_mode', 'grid') }}" class="btn btn-secondary {{ app.session.get('view_mode', 'grid') == 'grid' ? 'active disabled' }}">
134134
<span>
135135
<i class="fas fa-th-large"></i> {{ 'view.grid'|trans }}
136136
</span>

tests/src/Bridge/EasyAdmin/Controller/MediaAdminControllerTest.php

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,15 +38,6 @@ protected function setUp(): void
3838
}
3939
}
4040

41-
public function testList(): void
42-
{
43-
$this->client->request(Request::METHOD_GET, '/admin?routeName=joli_media_easy_admin_explore');
44-
$this->assertResponseIsSuccessful();
45-
46-
$this->assertSelectorExists('a[data-component="media-add"]');
47-
$this->assertSelectorCount(5, '.gallery-grid-item');
48-
}
49-
5041
public function testDelete(): void
5142
{
5243
// MediaDeleteBehavior::RESTRICT
@@ -145,6 +136,37 @@ public function testUploadAtRoot(): void
145136
$this->assertSame('/media/cache/joli-media-easy-admin/circle-pattern.png', $response['files'][0]['thumbnailUrl']);
146137
}
147138

139+
public function testViewMode(): void
140+
{
141+
// test switching view mode between grid and list
142+
$this->client->followRedirects();
143+
$crawler = $this->client->request(Request::METHOD_GET, '/admin?routeName=joli_media_easy_admin_explore');
144+
145+
$gridViewLink = $crawler->selectLink('Grid view');
146+
$this->assertStringContainsString('active', (string) $gridViewLink->attr('class')); // grid is default
147+
$this->assertSelectorCount(5, '.gallery-grid-item');
148+
$this->assertSelectorNotExists('.gallery-list-item');
149+
150+
$listViewLink = $crawler->selectLink('List view');
151+
$this->assertStringNotContainsString('active', (string) $listViewLink->attr('class'));
152+
153+
$crawler = $this->client->click($listViewLink->link());
154+
155+
$listViewLink = $crawler->selectLink('List view');
156+
$this->assertStringContainsString('active', (string) $listViewLink->attr('class'));
157+
$this->assertSelectorNotExists('.gallery-grid-item');
158+
$this->assertSelectorCount(5, '.gallery-list-item');
159+
160+
$gridViewLink = $crawler->selectLink('Grid view');
161+
$this->assertStringNotContainsString('active', (string) $gridViewLink->attr('class'));
162+
163+
$crawler = $this->client->click($gridViewLink->link()); // back to grid
164+
165+
$this->assertStringContainsString('active', (string) $crawler->selectLink('Grid view')->attr('class'));
166+
$this->assertSelectorCount(5, '.gallery-grid-item');
167+
$this->assertSelectorNotExists('.gallery-list-item');
168+
}
169+
148170
protected static function getKernelClass(): string
149171
{
150172
return Kernel::class;

0 commit comments

Comments
 (0)