|
@@ -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) {
|