mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Show custom icon '<pluginName>/icon.png' on side nav bar (if plugin added new section), and on plugin listing.
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| (function($, cloudStack, require) {
 | |
|   var loadCSS = function(path) {
 | |
|     var $link = $('<link>');
 | |
| 
 | |
|     $link.attr({
 | |
|       rel: 'stylesheet',
 | |
|       type: 'text/css',
 | |
|       href: path
 | |
|     });
 | |
| 
 | |
|     $('head').append($link);
 | |
|   };
 | |
| 
 | |
|   var pluginAPI = {
 | |
|     addSection: function(section) {
 | |
|       cloudStack.sections[section.id] = $.extend(section, {
 | |
|         customIcon: 'plugins/' + section.id + '/icon.png'
 | |
|       });
 | |
|     },
 | |
|     extend: function(obj) {
 | |
|       $.extend(true, cloudStack, obj);
 | |
|     }
 | |
|   };
 | |
|   
 | |
|   cloudStack.sections.plugins = {
 | |
|     title: 'label.plugins',
 | |
|     show: cloudStack.uiCustom.plugins
 | |
|   };
 | |
| 
 | |
|   // Load plugins
 | |
|   $(cloudStack.plugins).map(function(index, pluginID) {
 | |
|     var basePath = 'plugins/' + pluginID + '/';
 | |
|     var pluginJS = basePath + pluginID + '.js';
 | |
|     var configJS = basePath + 'config.js';
 | |
|     var pluginCSS = basePath + pluginID + '.css';
 | |
| 
 | |
|     require([pluginJS], function() {
 | |
|       require([configJS]);
 | |
|       loadCSS(pluginCSS);
 | |
| 
 | |
|       // Execute plugin
 | |
|       cloudStack.plugins[pluginID]({
 | |
|         ui: pluginAPI
 | |
|       });
 | |
|     });
 | |
| 
 | |
|     // Load CSS
 | |
|   });
 | |
| }(jQuery, cloudStack, require));
 |