Merge pull request #187 from coreos-inc/adblock
Add messaging when archived build logs loads fail.
This commit is contained in:
		
						commit
						7043ddc935
					
				
					 5 changed files with 245 additions and 8 deletions
				
			
		|  | @ -14,7 +14,7 @@ angular.module('quay').directive('buildLogsView', function () { | |||
|       'buildUpdated': '&buildUpdated' | ||||
|     }, | ||||
|     controller: function($scope, $element, $interval, $sanitize, ansi2html, AngularViewArray, | ||||
|                          AngularPollChannel, ApiService, Restangular) { | ||||
|                          AngularPollChannel, ApiService, Restangular, UtilService) { | ||||
| 
 | ||||
|       var result = $element.find('#copyButton').clipboardCopy(); | ||||
|       if (!result) { | ||||
|  | @ -26,6 +26,7 @@ angular.module('quay').directive('buildLogsView', function () { | |||
|       $scope.logStartIndex = 0; | ||||
|       $scope.buildLogsText = ''; | ||||
|       $scope.currentBuild = null; | ||||
|       $scope.loadError = null; | ||||
| 
 | ||||
|       var pollChannel = null; | ||||
| 
 | ||||
|  | @ -112,12 +113,22 @@ angular.module('quay').directive('buildLogsView', function () { | |||
|           ApiService.getRepoBuildLogsAsResource(params, true).withOptions(options).get(function(resp) { | ||||
|             // If we get a logs url back, then we need to make another XHR request to retrieve the
 | ||||
|             // data.
 | ||||
|             if (resp['logs_url']) { | ||||
|             var logsUrl = resp['logs_url']; | ||||
|             if (logsUrl) { | ||||
|               $.ajax({ | ||||
|                 url: resp['logs_url'], | ||||
|                 url: logsUrl, | ||||
|               }).done(function(r) { | ||||
|                 handleLogsData(r, callback); | ||||
|               }).error(function(xhr) { | ||||
|                 if (xhr.status == 0) { | ||||
|                   UtilService.isAdBlockEnabled(function(result) { | ||||
|                     $scope.loadError = result ? 'blocked': 'request-failed'; | ||||
|                   }); | ||||
|                 } else { | ||||
|                   $scope.loadError = 'request-failed'; | ||||
|                 } | ||||
|               }); | ||||
| 
 | ||||
|               return; | ||||
|             } | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,6 +4,29 @@ | |||
| angular.module('quay').factory('UtilService', ['$sanitize', function($sanitize) { | ||||
|   var utilService = {}; | ||||
| 
 | ||||
|   var adBlockEnabled = null; | ||||
| 
 | ||||
|   utilService.isAdBlockEnabled = function(callback) { | ||||
|     if (adBlockEnabled !== null) { | ||||
|       callback(adBlockEnabled); | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     if(typeof blockAdBlock === 'undefined') { | ||||
|       callback(true); | ||||
|       return; | ||||
|     } | ||||
| 
 | ||||
|     var bab = new BlockAdBlock({ | ||||
|       checkOnLoad: false, | ||||
|       resetOnEnd: true | ||||
|     }); | ||||
| 
 | ||||
|     bab.onDetected(function() { adBlockEnabled = true; callback(true); }); | ||||
|     bab.onNotDetected(function() { adBlockEnabled = false; callback(false); }); | ||||
|     bab.check(); | ||||
|   }; | ||||
| 
 | ||||
|   utilService.isEmailAddress = function(val) { | ||||
|     var emailRegex = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/; | ||||
|     return emailRegex.test(val); | ||||
|  |  | |||
		Reference in a new issue