aboutsummaryrefslogtreecommitdiffstats
path: root/dcae_dmaapbc_webapp/src/main/webapp/app/fusion/ase/scripts/convertToYaml.js
blob: c1f6b02aa90fbe65e3f433b788a6dd832e147882 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
function convertToYaml(data) {

	for (var i=0; i<nodeArr.length; i++){
		if (document.getElementById(nodeArr[i][1]).getAttribute('taska_id')==null || document.getElementById(nodeArr[i][1]).getAttribute('taska_id')==''){
			return false;
		}
	}

	data = decodeJSON(data,null);
	data = JSON.parse(data);

	var elementList = data.diagram.elements; //stores all elements
    var allNodes = data.diagram.elements.nodes;
    var allArrows = data.diagram.elements.arrows;
    var allNotes = data.diagram.elements.notes;
    var loadedRows = data.diagram.rows;
    var loadedCols = data.diagram.cols;
    var separators = data.diagram.elements.separators
    var description = data.diagram.description
    startArrowAtIndex = 0;
    var yamlText = '';
    yamlText += 'callFlowName: "'+description+'"\n';
    yamlText += 'callSequenceSteps:\n';
    for (var s = 0; s<separators.length; s++){
    yamlText += '  - \n';
    yamlText += '    name: "'+separators[s].text+'"\n';
    yamlText += '    subSteps:\n';
    for (var i=startArrowAtIndex; i<allArrows.length; i++){
    var index = recallArray(arrowArr,allArrows[i].id)
    	try{
    	if (parseInt(arrowArr[index][4])>=parseInt(separators[s+1].lineNumber)*42+60){
        	startArrowAtIndex = index;
        	break;
        }
    }
    catch (err){}
    yamlText += '      - \n';
    yamlText += '        destination_tosca_id: '+document.getElementById(arrowArr[index][9]).getAttribute('taska_id')+'\n';
    yamlText += '        link_description: "'+arrowArr[index][10]+'"\n';
    yamlText += '        link_message: "'+arrowArr[index][2]+'"\n';
    var linkTitleName='';
    if (arrowArr[index][10]!=='') {
    	linkTitleName= arrowArr[index][2];
    }    	
    yamlText += '        link_title: "'+linkTitleName+'"\n';
		var linkType  = 'standard';
		if (arrowArr[index][0].attributes.direction.value==='self') {
			linkType  = 'self'
		}
    yamlText += '        link_type: '+linkType+'\n';
    
    // if message_type attribute does not exist, set it as signal by default
    var message_type_val = 'media'
    if (arrowArr[index][0].hasAttribute('message_type')) {
    	message_type_val = arrowArr[index][0].attributes.message_type.value;
    }
    yamlText += '        message_type: '+ message_type_val +'\n';
    yamlText += '        source_tosca_id: '+document.getElementById(arrowArr[index][8]).getAttribute('taska_id')+'\n';
    }
    }
    yamlText += 'networkElementSequenceToscaIDs:\n';
    for (var i=0; i<nodeArr.length;i++){
		yamlText += '  - \n'
    yamlText += '    tosca_id: '+document.getElementById(nodeArr[i][1]).getAttribute('taska_id')+'\n';
    var NodeRoleID =''
    if (nodeArr[i][0].hasAttribute('role_id')) {
    	NodeRoleID = nodeArr[i][0].attributes.role_id.value
    }
	yamlText += '    role: "'+ NodeRoleID +'"\n';
    }
    yamlText += 'overviewDescription: description';
    return yamlText;
}