Browse Source

complex headers

update
jqh 5 years ago
parent
commit
74b280ec01

+ 3 - 3
resources/views/grid/table.blade.php

@@ -32,7 +32,7 @@
     <div class="card-body panel-collapse collapse in table-responsive" {!! $grid->option('show_bordered') ? 'style="padding:3px 10px 10px"' : '' !!}>
         <table class=" table table-hover responsive {{ $grid->option('show_bordered') ? 'table-bordered' : $grid->option('table_header_style') }} " id="{{$tableId}}">
             <thead>
-            @if ($headers = $grid->multipleHeaders())
+            @if ($headers = $grid->getComplexHeaders())
                 <tr>
                     @foreach($headers as $header)
                         {!! $header->render() !!}
@@ -53,7 +53,7 @@
             <tbody>
             @foreach($grid->rows() as $row)
                 <tr {!! $row->rowAttributes() !!}>
-                    @foreach($grid->columnNames() as $name)
+                    @foreach($grid->getColumnNames() as $name)
                         <td {!! $row->columnAttributes($name) !!}>
                             {!! $row->column($name) !!}
                         </td>
@@ -62,7 +62,7 @@
             @endforeach
             @if ($grid->rows()->isEmpty())
                 <tr>
-                    <td colspan="{!! count($grid->columnNames()) !!}">
+                    <td colspan="{!! count($grid->getColumnNames()) !!}">
                         <div style="margin:5px 0 0 10px;"><span class="help-block" style="margin-bottom:0"><i class="fa fa-info-circle"></i>&nbsp;{{ trans('admin.no_data') }}</span></div>
                     </td>
                 </tr>

+ 2 - 2
src/Grid.php

@@ -27,7 +27,7 @@ class Grid
         Concerns\HasActions,
         Concerns\HasPaginator,
         Concerns\HasExporter,
-        Concerns\HasMultipleHeaders,
+        Concerns\HasComplexHeaders,
         Concerns\HasSelector,
         Concerns\HasQuickCreate,
         Concerns\HasQuickSearch,
@@ -342,7 +342,7 @@ class Grid
     /**
      * @return array
      */
-    public function columnNames()
+    public function getColumnNames()
     {
         return $this->columnNames;
     }

+ 2 - 2
src/Grid/FirstRowHeader.php → src/Grid/ComplexHeader.php

@@ -6,7 +6,7 @@ use Dcat\Admin\Grid;
 use Dcat\Admin\Grid\Column\Help;
 use Dcat\Admin\Widgets\Widget;
 
-class FirstRowHeader extends Widget
+class ComplexHeader extends Widget
 {
     /**
      * @var Grid
@@ -40,7 +40,7 @@ class FirstRowHeader extends Widget
     /**
      * @return array
      */
-    public function columnNames()
+    public function getColumnNames()
     {
         return $this->columnNames;
     }

+ 15 - 17
src/Grid/Concerns/HasMultipleHeaders.php → src/Grid/Concerns/HasComplexHeaders.php

@@ -3,16 +3,14 @@
 namespace Dcat\Admin\Grid\Concerns;
 
 use Dcat\Admin\Grid\Column;
-use Dcat\Admin\Grid\FirstRowHeader;
+use Dcat\Admin\Grid\ComplexHeader;
 
-trait HasMultipleHeaders
+trait HasComplexHeaders
 {
     /**
-     * Table multiple headers.
-     *
-     * @var FirstRowHeader[]
+     * @var ComplexHeader[]
      */
-    protected $multipleHeaders = [];
+    protected $complexHeaders = [];
 
     /**
      * Merge cells.
@@ -20,7 +18,7 @@ trait HasMultipleHeaders
      * @param string $label
      * @param array  $columnNames
      *
-     * @return FirstRowHeader
+     * @return ComplexHeader
      */
     public function combine(string $label, array $columnNames)
     {
@@ -30,15 +28,15 @@ trait HasMultipleHeaders
 
         $this->withBorder();
 
-        return $this->multipleHeaders[$label] = new FirstRowHeader($this, $label, $columnNames);
+        return $this->complexHeaders[$label] = new ComplexHeader($this, $label, $columnNames);
     }
 
     /**
-     * @return FirstRowHeader[]
+     * @return ComplexHeader[]
      */
-    public function multipleHeaders()
+    public function getComplexHeaders()
     {
-        return $this->multipleHeaders;
+        return $this->complexHeaders;
     }
 
     /**
@@ -46,19 +44,19 @@ trait HasMultipleHeaders
      */
     protected function sortHeaders()
     {
-        if (! $this->multipleHeaders) {
+        if (! $this->complexHeaders) {
             return;
         }
 
-        $originalHeaders = $this->multipleHeaders;
+        $originalHeaders = $this->complexHeaders;
         $originalColumns = $this->columns;
 
-        $headersColumns = $this->multipleHeaders = $this->columns = [];
+        $headersColumns = $this->complexHeaders = $this->columns = [];
 
         foreach ($originalHeaders as $header) {
             $headersColumns = array_merge(
                 $headersColumns,
-                $tmp = $header->columnNames()
+                $tmp = $header->getColumnNames()
             );
             foreach ($tmp as &$name) {
                 if ($column = $originalColumns->get($name)) {
@@ -90,7 +88,7 @@ trait HasMultipleHeaders
         );
 
         $this->columns = collect($this->columns);
-        $this->multipleHeaders = array_merge(
+        $this->complexHeaders = array_merge(
             $beforeHeaders,
             array_values($originalHeaders),
             $afterHeaders
@@ -103,7 +101,7 @@ trait HasMultipleHeaders
 
         /* @var Column $column */
         foreach ($columns as $name => $column) {
-            $header = new FirstRowHeader($this, $column->getLabel(), [$name]);
+            $header = new ComplexHeader($this, $column->getLabel(), [$name]);
             $prio = $column->getDataPriority();
 
             if (is_int($prio)) {

+ 1 - 1
src/Grid/Tools/CreateButton.php

@@ -39,7 +39,7 @@ class CreateButton implements Renderable
             ->success('Dcat.reload()')
             ->dimensions($width, $height);
 
-        return "<a data-url='$url' class='btn btn-sm btn-success {$class}'><i class='ti-plus'></i><span class='hidden-xs'>&nbsp; $new</span></a>";
+        return "<button data-url='$url' class='btn btn-sm btn-success {$class}'><i class='ti-plus'></i><span class='hidden-xs'>&nbsp; $new</span></button>";
     }
 
     protected function renderCreateButton()

+ 1 - 1
src/Grid/Tools/RefreshButton.php

@@ -16,7 +16,7 @@ class RefreshButton implements Renderable
         $refresh = trans('admin.refresh');
 
         return <<<EOT
-<a data-action="refresh" class="btn btn-sm btn-primary grid-refresh btn-mini" style="margin-right:3px"><i class="ti-reload"></i><span class="hidden-xs">&nbsp; $refresh</span></a>
+<button data-action="refresh" class="btn btn-sm btn-primary grid-refresh btn-mini" style="margin-right:3px"><i class="ti-reload"></i><span class="hidden-xs">&nbsp; $refresh</span></button>
 EOT;
     }
 }