Commit c4b7f8cadc99386855c20943d9854deacabcffeb
1 parent
d58408e4
Exists in
master
redmine #4583 geracao conteudo do doc online com assinaturas e imagens; visualiz…
…acoes de assinaturas em doc online; tooltip das 3 primeiras assinaturas
Showing
8 changed files
with
80 additions
and
25 deletions
Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
| ... | ... | @@ -1034,10 +1034,10 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo |
| 1034 | 1034 | for (DocumentoGed documentoGed : documentos) { |
| 1035 | 1035 | if(!UtilColecao.isVazio(documentoGed.getAssinaturas())){ |
| 1036 | 1036 | int maxAssinatura = 0; |
| 1037 | - StringBuilder tresAssinaturas = new StringBuilder(); | |
| 1037 | + StringBuilder tresAssinaturas = new StringBuilder("Assinador por: "); | |
| 1038 | 1038 | for (Assinatura assinatura : documentoGed.getAssinaturas()) { |
| 1039 | 1039 | if(++maxAssinatura < 4) |
| 1040 | - tresAssinaturas.append(UtilObjeto.isReferencia(assinatura.getPessoa()) ? assinatura.getPessoa().getNome() : "").append(" - ").append(assinatura.getFuncao().getNome()).append(". "); | |
| 1040 | + tresAssinaturas.append(UtilObjeto.isReferencia(assinatura.getPessoa()) ? assinatura.getPessoa().getNome() : "").append(" / ").append(assinatura.getFuncao().getNome()).append(". "); | |
| 1041 | 1041 | else { |
| 1042 | 1042 | tresAssinaturas.append("..."); |
| 1043 | 1043 | break; | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/TarjaAssinaturaServiceImpl.java
| ... | ... | @@ -22,6 +22,7 @@ import br.com.centralit.api.service.AnexoImagemService; |
| 22 | 22 | import br.com.centralit.api.service.DominioService; |
| 23 | 23 | import br.com.centralit.api.service.OrganizacaoService; |
| 24 | 24 | import br.com.centralit.api.service.TarjaAssinaturaService; |
| 25 | +import br.com.centralit.api.util.UtilBase64; | |
| 25 | 26 | import br.com.centralit.framework.model.AnexoImagem; |
| 26 | 27 | import br.com.centralit.framework.model.Dominio; |
| 27 | 28 | import br.com.centralit.framework.model.Organizacao; |
| ... | ... | @@ -156,13 +157,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu |
| 156 | 157 | * |
| 157 | 158 | * @author rogerio.cassimiro |
| 158 | 159 | * @param assinatura |
| 159 | - * @param conteudo | |
| 160 | + * @param conteudoAssinatura | |
| 160 | 161 | * @return {@link String} |
| 161 | 162 | */ |
| 162 | - private String getConteudoTarja(Assinatura assinatura, String conteudo) { | |
| 163 | + private String getConteudoTarja(Assinatura assinatura, String conteudoAssinatura) { | |
| 163 | 164 | |
| 164 | - conteudo = conteudo.replaceAll(TarjaAssinatura.NOME_ASSINANTE, assinatura.getPessoa().getNome()).replaceAll(TarjaAssinatura.FUNCAO_ASSINANTE, assinatura.getFuncao().getNome()).replaceAll(TarjaAssinatura.DATA_ASSINATURA, UtilDate.getDataSemHorasString(Calendar.getInstance().getTime())).replaceAll(TarjaAssinatura.HORA_ASSINATURA, UtilDate.getHoraAtualHHMMSS()).replaceAll(TarjaAssinatura.CODIGO_ASSINATURA, "TODO ASSINATURA"); | |
| 165 | - return conteudo; | |
| 165 | + conteudoAssinatura = conteudoAssinatura.replaceAll(TarjaAssinatura.NOME_ASSINANTE, assinatura.getPessoa().getNome()).replaceAll(TarjaAssinatura.FUNCAO_ASSINANTE, assinatura.getFuncao().getNome()).replaceAll(TarjaAssinatura.DATA_ASSINATURA, UtilDate.getDataSemHorasString(Calendar.getInstance().getTime())).replaceAll(TarjaAssinatura.HORA_ASSINATURA, UtilDate.getHoraAtualHHMMSS()); | |
| 166 | + return conteudoAssinatura; | |
| 166 | 167 | } |
| 167 | 168 | |
| 168 | 169 | /** |
| ... | ... | @@ -171,13 +172,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu |
| 171 | 172 | * @author rogerio.cassimiro |
| 172 | 173 | * @param assinatura |
| 173 | 174 | * @param tarjaAssinatura |
| 174 | - * @param conteudo | |
| 175 | + * @param conteudoAssinatura | |
| 175 | 176 | * @throws DocumentException |
| 176 | 177 | * @throws IOException |
| 177 | 178 | */ |
| 178 | - private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudo) { | |
| 179 | - | |
| 180 | - assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudo)); | |
| 179 | + private void gerarAssinaturaDocAnexo(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) { | |
| 180 | + | |
| 181 | + assinatura.getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoAssinatura)); | |
| 181 | 182 | assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); |
| 182 | 183 | } |
| 183 | 184 | |
| ... | ... | @@ -187,23 +188,43 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu |
| 187 | 188 | * @author rogerio.cassimiro |
| 188 | 189 | * @param assinatura |
| 189 | 190 | * @param tarjaAssinatura |
| 190 | - * @param conteudo | |
| 191 | + * @param conteudoAssinatura | |
| 191 | 192 | */ |
| 192 | - private void gerarAssinaturaDocOnline(Assinatura assinatura, AnexoImagem anexoImagem, String conteudo) { | |
| 193 | - | |
| 194 | - String conteudoOriginalDocOnLine = new String(); | |
| 193 | + private void gerarAssinaturaDocOnline(Assinatura assinatura, AnexoImagem anexoImagem, String conteudoAssinatura) { | |
| 195 | 194 | |
| 195 | + StringBuilder conteudoOriginalDocOnLine = new StringBuilder(); | |
| 196 | + | |
| 196 | 197 | if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { |
| 197 | - conteudoOriginalDocOnLine = decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado()); | |
| 198 | + conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); | |
| 198 | 199 | } else { |
| 199 | 200 | assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja()); |
| 200 | - conteudoOriginalDocOnLine = decrypted(assinatura.getDocumentoGed().getConteudoCriptografado()); | |
| 201 | + conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoCriptografado())); | |
| 201 | 202 | } |
| 202 | 203 | |
| 203 | - conteudoOriginalDocOnLine = conteudoOriginalDocOnLine.concat("<br/>"); | |
| 204 | - conteudoOriginalDocOnLine = conteudoOriginalDocOnLine.concat(conteudo); | |
| 205 | - | |
| 206 | - assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocOnLine)); | |
| 204 | + conteudoOriginalDocOnLine.append(gerarHTMLBase64(assinatura, conteudoAssinatura)); | |
| 205 | + assinatura.getDocumentoGed().getConteudoTarja().setConteudoCriptografado(this.encrypted(conteudoOriginalDocOnLine.toString())); | |
| 206 | + } | |
| 207 | + | |
| 208 | + private String gerarHTMLBase64(Assinatura assinatura, String conteudoAssinatura){ | |
| 209 | + | |
| 210 | + StringBuilder htmlAssinatura = new StringBuilder("<div class='row' style='margin-top: 5px;'> "); | |
| 211 | + if(UtilObjeto.isReferencia(assinatura.getConteudoTarja().getAnexoImagem()) && UtilObjeto.isReferencia(assinatura.getConteudoTarja().getAnexoImagem().getAnexo())) { | |
| 212 | + htmlAssinatura.append("<div class='col-sm-3'>"); | |
| 213 | + htmlAssinatura.append("<img src='data:image/png;base64, "); | |
| 214 | + htmlAssinatura.append(UtilBase64.byteToBase64(assinatura.getConteudoTarja().getAnexoImagem().getAnexo())); | |
| 215 | + htmlAssinatura.append("' height='60' width='60' />"); | |
| 216 | + htmlAssinatura.append(" </div>"); | |
| 217 | + htmlAssinatura.append(" <div class='col-sm-9'>"); | |
| 218 | + htmlAssinatura.append(conteudoAssinatura); | |
| 219 | + htmlAssinatura.append(" </div>"); | |
| 220 | + } else { | |
| 221 | + htmlAssinatura.append(" <div class='col-sm-12'>"); | |
| 222 | + htmlAssinatura.append(conteudoAssinatura); | |
| 223 | + htmlAssinatura.append(" </div>"); | |
| 224 | + } | |
| 225 | + | |
| 226 | + htmlAssinatura.append(" </div>"); | |
| 227 | + return htmlAssinatura.toString(); | |
| 207 | 228 | } |
| 208 | 229 | |
| 209 | 230 | /** | ... | ... |
cit-ecm-api/src/main/java/br/com/centralit/api/util/UtilBase64.java
0 → 100644
| ... | ... | @@ -0,0 +1,32 @@ |
| 1 | +package br.com.centralit.api.util; | |
| 2 | + | |
| 3 | +import org.apache.commons.codec.binary.Base64; | |
| 4 | + | |
| 5 | +/** | |
| 6 | + * <p> | |
| 7 | + * <b>Title: UtilBase64</b> | |
| 8 | + * </p> | |
| 9 | + * <p> | |
| 10 | + * <b>Description: </b> | |
| 11 | + * </p> | |
| 12 | + * | |
| 13 | + * @since 29/04/2016 - 14:30:14 | |
| 14 | + * @author rogerio.cassimiro | |
| 15 | + * | |
| 16 | + */ | |
| 17 | +@SuppressWarnings({"static-access", "unused"}) | |
| 18 | +public class UtilBase64 { | |
| 19 | + | |
| 20 | + public static byte[] base64ToByte(String data) throws Exception { | |
| 21 | + | |
| 22 | + Base64 base64 = new Base64(); | |
| 23 | + return Base64.decodeBase64(data); | |
| 24 | + } | |
| 25 | + | |
| 26 | + public static String byteToBase64(byte[] data) { | |
| 27 | + | |
| 28 | + Base64 base64 = new Base64(); | |
| 29 | + return base64.encodeBase64String(data); | |
| 30 | + } | |
| 31 | + | |
| 32 | +} | |
| 0 | 33 | \ No newline at end of file | ... | ... |
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
| ... | ... | @@ -454,7 +454,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen |
| 454 | 454 | internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo)); |
| 455 | 455 | internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DO_DOCUMENTO", "Assinatura do Documento", dominio, modulo)); |
| 456 | 456 | internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DOCUMENTO_SEM_ASSINATURA", "Documento sem assinaturas!", dominio, modulo)); |
| 457 | - | |
| 457 | + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.VISUALIZAR_ASSINATURAS", "Visualizar Assinaturas", dominio, modulo)); | |
| 458 | + | |
| 458 | 459 | } |
| 459 | 460 | |
| 460 | 461 | /** | ... | ... |
cit-ecm-web/src/main/webapp/assets/css/gerenciarProcesso.css
| ... | ... | @@ -212,9 +212,8 @@ background-color: #f2f2f2; |
| 212 | 212 | background-color: rgba(245, 245, 245, 0.61); |
| 213 | 213 | } |
| 214 | 214 | |
| 215 | - .versoes { | |
| 215 | +.versoes { | |
| 216 | 216 | font-size : x-small; |
| 217 | 217 | font-weight : bold; |
| 218 | 218 | text-align : right !important; |
| 219 | -} | |
| 220 | - | |
| 219 | +} | |
| 221 | 220 | \ No newline at end of file | ... | ... |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/AssinarDocumentoController.js
| ... | ... | @@ -10,6 +10,7 @@ citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'Geren |
| 10 | 10 | $scope.abrirAssinarDocumento = function(documento) { |
| 11 | 11 | $scope.documentoSelecionado = null; |
| 12 | 12 | $scope.exibirDocJaAssinado = false; |
| 13 | + $scope.autenticacao = null; | |
| 13 | 14 | DocumentoGedRepository.get(documento.id).then(function(result) { |
| 14 | 15 | $scope.documentoSelecionado = result.originalElement; |
| 15 | 16 | if(documento.formaCriacao.codigo === 1){ | ... | ... |
cit-ecm-web/src/main/webapp/html/assinatura/documentoAssinaturaView.html
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/includeDocumentosProcesso.html
| ... | ... | @@ -43,7 +43,7 @@ |
| 43 | 43 | <li ng-if='!documento.cancelado'><a href="#void" ng-click="visualizarVersoes(documento);"> <translate>ECM.LABEL.VERSOESDODOCUMENTO</translate></a></li> |
| 44 | 44 | <li ><a ng-if='documento.cancelado'href="#void" ng-click="getCancelamentoDocumento(documento);"> <translate>ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO</translate></a></li> |
| 45 | 45 | <li ><a href="#void" ng-click="abrirAssinarDocumento(documento)"> <translate>ECM.LABEL.ASSINARDOCUMENTO</translate></a></li> |
| 46 | - <li ><a href="#void" ng-click="visualizarAssinaturasDocumento(documento)"> <translate>ECM.LABEL.ASSINATURAS_DOCUMENTO</translate></a></li> | |
| 46 | + <li ><a href="#void" ng-click="visualizarAssinaturasDocumento(documento)"> <translate>ECM.LABEL.VISUALIZAR_ASSINATURAS</translate></a></li> | |
| 47 | 47 | </ul> |
| 48 | 48 | |
| 49 | 49 | </div> | ... | ... |