source: prototipo_portal_2018/prototipo/static/js/functions/firmarDocumentoPdf.js @ d5b455e

Last change on this file since d5b455e was d5b455e, checked in by José Sulbarán <jsulbaran@…>, 7 years ago

Agrego el ajax

  • Property mode set to 100644
File size: 5.9 KB
Line 
1
2$("#form").on('submit', function() {
3
4        //var formData = new FormData(document.getElementById("form"));
5        var formData = new FormData();
6   
7   
8    formData.append("uploads", $("#file-to-normal")[0].files[0] );
9
10    console.log(formData);
11    console.log($(this));
12
13    $.ajax({
14        //url: "https://192.168.12.125:8443/Murachi/0.1/archivos",               
15        url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos",
16        type: "post",
17        dataType: "json",
18        data: formData,
19        cache: false,
20        contentType: false,
21                processData: false,
22                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
23                success: function(response) {
24                                //alert(JSON.stringify(response));
25                                var html = manejoJsonPDF(JSON.stringify(response));
26                                //alert(html);
27                                //alert("ver respuesta")
28                                document.getElementById("respuesta").innerHTML = html;
29                               
30                                // identificador del archivo en el servidor
31                                var fileId = response.fileId.toString();
32
33
34                                var cert;
35                                window.hwcrypto.getCertificate({lang: "en"}).then(function(response) {
36                                        var cert = response;
37
38
39                                       
40                                        var parameters = JSON.stringify({
41                                                "fileId":fileId,
42                                                "certificate":cert.hex,
43                                                "reason":"Certificado",
44                                                "location":"CENDITEL",
45                                                "contact":"582746574336",
46                                                "signatureVisible":"true"
47                                                });
48                                       
49                                        // ahora llamar al ajax de obtener la resena del pdf
50                                        $.ajax({
51                                                type: 'POST',
52                                                contentType: 'application/json',                               
53                                                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs",
54                                                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
55                                                dataType: "json",
56                                                data: parameters,               
57                                                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
58                                                success: function(data, textStatus, jqXHR){
59                                                        var json_x = data;
60                                                        var hash = json_x['hash']; 
61                                                        //alert("hash recibido del servidor "+hash);
62                                                       
63                                                        var hashtype = "SHA-256";
64                                                        var lang = "eng";
65                                                       
66                                                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
67                                                               
68
69
70                                                       
71                                                        $.ajax({
72                                                                        type: 'POST',
73                                                                        contentType: 'application/json',
74                                                                        //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas",
75                                                                        url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
76                                                                        dataType: 'json',
77                                                                        data: JSON.stringify({"signature":signature.hex}),
78                                                                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
79                                                                        success: function(data, textStatus, jqXHR){
80
81                                                                                alert('Archivo firmado correctamente: ' + data['signedFileId']);
82                                                                               
83                                                                               
84                                                                                var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
85                                                                                //alert(linkToDownload);
86                                                                                document.getElementById("respuesta").innerHTML = linkToDownload; 
87                                                                               
88
89                                                                                                                                                                               
90                                                                               
91                                                                        },
92                                                                        error: function(jqXHR, textStatus, errorThrown){
93                                                                                alert('error en pdfs/resenas: ' + textStatus);
94                                                                                $("#respuesta").html("error en pdfs/resenas: " + textStatus);
95                                                                        }
96                                                                });
97                                                                                                       
98                                                        }, function(err) {
99                                                                log_text("sign() failed: " + err);
100
101                                                                        var error;
102                                    log_text("sign() failed: " + err);
103                                    if(err == "Error: user_cancel") {
104                                        alert("sign() failed: El usuario cancelo la operación");
105                                        error = "El usuario cancelo la operación"; 
106                                     }     
107                                     else if(err == "Error: no_certificates") {
108                                         alert("sign() failed: No hay certificado disponible");
109                                         error = "No hay certificado disponible";
110                                     }
111                                     else if(err == "Error: no_implementation") {
112                                         alert("sign() failed: No hay soporte para el manejo del certificado");
113                                         error = "No hay soporte para el manejo del certificado";
114                                     }
115
116                                                                //alert("sign() failed: " + err);
117                                                                $("#respuesta").html("sign() failed: " + error);
118                                                });
119                                                       
120                                                },                                                             
121                                                error: function(jqXHR, textStatus, errorThrown){
122                                                        //alert('error: ' + textStatus);
123                                                        //var responseText = jQuery.parseJSON(jqXHR.responseText);
124                                                        alert('ajax error function: ' + jqXHR.responseText);
125                                                        $("#respuesta").html("error function: " + jqXHR.responseText);
126                                                }
127                                               
128                               
129                                        });
130                                       
131                                       
132                                       
133                                }, function(err) {
134                                        log_text("getCertificate() failed: " + err);
135                        var error;
136                        if(err == "Error: user_cancel") {
137                            alert("getCertificate() failed: El usuario cancelo la operación"    );
138                            error = "El usuario cancelo la operación"; 
139                         }     
140                         else if(err == "Error: no_certificates") {
141                             alert("getCertificate() failed: No hay certificado disponible")    ;
142                             error = "No hay certificado disponible";
143                         }
144                         else if(err == "Error: no_implementation") {
145                             alert("getCertificate() failed: No hay soporte para el manejo del certificado");
146                             error = "No hay soporte para el manejo del certificado";
147                                                }
148                                        //alert("getCertificate() failed: " + err);
149                                        $("#respuesta").html("getCertificate() failed: " + error);
150                                });
151                               
152                               
153            },
154                error: function(response) {
155                        //Que se ejecuta cuando finalice la petición de con error
156                                $("#respuesta").html('Error...!!!');
157                        alert("ocurrio un error")
158                        }
159    });
160       
161
162
163
164
165
166});
Note: See TracBrowser for help on using the repository browser.