1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-23 22:50:09 +03:00

Feature #3748: Marketplace info panel

This commit is contained in:
Carlos Martín 2015-06-08 11:41:01 +02:00
parent 40fe976d47
commit e5edf2129c
4 changed files with 208 additions and 1 deletions

View File

@ -11,7 +11,7 @@ define(function(require) {
];
var _panels = [
//require('./marketplace-tab/panels/info')
require('./marketplace-tab/panels/info')
];
var _formPanels = [

View File

@ -0,0 +1,70 @@
define(function(require) {
/*
DEPENDENCIES
*/
var TemplateInfo = require('hbs!./info/html');
var Locale = require('utils/locale');
var Humanize = require('utils/humanize');
var TemplateUtils = require('utils/template-utils');
/*
TEMPLATES
*/
var TemplateTable = require('utils/panel/template-table');
/*
CONSTANTS
*/
var PANEL_ID = require('./info/panelId');
var RESOURCE = "Marketplace";
/*
CONSTRUCTOR
*/
function Panel(info) {
this.title = Locale.tr("Info");
this.icon = "fa-info-circle";
this.element = info;
return this;
}
Panel.PANEL_ID = PANEL_ID;
Panel.prototype.html = _html;
Panel.prototype.setup = _setup;
return Panel;
/*
FUNCTION DEFINITIONS
*/
function _html() {
var url = this.element.links.download.href;
url = url.replace(/\/download$/, '');
var short_description = "";
if(this.element.short_description){
short_description = TemplateUtils.htmlDecode(this.element.short_description).replace(/\n/g, "<br/>");
}
var description = TemplateUtils.htmlDecode(this.element.description).replace(/\n/g, "<br/>");
return TemplateInfo({
'element': this.element,
'url': url,
'short_description': short_description,
'description': description
});
}
function _setup(context) {
return false;
}
});

View File

@ -0,0 +1,134 @@
<div class="row">
<div class="large-6 columns">
<table class="dataTable">
<thead>
<tr><th colspan="2">{{tr "Information"}}</th></tr>
</thead>
<tbody>
<tr>
<td class="key_td">{{tr "ID"}}</td>
<td class="value_td">{{element._id.$oid}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Name"}}</td>
<td class="value_td">{{element.name}}</td>
</tr>
<tr>
<td class="key_td">{{tr "URL"}}</td>
<td class="value_td">
<a href="{{url}}" target="_blank">{{tr "link"}}</a>
</td>
</tr>
<tr>
<td class="key_td">{{tr "Publisher"}}</td>
<td class="value_td">{{element.publisher}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Downloads"}}</td>
<td class="value_td">{{element.downloads}}</td>
</tr>
{{#if element.status}}
<tr>
<td class="key_td">{{tr "Status"}}</td>
<td class="value_td">{{element.status}}</td>
</tr>
{{/if}}
{{#if element.tags}}
<tr>
<td class="key_td">{{tr "Tags"}}</td>
<td class="value_td">{{element.tags}}</td>
</tr>
{{/if}}
{{#if element.catalog}}
<tr>
<td class="key_td">{{tr "Catalog"}}</td>
<td class="value_td">{{element.catalog}}</td>
</tr>
{{/if}}
<tr>
<td class="key_td">{{tr "OS"}}</td>
<td class="value_td">{{element.os-id}} {{element.os-release}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Arch"}}</td>
<td class="value_td">{{element.os-arch}}</td>
</tr>
{{#if element.files}}
<tr>
<td class="key_td">{{tr "Size"}}</td>
<td class="value_td">{{humanizeSize "B" element.files.[0].size}}</td>
</tr>
{{/if}}
<tr>
<td class="key_td">{{tr "Hypervisor"}}</td>
<td class="value_td">{{element.hypervisor}}</td>
</tr>
<tr>
<td class="key_td">{{tr "Format"}}</td>
<td class="value_td">{{element.format}}</td>
</tr>
</tbody>
</table>
</div>
<div class="large-6 columns">
{{#if short_description}}
<table class="dataTable">
<thead>
<tr>
<th colspan="2">{{tr "Short Description"}}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="value_td">{{{short_description}}}</td>
</tr>
</tbody>
</table>
{{/if}}
<table class="dataTable">
<thead>
<tr>
<th colspan="2">{{tr "Description"}}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="value_td">{{{description}}}</td>
</tr>
</tbody>
</table>
<table class="dataTable">
<thead>
<tr>
<th colspan="2">{{tr "Images"}}</th>
</tr>
</thead>
<tbody>
{{#each element.files}}
<tr>
<td class="value_td">{{name}}</td>
<td class="value_td">{{humanizeSize "B" size}}</td>
</tr>
{{else}}
<tr>
<td colspan="2" class="value_td">{{tr "No Images defined"}}</td>
</tr>
{{/each}}
</tbody>
</table>
{{#if element.opennebula_template}}
<table class="dataTable">
<thead>
<tr>
<th colspan="2">{{tr "OpenNebula Template"}}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="value_td"><pre>{{element.opennebula_template}}</pre></td>
</tr>
</tbody>
</table>
{{/if}}
</div>
</div>

View File

@ -0,0 +1,3 @@
define(function(require){
return 'marketplace_info_tab';
});