From ad8aadc3e79338d15541b6ab620dea16116e2b1a Mon Sep 17 00:00:00 2001
From: Jorge Miguel Lobo Escalona
<47326048+jloboescalona2@users.noreply.github.com>
Date: Fri, 6 Aug 2021 12:00:37 +0200
Subject: [PATCH] M #~: fix show icon in role datatable (#1398)
---
.../tabs/oneflow-services-tab/panels/roles.js | 117 +++++++++---------
1 file changed, 60 insertions(+), 57 deletions(-)
diff --git a/src/sunstone/public/app/tabs/oneflow-services-tab/panels/roles.js b/src/sunstone/public/app/tabs/oneflow-services-tab/panels/roles.js
index 3b093bfc32..8bfca530d2 100644
--- a/src/sunstone/public/app/tabs/oneflow-services-tab/panels/roles.js
+++ b/src/sunstone/public/app/tabs/oneflow-services-tab/panels/roles.js
@@ -19,33 +19,33 @@ define(function(require) {
DEPENDENCIES
*/
- var Locale = require('utils/locale');
- var Tips = require('utils/tips');
- var OpenNebulaRole = require('opennebula/role');
- var roles_buttons = require('./roles/roles-buttons');
- var roles_vm_buttons = require('./roles/roles-vm-buttons');
- var Sunstone = require('sunstone');
- var DomDataTable = require('utils/dom-datatable');
- var Vnc = require('utils/vnc');
- var Spice = require('utils/spice');
- var Notifier = require('utils/notifier');
+ var Locale = require("utils/locale");
+ var Tips = require("utils/tips");
+ var OpenNebulaRole = require("opennebula/role");
+ var roles_buttons = require("./roles/roles-buttons");
+ var roles_vm_buttons = require("./roles/roles-vm-buttons");
+ var Sunstone = require("sunstone");
+ var DomDataTable = require("utils/dom-datatable");
+ var Vnc = require("utils/vnc");
+ var Spice = require("utils/spice");
+ var Notifier = require("utils/notifier");
var OpenNebulaVM = require("opennebula/vm");
- var VMS_TAB_ID = require('tabs/vms-tab/tabId');
+ var VMS_TAB_ID = require("tabs/vms-tab/tabId");
/*
TEMPLATES
*/
- var TemplateHTML = require('hbs!./roles/html');
- var TemplateRoleInfo = require('hbs!./roles/roleInfo');
+ var TemplateHTML = require("hbs!./roles/html");
+ var TemplateRoleInfo = require("hbs!./roles/roleInfo");
/*
CONSTANTS
*/
- var TAB_ID = require('../tabId');
- var PANEL_ID = require('./roles/panelId');
+ var TAB_ID = require("../tabId");
+ var PANEL_ID = require("./roles/panelId");
var XML_ROOT = "DOCUMENT";
var RESOURCE = "Service";
@@ -93,20 +93,20 @@ define(function(require) {
$.each(roles, function(){
roleList.push(
{
- 'name': this.name,
- 'state': OpenNebulaRole.state(this.state),
- 'cardinality': this.cardinality,
- 'vm_template': this.vm_template,
- 'parents': this.parents ? this.parents.join(', ') : '-'
+ "name": this.name,
+ "state": OpenNebulaRole.state(this.state),
+ "cardinality": this.cardinality,
+ "vm_template": this.vm_template,
+ "parents": this.parents ? this.parents.join(", ") : "-"
});
});
}
return TemplateHTML({
- 'element': this.element,
- 'panelId': this.panelId,
- 'servicePanel': this.servicePanel,
- 'roleList': roleList
+ "element": this.element,
+ "panelId": this.panelId,
+ "servicePanel": this.servicePanel,
+ "roleList": roleList
});
}
@@ -140,12 +140,12 @@ define(function(require) {
var that = this;
if (this.servicerolesDataTable && state["selectedRole"]){
- $('.check_item[id="'+state["selectedRole"]+'"]', this.servicerolesDataTable.dataTable).closest('tr').click();
+ $(".check_item[id=\""+state["selectedRole"]+"\"]", this.servicerolesDataTable.dataTable).closest("tr").click();
}
if (this.serviceroleVMsDataTable && state["selectedVMs"]){
$.each(state["selectedVMs"], function(){
- $('.check_item[id="'+this+'"]', that.serviceroleVMsDataTable.dataTable).closest('tr').click();
+ $(".check_item[id=\""+this+"\"]", that.serviceroleVMsDataTable.dataTable).closest("tr").click();
});
}
}
@@ -160,36 +160,36 @@ define(function(require) {
var roles = this.element.TEMPLATE.BODY.roles;
if (roles && roles.length) {
this.servicerolesDataTable = new DomDataTable(
- 'datatable_roles_'+this.panelId,
+ "datatable_roles_"+this.panelId,
{
actions: true,
info: false,
oneSelection: true,
- customTabContext: $('#role_actions', context),
+ customTabContext: $("#role_actions", context),
customTrListener: function(tableObj, tr){
var aData = tableObj.dataTable.fnGetData(tr);
var role_name = $(aData[0]).val();
var role_index = tableObj.dataTable.fnGetPosition(tr);
- $("#roles_extended_info", context).fadeOut('slow', function() {
- $(this).html(that.roleHTML(context, role_index))
- that.roleSetup($(this), role_index)
- }).fadeIn('slow');
+ $("#roles_extended_info", context).fadeOut("slow", function() {
+ $(this).html(that.roleHTML(context, role_index));
+ that.roleSetup($(this), role_index);
+ }).fadeIn("slow");
// The info listener is triggered instead of
// the row selection. So we click the check input to select
// the row also
- var check = $('.check_item', tr);
+ var check = $(".check_item", tr);
if (!check.is(":checked")) {
- check.trigger('click');
+ check.trigger("click");
}
}
});
this.servicerolesDataTable.initialize();
- Sunstone.insertButtonsInTab(TAB_ID, "service_roles_tab", roles_buttons, $('#role_actions', context));
+ Sunstone.insertButtonsInTab(TAB_ID, "service_roles_tab", roles_buttons, $("#role_actions", context));
}
}
@@ -213,14 +213,17 @@ define(function(require) {
function successCallback (data) {
if (data.VM && data.VM.ID === id) {
- var ready = ""
- if (ready_status_gate) {
- ready = (data.VM.USER_TEMPLATE && data.VM.USER_TEMPLATE.READY == "YES")
- ? ''
- : ''
+ var ready = "";
+ var check = "";
+ if (ready_status_gate && data.VM.USER_TEMPLATE && data.VM.USER_TEMPLATE.READY){
+ ready = (data.VM.USER_TEMPLATE.READY === "YES")
+ ? check
+ : "";
+ }else if(data.VM && data.VM.LCM_STATE && data.VM.LCM_STATE === "3"){
+ ready = check;
}
+
ips = OpenNebulaVM.ipsStr(data.VM, { forceGroup: true });
if (OpenNebulaVM.isVNCSupported(data.VM)) {
@@ -240,25 +243,25 @@ define(function(require) {
roleVms[index] = rowInfoRoleVm(ready, id, name, uname, gname, ips, actions);
}
- promises.push(promiseVmInfo(id, successCallback))
- })
+ promises.push(promiseVmInfo(id, successCallback));
+ });
}
$.when.apply($, promises).then(function() {
if (that.serviceroleVMsDataTable) {
that.serviceroleVMsDataTable.updateView(null, roleVms, true);
}
-
+
that.remoteButtonSetup(context);
Tips.setup(context);
});
return TemplateRoleInfo({
- 'role': role,
- 'servicePanel': this.servicePanel,
- 'panelId': this.panelId,
- 'vmsTableColumns': [
+ "role": role,
+ "servicePanel": this.servicePanel,
+ "panelId": this.panelId,
+ "vmsTableColumns": [
Locale.tr("ID"),
Locale.tr("Name"),
Locale.tr("Owner"),
@@ -266,16 +269,16 @@ define(function(require) {
Locale.tr("IPs"),
"" // Remote actions
],
- 'vms': roleVms
+ "vms": roleVms
});
}
function rowInfoRoleVm(ready, id, name = "", uname = "", gname = "", ips = "", actions = "") {
return [
ready,
- '',
- ''+ id +'',
+ "",
+ ""+ id +"",
name,
uname,
gname,
@@ -290,7 +293,7 @@ define(function(require) {
type: "GET",
dataType: "json",
success: success
- })
+ });
}
function _roleSetup(context, role_index) {
@@ -298,11 +301,11 @@ define(function(require) {
var role = this.element.TEMPLATE.BODY.roles[role_index];
this.serviceroleVMsDataTable = new DomDataTable(
- 'datatable_vms_'+this.panelId+'_'+role.name,
+ "datatable_vms_"+this.panelId+"_"+role.name,
{
actions: true,
info: false,
- customTabContext: $('#role_vms_actions', context),
+ customTabContext: $("#role_vms_actions", context),
dataTableOptions: {
"bAutoWidth": false,
"bSortClasses" : false,
@@ -318,7 +321,7 @@ define(function(require) {
TAB_ID,
"service_roles_tab",
roles_vm_buttons,
- $('div#role_vms_actions', context)
+ $("div#role_vms_actions", context)
);
}
}