Kaynağa Gözat

Stat tree edit (wip)

Vijayakrishnan 3 yıl önce
ebeveyn
işleme
113a668537

+ 4 - 0
app/Models/StatTree.php

@@ -19,4 +19,8 @@ class StatTree extends Model
     public function lines(){
         return $this->hasMany(StatTreeLine::class, 'stat_tree_id', 'id')->orderBy('id', 'ASC');
     }
+
+    public function rootLines(){
+        return $this->hasMany(StatTreeLine::class, 'stat_tree_id', 'id')->whereNull('parent_stat_tree_line_id')->orderBy('id', 'ASC');
+    }
 }

+ 8 - 1
public/css/style.css

@@ -2732,7 +2732,8 @@ table.stag-compact-grid>tbody>tr>td [if-grid-view] {
     margin-left: 10px;
 }
 .stat-tree-view {
-    padding: 0.5rem;
+    min-height: 100px;
+    border: 1px solid lightsteelblue;
 }
 .stat-tree-view .stat-tree-node {
     padding: 0.1rem 0.3rem;
@@ -2774,4 +2775,10 @@ body .vakata-context li>a>i {
 }
 body .vakata-context li>a .vakata-contextmenu-sep {
     display: none;
+}
+body .clauses-view li>i.jstree-icon {
+    display: none;
+}
+body .jstree {
+    margin-left: -.5rem;
 }

+ 1 - 1
resources/views/app/stat-tree/clauses-edit.blade.php

@@ -31,7 +31,7 @@
         </form>
     </div>
 </div>
-<div class="border mb-3 p-2" id="clauses-view-{{$statTree->id}}">
+<div class="mb-3 overflow-auto clauses-view" id="clauses-view-{{$statTree->id}}">
     <ul>
     @foreach($clauses as $clause)
         <li class="jstree-open">

+ 19 - 11
resources/views/app/stat-tree/stat-trees/sub/edit.blade.php

@@ -4,15 +4,17 @@
 
     <div id="statTreeEdit">
         <div id="statTreeView" class="row">
-            @if(1 || count($statTree->lines))
-                <div class="col-4 pr-0">
-                    @include('app.stat-tree.clauses-edit')
+            <div class="col-3 pr-0">
+                @include('app.stat-tree.clauses-edit')
+            </div>
+            <div class="col-5 pr-0 pl-3 border-left tree-column">
+                @include('app.stat-tree.tree-edit-v2', ['slug' => $statTree->slug])
+            </div>
+            <div class="col-4 pl-3 border-left setup-column">
+                <div class="d-flex align-items-baseline mb-2">
+                    <h6 class="font-weight-bold m-0">Report Columns</h6>
                 </div>
-                <div class="col-8">
-                    @include('app.stat-tree.tree-edit-v2', ['slug' => $statTree->slug])
-                </div>
-            @endif
-
+            </div>
         </div>
 
     </div>
@@ -47,6 +49,8 @@
 
                 function generateTextRepresentation(_e, _data) {
 
+                    $('#stat-tree-view-{{$statTree->id}}>ul').jstree('open_all');
+
                     let nodes = [];
                     getNodes($('#stat-tree-view-{{$statTree->id}}>ul').first(), '', nodes);
 
@@ -73,10 +77,14 @@
 
                     treePayload = JSON.stringify(columns);
 
+                }
+
+                function setDirty() {
                     $('.if-changed').removeClass('d-none');
                 }
 
                 function saveStatTree() {
+                    generateTextRepresentation();
                     $.post('{{ route("practice-management.api.statTree.replaceAllLines") }}', {
                         statTreeID: "{{ $statTree->id }}",
                         data: treePayload
@@ -88,9 +96,9 @@
                 }
 
                 $('#stat-tree-view-{{$statTree->id}}')
-                    //.on('changed.jstree', generateTextRepresentation)
-                    .on('move_node.jstree', generateTextRepresentation)
-                    .on('copy_node.jstree', generateTextRepresentation)
+                    //.on('changed.jstree', setDirty)
+                    .on('move_node.jstree', setDirty)
+                    .on('copy_node.jstree', setDirty)
                     .jstree({
                         "core": {
                             "check_callback": true,

+ 5 - 2
resources/views/app/stat-tree/tree-edit-v2.blade.php

@@ -57,11 +57,11 @@ $statTree = \App\Models\StatTree::where('slug', $slug)->first();
         <h6 class="font-weight-bold m-0">{{$statTree->name}}</h6>
         <a href="#" id="refresh-counts" class="ml-3">Refresh Counts</a>
         <div class="d-none if-changed ml-auto">
-            <a href="#" class="btn btn-sm btn-primary text-white" id="btn-save-tree">Save Changes</a>
+            <a href="#" class="btn btn-sm btn-primary text-white" id="btn-save-tree">Save</a>
             <a href="#" class="ml-2 btn btn-sm btn-default border text-dark" onclick="return fastReload()">Reset</a>
         </div>
     </div>
-    <div class="stat-tree-view border mb-3" id="stat-tree-view-{{$statTree->id}}">
+    <div class="stat-tree-view mb-3 overflow-auto mr-2" id="stat-tree-view-{{$statTree->id}}">
         <ul>
         @foreach($statTree->lines as $line)
             @if(!$line->parent_stat_tree_line_id)
@@ -70,6 +70,9 @@ $statTree = \App\Models\StatTree::where('slug', $slug)->first();
         @endforeach
         </ul>
     </div>
+    @if(!$statTree->rootLines || !count($statTree->rootLines))
+        <p class="text-sm text-secondary font-italic">Drag clauses from the left and drop it above to begin.</p>
+    @endif
     <div class="border mb-3 p-2 position-absolute" style="left: -10000px; top: -10000px;">
     @foreach($statTree->lines as $line)
         @if(!$line->parent_stat_tree_line_id)