Added pagination to books page

This commit is contained in:
Dan Brown 2015-11-09 19:46:04 +00:00
parent ab6f6a5522
commit e5b9be2e76
4 changed files with 55 additions and 6 deletions

View File

@ -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]);
}

View File

@ -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++;
}

View File

@ -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;
}
}

View File

@ -27,6 +27,7 @@
@include('books/list-item', ['book' => $book])
<hr>
@endforeach
{!! $books->render() !!}
@else
<p class="text-muted">No books have been created.</p>
<a href="/books/create" class="text-pos"><i class="zmdi zmdi-edit"></i>Create one now</a>