Browse Source

Stat tree line reports - support for linking to records

Vijayakrishnan 3 years ago
parent
commit
6c8d70e75f

+ 7 - 1
app/Http/Controllers/StatTreeLineController.php

@@ -37,13 +37,18 @@ class StatTreeLineController extends Controller
         $paginator = null;
         $paginator = null;
         $line = $statTreeLine;
         $line = $statTreeLine;
         foreach ($line->reportColumns as $reportColumn) {
         foreach ($line->reportColumns as $reportColumn) {
-            $columns[] = [
+            $column = [
                 "label" => $reportColumn->label,
                 "label" => $reportColumn->label,
                 "column" => $reportColumn->display_key,
                 "column" => $reportColumn->display_key,
                 "type" => $reportColumn->field_type,
                 "type" => $reportColumn->field_type,
                 "as" => "v_{$reportColumn->id}"
                 "as" => "v_{$reportColumn->id}"
             ];
             ];
             $selectColumns[] = "{$reportColumn->display_key} as v_{$reportColumn->id}";
             $selectColumns[] = "{$reportColumn->display_key} as v_{$reportColumn->id}";
+            if($reportColumn->record_route_name) {
+                $column["url"] = "v_{$reportColumn->id}_url";
+                $selectColumns[] = "{$reportColumn->record_route_name} as v_{$reportColumn->id}_url";
+            }
+            $columns[] = $column;
         }
         }
         if(count($line->reportColumns)) {
         if(count($line->reportColumns)) {
             $result = $this->queryStatTreeLineData($line, $selectColumns, $columns, $request);
             $result = $this->queryStatTreeLineData($line, $selectColumns, $columns, $request);
@@ -482,6 +487,7 @@ class StatTreeLineController extends Controller
         $column->label = $request->input('label');
         $column->label = $request->input('label');
         $column->display_key = $request->input('column');
         $column->display_key = $request->input('column');
         $column->field_type = $request->input('fieldType');
         $column->field_type = $request->input('fieldType');
+        $column->record_route_name = $request->input('route');
         $column->save();
         $column->save();
         return $this->pass();
         return $this->pass();
     }
     }

+ 12 - 4
resources/views/app/stat-tree/stat-tree-line-reports/edit.blade.php

@@ -108,7 +108,6 @@
                     <table class="table table-sm table-bordered mt-2">
                     <table class="table table-sm table-bordered mt-2">
                     @foreach($statTreeLine->lineClauses as $lineClause)
                     @foreach($statTreeLine->lineClauses as $lineClause)
                         <tr>
                         <tr>
-                            <td class="width-30px">{{$lineClause->position_index}}</td>
                             <td class="text-nowrap text-info font-weight-bold">{{$lineClause->clause_label}}</td>
                             <td class="text-nowrap text-info font-weight-bold">{{$lineClause->clause_label}}</td>
                             <td class="text-monospace">{{$lineClause->clause->clause_text}}</td>
                             <td class="text-monospace">{{$lineClause->clause->clause_text}}</td>
                             <td class="width-100px">
                             <td class="width-100px">
@@ -169,13 +168,18 @@
                     <table class="table table-sm table-bordered mt-2 table-columns">
                     <table class="table table-sm table-bordered mt-2 table-columns">
                         @foreach($statTreeLine->reportColumns as $reportColumn)
                         @foreach($statTreeLine->reportColumns as $reportColumn)
                             <tr data-uid="{{$reportColumn->uid}}">
                             <tr data-uid="{{$reportColumn->uid}}">
-                                <td class="width-30px">{{$reportColumn->position_index}}</td>
-                                <td class="text-nowrap text-info font-weight-bold">{{$reportColumn->label}}</td>
+                                <td class="width-30px text-right">{{$reportColumn->position_index}}</td>
+                                <td class="text-nowrap text-info font-weight-bold">
+                                    {{$reportColumn->label}}
+                                    @if($reportColumn->record_route_name)
+                                        <i class="fa fa-external-link-alt text-secondary text-sm ml-1" title="{{$reportColumn->record_route_name}}"></i>
+                                    @endif
+                                </td>
                                 <td class="text-monospace">{{$reportColumn->display_key}}</td>
                                 <td class="text-monospace">{{$reportColumn->display_key}}</td>
                                 <td class="text-monospace">{{$reportColumn->field_type}}</td>
                                 <td class="text-monospace">{{$reportColumn->field_type}}</td>
                                 <td class="width-100px text-nowrap">
                                 <td class="width-100px text-nowrap">
                                     <div class="d-flex align-items-baseline">
                                     <div class="d-flex align-items-baseline">
-                                        <div moe relative>
+                                        <div moe wide relative>
                                             <a start show href="#">Edit</a>
                                             <a start show href="#">Edit</a>
                                             <form url="{{ route("practice-management.api.statTreeLineReport.updateReportColumn") }}" right>
                                             <form url="{{ route("practice-management.api.statTreeLineReport.updateReportColumn") }}" right>
                                                 @csrf
                                                 @csrf
@@ -198,6 +202,10 @@
                                                         <option {{$reportColumn->field_type === 'bool' ? 'selected' : ''}} value="bool">Boolean</option>
                                                         <option {{$reportColumn->field_type === 'bool' ? 'selected' : ''}} value="bool">Boolean</option>
                                                     </select>
                                                     </select>
                                                 </div>
                                                 </div>
+                                                <div class="mb-2">
+                                                    <label class="text-secondary text-sm mb-1">URL</label>
+                                                    <input type="text" class="form-control form-control-sm" name="route" value="{{$reportColumn->record_route_name}}" required>
+                                                </div>
                                                 <div class="d-flex align-items-center">
                                                 <div class="d-flex align-items-center">
                                                     <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
                                                     <button class="btn btn-sm btn-primary mr-2" submit>Save</button>
                                                     <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>
                                                     <button class="btn btn-sm btn-default mr-2 border" cancel>Cancel</button>

+ 2 - 0
resources/views/app/stat-tree/stat-tree-line-reports/view-data.blade.php

@@ -160,6 +160,7 @@
                     <tr>
                     <tr>
                         @foreach($columns as $column)
                         @foreach($columns as $column)
                             <td>
                             <td>
+                                @if(@$column['url']) <a native target="_blank" href="{{$row->{$column['url']} }}"> @endif
                                 @if($column['type'] === 'date')
                                 @if($column['type'] === 'date')
                                     {{friendly_date($row->{$column['as']})}}
                                     {{friendly_date($row->{$column['as']})}}
                                 @elseif($column['type'] === 'datetime')
                                 @elseif($column['type'] === 'datetime')
@@ -167,6 +168,7 @@
                                 @else
                                 @else
                                     {{ $row->{$column['as']} }}
                                     {{ $row->{$column['as']} }}
                                 @endif
                                 @endif
+                                @if(@$column['url']) </a> @endif
                             </td>
                             </td>
                         @endforeach
                         @endforeach
                     </tr>
                     </tr>