jqh 6 سال پیش
والد
کامیت
4ec6e50ff2
7فایلهای تغییر یافته به همراه25 افزوده شده و 8 حذف شده
  1. 0 1
      src/AdminServiceProvider.php
  2. 9 1
      src/Form.php
  3. 9 1
      src/Show.php
  4. 3 1
      src/Tree.php
  5. 2 2
      src/Widgets/DataCard/Card.php
  6. 1 1
      src/Widgets/Dropdown.php
  7. 1 1
      src/Widgets/Navbar.php

+ 0 - 1
src/AdminServiceProvider.php

@@ -6,7 +6,6 @@ use Dcat\Admin\Layout\Content;
 use Dcat\Admin\Layout\Menu;
 use Dcat\Admin\Layout\Menu;
 use Dcat\Admin\Layout\Navbar;
 use Dcat\Admin\Layout\Navbar;
 use Dcat\Admin\Layout\SectionManager;
 use Dcat\Admin\Layout\SectionManager;
-use Illuminate\Foundation\AliasLoader;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Facades\Blade;
 use Illuminate\Support\Facades\Blade;
 use Illuminate\Support\Fluent;
 use Illuminate\Support\Fluent;

+ 9 - 1
src/Form.php

@@ -20,6 +20,7 @@ use Illuminate\Support\Facades\Input;
 use Illuminate\Support\Fluent;
 use Illuminate\Support\Fluent;
 use Illuminate\Support\MessageBag;
 use Illuminate\Support\MessageBag;
 use Illuminate\Support\Str;
 use Illuminate\Support\Str;
+use Illuminate\Support\Traits\Macroable;
 use Illuminate\Validation\Validator;
 use Illuminate\Validation\Validator;
 use Spatie\EloquentSortable\Sortable;
 use Spatie\EloquentSortable\Sortable;
 use Symfony\Component\HttpFoundation\Response;
 use Symfony\Component\HttpFoundation\Response;
@@ -87,7 +88,10 @@ class Form implements Renderable
 {
 {
     use BuilderEvents,
     use BuilderEvents,
         Concerns\Events,
         Concerns\Events,
-        Concerns\Files;
+        Concerns\Files,
+        Macroable {
+            __call as macroCall;
+        }
 
 
     /**
     /**
      * Remove flag in `has many` form.
      * Remove flag in `has many` form.
@@ -1596,6 +1600,10 @@ class Form implements Renderable
      */
      */
     public function __call($method, $arguments)
     public function __call($method, $arguments)
     {
     {
+        if (static::hasMacro($method)) {
+            return $this->macroCall($method, $arguments);
+        }
+
         if ($className = static::findFieldClass($method)) {
         if ($className = static::findFieldClass($method)) {
             $column = Arr::get($arguments, 0, '');
             $column = Arr::get($arguments, 0, '');
 
 

+ 9 - 1
src/Show.php

@@ -15,10 +15,14 @@ use Illuminate\Support\Arr;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Collection;
 use Illuminate\Support\Facades\URL;
 use Illuminate\Support\Facades\URL;
 use Illuminate\Support\Fluent;
 use Illuminate\Support\Fluent;
+use Illuminate\Support\Traits\Macroable;
 
 
 class Show implements Renderable
 class Show implements Renderable
 {
 {
-    use BuilderEvents;
+    use BuilderEvents,
+        Macroable {
+            __call as macroCall;
+        }
 
 
     /**
     /**
      * @var string
      * @var string
@@ -505,6 +509,10 @@ class Show implements Renderable
      */
      */
     public function __call($method, $arguments = [])
     public function __call($method, $arguments = [])
     {
     {
+        if (static::hasMacro($method)) {
+            return $this->macroCall($method, $arguments);
+        }
+
         return $this->call($method, $arguments);
         return $this->call($method, $arguments);
     }
     }
 
 

+ 3 - 1
src/Tree.php

@@ -7,10 +7,12 @@ use Dcat\Admin\Traits\BuilderEvents;
 use Dcat\Admin\Tree\Tools;
 use Dcat\Admin\Tree\Tools;
 use Illuminate\Contracts\Support\Renderable;
 use Illuminate\Contracts\Support\Renderable;
 use Illuminate\Database\Eloquent\Model;
 use Illuminate\Database\Eloquent\Model;
+use Illuminate\Support\Traits\Macroable;
 
 
 class Tree implements Renderable
 class Tree implements Renderable
 {
 {
-    use BuilderEvents;
+    use BuilderEvents,
+        Macroable;
 
 
     /**
     /**
      * @var array
      * @var array

+ 2 - 2
src/Widgets/DataCard/Card.php

@@ -3,7 +3,7 @@
 namespace Dcat\Admin\Widgets\DataCard;
 namespace Dcat\Admin\Widgets\DataCard;
 
 
 use Dcat\Admin\Admin;
 use Dcat\Admin\Admin;
-use Dcat\Admin\Widgets\DropdownMenu;
+use Dcat\Admin\Widgets\Dropdown;
 use Dcat\Admin\Widgets\AjaxRequestBuilder;
 use Dcat\Admin\Widgets\AjaxRequestBuilder;
 use Dcat\Admin\Widgets\Widget;
 use Dcat\Admin\Widgets\Widget;
 use Illuminate\Support\Str;
 use Illuminate\Support\Str;
@@ -105,7 +105,7 @@ class Card extends Widget
     public function dropdown(array $options, \Closure $builder, ?string $defaultLabel = null)
     public function dropdown(array $options, \Closure $builder, ?string $defaultLabel = null)
     {
     {
         return $this->tool(
         return $this->tool(
-            DropdownMenu::make($options)
+            Dropdown::make($options)
                 ->click()
                 ->click()
                 ->button($defaultLabel)
                 ->button($defaultLabel)
                 ->buttonClass('btn btn-xs btn-light')
                 ->buttonClass('btn btn-xs btn-light')

+ 1 - 1
src/Widgets/DropdownMenu.php → src/Widgets/Dropdown.php

@@ -7,7 +7,7 @@ use Illuminate\Contracts\Support\Arrayable;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Arr;
 use Illuminate\Support\Str;
 use Illuminate\Support\Str;
 
 
-class DropdownMenu extends Widget
+class Dropdown extends Widget
 {
 {
     const DIVIDER = '_divider';
     const DIVIDER = '_divider';
 
 

+ 1 - 1
src/Widgets/Navbar.php

@@ -97,7 +97,7 @@ class Navbar extends Widget
         \Closure $closure = null
         \Closure $closure = null
     )
     )
     {
     {
-        $dropdown = DropdownMenu::make($options)
+        $dropdown = Dropdown::make($options)
             ->button($text)
             ->button($text)
             ->buttonClass('')
             ->buttonClass('')
             ->template('%s<ul class="dropdown-menu">%s</ul>');
             ->template('%s<ul class="dropdown-menu">%s</ul>');