2021-01-15 14:47:59 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
|
|
|
|
use App\Models\Directories;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
|
|
|
|
|
class FoldersController extends Controller
|
|
|
|
|
{
|
|
|
|
|
public function index(Request $request) {
|
|
|
|
|
$folders = Directories::all();
|
2022-05-18 12:46:16 +02:00
|
|
|
return view('folder.index', ['folders' => $folders]);
|
2021-01-15 14:47:59 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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) {
|
2021-07-20 14:19:17 +02:00
|
|
|
$count = $folder->documents->count();
|
|
|
|
|
if ($count > 0)
|
|
|
|
|
{
|
|
|
|
|
return ['status' => 'KO', 'error' => sprintf("Il y a %d document(s) lié(s).", $count)];
|
|
|
|
|
}
|
2021-01-15 14:47:59 +01:00
|
|
|
$folder->delete();
|
|
|
|
|
}
|
2021-07-20 14:19:17 +02:00
|
|
|
return ['status' => 'OK', 'directories' => Directories::all()];
|
2021-01-15 14:47:59 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function orderFolders($folders){
|
|
|
|
|
foreach ($folders as $folder) {
|
|
|
|
|
$directory = Directories::where('id', $folder['id'])->first();
|
|
|
|
|
$directory->order = $folder['order'];
|
|
|
|
|
$directory->parent = null;
|
2022-09-29 09:59:57 +02:00
|
|
|
$directory->needAuthorization = 0;
|
2021-01-15 14:47:59 +01:00
|
|
|
$directory->save();
|
|
|
|
|
if(isset($folder['children']) && count($folder['children']) > 0 ){
|
|
|
|
|
$this->recordOrder($folder['children'], $folder['id']);
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-09-29 09:59:57 +02:00
|
|
|
return ['status' => 'OK', 'directories' => Directories::all()];
|
2021-01-15 14:47:59 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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']);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|