summaryrefslogtreecommitdiffstats
path: root/client/client-monitoring/src/main/resources/webapp/js/ApexContext.js
blob: 437d8177d9695e204cf637e41999101ef1aa6a7d (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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
 * ================================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * SPDX-License-Identifier: Apache-2.0
 * ============LICENSE_END=========================================================
 */

/*
 * Create a Context Table
 */
function createEngineContextTable(wrapper) {
	var tableId = config.engineContext.tableId;
	var headers = config.engineContext.headers.map(function(a) {
		return a.title;
	});
	return createEngineTable($(wrapper), tableId, headers);
}

/*
 * Update each Context Table with the latest data
 */
function setEngineContextData(engineContextData) {
	var tableId = config.engineContext.tableId;
	for ( var ecd in engineContextData) {
		var id = tableId + "_" + engineContextData[ecd].id;
		var existingTable = undefined;
		for ( var ect in this.engineContextTables) {
			if (id === this.engineContextTables[ect].getAttribute("id")) {
				existingTable = this.engineContextTables[ect];
			}
		}
		var engineInfo = JSON.parse(engineContextData[ecd].engine_info);
		var contextAlbums = engineInfo.ContextAlbums;
		var data = [];

		for ( var ca in contextAlbums) {
			var cAlbumn = contextAlbums[ca];
			data.push([ cAlbumn.AlbumKey.name, cAlbumn.AlbumKey.version,
					JSON.stringify(cAlbumn.AlbumContent, undefined, 50) ]);
		}

		var table = existingTable;
		// If no table already exists for the context, add one
		if (!table) {
			var wrapper = document.createElement("div");
			wrapper.setAttribute("class", "engineContextWrapper");
			var title = document.createElement("div");
			title.setAttribute("class", "engineContextTitle");
			title.innerHTML = engineContextData[ecd].id;
			$(wrapper).append(title);
			$("." + config.engineContext.parent).append(wrapper);
			table = createEngineContextTable(wrapper);
			table.setAttribute("id", id);
			table.style["margin-bottom"] = "10px";
			this.engineContextTables.push(table);
		}

		var old_data = $(table).data(tableId);
		if (!deepCompare(old_data, data)) {
			$(table).find("tbody").remove();
			var tbody = document.createElement("tbody");

			for ( var d in data) {
				var rowData = data[d];
				var row = document.createElement("tr");
				var rowContent = "<tr>";
				for ( var rd in rowData) {
					var tdClass = (rd == 2 ? "dataTd_wordwrap" : "dataTd");
					rowContent += "<td class=" + tdClass + ">" + rowData[rd]
							+ "</td>";
				}
				rowContent += "</tr>";
				row.innerHTML = rowContent;
				$(tbody).append(row);
			}
			$(table).data(tableId, data);
			$(table).append(tbody);
		}

	}
}