diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css index 9d5cc440d6a..23353cecc37 100644 --- a/ui/css/cloudstack3.css +++ b/ui/css/cloudstack3.css @@ -2395,6 +2395,10 @@ div.detail-group.actions td { background-position: -519px -24px; } +#navigation ul li.plugins span.icon { + background: url(../images/sprites.png) no-repeat -140px -291px; +} + /*Browser*/ #browser { width: 794px; @@ -10914,6 +10918,60 @@ div.ui-dialog div.autoscaler div.field-group div.form-container form div.form-it font-size: 11px; } +/*Plugins listing*/ +.plugins-listing { +} + +.plugins-listing ul { + width: 100%; +} + +.plugins-listing ul li { + /*+border-radius:4px;*/ + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; + /*+box-shadow:0px 2px 6px #D3D3D3;*/ + -moz-box-shadow: 0px 2px 6px #D3D3D3; + -webkit-box-shadow: 0px 2px 6px #D3D3D3; + -o-box-shadow: 0px 2px 6px #D3D3D3; + box-shadow: 0px 2px 6px #D3D3D3; + border: 1px solid #A8A3A3; + background: url(../images/bg-gradients.png) 0px -29px; + width: 98%; + height: 66px; + margin: 9px auto 12px; +} + +.plugins-listing ul li .title { + display: block; + float: left; + width: 90%; + font-weight: bold; + /*+text-shadow:0px 1px 1px #FFFFFF;*/ + -moz-text-shadow: 0px 1px 1px #FFFFFF; + -webkit-text-shadow: 0px 1px 1px #FFFFFF; + -o-text-shadow: 0px 1px 1px #FFFFFF; + text-shadow: 0px 1px 1px #FFFFFF; + color: #4A5A6A; + margin: 13px 0 7px; +} + +.plugins-listing ul li .desc { + color: #524E4E; + font-size: 13px; +} + +.plugins-listing ul li .icon { + background: #BDBDBD; + display: block; + width: 40px; + height: 40px; + float: left; + margin: 13px 13px 13px 11px; +} + /*Action icons*/ .action.edit .icon { background-position: 1px -1px; diff --git a/ui/images/sprites.png b/ui/images/sprites.png index a3ad9e4862f..ba4ae454cb1 100644 Binary files a/ui/images/sprites.png and b/ui/images/sprites.png differ diff --git a/ui/index.jsp b/ui/index.jsp index bb22086c86c..b78d6233224 100644 --- a/ui/index.jsp +++ b/ui/index.jsp @@ -1673,7 +1673,11 @@ under the License. + + + + diff --git a/ui/plugins/plugins.js b/ui/plugins/plugins.js new file mode 100644 index 00000000000..6717f8d163a --- /dev/null +++ b/ui/plugins/plugins.js @@ -0,0 +1,6 @@ +(function($, cloudStack) { + cloudStack.plugins = [ + 'testPlugin1', + 'testPlugin2' + ]; +}(jQuery, cloudStack)); diff --git a/ui/scripts/plugins.js b/ui/scripts/plugins.js index 336fd92602a..91de0566a5f 100644 --- a/ui/scripts/plugins.js +++ b/ui/scripts/plugins.js @@ -1,8 +1,6 @@ (function($, cloudStack) { cloudStack.sections.plugins = { title: 'Plugins', - show: function(args) { - return $('
').html('Plugins'); - } + show: cloudStack.uiCustom.plugins } }(jQuery, cloudStack)); diff --git a/ui/scripts/ui-custom/plugins.js b/ui/scripts/ui-custom/plugins.js new file mode 100644 index 00000000000..8c2cffc13a7 --- /dev/null +++ b/ui/scripts/ui-custom/plugins.js @@ -0,0 +1,54 @@ +(function($, cloudStack) { + var elems = { + pluginItem: function(args) { + var id = args.id; + var title = args.title; + var desc = args.desc; + var $pluginItem = $('
  • ').addClass('plugin-item').addClass(id); + var $title = $('').addClass('title').html(title); + var $desc = $('').addClass('desc').html(desc); + var $icon = $('').addClass('icon'); + + $pluginItem.append( + $icon, $title, $desc + ); + + return $pluginItem; + }, + pluginListing: function(args) { + var plugins = args.plugins; + var $plugins = $('
      '); + var $pluginsListing = $('
      ').addClass('plugins-listing'); + + $(plugins).each(function() { + var plugin = this; + + elems.pluginItem({ + id: plugin.id, + title: plugin.title, + desc: plugin.desc + }).appendTo($plugins); + }); + + $pluginsListing.append($plugins); + + return $pluginsListing; + } + }; + + cloudStack.uiCustom.plugins = function() { + var plugins = cloudStack.plugins; + + return elems.pluginListing({ + plugins: $(plugins).map(function(index, plugin) { + plugin = plugin.toString(); + + return { + id: plugin, + title: plugin, + desc: plugin + 'Description' + }; + }) + }); + }; +}(jQuery, cloudStack));