mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-10-29 23:22:34 +01:00
Added search
This commit is contained in:
parent
787ad20ce7
commit
4c0783fdc7
@ -132,6 +132,15 @@ class PageController extends Controller
|
||||
return redirect($page->getUrl());
|
||||
}
|
||||
|
||||
public function searchAll(Request $request)
|
||||
{
|
||||
$searchTerm = $request->get('term');
|
||||
if(empty($searchTerm)) return redirect()->back();
|
||||
|
||||
$pages = $this->pageRepo->getBySearch($searchTerm);
|
||||
return view('pages/search-results', ['pages' => $pages, 'searchTerm' => $searchTerm]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
|
@ -36,6 +36,7 @@ Route::get('/images/all/{page}', 'ImageController@getAll');
|
||||
Route::get('/images/{any}', 'ImageController@getImage')->where('any', '.*');
|
||||
|
||||
Route::get('/link/{id}', 'PageController@redirectFromLink');
|
||||
Route::get('/pages/search/all', 'PageController@searchAll');
|
||||
|
||||
Route::get('/', function () {
|
||||
return view('base');
|
||||
|
@ -49,4 +49,14 @@ class PageRepo
|
||||
$page->delete();
|
||||
}
|
||||
|
||||
public function getBySearch($term)
|
||||
{
|
||||
$terms = explode(' ', trim($term));
|
||||
$query = $this->page;
|
||||
foreach($terms as $term) {
|
||||
$query = $query->where('text', 'like', '%'.$term.'%');
|
||||
}
|
||||
return $query->get();
|
||||
}
|
||||
|
||||
}
|
@ -1,9 +1,8 @@
|
||||
|
||||
.input-base {
|
||||
background-color: #FFF;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #BBB;
|
||||
border-top: 1px solid #AAA;
|
||||
border-radius: 3px;
|
||||
border: 1px solid #CCC;
|
||||
display: inline-block;
|
||||
font-size: $fs-s;
|
||||
font-family: $text;
|
||||
|
@ -164,6 +164,14 @@ p.secondary, p .secondary, span.secondary, .text-secondary {
|
||||
color: $secondary;
|
||||
}
|
||||
|
||||
/*
|
||||
* Lists
|
||||
*/
|
||||
ul {
|
||||
list-style: disc;
|
||||
margin-left: $-m;
|
||||
}
|
||||
|
||||
/*
|
||||
* Generic text styling classes
|
||||
*/
|
||||
|
@ -29,9 +29,10 @@ header hr {
|
||||
header .menu {
|
||||
margin-bottom: 0;
|
||||
list-style: none;
|
||||
margin-left: 0;
|
||||
li {
|
||||
display: inline-block;
|
||||
margin-left: $-m;
|
||||
margin-right: $-m;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -16,6 +16,11 @@
|
||||
}, 800); // Adjust to change animations speed (ms)
|
||||
return this;
|
||||
};
|
||||
$.expr[":"].contains = $.expr.createPseudo(function(arg) {
|
||||
return function( elem ) {
|
||||
return $(elem).text().toUpperCase().indexOf(arg.toUpperCase()) >= 0;
|
||||
};
|
||||
});
|
||||
</script>
|
||||
@yield('head')
|
||||
</head>
|
||||
@ -23,11 +28,21 @@
|
||||
|
||||
<header>
|
||||
<div class="container">
|
||||
<div class="padded-vertical clearfix">
|
||||
<div class="logo float left">Oxbow</div>
|
||||
<ul class="menu float right">
|
||||
<li><a href="/books"><i class="fa fa-book"></i>Books</a></li>
|
||||
</ul>
|
||||
<div class="padded-vertical row clearfix">
|
||||
<div class="col-md-3">
|
||||
<div class="logo float left">Oxbow</div>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<ul class="menu float">
|
||||
<li><a href="/books"><i class="fa fa-book"></i>Books</a></li>
|
||||
</ul>
|
||||
<div class="search-box float right">
|
||||
<form action="/pages/search/all" id="search-form" method="GET">
|
||||
{!! csrf_field() !!}
|
||||
<input type="text" placeholder="Search all pages..." name="term" id="search-input">
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
30
resources/views/pages/search-results.blade.php
Normal file
30
resources/views/pages/search-results.blade.php
Normal file
@ -0,0 +1,30 @@
|
||||
@extends('base')
|
||||
|
||||
@section('content')
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-3 page-menu">
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-9 page-content">
|
||||
<h1>Search Results <span class="subheader">For '{{$searchTerm}}'</span></h1>
|
||||
<div class="page-list">
|
||||
@if(count($pages) > 0)
|
||||
@foreach($pages as $page)
|
||||
<a href="{{$page->getUrl() . '#' . $searchTerm}}">{{$page->name}}</a>
|
||||
@endforeach
|
||||
@else
|
||||
<p class="text-muted">No pages matched this search</p>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
@stop
|
Loading…
Reference in New Issue
Block a user