Changeset 5de7549 in prototipo_portal_2018 for prototipo/static/js/functions
- Timestamp:
- Nov 1, 2017, 4:32:24 PM (7 years ago)
- Branches:
- master
- Children:
- 75b1cd5, c1f6510
- Parents:
- 97cbd49
- Location:
- prototipo/static/js/functions
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
prototipo/static/js/functions/DraggableSortable.js
r327fd70 r5de7549 28 28 if (num == 1){ 29 29 $("#firma_visible #Formato_Visible .text").hide(); 30 console.log(VALOR_X); 30 31 VALOR_X = 0; 31 32 VALOR_Y = 0; -
prototipo/static/js/functions/firmarDocumentoPdf.js
r97cbd49 r5de7549 1 $("#Form-Format-Visible").on('submit', function() { 2 //var formData = new FormData(document.getElementById("form")); 3 var formData = new FormData(); 4 1 2 function True_False(data){ 3 4 if (data == "true" ){ 5 return "Verdadero"; 6 } 7 if (data == "false"){ 8 return "Falso"; 9 } 10 11 } 12 13 function SerealizeMyJson(data){ 14 for (var i = 0; i < data.signatures.length; i++) { 15 data.signatures[i].integrityCheck = True_False(data.signatures[i].integrityCheck); 16 data.signatures[i].signerCertificateStillValid = True_False(data.signatures[i].signerCertificateStillValid); 17 data.signatures[i].signerCertificateValidAtTimeOfSigning = True_False(data.signatures[i].signerCertificateValidAtTimeOfSigning); 18 data.signatures[i].signatureCoversWholeDocument = True_False(data.signatures[i].signatureCoversWholeDocument); 19 data.signatures[i].certificatesVerifiedAgainstTheKeyStore = True_False(data.signatures[i].certificatesVerifiedAgainstTheKeyStore); 20 } 21 return data; 22 } 23 24 25 //Obtenemos la informacion de documento 26 function InfoDocumentDataTablePDF(signedFileId){ 27 28 $.ajax({ 29 url: "https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/"+signedFileId, 30 type: "get", 31 dataType: "json", 32 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, 33 success: function(response) { 34 35 INFO_DATATABLE = SerealizeMyJson(response); 36 DataTablePDF(response); 37 }, 38 error: function(jqXHR, textStatus, errorThrown){ 39 alert(textStatus+", "+ errorThrown+" el documento PDF para mostrar la info de la sign"); 40 } 41 }); 42 } 43 44 45 // Cuarto paso (Se envia la información del token para terminar la firma) 46 function FinalizarFirma(signature){ 47 48 $.ajax({ 49 type: 'POST', 50 contentType: 'application/json', 51 //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas", 52 url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas", 53 dataType: 'json', 54 data: JSON.stringify({"signature":signature.hex}), 55 xhrFields: {withCredentials: true}, 56 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, 57 success: function(data, textStatus, jqXHR){ 58 59 alert('Archivo firmado correctamente: ' + data['signedFileId']); 60 var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>"; 61 //alert(linkToDownload); 62 document.getElementById("respuesta").innerHTML = linkToDownload; 63 64 InfoDocumentDataTablePDF(data['signedFileId']); 65 66 }, 67 error: function(jqXHR, textStatus, errorThrown){ 68 alert('error en pdfs/resenas: ' + textStatus); 69 $("#respuesta").html("error en pdfs/resenas: " + textStatus); 70 } 71 }); 72 73 } 74 75 76 //Tercer paso (Obtenemos el hash de pdf enviado por el servidor y luego procesa la información en el token) 77 function ObtenerHashPDFServer(parameters){ 78 79 $.ajax({ 80 type: 'POST', 81 contentType: 'application/json', 82 //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs", 83 url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs", 84 dataType: "json", 85 data: parameters, 86 xhrFields: {withCredentials: true}, 87 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, 88 success: function(data, textStatus, jqXHR){ 89 var json_x = data; 90 var hash = json_x['hash']; 91 //alert("hash recibido del servidor "+hash); 92 var hashtype = "SHA-256"; 93 var lang = "eng"; 94 95 //Procesa la información 96 window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then( 97 function(signature) { 98 FinalizarFirma(signature.hex); 99 }, 100 function(err) { 101 log_text("sign() failed: " + err); 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 //Segundo paso (Seleccionamos el Certificado Firmante) 135 function ObtenerCertificadoFirmante(response){ 136 137 // identificador del archivo en el servidor 138 var fileId = response.fileId.toString(); 139 var cert; 140 141 window.hwcrypto.getCertificate({lang: "en"}).then( 142 function(response) { 143 var cert = response; 144 var parameters = JSON.stringify({ 145 "fileId":fileId, 146 "certificate":cert.hex, 147 "reason":"Certificado", 148 "location":"CENDITEL", 149 "contact":"582746574336", 150 "signatureVisible":"true" 151 //"page": VALOR_PAGE, 152 //"coord_x": VALOR_X, 153 //"coord_y": VALOR_Y 154 }); 155 156 // ahora llamar al ajax de obtener la resena del pdf 157 ObtenerHashPDFServer(parameters); 158 159 }, 160 function(err) { 161 log_text("getCertificate() failed: " + err); 162 var error; 163 if(err == "Error: user_cancel") { 164 alert("getCertificate() failed: El usuario cancelo la operación" ); 165 error = "El usuario cancelo la operación"; 166 } 167 else if(err == "Error: no_certificates") { 168 alert("getCertificate() failed: No hay certificado disponible") ; 169 error = "No hay certificado disponible"; 170 } 171 else if(err == "Error: no_implementation") { 172 alert("getCertificate() failed: No hay soporte para el manejo del certificado"); 173 error = "No hay soporte para el manejo del certificado"; 174 } 175 //alert("getCertificate() failed: " + err); 176 $("#respuesta").html("getCertificate() failed: " + error); 177 } 178 179 ); 180 } 181 182 183 184 185 // Primer paso (Subir el documento al servidor) 186 function SubirDocumentServer(){ 187 188 var formData = new FormData(); 5 189 formData.append("upload", $("#file-sign-ft_Vble")[0].files[0]); 6 190 … … 17 201 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, 18 202 success: function(response) { 19 //alert(JSON.stringify(response)); 20 var html = manejoJsonPDF(JSON.stringify(response)); 21 document.getElementById("respuesta").innerHTML = html; 22 23 // identificador del archivo en el servidor 24 var fileId = response.fileId.toString(); 25 var cert; 26 27 window.hwcrypto.getCertificate({lang: "en"}).then(function(response) { 28 var cert = response; 29 30 var parameters = JSON.stringify({ 31 "fileId":fileId, 32 "certificate":cert.hex, 33 "reason":"Certificado", 34 "location":"CENDITEL", 35 "contact":"582746574336", 36 "signatureVisible":"true" 37 //"page": VALOR_PAGE, 38 //"coord_x": VALOR_X, 39 //"coord_y": VALOR_Y 40 }); 41 42 // ahora llamar al ajax de obtener la resena del pdf 43 $.ajax({ 44 type: 'POST', 45 contentType: 'application/json', 46 //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs", 47 url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs", 48 dataType: "json", 49 data: parameters, 50 xhrFields: {withCredentials: true}, 51 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, 52 success: function(data, textStatus, jqXHR){ 53 var json_x = data; 54 var hash = json_x['hash']; 55 //alert("hash recibido del servidor "+hash); 56 57 var hashtype = "SHA-256"; 58 var lang = "eng"; 59 60 window.hwcrypto.sign(cert, {type: hashtype, hex: hash}, {lang: lang}).then(function(signature) { 61 62 $.ajax({ 63 type: 'POST', 64 contentType: 'application/json', 65 //url:"https://192.168.12.125:8443/Murachi/0.1/archivos/pdfs/resenas", 66 url:"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/pdfs/resenas", 67 dataType: 'json', 68 data: JSON.stringify({"signature":signature.hex}), 69 xhrFields: {withCredentials: true}, 70 headers: {"Authorization":"Basic YWRtaW46YWRtaW4="}, 71 success: function(data, textStatus, jqXHR){ 72 73 alert('Archivo firmado correctamente: ' + data['signedFileId']); 74 75 var linkToDownload = "<a href=\"https://murachi.cenditel.gob.ve/Murachi/0.1/archivos/descargas/" + data['signedFileId'] +"\">descargar archivo firmado</a>"; 76 //alert(linkToDownload); 77 document.getElementById("respuesta").innerHTML = linkToDownload; 78 79 }, 80 error: function(jqXHR, textStatus, errorThrown){ 81 alert('error en pdfs/resenas: ' + textStatus); 82 $("#respuesta").html("error en pdfs/resenas: " + textStatus); 83 } 84 }); 85 86 }, function(err) { 87 log_text("sign() failed: " + err); 88 89 var error; 90 log_text("sign() failed: " + err); 91 if(err == "Error: user_cancel") { 92 alert("sign() failed: El usuario cancelo la operación"); 93 error = "El usuario cancelo la operación"; 94 } 95 else if(err == "Error: no_certificates") { 96 alert("sign() failed: No hay certificado disponible"); 97 error = "No hay certificado disponible"; 98 } 99 else if(err == "Error: no_implementation") { 100 alert("sign() failed: No hay soporte para el manejo del certificado"); 101 error = "No hay soporte para el manejo del certificado"; 102 } 103 104 //alert("sign() failed: " + err); 105 $("#respuesta").html("sign() failed: " + error); 106 }); 107 108 }, 109 error: function(jqXHR, textStatus, errorThrown){ 110 //alert('error: ' + textStatus); 111 //var responseText = jQuery.parseJSON(jqXHR.responseText); 112 alert('ajax error function: ' + jqXHR.responseText); 113 $("#respuesta").html("error function: " + jqXHR.responseText); 114 } 115 116 }); 117 118 }, function(err) { 119 log_text("getCertificate() failed: " + err); 120 var error; 121 if(err == "Error: user_cancel") { 122 alert("getCertificate() failed: El usuario cancelo la operación" ); 123 error = "El usuario cancelo la operación"; 124 } 125 else if(err == "Error: no_certificates") { 126 alert("getCertificate() failed: No hay certificado disponible") ; 127 error = "No hay certificado disponible"; 128 } 129 else if(err == "Error: no_implementation") { 130 alert("getCertificate() failed: No hay soporte para el manejo del certificado"); 131 error = "No hay soporte para el manejo del certificado"; 132 } 133 //alert("getCertificate() failed: " + err); 134 $("#respuesta").html("getCertificate() failed: " + error); 135 }); 136 137 }, 138 error: function(response) { 139 //Que se ejecuta cuando finalice la petición de con error 140 $("#respuesta").html('Error...!!!'); 141 alert("ocurrio un error") 142 } 203 204 document.getElementById("respuesta").innerHTML = manejoJsonPDF(JSON.stringify(response)); 205 ObtenerCertificadoFirmante(response); 206 }, 207 error: function(response) { 208 //Que se ejecuta cuando finalice la petición de con error 209 $("#respuesta").html('Error, al subir el archivo al servidor...!!!'); 210 alert("ocurrio un error, al subir el archivo al servidor") 211 } 143 212 }); 144 213 214 } 215 216 217 $("#Form-Format-Visible").on('submit', function(event) { 218 event.preventDefault(); 219 SubirDocumentServer(); 145 220 });
Note: See TracChangeset
for help on using the changeset viewer.