[9be8a48] | 1 | |
---|
[4f077af] | 2 | function 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 | |
---|
[9be8a48] | 10 | //Obtenemos la informacion de documento |
---|
| 11 | function 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 | |
---|
[4f077af] | 20 | INFO_SIGN_BDOC = SerealizeMyJsonBDOCf(response); |
---|
[9be8a48] | 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 | |
---|
[a210970] | 37 | function 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>"; |
---|
[8ba421e] | 58 | document.getElementById("log").innerHTML = ''; |
---|
[4f077af] | 59 | document.getElementById("respuesta").innerHTML = '<center><h2>Archivo firmado correctamente:</h2> <br>'+linkToDownload+'</center>'; |
---|
[a210970] | 60 | |
---|
[9be8a48] | 61 | InfoSignDocumentDataTableBDOC(data['signedFileId']); |
---|
[a210970] | 62 | }, |
---|
| 63 | error: function(jqXHR, textStatus, errorThrown){ |
---|
| 64 | alert('error en /bdocs/resenas: ' + textStatus); |
---|
| 65 | $("#respuesta").html("error en /bdocs/resenas: " + textStatus); |
---|
| 66 | } |
---|
| 67 | }); |
---|
[025e022] | 68 | |
---|
| 69 | |
---|
| 70 | } |
---|
| 71 | |
---|
| 72 | |
---|
| 73 | // ahora llamar al ajax de obtener la resena del bdoc |
---|
| 74 | function 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 | |
---|
[a210970] | 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; |
---|
[025e022] | 98 | if(err == "Error: user_cancel") { |
---|
[a210970] | 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 | } |
---|
[025e022] | 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 |
---|
| 126 | function 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 |
---|
| 172 | function 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 | |
---|
[9be8a48] | 201 | $("#Form-sign-bdoc").on('submit', function(even) { |
---|
| 202 | even.preventDefault(); |
---|
| 203 | |
---|
[025e022] | 204 | var formData = new FormData(); |
---|
| 205 | for (var i=0; i<$("#file-sign-bdoc")[0].files.length; i++){ |
---|
[a210970] | 206 | formData.append("upload", $("#file-sign-bdoc")[0].files[i]); |
---|
[025e022] | 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 | }); |
---|