Case Sensitivity
Figuring out way to make the AJAX calls and processing in the hierarchy application not be case sensitive
by WizKid81
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<div id="missingSubjectAreas" data-bind="foreach: resultArray" class="panel-body panel-scrollingbody">
<div data-bind="attr: {id: 'missingID' + id.toString().replace(/\s/g, '').replace(/\+/g, 'P')}">
<span data-bind="text: id"></span> - <span data-bind="text: name"></span>
<br />
</div>
</div>
JavaScript
console.clear();
var vm = {};
vm.resultArray = ko.observableArray();
var subjectAreaTypeName = 'Financial';
var subjectArea = function(data, parent) {
var self = this;
for(var property in data){
if (property !== "name" && property.toLowerCase() === "name") {
data.name = data[property];
delete data[property];
}
if (property !== "id" && property.toLowerCase() === "id") {
data.id = data[property];
delete data[property];
}
if (property !== "type" && property.toLowerCase() === "type") {
data.type = data[property];
delete data[property];
}
//console.log(propt + ': ' + data[propt]);
}
console.log("Converted data object in constructor: ", data);
this.name = (data === null || data === undefined || typeof data.name === 'undefined') ? undefined : data.name;
this.type = (data === null || data === undefined || typeof data.type === 'undefined') ? undefined : data.type;
this.id = (data === null || data === undefined || typeof data.id === 'undefined') ? undefined : data.id;
this.mapped = (data === null || data === undefined || typeof data.mapped === 'undefined') ?
ko.observable(false) : ko.observable(data.mapped);
}
var JSONresult = [{
"ID": "26815YEUTT ",
"NAME": "Yeutter Institute ",
"Type": "AcadOrg",
"rootnodepermission": 3
}]
$.each(JSONresult, function(index, element) {
var newSA = new subjectArea(element);
newSA.type = subjectAreaTypeName;
newSA.mapped(true);
vm.resultArray.push(newSA);
});
console.log(vm.resultArray());
ko.applyBindings(vm);