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:
parent
ae570d80cc
commit
6fce9716d1
@ -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
|
||||
};
|
||||
|
105
src/sunstone/public/app/tabs/vms-tab/panels/info.js
Normal file
105
src/sunstone/public/app/tabs/vms-tab/panels/info.js
Normal 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);
|
||||
}
|
||||
});
|
53
src/sunstone/public/app/tabs/vms-tab/panels/info/html.hbs
Normal file
53
src/sunstone/public/app/tabs/vms-tab/panels/info/html.hbs
Normal 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>
|
@ -0,0 +1,3 @@
|
||||
define(function(require){
|
||||
return 'vm_info_tab';
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user