Kaynağa Gözat

Stat trees - view include - show goal badge

Vijayakrishnan 3 yıl önce
ebeveyn
işleme
f547461cbb
1 değiştirilmiş dosya ile 43 ekleme ve 6 silme
  1. 43 6
      resources/views/app/stat-tree/view.blade.php

+ 43 - 6
resources/views/app/stat-tree/view.blade.php

@@ -100,12 +100,12 @@
                     function calculateDropPercent(node, parent = null) {
                         let realNode = StatTree.el.jstree(true).get_node(node.id);
                         if(!realNode.data) return;
-                        if(parent && parent.data.lastRefreshCount !== null) {
-                            if(node.data.lastRefreshCount !== null) {
-                                realNode.data.dropPercent = (((parent.data.lastRefreshCount - node.data.lastRefreshCount) / parent.data.lastRefreshCount) * 100);
+                        if(parent && parent.data.lastRefreshCount !== null && parent.data.lastRefreshCount !== -1) {
+                            if(node.data.lastRefreshCount !== null && node.data.lastRefreshCount !== -1) {
+                                realNode.data.dropPercent = ((node.data.lastRefreshCount / parent.data.lastRefreshCount) * 100);
                                 if(realNode.data.dropPercent) {
                                     let element = StatTree.el.jstree(true).get_node(node.id, true), cssClass = '';
-                                    if(realNode.data.dropPercent > 75) {
+                                    /*if(realNode.data.dropPercent > 75) {
                                         cssClass = 'drop-76-100';
                                     }
                                     else if(realNode.data.dropPercent > 50 && realNode.data.dropPercent <= 75) {
@@ -116,11 +116,48 @@
                                     }
                                     else if(realNode.data.dropPercent > 0 && realNode.data.dropPercent <= 25) {
                                         cssClass = 'drop-0-25';
-                                    }
+                                    }*/
+                                    cssClass = 'drop-0-25';
                                     element.find('>a.jstree-anchor')
                                         .addClass('has-drop-visualization')
                                         .addClass(cssClass)
-                                        .attr('data-drop-percent', (realNode.data.dropPercent.toFixed(1)) + '% ⤵');
+                                        .attr('data-drop-percent', (realNode.data.dropPercent.toFixed(3)) + '% ⤵');
+
+                                    if(!!realNode.data.goalCondition && realNode.data.goalPercent !== -1) {
+                                        let goalLabel = '';
+                                        switch(realNode.data.goalCondition) {
+                                            case '=':
+                                                if(realNode.data.dropPercent !== realNode.data.goalPercent) {
+                                                    goalLabel = 'Should be = ' + realNode.data.goalPercent + '%';
+                                                }
+                                                break;
+                                            case '>':
+                                                if(realNode.data.dropPercent <= realNode.data.goalPercent) {
+                                                    goalLabel = 'Should be > ' + realNode.data.goalPercent + '%';
+                                                }
+                                                break;
+                                            case '<':
+                                                if(realNode.data.dropPercent >= realNode.data.goalPercent) {
+                                                    goalLabel = 'Should be < ' + realNode.data.goalPercent + '%';
+                                                }
+                                                break;
+                                            case '>=':
+                                                if(realNode.data.dropPercent < realNode.data.goalPercent) {
+                                                    goalLabel = 'Should be >= ' + realNode.data.goalPercent + '%';
+                                                }
+                                                break;
+                                            case '<=':
+                                                if(realNode.data.dropPercent > realNode.data.goalPercent) {
+                                                    goalLabel = 'Should be <= ' + realNode.data.goalPercent + '%';
+                                                }
+                                                break;
+                                        }
+                                        if(!!goalLabel) {
+                                            element.find('>a.jstree-anchor')
+                                                .addClass('has-goal-label')
+                                                .attr('data-goal-label', '⚠ ' + goalLabel);
+                                        }
+                                    }
                                 }
                             }
                         }