mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-05-04 16:20:26 +00:00
Added pagination to books page
This commit is contained in:
parent
ab6f6a5522
commit
e5b9be2e76
4 changed files with 55 additions and 6 deletions
app
resources
|
@ -40,7 +40,7 @@ class BookController extends Controller
|
||||||
*/
|
*/
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
$books = $this->bookRepo->getAll();
|
$books = $this->bookRepo->getAllPaginated(10);
|
||||||
return view('books/index', ['books' => $books]);
|
return view('books/index', ['books' => $books]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ class BookRepo
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BookRepo constructor.
|
* BookRepo constructor.
|
||||||
* @param Book $book
|
* @param Book $book
|
||||||
* @param PageRepo $pageRepo
|
* @param PageRepo $pageRepo
|
||||||
*/
|
*/
|
||||||
public function __construct(Book $book, PageRepo $pageRepo)
|
public function __construct(Book $book, PageRepo $pageRepo)
|
||||||
|
@ -30,6 +30,16 @@ class BookRepo
|
||||||
return $this->book->all();
|
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)
|
public function getBySlug($slug)
|
||||||
{
|
{
|
||||||
return $this->book->where('slug', '=', $slug)->first();
|
return $this->book->where('slug', '=', $slug)->first();
|
||||||
|
@ -63,11 +73,11 @@ class BookRepo
|
||||||
public function destroyBySlug($bookSlug)
|
public function destroyBySlug($bookSlug)
|
||||||
{
|
{
|
||||||
$book = $this->getBySlug($bookSlug);
|
$book = $this->getBySlug($bookSlug);
|
||||||
foreach($book->pages as $page) {
|
foreach ($book->pages as $page) {
|
||||||
\Activity::removeEntity($page);
|
\Activity::removeEntity($page);
|
||||||
$page->delete();
|
$page->delete();
|
||||||
}
|
}
|
||||||
foreach($book->chapters as $chapter) {
|
foreach ($book->chapters as $chapter) {
|
||||||
\Activity::removeEntity($chapter);
|
\Activity::removeEntity($chapter);
|
||||||
$chapter->delete();
|
$chapter->delete();
|
||||||
}
|
}
|
||||||
|
@ -83,7 +93,7 @@ class BookRepo
|
||||||
public function doesSlugExist($slug, $currentId = false)
|
public function doesSlugExist($slug, $currentId = false)
|
||||||
{
|
{
|
||||||
$query = $this->book->where('slug', '=', $slug);
|
$query = $this->book->where('slug', '=', $slug);
|
||||||
if($currentId) {
|
if ($currentId) {
|
||||||
$query = $query->where('id', '!=', $currentId);
|
$query = $query->where('id', '!=', $currentId);
|
||||||
}
|
}
|
||||||
return $query->count() > 0;
|
return $query->count() > 0;
|
||||||
|
@ -94,7 +104,7 @@ class BookRepo
|
||||||
$originalSlug = Str::slug($name);
|
$originalSlug = Str::slug($name);
|
||||||
$slug = $originalSlug;
|
$slug = $originalSlug;
|
||||||
$count = 2;
|
$count = 2;
|
||||||
while($this->doesSlugExist($slug, $currentId)) {
|
while ($this->doesSlugExist($slug, $currentId)) {
|
||||||
$slug = $originalSlug . '-' . $count;
|
$slug = $originalSlug . '-' . $count;
|
||||||
$count++;
|
$count++;
|
||||||
}
|
}
|
||||||
|
|
|
@ -214,4 +214,42 @@
|
||||||
.left + .right {
|
.left + .right {
|
||||||
margin-left: 30px + $-s;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -27,6 +27,7 @@
|
||||||
@include('books/list-item', ['book' => $book])
|
@include('books/list-item', ['book' => $book])
|
||||||
<hr>
|
<hr>
|
||||||
@endforeach
|
@endforeach
|
||||||
|
{!! $books->render() !!}
|
||||||
@else
|
@else
|
||||||
<p class="text-muted">No books have been created.</p>
|
<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>
|
<a href="/books/create" class="text-pos"><i class="zmdi zmdi-edit"></i>Create one now</a>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue