diff --git a/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js b/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js index 401a49384c..59693bae5e 100644 --- a/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js +++ b/src/sunstone/public/app/tabs/hosts-tab/panels/wilds.js @@ -19,28 +19,28 @@ define(function(require) { DEPENDENCIES */ - require('datatables.net'); - require('datatables.foundation'); - var Locale = require('utils/locale'); - var CanImportWilds = require('../utils/can-import-wilds'); - var OpenNebulaHost = require('opennebula/host'); - var OpenNebulaAction = require('opennebula/action'); - var Notifier = require('utils/notifier'); - var Navigation = require('utils/navigation'); - var VCenterCommon = require('utils/vcenter/vcenter-common'); + require("datatables.net"); + require("datatables.foundation"); + var Locale = require("utils/locale"); + var CanImportWilds = require("../utils/can-import-wilds"); + var OpenNebulaHost = require("opennebula/host"); + var OpenNebulaAction = require("opennebula/action"); + var Notifier = require("utils/notifier"); + var Navigation = require("utils/navigation"); + var VCenterCommon = require("utils/vcenter/vcenter-common"); /* TEMPLATES */ - var TemplateWilds = require('hbs!./wilds/html'); + var TemplateWilds = require("hbs!./wilds/html"); /* CONSTANTS */ - var PANEL_ID = require('./wilds/panelId'); - var RESOURCE = "Host" + var PANEL_ID = require("./wilds/panelId"); + var RESOURCE = "Host"; /* CONSTRUCTOR @@ -72,7 +72,6 @@ define(function(require) { function _setup(context) { var that = this; - // Hide the import button if the Wilds cannot be imported if (!CanImportWilds(this.element)) { $("#import_wilds").hide(); @@ -90,25 +89,22 @@ define(function(require) { if (that.element.TEMPLATE.VM) { var wilds = that.element.TEMPLATE.VM; - if (!$.isArray(wilds)) { // If only 1 VM convert to array wilds = [wilds]; } - $.each(wilds, function(index, elem) { - var name = elem.VM_NAME; - var deploy_id = elem.DEPLOY_ID; - var template = elem.IMPORT_TEMPLATE; - + wilds.map(function(elem,index){ + var name = elem && elem.VM_NAME; + var deploy_id = elem && elem.DEPLOY_ID; + var template = elem && elem.IMPORT_TEMPLATE; if (name && deploy_id && template) { var wilds_list_array = [ [ - '', + "", name, deploy_id ] ]; - that.dataTableWildHosts.fnAddData(wilds_list_array); $(".import_wild_checker.import_" + index, context).data("import_data", elem); } @@ -131,10 +127,10 @@ define(function(require) { }); // Add event listener for importing WILDS - context.off("click", '#import_wilds'); - context.on("click", '#import_wilds', function () { + context.off("click", "#import_wilds"); + context.on("click", "#import_wilds", function () { $("#import_wilds", context).attr("disabled", "disabled").on("click.disable", function(e) { return false; }); - $("#import_wilds", context).html(''); + $("#import_wilds", context).html(""); if (that.element.TEMPLATE.HYPERVISOR === "vcenter"){ var path = "/vcenter/wild"; @@ -143,9 +139,11 @@ define(function(require) { var opts = {}; $(".import_wild_checker:checked", "#datatable_host_wilds").each(function() { var wild_obj = $(this).data("import_data"); - var ref = wild_obj.DEPLOY_ID; - vcenter_refs.push(ref); - opts[ref] = wild_obj; + if(wild_obj && wild_obj.DEPLOY_ID){ + var ref = wild_obj.DEPLOY_ID; + vcenter_refs.push(ref); + opts[ref] = wild_obj; + } }); $.ajax({ @@ -179,13 +177,13 @@ define(function(require) { }); } else { $(".import_wild_checker:checked", "#datatable_host_wilds").each(function() { - var wild_row = $(this).closest('tr'); + var wild_row = $(this).closest("tr"); var aData = that.dataTableWildHosts.fnGetData(wild_row); var dataJSON = { - 'id': that.element.ID, - 'extra_param': { - 'name': aData[1] + "id": that.element.ID, + "extra_param": { + "name": aData[1] } };