Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 75508baf

Přidáno uživatelem Marek Lovčí před asi 4 roky(ů)

Merge origin/develop into master

Zobrazit rozdíly:

app/Http/Controllers/DetailsController.php
3 3
namespace App\Http\Controllers;
4 4

  
5 5
use App\ArtefactUser;
6
use App\User;
6 7
use Illuminate\Http\Request;
7 8
use App\Metadata;
8 9
use App\Artefact;
10
use Illuminate\Support\Facades\Auth;
9 11

  
10 12
class DetailsController extends Controller
11 13
{
14
    const ORDER_COLUMN = 'page';
15

  
12 16
    public function __construct()
13 17
    {
14 18
        $this->middleware('auth');
......
32 36
     * Display the specified resource.
33 37
     *
34 38
     * @param  int  $id
35
     * @return \Illuminate\Http\Response
39
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
36 40
     */
37 41
    public function show($id)
38 42
    {
39
        $data = array(
40
            'id' => $id,
41
            'arrArtefact' => Artefact::find($id),
42
            'likes' => Artefact::find($id)->users()->count(),
43
            'metadata' => Metadata::where('artefact_id', $id)->get()
44
        );
45
        return view('detail.index') -> with($data);
43
        if (is_null(Artefact::find($id)))
44
        {
45
            return view('detail.index', ['metadata' => []]);
46
        }
47

  
48
        $metadata = Artefact::find($id)->metadata()->orderBy(self::ORDER_COLUMN)->get();
49
        foreach($metadata as $item)
50
        {
51
            $item['favourite'] = is_null(User::find(Auth::id())->likesMetadata()->find($item->id)) ? false : true;
52
        }
53

  
54
        return view('detail.index', ['metadata' => $metadata]);
46 55
    }
47 56

  
57
    /**
58
     * Likes metadata given by its id.
59
     *
60
     * @param $id int id of metadata
61
     * @return \Illuminate\Http\RedirectResponse
62
     */
63
    public function like($id)
64
    {
65
        $user = User::find(Auth::id());
66
        $metadata = Metadata::find($id);
67

  
68
        $user->likesMetadata()->attach($metadata);
69

  
70
        return back()->withInput();
71
    }
72

  
73
    /**
74
     * Unlikes metadata given by its id.
75
     *
76
     * @param $id int id of metadata
77
     * @return \Illuminate\Http\RedirectResponse
78
     */
79
    public function unlike($id)
80
    {
81
        $user = User::find(Auth::id());
82
        $metadata = Metadata::find($id);
83

  
84
        $user->likesMetadata()->detach($metadata);
85

  
86
        return back()->withInput();
87
    }
48 88
}

Také k dispozici: Unified diff