You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					94 lines
				
				3.4 KiB
			
		
		
			
		
	
	
					94 lines
				
				3.4 KiB
			| 
											1 year ago
										 | /* Licensed under the Apache License, Version 2.0 (the "License"); | ||
|  |  * you may not use this file except in compliance with the License. | ||
|  |  * You may obtain a copy of the License at | ||
|  |  * | ||
|  |  *      http://www.apache.org/licenses/LICENSE-2.0
 | ||
|  |  * | ||
|  |  * Unless required by applicable law or agreed to in writing, software | ||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
|  |  * See the License for the specific language governing permissions and | ||
|  |  * limitations under the License. | ||
|  |  */ | ||
|  | (function(resources){ | ||
|  | 
 | ||
|  |     if (resources) { | ||
|  | 
 | ||
|  |         // Pause angular bootstrap so we have time to register and override angular services/directives etc
 | ||
|  |         window.name = 'NG_DEFER_BOOTSTRAP!'; | ||
|  | 
 | ||
|  |         function load(res, node, callback, scope) { | ||
|  |             var resource; | ||
|  |             if (res.tag === 'script') { | ||
|  |                 resource = document.createElement('script'); | ||
|  |                 resource.type = res.type || 'text/javascript'; | ||
|  |                 resource.src = res.src; | ||
|  | 
 | ||
|  |                 if (callback) { | ||
|  |                     var done = false; | ||
|  | 
 | ||
|  |                     // Attach handlers for all browsers
 | ||
|  |                     resource.onload = resource.onreadystatechange = function() | ||
|  |                     { | ||
|  |                         if (!done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete")) | ||
|  |                         { | ||
|  |                             done = true; | ||
|  |                             callback.call(scope ? scope : this, res); | ||
|  |                         } | ||
|  |                     }; | ||
|  |                 } | ||
|  |             } | ||
|  |             else if (res.tag === 'link') { | ||
|  |                 resource = document.createElement('link'); | ||
|  |                 resource.rel = res.rel || 'stylesheet'; | ||
|  |                 resource.href = res.href; | ||
|  |             } | ||
|  | 
 | ||
|  |             if (node.nextSibling) { | ||
|  |                 node.parentNode.insertBefore(resource, node.nextSibling); | ||
|  |             } | ||
|  |             else { | ||
|  |                 node.parentNode.appendChild(resource); | ||
|  |             } | ||
|  | 
 | ||
|  |             if (res.tag === 'link' && callback) { | ||
|  |                 callback.call(scope ? scope : this, res); | ||
|  |             } | ||
|  |         } | ||
|  | 
 | ||
|  |         function getResourceLoaderElement() { | ||
|  |             var scripts = document.getElementsByTagName('script'); | ||
|  |             for (var i = 0, il = scripts.length; i < il; i++) { | ||
|  |                 if (scripts[i].src.indexOf('scripts/resource-loader.js') != -1) { | ||
|  |                     return scripts[i]; | ||
|  |                 } | ||
|  |             } | ||
|  |             return null; | ||
|  |         } | ||
|  | 
 | ||
|  |         var res = resources['*']; | ||
|  |         var resourceLoaderElement = getResourceLoaderElement(); | ||
|  |         var appName = resourceLoaderElement.getAttribute('app'); | ||
|  |         if (resources.hasOwnProperty(appName)) { | ||
|  |             res = resources[appName]; | ||
|  |         } | ||
|  | 
 | ||
|  |         var loadedResources = 0; | ||
|  |         for (var i = 0, il = res.length; i < il; i++) { | ||
|  |             load(res[i], resourceLoaderElement, function(){ | ||
|  |                 loadedResources++; | ||
|  |                 if (loadedResources == res.length) { | ||
|  |                     // Let angular resume bootstrap
 | ||
|  |                     var interval = window.setInterval(function(){ | ||
|  |                         if (angular && typeof angular.resumeBootstrap == 'function') { | ||
|  |                             angular.resumeBootstrap(); | ||
|  |                             window.clearInterval(interval); | ||
|  |                         } | ||
|  |                     }, 20); | ||
|  | 
 | ||
|  |                 } | ||
|  |             }); | ||
|  |         } | ||
|  |     } | ||
|  | 
 | ||
|  | })(FLOWABLE.CONFIG.resources); |