1 | |
---|
2 | function ColumnsDataTablePDF(){ |
---|
3 | var columns = [ |
---|
4 | {title: "Nombre del firmante", data: "nameOfTheSigner" }, |
---|
5 | {title: "Fecha en que se realiza la firma", data: "signedOn"}, |
---|
6 | {title: "Chequea la integridad de la firma", data: "integrityCheck"}, |
---|
7 | {title: "El certificado todavía está válido", data: "signerCertificateStillValid"}, |
---|
8 | {title: "Fecha de inicio de validez del certificado", data: "signerCertificateValidFrom"}, |
---|
9 | {title: "Fecha de fin de validez del certificado", data: "signerCertificateValidTo"}, |
---|
10 | {title: "El certificado es válido en el momento de la firma", data: "signerCertificateValidAtTimeOfSigning"}, |
---|
11 | {title: "Tipo de firma de archivo PDF", data: "signatureType"}, |
---|
12 | {title: "Estampilla de tiempo", data: "timeStamp"}, |
---|
13 | {title: " Razón de la firma", data: "reason"}, |
---|
14 | {title: "Ubicación donde se realiza la firma", data: "location"}, |
---|
15 | {title: "Nombre alternativo del firmante", data: "alternativeNameOfTheSigner"}, |
---|
16 | {title: "La firma abarca todo el documento PDF", data: "signatureCoversWholeDocument"}, |
---|
17 | {title: "Tipo de subfiltro: /adbe.pkcs7.sha1, /adbe.pkcs7.detached", data: "filterSubtype"}, |
---|
18 | {title: "Sujeto firmante", data: "signerCertificateSubject"}, |
---|
19 | {title: "Algoritmo de cifrado", data: "encryptionAlgorithm"}, |
---|
20 | {title: "Servicio de estampillado de tiempo", data: "timeStampService"}, |
---|
21 | {title: "Algoritmo hash (reseña)", data: "digestAlgorithm"}, |
---|
22 | {title: "Certificado verificado contra el repositorio de certificados confiables", data: "certificatesVerifiedAgainstTheKeyStore"}, |
---|
23 | {title: "Número de revisión del documento PDF", data: "documentRevision"}, |
---|
24 | {title: "Número total de revisiones del documento PDF", data: "totalDocumentRevisions"}, |
---|
25 | {title: "Información de contacto del firmante", data: "contactInfo", style:"width: 2px;"}, |
---|
26 | {title: "Estampilla de tiempo verificada", data: "timeStampVerified"}, |
---|
27 | {title: "Emisor del certificado firmante", data: "signerCertificateIssuer"}, |
---|
28 | {title:"Información", data: function(event){ |
---|
29 | return '<button id="informacion" type="input" class="btn btn-success btn-sm" data-toggle="modal" data-target="#myModalVerificar" onclick="javascript:Dialog_Verificar('+event.documentRevision+')">Info(<font color="red">'+event.documentRevision+'</font>)</button>'; |
---|
30 | } |
---|
31 | } |
---|
32 | ]; |
---|
33 | |
---|
34 | return columns; |
---|
35 | |
---|
36 | } |
---|
37 | |
---|
38 | |
---|
39 | function InfoContentVerificar(id){ |
---|
40 | |
---|
41 | for (var i = 0; i < INFO_CHECK.signatures.length; i++) { |
---|
42 | if (parseInt(INFO_CHECK.signatures[i]['documentRevision']) == parseInt(id)){ |
---|
43 | |
---|
44 | var html1 = ""; |
---|
45 | |
---|
46 | html1 += '<font style="font-size: 14pt">'; |
---|
47 | html1 += '<table class="table table-hover" width="100%" id="data" >'; |
---|
48 | html1 += '<tr>'; |
---|
49 | html1 += '<td style="text-align: left" width="700"><b>Nombre del firmante:</b> </td>'; |
---|
50 | html1 += '<td style="text-align: left" width="500"><span> '+INFO_CHECK.signatures[i]['nameOfTheSigner']+'</span></td>'; |
---|
51 | html1 += '</tr>'; |
---|
52 | html1 += '<tr>'; |
---|
53 | html1 += '<td style="text-align: left"><b>Fecha en que se realiza la firma:</b> </td>'; |
---|
54 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['signedOn']+'</span></td>'; |
---|
55 | html1 += '</tr>'; |
---|
56 | html1 += '<tr>'; |
---|
57 | html1 += '<td style="text-align: left"><b>Chequea la integridad de la firma:</b> </td>'; |
---|
58 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['integrityCheck']+'</span></td>'; |
---|
59 | html1 += '</tr>'; |
---|
60 | html1 += '<tr>'; |
---|
61 | html1 += '<td style="text-align: left"><b>El certificado todavía está válido:</b> </td>'; |
---|
62 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['signerCertificateStillValid']+'</span></td>'; |
---|
63 | html1 += '</tr>'; |
---|
64 | html1 += '<tr>'; |
---|
65 | html1 += '<td style="text-align: left"><b>Fecha de fin de validez del certificado:</b> </td>'; |
---|
66 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['signerCertificateValidFrom']+'</span></td>'; |
---|
67 | html1 += '</tr>'; |
---|
68 | html1 += '<tr>'; |
---|
69 | html1 += '<td style="text-align: left"><b>Fecha de fin de validez del certificado:</b> </td>'; |
---|
70 | html1 += '<td style="text-align: left"><span>' +INFO_CHECK.signatures[i]['signerCertificateValidTo']+'</span></td>'; |
---|
71 | html1 += '</tr>'; |
---|
72 | html1 += '<tr>'; |
---|
73 | html1 += '<td style="text-align: left" ><b>El certificado es válido en el momento de la firma:</b> </td>'; |
---|
74 | html1 += '<td style="text-align: left" ><span> '+INFO_CHECK.signatures[i]['signerCertificateValidAtTimeOfSigning']+'</span></td>'; |
---|
75 | html1 += '</tr>'; |
---|
76 | html1 += '<tr>'; |
---|
77 | html1 += '<td style="text-align: left" ><b>Tipo de firma de archivo PDF:</b> </td>'; |
---|
78 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['signatureType']+'</span></td>'; |
---|
79 | html1 += '</tr>'; |
---|
80 | html1 += '<tr>'; |
---|
81 | html1 += '<td style="text-align: left"><b>Estampilla de tiempo:</b> </td>'; |
---|
82 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['timeStamp']+'</span></td>'; |
---|
83 | html1 += '</tr>'; |
---|
84 | html1 += '<tr>'; |
---|
85 | html1 += '<td style="text-align: left"><b>Razón de la firma:</b> </td>'; |
---|
86 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['reason']+'</span></td>'; |
---|
87 | html1 += '</tr>'; |
---|
88 | html1 += '<tr>'; |
---|
89 | html1 += '<td style="text-align: left"><b>Ubicación donde se realiza la firma:</b> </td>'; |
---|
90 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['location']+'</span></td>'; |
---|
91 | html1 += '</tr>'; |
---|
92 | html1 += '<tr>'; |
---|
93 | html1 += '<td style="text-align: left"><b>Nombre alternativo del firmante:</b> </td>'; |
---|
94 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['alternativeNameOfTheSigner']+'</span></td>'; |
---|
95 | html1 += '</tr>'; |
---|
96 | html1 += '<tr>'; |
---|
97 | html1 += '<td style="text-align: left"><b>La firma abarca todo el documento PDF:</b> </td>'; |
---|
98 | html1 += '<td style="text-align: left"><span>' +INFO_CHECK.signatures[i]['signatureCoversWholeDocument']+'</span></td>'; |
---|
99 | html1 += '</tr>'; |
---|
100 | html1 += '<tr>'; |
---|
101 | html1 += '<td style="text-align: left" ><b>Tipo de subfiltro: /adbe.pkcs7.sha1, /adbe.pkcs7.detached:</b> </td>'; |
---|
102 | html1 += '<td style="text-align: left" ><span> '+INFO_CHECK.signatures[i]['filterSubtype']+'</span></td>'; |
---|
103 | html1 += '</tr>'; |
---|
104 | html1 += '<tr>'; |
---|
105 | html1 += '<td style="text-align: left"><b>Sujeto firmante:</b> </td>'; |
---|
106 | html1 += '<td style="text-align: left"><span><font style="font-size: 8pt">' +INFO_CHECK.signatures[i]['signerCertificateSubject']+'</font></span></td>'; |
---|
107 | html1 += '</tr>'; |
---|
108 | html1 += '<td style="text-align: left" ><b>Algoritmo de cifrado:</b> </td>'; |
---|
109 | html1 += '<td style="text-align: left" ><span> '+INFO_CHECK.signatures[i]['encryptionAlgorithm']+'</span></td>'; |
---|
110 | html1 += '</tr>'; |
---|
111 | html1 += '<tr>'; |
---|
112 | html1 += '<td style="text-align: left" ><b>Servicio de estampillado de tiempo:</b> </td>'; |
---|
113 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['timeStampService']+'</span></td>'; |
---|
114 | html1 += '</tr>'; |
---|
115 | html1 += '<tr>'; |
---|
116 | html1 += '<td style="text-align: left"><b>Algoritmo hash (reseña):</b> </td>'; |
---|
117 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['digestAlgorithm']+'</span></td>'; |
---|
118 | html1 += '</tr>'; |
---|
119 | html1 += '<tr>'; |
---|
120 | html1 += '<td style="text-align: left"><b>Certificado verificado contra el repositorio de certificados confiables:</b> </td>'; |
---|
121 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['certificatesVerifiedAgainstTheKeyStore']+'</span></td>'; |
---|
122 | html1 += '</tr>'; |
---|
123 | html1 += '<tr>'; |
---|
124 | html1 += '<td style="text-align: left"><b>Número de revisión del documento PDF:</b> </td>'; |
---|
125 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['documentRevision']+'</span></td>'; |
---|
126 | html1 += '</tr>'; |
---|
127 | html1 += '<tr>'; |
---|
128 | html1 += '<td style="text-align: left"><b>Número total de revisiones del documento PDF:</b> </td>'; |
---|
129 | html1 += '<td style="text-align: left"><span> '+INFO_CHECK.signatures[i]['totalDocumentRevisions']+'</span></td>'; |
---|
130 | html1 += '</tr>'; |
---|
131 | html1 += '<tr>'; |
---|
132 | html1 += '<td style="text-align: left"><b>Información de contacto del firmante:</b> </td>'; |
---|
133 | html1 += '<td style="text-align: left"><span>' +INFO_CHECK.signatures[i]['contactInfo']+'</span></td>'; |
---|
134 | html1 += '</tr>'; |
---|
135 | html1 += '<tr>'; |
---|
136 | html1 += '<td style="text-align: left" ><b>Estampilla de tiempo verificada:</b> </td>'; |
---|
137 | html1 += '<td style="text-align: left" ><span> '+INFO_CHECK.signatures[i]['timeStampVerified']+'</span></td>'; |
---|
138 | html1 += '</tr>'; |
---|
139 | html1 += '<tr>'; |
---|
140 | html1 += '<td style="text-align: left"><b>Emisor del certificado firmante:</b> </td>'; |
---|
141 | html1 += '<td style="text-align: left"><span><font style="font-size: 8pt">' +INFO_CHECK.signatures[i]['signerCertificateIssuer']+'</font></span></td>'; |
---|
142 | html1 += '</tr>';; |
---|
143 | html1 += '</table>'; |
---|
144 | html1 += '</font>'; |
---|
145 | |
---|
146 | $('div#Dialogo_Check-table').append(html1); |
---|
147 | } |
---|
148 | } |
---|
149 | } |
---|
150 | |
---|
151 | function Dialog_Verificar(id){ |
---|
152 | document.getElementById("Dialogo_Check").innerHTML = '\ |
---|
153 | <style>\ |
---|
154 | .modal .modal-dialog { width: 80%; height: 80%, };\ |
---|
155 | </style>\ |
---|
156 | <div id="myModalVerificar" class="modal fade" role="dialog">\ |
---|
157 | <div class="modal-dialog">\ |
---|
158 | <div class="modal-content">\ |
---|
159 | <div id = "title" class="modal-header">\ |
---|
160 | <!--<button type="button" class="close" data-dismiss="modal">×</button>-->\ |
---|
161 | <h4 class="modal-title text-primary"><center>Información de la firma('+id+')</center></h4>\ |
---|
162 | </div>\ |
---|
163 | <div id = "body" class="modal-body">\ |
---|
164 | <br>\ |
---|
165 | <div id="Dialogo_Check-table"></div>\ |
---|
166 | </div>\ |
---|
167 | <div class="modal-footer">\ |
---|
168 | <button type="button" id="informacion" data-dismiss="modal">Close</button>\ |
---|
169 | </div>\ |
---|
170 | </div>\ |
---|
171 | </div>\ |
---|
172 | </div>'; |
---|
173 | |
---|
174 | InfoContentVerificar(id); |
---|
175 | |
---|
176 | } |
---|
177 | |
---|
178 | |
---|
179 | |
---|
180 | |
---|
181 | function DataTableVerificarPDF(response){ |
---|
182 | |
---|
183 | var columns = ColumnsDataTablePDF(); |
---|
184 | var table = $('#myCkeckPDF').DataTable({ |
---|
185 | language: { |
---|
186 | "lengthMenu": "Mostrar _MENU_ registros", |
---|
187 | "zeroRecords": "No hay resultados - Disculpe", |
---|
188 | "info": "Mostrando pagina _PAGE_ de _PAGES_", |
---|
189 | "search": "Buscar:", |
---|
190 | "infoEmpty": "No records available", |
---|
191 | "infoFiltered": "(filtered from _MAX_ total records)" |
---|
192 | }, |
---|
193 | order: [[ 1, 'desc' ]], |
---|
194 | data: response.signatures, |
---|
195 | columns: columns, |
---|
196 | dom: 'Bfrtip', |
---|
197 | columnDefs: [ |
---|
198 | { |
---|
199 | |
---|
200 | "className": "dt-center", |
---|
201 | "targets": [ 2,3,4,5,6,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23 ], |
---|
202 | "visible": false, |
---|
203 | //"searchable": false |
---|
204 | }, |
---|
205 | |
---|
206 | ], |
---|
207 | buttons: [ |
---|
208 | { |
---|
209 | extend: 'pageLength', |
---|
210 | text: 'Mostrar Filas', |
---|
211 | titleAttr: 'Mostrar Filas', |
---|
212 | }, |
---|
213 | { |
---|
214 | extend: 'print', |
---|
215 | text: 'Imprimir', |
---|
216 | title: 'Contenido de la Firma', |
---|
217 | message: 'Datos de la Firma', |
---|
218 | titleAttr: 'Imprimir', |
---|
219 | exportOptions: { |
---|
220 | columns: [ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] |
---|
221 | } |
---|
222 | }, |
---|
223 | { |
---|
224 | extend: 'excelHtml5', |
---|
225 | text: 'XLXS', |
---|
226 | title: 'Contenido de la Firma', |
---|
227 | titleAttr: 'Excel', |
---|
228 | message: 'Datos de la Firma', |
---|
229 | exportOptions: { |
---|
230 | columns: [ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] |
---|
231 | } |
---|
232 | }, |
---|
233 | { |
---|
234 | extend: 'csvHtml5', |
---|
235 | text: 'CSV', |
---|
236 | title: 'Contenido de la Firma', |
---|
237 | titleAttr: 'CSV', |
---|
238 | exportOptions: { |
---|
239 | columns: [ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] |
---|
240 | } |
---|
241 | }, |
---|
242 | { |
---|
243 | extend: 'pdfHtml5', |
---|
244 | text: 'PDF', |
---|
245 | titleAttr: 'PDF', |
---|
246 | title: 'Contenido de la Firma', |
---|
247 | download: 'open', |
---|
248 | customize: function (doc){ |
---|
249 | doc.defaultStyle.fontSize = 3; |
---|
250 | doc.styles.tableHeader.fontSize = 4; |
---|
251 | doc.styles.tableHeader.fillColor = "#0085a1"; |
---|
252 | }, |
---|
253 | //orientation: 'landscape', |
---|
254 | pageSize: 'A3', |
---|
255 | exportOptions: { |
---|
256 | columns: [ 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23] |
---|
257 | |
---|
258 | } |
---|
259 | } |
---|
260 | ] |
---|
261 | }); |
---|
262 | |
---|
263 | return table; |
---|
264 | |
---|
265 | } |
---|