Browse Source

Stat tree edit - copy paste report columns

Vijayakrishnan 3 years ago
parent
commit
5e965c80f1
1 changed files with 43 additions and 0 deletions
  1. 43 0
      resources/views/app/stat-tree/stat-trees/sub/edit.blade.php

+ 43 - 0
resources/views/app/stat-tree/stat-trees/sub/edit.blade.php

@@ -531,6 +531,7 @@
                             let StatTree = {
                                 el: $('#stat-tree-edit-{{$statTree->id}}'),
                                 changed: false,
+                                copiedColumns: null,
 
                                 setDirty: function(_changed = true) {
                                     this.changed = _changed;
@@ -654,6 +655,41 @@
                                                                     },
                                                                     separator_after: true,
                                                                 },
+                                                                "copy_columns": {
+                                                                    "label": "<span class='text-sm'>Copy Columns</span>",
+                                                                    "_disabled": !(node.data && node.data.columns && node.data.columns.length),
+                                                                    "action": function (obj) {
+                                                                        let selected = StatTree.selectedNode();
+                                                                        if(selected) {
+                                                                            localStorage.stPasteBuffer_Columns = JSON.stringify(selected.data.columns);
+                                                                        }
+                                                                    },
+                                                                },
+                                                                "paste_columns": {
+                                                                    "label": "<span class='text-sm'>Paste Columns</span>",
+                                                                    "_disabled": !localStorage.stPasteBuffer_Columns,
+                                                                    "action": function (obj) {
+                                                                        let selected = StatTree.selectedNode();
+                                                                        if(selected) {
+                                                                            StatTree.setSelectedNodeColumns(JSON.parse(localStorage.stPasteBuffer_Columns));
+                                                                            StatTree.onSelected();
+                                                                            StatTree.setDirty();
+                                                                        }
+                                                                    },
+                                                                },
+                                                                "paste_columns_deep": {
+                                                                    "label": "<span class='text-sm'>Paste Columns Recursively</span>",
+                                                                    "_disabled": !localStorage.stPasteBuffer_Columns,
+                                                                    "action": function (obj) {
+                                                                        let selected = StatTree.selectedNode();
+                                                                        if(selected) {
+                                                                            StatTree.pasteColumnsDeep(selected, localStorage.stPasteBuffer_Columns);
+                                                                            StatTree.onSelected();
+                                                                            StatTree.setDirty();
+                                                                        }
+                                                                    },
+                                                                    separator_after: true,
+                                                                },
                                                                 "remove": {
                                                                     "label": "<span class='text-sm'>Remove</span>",
                                                                     "action": function (obj) {
@@ -683,6 +719,13 @@
                                     }, 'json').then(hideMask);
                                 },
 
+                                pasteColumnsDeep: function(_node, _strColumns) {
+                                    _node.data.columns = JSON.parse(_strColumns);
+                                    for (let i = 0; i < _node.children.length; i++) {
+                                        this.pasteColumnsDeep(this.el.jstree(true).get_node(_node.children[i]), _strColumns);
+                                    }
+                                },
+
                                 dropVisualize: function() {
                                     console.log('redrawn')
                                     function calculateDropPercent(node, parent = null) {