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:
parent
40fe976d47
commit
e5edf2129c
@ -11,7 +11,7 @@ define(function(require) {
|
||||
];
|
||||
|
||||
var _panels = [
|
||||
//require('./marketplace-tab/panels/info')
|
||||
require('./marketplace-tab/panels/info')
|
||||
];
|
||||
|
||||
var _formPanels = [
|
||||
|
70
src/sunstone/public/app/tabs/marketplace-tab/panels/info.js
Normal file
70
src/sunstone/public/app/tabs/marketplace-tab/panels/info.js
Normal 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;
|
||||
}
|
||||
});
|
@ -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>
|
@ -0,0 +1,3 @@
|
||||
define(function(require){
|
||||
return 'marketplace_info_tab';
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user