1
0
mirror of https://github.com/OpenNebula/one.git synced 2025-03-25 02:50:08 +03:00

feature #3748: Add template info panel

This commit is contained in:
Daniel Molina 2015-06-02 18:54:01 +02:00
parent ae570d80cc
commit 6fce9716d1
4 changed files with 165 additions and 4 deletions

View File

@ -12,10 +12,10 @@ define(function(require) {
// require('./vms-tab/dialogs/instantiate')
//];
//var _panels = [
// require('./vms-tab/panels/info'),
var _panels = [
require('./vms-tab/panels/info'),
// require('./vms-tab/panels/template')
//];
];
//var _formPanels = [
// require('./vms-tab/form-panels/create')
@ -37,7 +37,7 @@ define(function(require) {
buttons: Buttons,
actions: Actions,
dataTable: new Table(DATATABLE_ID, {actions: true, info: true}),
//panels: _panels,
panels: _panels,
//formPanels: _formPanels,
//dialogs: _dialogs
};

View File

@ -0,0 +1,105 @@
define(function(require) {
/*
DEPENDENCIES
*/
var Locale = require('utils/locale');
var Humanize = require('utils/humanize');
var RenameTr = require('utils/panel/rename-tr');
var PermissionsTable = require('utils/panel/permissions-table');
var TemplateTable = require('utils/panel/template-table');
var OpenNebulaVm = require('opennebula/vm');
/*
TEMPLATES
*/
var TemplateInfo = require('hbs!./info/html');
/*
CONSTANTS
*/
var TAB_ID = require('../tabId');
var PANEL_ID = require('./info/panelId');
var RESOURCE = "VM"
var XML_ROOT = "VM"
/*
CONSTRUCTOR
*/
function Panel(info) {
this.title = Locale.tr("Info");
this.icon = "fa-info-circle";
this.element = info[XML_ROOT];
return this;
};
Panel.PANEL_ID = PANEL_ID;
Panel.prototype.html = _html;
Panel.prototype.setup = _setup;
return Panel;
/*
FUNCTION DEFINITIONS
*/
function _html() {
var renameTrHTML = RenameTr.html(RESOURCE, this.element.NAME);
var permissionsTableHTML = PermissionsTable.html(TAB_ID, RESOURCE, this.element);
var prettyStartTime = Humanize.prettyTime(this.element.STIME);
var stateStr = OpenNebulaVm.stateStr(this.element.STATE);
var lcmStateStr = OpenNebulaVm.lcmStateStr(this.element.LCM_STATE);
var hostname = "--";
if (stateStr == "ACTIVE" || stateStr == "SUSPENDED" || stateStr == "POWEROFF") {
if (this.element.HISTORY_RECORDS.HISTORY.constructor == Array) {
hostname = this.element.HISTORY_RECORDS.HISTORY[this.element.HISTORY_RECORDS.HISTORY.length - 1].HOSTNAME;
} else {
hostname = this.element.HISTORY_RECORDS.HISTORY.HOSTNAME;
};
};
var deployId = (typeof(this.element.DEPLOY_ID) == "object" ? "-" : this.element.DEPLOY_ID);
var resched = (parseInt(this.element.RESCHED) ? Locale.tr("yes") : Locale.tr("no"))
var templateTableHTML = TemplateTable.html(this.element.USER_TEMPLATE, RESOURCE, Locale.tr("Attributes"));
return TemplateInfo({
'element': this.element,
'renameTrHTML': renameTrHTML,
'stateStr': stateStr,
'lcmStateStr': lcmStateStr,
'hostname': hostname,
'prettyStartTime': prettyStartTime,
'deployId': deployId,
'resched': resched,
'permissionsTableHTML': permissionsTableHTML,
'templateTableHTML': templateTableHTML,
'renameTrHTML': renameTrHTML
});
}
function _setup(context) {
RenameTr.setup(RESOURCE, this.element.ID, context);
PermissionsTable.setup(TAB_ID, RESOURCE, this.element, context);
// Get rid of the unwanted (for show) SCHED_* keys
var that = this;
var strippedTemplate = {};
var unshownValues = {};
$.each(that.element.USER_TEMPLATE, function(key, value) {
if (!key.match(/^SCHED_*/)) {
strippedTemplate[key] = value;
} else {
unshownValues[key] = value;
}
})
var templateTableHTML = TemplateTable.html(
strippedTemplate, RESOURCE, this.element.ID, context, unshownValues);
}
});

View File

@ -0,0 +1,53 @@
<div class="row">
<div class="large-6 columns">
<table class="dataTable extended_table">
<thead>
<tr>
<th colspan="3">{{tr "Information"}}</th>
</tr>
</thead>
<tbody>
<tr>
<td class="key_td">{{tr "ID"}}</td>
<td class="value_td" colspan="2">{{element.ID}}</td>
</tr>
{{{renameTrHTML}}}
<tr>
<td class="key_td">{{tr "State"}}</td>
<td class="value_td">{{stateStr}}</td>
<td></td>
</tr>
<tr>
<td class="key_td">{{tr "LCM State"}}</td>
<td class="value_td">{{lcmStateStr}}</td>
<td></td>
</tr>
<tr>
<td class="key_td">{{tr "Host"}}</td>
<td class="value_td">{{hostname}}</td>
<td></td>
</tr>
<tr>
<td class="key_td">{{tr "Start time"}}</td>
<td class="value_td">{{prettyStartTime}}</td>
<td></td>
</tr>
<tr>
<td class="key_td">{{tr "Deploy ID"}}</td>
<td class="value_td">{{deployId}}</td>
<td></td>
</tr>
<tr>
<td class="key_td">{{tr "Reschedule"}}</td>
<td class="value_td">{{resched}}</td>
<td></td>
</tr>
</tr>
</tbody>
</table>
</div>
<div class="large-6 columns">{{{permissionsTableHTML}}}</div>
</div>
<div class="row">
<div class="large-9 columns">{{{templateTableHTML}}}</div>
</div>

View File

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