jqh 5 年之前
父節點
當前提交
75e992c617

+ 1 - 1
resources/assets/dcat/sass/components/_grid.scss

@@ -47,7 +47,7 @@
     background-color: $gray-bg;
     vertical-align: middle;
     border-radius: .5rem;
-    height: 42px;
+    height: 35px;
     color: #777;
   }
 }

+ 5 - 0
resources/assets/dcat/sass/components/_label.scss

@@ -13,6 +13,11 @@
   margin-bottom: 4px;
 }
 
+.label.bg-default {
+  color: $font-color;
+  font-weight: 700;
+}
+
 .badge {
   margin-bottom: 4px;
 }

+ 4 - 0
resources/assets/dcat/sass/dcat-app.scss

@@ -139,3 +139,7 @@ a.disabled {
   opacity: 0.65;
 }
 
+.bg-default {
+  background-color: #d2d6de;
+}
+

+ 10 - 1
resources/dist/dcat/css/dcat-app.css

@@ -2247,7 +2247,7 @@ table.dataTable.complex-headers tfoot td {
   background-color: #f1f1f1;
   vertical-align: middle;
   border-radius: 0.5rem;
-  height: 42px;
+  height: 35px;
   color: #777;
 }
 
@@ -2650,6 +2650,11 @@ table.dataTable.complex-headers tfoot td {
   margin-bottom: 4px;
 }
 
+.label.bg-default {
+  color: #414750;
+  font-weight: 700;
+}
+
 .badge {
   margin-bottom: 4px;
 }
@@ -2873,3 +2878,7 @@ a.disabled {
   opacity: 0.65;
 }
 
+.bg-default {
+  background-color: #d2d6de;
+}
+

+ 1 - 13
src/Console/ExtendCommand.php

@@ -83,7 +83,7 @@ class ExtendCommand extends Command
         $this->package = $this->argument('extension');
 
         InputExtensionName:
-        if (! $this->validateExtensionName($this->package)) {
+        if (! Helper::validateExtensionName($this->package)) {
             $this->package = $this->ask("[$this->package] is not a valid package name, please input a name like (<vendor>/<name>)");
             goto InputExtensionName;
         }
@@ -231,18 +231,6 @@ TREE;
         $this->makeDir($this->dirs);
     }
 
-    /**
-     * Validate extension name.
-     *
-     * @param string $name
-     *
-     * @return int
-     */
-    protected function validateExtensionName($name)
-    {
-        return preg_match('/^[\w\-_]+\/[\w\-_]+$/', $name);
-    }
-
     /**
      * Extension path.
      *

+ 28 - 30
src/Controllers/ExtensionController.php

@@ -7,7 +7,9 @@ use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Layout\Content;
 use Dcat\Admin\Models\Repositories\Extension;
+use Dcat\Admin\Support\Helper;
 use Dcat\Admin\Support\StringOutput;
+use Dcat\Admin\Widgets\Alert;
 use Dcat\Admin\Widgets\Box;
 use Dcat\Admin\Widgets\Table;
 use Dcat\Admin\Widgets\Terminal;
@@ -46,10 +48,10 @@ class ExtensionController extends Controller
             return response()->json(['status' => false, 'messages' => 'Invalid extension hash.']);
         }
 
-        $box = Box::make("<span>admin:import <small>$extension</small></span>")
-            ->content(Terminal::call('admin:import', ['extension' => $extension, '--force' => '1']))
-            ->style('default')
-            ->collapsable()
+        $box = Alert::make()
+            ->title("<span>php artisan admin:import $extension</span>")
+            ->content(Terminal::call('admin:import', ['extension' => $extension, '--force' => '1'])->transparent())
+            ->success()
             ->removable();
 
         return response()->json(['status' => true, 'content' => $box->render()]);
@@ -97,12 +99,22 @@ class ExtensionController extends Controller
             ->emptyString();
 
         $grid->require
+            ->if(function () {
+                return $this->require ? true : false;
+            })
             ->display($view)
-            ->expand($this->getExpandHandler());
+            ->expand($this->getExpandHandler())
+            ->else()
+            ->emptyString();
 
         $grid->require_dev
+            ->if(function () {
+                return $this->require_dev ? true : false;
+            })
             ->display($view)
-            ->expand($this->getExpandHandler('require_dev'));
+            ->expand($this->getExpandHandler('require_dev'))
+            ->else()
+            ->emptyString();
 
         $grid->disablePagination();
         $grid->disableCreateButton();
@@ -137,13 +149,11 @@ class ExtensionController extends Controller
     {
         $form = new Form(new Extension());
 
-        $self = $this;
-
-        $form->text('package_name')->rules(function () use ($self) {
+        $form->text('package_name')->rules(function () {
             return [
                 'required',
-                function ($attribute, $value, $fail) use ($self) {
-                    if (! $self->validateExtensionName($value)) {
+                function ($attribute, $value, $fail) {
+                    if (! Helper::validateExtensionName($value)) {
                         return $fail(
                             "[$value] is not a valid package name, please input a name like \"vendor/name\""
                         );
@@ -158,9 +168,11 @@ class ExtensionController extends Controller
             $package = $form->package_name;
             $namespace = $form->namespace;
 
-            $results = $this->createExtension($package, $namespace);
+            if ($package && $namespace) {
+                $results = $this->createExtension($package, $namespace);
 
-            return $form->success($results);
+                return $form->success($results);
+            }
         });
 
         return $form;
@@ -185,18 +197,6 @@ class ExtensionController extends Controller
         return $output->getContent();
     }
 
-    /**
-     * Validate extension name.
-     *
-     * @param string $name
-     *
-     * @return int
-     */
-    public function validateExtensionName($name)
-    {
-        return preg_match('/^[\w\-_]+\/[\w\-_]+$/', $name);
-    }
-
     /**
      * @param string $key
      *
@@ -213,12 +213,10 @@ class ExtensionController extends Controller
             foreach ((array) $this->{$key} as $k => $v) {
                 $k = "<b class='text-80'>$k</b>";
 
-                $rows[$k] = $v;
+                $rows[$k] = is_array($v) ? "<pre>{$v}</pre>" : $v;
             }
 
-            $table = new Table([], $rows);
-
-            return $table;
+            return new Table($rows);
         };
     }
 
@@ -237,7 +235,7 @@ class ExtensionController extends Controller
             $this->version = $this->version ?: 'unknown';
             $style = in_array($this->version, ['dev-master', 'unknown']) ? 'default' : 'primary';
 
-            return $this->version ? "<span class='label label-$style'>{$this->version}</span>" : '';
+            return $this->version ? "<span class='label bg-$style'>{$this->version}</span>" : '';
         };
 
         $authors = function ($v) {

+ 2 - 2
src/Extension/Grid/ImportButton.php

@@ -35,7 +35,7 @@ $('.import-extension').click(function () {
     var id = $(this).data('id'), req;
     if (req) return;
     
-    Dcat.confirm("{$text}", function () {
+    Dcat.confirm("{$text}", '', function () {
         var url = '$url';
         req = 1;
         
@@ -50,7 +50,7 @@ $('.import-extension').click(function () {
                Dcat.error(response.message);
            }
            
-           $('.content').prepend('<div class="row"><div class="col-md-12">'+response.content+'</div></div>');
+           $('#app').prepend('<div class="row"><div class="col-md-12">'+response.content+'</div></div>');
         });
         
     }, "$confirm", "$cancel");

+ 1 - 1
src/Layout/Assets.php

@@ -14,7 +14,7 @@ class Assets
         '@admin' => 'vendors/dcat-admin',
 
         // Dcat Acmin扩展静态资源路径别名
-        '@extension' => '@admin/extensions',
+        '@extension' => 'vendors/dcat-admin-extensions',
     ];
 
     /**

+ 12 - 0
src/Support/Helper.php

@@ -469,4 +469,16 @@ class Helper
 
         return [$red, $blue, $green];
     }
+
+    /**
+     * Validate extension name.
+     *
+     * @param string $name
+     *
+     * @return int
+     */
+    public static function validateExtensionName($name)
+    {
+        return preg_match('/^[\w\-_]+\/[\w\-_]+$/', $name);
+    }
 }

+ 4 - 4
src/Widgets/Alert.php

@@ -34,7 +34,7 @@ class Alert extends Widget
     /**
      * @var bool
      */
-    protected $showCloseBtn = true;
+    protected $showCloseBtn = false;
 
     /**
      * Alert constructor.
@@ -131,15 +131,15 @@ class Alert extends Widget
     }
 
     /**
-     * Disable close button.
+     * Show close button.
      *
      * @param bool $value
      *
      * @return $this
      */
-    public function disableCloseButton(bool $value = true)
+    public function removable(bool $value = true)
     {
-        $this->showCloseBtn = ! $value;
+        $this->showCloseBtn = $value;
 
         return $this;
     }

+ 10 - 1
src/Widgets/Terminal.php

@@ -16,7 +16,6 @@ class Terminal extends Widget
         $this->content($content);
 
         $this->class('dump');
-        $this->style('background:#333;color:#fff;');
     }
 
     /**
@@ -33,6 +32,16 @@ class Terminal extends Widget
         return static::make($output);
     }
 
+    public function dark()
+    {
+        return $this->style('background:#333;color:#fff;');
+    }
+
+    public function transparent()
+    {
+        return $this->style('background:transparent!important;color:#fff;');
+    }
+
     public function content($content)
     {
         if ($content instanceof StringOutput) {