mirror of
https://git.meshkee.com/cssd/cssd-back.git
synced 2026-10-12 13:41:07 +03:30
add dropzone to test result form
This commit is contained in:
@@ -12,6 +12,7 @@ use App\MedicalCenter;
|
||||
use App\TestType;
|
||||
use App\Gallery;
|
||||
use App\Uploadable;
|
||||
use App\Media;
|
||||
use Intervention\Image\ImageManagerStatic as Image;
|
||||
use Intervention\Image\ImageManager;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
@@ -113,14 +114,12 @@ class TestResultController extends Controller
|
||||
|
||||
public function store(StoreTestResultRequest $request)
|
||||
{
|
||||
// dd($request->result);
|
||||
try {
|
||||
$return_value = \DB::transaction(function () use ($request) {
|
||||
|
||||
$TestResult = [
|
||||
'user_id' => auth('api')->user()->id,
|
||||
'cycle_number' => $request->cycle_number,
|
||||
// 'device_id' => $request->device_id,
|
||||
'date' => $request->date,
|
||||
'test_type_id' => $request->test_type_id,
|
||||
'result' => $request->result,
|
||||
@@ -174,25 +173,18 @@ class TestResultController extends Controller
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////Inputs
|
||||
///////////////////////////////////////////////////////////////////////////Images
|
||||
if ($request->imgs != null) {
|
||||
|
||||
foreach ($request->imgs as $key => $img) {
|
||||
$Image = $img;
|
||||
$Manager = new ImageManager(array('driver' => 'imagick'));
|
||||
$InterventionImage = $Manager->make($Image);
|
||||
|
||||
// $InterventionImage = Image::make($Image);
|
||||
$Mime = explode('/', $InterventionImage->mime());
|
||||
|
||||
$ImageName = time().$key.'.'.$Mime[1];
|
||||
$Path = 'uploads'.'/TestResults'.'/'.$TestResultObj->id .'/'.$ImageName;
|
||||
|
||||
Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResultObj->id);
|
||||
$InterventionImage->save(public_path($Path));
|
||||
|
||||
$GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]);
|
||||
$Uploadable = Uploadable::create(['uploadable_id' => $TestResultObj->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']);
|
||||
}
|
||||
$Images = Media::whereNull('model_id')->where('batch_id', $request->file_batch_id)->get();
|
||||
if($Images){
|
||||
foreach ($Images as $Image) {
|
||||
$NewPath = 'media'.'/TestResults'.'/'.$TestResultObj->id .'/'.$Image->file_name;
|
||||
Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResultObj->id);
|
||||
if (\File::exists(public_path($Image->path))) {
|
||||
\File::move(public_path($Image->path), public_path($NewPath));
|
||||
}
|
||||
$Image->model_id = $TestResultObj->id;
|
||||
$Image->path = $NewPath;
|
||||
$Image->save();
|
||||
}
|
||||
}
|
||||
///////////////////////////////////////////////////////////////////////////Images
|
||||
|
||||
@@ -252,13 +244,12 @@ class TestResultController extends Controller
|
||||
}
|
||||
|
||||
$ImagesPath = [];
|
||||
if (count($TestResult->TitleImage)) {
|
||||
foreach ($TestResult->TitleImage as $Key => $TitleImage) {
|
||||
$ImagesPath[] = $TitleImage->path;
|
||||
if (count($TestResult->images)) {
|
||||
foreach ($TestResult->images as $Key => $Image) {
|
||||
$ImagesPath[] = $Image->path;
|
||||
}
|
||||
$TestResult['imagesPath'] = $ImagesPath;
|
||||
}
|
||||
// dd($TestResult->test_type()->device_label);
|
||||
$TestResult['device_label'] = $TestResult->test_type->device_label;
|
||||
return \MessageResponse::data($TestResult);
|
||||
}
|
||||
@@ -282,9 +273,10 @@ class TestResultController extends Controller
|
||||
}
|
||||
|
||||
$ImagesPath = [];
|
||||
if (count($TestResult->TitleImage)) {
|
||||
foreach ($TestResult->TitleImage as $Key => $TitleImage) {
|
||||
$ImagesPath[] = $TitleImage->path;
|
||||
|
||||
if (count($TestResult->images)) {
|
||||
foreach ($TestResult->images as $Key => $Image) {
|
||||
$ImagesPath[] = $Image;
|
||||
}
|
||||
$TestResult['imagesPath'] = $ImagesPath;
|
||||
}
|
||||
@@ -297,8 +289,8 @@ class TestResultController extends Controller
|
||||
|
||||
public static function storage_path($path)
|
||||
{
|
||||
if (starts_with($path, 'uploads/')) {
|
||||
$path = substr($path, 8);
|
||||
if (starts_with($path, 'media/')) {
|
||||
$path = substr($path, 6);
|
||||
}
|
||||
return $path;
|
||||
}
|
||||
@@ -306,9 +298,7 @@ class TestResultController extends Controller
|
||||
public function update(StoreTestResultRequest $request, TestResult $TestResult)
|
||||
{
|
||||
$TestResultData = [
|
||||
// 'autoclave_id' => $request->autoclave_id,
|
||||
'cycle_number' => $request->cycle_number,
|
||||
// 'device_id' => $request->device_id,
|
||||
'date' => $request->date,
|
||||
'test_type_id' => $request->test_type_id,
|
||||
'result' => $request->result,
|
||||
@@ -363,71 +353,6 @@ class TestResultController extends Controller
|
||||
}
|
||||
}
|
||||
/////////////////////////////////////////////////////////////////////Images
|
||||
$images = '';
|
||||
$imageExist = [];
|
||||
$imagesDeleted = [];
|
||||
if (count($TestResult->TitleImage))
|
||||
{
|
||||
$images = $TestResult->TitleImage;
|
||||
foreach ($images as $key => $image) {
|
||||
|
||||
$imageExist[] = '/'.$image->path;
|
||||
if (!in_array('/'.$image->path, $request->imgs)) {
|
||||
$imagesDeleted[] = $image->path;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if ($request->imgs != null) {
|
||||
$request_imgs = array_diff($request->imgs, $imageExist);
|
||||
|
||||
foreach ($request_imgs as $key => $img) {//
|
||||
|
||||
if (strrpos($img, "base64") !== false) {
|
||||
|
||||
$Image = $img;
|
||||
$Manager = new ImageManager(array('driver' => 'imagick'));
|
||||
$InterventionImage = $Manager->make($Image);
|
||||
// $InterventionImage = Image::make($Image);
|
||||
$Mime = explode('/', $InterventionImage->mime());
|
||||
|
||||
$ImageName = time().$key.'.'.$Mime[1];
|
||||
$Path = 'uploads'.'/TestResults'.'/'.$TestResult->id .'/'.$ImageName;
|
||||
|
||||
Storage::disk('public')->makeDirectory('TestResults'.'/'.$TestResult->id);
|
||||
$InterventionImage->save(public_path($Path));
|
||||
|
||||
//--------------------------------------------------------
|
||||
$GalleryObj = Gallery::create(['user_id' => auth('api')->user()->id, 'path' => $Path]);
|
||||
$Uploadable = Uploadable::create(['uploadable_id' => $TestResult->id, 'uploadable_type' => 'App\TestResult', 'gallery_id' => $GalleryObj->id, 'image_role' => 'TitleImage']);
|
||||
//--------------------------------------------------------
|
||||
}
|
||||
}
|
||||
|
||||
// if (count($imagesDeleted)) {
|
||||
// foreach ($imagesDeleted as $key => $imageDeleted) {
|
||||
// $Gallery = Gallery::where('path', $imageDeleted)->first();
|
||||
// if ($Gallery) {
|
||||
// Storage::disk('public')->delete(static::storage_path($imageDeleted));
|
||||
// Uploadable::where('gallery_id', $Gallery->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete();
|
||||
// $Gallery->delete();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
if (count($imagesDeleted)) {
|
||||
foreach ($imagesDeleted as $key => $imageDeleted) {
|
||||
$Gallery = Gallery::where('path', $imageDeleted)->first();
|
||||
if ($Gallery) {
|
||||
Storage::disk('public')->delete(static::storage_path($imageDeleted));
|
||||
Uploadable::where('gallery_id', $Gallery->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete();
|
||||
$Gallery->delete();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return \MessageResponse::success(null,trans('messages.update'));
|
||||
}
|
||||
|
||||
@@ -439,11 +364,10 @@ class TestResultController extends Controller
|
||||
if (count($TestResult->input_values)) {
|
||||
InputValue::where('test_result_id', $TestResult->id)->get()->each->delete();
|
||||
}
|
||||
if (count($TestResult->TitleImage)){
|
||||
foreach ($TestResult->TitleImage as $image) {
|
||||
if (count($TestResult->images)){
|
||||
foreach ($TestResult->images as $image) {
|
||||
Storage::disk('public')->delete(static::storage_path($image->path));
|
||||
Uploadable::where('gallery_id', $image->id)->where('uploadable_id', $TestResult->id)->where('uploadable_type', get_class($TestResult))->delete();
|
||||
Gallery::where('id', $image->id)->delete();
|
||||
Media::where('id', $image->id)->delete();
|
||||
}
|
||||
}
|
||||
$TestResult->delete();
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use Intervention\Image\ImageManager;
|
||||
use Illuminate\Support\Facades\Storage;
|
||||
use App\Media;
|
||||
|
||||
class UploadController extends Controller
|
||||
{
|
||||
public function uploadImage(Request $request)
|
||||
{
|
||||
$rules = [
|
||||
'image' => 'required|image|mimes:jpeg,png,jpg|max:2048',
|
||||
];
|
||||
$this->validate($request, $rules);
|
||||
|
||||
if ($request->model_id !== null && is_numeric($request->model_id)) {
|
||||
$Model = 'App\\'.$request->model_type;
|
||||
$Object = $Model::findOrFail($request->model_id);
|
||||
if ($Object) {
|
||||
$Image = $request->file('image');
|
||||
$Manager = new ImageManager(array('driver' => 'imagick'));
|
||||
$InterventionImage = $Manager->make($Image);
|
||||
$Mime = explode('/', $InterventionImage->mime());
|
||||
|
||||
$ImageName = time().'.'.$Mime[1];
|
||||
$Path = 'media'.'/TestResults'.'/'.$Object->id .'/'.$ImageName;
|
||||
|
||||
Storage::disk('public')->makeDirectory('TestResults'.'/'.$Object->id);
|
||||
$InterventionImage->save(public_path($Path));
|
||||
|
||||
$MediaData = [
|
||||
'model_id' => $Object->id,
|
||||
'batch_id' => $request->batch_id,
|
||||
'model_type' => 'App\\'.$request->model_type,
|
||||
'path' => $Path,
|
||||
'user_id' => auth('api')->user()->id,
|
||||
'file_name' => $ImageName
|
||||
];
|
||||
$Media = Media::create($MediaData);
|
||||
}
|
||||
}
|
||||
else {
|
||||
$Image = $request->file('image');
|
||||
$Manager = new ImageManager(array('driver' => 'imagick'));
|
||||
$InterventionImage = $Manager->make($Image);
|
||||
$Mime = explode('/', $InterventionImage->mime());
|
||||
|
||||
$ImageName = time().'.'.$Mime[1];
|
||||
$Path = 'media'.'/Temp'.'/'.$request->batch_id .'/'.$ImageName;
|
||||
|
||||
Storage::disk('public')->makeDirectory('Temp'.'/'.$request->batch_id);
|
||||
$InterventionImage->save(public_path($Path));
|
||||
|
||||
$MediaData = [
|
||||
'model_id' => null,
|
||||
'batch_id' => $request->batch_id,
|
||||
'model_type' => 'App\\'.$request->model_type,
|
||||
'path' => $Path,
|
||||
'user_id' => auth('api')->user()->id,
|
||||
'file_name' => $ImageName
|
||||
];
|
||||
$Media = Media::create($MediaData);
|
||||
}
|
||||
return \MessageResponse::success(trans('messages.success_message'), null, $Media);
|
||||
}
|
||||
|
||||
public function deleteImage(Request $request)
|
||||
{
|
||||
if ($request->model_id != null && is_numeric($request->model_id)) {
|
||||
$Media = Media::findOrFail($request->media_id);
|
||||
if($Media){
|
||||
if (\File::exists(public_path($Media->path))) {
|
||||
\File::delete(public_path($Media->path));
|
||||
}
|
||||
$Media->delete();
|
||||
}
|
||||
}
|
||||
else {
|
||||
$Media = Media::findOrFail($request->media_id);
|
||||
if($Media){
|
||||
if(\File::exists(public_path($Media->path))){
|
||||
\File::delete(public_path($Media->path));
|
||||
}
|
||||
$Media->delete();
|
||||
}
|
||||
}
|
||||
return \MessageResponse::success(trans('messages.success_message'));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user