mirror of
				https://github.com/mmumshad/ansible-playable.git
				synced 2025-03-09 23:38:54 +00:00 
			
		
		
		
	Initial Commit
This commit is contained in:
		
						commit
						c92f737237
					
				
					 273 changed files with 16964 additions and 0 deletions
				
			
		
							
								
								
									
										68
									
								
								client/components/util/util.service.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								client/components/util/util.service.js
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,68 @@ | |||
| 'use strict'; | ||||
| 
 | ||||
| import angular from 'angular'; | ||||
| 
 | ||||
| /** | ||||
|  * The Util service is for thin, globally reusable, utility functions | ||||
|  */ | ||||
| export function UtilService($window) { | ||||
|   'ngInject'; | ||||
| 
 | ||||
|   var Util = { | ||||
|     /** | ||||
|      * Return a callback or noop function | ||||
|      * | ||||
|      * @param  {Function|*} cb - a 'potential' function | ||||
|      * @return {Function} | ||||
|      */ | ||||
|     safeCb(cb) { | ||||
|       return angular.isFunction(cb) ? cb : angular.noop; | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
|      * Parse a given url with the use of an anchor element | ||||
|      * | ||||
|      * @param  {String} url - the url to parse | ||||
|      * @return {Object}     - the parsed url, anchor element | ||||
|      */ | ||||
|     urlParse(url) { | ||||
|       var a = document.createElement('a'); | ||||
|       a.href = url; | ||||
| 
 | ||||
|       // Special treatment for IE, see http://stackoverflow.com/a/13405933 for details
 | ||||
|       if(a.host === '') { | ||||
|         a.href = a.href; | ||||
|       } | ||||
| 
 | ||||
|       return a; | ||||
|     }, | ||||
| 
 | ||||
|     /** | ||||
|      * Test whether or not a given url is same origin | ||||
|      * | ||||
|      * @param  {String}           url       - url to test | ||||
|      * @param  {String|String[]}  [origins] - additional origins to test against | ||||
|      * @return {Boolean}                    - true if url is same origin | ||||
|      */ | ||||
|     isSameOrigin(url, origins) { | ||||
|       url = Util.urlParse(url); | ||||
|       origins = origins && [].concat(origins) || []; | ||||
|       origins = origins.map(Util.urlParse); | ||||
|       origins.push($window.location); | ||||
|       origins = origins.filter(function(o) { | ||||
|         let hostnameCheck = url.hostname === o.hostname; | ||||
|         let protocolCheck = url.protocol === o.protocol; | ||||
|         // 2nd part of the special treatment for IE fix (see above):
 | ||||
|         // This part is when using well-known ports 80 or 443 with IE,
 | ||||
|         // when $window.location.port==='' instead of the real port number.
 | ||||
|         // Probably the same cause as this IE bug: https://goo.gl/J9hRta
 | ||||
|         let portCheck = url.port === o.port || o.port === '' && (url.port === '80' || url.port | ||||
|           === '443'); | ||||
|         return hostnameCheck && protocolCheck && portCheck; | ||||
|       }); | ||||
|       return origins.length >= 1; | ||||
|     } | ||||
|   }; | ||||
| 
 | ||||
|   return Util; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue