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,10 +1034,10 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
| 1034 | for (DocumentoGed documentoGed : documentos) { | 1034 | for (DocumentoGed documentoGed : documentos) { |
| 1035 | if(!UtilColecao.isVazio(documentoGed.getAssinaturas())){ | 1035 | if(!UtilColecao.isVazio(documentoGed.getAssinaturas())){ |
| 1036 | int maxAssinatura = 0; | 1036 | int maxAssinatura = 0; |
| 1037 | - StringBuilder tresAssinaturas = new StringBuilder(); | 1037 | + StringBuilder tresAssinaturas = new StringBuilder("Assinador por: "); |
| 1038 | for (Assinatura assinatura : documentoGed.getAssinaturas()) { | 1038 | for (Assinatura assinatura : documentoGed.getAssinaturas()) { |
| 1039 | if(++maxAssinatura < 4) | 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 | else { | 1041 | else { |
| 1042 | tresAssinaturas.append("..."); | 1042 | tresAssinaturas.append("..."); |
| 1043 | break; | 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,6 +22,7 @@ import br.com.centralit.api.service.AnexoImagemService; | ||
| 22 | import br.com.centralit.api.service.DominioService; | 22 | import br.com.centralit.api.service.DominioService; |
| 23 | import br.com.centralit.api.service.OrganizacaoService; | 23 | import br.com.centralit.api.service.OrganizacaoService; |
| 24 | import br.com.centralit.api.service.TarjaAssinaturaService; | 24 | import br.com.centralit.api.service.TarjaAssinaturaService; |
| 25 | +import br.com.centralit.api.util.UtilBase64; | ||
| 25 | import br.com.centralit.framework.model.AnexoImagem; | 26 | import br.com.centralit.framework.model.AnexoImagem; |
| 26 | import br.com.centralit.framework.model.Dominio; | 27 | import br.com.centralit.framework.model.Dominio; |
| 27 | import br.com.centralit.framework.model.Organizacao; | 28 | import br.com.centralit.framework.model.Organizacao; |
| @@ -156,13 +157,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | @@ -156,13 +157,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | ||
| 156 | * | 157 | * |
| 157 | * @author rogerio.cassimiro | 158 | * @author rogerio.cassimiro |
| 158 | * @param assinatura | 159 | * @param assinatura |
| 159 | - * @param conteudo | 160 | + * @param conteudoAssinatura |
| 160 | * @return {@link String} | 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,13 +172,13 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | ||
| 171 | * @author rogerio.cassimiro | 172 | * @author rogerio.cassimiro |
| 172 | * @param assinatura | 173 | * @param assinatura |
| 173 | * @param tarjaAssinatura | 174 | * @param tarjaAssinatura |
| 174 | - * @param conteudo | 175 | + * @param conteudoAssinatura |
| 175 | * @throws DocumentException | 176 | * @throws DocumentException |
| 176 | * @throws IOException | 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 | assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); | 182 | assinatura.getConteudoTarja().setAnexoImagem(anexoImagem); |
| 182 | } | 183 | } |
| 183 | 184 | ||
| @@ -187,23 +188,43 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | @@ -187,23 +188,43 @@ public class TarjaAssinaturaServiceImpl extends GenericServiceImpl<TarjaAssinatu | ||
| 187 | * @author rogerio.cassimiro | 188 | * @author rogerio.cassimiro |
| 188 | * @param assinatura | 189 | * @param assinatura |
| 189 | * @param tarjaAssinatura | 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 | if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { | 197 | if (UtilObjeto.isReferencia(assinatura.getDocumentoGed().getConteudoTarja())) { |
| 197 | - conteudoOriginalDocOnLine = decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado()); | 198 | + conteudoOriginalDocOnLine.append(decrypted(assinatura.getDocumentoGed().getConteudoTarja().getConteudoCriptografado())); |
| 198 | } else { | 199 | } else { |
| 199 | assinatura.getDocumentoGed().setConteudoTarja(new ConteudoTarja()); | 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 @@ | @@ -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 | \ No newline at end of file | 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,7 +454,8 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen | ||
| 454 | internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo)); | 454 | internacionalizacaoList.add(new Internacionalizacao("ECM.ASSINADO_SUCESSO", "Documento assinado com sucesso!", dominio, modulo)); |
| 455 | internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DO_DOCUMENTO", "Assinatura do Documento", dominio, modulo)); | 455 | internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSINATURA_DO_DOCUMENTO", "Assinatura do Documento", dominio, modulo)); |
| 456 | internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DOCUMENTO_SEM_ASSINATURA", "Documento sem assinaturas!", dominio, modulo)); | 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,9 +212,8 @@ background-color: #f2f2f2; | ||
| 212 | background-color: rgba(245, 245, 245, 0.61); | 212 | background-color: rgba(245, 245, 245, 0.61); |
| 213 | } | 213 | } |
| 214 | 214 | ||
| 215 | - .versoes { | 215 | +.versoes { |
| 216 | font-size : x-small; | 216 | font-size : x-small; |
| 217 | font-weight : bold; | 217 | font-weight : bold; |
| 218 | text-align : right !important; | 218 | text-align : right !important; |
| 219 | -} | ||
| 220 | - | 219 | +} |
| 221 | \ No newline at end of file | 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,6 +10,7 @@ citApp.controller('AssinarDocumentoController', [ '$scope', '$translate', 'Geren | ||
| 10 | $scope.abrirAssinarDocumento = function(documento) { | 10 | $scope.abrirAssinarDocumento = function(documento) { |
| 11 | $scope.documentoSelecionado = null; | 11 | $scope.documentoSelecionado = null; |
| 12 | $scope.exibirDocJaAssinado = false; | 12 | $scope.exibirDocJaAssinado = false; |
| 13 | + $scope.autenticacao = null; | ||
| 13 | DocumentoGedRepository.get(documento.id).then(function(result) { | 14 | DocumentoGedRepository.get(documento.id).then(function(result) { |
| 14 | $scope.documentoSelecionado = result.originalElement; | 15 | $scope.documentoSelecionado = result.originalElement; |
| 15 | if(documento.formaCriacao.codigo === 1){ | 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,7 +43,7 @@ | ||
| 43 | <li ng-if='!documento.cancelado'><a href="#void" ng-click="visualizarVersoes(documento);"> <translate>ECM.LABEL.VERSOESDODOCUMENTO</translate></a></li> | 43 | <li ng-if='!documento.cancelado'><a href="#void" ng-click="visualizarVersoes(documento);"> <translate>ECM.LABEL.VERSOESDODOCUMENTO</translate></a></li> |
| 44 | <li ><a ng-if='documento.cancelado'href="#void" ng-click="getCancelamentoDocumento(documento);"> <translate>ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO</translate></a></li> | 44 | <li ><a ng-if='documento.cancelado'href="#void" ng-click="getCancelamentoDocumento(documento);"> <translate>ECM.LABEL.JUSTIFICATIVA_CANCELAMENTO</translate></a></li> |
| 45 | <li ><a href="#void" ng-click="abrirAssinarDocumento(documento)"> <translate>ECM.LABEL.ASSINARDOCUMENTO</translate></a></li> | 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 | </ul> | 47 | </ul> |
| 48 | 48 | ||
| 49 | </div> | 49 | </div> |