source: app/Http/Controllers/Dashboard/DocumentsController.php@ d795fa6

develop
Last change on this file since d795fa6 was d795fa6, checked in by Berat Kjufliju <kufliju@…>, 3 years ago

added validation to blades

  • Property mode set to 100644
File size: 3.3 KB
Line 
1<?php
2
3namespace App\Http\Controllers\Dashboard;
4
5use App\Helpers\Alert;
6use App\Http\Requests\Dashboard\DocumentRequest;
7use App\Models\Department;
8use App\Models\Document;
9use App\Models\File;
10use App\Services\UploadService;
11use Illuminate\Http\Request;
12use Illuminate\Support\Facades\Storage;
13use App\Http\Controllers\Controller;
14
15class DocumentsController extends Controller
16{
17 public function index(Request $request)
18 {
19 if($request->department) {
20 $documents = Document::with('department')->where('department', function ($query) {
21 $query->where('id', $request->department)->get();
22 });
23 }
24 else{
25 $documents = Document::all();
26 }
27
28 $departments = Department::all();
29
30 return view("dashboard.documents.index")->with([
31 "documents" => $documents,
32 "currentUser" => auth()->user(),
33 "departments" => $departments,
34 "docsCount" => Department::withCount('document')->get(),
35 'totalDocs' => Document::all()->count()
36 ]);
37
38 }
39
40 public function create()
41 {
42 return view("dashboard.documents.create")->with([
43 "departments" => Department::all()
44 ]);
45 }
46
47 public function editShow($id)
48 {
49// if (!auth()->user()->hasPermission("edit_all_documents")) {
50// return redirect()->route("dashboard.documents.index");
51// }
52
53 return view("dashboard.documents.edit")->with([
54 "document" => Document::findOrFail($id),
55 "departments" => Department::all()
56 ]);
57 }
58
59 public function edit(DocumentRequest $request, $id)
60 {
61 $document = Document::findOrFail($id);
62
63 $department = Department::find($request->department);
64
65 $document->department()->associate($department);
66
67 $document->name = $request->name;
68 $document->arch_id = $request->arch_id;
69 $document->description = $request->description;
70 $document->updated_at = $request->Carbon::now();;
71
72 $document->save();
73
74 Alert::flash("Document edited successfully");
75
76 return redirect()->route("dashboard.documents.index");
77 }
78
79 public function store(DocumentRequest $request, UploadService $uploadService)
80 {
81 $document = new Document();
82 $user = auth()->user();
83 $department = Department::find($request->department);
84
85 $document->user()->associate($user);
86 $document->department()->associate($department);
87
88 $document->arch_id = $request->arch_id;
89 $document->name = $request->name;
90 $document->description = $request->description;
91
92 if(!Storage::disk('local')->has($document->department()->pluck('location')->join("") . '/' . $request->arch_id)){
93 Storage::disk('local')->makeDirectory($document->department()->pluck('location')->join("") . '/' . $request->arch_id);
94 }
95
96 $documentFile = $uploadService->upload(File::class, [
97 "file_item" => $request->file_item,
98 ], "link", true);
99
100 $document->save();
101
102 foreach ($documentFile as $df) {
103 $file = File::find($df);
104 $file->document()->associate($document);
105 $file->save();
106 }
107
108 Alert::flash("New document created successfully");
109
110 return redirect()->route("dashboard.documents.index");
111 }
112
113}
Note: See TracBrowser for help on using the repository browser.