src/resources/views/includes/sidebar.blade.php

Summary

Maintainability
A
0 mins
Test Coverage
<aside class="main-sidebar elevation-4 sidebar-dark-primary">

  <!-- Logo -->
  <a href="{{ route('home') }}" class="brand-link">
    <img class="brand-image img-circle elevation-3" src="{{ asset('web/img/logo.png') }}" alt="SeAT" />
    <span class="brand-text font-weight-light">S<b>e</b>AT</span>
  </a>

  <!-- sidebar: style can be found in sidebar.less -->
  <div class="sidebar">

    <!-- Sidebar user panel -->
    @if($user->name != 'admin')
    <div class="user-panel mt-3 pb-3 mb-3 d-flex">
      <div class="image">
        {!! img('characters', 'portrait', $user->main_character_id, 64, ['class' => 'img-circle elevation-2', 'alt' => 'User Image'], false) !!}
      </div>
      <div class="info">
        <a href="{{ route('character.view.sheet', ['character' => $user->main_character]) }}" class="d-block">
          {{ $user->name }}
        </a>
      </div>
    </div>
    @endif

    <!-- Sidebar Menu -->
    <nav class="mt-2">
      <ul class="nav nav-pills nav-sidebar flex-column nav-child-indent" data-widget="treeview" role="menu">

        @foreach($menu as $entry)

          {{-- determine if we should pop a treeview --}}
          @if(isset($entry['entries']))

            <li class="nav-item has-treeview {{ Request::segment(1) === $entry['route_segment'] ? 'menu-is-opening menu-open' : null }}">
              <a href="#" class="nav-link {{ Request::segment(1) === $entry['route_segment'] ? 'active' : null }}">
                <i class="nav-icon {{ $entry['icon'] }}"></i>

                @if (array_key_exists('label', $entry))

                  @if(array_key_exists('plural', $entry))
                    <p>
                      {{ trans_choice($entry['label'], $entry['plural'] ? 0 : 1) }}
                      <i class="right fas fa-angle-left"></i>
                    </p>
                  @else
                    <p>
                      {{ trans($entry['label']) }}
                      <i class="right fas fa-angle-left"></i>
                    </p>
                  @endif

                @else

                  <p>
                    {{ $entry['name'] }}
                    <i class="right fas fa-angle-left"></i>
                  </p>

                @endif

              </a>
              <ul class="nav nav-treeview">

                @foreach($entry['entries'] as $item)

                  {{-- check if a permisison is required an if its given --}}
                  @if(array_key_exists('permission', $item))

                    {{-- permision is required. check it --}}
                    @canany(is_array($item['permission']) ? $item['permission'] : [$item['permission']])

                      <li class="nav-item">
                        <a href="{{ isset($item['route']) ? route($item['route']) : '#' }}" class="nav-link {{ isset($item['route']) ? (Request::url() === route($item['route']) ? 'active' : null) : null }}">

                          @if (array_key_exists('label', $item))

                            <i class="nav-icon {{ $item['icon'] ?? 'fa-circle-o' }}"></i>
                            @if(array_key_exists('plural', $item))
                              <p>{{ trans_choice($item['label'], $item['plural'] ? 0 : 1) }}</p>
                            @else
                              <p>{{ trans($item['label']) }}</p>
                            @endif

                          @else

                            <i class="nav-icon {{ $item['icon'] ?? 'fa-circle-o' }}"></i> {{ $item['name'] }}

                          @endif

                        </a>

                        @if(array_key_exists('entries', $item))
                          <ul class="nav nav-treeview">
                            @foreach($item['entries'] as $subitem)
                              <li class="nav-item">
                                <a href="{{ isset($subitem['route']) ? route($subitem['route']) : '#' }}" class="nav-link {{ isset($subitem['route']) ? (Request::url() === route($subitem['route']) ? 'active' : null) : null }}">
                                  @if (array_key_exists('label', $subitem))
                                    <i class="nav-icon {{ $subitem['icon'] ?? 'fa-circle-o' }}"></i>
                                    @if(array_key_exists('plural', $subitem))
                                      <p>{{ trans_choice($subitem['label'], $subitem['plural'] ? 0 : 1) }}</p>
                                    @else
                                      <p>{{ trans($subitem['label']) }}</p>
                                    @endif
                                  @else
                                    <i class="nav-icon {{ $subitem['icon'] ?? 'fa-circle-o' }}"></i>
                                    <p>{{ $subitem['name'] }}</p>
                                  @endif
                                </a>
                              </li>
                            @endforeach
                          </ul>
                        @endif

                      </li>

                    @endcanany

                    {{-- TODO: Get rid of this copy pasta by using a partial or something. --}}
                  @else

                    <li class="nav-item">
                      <a href="{{ isset($item['route']) ? route($item['route']) : '#' }}" class="nav-link {{ isset($item['route']) ? (Request::url() === route($item['route']) ? 'active' : null) : null }}">
                        @if (array_key_exists('label', $item))

                          <i class="nav-icon {{ $item['icon'] ?? 'fa-circle-o' }}"></i>

                          @if(array_key_exists('plural', $item))
                            <p>{{ trans_choice($item['label'], $item['plural'] ? 0 : 1) }}</p>
                          @else
                            <p>{{ trans($item['label']) }}</p>
                          @endif

                        @else

                          <i class="nav-icon {{ $item['icon'] ?? 'fa-circle-o' }}"></i>
                          <p>{{ $item['name'] }}</p>

                        @endif

                      </a>

                      @if(array_key_exists('entries', $item))
                        <ul class="nav nav-treeview">
                          @foreach($item['entries'] as $subitem)
                            <li class="nav-item">
                              <a href="{{ isset($subitem['route']) ? route($subitem['route']) : '#' }}" class="nav-link {{ isset($subitem['route']) ? (Request::url() === route($subitem['route']) ? 'active' : null) : null }}">
                                @if (array_key_exists('label', $subitem))
                                  <i class="nav-icon {{ $subitem['icon'] ?? 'fa-circle-o' }}"></i>
                                  @if(array_key_exists('plural', $subitem))
                                    <p>{{ trans_choice($subitem['label'], $subitem['plural'] ? 0 : 1) }}</p>
                                  @else
                                    <p>{{ trans($subitem['label']) }}</p>
                                  @endif
                                @else
                                  <i class="nav-icon {{ $subitem['icon'] ?? 'fa-circle-o' }}"></i>
                                  <p>{{ $subitem['name'] }}</p>
                                @endif
                              </a>
                            </li>
                          @endforeach
                        </ul>
                      @endif

                    </li>

                  @endif

                @endforeach
              </ul>
            </li>

            {{-- render custom menu links --}}
          @elseif($entry['route_segment'] === 'custom')

          <li class="nav-item">
              <a href="{{ $entry['route'] }}" class="nav-link" @if ($entry['new_tab'] == true) target="_blank" @endif>
                <i class="nav-icon {{ ($entry['icon'] != '') ? $entry['icon'] : 'fas fa-link' }}"></i>
                <p>{{ $entry['name'] }}</p>
              </a>
            </li>

            {{-- no entries, so this looks like a single menu --}}
          @else

            <li class="nav-item">
              <a href="{{ isset($entry['route']) ? route($entry['route']) : '#' }}" class="nav-link {{ Request::segment(1) === $entry['route_segment'] ? 'active' : null }}">

                @if (array_key_exists('label', $entry))
                  <i class="nav-icon {{ $entry['icon'] }}"></i>
                  @if(array_key_exists('plural', $entry))
                    <p>{{ trans_choice($entry['label'], $entry['plural'] ? 0 : 1) }}</p>
                  @else
                    <p>{{ trans($entry['label']) }}</p>
                  @endif
                @else
                  <i class="nav-icon {{ $entry['icon'] }}"></i>
                  <p>{{ $entry['name'] }}</p>
                @endif

              </a>
            </li>

          @endif

        @endforeach

      </ul>
    </nav>
    <!-- /.sidebar-menu -->

  </div>
  <!-- /.sidebar -->
</aside>