Explorar el Código

Show offenders buttons on the summary page

Gaël Métais hace 10 años
padre
commit
46fb4188f0

+ 3 - 1
.gitignore

@@ -2,4 +2,6 @@ node_modules
 bower_components
 bower_components
 .vagrant
 .vagrant
 results/*
 results/*
-coverage
+coverage
+
+har.json

+ 80 - 42
app/node_views/results.html

@@ -6,9 +6,10 @@
     <link rel="stylesheet" type="text/css" href="/public/styles/main.css">
     <link rel="stylesheet" type="text/css" href="/public/styles/main.css">
     <link rel="stylesheet" type="text/css" href="/public/styles/results.css">
     <link rel="stylesheet" type="text/css" href="/public/styles/results.css">
     <script src="/bower_components/angular/angular.min.js"></script>
     <script src="/bower_components/angular/angular.min.js"></script>
+    <script src="/bower_components/ngModal/dist/ng-modal.min.js"></script>
     <script src="/public/scripts/app.js"></script>
     <script src="/public/scripts/app.js"></script>
     <script src="/public/scripts/resultsCtrl.js"></script>
     <script src="/public/scripts/resultsCtrl.js"></script>
-    <script src="/public/scripts/filters.js"></script>
+    <script src="/public/scripts/showOffenders.js"></script>
 </head>
 </head>
 <body ng-app="YellowLabTools" ng-controller="ResultsCtrl">
 <body ng-app="YellowLabTools" ng-controller="ResultsCtrl">
     <h1>Yellow Lab <span class="icon-lab"></span> Tools</h1>
     <h1>Yellow Lab <span class="icon-lab"></span> Tools</h1>
@@ -45,16 +46,18 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.DOMelementsCount">
                             <li ng-if="phantomasResults.metrics.DOMelementsCount">
-                                DOM elements count: {{phantomasResults.metrics.DOMelementsCount}}
+                                DOM elements count: <b>{{phantomasResults.metrics.DOMelementsCount}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.DOMelementMaxDepth">
                             <li ng-if="phantomasResults.metrics.DOMelementMaxDepth">
-                                DOM max depth: {{phantomasResults.metrics.DOMelementMaxDepth}}
+                                DOM max depth: <b>{{phantomasResults.metrics.DOMelementMaxDepth}}</b>
+                                <show-offenders modal-title="DOM max depth" metric-name="DOMelementMaxDepth" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.iframesCount">
                             <li ng-if="phantomasResults.metrics.iframesCount">
-                                Number of iframes: {{phantomasResults.metrics.iframesCount}}
+                                Number of iframes: <b>{{phantomasResults.metrics.iframesCount}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.DOMidDuplicated">
                             <li ng-if="phantomasResults.metrics.DOMidDuplicated">
-                                IDs duplicated: {{phantomasResults.metrics.DOMidDuplicated}}
+                                IDs duplicated: <b>{{phantomasResults.metrics.DOMidDuplicated}}</b>
+                                <show-offenders modal-title="DOM IDs duplicated" metric-name="DOMidDuplicated" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -64,9 +67,16 @@
                     <div class="notation">DOM read and write</div>
                     <div class="notation">DOM read and write</div>
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
-                            <li ng-if="phantomasResults.metrics.DOMinserts">DOM inserts: {{phantomasResults.metrics.DOMinserts}}</li>
-                            <li ng-if="phantomasResults.metrics.DOMqueries">DOM queries: {{phantomasResults.metrics.DOMqueries}}</li>
-                            <li ng-if="totalJSTime">Time they took: {{totalJSTime}} ms</li>
+                            <li ng-if="phantomasResults.metrics.DOMinserts">
+                                DOM inserts: <b>{{phantomasResults.metrics.DOMinserts}}</b>
+                                <show-offenders modal-title="DOM inserts" metric-name="DOMinserts" phantomas-results="phantomasResults"></show-offenders>
+                            </li>
+                            <li ng-if="phantomasResults.metrics.DOMqueries">
+                                DOM queries: <b>{{phantomasResults.metrics.DOMqueries}}</b>
+                            </li>
+                            <li ng-if="totalJSTime">
+                                Time they took: <b>{{totalJSTime}} ms</b>
+                            </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
                 </div>
                 </div>
@@ -76,7 +86,8 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="duplicatedQueriesCountAll">
                             <li ng-if="duplicatedQueriesCountAll">
-                                Avoidable queries: {{duplicatedQueriesCountAll}}
+                                Avoidable queries: <b>{{duplicatedQueriesCountAll}}</b>
+                                <show-offenders modal-title="Duplicated DOM queries" metric-name="DOMqueriesDuplicated" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -87,7 +98,8 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.eventsBound">
                             <li ng-if="phantomasResults.metrics.eventsBound">
-                                Events bound: {{phantomasResults.metrics.eventsBound}}
+                                Events bound: <b>{{phantomasResults.metrics.eventsBound}}</b>
+                                <show-offenders modal-title="Events bound" metric-name="eventsBound" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -98,19 +110,22 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.jsErrors">
                             <li ng-if="phantomasResults.metrics.jsErrors">
-                                Javascript errors: {{phantomasResults.metrics.jsErrors}}
+                                Javascript errors: <b>{{phantomasResults.metrics.jsErrors}}</b>
+                                <show-offenders modal-title="Javascript errors" metric-name="jsErrors" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.evalCalls">
                             <li ng-if="phantomasResults.metrics.evalCalls">
-                                eval calls: {{phantomasResults.metrics.evalCalls}}
+                                eval calls: <b>{{phantomasResults.metrics.evalCalls}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.documentWriteCalls">
                             <li ng-if="phantomasResults.metrics.documentWriteCalls">
-                                document.write calls: {{phantomasResults.metrics.documentWriteCalls}}
+                                document.write calls: <b>{{phantomasResults.metrics.documentWriteCalls}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.consoleMessages">
                             <li ng-if="phantomasResults.metrics.consoleMessages">
-                                Console messages: {{phantomasResults.metrics.consoleMessages}}
+                                Console messages: <b>{{phantomasResults.metrics.consoleMessages}}</b>
+                                <show-offenders modal-title="Console messages" metric-name="consoleMessages" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.globalVariables">
                             <li ng-if="phantomasResults.metrics.globalVariables">
-                                Global variables: {{phantomasResults.metrics.globalVariables}}
+                                Global variables: <b>{{phantomasResults.metrics.globalVariables}}</b>
+                                <show-offenders modal-title="Global variables" metric-name="globalVariables" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -121,10 +136,10 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.jQueryDifferentVersions == 1">
                             <li ng-if="phantomasResults.metrics.jQueryDifferentVersions == 1">
-                                jQuery version: {{phantomasResults.metrics.jQueryVersion}}
+                                jQuery version: <b>{{phantomasResults.metrics.jQueryVersion}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.jQueryDifferentVersions > 1">
                             <li ng-if="phantomasResults.metrics.jQueryDifferentVersions > 1">
-                                {{phantomasResults.metrics.jQueryDifferentVersions}} versions loaded: 
+                                <b>{{phantomasResults.metrics.jQueryDifferentVersions}}</b> versions loaded: 
                                 <span ng-repeat="version in phantomasResults.offenders.jQueryDifferentVersions">{{version}}<span ng-show="!$last"> & </span></span>
                                 <span ng-repeat="version in phantomasResults.offenders.jQueryDifferentVersions">{{version}}<span ng-show="!$last"> & </span></span>
                             </li>
                             </li>
                         </ul>
                         </ul>
@@ -136,10 +151,11 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.cssRules">
                             <li ng-if="phantomasResults.metrics.cssRules">
-                                Rules count: {{phantomasResults.metrics.cssRules}}
+                                Rules count: <b>{{phantomasResults.metrics.cssRules}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssComplexSelectors">
                             <li ng-if="phantomasResults.metrics.cssComplexSelectors">
-                                Complex selectors: {{phantomasResults.metrics.cssComplexSelectors}}
+                                Complex selectors: <b>{{phantomasResults.metrics.cssComplexSelectors}}</b>
+                                <show-offenders modal-title="Complex selectors" metric-name="cssComplexSelectors" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -150,28 +166,36 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.cssDuplicatedSelectors">
                             <li ng-if="phantomasResults.metrics.cssDuplicatedSelectors">
-                                Duplicated selectors: {{phantomasResults.metrics.cssDuplicatedSelectors}}
+                                Duplicated selectors: <b>{{phantomasResults.metrics.cssDuplicatedSelectors}}</b>
+                                <show-offenders modal-title="Duplicated selectors" metric-name="cssDuplicatedSelectors" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssEmptyRules">
                             <li ng-if="phantomasResults.metrics.cssEmptyRules">
-                                Empty rules: {{phantomasResults.metrics.cssEmptyRules}}
+                                Empty rules: <b>{{phantomasResults.metrics.cssEmptyRules}}</b>
+                                <show-offenders modal-title="Empty rules" metric-name="cssEmptyRules" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssExpressions">
                             <li ng-if="phantomasResults.metrics.cssExpressions">
-                                CSS expressions: {{phantomasResults.metrics.cssExpressions}}
+                                CSS expressions: <b>{{phantomasResults.metrics.cssExpressions}}</b>
+                                <show-offenders modal-title="CSS expressions" metric-name="cssExpressions" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssImportants">
                             <li ng-if="phantomasResults.metrics.cssImportants">
-                                Uses of !important: {{phantomasResults.metrics.cssImportants}}
+                                Uses of !important: <b>{{phantomasResults.metrics.cssImportants}}</b>
+                                <show-offenders modal-title="Uses of !important" metric-name="cssImportants" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssOldIEFixes">
                             <li ng-if="phantomasResults.metrics.cssOldIEFixes">
-                                Old IE fixes: {{phantomasResults.metrics.cssOldIEFixes}}
+                                Old IE fixes: <b>{{phantomasResults.metrics.cssOldIEFixes}}</b>
+                                <show-offenders modal-title="Old IE fixes" metric-name="cssOldIEFixes" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssOldPropertyPrefixes">
                             <li ng-if="phantomasResults.metrics.cssOldPropertyPrefixes">
-                                Old prefixes: {{phantomasResults.metrics.cssOldPropertyPrefixes}}
+                                Old prefixes: <b>{{phantomasResults.metrics.cssOldPropertyPrefixes}}</b>
+                                <show-offenders modal-title="Old prefixes" metric-name="cssOldPropertyPrefixes" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssUniversalSelectors">
                             <li ng-if="phantomasResults.metrics.cssUniversalSelectors">
-                                Universal * selectors: {{phantomasResults.metrics.cssUniversalSelectors}}
+                                Universal selectors: <b>{{phantomasResults.metrics.cssUniversalSelectors}}</b>
+                                <show-offenders modal-title="Universal selectors" metric-name="cssUniversalSelectors" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssRedundantBodySelectors">
                             <li ng-if="phantomasResults.metrics.cssRedundantBodySelectors">
-                                Redundant body selectors: {{phantomasResults.metrics.cssRedundantBodySelectors}}
+                                Redundant body selectors: <b>{{phantomasResults.metrics.cssRedundantBodySelectors}}</b>
+                                <show-offenders modal-title="Redundant body selectors" metric-name="cssRedundantBodySelectors" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -182,31 +206,39 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li>
                             <li>
-                                Total requests: {{phantomasResults.metrics.requests}}
+                                Total requests: <b>{{phantomasResults.metrics.requests}}</b>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.htmlCount">
                             <li ng-if="phantomasResults.metrics.htmlCount">
-                                Documents: {{phantomasResults.metrics.htmlCount}}
+                                Documents: <b>{{phantomasResults.metrics.htmlCount}}</b>
+                                <show-offenders modal-title="HTML count" metric-name="htmlCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.jsCount">
                             <li ng-if="phantomasResults.metrics.jsCount">
-                                Scripts: {{phantomasResults.metrics.jsCount}}
+                                Scripts: <b>{{phantomasResults.metrics.jsCount}}</b>
+                                <show-offenders modal-title="JS count" metric-name="jsCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cssCount">
                             <li ng-if="phantomasResults.metrics.cssCount">
-                                Stylesheets: {{phantomasResults.metrics.cssCount}}
+                                Stylesheets: <b>{{phantomasResults.metrics.cssCount}}</b>
+                                <show-offenders modal-title="CSS count" metric-name="cssCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.imageCount">
                             <li ng-if="phantomasResults.metrics.imageCount">
-                                Images: {{phantomasResults.metrics.imageCount}}
+                                Images: <b>{{phantomasResults.metrics.imageCount}}</b>
+                                <show-offenders modal-title="Image count" metric-name="imageCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.webfontCount">
                             <li ng-if="phantomasResults.metrics.webfontCount">
-                                Fonts: {{phantomasResults.metrics.webfontCount}}
+                                Fonts: <b>{{phantomasResults.metrics.webfontCount}}</b>
+                                <show-offenders modal-title="Webfont count" metric-name="webfontCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.videoCount">
                             <li ng-if="phantomasResults.metrics.videoCount">
-                                Videos: {{phantomasResults.metrics.videoCount}}
+                                Videos: <b>{{phantomasResults.metrics.videoCount}}</b>
+                                <show-offenders modal-title="Video count" metric-name="videoCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.jsonCount">
                             <li ng-if="phantomasResults.metrics.jsonCount">
-                                JSON: {{phantomasResults.metrics.jsonCount}}
+                                JSON: <b>{{phantomasResults.metrics.jsonCount}}</b>
+                                <show-offenders modal-title="JSON count" metric-name="jsonCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.otherCount">
                             <li ng-if="phantomasResults.metrics.otherCount">
-                                Other: {{phantomasResults.metrics.otherCount}}
+                                Other: <b>{{phantomasResults.metrics.otherCount}}</b>
+                                <show-offenders modal-title="Other count" metric-name="otherCount" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>
@@ -217,22 +249,28 @@
                     <div class="criteria">
                     <div class="criteria">
                         <ul>
                         <ul>
                             <li ng-if="phantomasResults.metrics.notFound">
                             <li ng-if="phantomasResults.metrics.notFound">
-                                404 not found: {{phantomasResults.metrics.notFound}}
+                                404 not found: <b>{{phantomasResults.metrics.notFound}}</b>
+                                <show-offenders modal-title="404 not found" metric-name="notFound" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.closedConnections">
                             <li ng-if="phantomasResults.metrics.closedConnections">
-                                Connections closed: {{phantomasResults.metrics.closedConnections}}
+                                Connections closed: <b>{{phantomasResults.metrics.closedConnections}}</b>
+                                <show-offenders modal-title="Connections closed" metric-name="closedConnections" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cachingDisabled">
                             <li ng-if="phantomasResults.metrics.cachingDisabled">
-                                Caching disabled: {{phantomasResults.metrics.cachingDisabled}}
+                                Caching disabled: <b>{{phantomasResults.metrics.cachingDisabled}}</b>
+                                <show-offenders modal-title="Caching disabled" metric-name="cachingDisabled" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cachingNotSpecified">
                             <li ng-if="phantomasResults.metrics.cachingNotSpecified">
-                                Caching not specified: {{phantomasResults.metrics.cachingNotSpecified}}
+                                Caching not specified: <b>{{phantomasResults.metrics.cachingNotSpecified}}</b>
+                                <show-offenders modal-title="Caching not specified" metric-name="cachingNotSpecified" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.cachingTooShort">
                             <li ng-if="phantomasResults.metrics.cachingTooShort">
-                                Caching too short: {{phantomasResults.metrics.cachingTooShort}}
+                                Caching too short: <b>{{phantomasResults.metrics.cachingTooShort}}</b>
+                                <show-offenders modal-title="Caching too short" metric-name="cachingTooShort" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                             <li ng-if="phantomasResults.metrics.domains">
                             <li ng-if="phantomasResults.metrics.domains">
-                                Different domains: {{phantomasResults.metrics.domains}}
+                                Different domains: <b>{{phantomasResults.metrics.domains}}</b>
+                                <show-offenders modal-title="Different domains" metric-name="domains" phantomas-results="phantomasResults"></show-offenders>
                             </li>
                             </li>
                         </ul>
                         </ul>
                     </div>
                     </div>

BIN
app/public/fonts/icons.woff


La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 0 - 0
app/public/fonts/svg-icons/eye.svg


+ 3 - 1
app/public/scripts/app.js

@@ -1,3 +1,5 @@
 angular.module('YellowLabTools', [
 angular.module('YellowLabTools', [
-  'Results'
+  'Results',
+  'ngModal',
+  'ShowOffendersDirective'
 ]);
 ]);

+ 0 - 0
app/public/scripts/filters.js


+ 17 - 0
app/public/scripts/showOffenders.js

@@ -0,0 +1,17 @@
+var app = angular.module("ShowOffendersDirective", []);
+
+app.directive('showOffenders', function() {
+    return {
+        restrict: 'E',
+        transclude: true,
+        scope: {
+            modalTitle: "@",
+            metricName: "@",
+            phantomasResults: "="
+        },
+        controller: function($scope, $element, $attrs, $location) {
+            $scope.dialogShown = false;
+        },
+        template: '&nbsp;<span ng-click="dialogShown = true" class="icon-eye"></span><modal-dialog show="dialogShown" dialog-title="{{modalTitle}}: {{phantomasResults.metrics[metricName]}}" width="70%"><ul><li ng-repeat="offender in phantomasResults.offenders[metricName] track by $index">{{offender}}</li></ul></modal-dialog>'
+    };
+});

+ 15 - 12
app/public/styles/less/icons.less

@@ -1,24 +1,27 @@
+@arrow-left3-font-family: "fontsmith-icons";
+@arrow-left3-value: "\e007";
+@arrow-left3: '"fontsmith-icons"' '"\\e007"';
 @list-font-family: "fontsmith-icons";
 @list-font-family: "fontsmith-icons";
 @list-value: "\e002";
 @list-value: "\e002";
 @list: '"fontsmith-icons"' '"\\e002"';
 @list: '"fontsmith-icons"' '"\\e002"';
-@arrow-left3-font-family: "fontsmith-icons";
-@arrow-left3-value: "\e006";
-@arrow-left3: '"fontsmith-icons"' '"\\e006"';
-@question-font-family: "fontsmith-icons";
-@question-value: "\e001";
-@question: '"fontsmith-icons"' '"\\e001"';
 @warning-font-family: "fontsmith-icons";
 @warning-font-family: "fontsmith-icons";
 @warning-value: "\e000";
 @warning-value: "\e000";
 @warning: '"fontsmith-icons"' '"\\e000"';
 @warning: '"fontsmith-icons"' '"\\e000"';
-@bars-font-family: "fontsmith-icons";
-@bars-value: "\e005";
-@bars: '"fontsmith-icons"' '"\\e005"';
-@drawer3-font-family: "fontsmith-icons";
-@drawer3-value: "\e004";
-@drawer3: '"fontsmith-icons"' '"\\e004"';
+@eye-font-family: "fontsmith-icons";
+@eye-value: "\e004";
+@eye: '"fontsmith-icons"' '"\\e004"';
+@question-font-family: "fontsmith-icons";
+@question-value: "\e001";
+@question: '"fontsmith-icons"' '"\\e001"';
 @lab-font-family: "fontsmith-icons";
 @lab-font-family: "fontsmith-icons";
 @lab-value: "\e003";
 @lab-value: "\e003";
 @lab: '"fontsmith-icons"' '"\\e003"';
 @lab: '"fontsmith-icons"' '"\\e003"';
+@bars-font-family: "fontsmith-icons";
+@bars-value: "\e006";
+@bars: '"fontsmith-icons"' '"\\e006"';
+@drawer3-font-family: "fontsmith-icons";
+@drawer3-value: "\e005";
+@drawer3: '"fontsmith-icons"' '"\\e005"';
 
 
 .icon-font-family(@char) {
 .icon-font-family(@char) {
   font-family: ~`@{char}[0]`;
   font-family: ~`@{char}[0]`;

+ 3 - 0
app/public/styles/less/main.less

@@ -67,4 +67,7 @@ h1 span {
 }
 }
 .icon-metrics {
 .icon-metrics {
     .icon(@drawer3);
     .icon(@drawer3);
+}
+.icon-eye {
+    .icon(@eye);
 }
 }

+ 68 - 1
app/public/styles/less/results.less

@@ -128,6 +128,11 @@ h4 {
     /* Non applicable */
     /* Non applicable */
     background: #CCC;
     background: #CCC;
 }
 }
+.notations .icon-eye {
+    color: #9c4274;
+    cursor: pointer;
+}
+
 
 
 .timeline {
 .timeline {
     margin: 2em 0 5em;
     margin: 2em 0 5em;
@@ -404,4 +409,66 @@ input.textFilter {
 
 
 .table .icon-warning {
 .table .icon-warning {
     color: #e74c3c;
     color: #e74c3c;
-}
+}
+
+
+/**** NgModal popin (have a look inside bower_components) ****/
+.ng-modal {
+    position: fixed;
+    z-index: 9999;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+}
+.ng-modal-overlay {
+    position: absolute;
+    z-index: 9999;
+    top: 0;
+    left: 0;
+    width: 100%;
+    height: 100%;
+    background-color: #000;
+    opacity: 0.5;
+}
+.ng-modal-dialog {
+    z-index: 10000;
+    position: absolute;
+    top: 50%;
+    left: 50%;
+    width: 50%;
+    transform: translate(-50%, -50%);
+    -webkit-transform: translate(-50%, -50%);
+    background-color: #fff;
+    padding: 10px;
+    border: 3px solid #f1c40f;
+    border-radius: 0.5em;
+}
+.ng-modal-dialog-content {
+    overflow-x: hidden;
+    overflow-y: scroll;
+    word-wrap: break-word;
+    /*height: calc(~"100% - 47px");*/
+    max-height: 20em;
+}
+.ng-modal-close {
+    position: absolute;
+    top: 3px;
+    right: 5px;
+    cursor: pointer;
+    font-size: 120%;
+    padding: 5px;
+    display: inline-block;
+}
+.ng-modal-close-x {
+    font-weight: bold;
+    font-family: Arial, sans-serif;
+}
+.ng-modal-title {
+    font-weight: bold;
+    font-size: 1.5em;
+    display: block;
+    margin-bottom: 10px;
+    padding-bottom: 7px;
+    border-bottom: solid 1px #999;
+}

+ 15 - 2
app/public/styles/main.css

@@ -95,7 +95,7 @@ h1 span {
   -webkit-font-smoothing: antialiased;
   -webkit-font-smoothing: antialiased;
 }
 }
 .icon-back:before {
 .icon-back:before {
-  content: "\e006";
+  content: "\e007";
 }
 }
 .icon-summary {
 .icon-summary {
   font-family: "fontsmith-icons";
   font-family: "fontsmith-icons";
@@ -121,7 +121,7 @@ h1 span {
   -webkit-font-smoothing: antialiased;
   -webkit-font-smoothing: antialiased;
 }
 }
 .icon-spaghetti:before {
 .icon-spaghetti:before {
-  content: "\e005";
+  content: "\e006";
 }
 }
 .icon-metrics {
 .icon-metrics {
   font-family: "fontsmith-icons";
   font-family: "fontsmith-icons";
@@ -134,5 +134,18 @@ h1 span {
   -webkit-font-smoothing: antialiased;
   -webkit-font-smoothing: antialiased;
 }
 }
 .icon-metrics:before {
 .icon-metrics:before {
+  content: "\e005";
+}
+.icon-eye {
+  font-family: "fontsmith-icons";
+  speak: none;
+  font-style: normal;
+  font-weight: normal;
+  font-variant: normal;
+  text-transform: none;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+}
+.icon-eye:before {
   content: "\e004";
   content: "\e004";
 }
 }

+ 64 - 0
app/public/styles/results.css

@@ -118,6 +118,10 @@ h4 {
   /* Non applicable */
   /* Non applicable */
   background: #CCC;
   background: #CCC;
 }
 }
+.notations .icon-eye {
+  color: #9c4274;
+  cursor: pointer;
+}
 .timeline {
 .timeline {
   margin: 2em 0 5em;
   margin: 2em 0 5em;
 }
 }
@@ -376,3 +380,63 @@ input.textFilter {
 .table .icon-warning {
 .table .icon-warning {
   color: #e74c3c;
   color: #e74c3c;
 }
 }
+/**** NgModal popin (have a look inside bower_components) ****/
+.ng-modal {
+  position: fixed;
+  z-index: 9999;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+}
+.ng-modal-overlay {
+  position: absolute;
+  z-index: 9999;
+  top: 0;
+  left: 0;
+  width: 100%;
+  height: 100%;
+  background-color: #000;
+  opacity: 0.5;
+}
+.ng-modal-dialog {
+  z-index: 10000;
+  position: absolute;
+  top: 50%;
+  left: 50%;
+  width: 50%;
+  transform: translate(-50%, -50%);
+  -webkit-transform: translate(-50%, -50%);
+  background-color: #fff;
+  padding: 10px;
+  border: 3px solid #f1c40f;
+  border-radius: 0.5em;
+}
+.ng-modal-dialog-content {
+  overflow-x: hidden;
+  overflow-y: scroll;
+  word-wrap: break-word;
+  /*height: calc(~"100% - 47px");*/
+  max-height: 20em;
+}
+.ng-modal-close {
+  position: absolute;
+  top: 3px;
+  right: 5px;
+  cursor: pointer;
+  font-size: 120%;
+  padding: 5px;
+  display: inline-block;
+}
+.ng-modal-close-x {
+  font-weight: bold;
+  font-family: Arial, sans-serif;
+}
+.ng-modal-title {
+  font-weight: bold;
+  font-size: 1.5em;
+  display: block;
+  margin-bottom: 10px;
+  padding-bottom: 7px;
+  border-bottom: solid 1px #999;
+}

+ 2 - 1
bower.json

@@ -1,6 +1,7 @@
 {
 {
   "name": "yellowlabtools",
   "name": "yellowlabtools",
   "dependencies": {
   "dependencies": {
-    "angular": "^1.3.0"
+    "angular": "^1.3.0",
+    "ngModal": "1.2.2"
   }
   }
 }
 }

Algunos archivos no se mostraron porque demasiados archivos cambiaron en este cambio