diff --git a/app/User.php b/app/User.php index 2e37fe484..731b792f5 100644 --- a/app/User.php +++ b/app/User.php @@ -32,4 +32,16 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon * @var array */ protected $hidden = ['password', 'remember_token']; + + /** + * Returns the user's avatar, + * Uses Gravatar as the avatar service. + * @param int $size + * @return string + */ + public function getAvatar($size = 50) + { + $emailHash = md5(strtolower(trim($this->email))); + return '//www.gravatar.com/avatar/' . $emailHash . '?s=' . $size . '&d=identicon'; + } } diff --git a/resources/assets/sass/_tables.scss b/resources/assets/sass/_tables.scss index 768eb18e6..fe01976ec 100644 --- a/resources/assets/sass/_tables.scss +++ b/resources/assets/sass/_tables.scss @@ -8,6 +8,7 @@ table.table { text-align: left; border: none; padding: $-xs $-xs; + vertical-align: middle; } th { font-weight: bold; diff --git a/resources/assets/sass/styles.scss b/resources/assets/sass/styles.scss index 308dbd1eb..aea2360a3 100644 --- a/resources/assets/sass/styles.scss +++ b/resources/assets/sass/styles.scss @@ -46,7 +46,7 @@ header { } .logo-container { - padding: $-l $-s; + padding: $-l $-s 0 $-s; color: #CCC; .logo { display: block; @@ -59,6 +59,15 @@ header { } } +.user-overview { + margin-top: $-m; + .user-name { + display: inline-block; + vertical-align: top; + padding: $-m $-s; + } +} + .search-box { input { @@ -432,4 +441,15 @@ body.dragging, body.dragging * { padding: $-s 0; color: #888; border-bottom: 1px solid #EEE; + font-size: 0.9em; + .left { + float: left; + } + .left + .right { + margin-left: 30px + $-s; + } +} + +.avatar { + border-radius: 100%; } \ No newline at end of file diff --git a/resources/views/base.blade.php b/resources/views/base.blade.php index e6c601ef3..cf3957b78 100644 --- a/resources/views/base.blade.php +++ b/resources/views/base.blade.php @@ -37,7 +37,12 @@ <div class="padded row clearfix"> <div class="col-md-12 logo-container"> <a href="/" class="logo">BookStack</a> - <div><i class="zmdi zmdi-account"></i> {{ Auth::user()->name }}</div> + <div class="user-overview"> + <img class="avatar" src="{{Auth::user()->getAvatar(50)}}" alt="{{ Auth::user()->name }}"> + <span class="user-name"> + {{ Auth::user()->name }} + </span> + </div> </div> </div> </header> diff --git a/resources/views/pages/revisions.blade.php b/resources/views/pages/revisions.blade.php index 03ed0cea7..74e66f5e2 100644 --- a/resources/views/pages/revisions.blade.php +++ b/resources/views/pages/revisions.blade.php @@ -20,14 +20,15 @@ <table class="table"> <tr> <th>Name</th> - <th>Created By</th> + <th colspan="2">Created By</th> <th>Revision Date</th> <th>Actions</th> </tr> @foreach($page->revisions as $revision) <tr> <td>{{$revision->name}}</td> - <td>{{$revision->createdBy->name}}</td> + <td style="line-height: 0;"><img class="avatar" src="{{ $revision->createdBy->getAvatar(30) }}" alt="{{$revision->createdBy->name}}"></td> + <td> {{$revision->createdBy->name}}</td> <td><small>{{$revision->created_at->format('jS F, Y H:i:s')}} ({{$revision->created_at->diffForHumans()}})</small></td> <td> <a href="{{$revision->getUrl()}}" target="_blank">Preview</a> diff --git a/resources/views/partials/activity-item.blade.php b/resources/views/partials/activity-item.blade.php index 1fa823309..78168ea96 100644 --- a/resources/views/partials/activity-item.blade.php +++ b/resources/views/partials/activity-item.blade.php @@ -1,16 +1,26 @@ {{--Requires an Activity item with the name $activity passed in--}} -@if($activity->user) {{$activity->user->name}} @endif - -{{ $activity->getText() }} - -@if($activity->entity()) - <a href="{{ $activity->entity()->getUrl() }}">{{ $activity->entity()->name }}</a> +@if($activity->user) + <div class="left"> + <img class="avatar" src="{{ $activity->user->getAvatar(30) }}" alt="{{$activity->user->name}}"> + </div> @endif -@if($activity->extra) "{{$activity->extra}}" @endif +<div class="right"> + @if($activity->user) + {{$activity->user->name}} + @endif -<br> + {{ $activity->getText() }} -<span class="text-muted"><small><i class="zmdi zmdi-time"></i>{{ $activity->created_at->diffForHumans() }}</small></span> \ No newline at end of file + @if($activity->entity()) + <a href="{{ $activity->entity()->getUrl() }}">{{ $activity->entity()->name }}</a> + @endif + + @if($activity->extra) "{{$activity->extra}}" @endif + + <br> + + <span class="text-muted"><small><i class="zmdi zmdi-time"></i>{{ $activity->created_at->diffForHumans() }}</small></span> +</div> diff --git a/resources/views/users/delete.blade.php b/resources/views/users/delete.blade.php index 279fbdb30..2c07daef6 100644 --- a/resources/views/users/delete.blade.php +++ b/resources/views/users/delete.blade.php @@ -10,7 +10,7 @@ <form action="/users/{{$user->id}}" method="POST"> {!! csrf_field() !!} <input type="hidden" name="_method" value="DELETE"> - <a href="/user/{{$user->id}}" class="button muted">Cancel</a> + <a href="/users/{{$user->id}}" class="button muted">Cancel</a> <button type="submit" class="button neg">Confirm</button> </form> </div> diff --git a/resources/views/users/edit.blade.php b/resources/views/users/edit.blade.php index 5e164e90e..1e23a1c3b 100644 --- a/resources/views/users/edit.blade.php +++ b/resources/views/users/edit.blade.php @@ -12,14 +12,29 @@ </div> </div> - <div class="page-content"> - <h1>Edit User</h1> - - <form action="/users/{{$user->id}}" method="post"> - {!! csrf_field() !!} - <input type="hidden" name="_method" value="put"> - @include('users/form', ['model' => $user]) - </form> + <div class="row"> + <div class="page-content"> + <div class="row"> + <div class="col-md-6"> + <h1>Edit User</h1> + <form action="/users/{{$user->id}}" method="post"> + {!! csrf_field() !!} + <input type="hidden" name="_method" value="put"> + @include('users/form', ['model' => $user]) + </form> + </div> + <div class="col-md-6"> + <h1> </h1> + <div class="shaded padded margin-top"> + <p> + <img class="avatar" src="{{ $user->getAvatar(80) }}" alt="{{ $user->name }}"> + </p> + <p class="text-muted">You can change your profile picture at <a href="http://en.gravatar.com/">Gravatar</a>.</p> + </div> + </div> + </div> + </div> </div> + @stop diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index f29ad79b7..2fd51decd 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -18,11 +18,13 @@ <h1>Users</h1> <table class="table"> <tr> + <th></th> <th>Name</th> <th>Email</th> </tr> @foreach($users as $user) <tr> + <td style="line-height: 0;"><img class="avatar" src="{{$user->getAvatar(40)}}" alt="{{$user->name}}"></td> <td><a href="/users/{{$user->id}}">{{$user->name}}</a></td> <td>{{$user->email}}</td> </tr>