badgeteam/Hatchery

View on GitHub
resources/views/projects/index.blade.php

Summary

Maintainability
A
0 mins
Test Coverage
@extends('layouts.app')

@section('content')
<div class="container-fluid">

    <div class="row">
        <div class="col-md-10 col-md-offset-1">

            <div class="panel panel-default">

                <div class="panel-heading">
                    <strong>Eggs</strong>

                    {{ Form::select('badge_id', \App\Models\Badge::pluck('name', 'slug')->reverse()->prepend('Choose a badge model', ''), $badge, ['id' => 'badge']) }}
                    {{ Form::select('category_id', \App\Models\Category::where('hidden', false)->pluck('name', 'slug')->reverse()->prepend('Choose a category', ''), $category, ['id' => 'category']) }}
                    {{ Form::open(['method' => 'post', 'route' => ['projects.search', 'badge' => $badge, 'category' => $category], 'class' => 'searchform'])  }}
                        {{ Form::text('search', $search, ['placeholder' => 'Search']) }}
                    {{ Form::close() }}
                    <div class="pull-right">
                        <a href="{{ route('projects.import') }}" class="btn btn-default btn-xs">import</a>
                        <a href="{{ route('projects.create') }}" class="btn btn-success btn-xs">add</a>
                    </div>
                </div>

                <div class="panel-body">

                    <table class="table table-striped">
                        <thead>
                            <tr>
                                <th>Name</th>
                                <th>Rev</th>
                                <th>Egg</th>
                                <th class="hidden-xs">Content</th>
                                <th class="hidden-xs">Category</th>
                                <th>Collab</th>
                                <th class="hidden-xs"><img src="{{ asset('img/rulez.gif') }}" alt="up" /></th>
                                <th class="hidden-xs"><img src="{{ asset('img/isok.gif') }}" alt="pig" /></th>
                                <th class="hidden-xs"><img src="{{ asset('img/sucks.gif') }}" alt="down" /></th>
                                <th class="hidden-xs"><img src="{{ asset('img/alert.gif') }}" alt="alert" /></th>
                                <th>Last release</th>
                            </tr>
                        </thead>
                        <tbody>
                            @forelse($projects as $project)
                                <tr>
                                    <td>
                                    @can('update', $project)
                                        <a href="{{ route('projects.edit', ['project' => $project->slug]) }}">{{ $project->name }}</a>
                                    @else
                                        <a href="{{ route('projects.show', ['project' => $project->slug]) }}">{{ $project->name }}</a>
                                    @endcan
                                    </td>
                                    <td>{{ $project->versions()->published()->count() > 0 ? $project->versions()->published()->get()->last()->revision : 'unreleased' }}</td>
                                    <td>{{ $project->size_of_zip_formatted }}</td>
                                    <td class="hidden-xs">{{ $project->size_of_content_formatted }}</td>
                                    <td class="hidden-xs">{{ $project->category }}</td>
                                    <td>
                                    @if($project->git)
                                        <img src="{{ asset('img/git.svg') }}" alt="Git revision: {{ $project->git_commit_id}}" class="collab-icon" />
                                    @endif
                                    @if(!$project->collaborators->isEmpty())
                                        <img src="{{ asset('img/collab.svg') }}" alt="{{ $project->collaborators()->count() . ' ' . \Illuminate\Support\Str::plural('collaborator', $project->collaborators()->count()) }}" class="collab-icon" />
                                    @endif
                                    </td>
                                    <td class="hidden-xs">{{ $project->votes->where('type', 'up')->count() }}</td>
                                    <td class="hidden-xs">{{ $project->votes->where('type', 'pig')->count() }}</td>
                                    <td class="hidden-xs">{{ $project->votes->where('type', 'down')->count() }}</td>
                                    <td class="hidden-xs">{{ $project->warnings->count() }}</td>
                                    <td>{{ $project->versions()->published()->count() > 0 ? $project->versions()->published()->get()->last()->updated_at : '-' }}</td>
                                </tr>
                            @empty
                                <tr>
                                    <td colspan="6">No Eggs published yet</td>
                                </tr>
                            @endforelse
                        </tbody>
                    </table>

                    @if ($badge && $category && $search)
                        {{ $projects->appends(['badge' => $badge, 'category' => $category, 'search' => $search])->links() }}
                    @elseif ($badge && $category)
                        {{ $projects->appends(['badge' => $badge, 'category' => $category])->links() }}
                    @elseif ($search && $category)
                        {{ $projects->appends(['search' => $search, 'category' => $category])->links() }}
                    @elseif ($badge && $search)
                        {{ $projects->appends(['badge' => $badge, 'search' => $search])->links() }}
                    @elseif ($badge)
                        {{ $projects->appends(['badge' => $badge])->links() }}
                    @elseif ($category)
                        {{ $projects->appends(['category' => $category])->links() }}
                    @else
                        {{ $projects->links() }}
                    @endif
                </div>
            </div>
        </div>
    </div>
</div>
@endsection
@section('script')
    <script>
        $(document).ready(function () {
          $('#badge').change(function () {
            if ($(this).val()) {
              window.location.href = '{{ $search ? route('projects.search') : route('projects.index') }}?{!! ($category ? "category=$category&" : "") !!}{!! ($search ? "search=$search&" : "") !!}badge=' + $(this).val();
            } else {
              window.location.href = '{{ $search ? route('projects.search') : route('projects.index')  . ($category ? "?category=$category" : "") . ($search ? ($category ? '&' : '?') . "search=$search" : "") }}';
            }
          })
          $('#category').change(function () {
            if ($(this).val()) {
              window.location.href = '{{ $search ? route('projects.search') : route('projects.index')  }}?{!! ($badge ? "badge=$badge&" : "") !!}{!! ($search ? "search=$search&" : "") !!}category=' + $(this).val();
            } else {
              window.location.href = '{{ $search ? route('projects.search') : route('projects.index') . ($badge ? "?badge=$badge" : "") . ($search ? ($badge ? '&' : '?') . "search=$search" : "")  }}';
            }
          })
        })
    </script>
@endsection