Commit 5a58e3dc1bf2f79e345dffe34d251bd0d3550722

Authored by ROGERIO CASSIMIRO DE SOUZA
1 parent f55c1435
Exists in master

redmine #4463 subtabela listagem processos

cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
... ... @@ -8,6 +8,7 @@ import com.googlecode.genericdao.search.SearchResult;
8 8 import br.com.centralit.api.model.Processo;
9 9 import br.com.centralit.api.model.UnidadeProcesso;
10 10 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
  11 +import br.com.centralit.framework.model.Usuario;
11 12  
12 13 /**
13 14 * <p>
... ... @@ -122,8 +123,10 @@ public interface UnidadeProcessoDao extends CitGenericDAO {
122 123 * Método responsável por listar processos através da unidade do usuário
123 124 * @author rogerio.cassimiro
124 125 * @param search
  126 + * @param usuario
  127 + * @param idStatus
125 128 * @return <RT> SearchResult<RT>
126 129 */
127   - <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search);
  130 + <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search, Usuario usuario, Long idStatus);
128 131  
129 132 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
... ... @@ -2,21 +2,24 @@ package br.com.centralit.api.dao.impl;
2 2  
3 3 import java.util.Collection;
4 4  
5   -import org.springframework.security.core.context.SecurityContextHolder;
  5 +import org.hibernate.Criteria;
  6 +import org.hibernate.criterion.Projections;
  7 +import org.hibernate.criterion.Restrictions;
6 8 import org.springframework.stereotype.Repository;
7 9  
8   -import com.googlecode.genericdao.search.Filter;
9   -import com.googlecode.genericdao.search.ISearch;
10   -import com.googlecode.genericdao.search.SearchResult;
11   -
12 10 import br.com.centralit.api.dao.UnidadeProcessoDao;
13 11 import br.com.centralit.api.model.Processo;
  12 +import br.com.centralit.api.model.SigiloPrivilegio;
14 13 import br.com.centralit.api.model.UnidadeProcesso;
15 14 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
16 15 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
17 16 import br.com.centralit.framework.model.Usuario;
18 17 import br.com.centralit.framework.util.UtilColecao;
19 18  
  19 +import com.googlecode.genericdao.search.Filter;
  20 +import com.googlecode.genericdao.search.ISearch;
  21 +import com.googlecode.genericdao.search.SearchResult;
  22 +
20 23 /**
21 24 * <p>
22 25 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -177,13 +180,30 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
177 180 * Método responsável por listar processos através da unidade do usuário
178 181 * @author rogerio.cassimiro
179 182 * @param search
  183 + * @param usuario
  184 + * @param idStatus
180 185 * @return <RT> SearchResult<RT>
181 186 */
182 187 @Override
183   - public <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search) {
184   - Usuario usuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() );
185   - search.getFilters().add(Filter.in("unidade.id", usuario.getUnidade().getId()));
186   - search.getFilters().add(Filter.or(Filter.equal("concluido", Boolean.FALSE), Filter.isEmpty("concluido")));
  188 + public <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search, Usuario usuario, Long idStatus) {
  189 +
  190 + search.getFilters().add(Filter.or(Filter.not(Filter.equal("processo.status.id", idStatus)), Filter.isEmpty("processo.status.id")));
  191 +
  192 + Criteria criteriaPrivilegio = this.newCriteria(SigiloPrivilegio.class);
  193 + criteriaPrivilegio.setProjection(Projections.property("sigilo.id"));
  194 + criteriaPrivilegio.createAlias("privilegio", "privilegio");
  195 + criteriaPrivilegio.createAlias("privilegio.grupoPrivilegios", "grupoPrivilegio");
  196 + criteriaPrivilegio.add(Restrictions.isNull("grupoPrivilegio.dataInativo"));
  197 + criteriaPrivilegio.createCriteria("grupoPrivilegio.grupo").createAlias("grupoUsuarios", "grupoUsuario");
  198 + criteriaPrivilegio.add(Restrictions.isNull("grupoUsuario.dataInativo"));
  199 + criteriaPrivilegio.add(Restrictions.eq("grupoUsuario.usuario.id", usuario.getId()));
  200 +
  201 + search.getFilters().add(Filter.equal("processo.autor.id", usuario.getId()));
  202 +// search.getFilters().add(Filter.or(
  203 +// Filter.in("processo.autor.id", usuario.getId()),
  204 +// Filter.in("unidade.id", usuario.getUnidade().getId()),
  205 +// Filter.in("processo.sigilo.id", criteriaPrivilegio.list())));
  206 +//
187 207 return super.searchAndCount(search);
188 208 }
189 209 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/NivelAcessoTipoProcesso.java
... ... @@ -72,7 +72,7 @@ public class NivelAcessoTipoProcesso extends PersistentObjectAudit {
72 72  
73 73 /** Atributo tipoAcesso. */
74 74 @ManyToOne(fetch = FetchType.LAZY)
75   - @JsonView({ ViewsEcm.TipoProcessoEdit.class, ViewsEcm.NivelAcessoTipoProcessoEdit.class, Views.ProcessoList.class })
  75 + @JsonView({ ViewsEcm.TipoProcessoEdit.class, ViewsEcm.NivelAcessoTipoProcessoEdit.class, Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
76 76 private Dominio nivelAcesso;
77 77  
78 78 @OneToMany(fetch = FetchType.LAZY, mappedBy = "nivelAcessoTipoProcesso", cascade = CascadeType.ALL)
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
... ... @@ -147,7 +147,7 @@ public class Processo extends PersistentObjectUnidade {
147 147  
148 148 /** Atributo nivelAcesso. */
149 149 @ManyToOne(fetch = FetchType.LAZY)
150   - @JsonView({ Views.ProcessoList.class })
  150 + @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
151 151 private NivelAcessoTipoProcesso nivelAcesso;
152 152  
153 153 @ManyToOne(fetch = FetchType.LAZY)
... ... @@ -171,7 +171,7 @@ public class Processo extends PersistentObjectUnidade {
171 171  
172 172 /** Atributo sigilo. */
173 173 @ManyToOne(fetch = FetchType.LAZY)
174   - @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
  174 + @JsonView({ Views.ProcessoList.class })
175 175 private Sigilo sigilo;
176 176  
177 177 @ManyToOne(fetch = FetchType.LAZY)
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/Sigilo.java
... ... @@ -65,7 +65,7 @@ public class Sigilo extends PersistentObjectAudit {
65 65  
66 66 /** Atributo tipoSigilo. */
67 67 @ManyToOne(fetch = FetchType.LAZY)
68   - @JsonView({ Views.GenericView.class, Views.UnidadeProcessoListView.class })
  68 + @JsonView({ Views.GenericView.class})
69 69 private Dominio tipoSigilo;
70 70  
71 71 /** Atributo sigiloPrivilegios. */
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
... ... @@ -5,6 +5,7 @@ import java.util.Collection;
5 5 import java.util.List;
6 6  
7 7 import org.springframework.beans.factory.annotation.Autowired;
  8 +import org.springframework.security.core.context.SecurityContextHolder;
8 9 import org.springframework.stereotype.Service;
9 10  
10 11 import br.com.centralit.api.dao.UnidadeProcessoDao;
... ... @@ -21,7 +22,9 @@ import br.com.centralit.api.service.UnidadeProcessoService;
21 22 import br.com.centralit.api.service.UnidadeService;
22 23 import br.com.centralit.api.service.UsuarioService;
23 24 import br.com.centralit.api.viewHelper.EnviarProcessoVH;
  25 +import br.com.centralit.framework.model.Dominio;
24 26 import br.com.centralit.framework.model.Unidade;
  27 +import br.com.centralit.framework.model.Usuario;
25 28 import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
26 29 import br.com.centralit.framework.util.UtilColecao;
27 30 import br.com.centralit.framework.util.UtilObjeto;
... ... @@ -102,7 +105,7 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
102 105 /** Atributo historicoAtribuicaoProcessoService. */
103 106 @Autowired
104 107 private HistoricoAtribuicaoProcessoService historicoAtribuicaoProcessoService;
105   -
  108 +
106 109 /**
107 110 * Responsável pela criação de novas instâncias desta classe.
108 111 *
... ... @@ -331,7 +334,9 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
331 334 */
332 335 @Override
333 336 public <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search) {
334   - return this.unidadeProcessoDao.searchAndCountPorUnidade(search);
  337 + Dominio dominioStatusProcesso = dominioService.findByChaveAndCodigo(Dominio.TIPO_STATUS_PROCESSO_ECM, Dominio.TIPO_STATUS_PROCESSO_ECM_CONCLUIDO);
  338 + Usuario usuario = ( (Usuario) SecurityContextHolder.getContext().getAuthentication().getPrincipal() );
  339 + return this.unidadeProcessoDao.searchAndCountPorUnidade(search, usuario, dominioStatusProcesso.getId());
335 340 }
336 341  
337 342 }
338 343 \ No newline at end of file
... ...
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
... ... @@ -404,7 +404,10 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
404 404 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.TIPO_SUPORTE_DOCUMENTO ", "Tipo suporte de documento", dominio, modulo));
405 405 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.DIGITE_PROTOCOLO", "Digite o potocolo", dominio, modulo));
406 406 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.SOBRESTAR_SEM", "Sobrestar", dominio, modulo));
407   -
  407 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.SOBRESTADA", "Sobrestada", dominio, modulo));
  408 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.SITUACAO_INSTANCIA_TAREFA", "Situação instância tarefa", dominio, modulo));
  409 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NIVEL_DE_ACESSO", "Nível de acesso", dominio, modulo));
  410 + internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.ASSUNTO_COMPLEMENTAR", "Assunto complementar", dominio, modulo));
408 411 }
409 412  
410 413 /**
... ... @@ -509,6 +512,9 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
509 512 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.PROCESSO_CONCLUIDO_SUCESSO", "Processo concluído com sucesso!", dominio, modulo));
510 513 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.PROCESSO_SALVO_SUCESSO", "O processo !", dominio, modulo));
511 514 internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.NAO_EXISTE_TAREFA_EXECUTAR", "Não existem tarefas a serem executadas!", dominio, modulo));
512   -
  515 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CONFIRMA_SOBRESTAMENTO_TAREFA", "Confirma o sobrestamento da tarefa?", dominio, modulo));
  516 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.TAREFA_SOBRESTADA_SUCESSO", "Tarefa sobrestada com sucesso!", dominio, modulo));
  517 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.CONFIRMA_REATIVACAO_TAREFA", "Confirma reativação da tarefa?", dominio, modulo));
  518 + internacionalizacaoList.add(new Internacionalizacao("ECM.MSG.TAREFA_REATIVADA", "Tarefa reativada com sucesso", dominio, modulo));
513 519 }
514 520 }
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js
... ... @@ -13,7 +13,7 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
13 13 title : $translate.instant('ECM.LABEL.TIPOPROCESSO'),
14 14 value : 'processo.tipoProcesso.descricao'
15 15 }, {
16   - title : $translate.instant('ECM.LABEL.ASSUNTOCOMPLEMENTAR'),
  16 + title : $translate.instant('ECM.LABEL.ASSUNTO_COMPLEMENTAR'),
17 17 value : 'processo.assuntoComplementar'
18 18 }, {
19 19 title : $translate.instant('ECM.LABEL.ATRIBUIDOA'),
... ... @@ -22,8 +22,8 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
22 22 title : $translate.instant('LABEL.SITUACAO'),
23 23 value : 'processo.status.descricao'
24 24 }, {
25   - title : $translate.instant('ECM.LABEL.NIVEL_SIGILO'),
26   - value : 'processo.sigilo.tipoSigilo.descricao'
  25 + title : $translate.instant('ECM.LABEL.NIVEL_DE_ACESSO'),
  26 + value : 'processo.nivelAcesso.nivelAcesso.descricao'
27 27 }];
28 28  
29 29 $scope.filterCriteria = {
... ... @@ -32,14 +32,14 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
32 32 dir : 'asc',
33 33 sort : 'processo.nup',
34 34 limit : 10,
35   - fields: ['id', 'processo.nup', 'processo.tipoProcesso.descricao', 'processo.assuntoComplementar','usuarioResponsavel.username', 'processo.status.descricao', 'processo.sigilo.tipoSigilo.descricao', 'processo.dataCriacao', 'processo.idProcessInstance', 'processo.dataReferencia', 'processo.assunto'],
  35 + fields: ['id', 'processo.nup', 'processo.tipoProcesso.descricao', 'processo.assuntoComplementar','usuarioResponsavel.username', 'processo.status.descricao', 'processo.nivelAcesso.nivelAcesso.descricao', 'processo.dataCriacao', 'processo.idProcessInstance', 'processo.dataReferencia', 'processo.assunto'],
36 36 filters : [
37 37 { type : 'string', field : 'processo.nup'},
38 38 { type : 'string', field : 'processo.tipoProcesso.descricao'},
39 39 { type : 'string', field : 'processo.assuntoComplementar'},
40 40 { type : 'string', field : 'usuarioResponsavel.username'},
41 41 { type : 'string', field : 'processo.status.descricao', listaDominio : []},
42   - { type : 'string', field : 'processo.sigilo.tipoSigilo.descricao'}
  42 + { type : 'string', field : 'processo.nivelAcesso.nivelAcesso.descricao'}
43 43 ]
44 44 };
45 45  
... ... @@ -102,7 +102,6 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
102 102 , {type: 'string', field: 'workItem.processInstance.businessProcess.description'}
103 103 , {type: 'string', field: 'workItem.processInstance.flowStatus.name'}]
104 104 };
105   -
106 105 $scope.filterCriteriaBusinessProcess.username = filterService.username;
107 106 $scope.filterCriteriaBusinessProcess.groups = filterService.groups;
108 107 }
... ... @@ -121,27 +120,44 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
121 120 });
122 121 };
123 122  
124   - $scope.selecionarTarefa = function(tarefaSelecionada) {
125   - //$scope.tarefaSelecionada = tarefaSelecionada;
126   - };
127   -
128 123 function _recuperarPermissoes(idAssignment){
129   - $scope.assignments[0].$checked = true;
130 124 BusinessProcessRepository.getPermissions({id: idAssignment}).then(function(result) {
131 125 $scope.workItem = result.originalElement;
132 126 vincularWorkItemAssignments();
133 127 $scope.btnAction = !(!$scope.workItem.execute && !$scope.workItem.suspend && !$scope.workItem.delegate && !$scope.workItem.restart && !$scope.workItem.visualize);
134 128 $scope.modelSelecionado.$expandido = !$scope.modelSelecionado.$expandido;
  129 + $scope.modelSelecionado.workItem = $scope.workItem;
135 130 });
136 131 };
137 132  
138 133 function vincularWorkItemAssignments(){
139   - $scope.assignments.forEach(function(assignments){
140   - assignments.workItem = $scope.workItem;
  134 + $scope.assignments.forEach(function(assignment){
  135 + assignment.workItem = $scope.workItem;
  136 + assignment.checked = false;
  137 + });
  138 + $scope.assignments[0].checked = true;
  139 + };
  140 +
  141 + $scope.selectAssignment = function(assignmentSelect) {
  142 + $scope.assignments.forEach(function(assignment){
  143 + assignment.checked = false;
  144 + if(assignment.id == assignmentSelect.id){
  145 + assignment.checked = true;
  146 + }
141 147 });
142 148 };
143 149  
  150 + function _getAssignmentSelected() {
  151 + for(var pos = 0; pos < $scope.assignments.length; pos++){
  152 + if($scope.assignments[pos].checked){
  153 + $scope.modelSelecionado.workItem = $scope.assignments[pos];
  154 + break;
  155 + }
  156 + }
  157 + };
  158 +
144 159 $scope.executarTarefa = function(){
  160 + _getAssignmentSelected();
145 161 if($scope.workItem){
146 162 var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/userTask.html';
147 163 if ($scope.workItem.flowElement.userInterface && $scope.workItem.flowElement.userInterface.executeCustomPage) {
... ... @@ -163,11 +179,9 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
163 179 $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_TAREFA'));
164 180 return ;
165 181 }
166   -
167   - $scope.processInstance = $scope.workItem.processInstance;
  182 + $scope.processInstance = $scope.modelSelecionado.workItem.processInstance;
168 183 $scope.processInstance.collapsed = true;
169 184 $scope.processInstance.collapsedError = true;
170   -
171 185 $rootScope.task = $scope.workItem;
172 186 $rootScope.processInstance = $scope.processInstance;
173 187 $rootScope.controllerScope = $scope;
... ... @@ -179,5 +193,70 @@ citApp.controller(&#39;GerenciarProcessoListUnidadeController&#39;, [&#39;$scope&#39;, &#39;workflow
179 193 $scope.addNewWorkspace($translate.instant('ESI.PERMISSAO.EXECUTAR')+" "+$translate.instant('ESI.TAREFA').toLowerCase()+" '"+nome+"'", pagina, true, 'mod-red-dark', $scope.workItem);
180 194 };
181 195  
  196 + $scope.suspenderProcesso = function(){
  197 + _getAssignmentSelected();
  198 + $scope.$openModalConfirm({
  199 + message: $translate.instant('ECM.MSG.CONFIRMA_SOBRESTAMENTO_TAREFA'),
  200 + callback: function () {
  201 + $scope.$modalConfirmInstance.dismiss('cancel');
  202 + $scope.setLoading(true);
  203 + RuntimeManagerRepository.suspendProcessInstance($scope.modelSelecionado.workItem.processInstance.id).then(function(result) {
  204 + $scope.setLoading(false);
  205 + $scope.modelSelecionado.$expandido = !$scope.modelSelecionado.$expandido;
  206 + $scope.modelSelecionado.$show = !$scope.modelSelecionado.$show;
  207 + $scope.showAlert("success","ECM.MSG.TAREFA_SOBRESTADA_SUCESSO","");
  208 + });
  209 + }
  210 + });
  211 + };
  212 +
  213 + $scope.reativarProcesso = function(){
  214 + _getAssignmentSelected();
  215 + $scope.$openModalConfirm({
  216 + message: $translate.instant('ECM.MSG.CONFIRMA_REATIVACAO_TAREFA'),
  217 + callback: function () {
  218 + $scope.$modalConfirmInstance.dismiss('cancel');
  219 + $scope.setLoading(true);
  220 + RuntimeManagerRepository.restartProcessInstance($scope.modelSelecionado.workItem.processInstance.id).then(function(result) {
  221 + $scope.setLoading(false);
  222 + $scope.modelSelecionado.$expandido = !$scope.modelSelecionado.$expandido;
  223 + $scope.modelSelecionado.$show = !$scope.modelSelecionado.$show;
  224 + $scope.showAlert("success","ECM.MSG.TAREFA_REATIVADA","");
  225 + });
  226 + }
  227 + });
  228 + };
  229 +
  230 + $scope.visualizarFluxo = function(){
  231 + _getAssignmentSelected();
  232 + var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/visualizacaoEsi.html';
  233 + if (appService.existsWorkspace(pagina)) {
  234 + $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_VISUALIZACAO'));
  235 + return ;
  236 + }
  237 + $scope.tarefa = $scope.modelSelecionado.workItem;
  238 + $scope.instancia = $scope.tarefa.processInstance;
  239 + $rootScope.tarefa = $scope.tarefa;
  240 + $rootScope.instancia = $scope.instancia;
  241 + $rootScope.controllerScope = $scope;
  242 + $scope.addNewWorkspace($scope.modelSelecionado.workItem.processInstance.businessProcess.description, pagina, true, 'mod-red-dark', $scope.tarefa);
  243 + };
  244 +
  245 + $scope.consultarHistorico = function(){
  246 + _getAssignmentSelected();
  247 + var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/consultaLog.html';
  248 + if (appService.existsWorkspace(pagina)) {
  249 + $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_HISTORICO'));
  250 + return ;
  251 + }
  252 + $scope.processInstance = $scope.modelSelecionado.workItem.processInstance;
  253 + $rootScope.processInstance = $scope.processInstance;
  254 + $rootScope.controllerScope = $scope;
  255 + $scope.processInstance.collapsed = true;
  256 + $scope.processInstance.collapsedError = true;
  257 + $scope.processInstance.instances = [];
  258 + $scope.addNewWorkspace($scope.modelSelecionado.workItem.processInstance.businessProcess.description, pagina, true, 'mod-red-dark', $scope.processInstance);
  259 + };
  260 +
182 261 carregarDominiosStatusProcesso();
183 262 }]);
184 263 \ No newline at end of file
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/tarefasPorProcesso.html
1 1  
2   -<fieldset style="margin-left: 5%; width: 90%" ng-if="modelSelecionado.$expandido">
  2 +<fieldset style="margin-left: 5%; width: 90%; margin-top: 10px;" ng-if="modelSelecionado.$expandido">
3 3  
4 4 <legend>
5 5 <div class="pull-left" style="font-size : 14px; !important">
... ... @@ -17,27 +17,27 @@
17 17 <div class="panel panel-default">
18 18 <div class="panel-heading clearfix" ng-if="btnAction">
19 19 <button class="btn btn-clear" title="{{$translate.instant('LABEL.EXECUTAR')}}" alt="{{$translate.instant('LABEL.EXECUTAR')}}" type="button"
20   - ng-click="executarTarefa();" >
  20 + ng-click="executarTarefa();" ng-if="modelSelecionado.workItem.processInstance.status != 'SUSPENDED'" >
21 21 <i class="fa fa-play-circle-o green"></i>
22 22 <translate>LABEL.EXECUTAR</translate>
23 23 </button>
24 24 <button class="btn btn-clear" title="{{$translate.instant('ECM.LABEL.SOBRESTAR_SEM')}}" alt="{{$translate.instant('ECM.LABEL.SOBRESTAR_SEM')}}" type="button"
25   - ng-click="" >
  25 + ng-click="suspenderProcesso();" ng-if="modelSelecionado.workItem.processInstance.status != 'SUSPENDED'">
26 26 <i class="fa fa-pause red"></i>
27 27 <translate>ECM.LABEL.SOBRESTAR_SEM</translate>
28 28 </button>
29 29 <button class="btn btn-clear" title="{{$translate.instant('LABEL.REATIVAR')}}" alt="{{$translate.instant('LABEL.REATIVAR')}}" type="button"
30   - ng-click="" >
  30 + ng-click="reativarProcesso();" ng-if="modelSelecionado.workItem.processInstance.status == 'SUSPENDED'">
31 31 <i class="fa fa-play green"></i>
32 32 <translate>LABEL.REATIVAR</translate>
33 33 </button>
34 34 <button class="btn btn-clear" title="{{$translate.instant('PORTAL.LABEL.VISUALIZAR_FLUXO')}}" alt="{{$translate.instant('PORTAL.LABEL.VISUALIZAR_FLUXO')}}" type="button"
35   - ng-click="" >
  35 + ng-click="visualizarFluxo();" >
36 36 <i class="fa fa-search blue"></i>
37 37 <translate>PORTAL.LABEL.VISUALIZAR_FLUXO</translate>
38 38 </button>
39 39 <button class="btn btn-clear" title="{{$translate.instant('ESI.LOG.CONSULTA_LOG')}}" alt="{{$translate.instant('ESI.LOG.CONSULTA_LOG')}}" type="button"
40   - ng-click="" >
  40 + ng-click="consultarHistorico();" >
41 41 <i class="fa fa-history yellow-dark"></i>
42 42 <translate>ESI.LOG.CONSULTA_LOG</translate>
43 43 </button>
... ... @@ -49,13 +49,13 @@
49 49 <tr>
50 50 <th style="width: 5%;"></th>
51 51 <th colspan="2" style="width: 60%;"><small><translate>ESI.TAREFA</translate></small></th>
52   - <th style="align:center;"><small><translate>PORTAL.LABEL.SITUACAO_INSTANCIA</translate></small></th>
  52 + <th style="align:center;"><small><translate>ECM.LABEL.SITUACAO_INSTANCIA_TAREFA</translate></small></th>
53 53 </tr>
54 54 </thead>
55 55 <tbody>
56 56 <tr ng-repeat="assignment in assignments">
57 57 <td class="text-center" style="width: 5%;">
58   - <input type="radio" name="modelChecked" ng-value="true" ng-model="$parent.tarefaSelecionada" ng-click="selecionarTarefa(assigment)"/>
  58 + <input type="radio" id="{{assignment.id}}" name="assignments" ng-checked="assignment.checked === true" ng-click="selectAssignment(assignment);" />
59 59 </td>
60 60 <td class="text-center" style="width: 5%;">
61 61 <span class="small green" >{{assignment.id}}</span>
... ... @@ -74,7 +74,7 @@
74 74 <label ng-show="assignment.workItem.processInstance.status == 'SUSPENDED'">
75 75 <span class="small badge black" style="background-color: red !important">
76 76 <b><font color="white">
77   - <translate>ESI.ENUMERADO.SITUACAO_INSTANCIA_SUSPENSA</translate>
  77 + <translate>ECM.LABEL.SOBRESTADA</translate>
78 78 </b></font>
79 79 </span>
80 80 </label>
... ...