source: prototipo_portal_2018/prototipo/static/js/functions/firmarDocumentoBDOC.js @ a210970

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

Se agrego la funcionalidad de la firma bdoc y se modifico el datatable

  • Property mode set to 100644
File size: 5.9 KB
Line 
1function FinalizarFirmaBDOC(signature, fileId){
2
3        $.ajax({
4                type: 'POST',
5                contentType: 'application/json',
6                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/resenas",
7                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/post",
8                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/post",
9                dataType: 'json',
10                data: JSON.stringify({"signature":signature.hex, "containerId":fileId}),
11                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
12                success: function(data, textStatus, jqXHR){
13                        /*
14                        var json_x = data;
15                        var msg = json_x['message'];                                                                                           
16                        alert('Archivo firmado en el servidor: ' + msg);
17                        */
18                       
19                        //var linkToDownload = "<a href=\"https://192.168.12.125:8443/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
20                        //var linkToDownload = "<a href=\"https://172.16.137.11:8443/Murachi/murachi/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
21                        var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>";
22                        document.getElementById("respuesta").innerHTML = 'Archivo firmado correctamente: ' + data['signedFileId'] +'<br>'+linkToDownload; 
23
24                },
25                error: function(jqXHR, textStatus, errorThrown){
26                        alert('error en /bdocs/resenas: ' + textStatus);
27                        $("#respuesta").html("error en /bdocs/resenas: " + textStatus);
28                }
29        });
30                                                                               
31
32}
33
34
35// ahora llamar al ajax de obtener la resena del bdoc
36function ObtenerHashPDFServerBDOC(parameters, cert, fileId){   
37
38        $.ajax({
39                type: 'POST',
40                contentType: 'application/json',                               
41                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs",
42                //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/firmas/pre",
43                url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/firmas/pre",
44                dataType: "json",
45                data: parameters,
46                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
47                success: function(data, textStatus, jqXHR){
48                        var json_x = data;
49                        var hash = json_x['hash']; 
50                        var hashtype = "SHA-256";
51                        var lang = "eng";
52                       
53                        window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(
54                                function(signature) {                                                           
55                                FinalizarFirmaBDOC(signature, fileId);
56                        }, 
57                        function(err) {
58                                log_text("sign() failed: " + err);             
59                    var error;
60                                        if(err == "Error: user_cancel") {
61                                            alert("sign() failed: El usuario cancelo la operación");
62                                            error = "El usuario cancelo la operación"; 
63                                        }     
64                                        else if(err == "Error: no_certificates") {
65                                            alert("sign() failed: No hay certificado disponible");
66                                            error = "No hay certificado disponible";
67                                        }
68                                        else if(err == "Error: no_implementation") {
69                                            alert("sign() failed: No hay soporte para el manejo del certificado");
70                                            error = "No hay soporte para el manejo del certificado";
71                                        }       
72                                $("#respuesta").html("sign() failed: " + error);
73                });
74                       
75                },                                                             
76                error: function(jqXHR, textStatus, errorThrown){
77                        //alert('error: ' + textStatus);
78                        //var responseText = jQuery.parseJSON(jqXHR.responseText);
79                        alert('ajax error function: ' + jqXHR.responseText);
80                        $("#respuesta").html("error function: " + jqXHR.responseText);
81                }
82               
83        });
84
85}
86
87// Obtenemos el certificado Bdoc
88function ObtenerCertificadoFirmanteBDOC(response){
89
90        // identificador del archivo en el servidor
91        var fileId = response.containerId.toString();
92       
93        // seleccionar certificado del firmante
94        var cert;
95        window.hwcrypto.getCertificate({lang: "en"}).then(
96                function(response) {
97                        var cert = response;                   
98                        var parameters = JSON.stringify({
99                                "fileId":fileId,
100                                "certificate":cert.hex,
101                                "city":"Merida",
102                                "state":"Merida",
103                                "postalCode":"5101",
104                                "country":"Venezuela",
105                                "role":"Analista",
106                                "addSignature":false
107                                });
108                       
109                        // ahora llamar al ajax de obtener la resena del pdf
110                        ObtenerHashPDFServerBDOC(parameters, cert, fileId);     
111                }, 
112                function(err) {
113                        log_text("getCertificate() failed: " + err);
114                        var error;
115                        if(err == "Error: user_cancel") {
116                            alert("getCertificate() failed: El usuario cancelo la operación");
117                            error = "El usuario cancelo la operación"; 
118                        }     
119                        else if(err == "Error: no_certificates") {
120                            alert("getCertificate() failed: No hay certificado disponible");
121                            error = "No hay certificado disponible";
122                        }
123                        else if(err == "Error: no_implementation") {
124                            alert("getCertificate() failed: No hay soporte para el manejo del certificado");
125                            error = "No hay soporte para el manejo del certificado";
126                        }
127                        $("#respuesta").html("getCertificate() failed: " + error);
128                });
129                                                       
130
131}
132
133// Primer paso subimos documentos al servidor
134function SubirDocumentServerBdoc(formData){
135   
136    $.ajax({
137        //url: "https://192.168.12.125:8443/Murachi/0.1/archivos/bdocs/cargas",
138        url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/bdocs/cargas",
139        type: "post",
140        dataType: "json",
141        data: formData,
142        cache: false,
143        contentType: false,
144                processData: false,
145                headers: {"Authorization":"Basic YWRtaW46YWRtaW4="},
146                success: function(response) {                   
147                        ObtenerCertificadoFirmanteBDOC(response);
148
149        },     
150        error: function(xhr, status, error) {
151                //Que se ejecuta cuando finalice la petición de con error
152                        $("#respuesta").html('Error...!!!');
153               
154                        alert(xhr.responseText);
155                        alert(error);
156               
157                        alert("ocurrio un error en cargas");                                           
158                }
159    });
160}
161
162
163$("#Form-sign-bdoc").on('submit', function(event) {
164        event.preventDefault();
165
166        var formData = new FormData(); 
167
168    for (var i=0; i<$("#file-sign-bdoc")[0].files.length; i++){
169                formData.append("upload", $("#file-sign-bdoc")[0].files[i]);
170        }       
171   
172    SubirDocumentServerBdoc(formData);
173
174});
175
176
177
178$("#button_SignBDOC").on('click', function() {
179        $("#file-sign-bdoc").trigger('click');
180
181});
182
183
184$("#file-sign-bdoc").on('change', function() {
185
186        $("#sign_bdoc").show();
187
188});
Note: See TracBrowser for help on using the repository browser.