From 563c503d5458bd0c5da920097bdbf8a8cbed83d2 Mon Sep 17 00:00:00 2001
From: Carlos Alberto
Date: Mon, 4 Apr 2016 14:24:34 -0300
Subject: [PATCH] Implementação dos recursos de relatório
---
cit-esi-api/src/main/java/br/com/centralit/esi/api/parameter/model/Parameter.java | 4 ++++
cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/ReportVersion.java | 25 -------------------------
cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/Resource.java | 14 ++++++++++++++
cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/ReportVersionService.java | 2 +-
cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java | 8 ++++----
cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java | 16 ++++++----------
cit-esi-web/src/main/java/br/com/centralit/controller/ReportController.java | 20 ++++++++++++++++++++
cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++
cit-esi-web/src/main/resources/templates/resource_report_controller.js | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
cit-esi-web/src/main/resources/templates/resource_report_html.html | 30 ++++++++++++++++++++++++++++++
cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js | 217 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
cit-esi-web/src/main/webapp/assets/js/angular/custom/repository/ReportRepository.js | 3 +++
cit-esi-web/src/main/webapp/html/report/reportEdit.html | 276 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------
13 files changed, 671 insertions(+), 91 deletions(-)
create mode 100644 cit-esi-web/src/main/resources/templates/resource_report_controller.js
create mode 100644 cit-esi-web/src/main/resources/templates/resource_report_html.html
diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/parameter/model/Parameter.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/parameter/model/Parameter.java
index 0c1061e..c650dd5 100644
--- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/parameter/model/Parameter.java
+++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/parameter/model/Parameter.java
@@ -53,6 +53,10 @@ public class Parameter extends PersistentObjectAudit {
public static final String DATAOBJECT_CRUD_CONTROLLER = "DATAOBJECT_CRUD_CONTROLLER";
public static final String DATAOBJECT_CRUD_DEPENDENCIES = "DATAOBJECT_CRUD_DEPENDENCIES";
+ public static final String RESOURCE_REPORT_HTML = "RESOURCE_REPORT_HTML";
+ public static final String RESOURCE_REPORT_CONTROLLER = "RESOURCE_REPORT_CONTROLLER";
+ public static final String RESOURCE_REPORT_DEPENDENCIES = "RESOURCE_REPORT_DEPENDENCIES";
+
public static final String BPE_SEND_MAIL = "BPE_SEND_MAIL";
public static final String BPE_SEND_NOTIFICATION = "BPE_SEND_NOTIFICATION";
public static final String BPE_EMAIL_FROM = "BPE_EMAIL_FROM";
diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/ReportVersion.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/ReportVersion.java
index 613bcd2..31ee36a 100644
--- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/ReportVersion.java
+++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/ReportVersion.java
@@ -15,7 +15,6 @@ import javax.persistence.Transient;
import br.com.centralit.esi.api.enumerated.ReportEngineEnum;
import br.com.centralit.esi.api.enumerated.ResourceTypeEnum;
import br.com.centralit.framework.json.Views;
-import br.com.centralit.framework.model.Menu;
import com.fasterxml.jackson.annotation.JsonView;
@@ -34,14 +33,6 @@ public class ReportVersion extends ResourceVersion {
@JsonView({ Views.GenericView.class})
private ReportEngineEnum engine;
- @ManyToOne(fetch=FetchType.LAZY, optional=true)
- @JsonView({ Views.EsiResourceEditView.class, Views.EsiPackageExportView.class})
- private Menu menu;
-
- @Column(nullable = true, length=100)
- @JsonView({ Views.EsiResourceEditView.class, Views.EsiPackageExportView.class})
- private String menuName;
-
@ManyToOne(fetch=FetchType.LAZY, optional=false)
@JsonView({ Views.EsiResourceEditView.class})
protected Resource form;
@@ -82,22 +73,6 @@ public class ReportVersion extends ResourceVersion {
this.parameters = parameters;
}
- public Menu getMenu() {
- return menu;
- }
-
- public void setMenu(Menu menu) {
- this.menu = menu;
- }
-
- public String getMenuName() {
- return menuName;
- }
-
- public void setMenuName(String menuName) {
- this.menuName = menuName;
- }
-
public ReportEngineEnum getEngine() {
return engine;
}
diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/Resource.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/Resource.java
index 5c03a97..d80ff6f 100644
--- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/Resource.java
+++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/model/Resource.java
@@ -1,6 +1,7 @@
package br.com.centralit.esi.api.resource.model;
import java.util.Calendar;
+import java.util.HashMap;
import javax.persistence.Column;
import javax.persistence.Entity;
@@ -8,6 +9,7 @@ import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
+import javax.persistence.Transient;
import br.com.centralit.esi.api.enumerated.ResourceTypeEnum;
import br.com.centralit.framework.json.Views;
@@ -44,6 +46,10 @@ public class Resource extends PersistentObject {
@JsonView({ Views.GenericView.class})
protected Boolean internalResource;
+ @Transient
+ @JsonView({ Views.GenericView.class})
+ private HashMap inputMap;
+
public Resource() {
}
@@ -111,5 +117,13 @@ public class Resource extends PersistentObject {
public void setInternalResource(Boolean internalResource) {
this.internalResource = internalResource;
+ }
+
+ public HashMap getInputMap() {
+ return inputMap;
+ }
+
+ public void setInputMap(HashMap inputMap) {
+ this.inputMap = inputMap;
}
}
diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/ReportVersionService.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/ReportVersionService.java
index 77e3715..c3eb886 100644
--- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/ReportVersionService.java
+++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/ReportVersionService.java
@@ -7,6 +7,6 @@ import br.com.centralit.esi.api.resource.model.Resource;
public interface ReportVersionService extends ResourceVersionService {
- void execute(Resource report, HashMap parameters);
+ byte[] execute(Resource report, HashMap parameters);
}
diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java
index 8934e69..65b331e 100644
--- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java
+++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/JasperReportManagerImpl.java
@@ -1,7 +1,6 @@
package br.com.centralit.esi.api.resource.service.impl;
import java.sql.Connection;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -93,9 +92,10 @@ public class JasperReportManagerImpl extends ReportManagerImpl implements Jasper
case FLOW:
RuntimeEnvironmentOutput output = runtimeManager.execute(reportDataSource.getFlow().getName(), inputMap);
if (output.getOutputVariables() != null) {
- List> variablesMap = new ArrayList>();
- variablesMap.add(ConvertUtilsESI.environmentVariablesToMap(output.getOutputVariables()));
- dataSource = new JRBeanCollectionDataSource(variablesMap);
+ Object value = output.getValue(reportDataSource.getOutputAttributeName());
+ if (value != null) {
+ dataSource = new JRBeanArrayDataSource(new Object[]{value});
+ }
}
break;
diff --git a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java
index 43d9d5b..30db0e2 100644
--- a/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java
+++ b/cit-esi-api/src/main/java/br/com/centralit/esi/api/resource/service/impl/ReportVersionServiceImpl.java
@@ -74,11 +74,7 @@ public class ReportVersionServiceImpl extends ResourceVersionServiceImpl impleme
if (reportVersion.getDataSource() != null) {
reportVersion.getDataSource().setId(null);
}
-
- if (reportVersion.getMenu() != null) {
- reportVersion.setMenu(menuService.getReference(reportVersion.getMenu().getId()));
- }
-
+
}
@Override
@@ -90,8 +86,6 @@ public class ReportVersionServiceImpl extends ResourceVersionServiceImpl impleme
newResourceVersion.setFileName(oldResourceVersion.getFileName());
newResourceVersion.setFileSize(oldResourceVersion.getFileSize());
- newResourceVersion.setMenu(oldResourceVersion.getMenu());
- newResourceVersion.setMenuName(oldResourceVersion.getMenuName());
newResourceVersion.setDataSource(new ReportDataSource(oldResourceVersion.getDataSource()));
if (oldResourceVersion.getParameters() != null) {
@@ -120,13 +114,15 @@ public class ReportVersionServiceImpl extends ResourceVersionServiceImpl impleme
}
@Override
- public void execute(Resource report, HashMap parameters) {
+ public byte[] execute(Resource report, HashMap parameters) {
ReportVersion reportVersion = (ReportVersion) this.findByName(report.getName());
if (reportVersion.getEngine().equals(ReportEngineEnum.JASPER)) {
- jasperReportManager.execute(reportVersion, parameters);
+ return jasperReportManager.execute(reportVersion, parameters);
}else if (reportVersion.getEngine().equals(ReportEngineEnum.PENTAHO)) {
- pentahoReportManager.execute(reportVersion, parameters);
+ return pentahoReportManager.execute(reportVersion, parameters);
+ }else{
+ return null;
}
}
diff --git a/cit-esi-web/src/main/java/br/com/centralit/controller/ReportController.java b/cit-esi-web/src/main/java/br/com/centralit/controller/ReportController.java
index 5a8303f..3ad9bff 100644
--- a/cit-esi-web/src/main/java/br/com/centralit/controller/ReportController.java
+++ b/cit-esi-web/src/main/java/br/com/centralit/controller/ReportController.java
@@ -2,17 +2,37 @@ package br.com.centralit.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
+import br.com.centralit.esi.api.resource.model.Resource;
import br.com.centralit.esi.api.resource.service.ReportVersionService;
+import br.com.centralit.framework.json.ResponseBodyWrapper;
@Controller
@RequestMapping("/rest/esi/resource/report")
public class ReportController extends ResourceController{
+ @Autowired
+ private ReportVersionService reportVersionService;
+
@Autowired
public ReportController(ReportVersionService reportVersionService) {
super(reportVersionService);
}
+
+ @RequestMapping(method = RequestMethod.POST, value = "/execute")
+ @ResponseBody
+ public ResponseBodyWrapper execute(@RequestBody Resource report) {
+
+ byte[] response = reportVersionService.execute(report, report.getInputMap());
+
+ ResponseBodyWrapper responseBody = new ResponseBodyWrapper(response, this.getListView());
+
+ return responseBody;
+ }
+
}
diff --git a/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java b/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java
index 37e621c..62a6fe5 100644
--- a/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java
+++ b/cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java
@@ -771,6 +771,50 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
parameterService.save(parameter);
}
+ parameter = parameterService.findByName(Parameter.RESOURCE_REPORT_CONTROLLER);
+ if (parameter == null) {
+ String fileName = servletContext.getRealPath("WEB-INF/classes/templates/resource_task_controller.js");
+
+ parameter = new Parameter();
+ parameter.setName(Parameter.RESOURCE_REPORT_CONTROLLER);
+ parameter.setType(this.domainService.findByKeyAndName("parameterType", "JS"));
+ parameter.setDescription("Template JavaScript para Controller de relatório");
+ try {
+ parameter.setTextValue(FileUtils.readFileToString(new File(fileName), "UTF-8"));
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new EsiBusinessException(e);
+ }
+ parameterService.save(parameter);
+ }
+
+ parameter = parameterService.findByName(Parameter.RESOURCE_REPORT_DEPENDENCIES);
+ if (parameter == null) {
+ parameter = new Parameter();
+ parameter.setName(Parameter.RESOURCE_REPORT_DEPENDENCIES);
+ parameter.setType(this.domainService.findByKeyAndName("parameterType", "TEXTAREA"));
+ parameter.setDescription("Dependências para Controller relatório");
+ parameter.setTextValue("FormBuilderRepository, ReportRepository");
+ parameterService.save(parameter);
+ }
+
+ parameter = parameterService.findByName(Parameter.RESOURCE_REPORT_HTML);
+ if (parameter == null) {
+ String fileName = servletContext.getRealPath("WEB-INF/classes/templates/resource_task_html.html");
+
+ parameter = new Parameter();
+ parameter.setName(Parameter.RESOURCE_REPORT_HTML);
+ parameter.setType(this.domainService.findByKeyAndName("parameterType", "HTML"));
+ parameter.setDescription("Template HTML para relatório");
+ try {
+ parameter.setTextValue(FileUtils.readFileToString(new File(fileName), "UTF-8"));
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new EsiBusinessException(e);
+ }
+ parameterService.save(parameter);
+ }
+
for (Parameter param : parameterService.findAll()) {
EsiAppUtils.updateParameter(param);
}
@@ -1856,6 +1900,7 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ESI.DADOS", "Dados", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.WORKFLOW_ESI", "Workflow/ESI", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.SENHA", "Senha", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ESI.VARIAVEL_SAIDA_FLUXO", "Variável de saída do fluxo", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.CONTEXTO_JNDI", "Contexto JNDI", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.VALOR_AUTOMATICO", "Valor atribuído pelo banco", dominio, modulo));
@@ -2120,6 +2165,8 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
internacionalizacaoList.add(new Internacionalizacao("ESI.DESTINATARIOS", "Destinatários", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.TAREFA", "Tarefa", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.ATUALIZADO", "atualizado", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ESI.DATASOURCE", "Data source", dominio, modulo));
+ internacionalizacaoList.add(new Internacionalizacao("ESI.DATAOBJECT", "Objeto de dados", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.ENUMERADO.DATASOURCE_CONEXAO", "Conexão de dados", dominio, modulo));
internacionalizacaoList.add(new Internacionalizacao("ESI.ENUMERADO.DATASOURCE_OBJETO_DADOS", "Objeto de dados", dominio, modulo));
diff --git a/cit-esi-web/src/main/resources/templates/resource_report_controller.js b/cit-esi-web/src/main/resources/templates/resource_report_controller.js
new file mode 100644
index 0000000..5bc8412
--- /dev/null
+++ b/cit-esi-web/src/main/resources/templates/resource_report_controller.js
@@ -0,0 +1,100 @@
+ $scope.validate = function() {
+ return true;
+ }
+
+ $scope.beforeSubmit = function() {
+
+ }
+
+ $scope.onSubmit = function() {
+
+ }
+
+ $scope.afterSubmit = function() {
+
+ }
+
+ $scope.initialize = function() {
+ $scope.showExecuteButton = true;
+ $scope.removeWorkspace = true;
+ $scope.showHelpButton = true;
+ $scope.showBreadcrumb = true;
+
+ $scope.setLoading(true);
+
+ FormBuilderRepository.getByName("${formName}").then(function(result) {
+ $scope.resourceVersion = result.originalElement;
+ $scope.setLoading(false);
+ $scope.initialized = true;
+ $scope.resetForm();
+ });
+
+ };
+
+ $scope.resetForm = function() {
+ $timeout(function(){
+ $scope.${formName}Form.$submitted = false;
+ $scope.${formName}Form.$setPristine();
+ });
+ };
+
+ $scope.submit = function() {
+ $scope.${formName}Form.$submitted = true;
+ if(!$scope.${formName}Form.$valid){
+ $scope.showAlert("error", $translate.instant("VALIDACAO.ALERTA_OBRIGATORIOS"), " ", false);
+ return;
+ }
+
+ if ($scope.validate && !$scope.validate()) {
+ return
+ }
+
+ if (!$scope.businessRule || $scope.businessRule != '') {
+ $scope.businessRule = $scope.resourceVersion.businessRule;
+ }
+
+ if ($scope.businessRule && $scope.businessRule != '') {
+ $scope[$scope.businessRule] = undefined;
+ RuntimeManagerRepository.executeBusinessRule($scope.businessRule, $scope.businessRuleVariables).then(function(result) {
+ $scope[$scope.businessRule] = result.originalElement.businessRule;
+ if ($scope[$scope.businessRule] && $scope[$scope.businessRule].valid) {
+ $scope.execute();
+ }
+ });
+ }else{
+ $scope.execute();
+ }
+
+ };
+
+ $scope.execute = function() {
+ $scope.setLoading(true,$translate.instant("ESI.EXECUTANDO")+" "+$scope.resourceVersion.resource.description);
+
+ if ($scope.beforeSubmit) {
+ $scope.beforeSubmit();
+ }
+ if ($scope.onSubmit) {
+ $scope.onSubmit();
+ }
+
+ $scope.setLoading(false);
+
+ if ($scope.afterSubmit) {
+ $scope.afterSubmit();
+ }else{
+ $scope.showAlert("success","ESI.MSG.FORM_EXECUTADO","");
+ }
+
+ if ($scope.removeWorkspace) {
+ $scope.close();
+ }
+ };
+
+ $scope.close = function() {
+ var workspace = angular.element("#${formName}Edit").scope().workspace;
+ if (workspace) {
+ angular.element("#citapp-controller").scope().removeWorkspace(workspace.id);
+ }
+ };
+
+ $scope.initialize();
\ No newline at end of file
diff --git a/cit-esi-web/src/main/resources/templates/resource_report_html.html b/cit-esi-web/src/main/resources/templates/resource_report_html.html
new file mode 100644
index 0000000..5779dc7
--- /dev/null
+++ b/cit-esi-web/src/main/resources/templates/resource_report_html.html
@@ -0,0 +1,30 @@
+
\ No newline at end of file
diff --git a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js
index 09c89dc..185095f 100644
--- a/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js
+++ b/cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/ReportController.js
@@ -1,8 +1,189 @@
'use strict';
-citApp.controller('ReportController', ["$scope", "appService", "ReportRepository", "$filter", "$translate", "DomainRepository", "$timeout", 'FileUploader', "$http", "$modal",
- function ReportController($scope, appService, ReportRepository, $filter, $translate, DomainRepository, $timeout, FileUploader, $http, $modal) {
+citApp.controller('ReportController', ["$scope", "appService", "ReportRepository", "FlowRepository", "FormWidgetRepository", "ParameterRepository", "MenuRepository", "FormBuilderRepository", "DataSourceRepository", "DataObjectRepository", "$filter", "$translate", "DomainRepository", "$timeout", 'FileUploader', "$http", "$rootScope", "$modal",
+ function ReportController($scope, appService, ReportRepository, FlowRepository, FormWidgetRepository, ParameterRepository, MenuRepository, FormBuilderRepository, DataSourceRepository, DataObjectRepository, $filter, $translate, DomainRepository, $timeout, FileUploader, $http, $rootScope, $modal) {
+ var componentsPage = '/cit-esi-web/assets/js/angular/custom/directive/html/formComponents.html';
+ $scope.appController = angular.element("#citapp-controller").scope();
+
+ $scope.colors = ['yellow','yellow-dark','dark','black','white','red','blue','green','orange','purple','pink','brown','grey'];
+ $scope.iconList = FormContainerHelper.iconList;
+
+ $scope.widgets = [];
+ FormWidgetRepository.getList().then(function(result) {
+ angular.forEach(result, function(widget){
+ FormWidgetRepository.get(widget.id).then(function(result) {
+ $scope.widgets.push(result.originalElement);
+ });
+ });
+ });
+
+ ParameterRepository.getByName("RESOURCE_REPORT_HTML").then(function(result) {
+ $scope.RESOURCE_REPORT_HTML = result.originalElement.textValue;
+ });
+ ParameterRepository.getByName("RESOURCE_REPORT_CONTROLLER").then(function(result) {
+ $scope.RESOURCE_REPORT_CONTROLLER = result.originalElement.textValue;
+ });
+ ParameterRepository.getByName("RESOURCE_REPORT_DEPENDENCIES").then(function(result) {
+ $scope.RESOURCE_REPORT_DEPENDENCIES = result.originalElement.textValue;
+ });
+
+ DomainRepository.getEnumeratedDomain('ReportEngineEnum').then(function(result) {
+ $scope.reportEngineList = result;
+ });
+
+ DomainRepository.getEnumeratedDomain('ReportDataSourceEnum').then(function(result) {
+ $scope.reportDataSourceList = result;
+ });
+
+ DomainRepository.getEnumeratedDomain('ExpressionTypeEnum').then(function(result) {
+ $scope.expressionTypeList = [];
+ for (var i = 0; i < result.length; i++) {
+ if (result[i].chave.indexOf('VARIABLE') < 0)
+ $scope.expressionTypeList.push(result[i]);
+ }
+ });
+
+ $scope.menus = [];
+ MenuRepository.getAllMenusAtivos().then(function(result) {
+ angular.forEach(result, function (menu) {
+ if (menu.originalElement.submenu) {
+ angular.forEach(menu.originalElement.submenu, function (subMenu) {
+ var nome = menu.nome + ' -> ' + subMenu.nome;
+ $scope.menus.push({id: subMenu.id, nome: nome, nomeSubmenu: subMenu.nome, originalElement: {id: subMenu.id, nome: nome, nomeSubmenu: subMenu.nome}});
+ });
+ }
+ });
+ });
+
+ $scope.createFormVersion = function() {
+ var formVersion = {resource: {type: "FORM"}, className: "FormVersion", majorVersion: 1, minorVersion: 0, previewJS: "", files:[], tabs: []};
+ formVersion.defaultPage = { pageCode : $scope.RESOURCE_REPORT_HTML
+ ,controllerCode : $scope.RESOURCE_REPORT_CONTROLLER
+ ,dependencies: $scope.RESOURCE_REPORT_DEPENDENCIES ? $scope.RESOURCE_REPORT_DEPENDENCIES.split(',') : [] };
+
+ return formVersion;
+ };
+
+ $scope.findDataSource = function(value) {
+ var dataSourceVH = {
+ nome : value
+ };
+ return DataSourceRepository.findDataSource(dataSourceVH).then(function(result) {
+ return result;
+ });
+ };
+
+ $scope.clearDataSourceAutoComplete = function() {
+ $scope.report.dataSource.connection = null;
+ };
+
+ $scope.setDataSource = function (item) {
+ if(item && item.id) {
+ $scope.report.dataSource.connection = item;
+ }
+ };
+
+ $scope.findDataObject = function(value) {
+ var dataObjectVH = {
+ nome : value
+ };
+ return DataObjectRepository.findDataObject(dataObjectVH).then(function(result) {
+ return result;
+ });
+ };
+
+ $scope.clearDataObjectAutoComplete = function() {
+ $scope.report.dataSource.dataObject = null;
+ };
+
+ $scope.setDataObject = function (item) {
+ if(item && item.id) {
+ $scope.report.dataSource.dataObject = item;
+ }
+ };
+
+ $scope.findFlow = function(value) {
+ var flowVH = {
+ nome : value
+ };
+ return FlowRepository.findFlow(flowVH).then(function(result) {
+ var flows = [];
+ if (result && result.length > 0) {
+ for (var i = 0; i < result.length; i++) {
+ var flow = result[i].originalElement;
+ if (flow.flowApplication == 'SERVICE_INTEGRATION') {
+ flows.push(result[i]);
+ }
+ }
+ }
+ return flows;
+ });
+ };
+
+ $scope.clearFlowAutoComplete = function() {
+ $scope.report.dataSource.flow = null;
+ };
+
+ $scope.setFlow = function (item) {
+ if(item && item.id) {
+ $scope.report.dataSource.flow = item;
+ }
+ };
+
+ $scope.showComponents = function(){
+ if (!$scope.canShowComponents()) {
+ return ;
+ }
+
+ $rootScope.formVersion = $scope.report.formVersion;
+ $rootScope.widgets = $scope.widgets;
+ $rootScope.formBuilderControllerScope = $scope;
+ $scope.appController.addNewWorkspace($translate.instant("ESI.DESENHO_TELA"), componentsPage, true, 'mod-red-dark', $scope.report.formVersion);
+ };
+
+ $scope.canShowComponents = function() {
+ return $scope.edit && !appService.existsWorkspace(componentsPage);
+ };
+
+ $scope.removeComponentWorkspace = function () {
+ var element = angular.element("#formBuilderComponents");
+ if (element && element.scope()) {
+ var workspace = element.scope().workspace;
+ if (workspace) {
+ $scope.appController.removeWorkspace(workspace.id);
+ }
+ }
+ };
+
+ $scope.findMenu = function(value) {
+ var result = [];
+ for (var i = 0; i < $scope.menus.length; i++) {
+ var menu = $scope.menus[i];
+ if (menu.nome.toUpperCase().indexOf(value.toUpperCase()) >= 0) {
+ result.push(menu);
+ }
+ }
+
+ return result;
+ };
+
+ $scope.limparAutoCompleteMenu = function() {
+ $scope.report.formVersion.menu = null;
+ };
+
+ $scope.setFormAttributes = function () {
+ if (!$scope.report.formVersion.menuName || $scope.report.formVersion.menuName == '') {
+ $scope.report.formVersion.menuName = $scope.report.description;
+ }
+ if (!$scope.report.formVersion.resource.description || $scope.report.formVersion.resource.description == '') {
+ $scope.report.formVersion.resource.description = $scope.report.resource.description;
+ }
+ if (!$scope.report.formVersion.resource.name || $scope.report.formVersion.resource.name == '') {
+ $scope.report.formVersion.resource.name = $scope.report.resource.name;
+ }
+ };
+
var className = "ReportVersion";
$scope.report = {};
$scope.newReport = true;
@@ -14,11 +195,14 @@ citApp.controller('ReportController', ["$scope", "appService", "ReportRepository
$timeout(function(){
$scope.reportForm.$submitted = false;
$scope.reportForm.$setPristine();
+ $scope.showComponents();
+ $scope.appController.activeWorkspace($scope.workspace);
});
};
// Atualiza pagina de pesquisa
$scope.atualizaPaginaPesquisa = function () {
+ $scope.removeComponentWorkspace();
angular.element('#searchReport').scope().fetchResult();
};
@@ -80,7 +264,8 @@ citApp.controller('ReportController', ["$scope", "appService", "ReportRepository
// Limpa o formulario preenchido
$scope.limparReport = function(){
- $scope.report = {resource: {type: "REPORT"}, className: className, majorVersion: 1, minorVersion: 0};
+ $scope.report = {resource: {type: "REPORT"}, className: className, majorVersion: 1, minorVersion: 0
+ , formVersion: $scope.createFormVersion(), dataSource: {}, parameters: []};
$scope.uploader.clearQueue();
};
@@ -93,6 +278,32 @@ citApp.controller('ReportController', ["$scope", "appService", "ReportRepository
$scope.uploader.addToQueue("/cit-esi-web/reports/"+$scope.report.path+"/"+$scope.report.fileName);
+ $scope.report.formVersion = $scope.createFormVersion();
+ if ($scope.report.form) {
+ FormBuilderRepository.getByName($scope.report.form.name).then(function(result) {
+ if (result.originalElement && result.originalElement.id) {
+ $scope.report.formVersion = result.originalElement;
+ $scope.report.formVersion.className = "FormVersion";
+ if (!$scope.report.formVersion.tabs) {
+ $scope.report.formVersion.tabs = [];
+ }
+ if ($scope.report.formVersion.menu) {
+ angular.forEach($scope.menus, function (menu) {
+ if (menu.id == $scope.report.formVersion.menu.id) {
+ $scope.report.formVersion.menu.nome = menu.nome;
+ }
+ });
+ }
+ if (!$scope.report.formVersion.defaultPage || !$scope.report.formVersion.defaultPage.controllerCode) {
+ $scope.report.formVersion.defaultPage = { pageCode : $scope.RESOURCE_REPORT_HTML
+ ,controllerCode : $scope.RESOURCE_REPORT_CONTROLLER
+ ,dependencies: $scope.RESOURCE_REPORT_DEPENDENCIES ? $scope.RESOURCE_REPORT_DEPENDENCIES.split(',') : [] };
+ }
+
+ }
+ });
+ }
+
$scope.edit = edit;
$scope.newReport = false;
diff --git a/cit-esi-web/src/main/webapp/assets/js/angular/custom/repository/ReportRepository.js b/cit-esi-web/src/main/webapp/assets/js/angular/custom/repository/ReportRepository.js
index 9dcf734..f6f8d8d 100644
--- a/cit-esi-web/src/main/webapp/assets/js/angular/custom/repository/ReportRepository.js
+++ b/cit-esi-web/src/main/webapp/assets/js/angular/custom/repository/ReportRepository.js
@@ -9,6 +9,9 @@ citApp.factory('ReportRepository', ['RestangularEsi', 'AbstractRepository', '$tr
this.getAllVersions = function (params) {
return this.restangular.all(this.route + '/getAllVersions').post(params);
},
+ this.execute = function (report) {
+ return this.restangular.all(this.route + '/execute').post(report);
+ },
this.replace = function (resource) {
return this.restangular.all(this.route + '/replace').post(resource);
},
diff --git a/cit-esi-web/src/main/webapp/html/report/reportEdit.html b/cit-esi-web/src/main/webapp/html/report/reportEdit.html
index ded1d9d..4e7b7bf 100644
--- a/cit-esi-web/src/main/webapp/html/report/reportEdit.html
+++ b/cit-esi-web/src/main/webapp/html/report/reportEdit.html
@@ -59,61 +59,241 @@
( * ) LABEL.CAMPOS_OBRIGATORIOS
-