- new SearchController

- new subtitle in hero section
- MimetypeTableSeeder with geo-Package
This commit is contained in:
Arno Kaimbacher 2019-09-20 19:00:57 +02:00
parent 54d6c5d434
commit 7bf0337faf
11 changed files with 277 additions and 11 deletions

View File

@ -101,6 +101,12 @@ class SearchController extends Controller
public function index(): View
{
$totalNumOfDocs = Dataset::count();
// get a select query instance
$query = $this->client->createQuery($this->client::QUERY_SELECT);
// this executes the query and returns the result
$resultset = $this->client->execute($query);
// // display the total number of documents found by solr
$totalNumOfDocs = $resultset->getNumFound();
return view('frontend.solrsearch.index', compact('totalNumOfDocs'));
}

View File

@ -0,0 +1,89 @@
<?php
namespace App\Http\Controllers\Frontend;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Illuminate\View\View;
use Illuminate\Support\Facades\Input;
class SolariumController extends Controller
{
protected $client;
public function __construct(\Solarium\Client $client)
{
$this->client = $client;
}
/**
* Displays simple search form.
*/
public function index(Request $request): View
{
if (Input::has('q')) {
// Create a search query
$query = $this->client->createSelect();
// Set the query string
if (Input::get('q') != "") {
$query->setQuery('%P1%', array(Input::get('q')));
} else {
$query = $this->client->createQuery($this->client::QUERY_SELECT);
}
// Execute the query and return the result
$resultset = $this->client->select($query);
// Pass the resultset to the view and return.
return view('frontend.search.index', array(
'q' => Input::get('q'),
'resultset' => $resultset,
));
}
return view('frontend.search.index');
}
public function ping()
{
// create a ping query
$ping = $this->client->createPing();
// execute the ping query
try {
$this->client->ping($ping);
return response()->json('OK');
} catch (\Solarium\Exception $e) {
return response()->json('ERROR', 500);
}
}
public function search()
{
$filter = "test"; //$request->input('query');
// get a select query instance
$query = $this->client->createSelect();
// $query = $this->client->createSelect();
$query->setQuery('title:'. $filter);
// set a query (all prices starting from 12)
// $query->setQuery('price:[12 TO *]');
// set start and rows param (comparable to SQL limit) using fluent interface
//$query->setStart(2)->setRows(20);
// this executes the query and returns the result
$resultset = $this->client->select($query);
// display the total number of documents found by solr
$response = 'NumFound: ' . $resultset->getNumFound();
// show documents using the resultset iterator
foreach ($resultset as $document) {
$response = $response . '<hr/><table>';
$response = $response . '<tr><th>id</th><td>' . $document->id . '</td></tr>';
$response = $response . '<tr><th>title</th><td>' . $document->title_output . '</td></tr>';
$response = $response . '<tr><th>abstract</th><td>' . $document->abstract_output . '</td></tr>';
$response = $response . '</table>';
}
echo $response;
}
}

View File

@ -22,10 +22,10 @@ class SolariumServiceProvider extends ServiceProvider
$config = array(
'endpoint' => array(
'localhost' => array(
'host' => '127.0.0.1',
'host' => 'repository.geologie.ac.at',
'port' => '8983',
'path' => '/solr/',
'core' => 'opus4'
'core' => 'rdr_data'
)
)
);

View File

@ -2,7 +2,7 @@
return [
'endpoint' => [
'repository.geologie.ac.at' => [
'repository' => [
'host' => env('SOLR_HOST', 'repository.geologie.ac.at'),
'port' => env('SOLR_PORT', '8983'),
'path' => env('SOLR_PATH', '/solr/'),

View File

@ -11,6 +11,13 @@ class MimetypeTableSeeder extends Seeder
{
DB::table('mime_types')->insert([
[
'name' => 'application/geopackage+sqlite3',
'file_extension' => 'gpkg',
'enabled' =>true,
'created_at' => Carbon::now(),
'updated_at' => Carbon::now(),
],
[
'name' => 'image/jpeg',
'file_extension' => 'jpg|jpeg|jpe',

46
public/css/style.css vendored
View File

@ -407,9 +407,48 @@ section.normal {
margin: 0;
}
.search-items {
list-style: none;
width: 100%;
display: inline-block;
}
.search-items li {
position: relative;
overflow: hidden;
/* important because we need to overwrite the default skeleton */
margin: 0!important;
/* width: 33%; */
/* border: 10px solid white; */
position: relative;
padding-left: 15px;
padding-right: 15px;
}
.search-items li:nth-child(4n) {
margin-left: 0;
}
/* Work */
.work {
background-color: #F5F5F5;
/* background-color: #F5F5F5; */
}
/* Work Filters */
@ -503,6 +542,11 @@ section.normal {
padding-left: 20px;
padding-right: 20px;
}
.work-front .icon {
line-height: 1;
font-size: 40px;
color: #00bfffcc;
}
.work-items li:hover .work-detail{
opacity: 1;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 640 KiB

View File

@ -8,7 +8,7 @@
<div class="twelve columns">
<h1 class="separator">Research Data Repository</h1>
<h2>
Data Publisher for Geo and Atmospheric Science Austria
Data Publisher for Geo- and Atmospheric Science Austria
</h2>
</div>
</div>
@ -53,6 +53,7 @@
<!-- <img src="images/portfolio/work_1.svg"> -->
<div class="work-front">
<div class="vertical-centered">
<i class="fa fa-hdd icon" aria-hidden="true"></i>
<h3>Data Archival</h3>
</div>
</div>
@ -69,6 +70,7 @@
<!-- <img src="images/portfolio/work_2.svg"> -->
<div class="work-front">
<div class="vertical-centered">
<i class="fas fa-share-alt icon"></i>
<h3>Data Publication</h3>
</div>
</div>
@ -86,6 +88,7 @@
<!-- <img src="images/portfolio/work_3.svg"> -->
<div class="work-front">
<div class="vertical-centered">
<i class="fas fa-user-edit icon"></i>
<h3>Peer Review</h3>
</div>
</div>

View File

@ -19,6 +19,7 @@
<!-- <img src="images/portfolio/work_1.svg"> -->
<div class="work-front">
<div class="vertical-centered">
<i class="fa fa-hdd icon" aria-hidden="true"></i>
<h3>Data Archival</h3>
</div>
</div>
@ -35,6 +36,7 @@
<!-- <img src="images/portfolio/work_2.svg"> -->
<div class="work-front">
<div class="vertical-centered">
<i class="fas fa-share-alt icon"></i>
<h3>Data Publication</h3>
</div>
</div>
@ -52,6 +54,7 @@
<!-- <img src="images/portfolio/work_3.svg"> -->
<div class="work-front">
<div class="vertical-centered">
<i class="fas fa-user-edit icon"></i>
<h3>Peer Review</h3>
</div>
</div>

View File

@ -0,0 +1,109 @@
@extends('layouts.app')
@section('title', Lang::get('resources.solrsearch_title_simple'))
@section('content')
<section data-sr id="search" class="search normal u-full-width">
<div class="container">
<div class="row">
<div class="twelve columns">
<h3 class="separator">SEARCH</h3>
</div>
</div>
<div class="row">
<div class="twelve columns">
<div class="content">
<div class="sidebar-simplesearch">
{{ Form::open(array('method' => 'GET')) }}
{!! Form::text('q', Input::get('q'), array('class'=>'u-full-width',
'placeholder'=>'Enter your search term')) !!}
<span class="input-group-btn">
{{-- {{ Form::submit('Search', array('class' => 'btn btn-primary btn-lg')) }} --}}
<button type="submit">
<i class="fa fa-search"></i>
</button>
</span>
{{ Form::close() }}
</div>
</div>
</div>
</div>
@if (isset($resultset))
<header>
<p>Your search yielded <strong>{{ $resultset->getNumFound() }}</strong> results:</p>
<hr />
</header>
<div class="row">
<ul class="search-items isotope js-isotope u-cf">
@foreach ($resultset as $document)
<li>
<div class="post">
<header class="post-header">
<h3 class="post-title">
<a href="{{ URL::route('frontend.dataset.show',['id' =>$document->id]) }}">
{{ $document->title_output }}
</a>
</h3>
</header>
<div class="blog-meta">
{{ date('D, m M, Y', $document->server_date_modified) }}
</div>
<div class="post-description">
@if (is_array($document->author))
<em>Author: {{ implode(', ', $document->author) }}</em>
@endif
<p>
<em>Abstract: {{ $document->abstract_output }}</em>
</p>
</div>
</div>
</li>
@endforeach
</ul>
</div>
@endif
</div>
</section>
@endsection
<style>
.sidebar-simplesearch {
position: relative;
margin-bottom: 2.5em;
white-space: nowrap;
}
.sidebar-simplesearch input[type=text] {
padding: 0.25em 0.3em;
color: #666;
}
.sidebar-simplesearch button {
padding: 0.25em 0.3em;
border: none;
background: none;
position: absolute;
right: 0.25em;
color: #666;
}
</style>

View File

@ -469,16 +469,21 @@ Route::group(['namespace' => 'Frontend', 'as' => 'frontend.'], function () {
Route::get('pages/{slug}', 'HomeController@showPage')->name('pages.show');
//=================================================solr search====================================================
Route::get('/index', [
'as' => 'search.index', 'uses' => 'SearchController@index',
]);
// Route::get('/index', [
// 'as' => 'search.index', 'uses' => 'SearchController@index',
// ]);
Route::post('/queries', [
'as' => 'queries', 'uses' => 'SearchController@search',
]);
Route::get('/queries/', [
'as' => 'queries1', 'uses' => 'SearchController@search',
]);
Route::get('/ping', 'SearchController@ping');
// Route::get('/ping', 'SearchController@ping');
Route::get('/ping', 'SolariumController@ping');
// Route::get('/search', 'SolariumController@search');
Route::get('/search', [
'as' => 'search.index', 'uses' => 'SolariumController@index',
]);
});
//=================================================borrow====================================================