jqh há 5 anos atrás
pai
commit
3ffc69f20b

+ 14 - 14
resources/views/pagination.blade.php

@@ -8,21 +8,21 @@
 
     <!-- Pagination Elements -->
     @foreach ($elements as $element)
-    <!-- "Three Dots" Separator -->
-    @if (is_string($element))
-    <li class="page-item disabled"><span class="page-link">{{ $element }}</span></li>
-    @endif
+        <!-- "Three Dots" Separator -->
+        @if (is_string($element))
+        <li class="page-item disabled"><span class="page-link">{{ $element }}</span></li>
+        @endif
 
-    <!-- Array Of Links -->
-    @if (is_array($element))
-    @foreach ($element as $page => $url)
-    @if ($page == $paginator->currentPage())
-    <li class="page-item active"><span class="page-link">{{ $page }}</span></li>
-    @else
-    <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
-    @endif
-    @endforeach
-    @endif
+        <!-- Array Of Links -->
+        @if (is_array($element))
+            @foreach ($element as $page => $url)
+                @if ($page == $paginator->currentPage())
+                <li class="page-item active"><span class="page-link">{{ $page }}</span></li>
+                @else
+                <li class="page-item"><a class="page-link" href="{{ $url }}">{{ $page }}</a></li>
+                @endif
+            @endforeach
+        @endif
     @endforeach
 
     <!-- Next Page Link -->

+ 5 - 9
resources/views/partials/menu.blade.php

@@ -1,11 +1,7 @@
-@if(Dcat\Admin\Admin::Menu()->show($item))
-    @if(!isset($item['children']))
-        @php
-            $url = Dcat\Admin\Admin::menu()->getUrl($item['uri']);
-        @endphp
-
-        <li {!! Dcat\Admin\Admin::Menu()->isActive($item) ? 'class="active"' : '' !!}>
-                <a href="{{ $url }}">
+@if($builder->isVisible($item))
+    @if(! isset($item['children']))
+        <li {!! $builder->isActive($item) ? 'class="active"' : '' !!}>
+                <a href="{{ $builder->getUrl($item['uri']) }}">
 
                 <i class="fa {{$item['icon']}}"></i>
                 @if (Lang::has($titleTranslation = 'admin.menu_titles.' . trim(str_replace(' ', '_', strtolower($item['title'])))))
@@ -17,7 +13,7 @@
         </li>
     @else
         @php
-            $active = Dcat\Admin\Admin::Menu()->isActive($item);
+            $active = $builder->isActive($item);
         @endphp
         <li class="treeview {!! $active ? 'active' : '' !!}">
             <a href="#">

+ 1 - 1
src/Form/Field/SelectResource.php

@@ -16,7 +16,7 @@ class SelectResource extends Field
         'vendor/dcat-admin/dcat-admin/select-resource.min.js',
     ];
 
-    protected $area = ['55%', '68%'];
+    protected $area = ['51%', '65%'];
 
     protected $source;
 

+ 8 - 0
src/Grid/Concerns/HasPaginator.php

@@ -78,6 +78,14 @@ trait HasPaginator
         return $this;
     }
 
+    /**
+     * @return $this
+     */
+    public function disablePerPages()
+    {
+        return $this->perPages([]);
+    }
+
     /**
      * Get per-page options.
      *

+ 1 - 1
src/Grid/Filter/Presenter/SelectResource.php

@@ -16,7 +16,7 @@ class SelectResource extends Presenter
      */
     protected $placeholder = '';
 
-    protected $area = ['55%', '68%'];
+    protected $area = ['51%', '65%'];
 
     protected $source;
 

+ 38 - 26
src/Layout/Menu.php

@@ -48,6 +48,11 @@ class Menu
         ],
     ];
 
+    /**
+     * @var string
+     */
+    protected $view = 'admin::partials.menu';
+
     /**
      * Register menu.
      */
@@ -57,12 +62,11 @@ class Menu
             admin_inject_default_section(\AdminSection::LEFT_SIDEBAR_MENU, function () {
                 $menuModel = config('admin.database.menu_model');
 
-                return $this->build((new $menuModel())->allNodes());
+                return $this->toHtml((new $menuModel())->allNodes());
             });
         }
 
         if (config('app.debug')) {
-            // Register the menu of helpers.
             $this->add(static::$helperNodes, 20);
         }
     }
@@ -70,11 +74,13 @@ class Menu
     /**
      * @param array $nodes
      * @param int   $priority
+     *
+     * @return void
      */
     public function add(array $nodes = [], int $priority = 10)
     {
         admin_inject_section(\AdminSection::LEFT_SIDEBAR_MENU_BOTTOM, function () use (&$nodes) {
-            return $this->build($nodes);
+            return $this->toHtml($nodes);
         }, true, $priority);
     }
 
@@ -87,24 +93,36 @@ class Menu
      *
      * @return string
      */
-    public function build(array $nodes)
+    public function toHtml(array $nodes)
     {
         $html = '';
         foreach (Helper::buildNestedArray($nodes) as $item) {
-            $html .= $this->renderMenu($item);
+            $html .= $this->render($item);
         }
 
         return $html;
     }
 
+    /**
+     * @param string $view
+     *
+     * @return $this
+     */
+    public function view(string $view)
+    {
+        $this->view = $view;
+
+        return $this;
+    }
+
     /**
      * @param array $item
      *
-     * @return array|string
+     * @return string
      */
-    protected function renderMenu(array $item)
+    public function render(array $item)
     {
-        return view('admin::partials.menu', ['item' => &$item])->render();
+        return view($this->view, ['item' => &$item, 'builder' => $this])->render();
     }
 
     /**
@@ -132,7 +150,7 @@ class Menu
                 return true;
             }
             if (! empty($v['children'])) {
-                if (static::isActive($v, $path)) {
+                if ($this->isActive($v, $path)) {
                     return true;
                 }
             }
@@ -142,15 +160,15 @@ class Menu
     }
 
     /**
-     * @param array $menuItem
+     * @param array $item
      *
      * @return bool
      */
-    public function show(array $menuItem)
+    public function isVisible(array $item)
     {
-        $permissionIds = $menuItem['permission_id'] ?? null;
-        $roles = array_column($menuItem['roles'] ?? [], 'slug');
-        $permissions = array_column($menuItem['permissions'] ?? [], 'slug');
+        $permissionIds = $item['permission_id'] ?? null;
+        $roles = array_column($item['roles'] ?? [], 'slug');
+        $permissions = array_column($item['permissions'] ?? [], 'slug');
 
         if (! $permissionIds && ! $roles && ! $permissions) {
             return true;
@@ -172,30 +190,24 @@ class Menu
     }
 
     /**
-     * @param $uri
+     * @param string $uri
      *
      * @return string
      */
     public function getPath($uri)
     {
-        if (! $uri) {
-            return $uri;
-        }
-
-        return url()->isValidUrl($uri) ? $uri : admin_base_path($uri);
+        return $uri
+            ? (url()->isValidUrl($uri) ? $uri : admin_base_path($uri))
+            : $uri;
     }
 
     /**
-     * @param $uri
+     * @param string $uri
      *
      * @return string
      */
     public function getUrl($uri)
     {
-        if (! $uri) {
-            return $uri;
-        }
-
-        return admin_url($uri);
+        return $uri ? admin_url($uri) : $uri;
     }
 }

+ 1 - 0
src/SimpleGrid.php

@@ -17,6 +17,7 @@ class SimpleGrid extends Grid
         $this->disableActions();
         $this->disableExporter();
         $this->disableQuickCreateButton();
+        $this->disablePerPages();
 
         $this->option('row_selector_clicktr', true);
 

+ 6 - 11
src/Support/Helper.php

@@ -67,26 +67,21 @@ class Helper
     /**
      * Converts the given value to string.
      *
-     * @param $value
-     * @param array $params
-     * @param null  $bindTo
+     * @param mixed  $value
+     * @param array  $params
+     * @param object $newThis
      *
      * @return mixed|string
      */
-    public static function render($value, $params = [], $bindTo = null)
+    public static function render($value, $params = [], $newThis = null)
     {
-        if (! $value) {
-            return '';
-        }
-
         if (is_string($value)) {
             return $value;
         }
 
         if ($value instanceof \Closure) {
-            if ($bindTo) {
-                $value->bindTo($bindTo);
-            }
+            $newThis && $value = $value->bindTo($newThis);
+
             $value = $value(...(array) $params);
         }