diff --git a/front/src/css/index.css b/front/src/css/index.css index fa05717..8bcc1ff 100644 --- a/front/src/css/index.css +++ b/front/src/css/index.css @@ -34,7 +34,8 @@ font-size: 1em; } .settings input[type=text], -.settings input[type=password] { +.settings input[type=password], +.settings textarea { width: 100%; min-width: 4em; } diff --git a/front/src/js/services/apiService.js b/front/src/js/services/apiService.js index 0482748..95aad1e 100644 --- a/front/src/js/services/apiService.js +++ b/front/src/js/services/apiService.js @@ -14,20 +14,22 @@ apiService.factory('API', ['$location', 'Runs', 'Results', function($location, R waitForSelector: settings.waitForSelector, cookie: settings.cookie, authUser: settings.authUser, - authPass: settings.authPass + authPass: settings.authPass, + blockDomain: settings.blockDomain, + allowedDomains: settings.allowedDomains, + noExternals: settings.noExternals }; - if (settings.waitForSelector && settings.waitForSelector !== '') { - runObject.waitForSelector = settings.waitForSelector; - } - - if (settings.cookie && settings.cookie !== '') { - runObject.cookie = settings.cookie; - } - - if (settings.authUser && settings.authUser !== '' && settings.authPass && settings.authPass !== '') { - runObject.authUser = settings.authUser; - runObject.authPass = settings.authPass; + + if (settings.domainsBlackOrWhite === 'black') { + runObject.blockDomain = this.parseDomains(settings.domains); + } else if (settings.domainsBlackOrWhite === 'white') { + var allowedDomains = this.parseDomains(settings.domains); + if (allowedDomains.length > 0) { + runObject.allowDomain = allowedDomains; + } else { + runObject.noExternals = true; + } } Runs.save(runObject, function(data) { @@ -43,6 +45,17 @@ apiService.factory('API', ['$location', 'Runs', 'Results', function($location, R relaunchTest: function(result) { this.launchTest(result.params.url, result.params.options); + }, + + parseDomains: function(textareaContent) { + var lines = textareaContent.split('\n'); + + function removeEmptyLines (line) { + return line.trim() !== ''; + } + + // Remove empty lines + return lines.filter(removeEmptyLines).join(','); } }; diff --git a/front/src/less/index.less b/front/src/less/index.less index 5c665b4..bbc8b4d 100644 --- a/front/src/less/index.less +++ b/front/src/less/index.less @@ -38,7 +38,7 @@ font-size: 1em; } - input[type=text], input[type=password] { + input[type=text], input[type=password], textarea { width: 100%; min-width: 4em; } diff --git a/front/src/views/dashboard.html b/front/src/views/dashboard.html index f5dfa2c..430af91 100644 --- a/front/src/views/dashboard.html +++ b/front/src/views/dashboard.html @@ -1,6 +1,13 @@
+
+ : +
+ {{request}} +
+
+

Global score

diff --git a/front/src/views/index.html b/front/src/views/index.html index ada6eca..a72bb2a 100644 --- a/front/src/views/index.html +++ b/front/src/views/index.html @@ -61,15 +61,22 @@
- + diff --git a/lib/runner.js b/lib/runner.js index 977355c..4c5daf2 100644 --- a/lib/runner.js +++ b/lib/runner.js @@ -66,9 +66,14 @@ var Runner = function(params) { delete data.toolsResults.phantomas.metrics.scrollExecutionTree; delete data.toolsResults.phantomas.offenders.scrollExecutionTree; + + if (data.toolsResults.phantomas.offenders.blockedRequests) { + data.blockedRequests = data.toolsResults.phantomas.offenders.blockedRequests; + } + + // Finished! deferred.resolve(data); - }) .fail(function(err) { diff --git a/lib/server/controllers/apiController.js b/lib/server/controllers/apiController.js index a2addbf..28ecd81 100644 --- a/lib/server/controllers/apiController.js +++ b/lib/server/controllers/apiController.js @@ -39,7 +39,10 @@ var ApiController = function(app) { waitForSelector: req.body.waitForSelector || null, cookie: req.body.cookie || null, authUser: req.body.authUser || null, - authPass: req.body.authPass || null + authPass: req.body.authPass || null, + blockDomain: req.body.blockDomain || null, + allowDomain: req.body.allowDomain || null, + noExternals: req.body.noExternals || false } }; @@ -77,6 +80,9 @@ var ApiController = function(app) { cookie: run.params.cookie, authUser: run.params.authUser, authPass: run.params.authPass, + blockDomain: run.params.blockDomain, + allowDomain: run.params.allowDomain, + noExternals: run.params.noExternals, phantomasEngine: serverSettings.phantomasEngine }; diff --git a/lib/tools/phantomas/phantomasWrapper.js b/lib/tools/phantomas/phantomasWrapper.js index 4fc9e38..6eeb20f 100644 --- a/lib/tools/phantomas/phantomasWrapper.js +++ b/lib/tools/phantomas/phantomasWrapper.js @@ -31,12 +31,14 @@ var PhantomasWrapper = function() { 'cookie': task.options.cookie, 'auth-user': task.options.authUser, 'auth-pass': task.options.authPass, + 'block-domain': task.options.blockDomain, + 'allow-domain': task.options.allowDomain, + 'no-externals': task.options.noExternals, // Mandatory 'reporter': 'json:pretty', 'analyze-css': true, 'skip-modules': [ - 'blockDomains', // not needed 'domHiddenContent', // overriden 'domMutations', // not compatible with webkit 'domQueries', // overriden