- $scope.choices = [];
- $scope.attributeDatas = [{"attributes" : $scope.choices}];
- addNewChoice = function(value) {
- console.log("input key : " + value);
- var isFoundInRuleData = false;
- if(value != undefined){
- if (value.startsWith('div.')){
- value = value.replace('div.','');
- }
-
- console.log(" document.getElementById : div."+value);
- var parentElement = document.getElementById("div."+value);
- console.log("parentElement : " + parentElement);
- var div = document.getElementById(value+"@0");
- if(div != null){
- var clone = div.cloneNode(true);
- var addElement = parentElement.childElementCount;
- clone.id = ''+value+'@'+addElement;
- clone.value = '';
- if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){ //if it's view or edit
- if($scope.temp.policy.ruleData[clone.id] || $scope.temp.policy.editPolicy){ // Only append child if its value found in ruleData or edit mode
- if($scope.temp.policy.ruleData[clone.id]){
- clone.value = $scope.temp.policy.ruleData[clone.id];
- isFoundInRuleData = true;
- }
- console.log(" clone.value :" + clone.value);
- console.log(" clone.id :" + clone.id);
- if(!isFoundInRuleData && isInitViewEdit){
- return;
- }
- if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //here cloned is single element
- }
- document.getElementById("div."+value).appendChild(clone);
- plainAttributeKeys.push(''+value+'@'+addElement);
- }
- }else{ //not view or edit
- if(!clone.className.includes("child_single")){
- clone.className += ' child_single'; //here cloned is single element
- }
- document.getElementById("div."+value).appendChild(clone);
- plainAttributeKeys.push(''+value+'@'+addElement);
- }
- }else{
-
- if(parentElement == null){
- return;
- }
- div = document.getElementById("div."+value+"@0");
- if(div){
-
- if(!div.className.includes('children_group border')){
- layer++;
- if(layer > 4){
- layer = 1
- };
- div.className += ' children_group border' + layer; //here is div with a group of children.
- }
- }
- var childElement = parentElement.firstElementChild;
- var countParent = parentElement.childElementCount;
- var childElementString = childElement.innerHTML;
- var find = value+"@0";
- var re = new RegExp(find, 'g');
- childElementString = childElementString.replace(re,value+'@' + countParent);
- var clone = childElement.cloneNode(true);
- for (var ii = 0; ii < parentElement.childNodes.length; ii++){
- var childId = parentElement.childNodes[ii].id;
- if(ii = parentElement.childNodes.length){
- var childnewId = childId.slice(0, -1);
- var count = childId.slice(-1);
- }
- }
- var countvalue = parseInt(count) + 1;
- clone.id = childnewId+countvalue;
- clone.value = '';
- clone.innerHTML=childElementString;
- document.getElementById("div."+value).appendChild(clone);
- var selects = clone.getElementsByTagName("select");
- var inputs = clone.getElementsByTagName("input");
- var removeValues = [];
- for(var i=0; i<inputs.length; i++){
- if ($scope.temp.policy.ruleData!=undefined){
- var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
- console.log(" checkValue.value :" + checkValue);
- console.log(" inputs["+i+"].id :" + inputs[i].id);
- if (checkValue!=undefined && checkValue != "undefined"){
- document.getElementById(inputs[i].id).value = checkValue;
- plainAttributeKeys.push(inputs[i].id);
- } else {
- plainAttributeKeys.push(inputs[i].id);
- }
- }else {
- plainAttributeKeys.push(inputs[i].id);
- }
- }
-
- for(var i=0; i<selects.length; i++){
- if ($scope.temp.policy.ruleData!=undefined){
- var checkValue = $scope.temp.policy.ruleData[selects[i].id];
- if (checkValue!=undefined && checkValue!="undefined"){
- if($scope.temp.policy.ruleData != null){
- var checkValue = $scope.temp.policy.ruleData[selects[i].id];
- var option = document.createElement('option');
- option.setAttribute('value', checkValue);
- option.appendChild(document.createTextNode(checkValue));
- document.getElementById(selects[i].id).appendChild(option);
- document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id];
- plainAttributeKeys.push(selects[i].id);
- }
- } else {
- plainAttributeKeys.push(selects[i].id);
- }
- }else {
- plainAttributeKeys.push(selects[i].id);
- }
- }
-
- for (var k=0; k<removeValues.length; k++){
- var elem = document.getElementById(removeValues[k]);
- elem.parentNode.removeChild(elem);
- }
- var ele = angular.element(document.getElementById("div."+value));
- $compile(ele.contents())($scope)
- }
- }
- };
-
-
- removeChoice = function(value) {
- console.log(value);
- if(value != undefined){
- var c = document.getElementById("div."+value).childElementCount;
-
- if(c == 1){
- Notification.error("The original one is not removable.");
- return;
- }
- document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild);
- }
- };
-
- function findVal(object, key) {
- var value;
- Object.keys(object).some(function(k) {
- if (k === key) {
- value = object[k];
- return true;
- }
- if (object[k] && typeof object[k] === 'object') {
- value = findVal(object[k], key);
- return value !== undefined;
- }
- });
- return value;
- }
-
- $scope.pullVersion = function(serviceName) {
- console.log(serviceName);
- if(serviceName != undefined){
- var uuu = "policyController/getModelServiceVersioneData.htm";
- var postData={policyData: serviceName};
- $.ajax({
- type : 'POST',
- url : uuu,
- dataType: 'json',
- contentType: 'application/json',
- data: JSON.stringify(postData),
- success : function(data){
- $scope.$apply(function(){
- $scope.microServiceModelsDictionaryVersionDatas = data[0].dcaeModelVersionData;
- });
- },
- error : function(data){
- alert("Error While Retriving the Template Layout Pattren.");
- }
- });
- }
- };
+ $scope.choices = [];
+ $scope.attributeDatas = [{"attributes" : $scope.choices}];
+ addNewChoice = function(value) {
+ var isFoundInRuleData = false;
+ if(value != undefined){
+ if (value.startsWith('div.')){
+ value = value.replace('div.','');
+ }
+
+ var parentElement = document.getElementById("div."+value);
+ var div = document.getElementById(value+"@0");
+ if(div != null){
+ var clone = div.cloneNode(true);
+ var addElement = parentElement.childElementCount;
+ clone.id = ''+value+'@'+addElement;
+ clone.value = '';
+ if($scope.temp.policy.editPolicy || $scope.temp.policy.readOnly){
+ //if it's vi or edit
+ if($scope.temp.policy.ruleData[clone.id] || $scope.temp.policy.editPolicy){
+ //Only append child if its value found in ruleData or edit mode
+ if($scope.temp.policy.ruleData[clone.id]){
+ clone.value = $scope.temp.policy.ruleData[clone.id];
+ isFoundInRuleData = true;
+ }
+ if(!isFoundInRuleData && isInitViewEdit){
+ return;
+ }
+ if(!clone.className.includes("child_single")){
+ clone.className += ' child_single'; // here cloned is single element
+ }
+ document.getElementById("div."+value).appendChild(clone);
+ plainAttributeKeys.push(''+value+'@'+addElement);
+ }
+ }else{ // not view or edit
+ if(!clone.className.includes("child_single")){
+ clone.className += ' child_single'; // here cloned is single element
+ }
+ document.getElementById("div."+value).appendChild(clone);
+ plainAttributeKeys.push(''+value+'@'+addElement);
+ }
+ }else{
+
+ if(parentElement == null){
+ return;
+ }
+ div = document.getElementById("div."+value+"@0");
+ if(div){
+
+ if(!div.className.includes('children_group border')){
+ layer++;
+ if(layer > 4){
+ layer = 1
+ }
+ div.className += ' children_group border' + layer; // here is div with a group of children.
+ }
+ }
+ var childElement = parentElement.firstElementChild;
+ var countParent = parentElement.childElementCount;
+ var childElementString = childElement.innerHTML;
+ var find = value+"@0";
+ var re = new RegExp(find, 'g');
+ childElementString = childElementString.replace(re,value+'@' + countParent);
+ var clone = childElement.cloneNode(true);
+ for (var ii = 0; ii < parentElement.childNodes.length; ii++){
+ var childId = parentElement.childNodes[ii].id;
+ if(ii = parentElement.childNodes.length){
+ var childnewId = childId.slice(0, -1);
+ var count = childId.slice(-1);
+ }
+ }
+ var countvalue = parseInt(count) + 1;
+ clone.id = childnewId+countvalue;
+ clone.value = '';
+ clone.innerHTML=childElementString;
+ document.getElementById("div."+value).appendChild(clone);
+ var selects = clone.getElementsByTagName("select");
+ var inputs = clone.getElementsByTagName("input");
+ var removeValues = [];
+ for(var i=0; i<inputs.length; i++){
+ plainAttributeKeys.push(inputs[i].id);
+ if ($scope.temp.policy.ruleData!=undefined){
+ var checkValue = $scope.temp.policy.ruleData[inputs[i].id];
+ if (checkValue!=undefined && checkValue != "undefined"){
+ if(checkValue == "false"){
+ document.getElementById(inputs[i].id).removeAttribute("checked");
+ }
+ else if(checkValue == "true"){
+ document.getElementById(inputs[i].id).setAttribute("checked", true);
+ }else{
+ document.getElementById(inputs[i].id).value = checkValue;
+ }
+ } else {
+ if(inputs[i].type == "checkbox"){
+ inputs[i].checked = false;
+ }
+ }
+ }else {
+ document.getElementById(inputs[i].id).removeAttribute("checked");
+ }
+ }
+
+ for(var i=0; i<selects.length; i++){
+ if ($scope.temp.policy.ruleData!=undefined){
+ var checkValue = $scope.temp.policy.ruleData[selects[i].id];
+ if (checkValue!=undefined && checkValue!="undefined"){
+ if($scope.temp.policy.ruleData != null){
+ var checkValue = $scope.temp.policy.ruleData[selects[i].id];
+ var option = document.createElement('option');
+ option.setAttribute('value', checkValue);
+ option.appendChild(document.createTextNode(checkValue));
+ document.getElementById(selects[i].id).appendChild(option);
+ document.getElementById(selects[i].id).value = $scope.temp.policy.ruleData[selects[i].id];
+ plainAttributeKeys.push(selects[i].id);
+ }
+ } else {
+ plainAttributeKeys.push(selects[i].id);
+ }
+ }else {
+ plainAttributeKeys.push(selects[i].id);
+ }
+ }
+
+ for (var k=0; k<removeValues.length; k++){
+ var elem = document.getElementById(removeValues[k]);
+ elem.parentNode.removeChild(elem);
+ }
+ var ele = angular.element(document.getElementById("div."+value));
+ $compile(ele.contents())($scope)
+ }
+ }
+ };
+
+
+ removeChoice = function(value) {
+ if(value != undefined){
+ var c = document.getElementById("div."+value).childElementCount;
+
+ if(c == 1){
+ Notification.error("The original one is not removable.");
+ return;
+ }
+ document.getElementById("div."+value).removeChild(document.getElementById("div."+value).lastChild);
+ }
+ };
+
+ function findVal(object, key) {
+ var value;
+ Object.keys(object).some(function(k) {
+ if (k === key) {
+ value = object[k];
+ return true;
+ }
+ if (object[k] && typeof object[k] === 'object') {
+ value = findVal(object[k], key);
+ return value !== undefined;
+ }
+ });
+ return value;
+ }
+
+ $scope.pullVersion = function(serviceName) {
+ if(serviceName != undefined){
+ var uuu = "policyController/getModelServiceVersioneData.htm";
+ var postData={policyData: serviceName};
+ $.ajax({
+ type : 'POST',
+ url : uuu,
+ dataType: 'json',
+ contentType: 'application/json',
+ data: JSON.stringify(postData),
+ success : function(data){
+ $scope.$apply(function(){
+ $scope.microServiceModelsDictionaryVersionDatas = data[0].dcaeModelVersionData;
+ });
+ },
+ error : function(data){
+ Notification.error("Error While Retriving the Template Layout Pattren.");
+ }
+ });
+ }
+ };