source: prototipo_portal_2018/prototipo/static/js/functions/firmarDocumentoPdf.js @ 8d37379

Last change on this file since 8d37379 was 8d37379, checked in by Antonio Araujo <aaraujo@…>, 7 years ago

Revisión del código para subir archivo al servidor murachí.

  • Property mode set to 100644
File size: 6.0 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("upload", $("#file-to-upload2")[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                                                // agregar aqui los parametros x,y,pagina
48                                                });
49                                       
50                                        // ahora llamar al ajax de obtener la resena del pdf
51                                        $.ajax({
52                                                type: 'POST',
53                                                contentType: 'application/json',                               
54                                                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs",
55                                                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs",
56                                                dataType: "json",
57                                                data: parameters,               
58                                                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
59                                                success: function(data, textStatus, jqXHR){
60                                                        var json_x = data;
61                                                        var hash = json_x['hash']; 
62                                                        //alert("hash recibido del servidor "+hash);
63                                                       
64                                                        var hashtype = "SHA-256";
65                                                        var lang = "eng";
66                                                       
67                                                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) {
68                                                               
69
70
71                                                       
72                                                        $.ajax({
73                                                                        type: 'POST',
74                                                                        contentType: 'application/json',
75                                                                        //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas",
76                                                                        url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas",
77                                                                        dataType: 'json',
78                                                                        data: JSON.stringify({"signature":signature.hex}),
79                                                                        headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
80                                                                        success: function(data, textStatus, jqXHR){
81
82                                                                                alert('Archivo firmado correctamente: ' + data['signedFileId']);
83                                                                               
84                                                                               
85                                                                                var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
86                                                                                //alert(linkToDownload);
87                                                                                document.getElementById("respuesta").innerHTML = linkToDownload; 
88                                                                               
89
90                                                                                                                                                                               
91                                                                               
92                                                                        },
93                                                                        error: function(jqXHR, textStatus, errorThrown){
94                                                                                alert('error en pdfs/resenas: ' + textStatus);
95                                                                                $("#respuesta").html("error en pdfs/resenas: " + textStatus);
96                                                                        }
97                                                                });
98                                                                                                       
99                                                        }, function(err) {
100                                                                log_text("sign() failed: " + err);
101
102                                                                        var error;
103                                    log_text("sign() failed: " + err);
104                                    if(err == "Error: user_cancel") {
105                                        alert("sign() failed: El usuario cancelo la operación");
106                                        error = "El usuario cancelo la operación"; 
107                                     }     
108                                     else if(err == "Error: no_certificates") {
109                                         alert("sign() failed: No hay certificado disponible");
110                                         error = "No hay certificado disponible";
111                                     }
112                                     else if(err == "Error: no_implementation") {
113                                         alert("sign() failed: No hay soporte para el manejo del certificado");
114                                         error = "No hay soporte para el manejo del certificado";
115                                     }
116
117                                                                //alert("sign() failed: " + err);
118                                                                $("#respuesta").html("sign() failed: " + error);
119                                                });
120                                                       
121                                                },                                                             
122                                                error: function(jqXHR, textStatus, errorThrown){
123                                                        //alert('error: ' + textStatus);
124                                                        //var responseText = jQuery.parseJSON(jqXHR.responseText);
125                                                        alert('ajax error function: ' + jqXHR.responseText);
126                                                        $("#respuesta").html("error function: " + jqXHR.responseText);
127                                                }
128                                               
129                               
130                                        });
131                                       
132                                       
133                                       
134                                }, function(err) {
135                                        log_text("getCertificate() failed: " + err);
136                        var error;
137                        if(err == "Error: user_cancel") {
138                            alert("getCertificate() failed: El usuario cancelo la operación"    );
139                            error = "El usuario cancelo la operación"; 
140                         }     
141                         else if(err == "Error: no_certificates") {
142                             alert("getCertificate() failed: No hay certificado disponible")    ;
143                             error = "No hay certificado disponible";
144                         }
145                         else if(err == "Error: no_implementation") {
146                             alert("getCertificate() failed: No hay soporte para el manejo del certificado");
147                             error = "No hay soporte para el manejo del certificado";
148                                                }
149                                        //alert("getCertificate() failed: " + err);
150                                        $("#respuesta").html("getCertificate() failed: " + error);
151                                });
152                               
153                               
154            },
155                error: function(response) {
156                        //Que se ejecuta cuando finalice la petición de con error
157                                $("#respuesta").html('Error...!!!');
158                        alert("ocurrio un error")
159                        }
160    });
161       
162
163
164
165
166
167});
Note: See TracBrowser for help on using the repository browser.