diff --git a/.gitignore b/.gitignore
index 8d078e8..37db380 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,6 @@ node_modules
bower_components
.vagrant
results/*
-coverage
\ No newline at end of file
+coverage
+
+har.json
\ No newline at end of file
diff --git a/app/node_views/results.html b/app/node_views/results.html
index de5816e..9386d79 100644
--- a/app/node_views/results.html
+++ b/app/node_views/results.html
@@ -6,9 +6,10 @@
+
-
+
-
- jQuery version: {{phantomasResults.metrics.jQueryVersion}}
+ jQuery version: {{phantomasResults.metrics.jQueryVersion}}
-
- {{phantomasResults.metrics.jQueryDifferentVersions}} versions loaded:
+ {{phantomasResults.metrics.jQueryDifferentVersions}} versions loaded:
{{version}} &
@@ -136,10 +151,11 @@
-
- Rules count: {{phantomasResults.metrics.cssRules}}
+ Rules count: {{phantomasResults.metrics.cssRules}}
-
- Complex selectors: {{phantomasResults.metrics.cssComplexSelectors}}
+ Complex selectors: {{phantomasResults.metrics.cssComplexSelectors}}
+
@@ -150,28 +166,36 @@
-
- Duplicated selectors: {{phantomasResults.metrics.cssDuplicatedSelectors}}
+ Duplicated selectors: {{phantomasResults.metrics.cssDuplicatedSelectors}}
+
-
- Empty rules: {{phantomasResults.metrics.cssEmptyRules}}
+ Empty rules: {{phantomasResults.metrics.cssEmptyRules}}
+
-
- CSS expressions: {{phantomasResults.metrics.cssExpressions}}
+ CSS expressions: {{phantomasResults.metrics.cssExpressions}}
+
-
- Uses of !important: {{phantomasResults.metrics.cssImportants}}
+ Uses of !important: {{phantomasResults.metrics.cssImportants}}
+
-
- Old IE fixes: {{phantomasResults.metrics.cssOldIEFixes}}
+ Old IE fixes: {{phantomasResults.metrics.cssOldIEFixes}}
+
-
- Old prefixes: {{phantomasResults.metrics.cssOldPropertyPrefixes}}
+ Old prefixes: {{phantomasResults.metrics.cssOldPropertyPrefixes}}
+
-
- Universal * selectors: {{phantomasResults.metrics.cssUniversalSelectors}}
+ Universal selectors: {{phantomasResults.metrics.cssUniversalSelectors}}
+
-
- Redundant body selectors: {{phantomasResults.metrics.cssRedundantBodySelectors}}
+ Redundant body selectors: {{phantomasResults.metrics.cssRedundantBodySelectors}}
+
@@ -182,31 +206,39 @@
-
- Total requests: {{phantomasResults.metrics.requests}}
+ Total requests: {{phantomasResults.metrics.requests}}
-
- Documents: {{phantomasResults.metrics.htmlCount}}
+ Documents: {{phantomasResults.metrics.htmlCount}}
+
-
- Scripts: {{phantomasResults.metrics.jsCount}}
+ Scripts: {{phantomasResults.metrics.jsCount}}
+
-
- Stylesheets: {{phantomasResults.metrics.cssCount}}
+ Stylesheets: {{phantomasResults.metrics.cssCount}}
+
-
- Images: {{phantomasResults.metrics.imageCount}}
+ Images: {{phantomasResults.metrics.imageCount}}
+
-
- Fonts: {{phantomasResults.metrics.webfontCount}}
+ Fonts: {{phantomasResults.metrics.webfontCount}}
+
-
- Videos: {{phantomasResults.metrics.videoCount}}
+ Videos: {{phantomasResults.metrics.videoCount}}
+
-
- JSON: {{phantomasResults.metrics.jsonCount}}
+ JSON: {{phantomasResults.metrics.jsonCount}}
+
-
- Other: {{phantomasResults.metrics.otherCount}}
+ Other: {{phantomasResults.metrics.otherCount}}
+
@@ -217,22 +249,28 @@
-
- 404 not found: {{phantomasResults.metrics.notFound}}
+ 404 not found: {{phantomasResults.metrics.notFound}}
+
-
- Connections closed: {{phantomasResults.metrics.closedConnections}}
+ Connections closed: {{phantomasResults.metrics.closedConnections}}
+
-
- Caching disabled: {{phantomasResults.metrics.cachingDisabled}}
+ Caching disabled: {{phantomasResults.metrics.cachingDisabled}}
+
-
- Caching not specified: {{phantomasResults.metrics.cachingNotSpecified}}
+ Caching not specified: {{phantomasResults.metrics.cachingNotSpecified}}
+
-
- Caching too short: {{phantomasResults.metrics.cachingTooShort}}
+ Caching too short: {{phantomasResults.metrics.cachingTooShort}}
+
-
- Different domains: {{phantomasResults.metrics.domains}}
+ Different domains: {{phantomasResults.metrics.domains}}
+
diff --git a/app/public/fonts/icons.woff b/app/public/fonts/icons.woff
index 31de2c7..51197d5 100644
Binary files a/app/public/fonts/icons.woff and b/app/public/fonts/icons.woff differ
diff --git a/app/public/fonts/svg-icons/eye.svg b/app/public/fonts/svg-icons/eye.svg
new file mode 100755
index 0000000..59ff3c2
--- /dev/null
+++ b/app/public/fonts/svg-icons/eye.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/app/public/scripts/app.js b/app/public/scripts/app.js
index 7742ca8..f8b9dd7 100644
--- a/app/public/scripts/app.js
+++ b/app/public/scripts/app.js
@@ -1,3 +1,5 @@
angular.module('YellowLabTools', [
- 'Results'
+ 'Results',
+ 'ngModal',
+ 'ShowOffendersDirective'
]);
\ No newline at end of file
diff --git a/app/public/scripts/filters.js b/app/public/scripts/filters.js
deleted file mode 100644
index e69de29..0000000
diff --git a/app/public/scripts/showOffenders.js b/app/public/scripts/showOffenders.js
new file mode 100644
index 0000000..900d62f
--- /dev/null
+++ b/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: '
'
+ };
+});
\ No newline at end of file
diff --git a/app/public/styles/less/icons.less b/app/public/styles/less/icons.less
index d1f20b7..3bc4d60 100644
--- a/app/public/styles/less/icons.less
+++ b/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-value: "\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-value: "\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-value: "\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) {
font-family: ~`@{char}[0]`;
diff --git a/app/public/styles/less/main.less b/app/public/styles/less/main.less
index 4d8d27b..571064a 100644
--- a/app/public/styles/less/main.less
+++ b/app/public/styles/less/main.less
@@ -67,4 +67,7 @@ h1 span {
}
.icon-metrics {
.icon(@drawer3);
+}
+.icon-eye {
+ .icon(@eye);
}
\ No newline at end of file
diff --git a/app/public/styles/less/results.less b/app/public/styles/less/results.less
index 490a3bc..3f61da4 100644
--- a/app/public/styles/less/results.less
+++ b/app/public/styles/less/results.less
@@ -128,6 +128,11 @@ h4 {
/* Non applicable */
background: #CCC;
}
+.notations .icon-eye {
+ color: #9c4274;
+ cursor: pointer;
+}
+
.timeline {
margin: 2em 0 5em;
@@ -404,4 +409,66 @@ input.textFilter {
.table .icon-warning {
color: #e74c3c;
-}
\ No newline at end of file
+}
+
+
+/**** 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;
+}
diff --git a/app/public/styles/main.css b/app/public/styles/main.css
index 143b63d..e92c2e7 100644
--- a/app/public/styles/main.css
+++ b/app/public/styles/main.css
@@ -95,7 +95,7 @@ h1 span {
-webkit-font-smoothing: antialiased;
}
.icon-back:before {
- content: "\e006";
+ content: "\e007";
}
.icon-summary {
font-family: "fontsmith-icons";
@@ -121,7 +121,7 @@ h1 span {
-webkit-font-smoothing: antialiased;
}
.icon-spaghetti:before {
- content: "\e005";
+ content: "\e006";
}
.icon-metrics {
font-family: "fontsmith-icons";
@@ -134,5 +134,18 @@ h1 span {
-webkit-font-smoothing: antialiased;
}
.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";
}
diff --git a/app/public/styles/results.css b/app/public/styles/results.css
index bdcbb47..83425d1 100644
--- a/app/public/styles/results.css
+++ b/app/public/styles/results.css
@@ -118,6 +118,10 @@ h4 {
/* Non applicable */
background: #CCC;
}
+.notations .icon-eye {
+ color: #9c4274;
+ cursor: pointer;
+}
.timeline {
margin: 2em 0 5em;
}
@@ -376,3 +380,63 @@ input.textFilter {
.table .icon-warning {
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;
+}
diff --git a/bower.json b/bower.json
index ff498ef..4ef373c 100644
--- a/bower.json
+++ b/bower.json
@@ -1,6 +1,7 @@
{
"name": "yellowlabtools",
"dependencies": {
- "angular": "^1.3.0"
+ "angular": "^1.3.0",
+ "ngModal": "1.2.2"
}
}