aboutsummaryrefslogtreecommitdiffstats
path: root/gui-editors/gui-editor-apex/src/main/resources/webapp/js/ApexContextSchemaTab.js
blob: 45676b8e6b760a72a81916cf7c930a8a7dfd16c4 (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*
 * ============LICENSE_START=======================================================
 *  Copyright (C) 2016-2018 Ericsson. All rights reserved.
 *  Modifications Copyright (C) 2020-2021 Nordix Foundation.
 * ================================================================================
 * 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=========================================================
 */

const {ajax_get} = require("./ApexAjax");
const {createTable} = require('./ApexTable');
const {rightClickMenu_scopePreserver} = require('./contextMenu');
const {apexUtils_removeElement} = require('./ApexUtils');

function contextSchemaTab_reset() {
    contextSchemaTab_deactivate();
    contextSchemaTab_activate();
}
function contextSchemaTab_activate() {
    contextSchemaTab_create();

    var requestURL = window.restRootURL + "/ContextSchema/Get?name=&version=";

    ajax_get(requestURL, function(data) {
        $("#contextSchemaTableBody").find("tr:gt(0)").remove();

        for (var i = 0; i < data.messages.message.length; i++) {
            var contextSchema = JSON.parse(data.messages.message[i]).apexContextSchema;

            var contextSchemaRow_tr = document.createElement("tr");
            var contextSchemaid = contextSchema.key.name + ":"  + contextSchema.key.version;

            var contextSchemaRow =
                "<td>"                                                    +
                contextSchemaid                                         +
                "</td>"                                                    +
                "<td>"                                                    +
                contextSchema.schemaFlavour                                +
                "</td>"                                                    +
                "<td><java>"                                            +
                apexUtils_escapeHtml(contextSchema.schemaDefinition)    +
                "</java></td>";

            contextSchemaRow_tr.innerHTML = contextSchemaRow;
            contextSchemaRow_tr.addEventListener('contextmenu', rightClickMenu_scopePreserver("contextSchemaTabContent", "ContextSchema", contextSchema.key.name, contextSchema.key.version));

            $("#contextSchemaTableBody").append(contextSchemaRow_tr);
        }
    });
}

function contextSchemaTab_deactivate() {
    apexUtils_removeElement("contextSchemaTabContent");
}

function contextSchemaTab_create() {
    var contextSchemaTab = document.getElementById("contextSchemasTab");

    //Testing purposes
    if(contextSchemaTab === null){
        contextSchemaTab = document.createElement('contextSchemasTab');
    }

    var contextSchemaTabContent = document.getElementById("contextSchemaTabContent");
    if (contextSchemaTabContent != null) {
        return
    }

    contextSchemaTabContent = document.createElement("contextSchemaTabContent");
    contextSchemaTab.appendChild(contextSchemaTabContent);
    contextSchemaTabContent.setAttribute("id", "contextSchemaTabContent");
    contextSchemaTabContent.addEventListener('contextmenu', rightClickMenu_scopePreserver("contextSchemaTabContent", "ContextSchema",null,null));

    var contextSchemaTable = createTable("contextSchemaTable");
    contextSchemaTabContent.appendChild(contextSchemaTable);

    var contextSchemaTableHeader = document.createElement("thead");
    contextSchemaTable.appendChild(contextSchemaTableHeader);
    contextSchemaTableHeader.setAttribute("id", "contextSchemaTableHeader");

    var contextSchemaTableHeaderRow = document.createElement("tr");
    contextSchemaTableHeader.appendChild(contextSchemaTableHeaderRow);
    contextSchemaTableHeaderRow.setAttribute("id", "contextSchemaTableHeaderRow");

    var contextSchemaTableKeyHeader = document.createElement("th");
    contextSchemaTableHeaderRow.appendChild(contextSchemaTableKeyHeader);
    contextSchemaTableKeyHeader.setAttribute("id", "contextSchemaTableKeyHeader");
    contextSchemaTableKeyHeader.appendChild(document.createTextNode("Context Item"));

    var contextSchemaTableSchemaFlavourHeader = document.createElement("th");
    contextSchemaTableHeaderRow.appendChild(contextSchemaTableSchemaFlavourHeader);
    contextSchemaTableSchemaFlavourHeader.setAttribute("id", "contextSchemaTableJavatypeHeader");
    contextSchemaTableSchemaFlavourHeader.appendChild(document.createTextNode("Schema Flavour"));

    var contextSchemaTableSchemaDefHeader = document.createElement("th");
    contextSchemaTableHeaderRow.appendChild(contextSchemaTableSchemaDefHeader);
    contextSchemaTableSchemaDefHeader.setAttribute("id", "contextSchemaTableJavatypeHeader");
    contextSchemaTableSchemaDefHeader.appendChild(document.createTextNode("Context Item Schema Definition"));

    var contextSchemaTableBody = document.createElement("tbody");
    contextSchemaTable.appendChild(contextSchemaTableBody);
    contextSchemaTable.setAttribute("id", "contextSchemaTableBody");
}

//Testing purposes
export {
    contextSchemaTab_activate,
    contextSchemaTab_deactivate,
    contextSchemaTab_reset,
    contextSchemaTab_create
}