Showing
14 changed files
with
105 additions
and
80 deletions
| ... | @@ -34,14 +34,20 @@ class SearchController extends Controller | ... | @@ -34,14 +34,20 @@ class SearchController extends Controller |
| 34 | public function search(Request $request) | 34 | public function search(Request $request) |
| 35 | { | 35 | { |
| 36 | $searchTerm = $request->get('term'); | 36 | $searchTerm = $request->get('term'); |
| 37 | -// $paginationAppends = $request->only('term'); TODO - Check pagination | ||
| 38 | $this->setPageTitle(trans('entities.search_for_term', ['term' => $searchTerm])); | 37 | $this->setPageTitle(trans('entities.search_for_term', ['term' => $searchTerm])); |
| 39 | 38 | ||
| 40 | - $entities = $this->searchService->searchEntities($searchTerm); | 39 | + $page = $request->has('page') && is_int(intval($request->get('page'))) ? intval($request->get('page')) : 1; |
| 40 | + $nextPageLink = baseUrl('/search?term=' . urlencode($searchTerm) . '&page=' . ($page+1)); | ||
| 41 | + | ||
| 42 | + $results = $this->searchService->searchEntities($searchTerm, 'all', $page, 20); | ||
| 43 | + $hasNextPage = $this->searchService->searchEntities($searchTerm, 'all', $page+1, 20)['count'] > 0; | ||
| 41 | 44 | ||
| 42 | return view('search/all', [ | 45 | return view('search/all', [ |
| 43 | - 'entities' => $entities, | 46 | + 'entities' => $results['results'], |
| 44 | - 'searchTerm' => $searchTerm | 47 | + 'totalResults' => $results['total'], |
| 48 | + 'searchTerm' => $searchTerm, | ||
| 49 | + 'hasNextPage' => $hasNextPage, | ||
| 50 | + 'nextPageLink' => $nextPageLink | ||
| 45 | ]); | 51 | ]); |
| 46 | } | 52 | } |
| 47 | 53 | ... | ... |
| ... | @@ -8,7 +8,6 @@ use BookStack\SearchTerm; | ... | @@ -8,7 +8,6 @@ use BookStack\SearchTerm; |
| 8 | use Illuminate\Database\Connection; | 8 | use Illuminate\Database\Connection; |
| 9 | use Illuminate\Database\Query\Builder; | 9 | use Illuminate\Database\Query\Builder; |
| 10 | use Illuminate\Database\Query\JoinClause; | 10 | use Illuminate\Database\Query\JoinClause; |
| 11 | -use Illuminate\Support\Collection; | ||
| 12 | 11 | ||
| 13 | class SearchService | 12 | class SearchService |
| 14 | { | 13 | { |
| ... | @@ -56,9 +55,9 @@ class SearchService | ... | @@ -56,9 +55,9 @@ class SearchService |
| 56 | * @param string $entityType | 55 | * @param string $entityType |
| 57 | * @param int $page | 56 | * @param int $page |
| 58 | * @param int $count | 57 | * @param int $count |
| 59 | - * @return Collection | 58 | + * @return array[int, Collection]; |
| 60 | */ | 59 | */ |
| 61 | - public function searchEntities($searchString, $entityType = 'all', $page = 0, $count = 20) | 60 | + public function searchEntities($searchString, $entityType = 'all', $page = 1, $count = 20) |
| 62 | { | 61 | { |
| 63 | $terms = $this->parseSearchString($searchString); | 62 | $terms = $this->parseSearchString($searchString); |
| 64 | $entityTypes = array_keys($this->entities); | 63 | $entityTypes = array_keys($this->entities); |
| ... | @@ -71,14 +70,20 @@ class SearchService | ... | @@ -71,14 +70,20 @@ class SearchService |
| 71 | $entityTypesToSearch = explode('|', $terms['filters']['type']); | 70 | $entityTypesToSearch = explode('|', $terms['filters']['type']); |
| 72 | } | 71 | } |
| 73 | 72 | ||
| 74 | - // TODO - Check drafts don't show up in results | 73 | + $total = 0; |
| 74 | + | ||
| 75 | foreach ($entityTypesToSearch as $entityType) { | 75 | foreach ($entityTypesToSearch as $entityType) { |
| 76 | if (!in_array($entityType, $entityTypes)) continue; | 76 | if (!in_array($entityType, $entityTypes)) continue; |
| 77 | $search = $this->searchEntityTable($terms, $entityType, $page, $count); | 77 | $search = $this->searchEntityTable($terms, $entityType, $page, $count); |
| 78 | + $total += $this->searchEntityTable($terms, $entityType, $page, $count, true); | ||
| 78 | $results = $results->merge($search); | 79 | $results = $results->merge($search); |
| 79 | } | 80 | } |
| 80 | 81 | ||
| 81 | - return $results->sortByDesc('score'); | 82 | + return [ |
| 83 | + 'total' => $total, | ||
| 84 | + 'count' => count($results), | ||
| 85 | + 'results' => $results->sortByDesc('score') | ||
| 86 | + ]; | ||
| 82 | } | 87 | } |
| 83 | 88 | ||
| 84 | /** | 89 | /** |
| ... | @@ -87,9 +92,10 @@ class SearchService | ... | @@ -87,9 +92,10 @@ class SearchService |
| 87 | * @param string $entityType | 92 | * @param string $entityType |
| 88 | * @param int $page | 93 | * @param int $page |
| 89 | * @param int $count | 94 | * @param int $count |
| 90 | - * @return \Illuminate\Database\Eloquent\Collection|static[] | 95 | + * @param bool $getCount Return the total count of the search |
| 96 | + * @return \Illuminate\Database\Eloquent\Collection|int|static[] | ||
| 91 | */ | 97 | */ |
| 92 | - public function searchEntityTable($terms, $entityType = 'page', $page = 0, $count = 20) | 98 | + public function searchEntityTable($terms, $entityType = 'page', $page = 1, $count = 20, $getCount = false) |
| 93 | { | 99 | { |
| 94 | $entity = $this->getEntity($entityType); | 100 | $entity = $this->getEntity($entityType); |
| 95 | $entitySelect = $entity->newQuery(); | 101 | $entitySelect = $entity->newQuery(); |
| ... | @@ -131,8 +137,10 @@ class SearchService | ... | @@ -131,8 +137,10 @@ class SearchService |
| 131 | if (method_exists($this, $functionName)) $this->$functionName($entitySelect, $entity, $filterValue); | 137 | if (method_exists($this, $functionName)) $this->$functionName($entitySelect, $entity, $filterValue); |
| 132 | } | 138 | } |
| 133 | 139 | ||
| 134 | - $entitySelect->skip($page * $count)->take($count); | ||
| 135 | $query = $this->permissionService->enforceEntityRestrictions($entityType, $entitySelect, 'view'); | 140 | $query = $this->permissionService->enforceEntityRestrictions($entityType, $entitySelect, 'view'); |
| 141 | + if ($getCount) return $query->count(); | ||
| 142 | + | ||
| 143 | + $query = $query->skip(($page-1) * $count)->take($count); | ||
| 136 | return $query->get(); | 144 | return $query->get(); |
| 137 | } | 145 | } |
| 138 | 146 | ||
| ... | @@ -371,13 +379,15 @@ class SearchService | ... | @@ -371,13 +379,15 @@ class SearchService |
| 371 | 379 | ||
| 372 | protected function filterCreatedBy(\Illuminate\Database\Eloquent\Builder $query, Entity $model, $input) | 380 | protected function filterCreatedBy(\Illuminate\Database\Eloquent\Builder $query, Entity $model, $input) |
| 373 | { | 381 | { |
| 374 | - if (!is_numeric($input)) return; | 382 | + if (!is_numeric($input) && $input !== 'me') return; |
| 383 | + if ($input === 'me') $input = user()->id; | ||
| 375 | $query->where('created_by', '=', $input); | 384 | $query->where('created_by', '=', $input); |
| 376 | } | 385 | } |
| 377 | 386 | ||
| 378 | protected function filterUpdatedBy(\Illuminate\Database\Eloquent\Builder $query, Entity $model, $input) | 387 | protected function filterUpdatedBy(\Illuminate\Database\Eloquent\Builder $query, Entity $model, $input) |
| 379 | { | 388 | { |
| 380 | - if (!is_numeric($input)) return; | 389 | + if (!is_numeric($input) && $input !== 'me') return; |
| 390 | + if ($input === 'me') $input = user()->id; | ||
| 381 | $query->where('updated_by', '=', $input); | 391 | $query->where('updated_by', '=', $input); |
| 382 | } | 392 | } |
| 383 | 393 | ... | ... |
| ... | @@ -12,7 +12,12 @@ let data = { | ... | @@ -12,7 +12,12 @@ let data = { |
| 12 | exactTerms: [], | 12 | exactTerms: [], |
| 13 | tagTerms: [], | 13 | tagTerms: [], |
| 14 | option: {}, | 14 | option: {}, |
| 15 | - dates: {} | 15 | + dates: { |
| 16 | + updated_after: false, | ||
| 17 | + updated_before: false, | ||
| 18 | + created_after: false, | ||
| 19 | + created_before: false, | ||
| 20 | + } | ||
| 16 | } | 21 | } |
| 17 | }; | 22 | }; |
| 18 | 23 | ||
| ... | @@ -126,7 +131,7 @@ let methods = { | ... | @@ -126,7 +131,7 @@ let methods = { |
| 126 | }, | 131 | }, |
| 127 | 132 | ||
| 128 | optionParse(searchString) { | 133 | optionParse(searchString) { |
| 129 | - let optionFilter = /{([a-z_-]+?)}/gi; | 134 | + let optionFilter = /{([a-z_\-:]+?)}/gi; |
| 130 | let matches; | 135 | let matches; |
| 131 | while ((matches = optionFilter.exec(searchString)) !== null) { | 136 | while ((matches = optionFilter.exec(searchString)) !== null) { |
| 132 | this.search.option[matches[1].toLowerCase()] = true; | 137 | this.search.option[matches[1].toLowerCase()] = true; |
| ... | @@ -148,7 +153,30 @@ let methods = { | ... | @@ -148,7 +153,30 @@ let methods = { |
| 148 | }, | 153 | }, |
| 149 | 154 | ||
| 150 | enableDate(optionName) { | 155 | enableDate(optionName) { |
| 151 | - this.search.dates[optionName] = moment().format('YYYY-MM-DD'); | 156 | + this.search.dates[optionName.toLowerCase()] = moment().format('YYYY-MM-DD'); |
| 157 | + this.dateChange(optionName); | ||
| 158 | + }, | ||
| 159 | + | ||
| 160 | + dateParse(searchString) { | ||
| 161 | + let dateFilter = /{([a-z_\-]+?):([a-z_\-0-9]+?)}/gi; | ||
| 162 | + let dateTags = Object.keys(this.search.dates); | ||
| 163 | + let matches; | ||
| 164 | + while ((matches = dateFilter.exec(searchString)) !== null) { | ||
| 165 | + if (dateTags.indexOf(matches[1]) === -1) continue; | ||
| 166 | + this.search.dates[matches[1].toLowerCase()] = matches[2]; | ||
| 167 | + } | ||
| 168 | + }, | ||
| 169 | + | ||
| 170 | + dateChange(optionName) { | ||
| 171 | + let dateFilter = new RegExp('{\\s?'+optionName+'\\s?:([a-z_\\-0-9]+?)}', 'gi'); | ||
| 172 | + this.termString = this.termString.replace(dateFilter, ''); | ||
| 173 | + if (!this.search.dates[optionName]) return; | ||
| 174 | + this.appendTerm(`{${optionName}:${this.search.dates[optionName]}}`); | ||
| 175 | + }, | ||
| 176 | + | ||
| 177 | + dateRemove(optionName) { | ||
| 178 | + this.search.dates[optionName] = false; | ||
| 179 | + this.dateChange(optionName); | ||
| 152 | } | 180 | } |
| 153 | 181 | ||
| 154 | }; | 182 | }; |
| ... | @@ -159,6 +187,7 @@ function created() { | ... | @@ -159,6 +187,7 @@ function created() { |
| 159 | this.exactParse(this.termString); | 187 | this.exactParse(this.termString); |
| 160 | this.tagParse(this.termString); | 188 | this.tagParse(this.termString); |
| 161 | this.optionParse(this.termString); | 189 | this.optionParse(this.termString); |
| 190 | + this.dateParse(this.termString); | ||
| 162 | } | 191 | } |
| 163 | 192 | ||
| 164 | module.exports = { | 193 | module.exports = { | ... | ... |
| ... | @@ -2,7 +2,7 @@ | ... | @@ -2,7 +2,7 @@ |
| 2 | .anim.fadeIn { | 2 | .anim.fadeIn { |
| 3 | opacity: 0; | 3 | opacity: 0; |
| 4 | animation-name: fadeIn; | 4 | animation-name: fadeIn; |
| 5 | - animation-duration: 160ms; | 5 | + animation-duration: 180ms; |
| 6 | animation-timing-function: ease-in-out; | 6 | animation-timing-function: ease-in-out; |
| 7 | animation-fill-mode: forwards; | 7 | animation-fill-mode: forwards; |
| 8 | } | 8 | } | ... | ... |
| ... | @@ -98,19 +98,36 @@ label { | ... | @@ -98,19 +98,36 @@ label { |
| 98 | 98 | ||
| 99 | label.radio, label.checkbox { | 99 | label.radio, label.checkbox { |
| 100 | font-weight: 400; | 100 | font-weight: 400; |
| 101 | + user-select: none; | ||
| 101 | input[type="radio"], input[type="checkbox"] { | 102 | input[type="radio"], input[type="checkbox"] { |
| 102 | margin-right: $-xs; | 103 | margin-right: $-xs; |
| 103 | } | 104 | } |
| 104 | } | 105 | } |
| 105 | 106 | ||
| 107 | +label.inline.checkbox { | ||
| 108 | + margin-right: $-m; | ||
| 109 | +} | ||
| 110 | + | ||
| 106 | label + p.small { | 111 | label + p.small { |
| 107 | margin-bottom: 0.8em; | 112 | margin-bottom: 0.8em; |
| 108 | } | 113 | } |
| 109 | 114 | ||
| 110 | -input[type="text"], input[type="number"], input[type="email"], input[type="search"], input[type="url"], input[type="password"], select, textarea { | 115 | +table.form-table { |
| 116 | + max-width: 100%; | ||
| 117 | + td { | ||
| 118 | + overflow: hidden; | ||
| 119 | + padding: $-xxs/2 0; | ||
| 120 | + } | ||
| 121 | +} | ||
| 122 | + | ||
| 123 | +input[type="text"], input[type="number"], input[type="email"], input[type="date"], input[type="search"], input[type="url"], input[type="password"], select, textarea { | ||
| 111 | @extend .input-base; | 124 | @extend .input-base; |
| 112 | } | 125 | } |
| 113 | 126 | ||
| 127 | +input[type=date] { | ||
| 128 | + width: 190px; | ||
| 129 | +} | ||
| 130 | + | ||
| 114 | .toggle-switch { | 131 | .toggle-switch { |
| 115 | display: inline-block; | 132 | display: inline-block; |
| 116 | background-color: #BBB; | 133 | background-color: #BBB; | ... | ... |
| ... | @@ -7,8 +7,8 @@ | ... | @@ -7,8 +7,8 @@ |
| 7 | @import "grid"; | 7 | @import "grid"; |
| 8 | @import "blocks"; | 8 | @import "blocks"; |
| 9 | @import "buttons"; | 9 | @import "buttons"; |
| 10 | -@import "forms"; | ||
| 11 | @import "tables"; | 10 | @import "tables"; |
| 11 | +@import "forms"; | ||
| 12 | @import "animations"; | 12 | @import "animations"; |
| 13 | @import "tinymce"; | 13 | @import "tinymce"; |
| 14 | @import "highlightjs"; | 14 | @import "highlightjs"; |
| ... | @@ -17,7 +17,11 @@ | ... | @@ -17,7 +17,11 @@ |
| 17 | @import "lists"; | 17 | @import "lists"; |
| 18 | @import "pages"; | 18 | @import "pages"; |
| 19 | 19 | ||
| 20 | -[v-cloak], [v-show] {display: none;} | 20 | +[v-cloak], [v-show] { |
| 21 | + display: none; opacity: 0; | ||
| 22 | + animation-name: none !important; | ||
| 23 | +} | ||
| 24 | + | ||
| 21 | 25 | ||
| 22 | [ng\:cloak], [ng-cloak], .ng-cloak { | 26 | [ng\:cloak], [ng-cloak], .ng-cloak { |
| 23 | display: none !important; | 27 | display: none !important; |
| ... | @@ -272,8 +276,3 @@ $btt-size: 40px; | ... | @@ -272,8 +276,3 @@ $btt-size: 40px; |
| 272 | 276 | ||
| 273 | 277 | ||
| 274 | 278 | ||
| 275 | - | ||
| 276 | - | ||
| 277 | - | ||
| 278 | - | ||
| 279 | - | ... | ... |
| ... | @@ -43,18 +43,9 @@ return [ | ... | @@ -43,18 +43,9 @@ return [ |
| 43 | * Search | 43 | * Search |
| 44 | */ | 44 | */ |
| 45 | 'search_results' => 'Suchergebnisse', | 45 | 'search_results' => 'Suchergebnisse', |
| 46 | - 'search_results_page' => 'Seiten-Suchergebnisse', | ||
| 47 | - 'search_results_chapter' => 'Kapitel-Suchergebnisse', | ||
| 48 | - 'search_results_book' => 'Buch-Suchergebnisse', | ||
| 49 | 'search_clear' => 'Suche zurücksetzen', | 46 | 'search_clear' => 'Suche zurücksetzen', |
| 50 | - 'search_view_pages' => 'Zeige alle passenden Seiten', | ||
| 51 | - 'search_view_chapters' => 'Zeige alle passenden Kapitel', | ||
| 52 | - 'search_view_books' => 'Zeige alle passenden Bücher', | ||
| 53 | 'search_no_pages' => 'Es wurden keine passenden Suchergebnisse gefunden', | 47 | 'search_no_pages' => 'Es wurden keine passenden Suchergebnisse gefunden', |
| 54 | 'search_for_term' => 'Suche nach :term', | 48 | 'search_for_term' => 'Suche nach :term', |
| 55 | - 'search_page_for_term' => 'Suche nach :term in Seiten', | ||
| 56 | - 'search_chapter_for_term' => 'Suche nach :term in Kapiteln', | ||
| 57 | - 'search_book_for_term' => 'Suche nach :term in Büchern', | ||
| 58 | 49 | ||
| 59 | /** | 50 | /** |
| 60 | * Books | 51 | * Books | ... | ... |
| ... | @@ -43,18 +43,26 @@ return [ | ... | @@ -43,18 +43,26 @@ return [ |
| 43 | * Search | 43 | * Search |
| 44 | */ | 44 | */ |
| 45 | 'search_results' => 'Search Results', | 45 | 'search_results' => 'Search Results', |
| 46 | - 'search_results_page' => 'Page Search Results', | 46 | + 'search_total_results_found' => ':count result found|:count total results found', |
| 47 | - 'search_results_chapter' => 'Chapter Search Results', | ||
| 48 | - 'search_results_book' => 'Book Search Results', | ||
| 49 | 'search_clear' => 'Clear Search', | 47 | 'search_clear' => 'Clear Search', |
| 50 | - 'search_view_pages' => 'View all matches pages', | ||
| 51 | - 'search_view_chapters' => 'View all matches chapters', | ||
| 52 | - 'search_view_books' => 'View all matches books', | ||
| 53 | 'search_no_pages' => 'No pages matched this search', | 48 | 'search_no_pages' => 'No pages matched this search', |
| 54 | 'search_for_term' => 'Search for :term', | 49 | 'search_for_term' => 'Search for :term', |
| 55 | - 'search_page_for_term' => 'Page search for :term', | 50 | + 'search_more' => 'More Results', |
| 56 | - 'search_chapter_for_term' => 'Chapter search for :term', | 51 | + 'search_filters' => 'Search Filters', |
| 57 | - 'search_book_for_term' => 'Books search for :term', | 52 | + 'search_content_type' => 'Content Type', |
| 53 | + 'search_exact_matches' => 'Exact Matches', | ||
| 54 | + 'search_tags' => 'Tag Searches', | ||
| 55 | + 'search_viewed_by_me' => 'Viewed by me', | ||
| 56 | + 'search_not_viewed_by_me' => 'Not viewed by me', | ||
| 57 | + 'search_permissions_set' => 'Permissions set', | ||
| 58 | + 'search_created_by_me' => 'Created by me', | ||
| 59 | + 'search_updated_by_me' => 'Updated by me', | ||
| 60 | + 'search_updated_before' => 'Updated before', | ||
| 61 | + 'search_updated_after' => 'Updated after', | ||
| 62 | + 'search_created_before' => 'Created before', | ||
| 63 | + 'search_created_after' => 'Created after', | ||
| 64 | + 'search_set_date' => 'Set Date', | ||
| 65 | + 'search_update' => 'Update Search', | ||
| 58 | 66 | ||
| 59 | /** | 67 | /** |
| 60 | * Books | 68 | * Books | ... | ... |
| ... | @@ -43,18 +43,9 @@ return [ | ... | @@ -43,18 +43,9 @@ return [ |
| 43 | * Search | 43 | * Search |
| 44 | */ | 44 | */ |
| 45 | 'search_results' => 'Buscar resultados', | 45 | 'search_results' => 'Buscar resultados', |
| 46 | - 'search_results_page' => 'resultados de búsqueda en página', | ||
| 47 | - 'search_results_chapter' => 'Resultados de búsqueda en capítulo ', | ||
| 48 | - 'search_results_book' => 'Resultados de búsqueda en libro', | ||
| 49 | 'search_clear' => 'Limpiar resultados', | 46 | 'search_clear' => 'Limpiar resultados', |
| 50 | - 'search_view_pages' => 'Ver todas las páginas que concuerdan', | ||
| 51 | - 'search_view_chapters' => 'Ver todos los capítulos que concuerdan', | ||
| 52 | - 'search_view_books' => 'Ver todos los libros que concuerdan', | ||
| 53 | 'search_no_pages' => 'Ninguna página encontrada para la búsqueda', | 47 | 'search_no_pages' => 'Ninguna página encontrada para la búsqueda', |
| 54 | 'search_for_term' => 'Busqueda por :term', | 48 | 'search_for_term' => 'Busqueda por :term', |
| 55 | - 'search_page_for_term' => 'Búsqueda de página por :term', | ||
| 56 | - 'search_chapter_for_term' => 'Búsqueda por capítulo de :term', | ||
| 57 | - 'search_book_for_term' => 'Búsqueda en libro de :term', | ||
| 58 | 49 | ||
| 59 | /** | 50 | /** |
| 60 | * Books | 51 | * Books | ... | ... |
| ... | @@ -43,18 +43,9 @@ return [ | ... | @@ -43,18 +43,9 @@ return [ |
| 43 | * Search | 43 | * Search |
| 44 | */ | 44 | */ |
| 45 | 'search_results' => 'Résultats de recherche', | 45 | 'search_results' => 'Résultats de recherche', |
| 46 | - 'search_results_page' => 'Résultats de recherche des pages', | ||
| 47 | - 'search_results_chapter' => 'Résultats de recherche des chapitres', | ||
| 48 | - 'search_results_book' => 'Résultats de recherche des livres', | ||
| 49 | 'search_clear' => 'Réinitialiser la recherche', | 46 | 'search_clear' => 'Réinitialiser la recherche', |
| 50 | - 'search_view_pages' => 'Voir toutes les pages correspondantes', | ||
| 51 | - 'search_view_chapters' => 'Voir tous les chapitres correspondants', | ||
| 52 | - 'search_view_books' => 'Voir tous les livres correspondants', | ||
| 53 | 'search_no_pages' => 'Aucune page correspondant à cette recherche', | 47 | 'search_no_pages' => 'Aucune page correspondant à cette recherche', |
| 54 | 'search_for_term' => 'recherche pour :term', | 48 | 'search_for_term' => 'recherche pour :term', |
| 55 | - 'search_page_for_term' => 'Recherche de page pour :term', | ||
| 56 | - 'search_chapter_for_term' => 'Recherche de chapitre pour :term', | ||
| 57 | - 'search_book_for_term' => 'Recherche de livres pour :term', | ||
| 58 | 49 | ||
| 59 | /** | 50 | /** |
| 60 | * Books | 51 | * Books | ... | ... |
| ... | @@ -43,18 +43,9 @@ return [ | ... | @@ -43,18 +43,9 @@ return [ |
| 43 | * Search | 43 | * Search |
| 44 | */ | 44 | */ |
| 45 | 'search_results' => 'Zoekresultaten', | 45 | 'search_results' => 'Zoekresultaten', |
| 46 | - 'search_results_page' => 'Pagina Zoekresultaten', | ||
| 47 | - 'search_results_chapter' => 'Hoofdstuk Zoekresultaten', | ||
| 48 | - 'search_results_book' => 'Boek Zoekresultaten', | ||
| 49 | 'search_clear' => 'Zoekopdracht wissen', | 46 | 'search_clear' => 'Zoekopdracht wissen', |
| 50 | - 'search_view_pages' => 'Bekijk alle gevonden pagina\'s', | ||
| 51 | - 'search_view_chapters' => 'Bekijk alle gevonden hoofdstukken', | ||
| 52 | - 'search_view_books' => 'Bekijk alle gevonden boeken', | ||
| 53 | 'search_no_pages' => 'Er zijn geen pagina\'s gevonden', | 47 | 'search_no_pages' => 'Er zijn geen pagina\'s gevonden', |
| 54 | 'search_for_term' => 'Zoeken op :term', | 48 | 'search_for_term' => 'Zoeken op :term', |
| 55 | - 'search_page_for_term' => 'Pagina doorzoeken op :term', | ||
| 56 | - 'search_chapter_for_term' => 'Hoofdstuk doorzoeken op :term', | ||
| 57 | - 'search_book_for_term' => 'Boeken doorzoeken op :term', | ||
| 58 | 49 | ||
| 59 | /** | 50 | /** |
| 60 | * Books | 51 | * Books | ... | ... |
| ... | @@ -43,18 +43,9 @@ return [ | ... | @@ -43,18 +43,9 @@ return [ |
| 43 | * Search | 43 | * Search |
| 44 | */ | 44 | */ |
| 45 | 'search_results' => 'Resultado(s) da Pesquisa', | 45 | 'search_results' => 'Resultado(s) da Pesquisa', |
| 46 | - 'search_results_page' => 'Resultado(s) de Pesquisa de Página', | ||
| 47 | - 'search_results_chapter' => 'Resultado(s) de Pesquisa de Capítulo', | ||
| 48 | - 'search_results_book' => 'Resultado(s) de Pesquisa de Livro', | ||
| 49 | 'search_clear' => 'Limpar Pesquisa', | 46 | 'search_clear' => 'Limpar Pesquisa', |
| 50 | - 'search_view_pages' => 'Visualizar todas as páginas correspondentes', | ||
| 51 | - 'search_view_chapters' => 'Visualizar todos os capítulos correspondentes', | ||
| 52 | - 'search_view_books' => 'Visualizar todos os livros correspondentes', | ||
| 53 | 'search_no_pages' => 'Nenhuma página corresponde à pesquisa', | 47 | 'search_no_pages' => 'Nenhuma página corresponde à pesquisa', |
| 54 | 'search_for_term' => 'Pesquisar por :term', | 48 | 'search_for_term' => 'Pesquisar por :term', |
| 55 | - 'search_page_for_term' => 'Pesquisar Página por :term', | ||
| 56 | - 'search_chapter_for_term' => 'Pesquisar Capítulo por :term', | ||
| 57 | - 'search_book_for_term' => 'Pesquisar Livros por :term', | ||
| 58 | 49 | ||
| 59 | /** | 50 | /** |
| 60 | * Books | 51 | * Books | ... | ... |
This diff is collapsed.
Click to expand it.
-
Please register or sign in to post a comment