Commit e6a6d14cc9b533c2b75890203b1ea3dbcf47fef6
1 parent
5686a9b8
Exists in
master
#3216 - Classificar a Informação de Documentos e Processos
Showing
4 changed files
with
102 additions
and
39 deletions
Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/model/DocumentoGed.java
@@ -66,7 +66,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; | @@ -66,7 +66,7 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; | ||
66 | * | 66 | * |
67 | */ | 67 | */ |
68 | @Entity | 68 | @Entity |
69 | -@JsonIgnoreProperties({ "$checked" }) | 69 | +@JsonIgnoreProperties({ "$checked", "nivelAcessoList" }) |
70 | public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { | 70 | public class DocumentoGed extends PersistentObjectUnidade implements Cloneable { |
71 | 71 | ||
72 | /** Atributo serialVersionUID. */ | 72 | /** Atributo serialVersionUID. */ |
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/DocumentoGedServiceImpl.java
@@ -26,9 +26,11 @@ import br.com.centralit.api.model.DocumentoGed; | @@ -26,9 +26,11 @@ import br.com.centralit.api.model.DocumentoGed; | ||
26 | import br.com.centralit.api.model.InteressadoDocumento; | 26 | import br.com.centralit.api.model.InteressadoDocumento; |
27 | import br.com.centralit.api.model.Processo; | 27 | import br.com.centralit.api.model.Processo; |
28 | import br.com.centralit.api.service.AnexoGedService; | 28 | import br.com.centralit.api.service.AnexoGedService; |
29 | +import br.com.centralit.api.service.CredencialProcessoService; | ||
29 | import br.com.centralit.api.service.DocumentoGedService; | 30 | import br.com.centralit.api.service.DocumentoGedService; |
30 | import br.com.centralit.api.service.DominioService; | 31 | import br.com.centralit.api.service.DominioService; |
31 | import br.com.centralit.api.service.NivelAcessoTipoDocumentoService; | 32 | import br.com.centralit.api.service.NivelAcessoTipoDocumentoService; |
33 | +import br.com.centralit.api.service.NotificacaoService; | ||
32 | import br.com.centralit.api.service.PlanoClassificacaoService; | 34 | import br.com.centralit.api.service.PlanoClassificacaoService; |
33 | import br.com.centralit.api.service.ProcessoService; | 35 | import br.com.centralit.api.service.ProcessoService; |
34 | import br.com.centralit.api.service.SigiloService; | 36 | import br.com.centralit.api.service.SigiloService; |
@@ -38,6 +40,9 @@ import br.com.centralit.api.service.UnidadeProcessoService; | @@ -38,6 +40,9 @@ import br.com.centralit.api.service.UnidadeProcessoService; | ||
38 | import br.com.centralit.framework.exception.BusinessException; | 40 | import br.com.centralit.framework.exception.BusinessException; |
39 | import br.com.centralit.framework.exception.CodigoErro; | 41 | import br.com.centralit.framework.exception.CodigoErro; |
40 | import br.com.centralit.framework.model.Dominio; | 42 | import br.com.centralit.framework.model.Dominio; |
43 | +import br.com.centralit.framework.model.Grupo; | ||
44 | +import br.com.centralit.framework.model.Notificacao; | ||
45 | +import br.com.centralit.framework.model.NotificacaoGrupo; | ||
41 | import br.com.centralit.framework.service.arquitetura.GedFileService; | 46 | import br.com.centralit.framework.service.arquitetura.GedFileService; |
42 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; | 47 | import br.com.centralit.framework.service.arquitetura.GenericServiceImpl; |
43 | import br.com.centralit.framework.util.UtilColecao; | 48 | import br.com.centralit.framework.util.UtilColecao; |
@@ -124,6 +129,14 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | @@ -124,6 +129,14 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
124 | @Autowired | 129 | @Autowired |
125 | private UnidadeProcessoService unidadeProcessoService; | 130 | private UnidadeProcessoService unidadeProcessoService; |
126 | 131 | ||
132 | + /** Atributo notificacaoService. */ | ||
133 | + @Autowired | ||
134 | + private NotificacaoService notificacaoService; | ||
135 | + | ||
136 | + /** Atributo credencialProcessoService. */ | ||
137 | + @Autowired | ||
138 | + private CredencialProcessoService credencialProcessoService; | ||
139 | + | ||
127 | /** Atributo solrService. */ | 140 | /** Atributo solrService. */ |
128 | @Autowired | 141 | @Autowired |
129 | private SolrService solrService; | 142 | private SolrService solrService; |
@@ -276,6 +289,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | @@ -276,6 +289,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
276 | entity.setSigilo(this.sigiloService.getReference(entity.getSigilo().getId())); | 289 | entity.setSigilo(this.sigiloService.getReference(entity.getSigilo().getId())); |
277 | entity.setStatus(this.dominioService.findByChaveAndCodigo("statusDocumentoGed", 0L)); | 290 | entity.setStatus(this.dominioService.findByChaveAndCodigo("statusDocumentoGed", 0L)); |
278 | this.atribuirPrazoPadraoDocumento(entity); | 291 | this.atribuirPrazoPadraoDocumento(entity); |
292 | + this.enviarNotificacaoDocumentoSigiloso(entity); | ||
279 | } else { | 293 | } else { |
280 | 294 | ||
281 | entity.setSigilo(null); | 295 | entity.setSigilo(null); |
@@ -293,7 +307,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | @@ -293,7 +307,7 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
293 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 307 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
294 | * </p> | 308 | * </p> |
295 | * | 309 | * |
296 | - * Método responsável por | 310 | + * Método responsável por validar o nivel de acesso do documento |
297 | * | 311 | * |
298 | * @author andre.silva | 312 | * @author andre.silva |
299 | * | 313 | * |
@@ -302,28 +316,31 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | @@ -302,28 +316,31 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
302 | */ | 316 | */ |
303 | private void validarNivelAcessoDocumento(DocumentoGed entity) { | 317 | private void validarNivelAcessoDocumento(DocumentoGed entity) { |
304 | 318 | ||
305 | - if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() == 0L && entity.getNivelAcesso().getNivelAcesso().getCodigo() == 2L) { | ||
306 | - throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | ||
307 | - } else if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() == 1L) { | ||
308 | - if (entity.getNivelAcesso().getNivelAcesso().getCodigo() != 1L && !UtilObjeto.isReferencia(entity.getSigilo())) { | ||
309 | - throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | ||
310 | - } | ||
311 | - } else if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() == 2L) { | ||
312 | - if (entity.getNivelAcesso().getNivelAcesso().getCodigo() == 0L) { | ||
313 | - throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | ||
314 | - } | ||
315 | - } | 319 | + if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() != 2L) { |
316 | 320 | ||
317 | - if (UtilObjeto.isReferencia(entity.getProcesso().getSigilo())) { | ||
318 | - if (entity.getProcesso().getSigilo().getTipoSigilo().getCodigo() == 1L) { | ||
319 | - if (entity.getSigilo().getTipoSigilo().getCodigo() == 0L) { | 321 | + if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() == 0L && entity.getNivelAcesso().getNivelAcesso().getCodigo() == 2L) { |
322 | + throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | ||
323 | + } else if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() == 1L) { | ||
324 | + if (entity.getNivelAcesso().getNivelAcesso().getCodigo() != 1L && !UtilObjeto.isReferencia(entity.getSigilo())) { | ||
320 | throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | 325 | throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); |
321 | } | 326 | } |
322 | - } else if (entity.getProcesso().getSigilo().getTipoSigilo().getCodigo() == 2L) { | ||
323 | - if (!UtilObjeto.isReferencia(entity.getSigilo()) || entity.getSigilo().getTipoSigilo().getCodigo() != 2L) { | 327 | + } else if (entity.getProcesso().getNivelAcesso().getNivelAcesso().getCodigo() == 2L) { |
328 | + if (entity.getNivelAcesso().getNivelAcesso().getCodigo() == 0L) { | ||
324 | throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | 329 | throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); |
325 | } | 330 | } |
326 | } | 331 | } |
332 | + | ||
333 | + if (UtilObjeto.isReferencia(entity.getProcesso().getSigilo())) { | ||
334 | + if (entity.getProcesso().getSigilo().getTipoSigilo().getCodigo() == 1L) { | ||
335 | + if (entity.getSigilo().getTipoSigilo().getCodigo() == 0L) { | ||
336 | + throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | ||
337 | + } | ||
338 | + } else if (entity.getProcesso().getSigilo().getTipoSigilo().getCodigo() == 2L) { | ||
339 | + if (!UtilObjeto.isReferencia(entity.getSigilo()) || entity.getSigilo().getTipoSigilo().getCodigo() != 2L) { | ||
340 | + throw new BusinessException(DocumentoGedServiceImpl.VALIDAR_NIVEL_ACESSO, CodigoErro.REGRA_NEGOCIO.getValue()); | ||
341 | + } | ||
342 | + } | ||
343 | + } | ||
327 | } | 344 | } |
328 | 345 | ||
329 | } | 346 | } |
@@ -816,6 +833,8 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | @@ -816,6 +833,8 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
816 | if (!UtilColecao.isVazio(listaDocumentos)) { | 833 | if (!UtilColecao.isVazio(listaDocumentos)) { |
817 | for (DocumentoGed documento : listaDocumentos) { | 834 | for (DocumentoGed documento : listaDocumentos) { |
818 | DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId()); | 835 | DocumentoGed entity = (DocumentoGed) this.documentoGedDao.getReference(documento.getId()); |
836 | + documento.setProcesso(entity.getProcesso()); | ||
837 | + this.validarNivelAcessoDocumento(documento); | ||
819 | entity.setSigiloOriginal(documento.getSigilo()); | 838 | entity.setSigiloOriginal(documento.getSigilo()); |
820 | entity.setNivelAcessoOriginal(documento.getNivelAcesso()); | 839 | entity.setNivelAcessoOriginal(documento.getNivelAcesso()); |
821 | entity.setSigilo(documento.getSigilo()); | 840 | entity.setSigilo(documento.getSigilo()); |
@@ -1008,6 +1027,51 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | @@ -1008,6 +1027,51 @@ public class DocumentoGedServiceImpl extends GenericServiceImpl<DocumentoGed, Lo | ||
1008 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | 1027 | * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> |
1009 | * </p> | 1028 | * </p> |
1010 | * | 1029 | * |
1030 | + * Método responsável por enviar notificação para os responsável sobre a criação do documento sigiloso | ||
1031 | + * | ||
1032 | + * @author rogerio.costa | ||
1033 | + * | ||
1034 | + * @param DocumentoGed | ||
1035 | + */ | ||
1036 | + private void enviarNotificacaoDocumentoSigiloso(DocumentoGed documentoGed) { | ||
1037 | + | ||
1038 | + StringBuilder sb = new StringBuilder(); | ||
1039 | + | ||
1040 | + sb.append("O documento ").append(documentoGed.getNumero()).append(" foi criado como ").append(documentoGed.getSigilo().getTipoSigilo().getDescricao()); | ||
1041 | + | ||
1042 | + Dominio tipoNotificacao = this.dominioService.findByChaveAndCodigo("tipoNotificacao", 4L); | ||
1043 | + | ||
1044 | + Dominio tipoPrioridade = this.dominioService.findByChaveAndCodigo("tipoPrioridade", 2L); | ||
1045 | + | ||
1046 | + Notificacao notificacao = new Notificacao("Documento sigiloso", sb.toString(), tipoNotificacao, tipoPrioridade, null, null, null); | ||
1047 | + | ||
1048 | + Collection<Grupo> grupos = this.credencialProcessoService.findGrupoPorSigilo(documentoGed.getSigilo()); | ||
1049 | + | ||
1050 | + if (!UtilColecao.isVazio(grupos)) { | ||
1051 | + | ||
1052 | + notificacao.setNotificacaoGrupos(new LinkedList<NotificacaoGrupo>()); | ||
1053 | + | ||
1054 | + for (Grupo grupo : grupos) { | ||
1055 | + | ||
1056 | + NotificacaoGrupo notificacaoGrupo = new NotificacaoGrupo(grupo, notificacao); | ||
1057 | + | ||
1058 | + notificacao.getNotificacaoGrupos().add(notificacaoGrupo); | ||
1059 | + } | ||
1060 | + | ||
1061 | + } | ||
1062 | + | ||
1063 | + this.notificacaoService.save(notificacao); | ||
1064 | + } | ||
1065 | + | ||
1066 | + /** | ||
1067 | + * <p> | ||
1068 | + * <b>Iniciativa(s):</b> <a href="LINK_PORTAL">NUMERO_INICIATIVA</a> | ||
1069 | + * </p> | ||
1070 | + * | ||
1071 | + * <p> | ||
1072 | + * <b>Regra(s) de negócio:</b> <a href="LINK_PORTAL">NUMERO_REGRA_DE_NEGOCIO</a> | ||
1073 | + * </p> | ||
1074 | + * | ||
1011 | * Método responsável por obter através do id do PlanoClassificacao | 1075 | * Método responsável por obter através do id do PlanoClassificacao |
1012 | * | 1076 | * |
1013 | * @author rogerio.costa | 1077 | * @author rogerio.costa |
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/ClassificarDocumentoProcessoController.js
@@ -34,7 +34,6 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo | @@ -34,7 +34,6 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo | ||
34 | delete item.unidadeNome; | 34 | delete item.unidadeNome; |
35 | delete item.documentoVersao; | 35 | delete item.documentoVersao; |
36 | delete item.originalElement; | 36 | delete item.originalElement; |
37 | - delete item.nivelAcessoList; | ||
38 | 37 | ||
39 | if(item.nivelAcesso != undefined && item.nivelAcesso.sigilos != null){ | 38 | if(item.nivelAcesso != undefined && item.nivelAcesso.sigilos != null){ |
40 | angular.forEach(item.nivelAcesso.sigilos, function (item) { | 39 | angular.forEach(item.nivelAcesso.sigilos, function (item) { |
@@ -121,12 +120,12 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo | @@ -121,12 +120,12 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo | ||
121 | }); | 120 | }); |
122 | }; | 121 | }; |
123 | 122 | ||
124 | - $scope.limparSigilo = function(documento){ | 123 | + $scope.limparSigilo = function(object){ |
125 | 124 | ||
126 | $timeout(function(){ | 125 | $timeout(function(){ |
127 | - if(documento.nivelAcesso.nivelAcesso.codigo != 0){ | 126 | + if(object.nivelAcesso && object.nivelAcesso.nivelAcesso.codigo != 0){ |
128 | 127 | ||
129 | - documento.sigilo = null; | 128 | + object.sigilo = null; |
130 | 129 | ||
131 | } | 130 | } |
132 | }); | 131 | }); |
@@ -134,8 +133,12 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo | @@ -134,8 +133,12 @@ citApp.controller('ClassificarDocumentoProcessoController', ['$scope', 'Processo | ||
134 | 133 | ||
135 | $scope.findPorIdTipoProcesso = function(idTipoProcesso){ | 134 | $scope.findPorIdTipoProcesso = function(idTipoProcesso){ |
136 | 135 | ||
136 | + $scope.nivelAcessoList = []; | ||
137 | + | ||
137 | NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(idTipoProcesso).then(function(result) { | 138 | NivelAcessoTipoProcessoRepository.findPorIdTipoProcesso(idTipoProcesso).then(function(result) { |
138 | - $scope.nivelAcessoList = result; | 139 | + |
140 | + $scope.nivelAcessoList = result; | ||
141 | + | ||
139 | }); | 142 | }); |
140 | }; | 143 | }; |
141 | 144 |
cit-ecm-web/src/main/webapp/html/classificarProcessoDocumento/classificarProcessoDocumento.html
@@ -60,24 +60,20 @@ | @@ -60,24 +60,20 @@ | ||
60 | <div class="col-md-4"> | 60 | <div class="col-md-4"> |
61 | <label-select ng-id="processoValidacao.nivelAcesso" ng-label="ECM.LABEL.NIVEL_ACESSO" ng-disabled="aprovado" ng-model="processoValidacao.nivelAcesso" | 61 | <label-select ng-id="processoValidacao.nivelAcesso" ng-label="ECM.LABEL.NIVEL_ACESSO" ng-disabled="aprovado" ng-model="processoValidacao.nivelAcesso" |
62 | form="classificarDocumentoclassificarDocumentoProcessoForm" ng-obrigatorio="true" | 62 | form="classificarDocumentoclassificarDocumentoProcessoForm" ng-obrigatorio="true" |
63 | - ng-custom-options="nivelAcessoTipoProcesso.originalElement as nivelAcessoTipoProcesso.nivelAcesso.descricao for nivelAcessoTipoProcesso" track-by="track by nivelAcessoTipoProcesso.id" | ||
64 | - ng-list="nivelAcessoList" /> | 63 | + ng-custom-options="nivelAcessoTipoProcesso.originalElement as nivelAcessoTipoProcesso.nivelAcesso.descricao for nivelAcessoTipoProcesso" |
64 | + ng-list="nivelAcessoList" ng-custom-change="limparSigilo(processoValidacao)" track-by="track by nivelAcessoTipoProcesso.id"/> | ||
65 | </div> | 65 | </div> |
66 | 66 | ||
67 | <div class="col-md-4" ng-show="processoValidacao.nivelAcesso.nivelAcesso.codigo == 0"> | 67 | <div class="col-md-4" ng-show="processoValidacao.nivelAcesso.nivelAcesso.codigo == 0"> |
68 | <div class="form-group"> | 68 | <div class="form-group"> |
69 | - <label class="control-label block" | ||
70 | - ng-class="{'has-error': classificarDocumentoProcessoForm['processoValidacao.sigilo.id'].$error.required && (!classificarDocumentoProcessoForm['processoValidacao.sigilo.id'].$pristine || classificarDocumentoProcessoForm.$submitted)}"> | ||
71 | - <translate>ECM.LABEL.SIGILO</translate> <span class="red">*</span> <i | ||
72 | - ng-show="classificarDocumentoProcessoForm['processoValidacao.sigilo.id'].$error.required && (!classificarDocumentoProcessoForm['processoValidacao.sigilo.id'].$pristine || classificarDocumentoProcessoForm.$submitted)" | ||
73 | - class='fa fa-warning red' tooltip="{{$translate.instant('LABEL.SIGILO') + ' ' +$translate.instant('LABEL.CAMPO_OBRIGATORIO')}}" tooltip-placement='top'></i> | ||
74 | - </label> | ||
75 | - | ||
76 | - <label-select ng-id="processoValidacao.sigilo" ng-model="processoValidacao.sigilo" form="classificarDocumentoProcessoForm" | ||
77 | - ng-custom-options="sigilo.originalElement as sigilo.tipoSigilo.descricao for sigilo" track-by="track by sigilo.id" ng-list="sigilos" ng-disabled="aprovado" /> | 69 | + |
70 | + <label-select ng-id="processoValidacao.sigilo" ng-model="processoValidacao.sigilo" form="classificarDocumentoProcessoForm" ng-LABEL="ECM.LABEL.SIGILO" | ||
71 | + ng-custom-options="sigiloTipoProcesso.sigilo as sigiloTipoProcesso.sigilo.tipoSigilo.descricao for sigiloTipoProcesso" | ||
72 | + ng-list="processoValidacao.nivelAcesso.sigilos" ng-disabled="aprovado" ng-obrigatorio='processoValidacao.nivelAcesso.nivelAcesso.codigo == 0'/> | ||
73 | + | ||
78 | </div> | 74 | </div> |
79 | </div> | 75 | </div> |
80 | - | 76 | + |
81 | <div class="col-md-4"> | 77 | <div class="col-md-4"> |
82 | <label-input-checkbox ng-model="validado" ng-label="ECM.LABEL.VALIDADO"></label-input-checkbox> | 78 | <label-input-checkbox ng-model="validado" ng-label="ECM.LABEL.VALIDADO"></label-input-checkbox> |
83 | </div> | 79 | </div> |
@@ -102,7 +98,7 @@ | @@ -102,7 +98,7 @@ | ||
102 | <tr> | 98 | <tr> |
103 | <th style="width: 15%;" class="text-center"><translate>ECM.LABEL.NUM_DOCUMENTO</translate></th> | 99 | <th style="width: 15%;" class="text-center"><translate>ECM.LABEL.NUM_DOCUMENTO</translate></th> |
104 | <th style="width: 20%;" class="text-center"><translate>ECM.LABEL.TIPODOCUMENTO</translate></th> | 100 | <th style="width: 20%;" class="text-center"><translate>ECM.LABEL.TIPODOCUMENTO</translate></th> |
105 | - <th class="text-center"><translate>ECM.LABEL.NIVEL_PROPOSTO</translate></th> | 101 | + <th style="width: 46%" class="text-center"><translate>ECM.LABEL.NIVEL_PROPOSTO</translate></th> |
106 | <th class="text-center"><translate>ECM.LABEL.NIVEL_REVISADO</translate></th> | 102 | <th class="text-center"><translate>ECM.LABEL.NIVEL_REVISADO</translate></th> |
107 | 103 | ||
108 | </tr> | 104 | </tr> |
@@ -114,13 +110,13 @@ | @@ -114,13 +110,13 @@ | ||
114 | <td> | 110 | <td> |
115 | <div class="row"> | 111 | <div class="row"> |
116 | <div class="col-md-6"> | 112 | <div class="col-md-6"> |
117 | - <label-select ng-id="documentoValidacao.nivelAcesso" ng-model="documentoValidacao.nivelAcesso" form="classificarDocumentoProcessoForm" | 113 | + <label-select ng-id="documentoValidacao.nivelAcesso" ng-model="documentoValidacao.nivelAcesso" form="classificarDocumentoProcessoForm" ng-obrigatorio="true" |
118 | ng-custom-options="nivelAcessoTipoDocumento as nivelAcessoTipoDocumento.nivelAcesso.descricao for nivelAcessoTipoDocumento" | 114 | ng-custom-options="nivelAcessoTipoDocumento as nivelAcessoTipoDocumento.nivelAcesso.descricao for nivelAcessoTipoDocumento" |
119 | track-by="track by nivelAcessoTipoDocumento.id" ng-list="documentoValidacao.nivelAcessoList" ng-custom-change="limparSigilo(documentoValidacao)"/> | 115 | track-by="track by nivelAcessoTipoDocumento.id" ng-list="documentoValidacao.nivelAcessoList" ng-custom-change="limparSigilo(documentoValidacao)"/> |
120 | </div> | 116 | </div> |
121 | <div class="col-md-6" ng-show='documentoValidacao.nivelAcesso.nivelAcesso.codigo == 0'> | 117 | <div class="col-md-6" ng-show='documentoValidacao.nivelAcesso.nivelAcesso.codigo == 0'> |
122 | - <label-select ng-id="documentoValidacao.sigilo" ng-model="documentoValidacao.sigilo" form="classificarDocumentoProcessoForm" | ||
123 | - ng-custom-options="sigiloTipoDocumento.sigilo as sigiloTipoDocumento.tipoSigiloDescricao for sigiloTipoDocumento" track-by="track by sigiloTipoDocumento.sigilo.id" ng-list="documentoValidacao.nivelAcesso.sigilos" /> | 118 | + <label-select ng-id="documentoValidacao.sigilo" ng-model="documentoValidacao.sigilo" form="classificarDocumentoProcessoForm" ng-obrigatorio="documentoValidacao.nivelAcesso.nivelAcesso.codigo == 0" |
119 | + ng-custom-options="sigiloTipoDocumento.sigilo as sigiloTipoDocumento.sigilo.tipoSigilo.descricao for sigiloTipoDocumento" ng-list="documentoValidacao.nivelAcesso.sigilos"/> | ||
124 | 120 | ||
125 | </div> | 121 | </div> |
126 | </div> | 122 | </div> |