source: sandbox/webservice/restclient/index.html @ 6092

Revision 6092, 13.2 KB checked in by asaikawa, 12 years ago (diff)

Ticket #2507 - Inserindo codigo de um cliente para a realizacao dos testes de consumo dos webservices

  • Property svn:executable set to *
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2<HTML>
3<HEAD>
4        <script type="text/javascript" src="./libs/jquery.js"></script>
5        <script type="text/javascript" src="./libs/jsonreport.js"></script>
6        <script type="text/javascript" src="./libs/Base64.js"></script>
7        <TITLE>..:: P&aacute;gina de Teste - REST API ::..</TITLE>
8        <META http-equiv="Content-Type" content="text/html; charset=utf-8">
9        <style type="text/css">
10                * {
11                        font-family: sans-serif, verdana, arial;
12                        font-size: 12px;
13                }
14                table {
15                        background:#ECECEC;
16                        padding:5px;
17                        border:1px solid black
18                }
19
20                .loader
21                {
22                        position:absolute;
23                    padding: 5px;
24                    right:10px;
25                    top:10px;
26                    color: black;
27                    text-align:center;
28                    border: solid 1px black;
29                    z-index: 200;
30                }
31        </style>
32        </HEAD>
33        <BODY>
34                <DIV style="display:none" class="loader" id="loader">
35                        <label id="loader_msg"></label><br>
36                        <img src="./images/loader.gif"/>
37                </DIV>
38                <TABLE>
39                        <TR><TD><b>Servidor</b></TD>
40                                <TD><select id="server"><option value="">Selecionar ....</option></select>
41                                        <input id="bt_servers" type="button" value="Listar Servidores" onclick="javascript:jExecute('AvailableServers')"/>
42                                        <input  id="bt_version" type="button" value="Vers&atilde;o API" onclick="javascript:jExecute('ExpressoVersion')"/>
43                                        <input  id="bt_version" type="button" value="Teste Erro" onclick="javascript:jExecute('Teste')"/>
44                                </TD>
45                        </TR>
46                        <TR><TD><b>Login</b></TD><TD><input type="text" id="user"/></TD></TR>
47                        <TR><TD><b>Senha</b></TD><TD><input type="password" id="password"/>
48                                        <input id="bt_login" type="button" value="Conectar" onclick="javascript:jExecute('Login')"/>
49                                        <input id="bt_logout" type="button" value="Desconectar" onclick="javascript:jExecute('Logout')"/>
50                                        </TD></TR>
51                </TABLE>
52                <BR><BR>
53                <TABLE>
54                        <TR><TD><b>Esvaziar Lixeira</b></TD>
55                                <TD><input id="bt_esvaziar_lixeira" type="button" value="Esvaziar Lixeira" onclick="javascript:jExecute('CleanTrash')"/></TD>
56                        </TR>
57                        <TR><TD><b>Suporte/Sugest&atilde;o</b></TD>
58                                <TD><textarea id="text_message">Texto do e-mail de suporte/sugestao!!</textarea></TD>
59                                <TD><input id="bt_sugestao" type="button" value="Enviar Sugest&atilde;o" onclick="javascript:jExecute('SendSupportFeedback')"/></TD>
60                        </TR>
61                </TABLE><br><br>
62                <TABLE>
63                        <TR><TD><b>Pastas IMAP</b></TD>
64                                <TD><input type="text" id="search_folders"/><input id="bt_listFolders" type="button" value="Pesquisar" onclick="javascript:jExecute('Mail/Folders')"/>
65                                        <select id="folder_id" onchange="javascript:jExecute('Mail/Messages')"><option value="INBOX">Selecionar pasta</option></select>
66                                        <select id="message_id" onchange="javascript:jExecute('getMessage')"><option value="-1">Selecionar mensagem</option></select>
67                                </TD>
68                        </TR>
69                        <TR><TD><b>Contatos</b></TD>
70                                <TD><input type="text" id="search_contacts"/><input id="bt_contacts" type="button" value="Pesquisar" onclick="javascript:jExecute('getContacts')"/>
71                                        <select id="sel_contacts" onchange="javascript:jExecute('getContactPicture')"><option value="-1">Selecionar contato</option></select>
72
73                                </TD>
74                        </TR>
75                        <TR><TD><b>Catalogo</b></TD>
76                                <TD>
77                                        <input type="text" id="search_catalog"/><input id="bt_catalog" type="button" value="Pesquisar" onclick="javascript:jExecute('getCatalog')"/>
78                                        <select id="sel_catalog" onchange="javascript:jExecute('getCatalogPicture')"><option value="-1">Selecionar contato</option></select>
79                                </TD>
80                        </TR>
81                </TABLE>
82                <BR><BR>
83                <TABLE>
84                        <TR><TD><b>Resposta JSON-RPC</b>
85                                <input id="bt_clear" type="button" value="Limpar Sa&iacute;da" onclick="javascript:clearOut()"/>
86                        </TD></TR>
87                        <TR><TD style="background:#FFF !important;padding:0px;">
88                                <img id="img_photo" style="display:none;"/>
89                                <div id="message" class="jsonreport"></div>
90                        </TD></TR>
91                </TABLE>
92        </BODY>
93        <script language="Javascript">
94
95        function clearOut(){
96                $('#message').html("");
97                $('#img_photo').hide();
98        }
99
100        function dispatch(_action, response, _search){
101                var a_response = jQuery.parseJSON(response);
102                if(a_response){
103
104                        if(a_response.result && a_response.result.auth) {
105                                setCookie ("auth", a_response.result.auth);
106                                setCookie ("server", $('#server').val());
107                                $('#user').attr("disabled", true);
108                                $('#password').attr("disabled", true);
109                                $('#server').attr("disabled", true);
110
111                                $('#bt_servers').attr("disabled", true);
112                                $('#bt_login').attr("disabled", true);
113                                $('#bt_logout').attr("disabled", false);
114                                $('#bt_listFolders').attr("disabled", false);
115                                $('#bt_contacts').attr("disabled", false);
116                                $('#bt_catalog').attr("disabled", false);
117                                $('#sel_contacts').attr("disabled", false);
118                                $('#sel_catalog').attr("disabled", false);
119                                $('#search_contacts').attr("disabled", false);
120                                $('#search_catalog').attr("disabled", false);
121                                $('#search_folders').attr("disabled", false);
122
123                        }
124                        else if(_action == 'Logout' || (a_response.error && a_response.error.code == 7 )) {
125                                $('#user').attr("disabled", false);
126                                $('#password').attr("disabled", false);
127                                $('#server').attr("disabled", false);
128
129                                $('#bt_servers').attr("disabled", false);
130                                $('#bt_login').attr("disabled", false);
131                                $('#bt_logout').attr("disabled", true);
132                                $('#bt_contacts').attr("disabled", true);
133                                $('#bt_catalog').attr("disabled", true);
134                                $('#bt_listFolders').attr("disabled", true);
135
136                                $('#folder_id').attr("disabled", true);
137                                $('#message_id').attr("disabled", true);
138                                $('#sel_contacts').attr("disabled", true);
139                                $('#sel_catalog').attr("disabled", true);
140                                $('#search_contacts').attr("disabled", true);
141                                $('#search_catalog').attr("disabled", true);
142                                $('#search_folders').attr("disabled", true);
143
144                                clearOut();
145                                setCookie ("auth", '');
146                                setCookie ("server", '');
147                        }
148                }
149                $('#message').append("<BR>");
150                if(a_response.error){
151                        clearOut();
152                        $('#message').append("<font color='red'>[erro "+a_response.error.code+"] "+a_response.error.message+"</font>");
153                        return;
154                }
155                if(a_response.result){
156                        if(typeof(a_response.result) != 'object') {
157                                $('#message').append("<font color='green'>"+a_response.result+"</font>");
158                                return;
159                        }
160                        if(a_response.result.folders) {
161                                $("#folder_id").find('option').remove().end().append("<option value='-1'>Selecionar Pasta</option>");
162                                for (var j in a_response.result.folders){
163                                        $("#folder_id").append("<option value='"+a_response.result.folders[j].folderID+"'>"+
164                                                                                                a_response.result.folders[j].folderName+"</option>");
165                                }
166                                $('#folder_id').attr("disabled", false);
167                        }
168                        if(a_response.result.messages && a_response.result.messages.length > 1) {
169                                $("#message_id").find('option').remove().end().append("<option value='-1'>Selecionar Mensagem</option>");
170                                for (var j in a_response.result.messages){
171                                        var value = a_response.result.messages[j].msgSubject.length > 20 ?
172                                                a_response.result.messages[j].msgSubject.substring(0, 20) : a_response.result.messages[j].msgSubject;
173
174                                        a_response.result.messages[j].msgBodyResume = (a_response.result.messages[j].msgBodyResume);
175                                        $("#message_id").append("<option value='"+a_response.result.messages[j].msgID+"'>"+
176                                                        value+"</option>");
177                                }
178                                $('#message_id').attr("disabled", false);
179                        }
180
181                        var select_id = (_search == '#search_contacts' ? '#sel_contacts' : (_search == '#search_catalog' ? '#sel_catalog' : ''));
182                        if(select_id)
183                                $(select_id).find('option').remove().end().append("<option value='-1'>Selecionar Contato</option>");
184
185                        if(a_response.result.contacts && a_response.result.contacts.length > 0) {
186                                for (var j in a_response.result.contacts){
187                                        var value = (a_response.result.contacts[j].contactFullName != null ? a_response.result.contacts[j].contactFullName  : "Vazio (ID "+a_response.result.contacts[j].contactID+")");
188                                        if(select_id){
189                                                $(select_id).append("<option value='"+a_response.result.contacts[j].contactID+"'>"+
190                                                        value+"</option>");
191                                        }
192                                }
193                                if(a_response.result.contacts && a_response.result.contacts.length == 1) {
194                                        if(a_response.result.contacts[0].contactImagePicture){
195                                                base64Data = a_response.result.contacts[0].contactImagePicture;
196                                                $('#img_photo').attr("src", "data:image/jpg;base64,"+ base64Data);
197                                                $('#img_photo').show();
198                                                return;
199                                        }
200                                        else{
201                                                $('#img_photo').hide();
202                                        }
203                                }
204                                if(select_id){
205                                        $(select_id).attr("disabled", false);
206                                }
207                        }
208
209                        if(a_response.result.servers) {
210                                $("#server").find('option').remove().end().append("<option value=''>Selecionar Servidor</option>");
211                                for (var j in a_response.result.servers){
212                                        $("#server").append("<option value='"+(a_response.result.servers[j].serverUrl+a_response.result.servers[j].serverContext)+"'>"+
213                                                                                                a_response.result.servers[j].serverName+"</option>");
214                                }
215                                $('#bt_version').attr("disabled", false);
216                                $('#bt_clear').attr("disabled", false);
217                        }
218
219                        var html = _.jsonreport(a_response.result);
220
221                        $('#message').html(html);
222                }
223        }
224
225        function jExecute(_action){
226                var _server = getCookie('server') ? getCookie('server') : ($('#server').val() ? $('#server').val() : null);
227                var _contactType;
228                var _contactID;
229                var _search;
230                var _message;
231                var _method = "POST";
232
233                if(_server == null && _action != 'AvailableServers'){
234                        alert("Nenhum servidor foi definido.");
235                        return;
236                }
237
238
239                switch(_action){
240                        case 'Mail/Folders':
241                                _search = '#search_folders';
242                                break;
243                        case 'getMessages':
244                                _action = 'Mail/Messages';
245                                $("#message_id").find('option').remove().end().append("<option value='-1'>Selecionar Mensagem</option>");
246                                break;
247                        case 'getMessage':
248                                _action = 'Mail/Messages';
249                                break;
250                        case 'CleanTrash':
251                                _action = 'Mail/CleanTrash';
252                                break;
253                        case 'SendSupportFeedback':
254                                _action = 'Mail/SendSupportFeedback';
255                                _message = $('#text_message').val();
256                                break;
257                        case 'getContacts':
258                                _action = 'Catalog/Contacts';
259                                _search = '#search_contacts';
260                                _contactType = '1';
261                                $("#sel_contacts").find('option').remove().end().append("<option value='-1'>Selecionar Contato</option>");
262                                break;
263                        case 'getCatalog':
264                                _action = 'Catalog/Contacts';
265                                _search = '#search_catalog';
266                                _contactType = '2';
267                                $("#sel_catalog").find('option').remove().end().append("<option value='-1'>Selecionar Contato</option>");
268                                break;
269                        case 'getContactPicture':
270                                _action = 'Catalog/ContactPicture';
271                                _contactID = '#sel_contacts';
272                                _contactType = '1';
273                                break;
274                        case 'getCatalogPicture':
275                                _action = 'Catalog/ContactPicture';
276                                _contactID = '#sel_catalog';
277                                _contactType = '2';
278                                break;
279
280                }
281
282                $.ajax({
283                                type: "POST",
284                                url: "restclient.php",
285                                data: {params: {
286                                                        user: $('#user').val(),
287                                                        password: $('#password').val(),
288                                                        server: _server,
289                                                        auth:  getCookie('auth') != null ? getCookie('auth') : "",
290                                                        folderID:  $('#folder_id').val(),
291                                                        msgID:  $('#message_id').val(),
292                                                        contactID:  $(_contactID).val(),
293                                                        message: _message,
294                                                        contactType:  _contactType,
295                                                        search:  $(_search).val(),
296                                                        method: _method
297                                                },
298                                                action: _action
299                                },
300                                beforeSend: function() {
301                                        clearOut();
302                                        $('#loader_msg').html("Aguarde, solicitando informa&ccedil;&otilde;es ...");
303                    $('#loader').show();
304                 }
305                                ,
306                 success: function(response) {
307                                dispatch(_action, response, _search);
308                        $('#loader').hide();
309                 }
310                                ,
311                                error: function(response) {
312                                alert("Serviço indisponível");
313                        $('#loader').hide();
314                 }
315
316                        });
317
318        }
319
320        function getCookie(c_name)
321        {
322        var i,x,y,ARRcookies=document.cookie.split(";");
323        for (i=0;i<ARRcookies.length;i++)
324          {
325          x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
326          y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
327          x=x.replace(/^\s+|\s+$/g,"");
328          if (x==c_name)
329            {
330                if(y == "")
331                        return null;
332                else
333                return unescape(y);
334            }
335          }
336        }
337
338        function setCookie(c_name,value,exdays)
339        {
340        var exdate=new Date();
341        exdate.setDate(exdate.getDate() + exdays);
342        var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
343        document.cookie=c_name + "=" + c_value;
344        }
345        // Reset values
346        var isLoggedIn = false;
347        if(getCookie('auth') != null && getCookie('server') != null){
348                isLoggedIn = true;
349        }
350
351        $('#user').attr("disabled", isLoggedIn ? true : false);
352        $('#password').attr("disabled", isLoggedIn ? true : false);
353        $('#server').attr("disabled", isLoggedIn ? true : false);
354        $('#bt_servers').attr("disabled", isLoggedIn ? true : false);
355        $('#bt_login').attr("disabled", isLoggedIn ? true : false);
356        $('#bt_logout').attr("disabled", isLoggedIn ? false : true);
357        $('#bt_listFolders').attr("disabled", isLoggedIn ? false : true);
358        $('#folder_id').attr("disabled", isLoggedIn ? false : true);
359        $('#message_id').attr("disabled", isLoggedIn ? false : true);
360        $('#contact_id').attr("disabled", isLoggedIn ? false : true);
361        $('#sel_contacts').attr("disabled", isLoggedIn ? false : true);
362        $('#sel_catalog').attr("disabled", isLoggedIn ? false : true);
363        $('#search_contacts').attr("disabled", isLoggedIn ? false : true);
364        $('#search_catalog').attr("disabled", isLoggedIn ? false : true);
365        $('#search_folders').attr("disabled", isLoggedIn ? false : true);
366        $('#bt_contacts').attr("disabled", isLoggedIn ? false : true);
367        $('#bt_catalog').attr("disabled", isLoggedIn ? false : true);
368        $('#bt_version').attr("disabled", false);
369        $('#bt_clear').attr("disabled", false);
370        </script>
371</html>
Note: See TracBrowser for help on using the repository browser.