Bladeren bron

Stat tree edit (wip)

Vijayakrishnan 3 jaren geleden
bovenliggende
commit
ec0f44859c

+ 8 - 2
app/Http/Controllers/StatTreeController.php

@@ -98,7 +98,13 @@ class StatTreeController extends Controller
         $statTree = StatTree::where('id', $statTreeID)->first();
         $model = $statTree->model;
         DB::beginTransaction();
+
+        // cleanup junk
         DB::statement("DELETE FROM stat_tree_line WHERE stat_tree_id = :stat_tree_id", ['stat_tree_id' => $statTree->id]);
+        DB::statement("DELETE FROM stat_tree_line_clause WHERE stat_tree_id = :stat_tree_id", ['stat_tree_id' => $statTree->id]);
+        DB::statement("DELETE FROM stat_tree_line_clause_arg WHERE stat_tree_id = :stat_tree_id", ['stat_tree_id' => $statTree->id]);
+        DB::statement("DELETE FROM stat_tree_line_clause_arg_value WHERE stat_tree_id = :stat_tree_id", ['stat_tree_id' => $statTree->id]);
+        DB::statement("DELETE FROM stat_tree_line_report_column WHERE stat_tree_id = :stat_tree_id", ['stat_tree_id' => $statTree->id]);
 
         for($x = 0; $x < count($rows); $x++){
             $row = $rows[$x];
@@ -112,8 +118,6 @@ class StatTreeController extends Controller
             $statTreeLine->tsv_text_for_report_columns = null;
             $statTreeLine->save();
 
-            DB::statement("DELETE FROM stat_tree_line_clause WHERE stat_tree_line_id = :stat_tree_line_id", ['stat_tree_line_id' => $statTreeLine->id]);
-
             $allClauses = [];
             for($i = 0; $i < count($row); $i++){
                 $cell = $row[$i];
@@ -137,6 +141,7 @@ class StatTreeController extends Controller
                 $statTreeLineClause->clause_label = $cell;
                 $statTreeLineClause->position_index = $i;
                 $statTreeLineClause->detail_json = json_encode(['model' => $model]);
+                $statTreeLineClause->stat_tree_id = $statTree->id;
                 $statTreeLineClause->save();
                 $allClauses[] = $cell;
 
@@ -154,6 +159,7 @@ class StatTreeController extends Controller
                         $column->display_key = $parts[0];
                         $positionIndex = DB::select("select max(position_index) from stat_tree_line_report_column where stat_tree_line_id = {$column->stat_tree_line_id}");
                         $column->position_index = is_numeric($positionIndex[0]->max) ? $positionIndex[0]->max + 1 : 1;
+                        $column->stat_tree_id = $statTree->id;
                         $column->save();
                     }
                 }

+ 13 - 18
resources/views/app/stat-tree/stat-trees/sub/edit.blade.php

@@ -34,7 +34,7 @@
                         form.find('input[name="label"]').val(label);
                     });
 
-                let treePayload = '', dirty = false;
+                let treePayload = '';
 
                 function selectedNode() {
                     let selected = $('#stat-tree-view-{{$statTree->id}}>ul').jstree('get_selected', false);
@@ -111,9 +111,10 @@
 
                 }
 
-                function setDirty() {
-                    dirty = true;
-                    $('.if-changed').removeClass('d-none');
+                function autoSaveChanges() {
+                    setTimeout(() => {
+                        saveStatTree();
+                    }, 0);
                 }
 
                 function saveStatTree() {
@@ -123,8 +124,7 @@
                         data: treePayload
                     }, function (response) {
                         if(!hasResponseError(response)) {
-                            toastr.success('Stat tree saved!');
-                            fastReload();
+                            // toastr.success('Stat tree saved!');
                         }
                     }, 'json');
                 }
@@ -188,9 +188,9 @@
                 }
 
                 $('#stat-tree-view-{{$statTree->id}}')
-                    //.on('changed.jstree', setDirty)
-                    .on('move_node.jstree', setDirty)
-                    .on('copy_node.jstree', setDirty)
+                    //.on('changed.jstree', autoSaveChanges)
+                    .on('move_node.jstree', autoSaveChanges)
+                    .on('copy_node.jstree', autoSaveChanges)
                     .on('select_node.jstree', onSelected)
                     .jstree({
                         "core": {
@@ -278,7 +278,7 @@
                         });
                         setSelectedNodeColumns(columns);
                         onSelected();
-                        setDirty();
+                        autoSaveChanges();
                         $(_input).val('').focus();
                         return false;
                     });
@@ -293,11 +293,6 @@
                 $('#refresh-counts')
                     .off('click')
                     .on('click', function() {
-                        if(dirty) {
-                            if(!window.confirm('Changes to the tree will be lost! Continue?')) {
-                                return false;
-                            }
-                        }
                         showMask();
                         $.post("{{ route('practice-management.api.statTree.refreshTreeCountQueries') }}", {
                             statTreeID: "{{ $statTree->id }}"
@@ -321,7 +316,7 @@
                         }
                         setSelectedNodeColumns(columns);
                         onSelected();
-                        setDirty();
+                        autoSaveChanges();
                         return false;
                     });
 
@@ -337,7 +332,7 @@
                         }
                         setSelectedNodeColumns(columns);
                         onSelected();
-                        setDirty();
+                        autoSaveChanges();
                         return false;
                     });
 
@@ -348,7 +343,7 @@
                         columns.splice(+($(this).attr('data-index')), 1);
                         setSelectedNodeColumns(columns);
                         onSelected();
-                        setDirty();
+                        autoSaveChanges();
                         return false;
                     });
 

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

@@ -57,7 +57,7 @@ $statTree = \App\Models\StatTree::where('slug', $slug)->first();
     <div class="d-flex align-items-baseline mb-2">
         <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">
+        <div class="d-none if-changed ml-auto mr-2">
             <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>