source: trunk/zoo-project/zoo-services/utils/open-api/static/openapi.js @ 968

Last change on this file since 968 was 968, checked in by djay, 3 years ago

Add websocketd container to docker-compose and make the OGC API - Processes and it basic UI available.

File size: 7.8 KB
Line 
1var socket;
2function addElementToList(){
3    var lClosure=arguments[0];
4    var isOver=false;
5    var cnt=0;
6    lClosure.parent().parent().find("div").each(function(){
7        if(isOver) return;
8        if($(this).hasClass("btn-group")) isOver=true;
9        if($(this).hasClass("input-group")){
10            lClosure.parent().parent().append($(this)[0].outerHTML);
11            cnt++;
12        }
13    });
14    if(lClosure.parent().parent().find(".input-group").length>cnt)
15        lClosure.next().attr("disabled",false);
16    else
17        lClosure.next().attr("disabled",true);
18}
19function delElementToList(){
20    var lClosure=arguments[0];
21    var isOver=false;
22    var cnt=0;
23    lClosure.parent().parent().find("div").each(function(){
24        if(isOver) return;
25        if($(this).hasClass("btn-group")) isOver=true;
26        if($(this).hasClass("input-group")) cnt++;
27    });
28    if(lClosure.parent().parent().find(".input-group").length>cnt)
29        for(var i=0;i<cnt;i++)
30            lClosure.parent().parent().find(".input-group").last().remove();
31    if(lClosure.parent().parent().find(".input-group").length==cnt)
32        lClosure.attr("disabled",true);
33    else
34        lClosure.attr("disabled",false);
35}
36
37function loadRequest(){
38    var requestObject={
39        "inputs":{},
40        "outputs":{},
41        "subscriber":{},
42        "mode": $("select[name='main_value_mode']").val(),
43        "response": $("select[name='main_value_format']").val()
44    };
45    if($('input[name="oapi_ioAsArray"]').val()=="true"){
46        requestObject["inputs"]=[];
47        requestObject["outputs"]=[];
48    }
49    for(var i=0;i < System["JSON_STR"]["inputs"].length;i++){
50        var cName=System["JSON_STR"]["inputs"][i]["id"].replace(".","_");
51        var selector="input[name='input_value_"+cName+"'],"+
52            "select[name='input_value_"+cName+"']";
53        if($(selector).val()!=""){
54            $(selector).each(function(){
55                var cInput={};
56                if($('input[name="oapi_ioAsArray"]').val()=="true")
57                    cInput={"id": System["JSON_STR"]["inputs"][i]["id"], "input": {}};
58                if(System["JSON_STR"]["inputs"][i]["input"]["formats"]){
59                    var selector1="input[name='input_format_"+cName+"'],"+
60                        "select[name='input_format_"+cName+"']";
61                    console.log($(this).parent().prev().find("select").val());
62                    if($('input[name="oapi_ioAsArray"]').val()=="true"){
63                        cInput["input"]["format"]={
64                            "mimeType": $(this).parent().prev().find("select").val()
65                        };
66                        cInput["input"]["href"]=$(this).val();
67                    }else{
68                        cInput["format"]={
69                            "mimeType": $(this).parent().prev().find("select").val()
70                        };
71                        cInput["href"]=$(this).val();
72                    }
73                }
74                else{
75                    if(System["JSON_STR"]["inputs"][i]["input"]["literalDataDomains"]){
76                        console.log(System["JSON_STR"]["inputs"][i]["input"]["literalDataDomains"]);
77                        if($('input[name="oapi_ioAsArray"]').val()=="true"){
78                            cInput["input"]["dataType"]={
79                                "name": System["JSON_STR"]["inputs"][i]["input"]["literalDataDomains"][0]["dataType"]["name"]
80                            };
81                            cInput["input"]["value"]=$(this).val();
82                        }else{
83                            cInput["dataType"]={
84                                "name": System["JSON_STR"]["inputs"][i]["input"]["literalDataDomains"][0]["dataType"]["name"]
85                            };
86                            cInput["value"]=$(this).val();
87                        }                           
88                    }
89                }
90                console.log(cInput);
91                if($('input[name="oapi_ioAsArray"]').val()=="true")
92                    requestObject["inputs"].push(cInput);
93                else{
94                    if(!requestObject["inputs"][System["JSON_STR"]["inputs"][i]["id"]])
95                        requestObject["inputs"][System["JSON_STR"]["inputs"][i]["id"]]=cInput;
96                    else{
97                        if(!requestObject["inputs"][System["JSON_STR"]["inputs"][i]["id"]].length){
98                            var saveObject=requestObject["inputs"][System["JSON_STR"]["inputs"][i]["id"]];
99                            requestObject["inputs"][System["JSON_STR"]["inputs"][i]["id"]]=[saveObject];
100                        }
101                        requestObject["inputs"][System["JSON_STR"]["inputs"][i]["id"]].push(cInput);
102                    }
103                }
104            });
105        }
106    }
107    console.log(System["JSON_STR"]["outputs"]);
108    for(var i=0;i < System["JSON_STR"]["outputs"].length;i++){
109        var cOutput={};
110        console.log($('input[name="oapi_ioAsArray"]').val()=="true");
111        if($('input[name="oapi_ioAsArray"]').val()=="true")
112            cOutput={"id": System["JSON_STR"]["outputs"][i]["id"]};
113        var cName=System["JSON_STR"]["outputs"][i]["id"].replace(/\./g,"_");
114        if(System["JSON_STR"]["outputs"][i]["output"]["formats"]){
115            var selector="select[name='format_"+cName+"']";
116            cOutput["format"]={
117                "mimeType": $(selector).val()
118            };
119        }
120        else{
121            if(System["JSON_STR"]["outputs"][i]["output"]["literalDataDomains"]){
122                cOutput["dataType"]={
123                    "name": System["JSON_STR"]["outputs"][i]["output"]["literalDataDomains"][0]["dataType"]["name"]
124                };
125            }
126        }
127        var selector1="select[name='transmission_"+cName+"']";
128        cOutput["transmissionMode"]=$(selector1).val();
129        if($('input[name="oapi_ioAsArray"]').val()=="true")
130            requestObject["outputs"].push(cOutput);
131        else
132            requestObject["outputs"][System["JSON_STR"]["outputs"][i]["id"]]=cOutput;
133    }
134   
135    if($("input[name='main_value_successUri']").val()!="")
136        requestObject["subscriber"]["successUri"]=$("input[name='main_value_successUri']").val();
137    if($("input[name='main_value_inProgressUri']").val()!="")
138        requestObject["subscriber"]["inProgressUri"]=$("input[name='main_value_inProgressUri']").val();
139    if($("input[name='main_value_failedUri']").val()!="")
140        requestObject["subscriber"]["failedUri"]=$("input[name='main_value_failedUri']").val();
141    $(".modal").find("textarea").first().val(js_beautify(JSON.stringify(requestObject)));
142    $("#exampleModal").modal('toggle');
143    $('#result').html("");
144    $("#exampleModal").find(".btn-primary").off('click');
145    $("#exampleModal").find(".btn-primary").click(function(){
146        $('#result').html("");
147        if(!socket && requestObject["mode"]!="sync")
148            socket = new WebSocket($('input[name="oapi_wsUrl"]').val());
149        else
150            $.ajax({
151                contentType: "application/json",
152                data: $("textarea").val(),
153                type: "POST",
154                url: $('input[name="oapi_jobUrl"]').val(),
155                success: function (msg) {
156                    console.log(msg);
157                    var cObj=msg;
158                    $('#result').html(js_beautify(JSON.stringify(msg)));
159                },
160                error: function(){
161                    console.log(arguments);
162                    $('#result').html(js_beautify(JSON.stringify(arguments[0].responseJSON)));
163                },
164            });
165        if(requestObject["mode"]=="sync"){
166            return;
167        }
168        socket.onopen = function () {
169            console.log('Connected!');
170            socket.send("SUB "+$('input[name="oapi_reqID"]').val());
171        };
172        socket.onmessage = function(event) {
173            console.log('MESSAGE: ' + event.data);
174            if(event.data=="1")
175                $.ajax({
176                    contentType: "application/json",
177                    data: $("textarea").val(),
178                    type: "POST",
179                    url: $('input[name="oapi_jobUrl"]').val(),
180                    success: function (msg) {
181                        console.log(msg);
182                    },
183                    error: function(){
184                        console.log(arguments);
185                    },
186                });
187            else{
188                //progressBar
189                $("#progress_details").show();
190                var cObj=JSON.parse(event.data);
191                if(cObj["jobID"]){
192                    $("#prgress_description").html(cObj["jobID"]+": "+cObj["message"]);
193                    $(".progress-bar").attr("aria-valuenow",cObj["progress"]);
194                    $(".progress-bar").css("width",cObj["progress"]+"%");
195                }else{
196                    $("#progress_details").hide();
197                    if(cObj["outputs"])
198                        $('#result').html(js_beautify(JSON.stringify(cObj["outputs"])));
199                    else
200                        $('#result').html(cObj["message"]);
201                }
202            }
203        };
204    });
205}
Note: See TracBrowser for help on using the repository browser.

Search

ZOO Sponsors

http://www.zoo-project.org/trac/chrome/site/img/geolabs-logo.pnghttp://www.zoo-project.org/trac/chrome/site/img/neogeo-logo.png http://www.zoo-project.org/trac/chrome/site/img/apptech-logo.png http://www.zoo-project.org/trac/chrome/site/img/3liz-logo.png http://www.zoo-project.org/trac/chrome/site/img/gateway-logo.png

Become a sponsor !

Knowledge partners

http://www.zoo-project.org/trac/chrome/site/img/ocu-logo.png http://www.zoo-project.org/trac/chrome/site/img/gucas-logo.png http://www.zoo-project.org/trac/chrome/site/img/polimi-logo.png http://www.zoo-project.org/trac/chrome/site/img/fem-logo.png http://www.zoo-project.org/trac/chrome/site/img/supsi-logo.png http://www.zoo-project.org/trac/chrome/site/img/cumtb-logo.png

Become a knowledge partner

Related links

http://zoo-project.org/img/ogclogo.png http://zoo-project.org/img/osgeologo.png