summaryrefslogtreecommitdiffstats
path: root/client/client-monitoring/src/main/resources/webapp/js/ApexContext.js
blob: 8e249ac0b9a9a9e60c318a4143243ecaa29d406d (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
/*
 * ============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);
        }

    }
}