tweak URL of user avatar
This commit is contained in:
parent
b8dab4b57a
commit
d4e482abb7
|
|
@ -23,7 +23,7 @@ class UserMenuComposer
|
||||||
public function compose(View $view)
|
public function compose(View $view)
|
||||||
{
|
{
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
$avatarUrl = route('avatar.user', ['uid' => $user->uid, 'size' => 36]);
|
$avatarUrl = route('avatar.texture', ['tid' => $user->avatar, 'size' => 36]);
|
||||||
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
|
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
|
||||||
$cli = $this->request->is('admin', 'admin/*');
|
$cli = $this->request->is('admin', 'admin/*');
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,7 @@ class UserPanelComposer
|
||||||
{
|
{
|
||||||
/** @var User */
|
/** @var User */
|
||||||
$user = auth()->user();
|
$user = auth()->user();
|
||||||
$avatarUrl = route('avatar.user', ['uid' => $user->uid, 'size' => 45]);
|
$avatarUrl = route('avatar.texture', ['tid' => $user->avatar, 'size' => 45]);
|
||||||
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
|
$avatar = $this->filter->apply('user_avatar', $avatarUrl, [$user]);
|
||||||
|
|
||||||
$badges = [];
|
$badges = [];
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,6 @@
|
||||||
window.blessing = JSON.parse(blessingElement.textContent!)
|
window.blessing = JSON.parse(blessingElement.textContent!)
|
||||||
|
|
||||||
window.addEventListener('load', () => {
|
window.addEventListener('load', () => {
|
||||||
navigator.serviceWorker.register('/sw.js?v5')
|
navigator.serviceWorker.register('/sw.js?v6')
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -38,8 +38,8 @@ registerRoute(
|
||||||
)
|
)
|
||||||
|
|
||||||
registerRoute(
|
registerRoute(
|
||||||
/\/avatar\/user\/\d+/,
|
/\/avatar\/\d+/,
|
||||||
new StaleWhileRevalidate({
|
new CacheFirst({
|
||||||
cacheName: 'avatar-v2',
|
cacheName: 'avatar-v2',
|
||||||
fetchOptions: {
|
fetchOptions: {
|
||||||
credentials: 'omit',
|
credentials: 'omit',
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,9 @@ export default async function setAsAvatar(tid: number) {
|
||||||
toast.success(message)
|
toast.success(message)
|
||||||
document
|
document
|
||||||
.querySelectorAll<HTMLImageElement>('[alt="User Image"]')
|
.querySelectorAll<HTMLImageElement>('[alt="User Image"]')
|
||||||
.forEach((el) => (el.src += `?${new Date().getTime()}`))
|
.forEach((el) => {
|
||||||
|
el.src = `${blessing.base_url}/avatar/${tid}`
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
toast.error(message)
|
toast.error(message)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,6 @@ export default async function resetAvatar() {
|
||||||
document
|
document
|
||||||
.querySelectorAll<HTMLImageElement>('[alt="User Image"]')
|
.querySelectorAll<HTMLImageElement>('[alt="User Image"]')
|
||||||
.forEach((el) => {
|
.forEach((el) => {
|
||||||
el.src += `?${new Date().getTime()}`
|
el.src = `${blessing.base_url}/avatar/0`
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -319,7 +319,10 @@ describe('set avatar', () => {
|
||||||
)
|
)
|
||||||
expect(queryByText('success')).toBeInTheDocument()
|
expect(queryByText('success')).toBeInTheDocument()
|
||||||
expect(getByRole('status')).toHaveClass('alert-success')
|
expect(getByRole('status')).toHaveClass('alert-success')
|
||||||
expect(document.querySelector('[alt="User Image"]')).toHaveAttribute('src')
|
expect(document.querySelector('[alt="User Image"]')).toHaveAttribute(
|
||||||
|
'src',
|
||||||
|
`/avatar/${fixtureSkin.tid}`,
|
||||||
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('failed', async () => {
|
it('failed', async () => {
|
||||||
|
|
|
||||||
|
|
@ -16,5 +16,5 @@ test('reset avatar', async () => {
|
||||||
await resetAvatar()
|
await resetAvatar()
|
||||||
expect(post).toBeCalledWith('/user/profile/avatar', { tid: 0 })
|
expect(post).toBeCalledWith('/user/profile/avatar', { tid: 0 })
|
||||||
expect(toast.success).toBeCalledWith('ok')
|
expect(toast.success).toBeCalledWith('ok')
|
||||||
expect(document.querySelector('img')!.src).toMatch(/\d+$/)
|
expect(document.querySelector('img')!.src).toBe('/avatar/0')
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ class UserControllerTest extends TestCase
|
||||||
->assertSee($announcement, false);
|
->assertSee($announcement, false);
|
||||||
$filter->assertApplied('grid:user.index');
|
$filter->assertApplied('grid:user.index');
|
||||||
$filter->assertApplied('user_avatar', function ($url, $user) use ($uid) {
|
$filter->assertApplied('user_avatar', function ($url, $user) use ($uid) {
|
||||||
$this->assertTrue(Str::contains($url, '/avatar/user/'.$uid));
|
$this->assertTrue(Str::contains($url, '/avatar/'.$user->avatar));
|
||||||
$this->assertEquals($uid, $user->uid);
|
$this->assertEquals($uid, $user->uid);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|
|
||||||
|
|
@ -8,15 +8,9 @@ class UserMenuComposerTest extends TestCase
|
||||||
{
|
{
|
||||||
public function testAvatar()
|
public function testAvatar()
|
||||||
{
|
{
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create(['avatar' => 5]);
|
||||||
$this->actingAs($user)
|
$this->actingAs($user)->get('/')->assertSee(url('/avatar/5?size=36'));
|
||||||
->get('/')
|
$this->get('/skinlib')->assertSee(url('/avatar/5?size=36'));
|
||||||
->assertSee(url('/avatar/user/'.$user->uid.'?size=36'));
|
$this->get('/user')->assertSee(url('/avatar/5?size=36'));
|
||||||
$this->actingAs($user)
|
|
||||||
->get('/skinlib')
|
|
||||||
->assertSee(url('/avatar/user/'.$user->uid.'?size=36'));
|
|
||||||
$this->actingAs($user)
|
|
||||||
->get('/user')
|
|
||||||
->assertSee(url('/avatar/user/'.$user->uid.'?size=36'));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ class UserPanelComposerTest extends TestCase
|
||||||
$user = factory(User::class)->create();
|
$user = factory(User::class)->create();
|
||||||
$this->actingAs($user);
|
$this->actingAs($user);
|
||||||
|
|
||||||
$this->get('/user')->assertSee(url('/avatar/user/'.$user->uid.'?size=45'));
|
$this->get('/user')->assertSee(url('/avatar/0?size=45'));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function testBadges()
|
public function testBadges()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user