diff --git a/src/sunstone/public/app/tabs/oneflow-services-tab/form-panels/create.js b/src/sunstone/public/app/tabs/oneflow-services-tab/form-panels/create.js index b30895bc42..c93975fae1 100644 --- a/src/sunstone/public/app/tabs/oneflow-services-tab/form-panels/create.js +++ b/src/sunstone/public/app/tabs/oneflow-services-tab/form-panels/create.js @@ -23,6 +23,8 @@ define(function(require) { var Locale = require('utils/locale'); var Tips = require('utils/tips'); var TemplatesTable = require('tabs/oneflow-templates-tab/datatable'); + var TemplateUtils = require('utils/template-utils'); + /* CONSTANTS */ diff --git a/src/sunstone/public/app/tabs/oneflow-templates-tab/form-panels/create.js b/src/sunstone/public/app/tabs/oneflow-templates-tab/form-panels/create.js index 12bd2b5de2..32be38d488 100644 --- a/src/sunstone/public/app/tabs/oneflow-templates-tab/form-panels/create.js +++ b/src/sunstone/public/app/tabs/oneflow-templates-tab/form-panels/create.js @@ -25,6 +25,7 @@ define(function(require) { var Locale = require('utils/locale'); var Tips = require('utils/tips'); var RoleTab = require('tabs/oneflow-templates-tab/utils/role-tab'); + var TemplateUtils = require('utils/template-utils'); /* TEMPLATES @@ -230,7 +231,7 @@ define(function(require) { json_template['ready_status_gate'] = ready_status_gate; var templateStr = $('textarea#template', $("form#createServiceTemplateFormAdvanced")).val(); - var template_final = TemplateUtils.mergeTemplates(templateJSON, templateStr); + var template_final = TemplateUtils.mergeTemplates(json_template, templateStr); if (this.action == "create") { Sunstone.runAction("ServiceTemplate.create", template_final ); return false; diff --git a/src/sunstone/public/app/utils/labels/utils.js b/src/sunstone/public/app/utils/labels/utils.js index 64ef6c2d25..4f9354abac 100644 --- a/src/sunstone/public/app/utils/labels/utils.js +++ b/src/sunstone/public/app/utils/labels/utils.js @@ -260,10 +260,15 @@ define(function(require) { } function _updateResouceLabels(tabName, resourceId, labelsArray) { - var templateStr = LABELS_ATTR + '="' + labelsArray.join(',') + '"'; var resource = Sunstone.getResource(tabName); var tabTable = Sunstone.getDataTable(tabName); + if (resource == "ServiceTemplate" || resource == "Service") { + var templateStr = '{"' + LABELS_ATTR.toLowerCase() + '":"' + labelsArray.join(',') + '"}'; + } else { + var templateStr = LABELS_ATTR + '="' + labelsArray.join(',') + '"'; + } + OpenNebula[resource].append({ timeout: true, data : { @@ -294,7 +299,11 @@ define(function(require) { } function _labelsStr(elementTemplate) { - return TemplateUtils.htmlEncode( elementTemplate[LABELS_ATTR] ); + if (elementTemplate['BODY'] && elementTemplate["BODY"][LABELS_ATTR.toLowerCase()]) { + return TemplateUtils.htmlEncode(elementTemplate["BODY"][LABELS_ATTR.toLowerCase()]); + } else { + return TemplateUtils.htmlEncode( elementTemplate[LABELS_ATTR] ); + } } function _deserializeLabels(labelsStr) { @@ -415,7 +424,13 @@ define(function(require) { } else { template = element.TEMPLATE; } - return template[LABELS_ATTR]||''; + + if (template["BODY"] && template["BODY"][LABELS_ATTR.toLowerCase()]) { + return template["BODY"][LABELS_ATTR.toLowerCase()]; + } else { + return template[LABELS_ATTR]||''; + } + } else { return ''; }