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

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

Move jobs management and execution endpoint from /processes/{procssId}/jobs to /jobs

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