Internal optimisations and additional flags for Photo/Video

This commit is contained in:
Deon George
2020-01-05 00:28:00 +11:00
parent 93364ab53a
commit 1ffc2d994e
19 changed files with 402 additions and 279 deletions

View File

@@ -2,13 +2,13 @@
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Photo;
use App\Jobs\PhotoDelete;
use App\Traits\Multimedia;
class PhotoController extends Controller
{
use Multimedia;
protected $list_duplicates = 20;
protected $list_deletes = 50;
@@ -22,77 +22,41 @@ class PhotoController extends Controller
$this->middleware('guest');
}
public function delete($id)
public function delete(Photo $o)
{
$o = Photo::notRemove()->findOrFail($id);
$o->remove = TRUE;
$o->save();
if ($o)
{
$o->remove = TRUE;
$o->save();
}
return redirect()->action('PhotoController@info',[$id]);
return redirect()->action('PhotoController@info',[$o->id]);
}
public function deletes($id=NULL)
{
return view('catalog.deletereview',[
'catalog'=>is_null($id) ? Photo::where('remove',1)->with(['software.model.make'])->paginate($this->list_deletes) : Photo::where('id',$id)->paginate(1),
'return'=>url('p/deletes'),
'catalog'=>is_null($id) ? Photo::where('remove',1)->with(['software.model.make'])->paginate($this->list_deletes) : Photo::where('id',$id)->paginate(1)
'type'=>'photo',
]);
}
public function deletesUpdate(Request $request)
{
foreach ($request->input('remove') as $id=>$k)
{
$o = Photo::findOrFail($id);
if ($o->remove AND $request->input('remove.'.$id))
$this->dispatch((new PhotoDelete($o))->onQueue('delete'));
}
return redirect()->action('PhotoController@deletes',$request->input('pagenext') ? '?page='.$request->input('pagenext') : NULL);
}
public function duplicates($id=NULL)
{
return view('catalog.duplicatereview',[
'catalog'=>is_null($id) ? Photo::duplicates()->with(['software.model.make'])->paginate($this->list_duplicates) : Photo::where('id',$id)->paginate(1),
'return'=>url('p/duplicates'),
'catalog'=>is_null($id) ? Photo::notRemove()->where('duplicate',1)->with(['software.model.make'])->paginate($this->list_duplicates) : Photo::where('id',$id)->paginate(1)
'type'=>'photo',
]);
}
public function duplicatesUpdate(Request $request)
{
foreach ($request->input('items') as $id)
{
$o = Photo::findOrFail($id);
// Set if duplicate
$o->duplicate = $request->input('duplicate.'.$id) ? 1 : NULL;
// Set if flag
$o->flag = $request->input('flag.'.$id) ? 1 : NULL;
// Set if delete
$o->remove = $request->input('remove.'.$id) ? 1 : NULL;
$o->save();
}
return redirect()->action('PhotoController@duplicates','?page='.$request->input('page'));
}
public function info(Photo $o)
{
return view('photo.view',['o'=>$o]);
}
public function thumbnail($id)
public function thumbnail(Photo $o)
{
return response(Photo::findOrFail($id)->thumbnail(TRUE))->header('Content-Type','image/jpeg');
return response($o->thumbnail(TRUE))
->header('Content-Type','image/jpeg');
}
public function undelete(Photo $o)
@@ -103,8 +67,9 @@ class PhotoController extends Controller
return redirect()->action('PhotoController@info',[$o->id]);
}
public function view($id)
public function view(Photo $o)
{
return response(Photo::findOrFail($id)->image())->header('Content-Type','image/jpeg');
return response($o->image())
->header('Content-Type','image/jpeg');
}
}