source: prototipo_portal_2018/prototipo/static/js/functions/firmarDocumentoBDOC.js @ 8ba421e

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

Se los log

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