getModelType($request->input('type')); $this->updatePostItems($request,$class,TRUE); return redirect()->action( sprintf('%s@deletes',$this->controller($request->input('type'))), sprintf('?page=%s',$request->input('page')) ); } public function duplicatesUpdate(Request $request) { $class = $this->getModelType($request->input('type')); $this->updatePostItems($request,$class); return redirect()->action( sprintf('%s@duplicates',$this->controller($request->input('type'))), sprintf('?page=%s',$request->input('page')) ); } private function updatePostItems(Request $request,string $class,bool $delete=FALSE) { foreach ($request->input('items') as $id) { $o = $class::findOrFail($id); // Set if duplicate $o->duplicate = $request->input('duplicate.'.$id) ? 1 : NULL; // Set if ignore duplicate $o->ignore_duplicate = $request->input('ignore_duplicate.'.$id) ? 1 : NULL; // Set if flag $o->flag = $request->input('flag.'.$id) ? 1 : NULL; // Set if delete if ($delete AND $o->remove AND ($request->input('remove.'.$id) ? 1 : NULL)) { Log::info(sprintf('Dispatching delete for [%s]',$o->id)); switch ($class) { case 'photo': $this->dispatch((new PhotoDelete($o))->onQueue('delete')); Log::info(sprintf('Dispatching delete for [%s]',$o->id)); break; case 'video': $this->dispatch((new VideoDelete($o))->onQueue('delete')); Log::info(sprintf('Dispatching delete for [%s]',$o->id)); break; default: Log::info(sprintf('Ignoring delete for [%s] - not configured.',$o->id)); } } else { $o->remove = $request->input('remove.'.$id) ? 1 : NULL; } $o->save(); } } }