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

B #~: fix update template vcenter contextualization (#1212)

Signed-off-by: Jorge Lobo <jlobo@opennebula.io>
(cherry picked from commit abaa326298e7b6dd1aae5fb60240fe983e57597b)
This commit is contained in:
Jorge Miguel Lobo Escalona 2021-05-12 18:35:33 +02:00 committed by Tino Vazquez
parent c2d3f1b987
commit 70e505cc9e
No known key found for this signature in database
GPG Key ID: 14201E424D02047E
5 changed files with 182 additions and 162 deletions

View File

@ -166,17 +166,15 @@ define(function(require) {
var templateJSON = {};
$.each(this.wizardTabs, function(index, wizardTab) {
$.extend(true, templateJSON, wizardTab.retrieve($("#" + wizardTab.wizardTabId, context)));
var a = templateJSON;
});
if(templateJSON["TOPOLOGY"] && templateJSON["TOPOLOGY"]["DELETE"]){
delete templateJSON["TOPOLOGY"];
}
if(
templateJSON["TOPOLOGY"] &&
(templateJSON["TOPOLOGY"]["HUGEPAGE_SIZE"] === undefined ||
(templateJSON["TOPOLOGY"]["HUGEPAGE_SIZE"] === undefined ||
templateJSON["TOPOLOGY"]["HUGEPAGE_SIZE"] === null ||
templateJSON["TOPOLOGY"]["HUGEPAGE_SIZE"].length<=0)
){
@ -185,7 +183,7 @@ define(function(require) {
if(
templateJSON["TOPOLOGY"] &&
(templateJSON["TOPOLOGY"]["MEMORY_ACCESS"] === undefined ||
(templateJSON["TOPOLOGY"]["MEMORY_ACCESS"] === undefined ||
templateJSON["TOPOLOGY"]["MEMORY_ACCESS"] === null ||
templateJSON["TOPOLOGY"]["MEMORY_ACCESS"].length<=0)
){
@ -233,7 +231,7 @@ define(function(require) {
delete templateJSON["NIC_PCI"];
}
return templateJSON;
}
@ -244,8 +242,8 @@ define(function(require) {
if(
this &&
this.resourceId &&
cachedTemplate &&
this.resourceId &&
cachedTemplate &&
cachedTemplate.data &&
Array.isArray(cachedTemplate.data)
){
@ -253,10 +251,10 @@ define(function(require) {
var currentTemplate = cachedTemplate.data.filter(function(vmtemplate) {
var rtn = false;
if(
vmtemplate &&
vmtemplate.VMTEMPLATE &&
vmtemplate.VMTEMPLATE.TEMPLATE &&
vmtemplate.VMTEMPLATE.ID &&
vmtemplate &&
vmtemplate.VMTEMPLATE &&
vmtemplate.VMTEMPLATE.TEMPLATE &&
vmtemplate.VMTEMPLATE.ID &&
vmtemplate.VMTEMPLATE.ID === id
){
return vmtemplate.VMTEMPLATE.TEMPLATE;
@ -266,7 +264,7 @@ define(function(require) {
if(
currentTemplate &&
currentTemplate[0] &&
currentTemplate[0].VMTEMPLATE &&
currentTemplate[0].VMTEMPLATE &&
currentTemplate[0].VMTEMPLATE.TEMPLATE
){
current = currentTemplate[0].VMTEMPLATE.TEMPLATE;
@ -286,7 +284,7 @@ define(function(require) {
this.create_title,
this.update_title)
) return false;
if (this.action == "create") {
Sunstone.runAction(this.resource+".create", {"vmtemplate": templateJSON});
return false;
@ -329,7 +327,7 @@ define(function(require) {
delete disk.OPENNEBULA_MANAGED;
}
}
disks.push(disk);
});
templateJSON.DISK = disks;

View File

@ -19,48 +19,50 @@ define(function(require) {
DEPENDENCIES
*/
var Config = require('sunstone-config');
var Locale = require('utils/locale');
var Tips = require('utils/tips');
var WizardFields = require('utils/wizard-fields');
var TemplateUtils = require('utils/template-utils');
var CustomTagsTable = require('utils/custom-tags-table');
var FilesTable = require('tabs/files-tab/datatable')
var OpenNebulaHost = require('opennebula/host');
var UserInputs = require('utils/user-inputs');
var UniqueId = require('utils/unique-id');
var OpenNebula = require('opennebula');
var Config = require("sunstone-config");
var Locale = require("utils/locale");
var Tips = require("utils/tips");
var WizardFields = require("utils/wizard-fields");
var TemplateUtils = require("utils/template-utils");
var CustomTagsTable = require("utils/custom-tags-table");
var FilesTable = require("tabs/files-tab/datatable");
var OpenNebulaHost = require("opennebula/host");
var UserInputs = require("utils/user-inputs");
var UniqueId = require("utils/unique-id");
var OpenNebula = require("opennebula");
/*
TEMPLATES
*/
var TemplateHTML = require('hbs!./context/html');
var TemplateHTML = require("hbs!./context/html");
/*
CONSTANTS
*/
var WIZARD_TAB_ID = require('./context/wizardTabId');
var WIZARD_TAB_ID = require("./context/wizardTabId");
/*
CONSTRUCTOR
*/
function WizardTab(opts) {
if (!Config.isTemplateCreationTabEnabled(opts.tabId, 'context')) {
if (!Config.isTemplateCreationTabEnabled(opts.tabId, "context")) {
throw "Wizard Tab not enabled";
}
this.wizardTabId = WIZARD_TAB_ID + UniqueId.id();
this.icon = 'fa-folder';
this.icon = "fa-folder";
this.title = Locale.tr("Context");
this.classes = "hypervisor";
this.templateVcenterCustomizationSpec = "";
this.customizations = [];
this.contextFilesTable = new FilesTable('ContextTable' + UniqueId.id(), {
'select': true,
'selectOptions': {
'multiple_choice': true,
this.contextFilesTable = new FilesTable("ContextTable" + UniqueId.id(), {
"select": true,
"selectOptions": {
"multiple_choice": true,
"filter_fn": function(file) { return file.TYPE == 5; } // CONTEXT
}});
}
@ -82,10 +84,10 @@ define(function(require) {
function _html() {
CustomTagsTable.reset();
return TemplateHTML({
'uniqueId': UniqueId.id(),
'userInputsHTML': UserInputs.html(),
'customTagsTableHTML': CustomTagsTable.html(),
'contextFilesTableHTML': this.contextFilesTable.dataTableHTML
"uniqueId": UniqueId.id(),
"userInputsHTML": UserInputs.html(),
"customTagsTableHTML": CustomTagsTable.html(),
"contextFilesTableHTML": this.contextFilesTable.dataTableHTML
});
}
@ -114,41 +116,42 @@ define(function(require) {
var option = $("option:selected", this);
if (option.attr("custom") == "true"){
$('input.vcenter_customizations_value', context).show();
$("input.vcenter_customizations_value", context).show();
} else {
$('input.vcenter_customizations_value', context).hide();
$("input.vcenter_customizations_value", context).hide();
}
$('input.vcenter_customizations_value', context).val( $(this).val() );
$("input.vcenter_customizations_value", context).val( $(this).val() );
});
$('input.vcenter_customizations_value', context).hide();
$("input.vcenter_customizations_value", context).hide();
OpenNebulaHost.vcenterCustomizations({
data : {},
timeout: true,
success: function (request, customizations){
_fillCustomizations(context, customizations);
that.customizations = customizations;
_fillCustomizations(context, that);
},
error: function(request, error_json){
console.error("There was an error requesting the vCenter customizations: "+
error_json.error.message);
_fillCustomizations(context, []);
that.customizations = [];
_fillCustomizations(context, that);
}
});
context.on("change", "input.vcenter_customizations_value", function(){
var opt =
$('option'+
'[value="'+$('input.vcenter_customizations_value', context).val()+'"]', context);
$("option"+
"[value=\""+$("input.vcenter_customizations_value", context).val()+"\"]", context);
if (opt.size() == 0){
opt = $('option[custom="true"]', context);
$('input.vcenter_customizations_value', context).show();
opt = $("option[custom=\"true\"]", context);
$("input.vcenter_customizations_value", context).show();
}
opt.attr('selected', 'selected');
opt.attr("selected", "selected");
});
UserInputs.setup(context);
@ -156,41 +159,49 @@ define(function(require) {
CustomTagsTable.setup(context, true);
var selectOptions = {
'selectOptions': {
'select_callback': function(aData, options) {
that.generateContextFiles(context)
"selectOptions": {
"select_callback": function(aData, options) {
that.generateContextFiles(context);
},
'unselect_callback': function(aData, options) {
that.generateContextFiles(context)
"unselect_callback": function(aData, options) {
that.generateContextFiles(context);
}
}
}
};
that.contextFilesTable.initialize(selectOptions);
that.contextFilesTable.refreshResourceTableSelect();
}
function _fillCustomizations(context, customizations) {
function _fillCustomizations(context, that) {
var customizations = that.customizations;
var selectedCustom = true;
var html = "<select>";
html += '<option value="">'+Locale.tr("None")+'</option>';
$.each(customizations, function(i,customization){
html += '<option value="'+customization+'">'+customization+'</option>';
});
html += '<option value="" custom="true">'+Locale.tr("Set manually")+'</option>';
html += '</select>';
html += "<option value=\"\">"+Locale.tr("None")+"</option>";
if(Array.isArray(customizations)){
customizations.forEach(customization => {
var selected = "";
if(that.templateVcenterCustomizationSpec && customization.toLowerCase() === that.templateVcenterCustomizationSpec.toLowerCase()){
selectedCustom = false;
selected = "selected";
}
html += "<option value=\""+customization+"\" "+selected+">"+customization+"</option>";
});
}
var selected = selectedCustom && that.templateVcenterCustomizationSpec? "selected" : "";
html += "<option custom=\"true\" value=\""+(that.templateVcenterCustomizationSpec || "")+"\" "+selected+">"+Locale.tr("Set manually")+"</option>";
html += "</select>";
$(".vcenter_customizations", context).html(html);
if(selected){
$(".vcenter_customizations_value").val(that.templateVcenterCustomizationSpec || "").show();
}
}
function _retrieve(context) {
var templateJSON = {};
if($("input[name='context_type']:checked", context).val() == "context_type_vcenter"){
var customization = WizardFields.retrieveInput($('input.vcenter_customizations_value', context));
var customization = WizardFields.retrieveInput($("input.vcenter_customizations_value", context));
if (customization) {
templateJSON = {
@ -206,7 +217,7 @@ define(function(require) {
if (public_key) {
contextJSON["SSH_PUBLIC_KEY"] = public_key;
} else {
contextJSON["SSH_PUBLIC_KEY"] = '$USER[SSH_PUBLIC_KEY]';
contextJSON["SSH_PUBLIC_KEY"] = "$USER[SSH_PUBLIC_KEY]";
}
}
@ -240,9 +251,9 @@ define(function(require) {
}
}
if (!$.isEmptyObject(contextJSON)) { templateJSON['CONTEXT'] = contextJSON; };
if (!$.isEmptyObject(userInputsJSON)) { templateJSON['USER_INPUTS'] = userInputsJSON; };
templateJSON['INPUTS_ORDER'] = userInputsOrder;
if (!$.isEmptyObject(contextJSON)) { templateJSON["CONTEXT"] = contextJSON; };
if (!$.isEmptyObject(userInputsJSON)) { templateJSON["USER_INPUTS"] = userInputsJSON; };
templateJSON["INPUTS_ORDER"] = userInputsOrder;
}
return templateJSON;
@ -251,8 +262,10 @@ define(function(require) {
function _fill(context, templateJSON) {
var that = this;
var contextJSON = templateJSON['CONTEXT'];
var userInputsJSON = templateJSON['USER_INPUTS'];
that.templateVcenterCustomizationSpec = templateJSON && templateJSON.VCENTER_CUSTOMIZATION_SPEC;
_fillCustomizations(context, that);
var contextJSON = templateJSON["CONTEXT"];
var userInputsJSON = templateJSON["USER_INPUTS"];
var publicClouds = templateJSON["PUBLIC_CLOUD"];
if (publicClouds != undefined) {
@ -265,7 +278,7 @@ define(function(require) {
$("input#context_type_vcenter", context).click();
if(this["VCENTER_CUSTOMIZATION_SPEC"]){
WizardFields.fillInput($('input.vcenter_customizations_value', context), this["VCENTER_CUSTOMIZATION_SPEC"]);
WizardFields.fillInput($("input.vcenter_customizations_value", context), this["VCENTER_CUSTOMIZATION_SPEC"]);
} else if(userInputsJSON || contextJSON) {
$("input#context_type_opennebula", context).click();
}
@ -275,8 +288,8 @@ define(function(require) {
});
}
$(".ssh_context", context).removeAttr('checked');
$(".network_context", context).removeAttr('checked');
$(".ssh_context", context).removeAttr("checked");
$(".network_context", context).removeAttr("checked");
if (userInputsJSON) {
UserInputs.fill(context, templateJSON);
@ -287,8 +300,8 @@ define(function(require) {
});
}
delete templateJSON['USER_INPUTS'];
delete templateJSON['INPUTS_ORDER'];
delete templateJSON["USER_INPUTS"];
delete templateJSON["INPUTS_ORDER"];
}
if (contextJSON) {
@ -305,21 +318,21 @@ define(function(require) {
var customTagsJSON = {};
$.each(contextJSON, function(key, value) {
if (ssh_regexp.test(key)) {
$(".ssh_context", context).prop('checked', 'checked');
$(".ssh_context", context).prop("checked", "checked");
if (!publickey_regexp.test(value)) {
WizardFields.fillInput($("#ssh_public_key", context), value);
}
} else if (token_regexp.test(key) && yes_value.test(value)) {
$(".token_context", context).prop('checked', 'checked');
$(".token_context", context).prop("checked", "checked");
} else if (report_ready_regexp.test(key) && yes_value.test(value)) {
$(".report_ready_context", context).prop('checked', 'checked');
$(".report_ready_context", context).prop("checked", "checked");
} else if (net_regexp.test(key) && yes_value.test(value)) {
$(".network_context", context).prop('checked', 'checked');
$(".network_context", context).prop("checked", "checked");
} else if ("INIT_SCRIPTS" == key) {
WizardFields.fillInput($("input.INIT_SCRIPTS", context), value);
} else if ("FILES_DS" == key) {
WizardFields.fillInput($('.FILES_DS', context), contextJSON["FILES_DS"]);
WizardFields.fillInput($(".FILES_DS", context), contextJSON["FILES_DS"]);
var files = [];
OpenNebula.Image.list({
timeout: true,
@ -335,13 +348,13 @@ define(function(require) {
}
var selectedResources = {
ids : files
}
};
that.contextFilesTable.selectResourceTableSelect(selectedResources);
}
});
} else if ("START_SCRIPT_BASE64" == key) {
$(".ENCODE_START_SCRIPT", context).prop('checked', 'checked');
$(".ENCODE_START_SCRIPT", context).prop("checked", "checked");
$(".START_SCRIPT", context).val(decodeURIComponent(escape(window.atob(value))));
} else if ("START_SCRIPT" == key) {
WizardFields.fillInput($(".START_SCRIPT", context), value);
@ -352,7 +365,7 @@ define(function(require) {
CustomTagsTable.fill(context, customTagsJSON);
delete templateJSON['CONTEXT'];
delete templateJSON["CONTEXT"];
}
}
@ -367,13 +380,13 @@ define(function(require) {
id: fileId
},
success: function(request, obj_file){
req_string.push("$FILE[IMAGE=" + '"' + obj_file.IMAGE.NAME + '"' + ", IMAGE_UNAME=" + '"' + obj_file.IMAGE.UNAME + '"]');
$('.FILES_DS', context).val(req_string.join(" "));
req_string.push("$FILE[IMAGE=" + "\"" + obj_file.IMAGE.NAME + "\"" + ", IMAGE_UNAME=" + "\"" + obj_file.IMAGE.UNAME + "\"]");
$(".FILES_DS", context).val(req_string.join(" "));
}
});
});
} else {
$('.FILES_DS', context).val("");
$(".FILES_DS", context).val("");
}
};
});

View File

@ -19,38 +19,38 @@ define(function(require) {
DEPENDENCIES
*/
var Config = require('sunstone-config');
var Locale = require('utils/locale');
var Tips = require('utils/tips');
var WizardFields = require('utils/wizard-fields');
var TemplateUtils = require('utils/template-utils');
var CustomTagsTable = require('utils/custom-tags-table');
var OpenNebulaHost = require('opennebula/host');
var UniqueId = require('utils/unique-id');
var Config = require("sunstone-config");
var Locale = require("utils/locale");
var Tips = require("utils/tips");
var WizardFields = require("utils/wizard-fields");
var TemplateUtils = require("utils/template-utils");
var CustomTagsTable = require("utils/custom-tags-table");
var OpenNebulaHost = require("opennebula/host");
var UniqueId = require("utils/unique-id");
/*
TEMPLATES
*/
var TemplateHTML = require('hbs!./other/html');
var TemplateHTML = require("hbs!./other/html");
/*
CONSTANTS
*/
var WIZARD_TAB_ID = require('./other/wizardTabId');
var WIZARD_TAB_ID = require("./other/wizardTabId");
/*
CONSTRUCTOR
*/
function WizardTab(opts) {
if (!Config.isTemplateCreationTabEnabled(opts.tabId, 'other')) {
if (!Config.isTemplateCreationTabEnabled(opts.tabId, "other")) {
throw "Wizard Tab not enabled";
}
this.wizardTabId = WIZARD_TAB_ID + UniqueId.id();
this.icon = 'fa-tag';
this.icon = "fa-tag";
this.title = Locale.tr("Tags");
}
@ -69,7 +69,7 @@ define(function(require) {
function _html() {
return TemplateHTML({
'customTagsTableHTML': CustomTagsTable.html()
"customTagsTableHTML": CustomTagsTable.html()
});
}
@ -84,19 +84,19 @@ define(function(require) {
var templateJSON = CustomTagsTable.retrieve(context);
var rawJSON = {};
var rawData = WizardFields.retrieveInput($('.raw_data', context));
var rawData = WizardFields.retrieveInput($(".raw_data", context));
if (rawData != "") {
rawJSON['DATA'] = rawData;
rawJSON["DATA"] = rawData;
var rawType = $('.raw_type', context).val();
var rawType = $(".raw_type", context).val();
if (rawType != undefined) {
rawJSON['TYPE'] = rawType;
rawJSON["TYPE"] = rawType;
}
rawJSON['VALIDATE'] = $("#raw_validate", context).is(":checked") ? 'YES' : 'NO';
rawJSON["VALIDATE"] = $("#raw_validate", context).is(":checked") ? "YES" : "NO";
}
if (!$.isEmptyObject(rawJSON)) { templateJSON['RAW'] = rawJSON; };
if (!$.isEmptyObject(rawJSON)) { templateJSON["RAW"] = rawJSON; };
return templateJSON;
}
@ -104,18 +104,17 @@ define(function(require) {
function _fill(context, templateJSON) {
var rawJSON = templateJSON.RAW;
if (rawJSON) {
$('.raw_type', context).val(rawJSON['TYPE']);
$('.raw_type', context).change();
$(".raw_type", context).val(rawJSON["TYPE"]);
$(".raw_type", context).change();
WizardFields.fillInput($('.raw_data', context), rawJSON['DATA']);
WizardFields.fillInput($(".raw_data", context), rawJSON["DATA"]);
if (['yes', 'YES'].includes(rawJSON['VALIDATE'])) {
$("#raw_validate", context).prop('checked', 'checked');
if (["yes", "YES"].includes(rawJSON["VALIDATE"])) {
$("#raw_validate", context).prop("checked", "checked");
}
delete templateJSON.RAW;
}
CustomTagsTable.fill(context, templateJSON);
}
});

View File

@ -197,6 +197,7 @@ define(function(require) {
function(formPanelInstance, context) {
if (that.xmlRoot) {
formPanelInstance.fill(context, response[that.xmlRoot]);
} else {
formPanelInstance.fill(context, response);
}

View File

@ -16,18 +16,19 @@
define(function(require) {
var Locale = require('utils/locale');
var TemplateHTML = require('hbs!./custom-tags-table/html');
var RowTemplateHTML = require('hbs!./custom-tags-table/row');
var VectorRowTemplateHTML = require('hbs!./custom-tags-table/vector-row');
var VectorAttributeRowTemplateHTML = require('hbs!./custom-tags-table/vector-attribute-row');
var TemplateUtils = require('utils/template-utils');
var WizardFields = require('utils/wizard-fields');
var Sunstone = require('sunstone');
var Locale = require("utils/locale");
var TemplateHTML = require("hbs!./custom-tags-table/html");
var RowTemplateHTML = require("hbs!./custom-tags-table/row");
var VectorRowTemplateHTML = require("hbs!./custom-tags-table/vector-row");
var VectorAttributeRowTemplateHTML = require("hbs!./custom-tags-table/vector-attribute-row");
var TemplateUtils = require("utils/template-utils");
var WizardFields = require("utils/wizard-fields");
var Sunstone = require("sunstone");
var removedStyles = false;
var showMandatory = false;
var showDefault = false;
var deleteTags = ["VCENTER_CUSTOMIZATION_SPEC"];
function _reset(){
showDefault = false;
@ -35,8 +36,8 @@ define(function(require) {
}
function _html(classTable, classButton, removeStyles, mandatory, deflt){
var classTableName = classTable && classTable.length>0 ? classTable : '';
var classButtonName = classButton && classButton.length>0 ? classButton : '';
var classTableName = classTable && classTable.length>0 ? classTable : "";
var classButtonName = classButton && classButton.length>0 ? classButton : "";
if(mandatory){
showMandatory = true;
}
@ -48,12 +49,12 @@ define(function(require) {
}
return TemplateHTML({
'titleKey': Locale.tr("Name"),
'titleMandatory': showMandatory ? Locale.tr("Type") : '',
'titleValue': Locale.tr("Value"),
'titleDefault': showDefault? Locale.tr("Default Value"): '',
'classTable': classTableName,
'classButton': classButtonName
"titleKey": Locale.tr("Name"),
"titleMandatory": showMandatory ? Locale.tr("Type") : "",
"titleValue": Locale.tr("Value"),
"titleDefault": showDefault? Locale.tr("Default Value"): "",
"classTable": classTableName,
"classButton": classButtonName
});
}
@ -66,8 +67,8 @@ define(function(require) {
$("tbody.custom_tags", context).append(
RowTemplateHTML({
styles: !removedStyles,
mandatory: showMandatory? 'M' : '',
valueDefault: showDefault? ' ' : ''
mandatory: showMandatory? "M" : "",
valueDefault: showDefault? " " : ""
})
);
if(hide_vector_button){
@ -79,7 +80,7 @@ define(function(require) {
}
if(element && element.CAPACITY){
element.CAPACITY[key] = this.value;
Sunstone.runAction(resourceType+".update_template",elementID, TemplateUtils.templateToString(element));
Sunstone.runAction(resourceType+".update_template",elementID, TemplateUtils.templateToString(element));
}
});
}
@ -96,29 +97,29 @@ define(function(require) {
context.off("click", ".add_vector_attribute");
context.on("click", ".add_vector_attribute", function(){
var tbody = $("tbody.custom_vector_attributes", $(this).closest('table'));
var tbody = $("tbody.custom_vector_attributes", $(this).closest("table"));
tbody.append(VectorAttributeRowTemplateHTML());
});
context.off("click", ".change_to_vector_attribute");
context.on("click", ".change_to_vector_attribute", function(){
var td = $($(this).closest('table')).parent();
var td = $($(this).closest("table")).parent();
var tr = $(td).parent();
$('.change_to_vector_attribute', td).addClass('add_vector_attribute').removeClass('change_to_vector_attribute');
$('tbody.custom_body', td).addClass('custom_vector_attributes').removeClass('custom_body');
$('.custom_tag_key', tr).addClass('custom_vector_key').removeClass('custom_tag_key').css('margin-top', '5px');
$('tbody.custom_vector_attributes', td).append(VectorAttributeRowTemplateHTML({
key: $('textarea.custom_tag_value', td).val()
$(".change_to_vector_attribute", td).addClass("add_vector_attribute").removeClass("change_to_vector_attribute");
$("tbody.custom_body", td).addClass("custom_vector_attributes").removeClass("custom_body");
$(".custom_tag_key", tr).addClass("custom_vector_key").removeClass("custom_tag_key").css("margin-top", "5px");
$("tbody.custom_vector_attributes", td).append(VectorAttributeRowTemplateHTML({
key: $("textarea.custom_tag_value", td).val()
}));
$('textarea.custom_tag_value', td).remove();
$("textarea.custom_tag_value", td).remove();
});
$(".add_custom_tag", context).trigger("click");
context.on("click", "tbody.custom_tags i.remove-tab", function(){
var tr = $(this).closest('tr');
var tr = $(this).closest("tr");
tr.remove();
if(hide_vector_button){
var key = $(".custom_tag_key",this.parentElement.parentElement.parentElement).val()
var key = $(".custom_tag_key",this.parentElement.parentElement.parentElement).val();
if(element && element.CAPACITY && element.CAPACITY[key] && elementID){
delete element.CAPACITY[key];
Sunstone.runAction(resourceType+".update_template",elementID, TemplateUtils.templateToString(element));
@ -130,24 +131,24 @@ define(function(require) {
// context is the container div of customTagsHtml()
function _retrieveCustomTags(context){
var template_json = {};
$('tbody.custom_tags tr', context).each(function(){
if ($('.custom_tag_key', $(this)).val()) {
var key = WizardFields.retrieveInput($('.custom_tag_key', $(this)));
template_json[key] = WizardFields.retrieveInput($('.custom_tag_value', $(this)));
$("tbody.custom_tags tr", context).each(function(){
if ($(".custom_tag_key", $(this)).val()) {
var key = WizardFields.retrieveInput($(".custom_tag_key", $(this)));
template_json[key] = WizardFields.retrieveInput($(".custom_tag_value", $(this)));
}
if ($('.custom_vector_key', $(this)).val()) {
if ($(".custom_vector_key", $(this)).val()) {
var vectorAttributes = {};
$('tbody.custom_vector_attributes tr', $(this)).each(function(){
var key = WizardFields.retrieveInput($('.custom_vector_attribute_key', $(this)));
$("tbody.custom_vector_attributes tr", $(this)).each(function(){
var key = WizardFields.retrieveInput($(".custom_vector_attribute_key", $(this)));
if (key) {
vectorAttributes[key] = WizardFields.retrieveInput($('.custom_vector_attribute_value', $(this)));
vectorAttributes[key] = WizardFields.retrieveInput($(".custom_vector_attribute_value", $(this)));
}
});
if (!$.isEmptyObject(vectorAttributes)){
var key = WizardFields.retrieveInput($('.custom_vector_key', $(this)));
var key = WizardFields.retrieveInput($(".custom_vector_key", $(this)));
template_json[key] = vectorAttributes;
}
}
@ -158,10 +159,18 @@ define(function(require) {
// context is the container div of customTagsHtml()
// template_json are the key:values that will be put into the table
function _fillCustomTags(context, template_json){
function _fillCustomTags(context, templateJson){
$("tbody.custom_tags i.remove-tab", context).trigger("click");
var template_json = $.extend({}, templateJson);
//remove tags
deleteTags.forEach(element => {
delete template_json[element];
});
$.each(template_json, function(key, value){
if (typeof value == 'object') {
if (typeof value === "object") {
$("tbody.custom_tags", context).append(
VectorRowTemplateHTML({key: key, value: value})
);
@ -171,8 +180,8 @@ define(function(require) {
RowTemplateHTML({
key: key,
value: val,
mandatory: showMandatory ? 'M': '',
valueDefault: showDefault? ' ': ''
mandatory: showMandatory ? "M": "",
valueDefault: showDefault? " ": ""
})
);
}
@ -180,10 +189,10 @@ define(function(require) {
}
return {
'html': _html,
'setup': _setup,
'retrieve': _retrieveCustomTags,
'fill': _fillCustomTags,
'reset': _reset
"html": _html,
"setup": _setup,
"retrieve": _retrieveCustomTags,
"fill": _fillCustomTags,
"reset": _reset
};
});