From e5b9be2e764f8d8dc1416254533c0e5cc97679c8 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Mon, 9 Nov 2015 19:46:04 +0000 Subject: [PATCH] Added pagination to books page --- app/Http/Controllers/BookController.php | 2 +- app/Repos/BookRepo.php | 20 +++++++++---- resources/assets/sass/_lists.scss | 38 +++++++++++++++++++++++++ resources/views/books/index.blade.php | 1 + 4 files changed, 55 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/BookController.php b/app/Http/Controllers/BookController.php index c078aea47..eb9bf7aba 100644 --- a/app/Http/Controllers/BookController.php +++ b/app/Http/Controllers/BookController.php @@ -40,7 +40,7 @@ class BookController extends Controller */ public function index() { - $books = $this->bookRepo->getAll(); + $books = $this->bookRepo->getAllPaginated(10); return view('books/index', ['books' => $books]); } diff --git a/app/Repos/BookRepo.php b/app/Repos/BookRepo.php index aacf96b06..c94817eb3 100644 --- a/app/Repos/BookRepo.php +++ b/app/Repos/BookRepo.php @@ -11,7 +11,7 @@ class BookRepo /** * BookRepo constructor. - * @param Book $book + * @param Book $book * @param PageRepo $pageRepo */ public function __construct(Book $book, PageRepo $pageRepo) @@ -30,6 +30,16 @@ class BookRepo return $this->book->all(); } + /** + * Getas + * @param int $count + * @return mixed + */ + public function getAllPaginated($count = 10) + { + return $this->book->orderBy('name', 'asc')->paginate($count); + } + public function getBySlug($slug) { return $this->book->where('slug', '=', $slug)->first(); @@ -63,11 +73,11 @@ class BookRepo public function destroyBySlug($bookSlug) { $book = $this->getBySlug($bookSlug); - foreach($book->pages as $page) { + foreach ($book->pages as $page) { \Activity::removeEntity($page); $page->delete(); } - foreach($book->chapters as $chapter) { + foreach ($book->chapters as $chapter) { \Activity::removeEntity($chapter); $chapter->delete(); } @@ -83,7 +93,7 @@ class BookRepo public function doesSlugExist($slug, $currentId = false) { $query = $this->book->where('slug', '=', $slug); - if($currentId) { + if ($currentId) { $query = $query->where('id', '!=', $currentId); } return $query->count() > 0; @@ -94,7 +104,7 @@ class BookRepo $originalSlug = Str::slug($name); $slug = $originalSlug; $count = 2; - while($this->doesSlugExist($slug, $currentId)) { + while ($this->doesSlugExist($slug, $currentId)) { $slug = $originalSlug . '-' . $count; $count++; } diff --git a/resources/assets/sass/_lists.scss b/resources/assets/sass/_lists.scss index f90c7e2ba..c2bfb38e3 100644 --- a/resources/assets/sass/_lists.scss +++ b/resources/assets/sass/_lists.scss @@ -214,4 +214,42 @@ .left + .right { margin-left: 30px + $-s; } +} + +ul.pagination { + display: inline-block; + list-style: none; + margin: $-m 0; + li { + float: left; + } + li:first-child { + a, span { + border-radius: 3px 0 0 3px; + } + } + li:last-child { + a, span { + border-radius: 0 3px 3px 0; + } + } + a, span { + display: block; + padding: $-xxs $-s; + border: 1px solid #CCC; + margin-left: -1px; + color: #888; + user-select: none; + &.disabled { + cursor: not-allowed; + } + } + li.active span { + background-color: rgba($primary, 0.8); + color: #EEE; + border-color: rgba($primary, 0.8); + } + a { + color: $primary; + } } \ No newline at end of file diff --git a/resources/views/books/index.blade.php b/resources/views/books/index.blade.php index c536a2059..8163f5105 100644 --- a/resources/views/books/index.blade.php +++ b/resources/views/books/index.blade.php @@ -27,6 +27,7 @@ @include('books/list-item', ['book' => $book])
@endforeach + {!! $books->render() !!} @else

No books have been created.

Create one now