mirror of
https://github.com/pixelfed/pixelfed.git
synced 2024-11-25 15:55:22 +00:00
Update admin dashboard, fix search and dropdown menu
This commit is contained in:
parent
9c7b247819
commit
dac0d08319
3 changed files with 78 additions and 12 deletions
23
app/Services/AvatarService.php
Normal file
23
app/Services/AvatarService.php
Normal file
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
use Cache;
|
||||
use App\Profile;
|
||||
|
||||
class AvatarService
|
||||
{
|
||||
public static function get($profile_id)
|
||||
{
|
||||
$exists = Cache::get('avatar:' . $profile_id);
|
||||
if($exists) {
|
||||
return $exists;
|
||||
}
|
||||
|
||||
$profile = Profile::find($profile_id);
|
||||
if(!$profile) {
|
||||
return config('app.url') . '/storage/avatars/default.jpg';
|
||||
}
|
||||
return $profile->avatarUrl();
|
||||
}
|
||||
}
|
10
app/User.php
10
app/User.php
|
@ -7,6 +7,7 @@ use Illuminate\Notifications\Notifiable;
|
|||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use App\Util\RateLimit\User as UserRateLimit;
|
||||
use App\Services\AvatarService;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
|
@ -97,4 +98,13 @@ class User extends Authenticatable
|
|||
return $this->hasMany(AccountInterstitial::class);
|
||||
}
|
||||
|
||||
public function avatarUrl()
|
||||
{
|
||||
if(!$this->profile_id || $this->status) {
|
||||
return config('app.url') . '/storage/avatars/default.jpg';
|
||||
}
|
||||
|
||||
return AvatarService::get($this->profile_id);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
<nav class="navbar navbar-top navbar-expand navbar-dark bg-primary border-bottom">
|
||||
<div class="container-fluid">
|
||||
<div class="collapse navbar-collapse" id="navbarSupportedContent">
|
||||
<form class="navbar-search navbar-search-light form-inline mr-sm-3" id="navbar-search-main" method="get" action="/i/results">
|
||||
<form class="navbar-search navbar-search-light form-inline mr-sm-3" id="navbar-search-main" method="get" action="/i/web">
|
||||
<input type="hidden" name="src" value="ac">
|
||||
<div class="form-group mb-0">
|
||||
<div class="input-group input-group-alternative input-group-merge">
|
||||
<div class="input-group-prepend">
|
||||
|
@ -35,25 +36,57 @@
|
|||
<a class="nav-link pr-0" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<div class="media align-items-center">
|
||||
<span class="avatar avatar-sm rounded-circle">
|
||||
<img alt="avatar" src="{{request()->user()->profile->avatarUrl()}}" onerror="this.onerror=null;this.src='/storage/avatars/default.png?v=0';">
|
||||
<img alt="avatar" src="{{request()->user()->avatarUrl()}}" onerror="this.onerror=null;this.src='/storage/avatars/default.png?v=0';" width="36" height="36" style="object-fit: cover;">
|
||||
</span>
|
||||
<div class="media-body ml-2 d-none d-lg-block">
|
||||
<span class="mb-0 text-sm font-weight-bold">{{request()->user()->username}}</span>
|
||||
<span class="mb-0 text-sm font-weight-bold">{{request()->user()->username}}</span>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<div class="dropdown-menu dropdown-menu-right ">
|
||||
<div class="dropdown-header noti-title">
|
||||
<h6 class="text-overflow m-0">Welcome!</h6>
|
||||
</div>
|
||||
<a href="/i/me" class="dropdown-item">
|
||||
<i class="ni ni-single-02"></i>
|
||||
<span>Profile</span>
|
||||
<a href="/i/web" class="dropdown-item d-flex align-items-center">
|
||||
<span style="width:30px;">
|
||||
<i class="far fa-home text-light"></i>
|
||||
</span>
|
||||
<span class="font-weight-bold">Home</span>
|
||||
</a>
|
||||
<a href="/settings/home" class="dropdown-item">
|
||||
<i class="ni ni-settings-gear-65"></i>
|
||||
<span>Settings</span>
|
||||
|
||||
<a href="/i/web/discover" class="dropdown-item d-flex align-items-center">
|
||||
<span style="width:30px;">
|
||||
<i class="far fa-compass text-light"></i>
|
||||
</span>
|
||||
<span class="font-weight-bold">Discover</span>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a href="/i/me" class="dropdown-item d-flex align-items-center">
|
||||
<span style="width:30px;">
|
||||
<i class="far fa-user text-light"></i>
|
||||
</span>
|
||||
<span class="font-weight-bold">Profile</span>
|
||||
</a>
|
||||
<a href="/settings/home" class="dropdown-item d-flex align-items-center">
|
||||
<span style="width:30px;">
|
||||
<i class="far fa-cog text-light"></i>
|
||||
</span>
|
||||
<span class="font-weight-bold">Settings</span>
|
||||
</a>
|
||||
|
||||
<div class="dropdown-divider"></div>
|
||||
|
||||
<a
|
||||
href="#"
|
||||
class="dropdown-item d-flex align-items-center"
|
||||
onclick="event.preventDefault();document.getElementById('logout-form').submit();">
|
||||
<span style="width:30px;">
|
||||
<i class="far fa-sign-out text-light"></i>
|
||||
</span>
|
||||
<span class="font-weight-bold">{{ __('navmenu.logout') }}</span>
|
||||
</a>
|
||||
<form id="logout-form" action="/logout" method="POST" style="display: none;">
|
||||
@csrf
|
||||
</form>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
|
|
Loading…
Reference in a new issue