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);