Browse Source

Fix bugs with show warnings and some html escaping

Gaël Métais 10 năm trước cách đây
mục cha
commit
f45480c0b9

+ 6 - 0
front/src/css/timeline.css

@@ -306,3 +306,9 @@
   color: #e74c3c;
   cursor: pointer;
 }
+.warningsFilterOn > div {
+  display: none;
+}
+.warningsFilterOn > div.warning {
+  display: table-row;
+}

+ 10 - 4
front/src/js/directives/offendersDirectives.js

@@ -157,13 +157,14 @@
 
     function getJQueryHTML(node, onASingleLine) {
         var type = node.data.type;
-        var args = node.data.callDetails.arguments;
+        var unescapedArgs = node.data.callDetails.arguments;
+        var args = [];
         var ctxt = node.data.callDetails.context;
         
         // escape HTML in args
         for (var i = 0 ; i < 4 ; i ++) {
-            if (args[i]) {
-                args[i] = escapeHTML(args[i]);
+            if (unescapedArgs[i]) {
+                args[i] = escapeHTML(unescapedArgs[i]);
             }
         }
 
@@ -706,7 +707,7 @@
                 index: '=',
                 node: '='
             },
-            template: '<div id="line_{{index}}"></div>',
+            template: '<div></div>',
             replace: true,
             link: function(scope, element) {
                 
@@ -717,6 +718,11 @@
                 }
 
                 element.append(getProfilerLineHTML(scope.index, scope.node));
+                element[0].id = 'line_' + scope.index;
+
+                if (scope.node.warning || scope.node.error) {
+                    element[0].classList.add('warning');
+                }
 
                 // Bind click on the details icon
                 var detailsIcon = element[0].querySelector('.details div');

+ 8 - 0
front/src/less/timeline.less

@@ -345,4 +345,12 @@
 .execution .icon-warning {
     color: #e74c3c;
     cursor: pointer;
+}
+.warningsFilterOn {
+    > div {
+        display: none;
+        &.warning {
+            display: table-row;
+        }
+    }
 }

+ 1 - 1
front/src/views/timeline.html

@@ -64,7 +64,7 @@
             <label for="warningsFilterOn">Show warnings only</label>
         </div>
     </div>
-    <div class="table">
+    <div class="table" ng-class="{warningsFilterOn: warningsFilterOn}">
         <div class="headers">
             <div><!-- index --></div>
             <div>Type</div>