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

Feature #3748: Extract vms datatable methods to a module

This commit is contained in:
Carlos Martín 2015-06-12 18:35:04 +02:00
parent bdc9cfb688
commit fe21d98a38
2 changed files with 93 additions and 52 deletions

View File

@ -4,11 +4,9 @@ define(function(require) {
*/
var TabDataTable = require('utils/tab-datatable');
var VMsTableUtils = require('./utils/datatable-common');
var SunstoneConfig = require('sunstone-config');
var Locale = require('utils/locale');
var Humanize = require('utils/humanize');
var TemplateUtils = require('utils/template-utils');
var OpenNebulaVM = require('opennebula/vm');
var StateActions = require('./utils/state-actions');
var Sunstone = require('sunstone');
var Vnc = require('utils/vnc');
@ -47,20 +45,7 @@ define(function(require) {
]
}
this.columns = [
Locale.tr("ID") ,
Locale.tr("Owner") ,
Locale.tr("Group"),
Locale.tr("Name"),
Locale.tr("Status"),
Locale.tr("Used CPU"),
Locale.tr("Used Memory"),
Locale.tr("Host"),
Locale.tr("IPs"),
Locale.tr("Start Time"),
Locale.tr(""),
Locale.tr("Hidden Template")
];
this.columns = VMsTableUtils.columns;
this.selectOptions = {
"id_index": 1,
@ -94,10 +79,6 @@ define(function(require) {
*/
function _elementArray(element_json) {
var element = element_json[XML_ROOT];
var state = OpenNebulaVM.stateStr(element.STATE);
this.totalVms++;
switch (state) {
case "INIT":
@ -120,37 +101,7 @@ define(function(require) {
break;
}
if (state == "ACTIVE") {
state = OpenNebulaVM.shortLcmStateStr(element.LCM_STATE);
};
// VNC icon
var vncIcon;
if (OpenNebulaVM.isVNCSupported(element)) {
vncIcon = '<a class="vnc" href="#" vm_id="' + element.ID + '"><i class="fa fa-desktop"/></a>';
} else if (OpenNebulaVM.isSPICESupported(element)) {
vncIcon = '<a class="spice" href="#" vm_id="' + element.ID + '"><i class="fa fa-desktop"/></a>';
} else {
vncIcon = '';
}
return [
'<input class="check_item" type="checkbox" id="' + RESOURCE.toLowerCase() + '_' +
element.ID + '" name="selected_items" value="' +
element.ID + '"/>',
element.ID,
element.UNAME,
element.GNAME,
element.NAME,
state,
element.CPU,
Humanize.size(element.MEMORY),
OpenNebulaVM.hostnameStr(element),
OpenNebulaVM.ipsStr(element),
Humanize.prettyTime(element.STIME),
vncIcon,
TemplateUtils.templateToString(element)
];
return VMsTableUtils.elementArray(element_json);
}
function _preUpdateView() {

View File

@ -0,0 +1,90 @@
define(function(require) {
var OpenNebulaVM = require('opennebula/vm');
var Locale = require('utils/locale');
var Humanize = require('utils/humanize');
var TemplateUtils = require('utils/template-utils');
var RESOURCE = "VM";
var XML_ROOT = "VM";
var _columns = [
Locale.tr("ID") ,
Locale.tr("Owner") ,
Locale.tr("Group"),
Locale.tr("Name"),
Locale.tr("Status"),
Locale.tr("Used CPU"),
Locale.tr("Used Memory"),
Locale.tr("Host"),
Locale.tr("IPs"),
Locale.tr("Start Time"),
Locale.tr(""),
Locale.tr("Hidden Template")
];
return {
'elementArray': _elementArray,
'emptyElementArray': _emptyElementArray,
'columns': _columns
};
function _elementArray(element_json) {
var element = element_json[XML_ROOT];
var state = OpenNebulaVM.stateStr(element.STATE);
// TODO bug: will not work if state is translated
if (state == "ACTIVE") {
state = OpenNebulaVM.shortLcmStateStr(element.LCM_STATE);
}
// VNC icon
var vncIcon;
if (OpenNebulaVM.isVNCSupported(element)) {
vncIcon = '<a class="vnc" href="#" vm_id="' + element.ID + '"><i class="fa fa-desktop"/></a>';
} else if (OpenNebulaVM.isSPICESupported(element)) {
vncIcon = '<a class="spice" href="#" vm_id="' + element.ID + '"><i class="fa fa-desktop"/></a>';
} else {
vncIcon = '';
}
return [
'<input class="check_item" type="checkbox" id="' + RESOURCE.toLowerCase() + '_' +
element.ID + '" name="selected_items" value="' +
element.ID + '"/>',
element.ID,
element.UNAME,
element.GNAME,
element.NAME,
state,
element.CPU,
Humanize.size(element.MEMORY),
OpenNebulaVM.hostnameStr(element),
OpenNebulaVM.ipsStr(element),
Humanize.prettyTime(element.STIME),
vncIcon,
TemplateUtils.templateToString(element)
];
}
function _emptyElementArray(vmId) {
return [
'<input class="check_item" type="checkbox" id="' + RESOURCE.toLowerCase() + '_' +
vmId + '" name="selected_items" value="' +
vmId + '"/>',
vmId,
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
];
}
});