Initial Branch

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" output="target/classes" path="src/main/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>mprj-doerj-geracao-caderno-portlet</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>tern.eclipse.ide.core.ternBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
<?xml version="1.0"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mprj-doerj-geracao-caderno-portlet</groupId>
<artifactId>mprj-doerj-geracao-caderno-portlet</artifactId>
<packaging>war</packaging>
<name>mprj-doerj-geracao-caderno-portlet</name>
<version>0.0.1</version>
<parent>
<groupId>root-pom</groupId>
<artifactId>root-pom</artifactId>
<version>arthur</version>
</parent>
<build>
<plugins>
<plugin>
<groupId>com.liferay.maven.plugins</groupId>
<artifactId>liferay-maven-plugin</artifactId>
<version>${liferay.maven.plugin.version}</version>
<!-- Manter este build-css possibilita utilizar SASS e Compass no CSS
do portlet. -->
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>build-css</goal>
</goals>
</execution>
</executions>
<configuration>
<autoDeployDir>${liferay.auto.deploy.dir}</autoDeployDir>
<appServerDeployDir>${liferay.app.server.deploy.dir}</appServerDeployDir>
<appServerLibGlobalDir>${liferay.app.server.lib.global.dir}</appServerLibGlobalDir>
<appServerPortalDir>${liferay.app.server.portal.dir}</appServerPortalDir>
<liferayVersion>${liferay.version}</liferayVersion>
<pluginType>portlet</pluginType>
</configuration>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-service</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-bridges</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-taglib</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-java</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.portlet</groupId>
<artifactId>portlet-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.mashape.unirest/unirest-java -->
<dependency>
<groupId>com.mashape.unirest</groupId>
<artifactId>unirest-java</artifactId>
<version>1.4.9</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpasyncclient</artifactId>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpmime</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>
<!-- GSON -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>
<!-- SolrJ -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.10.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>2.0.6</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-lang/commons-lang -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>javax.mail-api</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.0</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.0.2.RELEASE</version>
<exclusions>
<exclusion>
<artifactId>spring-aop</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-beans</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-context</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<exclusion>
<artifactId>spring-expression</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
<!-- <exclusion> <artifactId>spring-core</artifactId> <groupId>org.springframework</groupId>
</exclusion> -->
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.13.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.pegdown/pegdown -->
<dependency>
<groupId>org.pegdown</groupId>
<artifactId>pegdown</artifactId>
<version>1.6.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-JAXB-ReferenceImpl</artifactId>
<version>8.1.0</version>
</dependency>
</dependencies>
<profiles>
<profile>
<id>DeployLocal</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<executions>
<execution>
<id>deploy</id>
<phase>install</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>F:\KDI-2.0\server\jboss-6.2-EE\deploy</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target</directory>
<includes>
<include>${project.artifactId}-${project.version}.war</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<distributionManagement>
<repository>
<id>releases</id>
<url>http://p-intcont01.pgj.rj.gov.br/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://p-intcont01.pgj.rj.gov.br/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>
</project>
\ No newline at end of file
package br.mp.mprj.portal.portlet.caderno;
//import br.mp.mprj.portal.portlet.doerj.job.MigracaoPDFAntigosJobUtil;
//import br.mp.mprj.portal.portlet.doerj.util.DoerjUtil;
import br.mp.mprj.portal.portlet.caderno.rest.RestServices;
import br.mp.mprj.portal.portlet.caderno.service.GeraCaderno;
import br.mp.mprj.portal.portlet.caderno.util.CadernoUtil;
import br.mp.mprj.portal.portlet.caderno.util.Estilos;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.json.JSONFactoryUtil;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.upload.UploadPortletRequest;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.portal.theme.ThemeDisplay;
import com.liferay.portal.util.PortalUtil;
import com.liferay.portlet.PortletURLFactoryUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.util.HashMap;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletContext;
import javax.portlet.PortletException;
import javax.portlet.PortletRequest;
import javax.portlet.PortletURL;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import javax.xml.bind.JAXBException;
import org.apache.log4j.Logger;
import org.docx4j.XmlUtils;
import org.docx4j.model.datastorage.migration.VariablePrepare;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.json.JSONArray;
import org.json.JSONObject;
public class CadernoPortlet extends MVCPortlet{
final static Logger logger = Logger.getLogger(CadernoPortlet.class);
public void serveResource(ResourceRequest resourceRequest,
ResourceResponse resourceResponse) throws IOException,
PortletException {
ThemeDisplay themeDisplay = (ThemeDisplay) resourceRequest.getAttribute(WebKeys.THEME_DISPLAY);
UploadPortletRequest uploadRequest=PortalUtil.getUploadPortletRequest(resourceRequest);
String valor = ParamUtil.getString(resourceRequest, "parameter");
String cmd = ParamUtil.getString(resourceRequest, "caderno");
String dataDivulgacao = ParamUtil.getString(uploadRequest, "dataP");
String situacao = ParamUtil.getString(uploadRequest, "situacao");
//System.out.println(valor);
com.liferay.portal.kernel.json.JSONObject jsonResponse = JSONFactoryUtil.createJSONObject();
if (cmd.equals("geraCaderno")){
try {
geraCaderno(resourceRequest,resourceResponse,dataDivulgacao,situacao);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
//System.out.println(valor);
try {
jsonResponse.put("result", CadernoUtil.getDatasCadastradas());
} catch (SystemException e) {
// TODO Auto-generated catch block
logger.error("Erro requisicao AJAX",e);
} catch (ParseException e) {
// TODO Auto-generated catch block
logger.error("Erro validar horários AJAX",e);
}
// Writing the result in resourceResponse writer.
PrintWriter writer = resourceResponse.getWriter();
writer.println(jsonResponse);
// Creating a JSON object which will contain the sum.
}
}
public void geraCaderno(ResourceRequest resourceRequest,
ResourceResponse resourceResponse,String dataDivulgacao,String idStatus)throws Exception {
UploadPortletRequest uploadRequest=PortalUtil.getUploadPortletRequest(resourceRequest);
ThemeDisplay themeDisplay = (ThemeDisplay) uploadRequest.getAttribute(WebKeys.THEME_DISPLAY);
JSONArray listaConteudos = new JSONArray();
RestServices rest = new RestServices();
String dataDivulgacaoRest = dataDivulgacao.replace("/", "");
listaConteudos = rest.getRest(dataDivulgacaoRest,idStatus);
if(!mensagensDeErro(listaConteudos, dataDivulgacao, resourceRequest)){
GeraCaderno caderno = new GeraCaderno();
caderno.processaCaderno(resourceRequest, resourceResponse,listaConteudos,dataDivulgacao);
}else{
com.liferay.portal.kernel.json.JSONObject jsonResponse = JSONFactoryUtil.createJSONObject();
jsonResponse.put("erroDataNula", true);
PrintWriter writer = resourceResponse.getWriter();
writer.println(jsonResponse);
}
String portletName = (String) resourceRequest.getAttribute(WebKeys.PORTLET_ID);
PortletURL redirectURL = PortletURLFactoryUtil.create(PortalUtil.getHttpServletRequest(resourceRequest), portletName, themeDisplay.getLayout().getPlid(),
PortletRequest.RENDER_PHASE);
redirectURL.setParameter("jspPage", "/jsp/admin/view-admin.jsp");
//resourceResponse.sendRedirect(redirectURL.toString());
}
protected Boolean mensagensDeErro(JSONArray listaConteudos, String dataDivulgacao, ResourceRequest resourceRequest) throws ParseException{
Boolean contemErro = Boolean.FALSE;
if(listaConteudos.length()==0) {
contemErro = Boolean.TRUE;
resourceRequest.setAttribute("erro", true);
SessionErrors.add(resourceRequest.getPortletSession(), "erroArquivo");
} else if(dataDivulgacao.equals("")) {
contemErro = Boolean.TRUE;
resourceRequest.setAttribute("erroVazio", true);
SessionErrors.add(resourceRequest.getPortletSession(), "erroVazio");
}
return contemErro;
}
}
package br.mp.mprj.portal.portlet.caderno.rest;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONObject;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate;
public class RestServices {
public JSONArray getRest(String dataDivulgacao, String idStatus) throws Exception{
Boolean array=false;
JSONArray arr = new JSONArray();
final String baseUrl = "http://d-esb.pgj.rj.gov.br:8283/cadernoDoerj/buscaCadernoAno/" + dataDivulgacao + "/" + idStatus;
URI uri = new URI(baseUrl);
//RestTemplate restTemplate = new RestTemplate();
RestTemplate restTemp = new RestTemplate();
ResponseEntity<String> result = restTemp.getForEntity(uri, String.class);
JSONObject obj = new JSONObject(result.getBody());
List<Object> arrLista = new ArrayList<Object>();
Object objeto = obj.get("Materias");
// System.out.println(objeto);
if (!objeto.equals(null)){
array=true;
arrLista.add(obj.getJSONObject("Materias").get("materia"));
if (arrLista.get(0) instanceof JSONArray){
arr = obj.getJSONObject("Materias").getJSONArray("materia");
}else{
arr.put(obj.getJSONObject("Materias").getJSONObject("materia"));
}
}/*else{
array=false;
JSONObject jObjVazio = new JSONObject();
arr.put(jObjVazio);
}*/
/* CreateOdc creatOdc = new CreateOdc();
creatOdc.criaPlanilhaODS(arr, req, res,tipoFunc,mes,ano,array);*/
return arr;
}
}
package br.mp.mprj.portal.portlet.caderno.service;
import br.mp.mprj.portal.portlet.caderno.util.CadernoUtil;
import br.mp.mprj.portal.portlet.caderno.util.Estilos;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.OutputStream;
import java.text.ParseException;
import java.util.HashMap;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletContext;
import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import javax.xml.bind.JAXBException;
import org.apache.poi.ss.formula.functions.Replace;
import org.docx4j.XmlUtils;
import org.docx4j.openpackaging.Base;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.HeaderPart;
import org.docx4j.openpackaging.parts.WordprocessingML.MainDocumentPart;
import org.json.JSONArray;
import org.json.JSONObject;
public class GeraCaderno {
public static void processaCaderno(ResourceRequest resourceRequest,ResourceResponse resourceResponse,JSONArray listaConteudos,String dataDivulgacao) throws Docx4JException, JAXBException, IOException, ParseException{
PortletContext context = resourceRequest.getPortletSession().getPortletContext();
String pathTemplate = context.getRealPath("/template");
String conteudo="";
String orgao="";
String titulo="";
CadernoUtil util = new CadernoUtil();
MainDocumentPart currentDocumentPart = null;
WordprocessingMLPackage templatePackage = WordprocessingMLPackage.load(new File(pathTemplate + "/" + "TemplateCaderno.docx"));
System.out.println(XmlUtils.marshaltoString(templatePackage.getMainDocumentPart().getJaxbElement(), true, true));
WordprocessingMLPackage acumuladoPackage = WordprocessingMLPackage.createPackage();
//Preenche os dados do cabeçalho
MainDocumentPart headerDocumentPart = templatePackage.getMainDocumentPart();
MainDocumentPart mainPart = templatePackage.getMainDocumentPart();
HeaderPart headerPart = templatePackage.getHeaderFooterPolicy().getDefaultHeader();
HeaderPart firstPageHeaderPart = templatePackage.getHeaderFooterPolicy().getFirstHeader();
// VariablePrepare.prepare(templatePackage);
JSONObject cabecalho = new JSONObject(listaConteudos.getJSONObject(0).toString());
//String edicao = cabecalho.get("EDICAO").toString();
String edicao = "EDIÇÃO TESTE";
//String disponibilizacao = cabecalho.get("DISPONIBILIZACAO").toString();
String disponibilizacao = util.gerarDataCabecalho(dataDivulgacao);
//String publicacao = cabecalho.get("PUBLICACAO").toString();
String publicacao = "PUBLICAÇÃO TESTE";
String textoMain="José Eduardo Ciotola Gussem";
//Cria o hash map com as variáveis para substuição dos dados dos cabeçalhos e expediente
HashMap<String, String> variables = new HashMap<String, String>();
variables.put("edicao", edicao);
variables.put("disponibilizacao", disponibilizacao);
variables.put("publicacao", publicacao);
variables.put("PGJ", textoMain);
textoMain="Luciana Sapha Silveira";
variables.put("CGMP", textoMain);
textoMain="Eduardo da Silva Lima Neto";
variables.put("SGJA", textoMain);
textoMain="Leila Machado Costa";
variables.put("SGJPI", textoMain);
textoMain="Sérgio Roberto Ulhôa Pimentel";
variables.put("SGJACI", textoMain);
textoMain="Fernando Chaves da Costa";
variables.put("SGJACDH", textoMain);
textoMain="Marfan Martins Vieira";
variables.put("SGJRIDP", textoMain);
textoMain="Virgilio Panagiotis Stavridis";
variables.put("CG", textoMain);
textoMain="Emerson Garcia";
variables.put("CJ", textoMain);
textoMain="Mária Luiza Bezerra Cortes Barroso Miranda";
variables.put("AE", textoMain);
textoMain="Vera de Souza Leite";
variables.put("CMPROCJ", textoMain);
textoMain="Patricia Mothé Glioche Béze";
variables.put("CMPROMJ", textoMain);
textoMain="Elisa Fraga de Rego Monteiro";
variables.put("CSI", textoMain);
textoMain="Leandro Silva Navega";
variables.put("CEAF", textoMain);
textoMain="José Roberto Paredes";
variables.put("OUVI", textoMain);
textoMain="Dimitrius Viveiros Gonçalves";
variables.put("SGMP", textoMain);
textoMain="Fernanda Moreira Jorgensen (Assessora-Chefe)";
variables.put("AAOMC", textoMain);
textoMain="Inês da Matta Andreiuolo (Assessora-Chefe)";
variables.put("ARCC", textoMain);
textoMain="Cláucio Cardoso da Conceição (Coordenador)";
variables.put("GAOMC", textoMain);
textoMain="Orlando Carlos Neves Belém (Assessor-Chefe)";
variables.put("ARCCRI", textoMain);
textoMain="Antonio Carlos Silva Biscaia (Assessor-Chefe)";
variables.put("AC", textoMain);
textoMain="Eliane de Lima Pereira";
variables.put("ADHM", textoMain);
textoMain="Ertulei Laureano Matos";
variables.put("ARIDP", textoMain);
textoMain="Humberto Dalla Bernadina de Pinho";
variables.put("AI", textoMain);
textoMain="Victoria Siqueiros Soares Le Cocq D`Oliveira";
variables.put("AAP", textoMain);
firstPageHeaderPart.variableReplace(variables);
headerPart.variableReplace(variables);
mainPart.variableReplace(variables);
Estilos estilo = new Estilos();
estilo.alterStyleSheet(acumuladoPackage);
WordprocessingMLPackage firstPagePackage = WordprocessingMLPackage.createPackage();
boolean firstPage=true;
//faz a leitura da listagem de todos os conteúdos recebidos pelo serviço Rest
for(int i=0;i<listaConteudos.length();i++){
WordprocessingMLPackage wordCurrentPackage = WordprocessingMLPackage.createPackage();
JSONObject obj = new JSONObject(listaConteudos.get(i).toString());
orgao = obj.get("ORGAO").toString();
orgao = util.tratarString(orgao,"titulo");
titulo = obj.get("NOME").toString();
titulo = util.tratarString(titulo,"titulo");
conteudo = obj.get("CONTEUDO").toString();
conteudo=util.tratarString(conteudo,"conteudo");
wordCurrentPackage = util.ConverterHTML(conteudo,orgao,titulo);
currentDocumentPart = wordCurrentPackage.getMainDocumentPart();
acumuladoPackage.getMainDocumentPart().getContent().addAll(currentDocumentPart.getContent());
wordCurrentPackage = null;
currentDocumentPart =null;
//firstDocumentPart=null;
}
MainDocumentPart acumuladoDocumentPart = acumuladoPackage.getMainDocumentPart();
estilo.alterStyleSheet(templatePackage);
templatePackage.getMainDocumentPart().getContent().addAll(acumuladoDocumentPart.getContent());
util.ORGAO="";
util.TITULO="";
//File exportFile = new File("C:/Users/diogo.souza/Documents/Caderno DO/testeDoc4JNovo.docx");
String dataNomeArquivo = dataDivulgacao.replace("/", "-");
String nomeArquivo="caderno_doerj_" + dataNomeArquivo;
File exportFile = new File(pathTemplate + "/" + nomeArquivo + ".docx");
templatePackage.save(exportFile);
resourceResponse.setContentType("application/force-download");
resourceResponse.addProperty("Content-Disposition", "attachment; filename="+nomeArquivo + ".docx");
File outputFile = new File(System.getProperty("java.io.tmpdir"), nomeArquivo);
FileInputStream in = new FileInputStream(exportFile);
OutputStream out = resourceResponse.getPortletOutputStream();
//wb.write(out);
byte[] buffer = new byte[4096];
int length;
while ((length = in.read(buffer)) > 0){
out.write(buffer, 0, length);
}
in.close();
out.flush();
out.close();
}
}
package br.mp.mprj.portal.portlet.caderno.util;
import java.math.BigInteger;
import java.util.List;
import org.docx4j.openpackaging.exceptions.Docx4JException;
import org.docx4j.openpackaging.packages.WordprocessingMLPackage;
import org.docx4j.openpackaging.parts.WordprocessingML.StyleDefinitionsPart;
import org.docx4j.wml.HpsMeasure;
import org.docx4j.wml.RFonts;
import org.docx4j.wml.RPr;
import org.docx4j.wml.Style;
import org.docx4j.wml.Styles;
import org.docx4j.wml.U;
import org.docx4j.wml.UnderlineEnumeration;
public class Estilos {
private static WordprocessingMLPackage wordMLPackage;
/**
* First we create the package, then we alter the style sheet and add some
* styled paragraphs. Finally we save the package.
*/
public static void main (String[] args) throws Docx4JException {
wordMLPackage = WordprocessingMLPackage.createPackage();
alterStyleSheet();
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Title",
"Hello World! This title is now in Arial.");
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Subtitle",
"Subtitle, this subtitle is now Arial too");
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Heading1",
"As is Heading1");
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Heading2",
"Heading2 is now Arial, no longer bold and has an underline " +
"and fontsize 12");
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Heading3",
"Heading3 is now Arial");
wordMLPackage.getMainDocumentPart().addStyledParagraphOfText("Normal",
"And normal text has changed to Arial and fontsize 10");
wordMLPackage.save(new java.io.File("C:/Users/diogo.souza/Documents/Caderno DO/HelloWord12.docx") );
}
/**
* This method alters the default style sheet that is part of each document.
*
* To do this, we first retrieve the style sheet from the package and then
* get the Styles object from it. From this object, we get the list of actual
* styles and iterate over them.
* We check against all styles we want to alter and apply the alterations if
* applicable.
*
* @param wordMLPackage
*/
public static void alterStyleSheet() {
StyleDefinitionsPart styleDefinitionsPart =
wordMLPackage.getMainDocumentPart().getStyleDefinitionsPart();
Styles styles = styleDefinitionsPart.getJaxbElement();
List<Style> stylesList = styles.getStyle();
for (Style style : stylesList) {
if (style.getStyleId().equals("Normal")) {
alterNormalStyle(style);
} else if (style.getStyleId().equals("Heading2")) {
alterHeading2Style(style);
} else if (style.getStyleId().equals("Heading1") ||
style.getStyleId().equals("Heading3") ||
style.getStyleId().equals("Title") ||
style.getStyleId().equals("Subtitle")) {
getRunPropertiesAndRemoveThemeInfo(style);
}
}
}
public static void alterStyleSheet(WordprocessingMLPackage wordPackage) {
StyleDefinitionsPart styleDefinitionsPart =
wordPackage.getMainDocumentPart().getStyleDefinitionsPart();
Styles styles = styleDefinitionsPart.getJaxbElement();
List<Style> stylesList = styles.getStyle();
for (Style style : stylesList) {
if (style.getStyleId().equals("Normal")) {
alterNormalStyle(style);
} else if (style.getStyleId().equals("Heading2")) {
alterHeading2Style(style);
} else if (style.getStyleId().equals("Heading1")){
alterHeading1Style(style);
}else if (style.getStyleId().equals("Heading3") ||
style.getStyleId().equals("Title") ||
style.getStyleId().equals("Subtitle")){
getRunPropertiesAndRemoveThemeInfo(style);
}
}
}
/**
* First we create a run properties object as we want to remove nearly all of
* the existing styling. Then we change the font and font size and set the
* run properties on the given style. As in previous examples, the font size
* is defined to be in half-point size.
*/
private static void alterNormalStyle(Style style) {
// we want to change (or remove) almost all the run properties of the
// normal style, so we create a new one.
RPr rpr = new RPr();
changeFontToSpranq(rpr);
changeFontSize(rpr, 20);
style.setRPr(rpr);
}
/**
* For this style, we get the existing run properties from the style and
* remove the theme font information from them. Then we also remove the bold
* styling, change the font size (half-points) and add an underline.
*/
private static void alterHeading2Style(Style style) {
RPr rpr = getRunPropertiesAndRemoveThemeInfo(style);
removeBoldStyle(rpr);
changeFontSize(rpr, 24);
// addUnderline(rpr);
}
private static void alterHeading1Style(Style style) {
RPr rpr = getRunPropertiesAndRemoveThemeInfo(style);
removeBoldStyle(rpr);
changeFontSize(rpr, 28);
// addUnderline(rpr);
}
private static RPr getRunPropertiesAndRemoveThemeInfo(Style style) {
// We only want to change some settings, so we get the existing run
// properties from the style.
RPr rpr = style.getRPr();
removeThemeFontInformation(rpr);
return rpr;
}
/**
* Change the font of the given run properties to Arial.
*
* A run font specifies the fonts which shall be used to display the contents
* of the run. Of the four possible types of content, we change the styling of
* two of them: ASCII and High ANSI.
* Finally we add the run font to the run properties.
*
* @param runProperties
*/
private static void changeFontToSpranq(RPr runProperties) {
RFonts runFont = new RFonts();
runFont.setAscii("Spranq eco sans");
runFont.setHAnsi("Spranq eco sans");
runProperties.setRFonts(runFont);
}
/**
* Change the font size of the given run properties to the given value.
*
* @param runProperties
* @param fontSize Twice the size needed, as it is specified as half-point value
*/
private static void changeFontSize(RPr runProperties, int fontSize) {
HpsMeasure size = new HpsMeasure();
size.setVal(BigInteger.valueOf(fontSize));
runProperties.setSz(size);
runProperties.setColor(null);
RFonts runFont = new RFonts();
runFont.setAscii("Spranq eco sans");
runFont.setHAnsi("Spranq eco sans");
runProperties.setRFonts(runFont);
}
/**
* Removes the theme font information from the run properties.
* If this is not removed then the styles based on the normal style won't
* inherit the Arial font from the normal style.
*
* @param runProperties
*/
private static void removeThemeFontInformation(RPr runProperties) {
runProperties.getRFonts().setAsciiTheme(null);
runProperties.getRFonts().setHAnsiTheme(null);
}
/**
* Removes the Bold styling from the run properties.
*
* @param runProperties
*/
private static void removeBoldStyle(RPr runProperties) {
runProperties.getB().setVal(false);
}
/**
* Adds a single underline to the run properties.
*
* @param runProperties
*/
private static void addUnderline(RPr runProperties) {
U underline = new U();
underline.setVal(UnderlineEnumeration.SINGLE);
runProperties.setU(underline );
}
}
<?xml version="1.0"?>
<beans
default-destroy-method="destroy"
default-init-method="afterPropertiesSet"
xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
>
<bean class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.aop.ServiceBeanAutoProxyCreator" />
<constructor-arg>
<map>
<entry key="beanMatcher">
<bean class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.aop.ServiceBeanMatcher" />
</bean>
</entry>
<entry key="methodInterceptor" value-ref="serviceAdvice" />
</map>
</constructor-arg>
</bean>
<bean class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.bean.BeanReferenceAnnotationBeanPostProcessor" />
</bean>
<bean class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.context.PortletBeanFactoryCleaner" />
</bean>
<bean id="portletClassLoader" class="com.liferay.portal.kernel.portlet.PortletClassLoaderUtil" factory-method="getClassLoader" />
<bean id="servletContextName" class="com.liferay.portal.kernel.portlet.PortletClassLoaderUtil" factory-method="getServletContextName" />
<bean id="basePersistence" abstract="true">
<property name="dataSource" ref="liferayDataSource" />
<property name="sessionFactory" ref="liferaySessionFactory" />
</bean>
<bean id="serviceAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.aop.SkipAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="accessControlAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="accessControlAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.security.ac.AccessControlAdvice" />
<constructor-arg>
<map>
<entry key="accessControlAdvisor">
<bean class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.security.ac.AccessControlAdvisorImpl" />
</bean>
</entry>
<entry key="nextMethodInterceptor" value-ref="portalResiliencyAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="portalResiliencyAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.resiliency.service.PortalResiliencyAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="serviceMonitorAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="serviceMonitorAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.monitoring.statistics.service.ServiceMonitorAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="asyncAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="asyncAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.messaging.async.AsyncAdvice" />
<constructor-arg>
<map>
<entry key="defaultDestinationName" value="liferay/async_service" />
<entry key="nextMethodInterceptor" value-ref="threadLocalCacheAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="threadLocalCacheAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.cache.ThreadLocalCacheAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="bufferedIncrementAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="bufferedIncrementAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.increment.BufferedIncrementAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="indexableAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="indexableAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.search.IndexableAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="systemEventAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="systemEventAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.systemevent.SystemEventAdvice" />
<constructor-arg>
<map>
<entry key="nextMethodInterceptor" value-ref="transactionAdvice" />
</map>
</constructor-arg>
</bean>
<bean id="transactionAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.transaction.TransactionInterceptorFactoryBean" />
<constructor-arg>
<map>
<entry key="platformTransactionManager" value-ref="liferayTransactionManager" />
<entry key="transactionAttributeSource" value-ref="transactionAttributeSource" />
</map>
</constructor-arg>
</bean>
<bean id="transactionAttributeSource" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.transaction.AnnotationTransactionAttributeSource" />
</bean>
</beans>
\ No newline at end of file
<?xml version="1.0"?>
<beans
default-destroy-method="destroy"
default-init-method="afterPropertiesSet"
xmlns="http://www.springframework.org/schema/beans"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"
>
<bean class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.cluster.ClusterableChainableMethodAdviceInjector" />
<constructor-arg>
<map>
<entry key="parentChainableMethodAdvice" value-ref="serviceAdvice" />
</map>
</constructor-arg>
</bean>
</beans>
\ No newline at end of file
<?xml version="1.0"?>
<beans
default-destroy-method="destroy"
default-init-method="afterPropertiesSet"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
>
<bean id="liferayHibernateSessionFactory" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.spring.hibernate.PortletHibernateConfiguration" />
<constructor-arg>
<map>
<entry key="dataSource" value-ref="liferayDataSource" />
</map>
</constructor-arg>
</bean>
<bean id="liferaySessionFactory" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.dao.orm.hibernate.PortletSessionFactoryImpl" />
<constructor-arg>
<map>
<entry key="dataSource" value-ref="liferayDataSource" />
<entry key="sessionFactoryClassLoader" value-ref="portletClassLoader" />
<entry key="sessionFactoryImplementor" value-ref="liferayHibernateSessionFactory" />
</map>
</constructor-arg>
</bean>
<bean id="liferayTransactionManager" class="com.liferay.portal.kernel.util.InfrastructureUtil" factory-method="getTransactionManager" />
</beans>
\ No newline at end of file
<?xml version="1.0"?>
<beans
default-destroy-method="destroy"
default-init-method="afterPropertiesSet"
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
>
<bean id="liferayDataSource" class="com.liferay.portal.kernel.util.InfrastructureUtil" factory-method="getDataSource" />
</beans>
\ No newline at end of file
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping default-lazy="false" auto-import="false">
<import class="br.mp.mprj.portal.portlet.doerj.service.model.Agendamento" />
<class name="br.mp.mprj.portal.portlet.doerj.service.model.impl.AgendamentoImpl" table="DOERJ_Agendamento">
<id name="id" column="id_" type="long">
<generator class="assigned" />
</id>
<property name="uuid" type="com.liferay.portal.dao.orm.hibernate.StringType" column="uuid_" />
<property name="companyId" type="com.liferay.portal.dao.orm.hibernate.LongType" />
<property name="groupId" type="com.liferay.portal.dao.orm.hibernate.LongType" />
<property name="dataInclusao" type="org.hibernate.type.TimestampType" />
<property name="dataDivulgacao" type="com.liferay.portal.dao.orm.hibernate.StringType" />
<property name="login" type="com.liferay.portal.dao.orm.hibernate.StringType" />
<property name="nomePasta" type="com.liferay.portal.dao.orm.hibernate.StringType" />
<property name="nomeArquivo" type="com.liferay.portal.dao.orm.hibernate.StringType" />
<property name="idArquivo" type="com.liferay.portal.dao.orm.hibernate.LongType" />
</class>
</hibernate-mapping>
\ No newline at end of file
<?xml version="1.0"?>
<model-hints>
<model name="br.mp.mprj.portal.portlet.doerj.service.model.Agendamento">
<field name="uuid" type="String" />
<field name="id" type="long" />
<field name="companyId" type="long" />
<field name="groupId" type="long" />
<field name="dataInclusao" type="Date" />
<field name="dataDivulgacao" type="String" />
<field name="login" type="String" />
<field name="nomePasta" type="String" />
<field name="nomeArquivo" type="String" />
<field name="idArquivo" type="long" />
</model>
</model-hints>
\ No newline at end of file
<?xml version="1.0"?>
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd">
<persistence-unit-metadata>
<xml-mapping-metadata-complete/>
<persistence-unit-defaults>
<access>PROPERTY</access>
</persistence-unit-defaults>
</persistence-unit-metadata>
<mapped-superclass class="br.mp.mprj.portal.portlet.doerj.service.model.impl.AgendamentoModelImpl">
<attributes>
<id name="id">
<column name="ID_" />
</id>
<basic name="uuid">
<column name="UUID_" />
</basic>
<basic name="companyId" />
<basic name="groupId" />
<basic name="dataInclusao">
<temporal>TIMESTAMP</temporal>
</basic>
<basic name="dataDivulgacao" />
<basic name="login" />
<basic name="nomePasta" />
<basic name="nomeArquivo" />
<basic name="idArquivo" />
<transient name="modelAttributes" />
<transient name="primaryKey" />
<transient name="primaryKeyObj" />
</attributes>
</mapped-superclass>
<entity class="br.mp.mprj.portal.portlet.doerj.service.model.impl.AgendamentoImpl" name="Agendamento">
<table name="DOERJ_Agendamento" />
<attributes />
</entity>
</entity-mappings>
\ No newline at end of file
<?xml version="1.0"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" default-destroy-method="destroy" default-init-method="afterPropertiesSet" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="br.mp.mprj.portal.portlet.doerj.service.service.AgendamentoLocalService" class="br.mp.mprj.portal.portlet.doerj.service.service.impl.AgendamentoLocalServiceImpl" />
<bean id="br.mp.mprj.portal.portlet.doerj.service.service.AgendamentoService" class="br.mp.mprj.portal.portlet.doerj.service.service.impl.AgendamentoServiceImpl" />
<bean id="br.mp.mprj.portal.portlet.doerj.service.service.persistence.AgendamentoPersistence" class="br.mp.mprj.portal.portlet.doerj.service.service.persistence.AgendamentoPersistenceImpl" parent="basePersistence" />
</beans>
\ No newline at end of file
<?xml version="1.0"?>
<beans
default-destroy-method="destroy"
default-init-method="afterPropertiesSet"
xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"
>
<bean id="com.liferay.portal.dao.shard.advice.ShardAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.dao.shard.advice.ShardAdvice" />
</bean>
<bean id="com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice" class="com.liferay.portal.kernel.spring.util.SpringFactoryUtil" factory-method="newBean">
<constructor-arg value="com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice" />
<constructor-arg>
<map>
<entry key="shardAdvice" value-ref="com.liferay.portal.dao.shard.advice.ShardAdvice" />
</map>
</constructor-arg>
</bean>
<aop:config proxy-target-class="false">
<aop:advisor advice-ref="com.liferay.portal.dao.shard.advice.ShardPersistenceAdvice" pointcut="bean(*Persistence) || bean(*Finder)" />
</aop:config>
</beans>
\ No newline at end of file
#ADMINISTRACAO
admin.form.agendamento.observacao=*campos obrigatórios
admin.form.agendamento.titulo=Gerar Caderno
admin.form.agendamento.do=Diário Oficial *
admin.form.agendamento.data.divulgacao=Data de disponibilização *
admin.form.agendamento.obs.arquivo=Envie arquivos com a extensão .pdf com até 100mb de tamanho.
admin.form.adicionar.titulo=Adicionar mat&eacute;ria
admin.form.adicionar.observacao=*campos obrigatórios
admin.form.adicionar.orgao=&Oacute;rg&atilde;o
admin.form.adicionar.materia=Tipo de mat&eacute;ria *
admin.form.adicionar.data.divulgacao=Data de disponibilização *
admin.form.adicionar.conteudo=Conte&uacute;do *
admin.form.editar.situacao= Situação*
admin.form.editar.titulo=Editar mat&eacute;ria
#ADMINISTRA??O
admin.form.agendamento.observacao=*campos obrigat\u00F3rios (Automatic Copy)
admin.form.agendamento.titulo=Agendar Divulga\u00E7\u00E3o (Automatic Copy)
\ No newline at end of file
#ADMINISTRA??O
admin.form.agendamento.observacao=*campos obrigat\u00F3rios (Automatic Copy)
admin.form.agendamento.titulo=Agendar Divulga\u00E7\u00E3o (Automatic Copy)
\ No newline at end of file
#ADMINISTRA??O
admin.form.agendamento.observacao=*campos obrigat\u00F3rios (Automatic Copy)
admin.form.agendamento.titulo=Agendar Divulga\u00E7\u00E3o (Automatic Copy)
\ No newline at end of file
#ADMINISTRA??O
admin.form.agendamento.observacao=*campos obrigat\u00F3rios (Automatic Copy)
admin.form.agendamento.titulo=Agendar Divulga\u00E7\u00E3o (Automatic Copy)
\ No newline at end of file
#ADMINISTRA??O
admin.form.agendamento.observacao=*campos obrigat\u00F3rios (Automatic Copy)
\ No newline at end of file
##
## Properties Override
##
#
# Specify where to get the overridden properties. Updates should not be made
# on this file but on the overridden version of this file.
#
include-and-override=${base.path}/service-ext.properties
##
## Build
##
build.namespace=DOERJ
build.number=36
build.date=1542130234886
build.auto.upgrade=true
##
## Spring
##
#
# Input a list of comma delimited Spring configurations. These will be
# loaded after the bean definitions specified in the
# portalContextConfigLocation parameter in web.xml.
#
spring.configs=\
WEB-INF/classes/META-INF/base-spring.xml,\
\
WEB-INF/classes/META-INF/hibernate-spring.xml,\
WEB-INF/classes/META-INF/infrastructure-spring.xml,\
\
WEB-INF/classes/META-INF/cluster-spring.xml,\
\
WEB-INF/classes/META-INF/portlet-spring.xml,\
\
WEB-INF/classes/META-INF/shard-data-source-spring.xml,\
\
WEB-INF/classes/META-INF/ext-spring.xml
\ No newline at end of file
<?xml version="1.0"?>
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 6.2.0//EN" "http://www.liferay.com/dtd/liferay-display_6_2_0.dtd">
<display>
<category name="category.hidden">
<portlet id="mprj-doerj-geracao-caderno-portlet" />
</category>
</display>
\ No newline at end of file
name=mprj-doerj-geracao-caderno-portlet
module-group-id=liferay
module-incremental-version=1
tags=
short-description=
change-log=
page-url=http://www.liferay.com
author=Liferay, Inc.
licenses=LGPL
\ No newline at end of file
<?xml version="1.0"?>
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 6.2.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_6_2_0.dtd">
<liferay-portlet-app>
<portlet>
<portlet-name>mprj-doerj-geracao-caderno-portlet</portlet-name>
<icon>/icon.png</icon>
<control-panel-entry-category>content</control-panel-entry-category>
<control-panel-entry-weight>2</control-panel-entry-weight>
<header-portlet-css>/css/admin/admin.css</header-portlet-css>
<header-portlet-css>/css/datepicker/bootstrap.min.css</header-portlet-css>
<header-portlet-css>/css/datepicker/bootstrap-datepicker3.standalone.min.css</header-portlet-css>
<header-portlet-css>/css/confirm/jquery-confirm.min.css</header-portlet-css>
<header-portlet-javascript>/js/admin/jquery-1.10.2.min.js</header-portlet-javascript>
<header-portlet-javascript>/js/datepicker/moment-with-locales.js</header-portlet-javascript>
<header-portlet-javascript>/js/datepicker/transition.js</header-portlet-javascript>
<header-portlet-javascript>/js/datepicker/collapse.js</header-portlet-javascript>
<header-portlet-javascript>/js/datepicker/bootstrap.min.js</header-portlet-javascript>
<header-portlet-javascript>/js/datepicker/bootstrap-datepicker.min.js</header-portlet-javascript>
<header-portlet-javascript>/js/datepicker/bootstrap-datepicker.pt-BR.js</header-portlet-javascript>
<header-portlet-javascript>/js/confirm/jquery-confirm.min.js</header-portlet-javascript>
<footer-portlet-javascript>/js/main.js</footer-portlet-javascript>
<footer-portlet-javascript>/js/admin/admin.js</footer-portlet-javascript>
<css-class-wrapper>mprj-doej-portlet-admin</css-class-wrapper>
</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper>
</liferay-portlet-app>
\ No newline at end of file
<?xml version="1.0"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" version="2.0">
<portlet>
<portlet-name>mprj-doerj-geracao-caderno-portlet</portlet-name>
<display-name>mprj-doerj-geracao-caderno-portlet</display-name>
<portlet-class>br.mp.mprj.portal.portlet.caderno.CadernoPortlet</portlet-class>
<init-param>
<name>view-template</name>
<value>/jsp/admin/view-admin.jsp</value>
</init-param>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
</supports>
<resource-bundle>content/Language</resource-bundle>
<portlet-info>
<title>Caderno do Diário Oficial</title>
<short-title>Caderno do Diário Oficial</short-title>
<keywords>mprj-doerj-geracao-caderno-portlet</keywords>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>
</portlet-app>
\ No newline at end of file
<?xml version="1.0"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
\ No newline at end of file
.aui .mprj-doej-portlet-admin{
h3{
color: #333;
font-size: 20px;
font-weight: bold;
line-height: 24px;
}
.header-back-to a{
text-decoration: none !important;
}
.header-title h3 {
margin: 10px 0 !important;
font-size: 20px !important;
}
hr{
margin: 10px 0 5px 0;
border-top: 1px solid #A3AFBF;
}
form{
margin-top: 20px;
}
label {
font-size: 16px;
line-height: 16px;
font-weight: bold;
color: #333;
}
.texto-obs{
font-size: 12px;
line-height: 12px;
color: #A3AFBF;
}
.campo {
margin-bottom: 20px;
.form-group {
margin-bottom: 15px;
width: 150px;
}
input[type="text"].form-control {
height: auto;
margin-bottom: 0;
width: 100%;
}
.alert.alert-error {
background-color: transparent;
border: none !important;
padding: 0 !important;
margin-top: 5px;
}
}
.control-group.error label{
color: #b50303 !important;
}
/* Editor */
a.cke_button{
height: auto;
}
th.sortable {
position: relative;
cursor: pointer;
}
th.sortable::after {
/* font-family: FontAwesome; */
font-family: 'fontawesome-alloy';
content: "\f0dc";
position: absolute;
right: 8px;
color: #999;
}
th.sortable.asc::after {
content: "\f0d8";
}
th.sortable.desc::after {
content: "\f0d7";
}
th.sortable:hover::after {
color: #333;
}
/* Heading styles */
h1.age-header {
margin-bottom: 0px;
padding-bottom: 0px;
}
h2.page-header {
margin-top: 0px;
padding-top: 0px;
line-height: 15px;
vertical-align: middle;
}
h1 > .divider:before,
h2 > .divider:before,
h3 > .divider:before,
h4 > .divider:before,
h5 > .divider:before,
h6 > .divider:before,
.h1 > .divider:before,
.h2 > .divider:before,
.h3 > .divider:before,
.h4 > .divider:before,
.h5 > .divider:before,
.h6 > .divider:before {
color: #777;
content: "\0223E\0020";
}
.dropdown.bootstrap-select {
width: 100% !important;
}
#excluirFormInc{
float: right;
}
#campo-situacao{
width: 25%;
}
#editarMateriaInfo{
background-color: #f3f3f3;
padding: 10px;
margin: 10px 0 10px 0;
}
.dropdown-menu.form {
padding: 0;
}
input[type="text"]{
height: 30px;
}
/* NavBar Consulta */
.navbar-inner{
padding: 10px;
.container{
width: 100% !important;
}
a.link-add-materia{
color: #777;
text-decoraton: none !important;
&:hover{
color: #333;
}
}
.btn-add-materia{
float: left;
padding: 5px 10px;
border: 1px solid #ccc;
border-radius: 5px;
cursor: pointer;
.icone-add-materia{
float: left;
width: 22px;
border-right: 1px solid #ccc;
margin-right: 6px;
.icon-file{
font-size: 20px;
}
.icon-plus-sign-2{
font-size: 9px;
margin-left: -12px;
}
}
.texto-add-materia {
float: right;
}
}
}
#dropdown-pesquisa{
float: right;
input#keywords{
width: 440px;
padding-right: 36px;
margin-right: -55px;
margin-bottom: 0;
}
a.dropdown-toggle{
text-decoration: none !important;
color: #777 !important;
&:hover{
color: #333 !important;
}
.icon-search{
font-size: 17px;
}
}
#formPesquisar{
h4.header-title {
border-bottom: 1px solid rgba(0, 0, 0, 0.15);
padding: 0 20px 10px 20px;
margin-bottom: 25px;
font-weight: bold;
}
label {
text-align: left !important;
font-weight: normal;
}
.control-group{
padding: 0 20px 0 20px;
margin-bottom: 10px;
}
input[type="text"]{
width: 100%;
}
button.consultar{
width: 100%;
margin-bottom: 20px;
}
#dataInclusao, #dataDivulgacao{
margin-bottom: 0 !important;
}
}
}
.icon-trash{
cursor: pointer;
}
/* Tabela - Lista */
th.sortable{
padding-right: 22px !important;
min-width: 100px;
}
/* Cor - Status */
.status{
width: auto;
color: #FFF;
font-weight: bold;
border-radius: 4px;
padding: 2px 5px;
font-size: 12px;
text-align: center;
}
.status.novo{
background-color: #C9C9C9;
}
.status.em-analise{
background-color: #666666;
}
.status.pendente{
background-color: #E4C71B;
}
.status.validada{
background-color: #F89406;
}
.status.enviada-para-aprovacao{
background-color: #669933;
}
.status.aprovada{
background-color: #009900;
}
.status.agendada{
background-color: #3075E9;
}
.status.divulgada{
background-color: #0C3E74;
}
.status.editada{
background-color: #66CC33;
}
}
.label-calendar-agendamento {
color: #B84442 !important;
}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
.tags_doerj {
height: auto;
min-height: 72px;
background-color: #DDD;
padding: 10px;
margin: 10px 0 10px 0;
display: none;
}
.div_tags_doerj {
float: left;
border: solid 1px #F0EFEF;
margin-left: 5px;
padding: 5px 10px;
}
.div_icon_doerj {
float:right;
margin-right: 2px;
cursor: pointer;
margin-left: 10px;
padding-top: 4px;
}
.tash {
cursor:pointer;
}
.div_label_registros {
float: left;
margin-top: 5px;
margin-left: 10px;
}
.div_limpar_right {
float: right;
}
.paginas {
float: left;
}
.div_label_tag {
float: left;
margin-right: 5px;
margin-top: 10px;
}
.disabled {
background-color: #F2DEDE !important;
color: #B84442 !important;
}
.label-calendar-agendamento {
color: #B84442 !important;
}
$(document).ready(function(){
$(".excluir").click(function(e){
$.confirm({
title: 'Confirmação',
boxWidth: '30%',
useBootstrap: false,
content: '' +
'<h2>Tem certeza que deseja excluir essa matéria?</h2><br>' +
'<p>Depois de excluir, você não poderá desfazer esta ação.</p>'
,
buttons: {
confirm: {
text: 'Sim, quero excluir',
btnClass: 'btn-blue',
action: function () {
$("form")[0].setAttribute("action",urlExcluir);
$("form")[0].submit();
}
},
cancel: {
text: 'Cancelar',
action: function () {
}
}
}
});
});
$(document).keydown(function(event) {
if (event.ctrlKey==true && (event.which == '118' || event.which == '86')) {
event.preventDefault();
}
});
$("#" + namePortlet + "materia").val(tipoMateriaSelecionada).change();
$("#" + namePortlet + "situacao").val(statusSelecionado).change();
});
$(function () {
CKEDITOR.on('instanceReady', function (evt) {
CKEDITOR.instances._mprjdoerjportletmateria_WAR_mprjdoerjportlet_conteudo.on('focus', function (e) {
$(".alert").remove();
$('.campo').removeClass('error control-group');
$('.alert.alert-success').remove();
});
});
});
$("#enviarFormInc").focusout(function(){
limparErros();
});
function limparCampos(){
CKEDITOR.instances._mprjdoerjportletmateria_WAR_mprjdoerjportlet_conteudo.setData('');
$("#"+namePortlet+"materia").val('default').selectpicker("refresh");
}
function limparErros(){
$('.alert.alert-error').remove();
$("#campo-materia").removeClass("control-group error");
$("#campo-dataP").removeClass("control-group error");
$("#campo-conteudo").removeClass("control-group error");
$("#cke_"+namePortlet+"conteudo").css("border-color", "");
}
function validarForm(){
limparErros();
var materia = $("#"+namePortlet+"materia").val();
var dataP = $("#"+namePortlet+"dataP").val();
var OK = true;
var conteudo = CKEDITOR.instances._mprjdoerjportletmateria_WAR_mprjdoerjportlet_conteudo.getData();
if (materia == "") {
$("#campo-materia").addClass("control-group error");
$("#campo-materia").append('<div id="valida-tipo-mat" class="alert alert-error"> Um tipo de matéria deve ser selecionado. </div>');
OK = false;
}else{
$("#campo-materia").removeClass("control-group error");
}
if(dataP == "") {
$("#campo-dataP").addClass("control-group error");
$("#campo-dataP").append('<div id="valida-tipo-mat" class="alert alert-error"> Uma data deve ser selecionada. </div>');
OK = false;
}else{
$("#campo-dataP").removeClass("control-group error");
}
if(conteudo == "" || conteudo == undefined) {
$("#campo-conteudo").addClass("control-group error");
$("#cke_"+namePortlet+"conteudo").css("border-color", "#f70303");
$("#campo-conteudo").append('<div id="valida-tipo-mat" class="alert alert-error"> Um conteúdo deve ser inserido. </div>');
OK = false;
}else{
$('.alert.alert-error').remove();
$("#cke_"+namePortlet+"conteudo").css("border-color", "");
$("#campo-conteudo").removeClass("control-group error");
}
if(!OK){
return false;
}
}
function goBack(link) {
window.location.href = link;
}
\ No newline at end of file
$(document).ready(function(){
$(document).keydown(function(event) {
if (event.ctrlKey==true && (event.which == '118' || event.which == '86')) {
event.preventDefault();
}
});
$(".oculto").click(function(e){
$.confirm({
title: 'Confirmação',
boxWidth: '30%',
useBootstrap: false,
content: '' +
'<h2>Tem certeza que deseja executaro o job?</h2><br>'
,buttons: {
confirm: {
text: 'Sim, quero executar',
btnClass: 'btn-blue',
action: function () {
$.ajax ({
url:urlOculto,
type: 'POST',
cache: false,
async: false,
dataType: "json",
success: function(response)
{
alert('funcionou');
}
});
}
},
cancel: {
text: 'Cancelar',
action: function () {
}
}
}
});
});
});
//Form DatePicker
var dates="";
$(function () {
$("input").click(function(){
$(".alert").hide();
$('.campo').removeClass('error control-group');
$('.alert.alert-success').hide();
})
$(".input-group-addon").click(function(){
$(".alert").hide();
$('.campo').removeClass('error control-group');
$('.alert.alert-success').hide();
})
$(".campo").click(function(){
$(".alert").hide();
$('.campo').removeClass('error control-group');
$('.alert.alert-success').hide();
})
$("#datepickeragendamento").click(function(e){
var $clazz = $(".datepicker-days").children().find("tfoot").children().find(".today");
// $clazz.show();
$clazz.addClass("label-calendar-agendamento");
// $clazz.text("* Já existe agendamento da publicação para esse dia ou o horário limite foi ultrapassado.");
$clazz.removeClass("today");
});
$.ajax ({
url:urlAjax,
type: 'POST',
cache: false,
async: false,
dataType: "json",
success: function(response)
{
dates = response.result;
dates = dates.split(",");
createDatesValidation();
}
});
});
function createDatesValidation() {
var date = new Date();
$('#datepickeragendamento').datepicker({
// startDate: date,
language: 'pt-BR',
autoclose: 1,
ignoreReadonly: true,
/* beforeShowDay: function (currentDate) {
if (dates != null && dates.length > 0) {
for (var i = 0; i < dates.length; i++) {
if (moment(currentDate).unix()==moment(dates[i],'DD.MM.YYYY').unix()){
return false;
}
}
}
return true;
}*/
});
}
/**
* Brazilian translation for bootstrap-datepicker
* Cauan Cabral <cauan@radig.com.br>
*/
;(function($){
$.fn.datepicker.dates['pt-BR'] = {
days: ["Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"],
daysShort: ["Dom", "Seg", "Ter", "Qua", "Qui", "Sex", "Sáb"],
daysMin: ["Do", "Se", "Te", "Qu", "Qu", "Se", "Sa"],
months: ["Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"],
monthsShort: ["Jan", "Fev", "Mar", "Abr", "Mai", "Jun", "Jul", "Ago", "Set", "Out", "Nov", "Dez"],
today: "Hoje",
monthsTitle: "Meses",
clear: "Limpar",
format: "dd/mm/yyyy"
};
}(jQuery));
\ No newline at end of file
/* ========================================================================
* Bootstrap: collapse.js v3.3.7
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
/* jshint latedef: false */
+function ($) {
'use strict';
// COLLAPSE PUBLIC CLASS DEFINITION
// ================================
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
'[data-toggle="collapse"][data-target="#' + element.id + '"]')
this.transitioning = null
if (this.options.parent) {
this.$parent = this.getParent()
} else {
this.addAriaAndCollapsedClass(this.$element, this.$trigger)
}
if (this.options.toggle) this.toggle()
}
Collapse.VERSION = '3.3.7'
Collapse.TRANSITION_DURATION = 350
Collapse.DEFAULTS = {
toggle: true
}
Collapse.prototype.dimension = function () {
var hasWidth = this.$element.hasClass('width')
return hasWidth ? 'width' : 'height'
}
Collapse.prototype.show = function () {
if (this.transitioning || this.$element.hasClass('in')) return
var activesData
var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
if (actives && actives.length) {
activesData = actives.data('bs.collapse')
if (activesData && activesData.transitioning) return
}
var startEvent = $.Event('show.bs.collapse')
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
if (actives && actives.length) {
Plugin.call(actives, 'hide')
activesData || actives.data('bs.collapse', null)
}
var dimension = this.dimension()
this.$element
.removeClass('collapse')
.addClass('collapsing')[dimension](0)
.attr('aria-expanded', true)
this.$trigger
.removeClass('collapsed')
.attr('aria-expanded', true)
this.transitioning = 1
var complete = function () {
this.$element
.removeClass('collapsing')
.addClass('collapse in')[dimension]('')
this.transitioning = 0
this.$element
.trigger('shown.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
var scrollSize = $.camelCase(['scroll', dimension].join('-'))
this.$element
.one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)[dimension](this.$element[0][scrollSize])
}
Collapse.prototype.hide = function () {
if (this.transitioning || !this.$element.hasClass('in')) return
var startEvent = $.Event('hide.bs.collapse')
this.$element.trigger(startEvent)
if (startEvent.isDefaultPrevented()) return
var dimension = this.dimension()
this.$element[dimension](this.$element[dimension]())[0].offsetHeight
this.$element
.addClass('collapsing')
.removeClass('collapse in')
.attr('aria-expanded', false)
this.$trigger
.addClass('collapsed')
.attr('aria-expanded', false)
this.transitioning = 1
var complete = function () {
this.transitioning = 0
this.$element
.removeClass('collapsing')
.addClass('collapse')
.trigger('hidden.bs.collapse')
}
if (!$.support.transition) return complete.call(this)
this.$element
[dimension](0)
.one('bsTransitionEnd', $.proxy(complete, this))
.emulateTransitionEnd(Collapse.TRANSITION_DURATION)
}
Collapse.prototype.toggle = function () {
this[this.$element.hasClass('in') ? 'hide' : 'show']()
}
Collapse.prototype.getParent = function () {
return $(this.options.parent)
.find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]')
.each($.proxy(function (i, element) {
var $element = $(element)
this.addAriaAndCollapsedClass(getTargetFromTrigger($element), $element)
}, this))
.end()
}
Collapse.prototype.addAriaAndCollapsedClass = function ($element, $trigger) {
var isOpen = $element.hasClass('in')
$element.attr('aria-expanded', isOpen)
$trigger
.toggleClass('collapsed', !isOpen)
.attr('aria-expanded', isOpen)
}
function getTargetFromTrigger($trigger) {
var href
var target = $trigger.attr('data-target')
|| (href = $trigger.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
return $(target)
}
// COLLAPSE PLUGIN DEFINITION
// ==========================
function Plugin(option) {
return this.each(function () {
var $this = $(this)
var data = $this.data('bs.collapse')
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
}
var old = $.fn.collapse
$.fn.collapse = Plugin
$.fn.collapse.Constructor = Collapse
// COLLAPSE NO CONFLICT
// ====================
$.fn.collapse.noConflict = function () {
$.fn.collapse = old
return this
}
// COLLAPSE DATA-API
// =================
$(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
var $this = $(this)
if (!$this.attr('data-target')) e.preventDefault()
var $target = getTargetFromTrigger($this)
var data = $target.data('bs.collapse')
var option = data ? 'toggle' : $this.data()
Plugin.call($target, option)
})
}(jQuery);
This source diff could not be displayed because it is too large. You can view the blob instead.
/* ========================================================================
* Bootstrap: transition.js v3.3.7
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
* Copyright 2011-2016 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
+function ($) {
'use strict';
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
// ============================================================
function transitionEnd() {
var el = document.createElement('bootstrap')
var transEndEventNames = {
WebkitTransition : 'webkitTransitionEnd',
MozTransition : 'transitionend',
OTransition : 'oTransitionEnd otransitionend',
transition : 'transitionend'
}
for (var name in transEndEventNames) {
if (el.style[name] !== undefined) {
return { end: transEndEventNames[name] }
}
}
return false // explicit for ie8 ( ._.)
}
// http://blog.alexmaccaw.com/css-transitions
$.fn.emulateTransitionEnd = function (duration) {
var called = false
var $el = this
$(this).one('bsTransitionEnd', function () { called = true })
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
setTimeout(callback, duration)
return this
}
$(function () {
$.support.transition = transitionEnd()
if (!$.support.transition) return
$.event.special.bsTransitionEnd = {
bindType: $.support.transition.end,
delegateType: $.support.transition.end,
handle: function (e) {
if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
}
}
})
}(jQuery);
<%@page import="com.liferay.portal.kernel.servlet.SessionErrors"%>
<%@page import="java.util.List"%>
<%@page import="java.lang.String"%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>
<%@page import="javax.portlet.ActionRequest"%>
<%
boolean errArquivo = false;
boolean errVazio = false;
boolean errDataNula = false;
boolean errHorarioLimite = false;
String cssErro = "control-group error";
if(request.getAttribute("erroArquivo") != null){
errArquivo = (Boolean) request.getAttribute("erroArquivo");
}
if(request.getAttribute("erroVazio") != null){
errVazio = (Boolean) request.getAttribute("erroVazio");
}
if(request.getAttribute("erroDataNula") != null){
errDataNula = (Boolean) request.getAttribute("erroDataNula");
}
if(request.getAttribute("erroHorarioLimite") != null){
errHorarioLimite = (Boolean) request.getAttribute("erroHorarioLimite");
}
%>
<liferay-theme:defineObjects />
<portlet:defineObjects />
<h3><liferay-ui:message key="admin.form.agendamento.titulo"/></h3>
<hr />
<div class="texto-obs"><liferay-ui:message key="admin.form.agendamento.observacao"/></div>
<portlet:resourceURL var="submitURL">
<portlet:param name="caderno" value="geraCaderno"/>
</portlet:resourceURL>
<liferay-ui:success key="sucesso" message="Sua solicitao foi completada com sucesso!" />
<liferay-ui:error key="erro" message="Os campos do formulrio no foram preenchidos corretamente. Por favor, verifique e tente novamente." />
<form id="<portlet:namespace />formDO" name="<portlet:namespace />formDO" method="POST" enctype="multipart/form-data" action="<%=submitURL%>" >
<div id="campo-situacao" class="campo">
<label><liferay-ui:message key="admin.form.editar.situacao"/></label>
<select class="selectpicker" name="<portlet:namespace/>situacao" id="<portlet:namespace/>situacao" >
<option value="3">Validada</option>
<option value="6">Aprovada</option>
<option value="8">Divulgada</option>
</select>
<liferay-ui:error key="erroTipoMat" message="Uma Situao deve ser selecionada." />
</div>
<div class='campo <%=errDataNula || errHorarioLimite ? cssErro : "" %>' >
<label><liferay-ui:message key="admin.form.agendamento.data.divulgacao"/></label>
<div class="form-group">
<div class='input-group date' id='datepickeragendamento'>
<input class="form-control" name="<portlet:namespace/>dataP" id="<portlet:namespace/>dataP" onpaste="return false;" ondrop="return false;"/>
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>
</div>
<liferay-ui:error key="erroDataNula" message="Uma data deve ser selecionada." />
<liferay-ui:error key="erroHorarioLimite" message="O horrio limite para agendar divulgao para hoje foi ultrapassado (19h49)." />
</div>
<button type="submit" id="enviarFormDO" name="enviarFormDO" class="btn btn-primary">Gerar Caderno</button>
<button type="reset" id="limparFormDO" name="limparFormDO" class="btn btn-cancel">Limpar</button>
<button type="button" id="jobForm" name="jobForm" class="oculto" style="display: none">no aperte</button>
</form>
<portlet:resourceURL var="ocultoJob"><portlet:param name="parameter" value="jobOculto" /></portlet:resourceURL>
<portlet:resourceURL var="testAjaxResourceUrl"></portlet:resourceURL>
<script type="text/javascript">
var urlAjax = "<%=testAjaxResourceUrl%>";
var urlOculto = "<%=ocultoJob%>";
</script>
\ No newline at end of file
<%--
/**
* Copyright (c) 2000-2013 Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
--%>
<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %>
<portlet:defineObjects />
This is the <b>mprj-doerj-geracao-caderno-portlet</b>.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment