]> BookStack Code Mirror - bookstack/commitdiff
Added content to user profile pages
authorDan Brown <redacted>
Wed, 17 Feb 2016 22:11:48 +0000 (22:11 +0000)
committerDan Brown <redacted>
Wed, 17 Feb 2016 22:11:48 +0000 (22:11 +0000)
app/Http/Controllers/UserController.php
app/Repos/UserRepo.php
resources/assets/sass/_text.scss
resources/assets/sass/styles.scss
resources/views/base.blade.php
resources/views/partials/activity-item.blade.php
resources/views/users/profile.blade.php

index f166ce2e8b47f112d2b3486b62d5a44345164507..55ca5be19899bbdbc93927a7354548478a973ec9 100644 (file)
@@ -209,7 +209,13 @@ class UserController extends Controller
     {
         $user = $this->userRepo->getById($id);
         $userActivity = $this->userRepo->getActivity($user);
-        $recentPages = $this->userRepo->getCreatedPages($user, 5, 0);
-        return view('users/profile', ['user' => $user, 'activity' => $userActivity, 'recentPages' => $recentPages]);
+        $recentlyCreated = $this->userRepo->getRecentlyCreated($user, 5, 0);
+        $assetCounts = $this->userRepo->getAssetCounts($user);
+        return view('users/profile', [
+            'user' => $user,
+            'activity' => $userActivity,
+            'recentlyCreated' => $recentlyCreated,
+            'assetCounts' => $assetCounts
+        ]);
     }
 }
index 380eb24c98c2f691fc1d3d5cd3b6732c9f1f59f1..d430616f5e6f3abc8534f0d1f85ec7361ae62e4e 100644 (file)
@@ -5,6 +5,7 @@ use BookStack\Page;
 use BookStack\Role;
 use BookStack\Services\EntityService;
 use BookStack\User;
+use Carbon\Carbon;
 use Setting;
 
 class UserRepo
@@ -132,20 +133,26 @@ class UserRepo
     }
 
     /**
-     * Get the pages the the given user has created.
+     * Get the recently created content for this given user.
      * @param User $user
      * @param int $count
-     * @param int $page
      * @return mixed
      */
-    public function getCreatedPages(User $user, $count = 20, $page = 0)
+    public function getRecentlyCreated(User $user, $count = 20)
     {
-        return $this->entityService->page->where('created_by', '=', $user->id)->orderBy('created_at', 'desc')
-            ->skip($page * $count)->take($count)->get();
+        return [
+            'pages' => $this->entityService->page->where('created_by', '=', $user->id)->orderBy('created_at', 'desc')
+                ->take($count)->get(),
+            'chapters' => $this->entityService->chapter->where('created_by', '=', $user->id)->orderBy('created_at', 'desc')
+                ->take($count)->get(),
+            'books' => $this->entityService->book->where('created_by', '=', $user->id)->orderBy('created_at', 'desc')
+                ->take($count)->get()
+        ];
     }
 
     /**
      * Get asset created counts for the give user.
+     * @param User $user
      * @return array
      */
     public function getAssetCounts(User $user)
@@ -156,4 +163,5 @@ class UserRepo
             'books' => $this->entityService->book->where('created_by', '=', $user->id)->count(),
         ];
     }
+
 }
\ No newline at end of file
index 49989663192be24d2e315854f8673d16ceb1298a..4f14837a0256ac5308971644c5f79d0542ed2e1d 100644 (file)
@@ -251,6 +251,13 @@ ol {
   text-align: right;
 }
 
+.text-bigger {
+  font-size: 1.1em;
+}
+.text-large {
+  font-size: 1.6666em;
+}
+
 /**
  * Grouping
  */
index 6b1c1400d557ad4c95d8d1aee7ffa7d31572d5eb..4e6823fc0d35c785fd52b3f569cb1c273a030200 100644 (file)
@@ -47,6 +47,13 @@ body.dragging, body.dragging * {
     width: 80px;
     height: 80px;
   }
+  &.huge {
+    width: 120px;
+    height: 120px;
+  }
+  &.square {
+    border-radius: 3px;
+  }
 }
 
 // System wide notifications
index b00ccc042a8024e23f0de563e899898dcce1be88..0df49485efd400f813f028b768b4ea432971045f 100644 (file)
                                 </span>
                                 <ul>
                                     <li>
-                                        <a href="/settings/users/{{$currentUser->id}}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-lg"></i>Edit Profile</a>
+                                        <a href="/user/{{$currentUser->id}}" class="text-primary"><i class="zmdi zmdi-account zmdi-hc-fw zmdi-hc-lg"></i>View Profile</a>
                                     </li>
                                     <li>
-                                        <a href="/logout" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-lg"></i>Logout</a>
+                                        <a href="/settings/users/{{$currentUser->id}}" class="text-primary"><i class="zmdi zmdi-edit zmdi-hc-fw zmdi-hc-lg"></i>Edit Profile</a>
+                                    </li>
+                                    <li>
+                                        <a href="/logout" class="text-neg"><i class="zmdi zmdi-run zmdi-hc-fw zmdi-hc-lg"></i>Logout</a>
                                     </li>
                                 </ul>
                             </div>
index 1471bdb507b5ceca282c6f90ade3ec23a0960264..f94fad5e179c648d5e14b7fd721633d4d2776afb 100644 (file)
@@ -9,7 +9,7 @@
 
 <div class="right" ng-non-bindable>
     @if($activity->user)
-        {{$activity->user->name}}
+        <a href="/user/{{ $activity->user->id }}">{{$activity->user->name}}</a>
     @else
         A deleted user
     @endif
index 747fdafebe0cfeaa24e56e91352d9ad4f721bb97..20b16894e49e5459c0d0a9c36de154dcc20e0acc 100644 (file)
@@ -4,18 +4,68 @@
 
     <div class="container" ng-non-bindable>
         <div class="row">
-            <div class="col-sm-8">
+            <div class="col-sm-7">
 
                 <div class="padded-top large"></div>
-                <img class="" src="{{$user->getAvatar(120)}}" alt="{{ $user->name }}">
-                <h3>{{ $user->name }}</h3>
-                <p class="text-muted">
-                    User for {{ $user->created_at->diffForHumans(null, true) }}
-                </p>
 
+                <div class="row">
+                    <div class="col-md-7">
+                        <div class="clearfix">
+                            <div class="padded-right float left">
+                                <img class="avatar square huge" src="{{$user->getAvatar(120)}}" alt="{{ $user->name }}">
+                            </div>
+                            <div>
+                                <h3 style="margin-top: 0;">{{ $user->name }}</h3>
+                                <p class="text-muted">
+                                    User for {{ $user->created_at->diffForHumans(null, true) }}
+                                </p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-5 text-bigger">
+                        <div class="text-muted">Created Content</div>
+                        <div class="text-book">
+                            <i class="zmdi zmdi-book zmdi-hc-fw"></i> {{ $assetCounts['books'] }} {{ str_plural('Book', $assetCounts['books']) }}
+                        </div>
+                        <div class="text-chapter">
+                            <i class="zmdi zmdi-collection-bookmark zmdi-hc-fw"></i> {{ $assetCounts['chapters'] }} {{ str_plural('Chapter', $assetCounts['chapters']) }}
+                        </div>
+                        <div class="text-page">
+                            <i class="zmdi zmdi-file-text zmdi-hc-fw"></i> {{ $assetCounts['pages'] }} {{ str_plural('Page', $assetCounts['pages']) }}
+                        </div>
+                    </div>
+                </div>
+
+
+                <hr class="even">
+
+                <h3>Recently Created Pages</h3>
+                @if (count($recentlyCreated['pages']) > 0)
+                    @include('partials/entity-list', ['entities' => $recentlyCreated['pages']])
+                @else
+                    <p class="text-muted">{{ $user->name }} has not created any pages</p>
+                @endif
+
+                <hr class="even">
+
+                <h3>Recently Created Chapters</h3>
+                @if (count($recentlyCreated['chapters']) > 0)
+                    @include('partials/entity-list', ['entities' => $recentlyCreated['chapters']])
+                @else
+                    <p class="text-muted">{{ $user->name }} has not created any chapters</p>
+                @endif
+
+                <hr class="even">
+
+                <h3>Recently Created Books</h3>
+                @if (count($recentlyCreated['books']) > 0)
+                    @include('partials/entity-list', ['entities' => $recentlyCreated['books']])
+                @else
+                    <p class="text-muted">{{ $user->name }} has not created any books</p>
+                @endif
             </div>
 
-            <div class="col-sm-4">
+            <div class="col-sm-4 col-sm-offset-1">
                 <h3>Recent Activity</h3>
                 @include('partials/activity-list', ['activity' => $activity])
             </div>