in dashboardv2/public/js/views/entity/EntityBusinessMetaDataItemView.js [174:287]
getAttrElement: function(opt) {
var that = this,
returnEL = "N/A",
options = $.extend(true, {}, opt);
if (options) {
var key = options.key,
typeName = options.val.typeName || "",
val = options.val.value,
isMultiValued = typeName && typeName.indexOf("array<") === 0,
businessMetadata = options.businessMetadata,
allowOnlyNum = false,
isEnum = false;
var elType = isMultiValued ? "select" : "input";
if (!isMultiValued && !_.isEmpty(val)) {
val = _.escape(val);
}
if (!_.isUndefinedNull(val) && (typeName === "boolean" || typeName === "array<boolean>")) {
val = String(val);
}
if (typeName === "date" || typeName === "array<date>") {
if (isMultiValued && val && val.length) {
var dateStr = [];
_.each(val, function(selectedDate) {
selectedDate = parseInt(selectedDate);
dateStr.push(Utils.formatDate({ date: selectedDate, zone: false, dateFormat: Globals.dateFormat }));
});
val = dateStr.join(',');
} else if (!isMultiValued && val) {
val = parseInt(val);
val = Utils.formatDate({ date: val, zone: false, dateFormat: Globals.dateFormat });
}
}
if (typeName === "string" || typeName === "array<string>") {
if (typeName === "string") {
elType = "textarea";
returnEL = '<' + elType + ' type="text" data-key="' + key + '" data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + '" data-multi="' + isMultiValued + '" data-tags="true" placeholder="Enter String" class="form-control" ' + (isMultiValued === false && !_.isUndefinedNull(val) ? 'value="' + val + '"' : "") + "id =" + businessMetadata.replace(/ /g, "_") + "_" + key.replace(/ /g, "_") + '></' + elType + '>';
} else {
returnEL = '<' + elType + ' type="text" data-key="' + key + '" data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + '" data-multi="' + isMultiValued + '" data-tags="true" placeholder="Enter String" class="form-control" ' + (isMultiValued === false && !_.isUndefinedNull(val) ? 'value="' + val + '"' : "") +
'></' + elType + '>';
}
} else if (typeName === "boolean" || typeName === "array<boolean>") {
returnEL = '<select data-key="' + key + '" data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + '" data-multi="' + isMultiValued + '" class="form-control">' + (isMultiValued ? "" : '<option value="">--Select Value--</option>') + '<option value="true" ' + (!_.isUndefinedNull(val) && val == "true" ? "selected" : "") + '>true</option><option value="false" ' + (!_.isUndefinedNull(val) && val == "false" ? "selected" : "") + '>false</option></select>';
} else if (typeName === "date" || typeName === "array<date>") {
returnEL = '<' + (isMultiValued ? "textarea" : "input") + ' type="text" data-key="' + key + '" data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + '"data-multi="' + isMultiValued + '" data-type="date" class="form-control" ' + (isMultiValued === false && !_.isUndefinedNull(val) ? 'value="' + val + '"' : "") + '>' + (isMultiValued === true && !_.isUndefinedNull(val) ? val : "") + (isMultiValued ? "</textarea>" : "");
setTimeout(function() {
var dateObj = { singleDatePicker: true, showDropdowns: true, autoUpdateInput: isMultiValued ? false : true, locale: { format: Globals.dateFormat } },
dateEl = that.$el.find('[data-type="date"][data-key="' + key + '"]').daterangepicker(dateObj);
if (isMultiValued) {
dateEl.on("apply.daterangepicker", function(ev, picker) {
var val = picker.element.val();
if (val !== "") {
val += ", ";
}
picker.element.val(val += Utils.formatDate({ date: picker.startDate, zone: false, dateFormat: Globals.dateFormat }));
that.$el.find(".custom-col-1[data-id='value']>[data-key]").trigger('change');
});
}
}, 0);
} else if (typeName === "byte" || typeName === "array<byte>" || typeName === "short" || typeName === "array<short>" || typeName === "int" || typeName === "array<int>" || typeName === "float" || typeName === "array<float>" || typeName === "double" || typeName === "array<double>" || typeName === "long" || typeName === "array<long>") {
allowOnlyNum = true;
returnEL = '<' + elType + ' data-key="' + key + '" data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + '" type="number" data-multi="' + isMultiValued + '" data-tags="true" placeholder="Enter Number" class="form-control" ' + (!_.isUndefinedNull(val) ? 'value="' + val + '"' : "") + '></' + elType + '>';
} else if (typeName) {
isEnum = true;
var modTypeName = typeName;
if (isMultiValued) {
var multipleType = typeName.match("array<(.*)>");
if (multipleType && multipleType[1]) {
modTypeName = multipleType[1];
}
}
var foundEnumType = this.enumDefCollection.fullCollection.find({ name: modTypeName });
if (foundEnumType) {
var enumOptions = "";
_.forEach(foundEnumType.get("elementDefs"), function(obj) {
enumOptions += '<option value="' + _.escape(obj.value) + '">' + _.escape(obj.value) + '</option>'
});
returnEL = '<select data-key="' + key + '" data-businessMetadata="' + businessMetadata + '" data-typename="' + typeName + '" data-multi="' + isMultiValued + '" data-enum="true">' + enumOptions + '</select>';
}
}
if (isEnum || elType === "select") {
setTimeout(function() {
var selectEl = that.$el.find('.custom-col-1[data-id="value"] select[data-key="' + key + '"]');
var data = [];
if (selectEl.data("multi")) {
data = val && val.length && (_.isArray(val) ? val : val.split(",")) || [];
} else {
data = _.unescape(val);
}
if (allowOnlyNum) {
selectEl.parent().addClass("select2_only_number");
}
var opt = {
tags: selectEl.data("tags") ? true : false,
multiple: selectEl.data("multi"),
createTag: function(params) {
var option = params.term;
if ($.isNumeric(option) || (typeName === "array<string>" && _.isString(option))) {
return {
id: option,
text: option
}
}
}
}
if (!selectEl.data("enum")) {
opt.data = data;
}
selectEl.select2(opt);
selectEl.val(data).trigger("change");
}, 0);
}
}
return returnEL;
},