Commit 38f86c5235721dfea29dd808699d434772fb5dde

Authored by ROGERIO CASSIMIRO DE SOUZA
1 parent 97c937ff
Exists in master

redmine #4463 busca processo por unidade usuario

Showing 18 changed files with 213 additions and 726 deletions   Show diff stats
cit-ecm-api/src/main/java/br/com/centralit/api/dao/ProcessoDao.java
... ... @@ -155,5 +155,5 @@ public interface ProcessoDao extends CitGenericDAO {
155 155 * @return <RT> SearchResult<RT>
156 156 */
157 157 <RT> SearchResult<RT> searchAndCountPorSigilo(ISearch search);
158   -
  158 +
159 159 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/UnidadeProcessoDao.java
... ... @@ -2,6 +2,9 @@ package br.com.centralit.api.dao;
2 2  
3 3 import java.util.Collection;
4 4  
  5 +import com.googlecode.genericdao.search.ISearch;
  6 +import com.googlecode.genericdao.search.SearchResult;
  7 +
5 8 import br.com.centralit.api.model.Processo;
6 9 import br.com.centralit.api.model.UnidadeProcesso;
7 10 import br.com.centralit.framework.dao.arquitetura.CitGenericDAO;
... ... @@ -114,5 +117,13 @@ public interface UnidadeProcessoDao extends CitGenericDAO {
114 117 * @return UnidadeProcesso
115 118 */
116 119 UnidadeProcesso obterPorUnidadeEProcesso(Long idProcesso, Long idUnidade);
117   -
  120 +
  121 + /**
  122 + * Método responsável por listar processos através da unidade do usuário
  123 + * @author rogerio.cassimiro
  124 + * @param search
  125 + * @return <RT> SearchResult<RT>
  126 + */
  127 + <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search);
  128 +
118 129 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/ProcessoDaoHibernate.java
... ... @@ -211,5 +211,5 @@ public class ProcessoDaoHibernate extends CitGenericDAOImpl implements ProcessoD
211 211  
212 212 return super.searchAndCount(search);
213 213 }
214   -
  214 +
215 215 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/dao/impl/UnidadeProcessoDaoHibernate.java
... ... @@ -2,13 +2,19 @@ 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 6 import org.springframework.stereotype.Repository;
6 7  
  8 +import com.googlecode.genericdao.search.Filter;
  9 +import com.googlecode.genericdao.search.ISearch;
  10 +import com.googlecode.genericdao.search.SearchResult;
  11 +
7 12 import br.com.centralit.api.dao.UnidadeProcessoDao;
8 13 import br.com.centralit.api.model.Processo;
9 14 import br.com.centralit.api.model.UnidadeProcesso;
10 15 import br.com.centralit.framework.dao.arquitetura.CitGenericDAOImpl;
11 16 import br.com.centralit.framework.dao.arquitetura.SearchSeven;
  17 +import br.com.centralit.framework.model.Usuario;
12 18 import br.com.centralit.framework.util.UtilColecao;
13 19  
14 20 /**
... ... @@ -167,4 +173,17 @@ public class UnidadeProcessoDaoHibernate extends CitGenericDAOImpl implements Un
167 173  
168 174 }
169 175  
  176 + /**
  177 + * Método responsável por listar processos através da unidade do usuário
  178 + * @author rogerio.cassimiro
  179 + * @param search
  180 + * @return <RT> SearchResult<RT>
  181 + */
  182 + @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")));
  187 + return super.searchAndCount(search);
  188 + }
170 189 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/framework/json/ViewsEcm.java
... ... @@ -106,5 +106,4 @@ public class ViewsEcm extends Views {
106 106  
107 107 public static class TipoSuporteDocumentoEdit extends TipoSuporteDocumentoListView{};
108 108  
109   -
110 109 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/Processo.java
... ... @@ -69,13 +69,17 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
69 69 @JsonIgnoreProperties({ "sugestao", "assuntoPlanoClassificacao" })
70 70 public class Processo extends PersistentObjectUnidade {
71 71  
  72 + public static final String GRID_PROCESSO_NA_UNIDADE = "GRID_PROCESSO_NA_UNIDADE";
  73 +
  74 + public static final String GRID_CLASSIFICACAO_PROCESSO_DOCUMENTO = "GRID_CLASSIFICACAO_PROCESSO_DOCUMENTO";
  75 +
72 76 /** Atributo serialVersionUID. */
73 77 private static final long serialVersionUID = -6167513900417461697L;
74 78  
75 79 /** Atributo id. */
76 80 @Id
77 81 @GeneratedValue(strategy = GenerationType.AUTO)
78   - @JsonView({ Views.GenericView.class })
  82 + @JsonView({ Views.GenericView.class, Views.UnidadeProcessoListView.class })
79 83 private Long id;
80 84  
81 85 /** Atributo assuntoComplementar. */
... ... @@ -86,6 +90,7 @@ public class Processo extends PersistentObjectUnidade {
86 90 @Temporal(TemporalType.TIMESTAMP)
87 91 @JsonSerialize(using = JsonCalendarSimpleDateSerializer.class)
88 92 @JsonDeserialize(using = JsonCalendarSimpleDateDeserializer.class)
  93 + @JsonView({Views.UnidadeProcessoListView.class})
89 94 private Calendar dataReferencia;
90 95  
91 96 /** Atributo dataConclusao. */
... ... @@ -95,7 +100,7 @@ public class Processo extends PersistentObjectUnidade {
95 100 private Calendar dataConclusao;
96 101  
97 102 /** Atributo nup. */
98   - @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.ProcessoAutoCompleteView.class })
  103 + @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.ProcessoAutoCompleteView.class, Views.UnidadeProcessoListView.class })
99 104 private String nup;
100 105  
101 106 /** Atributo nome. */
... ... @@ -106,7 +111,7 @@ public class Processo extends PersistentObjectUnidade {
106 111 private Long idTask;
107 112  
108 113 /** Atributo nup. */
109   - @JsonView({ Views.ProcessoEdit.class })
  114 + @JsonView({ Views.ProcessoEdit.class})
110 115 private Dominio tipoProtocolo;
111 116  
112 117 /** Atributo observacaoGeral. */
... ... @@ -115,7 +120,7 @@ public class Processo extends PersistentObjectUnidade {
115 120  
116 121 /** Atributo status. */
117 122 @ManyToOne(fetch = FetchType.LAZY)
118   - @JsonView({ Views.ProcessoEdit.class })
  123 + @JsonView({ Views.ProcessoEdit.class, Views.UnidadeProcessoListView.class })
119 124 private Dominio status;
120 125  
121 126 /** Atributo tramitarDocumento. */
... ... @@ -124,7 +129,7 @@ public class Processo extends PersistentObjectUnidade {
124 129 private TramitarDocumento tramitarDocumento;
125 130  
126 131 /** Atributo tipoProcesso. */
127   - @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class })
  132 + @JsonView({ Views.ProcessoList.class, Views.ProcessoRelacionadoList.class, Views.AnexarProcesso.class, Views.UnidadeProcessoListView.class })
128 133 @ManyToOne(fetch = FetchType.LAZY)
129 134 private TipoProcesso tipoProcesso;
130 135  
... ... @@ -137,7 +142,7 @@ public class Processo extends PersistentObjectUnidade {
137 142 private String tipoAssunto;
138 143  
139 144 /** Atributo idProcessInstance. */
140   - @JsonView({ Views.ProcessoList.class })
  145 + @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
141 146 private Long idProcessInstance;
142 147  
143 148 /** Atributo nivelAcesso. */
... ... @@ -166,7 +171,7 @@ public class Processo extends PersistentObjectUnidade {
166 171  
167 172 /** Atributo sigilo. */
168 173 @ManyToOne(fetch = FetchType.LAZY)
169   - @JsonView({ Views.ProcessoList.class })
  174 + @JsonView({ Views.ProcessoList.class, Views.UnidadeProcessoListView.class })
170 175 private Sigilo sigilo;
171 176  
172 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 })
  68 + @JsonView({ Views.GenericView.class, Views.UnidadeProcessoListView.class })
69 69 private Dominio tipoSigilo;
70 70  
71 71 /** Atributo sigiloPrivilegios. */
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/TipoProcesso.java
... ... @@ -63,7 +63,7 @@ public class TipoProcesso extends PersistentObjectUnidade {
63 63 private Long id;
64 64  
65 65 /** Atributo descricao. */
66   - @JsonView({ ViewsEcm.TipoProcessoList.class })
  66 + @JsonView({ ViewsEcm.TipoProcessoList.class, Views.UnidadeProcessoListView.class })
67 67 private String descricao;
68 68  
69 69 /** Atributo nome. */
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/model/UnidadeProcesso.java
... ... @@ -72,17 +72,17 @@ public class UnidadeProcesso extends PersistentObjectAudit {
72 72  
73 73 /** Atributo processo. */
74 74 @ManyToOne(fetch = FetchType.LAZY)
75   - @JsonView({ Views.EnviarProcessoView.class })
  75 + @JsonView({ Views.EnviarProcessoView.class, Views.UnidadeProcessoListView.class })
76 76 private Processo processo;
77 77  
78 78 /** Atributo grupo. */
79 79 @ManyToOne(fetch = FetchType.LAZY)
80   - @JsonView({ Views.EnviarProcessoView.class })
  80 + @JsonView({ Views.EnviarProcessoView.class})
81 81 private Unidade unidade;
82 82  
83 83 /** Atributo usuarioResponsavel. */
84 84 @ManyToOne(fetch = FetchType.LAZY)
85   - @JsonView({ Views.EnviarProcessoView.class })
  85 + @JsonView({ Views.EnviarProcessoView.class, Views.UnidadeProcessoListView.class })
86 86 private Usuario usuarioResponsavel;
87 87  
88 88 /**
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/UnidadeProcessoService.java
... ... @@ -7,6 +7,9 @@ import br.com.centralit.api.model.UnidadeProcesso;
7 7 import br.com.centralit.api.viewHelper.EnviarProcessoVH;
8 8 import br.com.centralit.framework.service.arquitetura.GenericService;
9 9  
  10 +import com.googlecode.genericdao.search.ISearch;
  11 +import com.googlecode.genericdao.search.SearchResult;
  12 +
10 13 /**
11 14 * <p>
12 15 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -169,4 +172,12 @@ public interface UnidadeProcessoService extends GenericService&lt;UnidadeProcesso,
169 172 */
170 173 void saveUnidadeProcesso(Processo processo);
171 174  
  175 + /**
  176 + * Método responsável por listar processos através da unidade do usuário
  177 + * @author rogerio.cassimiro
  178 + * @param search
  179 + * @return <RT> SearchResult<RT>
  180 + */
  181 + <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search);
  182 +
172 183 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/ProcessoServiceImpl.java
... ... @@ -19,9 +19,6 @@ import org.springframework.beans.factory.annotation.Qualifier;
19 19 import org.springframework.stereotype.Service;
20 20 import org.springframework.validation.Validator;
21 21  
22   -import com.googlecode.genericdao.search.ISearch;
23   -import com.googlecode.genericdao.search.SearchResult;
24   -
25 22 import br.com.centralit.api.dao.ProcessoDao;
26 23 import br.com.centralit.api.model.DocumentoGed;
27 24 import br.com.centralit.api.model.EstruturaOrganizacionalECM;
... ... @@ -56,6 +53,9 @@ import br.com.centralit.framework.util.UtilColecao;
56 53 import br.com.centralit.framework.util.UtilDate;
57 54 import br.com.centralit.framework.util.UtilObjeto;
58 55  
  56 +import com.googlecode.genericdao.search.ISearch;
  57 +import com.googlecode.genericdao.search.SearchResult;
  58 +
59 59 /**
60 60 * <p>
61 61 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -168,7 +168,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
168 168  
169 169 try {
170 170  
171   - this.solrService.addProcesso(processo);
  171 +// this.solrService.addProcesso(processo);
172 172 } catch (final Exception e) {
173 173  
174 174 e.printStackTrace();
... ... @@ -232,7 +232,7 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
232 232 this.montarEntidade(processo);
233 233  
234 234 try {
235   - this.solrService.addProcesso(processo);
  235 +// this.solrService.addProcesso(processo);
236 236 } catch (Exception e) {
237 237 e.printStackTrace();
238 238 }
... ... @@ -1067,5 +1067,5 @@ public class ProcessoServiceImpl extends GenericServiceImpl&lt;Processo, Long&gt; impl
1067 1067  
1068 1068 return this.processoDao.getProcessoByProtocolo(nup);
1069 1069 }
1070   -
  1070 +
1071 1071 }
... ...
cit-ecm-api/src/main/java/br/com/centralit/api/service/impl/UnidadeProcessoServiceImpl.java
... ... @@ -26,6 +26,9 @@ import br.com.centralit.framework.service.arquitetura.GenericServiceImpl;
26 26 import br.com.centralit.framework.util.UtilColecao;
27 27 import br.com.centralit.framework.util.UtilObjeto;
28 28  
  29 +import com.googlecode.genericdao.search.ISearch;
  30 +import com.googlecode.genericdao.search.SearchResult;
  31 +
29 32 /**
30 33 * <p>
31 34 * <img src="http://centralit.com.br/images/logo_central.png">
... ... @@ -319,5 +322,16 @@ public class UnidadeProcessoServiceImpl extends GenericServiceImpl&lt;UnidadeProces
319 322  
320 323 return this.unidadeProcessoDao.obterPorUnidadeEProcesso(idProcesso, idUnidade);
321 324 }
322   -
323   -}
  325 +
  326 + /**
  327 + * Método responsável por listar processos através da unidade do usuário
  328 + * @author rogerio.cassimiro
  329 + * @param search
  330 + * @return <RT> SearchResult<RT>
  331 + */
  332 + @Override
  333 + public <RT> SearchResult<RT> searchAndCountPorUnidade(ISearch search) {
  334 + return this.unidadeProcessoDao.searchAndCountPorUnidade(search);
  335 + }
  336 +
  337 +}
324 338 \ No newline at end of file
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/ProcessoController.java
1 1 package br.com.centralit.controller;
2 2  
3 3 import org.springframework.beans.factory.annotation.Autowired;
4   -import org.springframework.security.core.context.SecurityContextHolder;
5 4 import org.springframework.stereotype.Controller;
6 5 import org.springframework.web.bind.annotation.RequestBody;
7 6 import org.springframework.web.bind.annotation.RequestMapping;
... ... @@ -18,7 +17,6 @@ import br.com.centralit.framework.json.ResponseBodyWrapper;
18 17 import br.com.centralit.framework.json.Views;
19 18 import br.com.centralit.framework.json.Views.GenericView;
20 19 import br.com.centralit.framework.model.SearchParams;
21   -import br.com.centralit.framework.model.Usuario;
22 20 import br.com.centralit.framework.util.UtilString;
23 21 import br.com.centralit.framework.view.GridVH;
24 22 import br.com.centralit.framework.view.ResultResponseVH;
... ... @@ -26,6 +24,7 @@ import br.com.centralit.framework.view.ResultResponseVH;
26 24 import com.googlecode.genericdao.search.Search;
27 25 import com.googlecode.genericdao.search.SearchResult;
28 26  
  27 +@SuppressWarnings("unchecked")
29 28 @Controller
30 29 @RequestMapping("/rest/processo")
31 30 public class ProcessoController extends GenericController<Processo> {
... ... @@ -160,14 +159,17 @@ public class ProcessoController extends GenericController&lt;Processo&gt; {
160 159 search.setResultMode(Search.RESULT_MAP);
161 160  
162 161 SearchResult searchResult = null;
163   -
164   - if (!UtilString.isNullOrEmpty(searchParams.getNome()) && searchParams.getNome().equals("GRID_CLASSIFICACAO_PROCESSO_DOCUMENTO")) {
165   -
166   - searchResult = this.processoService.searchAndCountPorSigilo(search);
167   -
168   - } else {
169   -
170   - searchResult = genericService.searchAndCount(search);
  162 +
  163 + String nomeGrid = UtilString.isNullOrEmpty(searchParams.getNome()) ? "" : searchParams.getNome();
  164 +
  165 + switch (nomeGrid) {
  166 + case Processo.GRID_CLASSIFICACAO_PROCESSO_DOCUMENTO:
  167 + searchResult = this.processoService.searchAndCountPorSigilo(search);
  168 + break;
  169 +
  170 + default:
  171 + searchResult = genericService.searchAndCount(search);
  172 + break;
171 173 }
172 174  
173 175 // DETERMINA QUAIS OS CAMPOS VAI CONSULTAR
... ...
cit-ecm-web/src/main/java/br/com/centralit/controller/UnidadeProcessoController.java
... ... @@ -10,12 +10,20 @@ import org.springframework.web.bind.annotation.RequestMethod;
10 10 import org.springframework.web.bind.annotation.RequestParam;
11 11 import org.springframework.web.bind.annotation.ResponseBody;
12 12  
  13 +import com.googlecode.genericdao.search.Search;
  14 +import com.googlecode.genericdao.search.SearchResult;
  15 +
  16 +import br.com.centralit.api.model.Processo;
13 17 import br.com.centralit.api.model.UnidadeProcesso;
14 18 import br.com.centralit.api.service.UnidadeProcessoService;
15 19 import br.com.centralit.api.viewHelper.EnviarProcessoVH;
16 20 import br.com.centralit.framework.controller.GenericController;
  21 +import br.com.centralit.framework.dao.arquitetura.SearchSeven;
17 22 import br.com.centralit.framework.json.ResponseBodyWrapper;
18 23 import br.com.centralit.framework.json.Views;
  24 +import br.com.centralit.framework.model.SearchParams;
  25 +import br.com.centralit.framework.util.UtilString;
  26 +import br.com.centralit.framework.view.GridVH;
19 27 import br.com.centralit.framework.view.ResultResponseVH;
20 28  
21 29 /**
... ... @@ -50,6 +58,7 @@ import br.com.centralit.framework.view.ResultResponseVH;
50 58 * @author rogerio.costa
51 59 *
52 60 */
  61 +@SuppressWarnings({"unchecked", "rawtypes"})
53 62 @Controller
54 63 @RequestMapping("/rest/unidadeProcesso")
55 64 public class UnidadeProcessoController extends GenericController<UnidadeProcesso> {
... ... @@ -118,6 +127,42 @@ public class UnidadeProcessoController extends GenericController&lt;UnidadeProcesso
118 127 return responseBody;
119 128 }
120 129  
  130 + @RequestMapping(value = "/getPage", method = RequestMethod.POST)
  131 + @ResponseBody
  132 + public ResponseBodyWrapper findGrid(@RequestBody SearchParams searchParams) {
  133 +
  134 + SearchSeven search;
  135 +
  136 + search = new SearchSeven(searchParams);
  137 +
  138 + search.setResultMode(Search.RESULT_MAP);
  139 +
  140 + SearchResult searchResult = null;
  141 +
  142 + String nomeGrid = UtilString.isNullOrEmpty(searchParams.getNome()) ? "" : searchParams.getNome();
  143 +
  144 + switch (nomeGrid) {
  145 + case Processo.GRID_PROCESSO_NA_UNIDADE:
  146 + searchResult = this.unidadeProcessoService.searchAndCountPorUnidade(search);
  147 + break;
  148 + default:
  149 + searchResult = genericService.searchAndCount(search);
  150 + break;
  151 + }
  152 +
  153 + // DETERMINA QUAIS OS CAMPOS VAI CONSULTAR
  154 + GridVH gridVH = new GridVH();
  155 + gridVH.setObjects(searchResult.getResult());
  156 + gridVH.addTotalItensTotalPages(searchParams, Long.valueOf(searchResult.getTotalCount()));
  157 +
  158 + ResultResponseVH resultResponseVH = new ResultResponseVH(gridVH);
  159 +
  160 + ResponseBodyWrapper responseBody = new ResponseBodyWrapper(resultResponseVH, Views.UnidadeProcessoListView.class);
  161 +
  162 + return responseBody;
  163 + }
  164 +
  165 +
121 166 @Override
122 167 public Class<Views.EnviarProcessoView> getEditView() {
123 168  
... ...
cit-ecm-web/src/main/java/br/com/centralit/listener/StartupListenerEcm.java
... ... @@ -402,7 +402,7 @@ public class StartupListenerEcm extends UtilStartup implements ApplicationListen
402 402 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NOME_NOVO_SUPORTE ", "Nome do suporte", dominio, modulo));
403 403 internacionalizacaoList.add(new Internacionalizacao("ECM.LABEL.NOVO_TIPO_SUPORTE ", "Novo tipo suporte de documento", dominio, modulo));
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  
407 407 }
408 408  
... ...
cit-ecm-web/src/main/webapp/assets/js/angular/custom/controller/GerenciarProcessoListUnidadeController.js
1 1 'use strict';
2 2  
3   -citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflowFilterCriteriaService', 'appService', 'environmentService', 'FormBuilderRepository', 'FlowRepository', 'BusinessProcessRepository', 'RuntimeManagerRepository', 'DomainRepository', '$compile', '$translate', '$modal', '$injector', '$parse', '$rootScope', '$timeout', 'BusinessProcessCategoryRepository','ProcessoRepository',
4   - function GerenciarProcessoListUnidadeController($scope, workflowFilterCriteriaService, appService, environmentService, FormBuilderRepository, FlowRepository, BusinessProcessRepository, RuntimeManagerRepository, DomainRepository, $compile, $translate, $modal, $injector, $parse, $rootScope, $timeout, BusinessProcessCategoryRepository, ProcessoRepository) {
5   - $scope.compile = $compile;
  3 +citApp.controller('GerenciarProcessoListUnidadeController', ['$scope', 'workflowFilterCriteriaService', 'appService', 'environmentService', 'FormBuilderRepository', 'FlowRepository', 'BusinessProcessRepository', 'RuntimeManagerRepository', 'DomainRepository', '$compile', '$translate', '$modal', '$injector', '$parse', '$rootScope', '$timeout', 'BusinessProcessCategoryRepository', 'GerenciarProcessoRepository', 'UnidadeProcessoRepository', 'DominioRepository', '$filter',
  4 + function GerenciarProcessoListUnidadeController($scope, workflowFilterCriteriaService, appService, environmentService, FormBuilderRepository, FlowRepository, BusinessProcessRepository, RuntimeManagerRepository, DomainRepository, $compile, $translate, $modal, $injector, $parse, $rootScope, $timeout, BusinessProcessCategoryRepository, GerenciarProcessoRepository, UnidadeProcessoRepository, DominioRepository, $filter) {
  5 +
6 6 $scope.$showAdvancedFilters = false;
7   - $scope.workflowFilterCriteriaService = workflowFilterCriteriaService;
8 7  
9   -
10   - $scope.signalEventInput = new SignalEventInput("", "", "", "", "", 0);
11   - $scope.totalPagesFluxo = 10;
12   - $scope.totalItensFluxo = 0;
13   -
14   - $scope.totalPages = 10;
15   - $scope.totalItens = 0;
16   - $scope.limit = 10;
17   - $scope.processos = [];
18   - $scope.businessProcess = null;
19   - $scope.indexProcessoNegocio = null;
20   -
21   - $scope.idPainelItem = 0;
22   -
23   - $scope.tabAtual = 0;
24   -
25   - $scope.tabs = [ {active: true}
26   - ,{active: false}
27   - ];
28   -
29   - // default criteria that will be sent to the server to request data from WorkItem
  8 + $scope.headers = [ {
  9 + title : $translate.instant('ECM.LABEL.PROTOCOLO'),
  10 + value : 'processo.nup'
  11 + }, {
  12 + title : $translate.instant('ECM.LABEL.TIPOPROCESSO'),
  13 + value : 'processo.tipoProcesso.descricao'
  14 + }, {
  15 + title : $translate.instant('ECM.LABEL.ATRIBUIDOA'),
  16 + value : 'usuarioResponsavel.username'
  17 + }, {
  18 + title : $translate.instant('LABEL.SITUACAO'),
  19 + value : 'processo.status.descricao'
  20 + }, {
  21 + title : $translate.instant('ECM.LABEL.NIVEL_SIGILO'),
  22 + value : 'processo.sigilo.tipoSigilo.descricao'
  23 + }, {
  24 + title : $translate.instant('LABEL.DATA_DE_CRIACAO'),
  25 + value : 'processo.dataCriacao',
  26 + filter : 'dateBR'
  27 + }, {
  28 + title : $translate.instant('LABEL.DATA_RECEBIMENTO'),
  29 + value : 'processo.dataReferencia',
  30 + filter : 'dateBR'
  31 + }];
  32 +
30 33 $scope.filterCriteria = {
31   - start : 1,
32   - sort : 'workItem.id',
33   - limit : 10,
34   - deadline : 1,
35   - processDeadline : 1,
36   - timeManagementStatus : "",
37   - fields : [ 'workItem.id'],
38   - filters : [{type: 'numeric', field: 'workItem.id'}
39   - , {type: 'string', field: 'workItem.flowElement.name'}
40   - , {type: 'numeric', field: 'workItem.processInstance.id'}
41   - , {type: 'string', field: 'workItem.processInstance.businessProcess.description'}
42   - , {type: 'string', field: 'workItem.processInstance.flowStatus.name'}]
43   - };
44   -
45   - $scope.fetchBusinessProcess = function() {
46   - $scope.setLoading(true);
47   - $scope.categorias = [];
48   - BusinessProcessCategoryRepository.findParents().then(function(result) {
49   - for(var i = 0; i < result.length; i++) {
50   - result[i].originalElement.sinalPositivo = result[i].originalElement.hasChildren || result[i].originalElement.hasProcesses;
51   - $scope.categorias.push(result[i].originalElement);
52   - }
53   - $scope.setLoading(false);
54   - }, function() {
55   - $scope.setLoading(false);
56   - });
57   - };
58   -
59   - $scope.filterProcessos = {
  34 + nome : 'GRID_PROCESSO_NA_UNIDADE',
60 35 start : 1,
61 36 dir : 'asc',
62   - sort : 'name',
63   - limit : 999999,
64   - fields: ['id', 'category.name', 'description', 'flow.description'],
65   - filters : [{type: 'numeric', field: 'category.id'}, {type: 'string', field: 'category.name'}, {type: 'string', field: 'description'}, {type: 'string', field: 'flow.description'}]
66   - };
67   -
68   - // Will be called when filtering the grid, will reset the page number to one
69   - $scope.filterResult = function() {
70   -
71   - //Timeout adicionado para que os filtros de pesquisa funcionem
72   - $timeout(function(){
73   - $scope.filterCriteria.start = 1;
74   - $scope.fetchResult().then(function() {
75   - // The request fires correctly but sometimes the ui doesn't update,
76   - // that's a fix
77   - $scope.filterCriteria.start = 1;
78   - });
79   -
80   - });
81   - };
82   -
83   - // call back function that we passed to our custom directive sortBy, will be
84   - // called when clicking on any field to sort
85   - $scope.onSort = function(sortedBy, sortDir) {
86   - $scope.filterCriteria.dir = sortDir;
87   - $scope.filterCriteria.sort = sortedBy;
88   - $scope.filterCriteria.start = 1;
89   - $scope.fetchResult().then(function() {
90   - // The request fires correctly but sometimes the ui doesn't update,
91   - // that's a fix
92   - $scope.filterCriteria.start = 1;
93   - });
94   - };
95   -
96   - // RECUPERA LISTA DE TAREFAS E SETA RESULTADO NA GRID
97   - $scope.fetchResult = function(page) {
98   - $scope.setLoading(true);
99   -
100   - return BusinessProcessRepository.tasksByParam($scope.filterCriteria).then(function(result) {
101   - var dataAtual = new Date();
102   -
103   - $scope.assignments = result.originalElement.objects;
104   - angular.forEach($scope.assignments, function (assignment) {
105   - assignment.classePrazoProcesso = new Date(assignment.processInstance.estimatedEndTimestamp) >= dataAtual ? 'green' : 'red';
106   - assignment.classePrazoTarefa = new Date(assignment.estimatedEndTimestamp) >= dataAtual ? 'green' : 'red';
107   -
108   - ProcessoRepository.getProcessoByIdProcessInstance(assignment.processInstance.id).then(function(result) {
109   - if( result){
110   - assignment.processo = result.originalElement;
111   - }
112   - });
113   -
114   - });
115   -
116   - $scope.totalPages = result.originalElement.totalPages;
117   - $scope.totalItens = result.originalElement.totalItens;
118   - $scope.setLoading(false);
119   - }, function() {
120   - $scope.totalPages = 0;
121   - $scope.totalItens = 0;
122   - $scope.setLoading(false);
123   - });
124   - };
125   -
126   - $scope.filterSigad = function(){
127   -
128   - if($scope.processoSigad && $scope.processoSigad != ''){
129   - ProcessoRepository.getProcessoByProtocolo($scope.processoSigad).then(function(result) {
130   - if(result){
131   - $scope.filterCriteria.filters[2].value = result.originalElement.idProcessInstance;
132   - $timeout(function(){
133   - $scope.filterResult();
134   - });
135   - }else{
136   - $scope.filterCriteria.filters[2].value = null;
137   - $scope.filterResult();
138   - }
139   - });
140   - }else{
141   - $scope.filterCriteria.filters[2].value = null;
142   - $scope.filterResult();
143   - }
  37 + sort : 'processo.nup',
  38 + limit : 10,
  39 + fields: ['id', 'processo.nup', 'processo.tipoProcesso.descricao', 'usuarioResponsavel.username', 'processo.status.descricao', 'processo.sigilo.tipoSigilo.descricao', 'processo.dataCriacao', 'processo.idProcessInstance', 'processo.dataReferencia'],
  40 + filters : [
  41 + { type : 'string', field : 'processo.nup'},
  42 + { type : 'string', field : 'processo.tipoProcesso.descricao'},
  43 + { type : 'string', field : 'usuarioResponsavel.username'},
  44 + { type : 'string', field : 'processo.status.descricao', listaDominio : []},
  45 + { type : 'string', field : 'processo.sigilo.tipoSigilo.descricao'},
  46 + { type: 'date-range', field: 'processo.dataCriacao'},
  47 + { type: 'date-range', field: 'processo.dataReferencia'}
  48 + ]
144 49 };
145 50  
146   - $scope.filterSigadProtocolo = function(){
147   -
148   - if($scope.sigadProtocolo && $scope.sigadProtocolo != ''){
149   -
150   - ProcessoRepository.getProcessoByProtocolo($scope.sigadProtocolo).then(function(result) {
151   - if(result){
152   - $scope.filterCriteria.filters[2].value = result.originalElement.idProcessInstance;
153   - $timeout(function(){
154   - $scope.filterResult();
155   - });
156   - }else{
157   - $scope.filterCriteria.filters[2].value = null;
158   - $scope.filterResult();
159   - }
160   -
161   - });
162   -
163   - }else{
164   - $scope.filterCriteria.filters[2].value = null;
165   - $scope.filterResult();
166   - }
167   - };
168   -
169   - $scope.recuperarPermissoes = function(assignment){
170   - assignment.workItem = {};
171   - BusinessProcessRepository.getPermissions({id: assignment.id}).then(function(result) {
172   - assignment.workItem = result.originalElement;
173   - if (!assignment.workItem.execute && !assignment.workItem.delegate && !assignment.workItem.suspend && !assignment.workItem.restart && !assignment.workItem.visualize) {
174   - $scope.fetchResult();
175   - }
  51 + function carregarDominiosStatusProcesso() {
  52 + DominioRepository.findAllDominio('statusProcesso').then(function(result) {
  53 + $scope.filterCriteria.filters[3].listaDominio = $filter('orderBy')(result, 'originalElement.descricao', true);
176 54 });
177 55 };
178   -
179   - $scope.init = function(filter) {
180   - if (filter.businessProcessName) {
181   - $scope.filterCriteria.businessProcessName = "";
182   - var i = 0;
183   - for (var i = 0; i < filter.businessProcessName.length; i++) {
184   - if (i > 0) {
185   - $scope.filterCriteria.businessProcessName += ",";
186   - }
187   - $scope.filterCriteria.businessProcessName += filter.businessProcessName[i];
188   - }
189   - }
190   - $scope.filterCriteria.taskName = filter.taskName;
191   - $scope.filterCriteria.username = filter.username;
192   - $scope.filterCriteria.groups = filter.groups;
193   - };
194 56  
195   - $scope.executarTarefa = function(assignment){
196   - $scope.task = assignment.workItem;
197   -
198   - var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/userTask.html';
199   - if ($scope.task.flowElement.userInterface && $scope.task.flowElement.userInterface.executeCustomPage) {
200   - pagina = $scope.task.flowElement.userInterface.URLCustomPage;
201   - $scope.abrirPaginaTarefa(pagina);
202   - }else if ($scope.task.flowElement.userInterface && $scope.task.flowElement.userInterface.resource && $scope.task.flowElement.userInterface.resourceName) {
203   - FormBuilderRepository.getByName($scope.task.flowElement.userInterface.resourceName).then(function(result) {
204   - pagina = '/cit-esi-web/forms/'+result.originalElement.path+'/'+result.originalElement.resource.name+"_task.html";
205   - $scope.abrirPaginaTarefa(pagina);
206   - });
207   - }else{
208   - $scope.abrirPaginaTarefa(pagina);
209   - }
210   - };
211   -
212   - $scope.abrirPaginaTarefa = function(pagina){
213   - if (appService.existsWorkspace(pagina)) {
214   - $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_TAREFA'));
215   - return ;
216   - }
217   -
218   - $scope.processInstance = $scope.task.processInstance;
219   - $scope.processInstance.collapsed = true;
220   - $scope.processInstance.collapsedError = true;
221   -
222   - $rootScope.task = $scope.task;
223   - $rootScope.processInstance = $scope.processInstance;
224   - $rootScope.controllerScope = $scope;
225   -
226   - var nome = $scope.task.flowElement.description;
227   - if (!nome || nome == '')
228   - nome = $scope.task.flowElement.name;
229   -
230   - $scope.addNewWorkspace($translate.instant('ESI.PERMISSAO.EXECUTAR')+" "+$translate.instant('ESI.TAREFA').toLowerCase()+" '"+nome+"'", pagina, true, 'mod-orange', $scope.task);
231   - };
232   -
233   - $scope.delegarTarefa = function(assignment){
234   - var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/userTaskDelegation.html';
235   -
236   - if (appService.existsWorkspace(pagina)) {
237   - $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_DELEGACAO'));
238   - return ;
239   - }
240   -
241   - $scope.task = assignment.workItem;
242   -
243   - $scope.processInstance = $scope.task.processInstance;
244   - $scope.processInstance.collapsed = true;
245   - $scope.processInstance.collapsedError = true;
246   -
247   - $rootScope.task = $scope.task;
248   - $rootScope.processInstance = $scope.processInstance;
249   - $rootScope.controllerScope = $scope;
250   -
251   - var nome = $scope.task.flowElement.description;
252   - if (!nome || nome == '')
253   - nome = $scope.task.flowElement.name;
254   -
255   - $scope.addNewWorkspace($translate.instant('ESI.PERMISSAO.DELEGAR')+" "+$translate.instant('ESI.TAREFA').toLowerCase()+" '"+nome+"'", pagina, true, 'mod-orange', $scope.task);
256   - };
257   -
258   - $scope.capturarTarefa = function(assignment){
259   - $scope.$openModalConfirm({
260   - message: $translate.instant('ESI.MSG.CONFIRMA_CAPTURA'),
261   - callback: function () {
262   - $scope.$modalConfirmInstance.dismiss('cancel');
263   -
264   - $scope.setLoading(true,$translate.instant('ESI.CAPTURANDO_TAREFA')+" "+assignment.workItem.flowElement.description);
265   -
266   - var param = new RuntimeEnvironmentInput("",[]);
267   - param.workItemId = assignment.workItem.id;
268   -
269   - RuntimeManagerRepository.captureTask(param).then(function(result) {
270   - $scope.setLoading(false);
271   - $scope.fetchResult();
272   - $scope.showAlert("success","ESI.MSG.TAREFA_CAPTURADA","");
273   - });
274   - }
275   - });
276   -
277   - };
278   -
279   - $scope.suspenderProcesso = function(assignment){
280   - $scope.$openModalConfirm({
281   - message: $translate.instant('ESI.MSG.CONFIRMA_SUSPENSAO'),
282   - callback: function () {
283   - $scope.$modalConfirmInstance.dismiss('cancel');
284   -
285   - $scope.setLoading(true);
286   - RuntimeManagerRepository.suspendProcessInstance(assignment.workItem.processInstance.id).then(function(result) {
287   - $scope.setLoading(false);
288   - $scope.fetchResult();
289   - $scope.showAlert("success","ESI.MSG.PROCESSO_SUSPENSO","");
290   - });
291   - }
292   - });
293   - };
294   -
295   - $scope.reativarProcesso = function(assignment){
296   - $scope.$openModalConfirm({
297   - message: $translate.instant('ESI.MSG.CONFIRMA_REATIVACAO'),
298   - callback: function () {
299   - $scope.$modalConfirmInstance.dismiss('cancel');
300   -
301   - $scope.setLoading(true);
302   - RuntimeManagerRepository.restartProcessInstance(assignment.workItem.processInstance.id).then(function(result) {
303   - $scope.setLoading(false);
304   - $scope.fetchResult();
305   - $scope.showAlert("success","ESI.MSG.PROCESSO_REATIVADO","");
306   - });
307   - }
308   - });
309   - };
310   -
311   - $scope.visualizarFluxo = function(assignment){
312   - var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/visualizacaoEsi.html';
313   -
314   - if (appService.existsWorkspace(pagina)) {
315   - $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_VISUALIZACAO'));
316   - return ;
317   - }
318   -
319   - $scope.tarefa = assignment.workItem;
320   - $scope.instancia = $scope.tarefa.processInstance;
321   - $rootScope.tarefa = $scope.tarefa;
322   - $rootScope.instancia = $scope.instancia;
323   - $rootScope.controllerScope = $scope;
324   - $scope.addNewWorkspace(assignment.workItem.processInstance.businessProcess.description, pagina, true, 'mod-orange', $scope.tarefa);
325   - };
326   -
327   - $scope.consultarHistorico = function(assignment){
328   - var pagina = '/cit-esi-web/assets/js/angular/custom/directive/html/consultaLog.html';
329   -
330   - if (appService.existsWorkspace(pagina)) {
331   - $scope.showAlert('warning', $translate.instant('ESI.MSG.JA_EXISTE_TELA_HISTORICO'));
332   - return ;
333   - }
334   -
335   - $scope.processInstance = assignment.workItem.processInstance;
336   - $rootScope.processInstance = $scope.processInstance;
337   - $rootScope.controllerScope = $scope;
338   -
339   - $scope.processInstance.collapsed = true;
340   - $scope.processInstance.collapsedError = true;
341   - $scope.processInstance.instances = [];
342   -
343   - $scope.addNewWorkspace(assignment.workItem.processInstance.businessProcess.description, pagina, true, 'mod-orange', $scope.processInstance);
344   - };
345   -
346   - $scope.retrieveAditionalHtml = function(assignment) {
347   - assignment.$show = !assignment.$show;
348   - if (!assignment.$show)
349   - return;
350   -
351   - if (!assignment.workItem) {
352   - BusinessProcessRepository.getPermissions({id: assignment.id}).then(function(result) {
353   - assignment.workItem = result.originalElement;
354   - $scope.showAditionalHtml(assignment.workItem);
355   - });
356   - }else{
357   - $scope.showAditionalHtml(assignment.workItem);
358   - }
359   - };
360   -
361   - $scope.showAditionalHtml = function(workItem) {
362   - var id = "divHtmlAdicional_" + $scope.idPainelItem + "_" + workItem.id;
363   -
364   - var el = document.getElementById(id);
365   - if (!el || el.innerHTML != '')
366   - return;
367   -
368   - var element = angular.element("#"+id);
369   - environmentService.retrieveAditionalHtml($scope, workItem, element, $injector);
370   - el.focus();
371   - };
372   -
373   - $scope.signalEvent = function() {
374   - $scope.setLoading(true);
375   - RuntimeManagerRepository.signalEvent($scope.signalEventInput).then(function(result) {
376   - $scope.setLoading(false);
377   - });
378   - };
379   -
380   - $scope.getAplicacaoFluxo = function(processoNegocio) {
381   - return DomainRepository.getEnumDescription(processoNegocio['flow.flowApplication'], $scope.aplicacaoFluxo);
382   - };
383   -
384   - $scope.getTimeManagementStatus = function(processInstance) {
385   - if (processInstance && processInstance.timeManagementStatus) {
386   - processInstance.backgroundColorTimeStatus = processInstance.timeManagementStatus === 'SUSPENDED' ? "red" : processInstance.timeManagementStatus === 'NOT_STARTED' ? "yellow-dark" : "green";
387   - processInstance.textColorTimeStatus = processInstance.timeManagementStatus === 'NOT_STARTED' ? "black" : "white";
388   - return DomainRepository.getEnumDescription(processInstance.timeManagementStatus, $scope.timeManagementStatus);
389   - }else{
390   - return "";
391   - }
  57 + var filterCriteriaDefault = angular.copy($scope.filterCriteria);
  58 +
  59 + $scope.atualizarGrid = function() {
  60 + $scope.filterCriteria = angular.copy(filterCriteriaDefault);
  61 + carregarDominiosStatusProcesso();
  62 + $scope.filterResult();
392 63 };
393 64  
394   -/* $scope.mostrarFilhos = function(categoriaSelecionada){
395   -
396   - // Valida se a estrutura possui filho
397   - if(categoriaSelecionada.sinalPositivo) {
398   - categoriaSelecionada.sinalPositivo = !categoriaSelecionada.sinalPositivo;
399   -
400   - $scope.setLoadingPesquisa(true);
401   -
402   - categoriaSelecionada.subCategories = [];
403   -
404   - var categoria = categoriaSelecionada.originalElement ? categoriaSelecionada.originalElement : categoriaSelecionada;
405   -
406   - $scope.scrollToCadastro('#categoria_'+categoria.id);
407   -
408   - $scope.recuperaProcessos(categoria);
409   -
410   - // busca os filhos da estrutura selecionada
411   - BusinessProcessCategoryRepository.findChildrens(categoria.id).then(function(result) {
412   - // Percorre as estruturas filhas setando a propriedade do sinal positivo/negativo e adiciona o filho na lista de filhos da estrutura selecionada
413   - angular.forEach(result, function(categoriaFilha){
414   - categoriaFilha.originalElement.sinalPositivo = categoriaFilha.originalElement.hasChildren || categoriaFilha.originalElement.hasProcesses;
415   - categoriaSelecionada.subCategories.push(categoriaFilha.originalElement);
416   - categoriaFilha.originalElement.subCategories = [];
417   - //$scope.recuperaProcessos(categoriaFilha);
418   - });
419   - $scope.setLoadingPesquisa(false);
420   - });
421   -
422   - } else {
423   -
424   - categoriaSelecionada.sinalPositivo = !categoriaSelecionada.sinalPositivo;
425   -
426   - categoriaSelecionada.subCategories = [];
427   -
428   - categoriaSelecionada.processos = [];
429   - }
430   -
431   - };*/
  65 + carregarDominiosStatusProcesso();
432 66  
433   - $scope.recuperaProcessos = function(categoria) {
434   - $scope.setLoadingPesquisa(true);
435   - categoria.processos = [];
436   - $scope.filterProcessos.filters[0].value = categoria.id;
437   - BusinessProcessRepository.getProcessesForStart($scope.usuarioLogado.username, $scope.filterProcessos).then(function(result) {
438   - categoria.processos = result.originalElement.objects;
439   - });
440   - };
441   -
442   - $scope.fetchResult();
443   -}]);
444   -
445   -
  67 +}]);
446 68 \ No newline at end of file
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/gerenciarProcessoListUnidade.html
1 1 <meta charset="UTF-8">
2   -<div id="idGerenciamentoTarefas" class="page-content" ng-controller="GerenciarProcessoListUnidadeController" ng-init="init(workflowFilterCriteriaService.getSIGADFilterCriteria())">
  2 +<div id="idGerenciamentoTarefas" class="page-content" ng-controller="GerenciarProcessoListUnidadeController">
3 3 <div class="bar-buttons-action fixed">
4 4 <div class="row">
5 5 <div class="col-sm-9 text-left">
6   - <button class="btn btn-clear" title="{{$translate.instant('LABEL.ATUALIZAR')}}" alt="{{$translate.instant('LABEL.ATUALIZAR')}}" ng-click="tabAtual == 0 ? fetchResult() : fetchBusinessProcess()">
  6 + <button class="btn btn-clear" title="{{$translate.instant('LABEL.ATUALIZAR')}}" alt="{{$translate.instant('LABEL.ATUALIZAR')}}" ng-click="atualizarGrid();">
7 7 <i class="fa fa-refresh purple"></i>
8 8 <translate>LABEL.ATUALIZAR</translate>
9 9 </button>
10 10 </div>
11   -
12 11 <div class="col-sm-3 text-right">
13 12 <favorito />
14   -
15 13 <help-button workspace="workspace" />
16 14 </div>
17   - <!-- .col -->
18 15 </div>
19   - <!-- .row -->
20 16 </div>
21   - <!-- .bar-buttons-action -->
22 17  
23 18 <breadcrumb ng-workspace="workspace"></breadcrumb>
24   - <div class="row">
25   - <div class="col-sm-12">
26   - <div class="table-container">
27   - <div class="table-header clearfix">
28   - <div class="table-header-right">
29   - <button class="btn btn-primary btn-inline btn-white table-header-item" ng-click="$showAdvancedFilters = !$showAdvancedFilters">
30   - <i class="fa fa-filter"></i>
31   - <translate>LABEL.FILTROS_AVANCADOS</translate>
32   - </button>
33   - </div>
34   - <!-- .table-header-right -->
35   -
36   - <div class="table-header-left">
37   - <div class="form-group">
38   - <div class="input-group">
39   - <input type="text" class="form-control" placeholder="Digite o Protocolo" on-enter-blur ng-blur="filterSigadProtocolo()" ng-model="sigadProtocolo" /> <span
40   - class="input-group-addon"> <i class="fa fa-search fa-lg"></i>
41   - </span>
42   - </div>
43   - </div>
44   - <!-- .form-group -->
45   - </div>
46   - <!-- .table-header-left -->
47   - </div>
48   - <!-- .table-header -->
49   -
50   - <table class="table table-striped table-bordered table-hover">
51   - <thead>
52   - <tr>
53   - <th colspan="2" style="align: center; width: 30%;"><small><translate>ECM.LABEL.PROTOCOLO</translate></small></th>
54   - <th colspan="2" style="width: 25%;"><small><translate>ESI.TAREFA</translate></small></th>
55   - <th style="width: 25%;"><small><translate>LABEL.PROCESSO_NEGOCIO</translate></small></th>
56   - <th class="text-center" style="width: 3%;"><small><translate>LABEL.ACOES</translate></small></th>
57   - <th style="align: center; width: 17%;"><small><translate>PORTAL.LABEL.SITUACAO_INSTANCIA</translate></small></th>
58   - </tr>
59   - </thead>
60   - <tfoot ng-show="totalItens > 0">
61   - <tr>
62   - <td colspan="9">
63   - <div class="row">
64   - <div class='col-sm-4 table-showing'>
65   - <translate>LABEL.MOSTRANDO</translate>
66   - {{filterCriteria.start}}
67   - <translate>LABEL.ATE</translate>
68   - {{filterCriteria.limit > totalItens ? totalItens : filterCriteria.limit}}
69   - <translate>LABEL.DE</translate>
70   - ({{totalItens}})
71   - <translate>ESI.TAREFAS</translate>
72   - .
73   - </div>
74   - <div class="col-sm-8 text-right">
75   - <pagination rotate="true" total-items="totalItens" num-pages="totalPages" ng-model="filterCriteria.start" items-per-page="filterCriteria.limit" class="pagination-sm" boundary-links="true"
76   - ng-change="fetchResult()"></pagination>
77   - </div>
78   - <!-- .col -->
79   - </div> <!-- .row -->
80   - </td>
81   - </tr>
82   - </tfoot>
83   - <tbody>
84   - <tr ng-show="$showAdvancedFilters">
85   -
86   - <td >
87   - <div class="row">
88   - <div class="col-sm-12">
89   - <input class="form-control" ng-blur="filterSigad()" ng-model="processoSigad" type="text" />
90   - </div>
91   - <!-- .col -->
92   - </div>
93   - <!-- .row -->
94   - </td>
95   - <td>&nbsp;</td>
96   - <td >
97   - <div class="row">
98   - <div class="col-sm-12">
99   - <input class="form-control" ng-change="filterResult()" ng-model="filterCriteria.filters[0].value" type="text" integer />
100   - </div>
101   - <!-- .col -->
102   - </div> <!-- .row -->
103   - </td>
104   -
105   - <td>
106   - <div class="row">
107   - <div class="col-sm-12">
108   - <input class="form-control" ng-change="filterResult()" ng-model="filterCriteria.filters[1].value" type="text" />
109   - </div>
110   - <!-- .col -->
111   - </div> <!-- .row -->
112   - </td>
113   -
114   -<!-- <td style="width: 5%;">
115   - <div class="row">
116   - <div class="col-sm-12">
117   - <input class="form-control" ng-change="filterResult()" ng-model="filterCriteria.filters[2].value" type="text" integer />
118   - </div>
119   - .col
120   - </div> .row
121   - </td> -->
122   -
123   - <td>
124   - <div class="row">
125   - <div class="col-sm-12">
126   - <input class="form-control" ng-change="filterResult()" ng-model="filterCriteria.filters[3].value" type="text" />
127   - </div>
128   - <!-- .col -->
129   - </div> <!-- .row -->
130   - </td>
131   - <td>&nbsp;</td>
132   -
133   - <td>
134   - <div class="row">
135   - <div class="col-sm-12">
136   - <input class="form-control" ng-change="filterResult()" ng-model="filterCriteria.filters[4].value" type="text" />
137   - </div>
138   - <!-- .col -->
139   - </div> <!-- .row -->
140   - </td>
141   - </tr>
142   -
143   - <tr ng-repeat-start="assignment in assignments">
144   - <td class="text-center" ><span class="small green">{{assignment.processo.nup}} <a href="javascript:;" class="blue" ng-click="retrieveAditionalHtml(assignment)">
145   - <i class="fa fa-lg" ng-class="{'fa-caret-right': !assignment.$show, 'fa-caret-down': assignment.$show}"></i></a></span>
146   - </td>
147   - <td><span class="small green">{{assignment.processo.tipoProcesso.nome}}</span></td>
148   - <td class="text-center"><span class="small green">{{assignment.id}}</span></td>
149   - <td><span class="small green">{{assignment.flowElement.name}}</span></td>
150   - <!-- <td class="text-center" ><span class="small green">{{assignment.processInstance.id}}</span></td> -->
151   - <td><span class="small green">{{assignment.processInstance.businessProcess.description}}</span></td>
152   - <td>
153   - <div class="btn-group dropdown" role="group" dropdown>
154   - <button title="{{$translate.instant('LABEL.ACOES')}}" alt="{{$translate.instant('LABEL.ACOES')}}" class="btn btn-clear" dropdown-toggle ng-click="recuperarPermissoes(assignment)">
155   - <i class="fa fa-cog blue bigger-170"></i> <span class="fa fa-caret-down icon-on-right"></span>
156   - </button>
157   - <ul class="dropdown-menu-center dropdown-menu dropdown-caret" role="menu">
158   - <li ng-show="!assignment.workItem || !assignment.workItem.id"><span class="small red">&nbsp;&nbsp;&nbsp;&nbsp;<b><translate>MSG.AGUARDE</translate></b></span></li>
159   - <li ng-show="assignment.workItem.execute"><a href="javascript:;" ng-click="executarTarefa(assignment)"><i class="fa fa-play-circle-o green"></i> <translate>LABEL.EXECUTAR</translate></a>
160   - </li>
161   - <li ng-show="assignment.workItem.execute"><a href="javascript:;" ng-click="capturarTarefa(assignment)"><i class="fa fa-thumb-tack orange"></i> <translate>PORTAL.LABEL.CAPTURAR</translate></a>
162   - </li>
163   - <li ng-show="assignment.workItem.delegate"><a href="javascript:;" ng-click="delegarTarefa(assignment)"><i class="fa fa-users blue"></i> <translate>ESI.PERMISSAO.DELEGAR</translate></a>
164   - </li>
165   - <li ng-show="assignment.workItem.suspend"><a href="javascript:;" ng-click="suspenderProcesso(assignment)"><i class="fa fa-pause red"></i> <translate>ESI.PERMISSAO.SUSPENDER</translate></a>
166   - </li>
167   - <li ng-show="assignment.workItem.restart"><a href="javascript:;" ng-click="reativarProcesso(assignment)"><i class="fa fa-play green"></i> <translate>PORTAL.LABEL.PERMISSAO.REATIVAR</translate></a>
168   - </li>
169   - <li ng-show="assignment.workItem.visualize"><a href="javascript:;" ng-click="visualizarFluxo(assignment)"><i class="fa fa-search blue"></i> <translate>PORTAL.LABEL.VISUALIZAR_FLUXO</translate></a>
170   - </li>
171   - <li ng-show="assignment.workItem.visualize"><a href="javascript:;" ng-click="consultarHistorico(assignment)"><i class="fa fa-history yellow-dark"></i> <translate>ESI.LOG.CONSULTA_LOG</translate></a>
172   - </li>
173   - </ul>
174   - </div>
175   - </td>
176   - <td><span ng-if="assignment.processInstance.flowStatus && assignment.processInstance.status != 'SUSPENDED'" class="badge black"
177   - style="background-color: {{assignment.processInstance.flowStatus.backgroundColor"> <font color="{{assignment.processInstance.flowStatus.textColor}}"><b><translate>{{assignment.processInstance.flowStatus.name}}</translate></b></font>
178   - </span> <span ng-if="assignment.processInstance.status == 'SUSPENDED'" class="badge black" style="background-color: red !important"> <font color="white"><b><translate>ESI.ENUMERADO.SITUACAO_INSTANCIA_SUSPENSA</translate></b></font>
179   - </span></td>
180   - </tr>
181   -
182   - <tr ng-show="assignment.$show" ng-repeat-end>
183   - <td>&nbsp;</td>
184   -
185   - <td colspan="8">
186   -
187   - <div class="media media-card">
188   -
189   - <fieldset>
190   - <legend style="font-size: 16px !important">
191   - <b><translate>ESI.INFORMACOES_ADICIONAIS</translate></b>
192   - </legend>
193   -
194   - <div class="row">
195   - <div class="col-md-12">
196   -
197   - <label>
198   - <div class="small bolder">
199   - <translate>ECM.LABEL.ASSUNTO</translate>
200   - </div> <span class="small green">{{assignment.processo.assunto.assunto}}</span>
201   - </label>
202   - </div>
203   - </div>
204   -
205   - <div class="row">
206   - <div class="col-md-12">
207   - <label>
208   - <div class="small bolder">
209   - <translate>ECM.LABEL.ASSUNTOCOMPLEMENTAR</translate>
210   - </div> <span class="small green">{{assignment.processo.assuntoComplementar}}</span>
211   - </label>
212   - </div>
213   - </div>
214   -
215   - <div class="row">
216   - <div class="col-md-12">
217   - <label>
218   - <div class="small bolder">
219   - <translate>ECM.LABEL.NIVELACESSO</translate>
220   - </div> <span class="label label-success" ng-show="assignment.processo.nivelAcesso.nivelAcesso.nome =='PUBLICO'">{{assignment.processo.nivelAcesso.nivelAcesso.descricao}}</span> <span
221   - class="label label-warning" ng-show="assignment.processo.nivelAcesso.nivelAcesso.nome =='RESTRITO'">{{assignment.processo.nivelAcesso.nivelAcesso.descricao}}</span> <span
222   - class="label label-danger" ng-show="assignment.processo.nivelAcesso.nivelAcesso.nome =='SIGILOSO'">{{assignment.processo.sigilo.descricao}}</span>
223   -
224   - </label>
225   - </div>
226   - </div>
227   -
228   - <div class="row" ng-show='assignment.processo.hipoteseLegal.nome'>
229   - <div class="col-md-12">
230   - <label>
231   - <div class="small bolder">
232   - <translate>ECM.LABEL.HIPOTESELEGAL</translate>
233   - </div> <span class="small green">{{assignment.processo.hipoteseLegal.nome}}</span>
234   - </label>
235   - </div>
236   - </div>
237   -
238   - <div class="row">
239   -
240   -
241   - <div class='col-md-3'>
242   - <label>
243   - <div class="small bolder">
244   - <translate>ECM.LABEL.DATACRIACAO</translate>
245   - </div> <span class="small green">{{assignment.processo.dataCriacao | date: 'dd/MM/yyyy HH:mm:ss' }}</span>
246   - </label>
247   - </div>
248   -
249   - <div class='col-md-3'>
250   - <label>
251   - <div class="small bolder">
252   - <translate>ECM.LABEL.DATAEDICAO</translate>
253   - </div> <span class="small green">{{assignment.processo.dataEdicao | date: 'dd/MM/yyyy HH:mm:ss' }}</span>
254   - </label>
255   - </div>
256   - </div>
257   -
258   -
259   - </fieldset>
260   -
261   - </div> <!-- .media -->
262   - </td>
263   - </tr>
264   - <tr ng-show="totalItens <= 0">
265   - <td colspan="9"><strong><translate>MSG.NENHUM_REGISTRO_ENCONTRADO</translate></strong></td>
266   - </tr>
267   - </tbody>
268   - </table>
269   -
270   - </div>
271   - </div>
272   - </div>
273   - </tabset>
274   -</div>
275   -<!-- .table-container -->
276   -</div>
277   -<!-- .page-content -->
278 19 \ No newline at end of file
  20 +
  21 + <list-view ng-lista="processos" ng-repository="UnidadeProcessoRepository" ng-headers="headers" ng-filter-criteria="filterCriteria"
  22 + ng-exibir-coluna-selecao="false" transclude="tarefasPorProcesso.html">
  23 + <div ng-include src="'/cit-ecm-web/html/gerenciarProcesso/tarefasPorProcesso.html'"></div>
  24 +
  25 + </list-view>
  26 +</div>
279 27 \ No newline at end of file
... ...
cit-ecm-web/src/main/webapp/html/gerenciarProcesso/tarefasPorProcesso.html 0 → 100644
... ... @@ -0,0 +1,11 @@
  1 +
  2 +<table class="table table-bordered table-striped" style="width: 90%; margin-left: 5%; margin-right: 1%; margin-bottom: 1%; margin-top: 1%">
  3 + <tr>
  4 + <td>Tarefa</td>
  5 + <td>BPE</td>
  6 + </tr>
  7 + <tr>
  8 + <td>vaiii</td>
  9 + <td>curinthia</td>
  10 + </tr>
  11 +</table>
... ...