middleware('auth'); } public function index(Request $request) { $folders = Directories::all(); return view('folders', ['folders' => $folders, 'static_folders' => config('app.STATIC_FOLDERS')]); } public function toggleAuthorization(Request $request) { $folderId = $request->id; $folder = Directories::find($folderId); if ($folder) { if ($folder->needAuthorization === 0){ $folder->needAuthorization = 1; }else{ $folder->needAuthorization = 0; } $folder->save(); } return Directories::all(); } public function saveOrder(Request $request) { return $this->orderFolders($request->folders); } public function saveName(Request $request) { $folder = Directories::find($request->id); if($folder) { $folder->name = $request->name; $folder->save(); } return Directories::all(); } public function add(Request $request) { $folder = new Directories(); $folder->name = $request->name; $folder->order = $request->order; $folder->save(); return Directories::all(); } public function delete(Request $request) { $folder = Directories::find($request->id); if($folder) { $count = $folder->documents->count(); if ($count > 0) { return ['status' => 'KO', 'error' => sprintf("Il y a %d document(s) liƩ(s).", $count)]; } $folder->delete(); } return ['status' => 'OK', 'directories' => Directories::all()]; } private function orderFolders($folders){ foreach ($folders as $folder) { $directory = Directories::where('id', $folder['id'])->first(); $directory->order = $folder['order']; $directory->parent = null; $directory->save(); if(isset($folder['children']) && count($folder['children']) > 0 ){ $this->recordOrder($folder['children'], $folder['id']); } } return 'OK'; } private function recordOrder($folders, $parentId) { foreach ($folders as $k => $folder) { $directory = Directories::where('id', $folder['id'])->first(); $directory->order = $folder['order']; $directory->parent = $parentId; $directory->save(); if(isset($folder['children']) && count($folder['children']) > 0 ){ $this->recordOrder($folder['children'], $folder['id']); } } } }