MimetypesController

This commit is contained in:
Arno Kaimbacher 2019-02-22 18:07:00 +01:00
parent c86c9fe9f4
commit f3f17d9371
13 changed files with 235 additions and 99 deletions

View file

@ -473,10 +473,10 @@ class IndexController extends Controller
'abstract_main.language' => 'required',
];
if (null != $request->file('files')) {
$files = count($request->file('files')) - 1;
$files = count($request->file('files')) -1;
foreach (range(0, $files) as $index) {
// $rules['files.' . $index] = 'image|max:2048';
$rules['files.' . $index . '.file'] = ['required', 'file', new RdrFiletypes(), new RdrFilesize()];
$rules['files.' . $index . '.file'] = ['required', 'file', new RdrFiletypes(), new RdrFilesize($index)];
}
}
$validator = Validator::make($request->all(), $rules);

View file

@ -1,18 +1,18 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use App\Models\Dataset;
use App\Models\Project;
use App\Models\License;
use App\Models\Title;
use App\Models\Description;
use App\Http\Requests\DocumentRequest;
use Illuminate\View\View;
use Illuminate\Http\RedirectResponse;
use Illuminate\Support\Facades\DB;
use Illuminate\Http\Request;
use App\Exceptions\GeneralException;
use App\Http\Controllers\Controller;
use App\Http\Requests\DocumentRequest;
use App\Models\Dataset;
use App\Models\Description;
use App\Models\License;
use App\Models\Project;
use App\Models\Title;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\View\View;
class DatasetController extends Controller
{
@ -21,38 +21,37 @@ class DatasetController extends Controller
$this->middleware('auth');
}
public function index(Request $request) : View
public function index(Request $request): View
{
$searchType = $request->input('searchtype');
$builder = Dataset::query();
//$registers = array();
$filter = $request->input('filter');
if (null !== ($request->input('state'))) {
$state = $request->input('state');
} else {
$state = "published";
$state = "published";
}
$data = $request->all();
$data = $request->all();
if ($searchType == "simple") {
if (strlen($filter) > 0) {
//$builder->where('field1', '=', $criteria1);
$builder->whereHas('titles', function ($query) use ($filter) {
$closure = function ($query) use ($filter) {
$query->where('value', 'LIKE', '%' . $filter . '%');
});
};
$builder->whereHas('titles', $closure);
// ::with(['titles' => function ($query) use($filter) {
// $query->where('value', 'LIKE', '%' . $filter . '%');
// }])
}
}
$builder->where('server_state', $state);
//$perPage = $request->get('perPage', 20);
$documents = $builder
->paginate(8);
->paginate(8);
return view('settings.document.document', compact('documents', 'state', 'filter'));
}
@ -107,20 +106,20 @@ class DatasetController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id) : View
public function edit($id): View
{
$document = Dataset::findOrFail($id);
$document->load('licenses', 'titles', 'abstracts', 'files');
$projects = Project::pluck('label', 'id');
$datum = date('Y-m-d');
$nowYear = substr($datum, 0, 4);
$years = array();
for ($jahr = 1990; $jahr <= $nowYear; $jahr++) {
$years[$jahr] = $jahr;
}
$languages = DB::table('languages')
->where('active', true)
->pluck('part1', 'part1');
@ -151,7 +150,7 @@ class DatasetController extends Controller
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(DocumentRequest $request, $id) : RedirectResponse
public function update(DocumentRequest $request, $id): RedirectResponse
{
$dataset = Dataset::findOrFail($id);
//$input = $request->all();
@ -191,7 +190,7 @@ class DatasetController extends Controller
}
}
if (! $dataset->isDirty(dataset::UPDATED_AT)) {
if (!$dataset->isDirty(dataset::UPDATED_AT)) {
$time = new \Illuminate\Support\Carbon();
$dataset->setUpdatedAt($time);
}
@ -204,14 +203,13 @@ class DatasetController extends Controller
throw new GeneralException(trans('exceptions.backend.dataset.update_error'));
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id) : RedirectResponse
public function destroy($id): RedirectResponse
{
// $document = Document::findOrFail($id);
// $document->delete();

View file

@ -1,28 +0,0 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Http\Controllers\Controller;
use Illuminate\View\View;
use Illuminate\Support\Facades\Config;
class FiletypeController extends Controller
{
// public function download($id)
// {
// //$report = $this->report->find($id);
// $file = File::findOrFail($id);
// $file_path = public_path('storage/' . $file->path_name);
// return response()->download($file_path, $file->label, ['Content-Type:' . $file->mime_type]);
// }
public function __construct()
{
$this->middleware('auth');
}
public function index(): View
{
$direction = 'asc'; // or desc
$fileextensions = Config::get('enums.filetypes_allowed');
return view('settings.filetype.index', compact('fileextensions'));
}
}

View file

@ -0,0 +1,50 @@
<?php
namespace App\Http\Controllers\Settings;
use App\Exceptions\GeneralException;
use App\Http\Controllers\Controller;
use Illuminate\View\View;
use Illuminate\Support\Facades\Config;
use Illuminate\Http\Request;
class MimetypeController extends Controller
{
// public function download($id)
// {
// //$report = $this->report->find($id);
// $file = File::findOrFail($id);
// $file_path = public_path('storage/' . $file->path_name);
// return response()->download($file_path, $file->label, ['Content-Type:' . $file->mime_type]);
// }
public function __construct()
{
$this->middleware('auth');
}
public function index(): View
{
//$direction = 'asc'; // or desc
$mimetypes = Config::get('enums.mime_types');
//$checkeds = $document->licenses->pluck('id')->toArray();
$checkeds = Config::get('enums.mimetypes_allowed');
return view('settings.filetype.index', [
'options' => $mimetypes,
'checkeds' => $checkeds
]);
}
public function update(Request $request)
{
$mimetypes = $request->input('mimetypes');
Config::set('enums.mimetypes_allowed', $mimetypes);
return redirect()->back()->with('success', 'Mimetypes are updated');
// session()->flash('flash_message', 'allowed mimtypes have been updated!');
// return redirect()->route('settings.document');
// throw new GeneralException(trans('exceptions.backend.dataset.update_error'));
}
}

View file

@ -68,7 +68,7 @@ class WorkflowController extends Controller
session()->flash('flash_message', 'You have puplished 1 dataset!');
}
$dataset->save();
return redirect()->back();
return redirect()->back();
//return redirect()->route('settings.review.index');
} catch (Exception $e) {
//return $this->_redirectTo('index', array('failure' => $e->getMessage()), 'documents', 'admin');

View file

@ -93,7 +93,7 @@ class DatasetObserver
$service = new SolariumAdapter("solr", config('solarium'));
$service->addDatasetsToIndex($dataset);
} catch (Opus_Search_Exception $e) {
Log::debug(__METHOD__ . ': ' . 'Indexing document ' . $documentId . ' failed: ' . $e->getMessage());
Log::debug(__METHOD__ . ': ' . 'Indexing document ' . $datasetId . ' failed: ' . $e->getMessage());
} catch (InvalidArgumentException $e) {
Log::warning(__METHOD__ . ': ' . $e->getMessage());
}

View file

@ -16,7 +16,7 @@ class RdrFiletypes implements Rule
*/
public function __construct()
{
$this->filetypes = Config::get('enums.filetypes_allowed', ['pdf']);
$this->mimetypes = Config::get('enums.mimetypes_allowed', ['application/pdf']);
// $this->maxFileSize = Config::get('enums.max_filesize');
}
@ -30,8 +30,13 @@ class RdrFiletypes implements Rule
public function passes($attribute, $value)
{
//return Rule::in($this->filetypes);
$test = $value->getMimeType();//"application/pdf"
return $value->getPath() != '' &&
in_array($value->guessExtension(), $this->filetypes); // &&
in_array($value->getMimeType(), $this->mimetypes);
// in_array($value->guessExtension(), $this->filetypes); //file extension
// &&
// $this->getSize($attribute, $value) <= $this->maxFileSize;
}