Ver código fonte

quick create

jqh 5 anos atrás
pai
commit
bb9acd380a

+ 2 - 0
resources/assets/dcat/sass/components/_grid.scss

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

+ 4 - 0
resources/assets/dcat/sass/components/_table.scss

@@ -13,6 +13,10 @@ table.dataTable thead tr {
   font-size: .95rem!important;
 }
 
+table.dataTable thead th, table.dataTable thead td, table.dataTable tfoot th, table.dataTable tfoot td {
+  font-size: .95rem!important;
+}
+
 // data-list-view 表格
 table.data-list-view.dataTable tbody tr, table.data-thumb-view.dataTable tbody tr {
   box-shadow: $shadow;

+ 9 - 0
resources/dist/dcat/css/dcat-app.css

@@ -2058,6 +2058,13 @@ table.dataTable thead tr {
   font-size: 0.95rem !important;
 }
 
+table.dataTable thead th,
+table.dataTable thead td,
+table.dataTable tfoot th,
+table.dataTable tfoot td {
+  font-size: 0.95rem !important;
+}
+
 table.data-list-view.dataTable tbody tr,
 table.data-thumb-view.dataTable tbody tr {
   box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);
@@ -2240,6 +2247,8 @@ table.dataTable.complex-headers tfoot td {
   background-color: #f1f1f1;
   vertical-align: middle;
   border-radius: 0.5rem;
+  height: 42px;
+  color: #777;
 }
 
 .dropdown .dropdown-menu {

+ 2 - 2
src/Admin.php

@@ -242,7 +242,7 @@ class Admin
      *
      * @return void
      */
-    protected static function registerHelperRoutes()
+    public static function registerHelperRoutes()
     {
         if (! config('admin.helpers.enable', true) || ! config('app.debug')) {
             return;
@@ -259,7 +259,7 @@ class Admin
             $router->post('helpers/scaffold', 'Dcat\Admin\Controllers\ScaffoldController@store');
             $router->post('helpers/scaffold/table', 'Dcat\Admin\Controllers\ScaffoldController@table');
             $router->get('helpers/icons', 'Dcat\Admin\Controllers\IconController@index');
-            $router->resource('helpers/extensions', 'Dcat\Admin\Controllers\ExtensionController', ['only' => ['index', 'update']]);
+            $router->resource('helpers/extensions', 'Dcat\Admin\Controllers\ExtensionController', ['only' => ['index', 'store', 'update']]);
             $router->post('helpers/extensions/import', 'Dcat\Admin\Controllers\ExtensionController@import');
             $router->post('helpers/extensions/create', 'Dcat\Admin\Controllers\ExtensionController@create');
         });

+ 14 - 2
src/Controllers/ExtensionController.php

@@ -2,7 +2,6 @@
 
 namespace Dcat\Admin\Controllers;
 
-use Dcat\Admin\Extension\Grid\CreateExtensionButton;
 use Dcat\Admin\Extension\Grid\ImportButton;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
@@ -137,7 +136,14 @@ class ExtensionController extends Controller
         $grid->disableViewButton();
 
         $grid->actions(new ImportButton());
-        $grid->tools(new CreateExtensionButton());
+
+        $grid->quickCreate(function (Grid\Tools\QuickCreate $create) {
+            $create->text('package_name')->required();
+            $create->text('namespace')
+                ->attribute('style', 'width:240px')
+                ->required()
+                ->default('Dcat\\\\Admin\\\\Extension\\\\Your name');
+        });
 
         return $grid;
     }
@@ -151,8 +157,14 @@ class ExtensionController extends Controller
     {
         $form = new Form(new Extension());
 
+        $form->text('package_name')->required();
+        $form->text('namespace')->required();
         $form->hidden('enable');
 
+        $form->submitted(function () {
+
+        });
+
         return $form;
     }
 

+ 11 - 8
src/Extension/Grid/CreateExtensionButton.php

@@ -19,7 +19,7 @@ CSS
 
         $label = trans('admin.new');
 
-        return "<button id='create-extension' class='btn btn-outline-success'><i class=\"feather icon-plus\"></i> &nbsp;$label</button>";
+        return "<button id='create-extension' class='btn btn-outline-primary'><i class=\"feather icon-plus\"></i> &nbsp;$label</button>";
     }
 
     protected function setupScript()
@@ -30,15 +30,18 @@ CSS
 
         Admin::script(
             <<<JS
+var content = '<div class="form-group row" style="margin-top:5px;width: 200px"><error></error>'
+    + '<div class="input-group input-group-sm"><span class="input-group-addon"><i class="ti-pencil"></i></span>'
+    + '<input type="text" class="form-control " placeholder="Package Name" name="name" ></div></div>'
+    + '<div class="form-group row"><error></error>'
+    + '<div class="input-group input-group-sm"><span class="input-group-addon"><i class="ti-pencil"></i></span>'
+    + '<input type="text" class="form-control " placeholder="Namespace" name="namespace" value="Dcat\\\\Admin\\\\Extension\\\\Your name" ></div></div>'
+    + '<button id="submit-create" class="btn btn-primary btn-sm waves-effect waves-light">{$submit}</button>';            
+            
 $('#create-extension').popover({
     html: true,
-    title: false,
-    content: function () {
-        return '<div class="form-group " style="margin-top:5px"><error></error><div class="input-group input-group-sm"><span class="input-group-addon"><i class="ti-pencil"></i></span><input type="text" class="form-control " placeholder="Package Name" name="name" ></div></div>'
-        + '<div class="form-group"><error></error><div class="input-group input-group-sm"><span class="input-group-addon"><i class="ti-pencil"></i></span><input type="text" class="form-control " placeholder="Namespace" name="namespace" value="Dcat\\\\Admin\\\\Extension\\\\Your name" ></div></div>'
-        + '<button id="submit-create" class="btn btn-primary btn-sm waves-effect waves-light">{$submit}</button>'
-        
-    }
+    title: '',
+    content: content,
 });
 
 $('#create-extension').on('shown.bs.popover', function () {

+ 9 - 7
src/Grid/Tools/QuickCreate.php

@@ -294,20 +294,22 @@ class QuickCreate implements Renderable
 
     ctr.find('.create-form').submit(function (e) {
         e.preventDefault();
-        if (ctr.attr('working')) {
+        
+        if (ctr.attr('submitting')) {
             return;
         }
         
-        ctr.attr('working', 1);
-        Dcat.NP.start();
+        var btn = $(this).find(':submit').buttonLoading();
+        
+        ctr.attr('submitting', 1);
     
         $.ajax({
             url: '{$url}',
             type: 'POST',
             data: $(this).serialize(),
             success: function(data) {
-                Dcat.NP.done();
-                ctr.attr('working', '');
+                ctr.attr('submitting', '');
+                btn.buttonLoading(false);
                 console.info(data);
                 
                 if (data.status == true) {
@@ -321,8 +323,8 @@ class QuickCreate implements Renderable
                 }
             },
             error:function(xhq){
-                Dcat.NP.done();
-                ctr.attr('working', '');
+                btn.buttonLoading(false);
+                ctr.attr('submitting', '');
                 var json = xhq.responseJSON;
                 if (typeof json === 'object') {
                     if (json.message) {