/impl/conf/language/MessageResourcesEvents.properties |
---|
3,4 → 3,4 |
# EVENTS MESSAGE RESOURCES |
# |
################################################################################ |
module.Events=Eventos |
/impl/conf/language/MessageResourcesCommon.properties |
---|
New file |
0,0 → 1,20 |
################################################################################ |
# |
# ANNOUNCEMENTS MESSAGE RESOURCES |
# |
################################################################################ |
search=Pesquisar |
search.form=Formulário de Pesquisa |
search.results=Resultados da Pesquisa |
search.next=Próxima Página |
search.previous=Página Anterior |
search.see.more=ver mais |
search.type.phrase=Frase Exacta |
search.type.any=Algumas Palavras |
search.type.all=Todas as Palavras |
search.no.results=Lamentamos mas não foram encontrados quaisquer resultados para a busca |
search.no.results.suggest=Sugestões |
search.no.results.suggest.1=Será que está a escolher mal as palavras? |
search.no.results.suggest.2=Será que deu um erro ortográfico? |
search.no.results.suggest.3=Será que está a usar demasiadas palavras chave? |
/impl/conf/language/MessageResourcesAnnouncements.properties |
---|
3,6 → 3,7 |
# ANNOUNCEMENTS MESSAGE RESOURCES |
# |
################################################################################ |
module.Announcements=Anúncios |
announcement.title=Titulo |
announcement.text=Texto |
/impl/conf/language/MessageResources.properties |
---|
89,7 → 89,8 |
fail.timer=Lamentamos o incomodo, mas a acção que tentou efectuar não pode ser executada nesta data. |
fail.authenticate=Falhou a autênticação |
#palavras comuns |
at=a |
#Menus |
site.title=Escola Superior de Tecnologia e Gestão |
administration=Administração |
220,6 → 221,7 |
submit=Entrar |
confirm=Confirmar |
add=Adicionar |
remove=Remover |
yes=Sim |
no=Não |
239,5 → 241,5 |
module.Proxy=Proxy |
/impl/conf/language/MessageResourcesBlog.properties |
---|
3,7 → 3,7 |
# ANNOUNCEMENTS MESSAGE RESOURCES |
# |
################################################################################ |
module.Blogs=Blogs |
blog.title=Titulo |
blog.description=Descrição |
blog.image=Imagem |
11,4 → 11,6 |
blog.created.success=Blog criado com sucesso |
blog.edited.success=Blog alterado com sucesso |
blog.status=Válido |
submit.blog=Criar um Blog |
blog.owner=Criado por |
/impl/conf/WEB-INF/struts/struts-blog.xml |
---|
1,13 → 1,13 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" |
"http://struts.apache.org/dtds/struts-config_1_3.dtd"> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
<form-beans> |
<form-bean type="pt.estgp.estgweb.web.form.blog.BlogForm" name="BlogForm"/> |
<form-bean type="pt.estgp.estgweb.web.form.blogs.BlogForm" name="BlogForm"/> |
</form-beans> |
<global-exceptions> |
24,22 → 24,23 |
<!--Authentication--> |
<action path="/startSubmitBlog" forward="/loadBlog.do?dispatch=start"/> |
<action path="/submitBlog" |
type="pt.estgp.estgweb.web.controllers.blog.BlogController" |
type="pt.estgp.estgweb.web.controllers.blogs.BlogsController" |
name="BlogForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.blog"> |
<forward name="success" path="page.welcome"/> |
input="page.submit.blog"> |
<forward name="success" path="page.load.blog"/> |
</action> |
<action path="/loadBlog" |
type="pt.estgp.estgweb.web.controllers.blog.BlogController" |
type="pt.estgp.estgweb.web.controllers.blogs.BlogsController" |
name="BlogForm" |
scope="request" |
parameter="dispatch" |
validate="false" |
input="page.blog"> |
input="page.welcome"> |
<forward name="success" path="page.load.blog"/> |
<forward name="submit" path="page.submit.blog"/> |
</action> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/struts-courseunits.xml |
---|
20,7 → 20,10 |
<action-mappings> |
<action path="/startTeste2" forward="page.separators.home"/> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/struts-default.xml |
---|
1,8 → 1,8 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" |
"http://struts.apache.org/dtds/struts-config_1_3.dtd"> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
142,7 → 142,8 |
/WEB-INF/struts/tiles-processworkflow.xml, |
/WEB-INF/struts/tiles-searchusers.xml, |
/WEB-INF/struts/tiles-urlstat.xml, |
/WEB-INF/struts/tiles-blog.xml"/> |
/WEB-INF/struts/tiles-blog.xml, |
/WEB-INF/struts/tiles-commons.xml"/> |
</plug-in> |
<plug-in className="org.apache.struts.validator.ValidatorPlugIn"> |
/impl/conf/WEB-INF/struts/tiles-processworkflow.xml |
---|
1,8 → 1,8 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://struts.apache.org/dtds/tiles-config_1_1.dtd"> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
/impl/conf/WEB-INF/struts/tiles-commons.xml |
---|
New file |
0,0 → 1,31 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
<definition name="page.search.form" extends="base.layout1"> |
<put name="title" value="Search Results"/> |
<put name="topnav" value="/public/search/topnavSearchForm.jsp"/> |
<put name="body" value="/public/search/searchForm.jsp"/> |
</definition> |
<definition name="page.search.results" extends="base.layout1"> |
<put name="title" value="Search Results"/> |
<put name="topnav" value="/public/search/topnavSearchResults.jsp"/> |
<put name="body" value="/public/search/searchResults.jsp"/> |
</definition> |
<definition name="page.search.noresults" extends="base.layout1"> |
<put name="title" value="0 Results Found"/> |
<put name="topnav" value="/public/search/topnavSearchResults.jsp"/> |
<put name="body" value="/public/search/noresults.jsp"/> |
</definition> |
<definition name="page.search.module" extends="base.empty"> |
<put name="body" value="/public/search/searchResultsModule.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/WEB-INF/struts/tiles-announcements.xml |
---|
1,8 → 1,8 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://struts.apache.org/dtds/tiles-config_1_1.dtd"> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
/impl/conf/WEB-INF/struts/struts-urlstat.xml |
---|
1,8 → 1,8 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" |
"http://struts.apache.org/dtds/struts-config_1_3.dtd"> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
/impl/conf/WEB-INF/struts/tiles-blog.xml |
---|
1,21 → 1,21 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://struts.apache.org/dtds/tiles-config_1_1.dtd"> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
<definition name="page.blog" extends="base.layout1"> |
<definition name="page.submit.blog" extends="base.layout1"> |
<put name="title" value="Create a Blog"/> |
<put name="body" value="/admin/blog/submitBlog.jsp"/> |
<put name="topnav" value="/admin/blogs/topnavCreateBlog.jsp"/> |
<put name="body" value="/admin/blogs/submitBlog.jsp"/> |
</definition> |
<definition name="page.load.blog" extends="base.layout1"> |
<put name="title" value="Create a Blog"/> |
<put name="body" value="/admin/blog/submitBlog.jsp"/> |
<put name="body" value="/public/blogs/blog.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/WEB-INF/struts/tiles-courseunits.xml |
---|
7,7 → 7,13 |
<tiles-definitions> |
<definition name="page.load.courseunits" extends="base.layout1"> |
<definition name="base.separators" extends="base.definition" path="/layout/layoutintranet.jsp"> |
<put name="separators" value="/layout/separators.jsp" /> |
</definition> |
<definition name="page.separators.home" extends="base.separators"> |
<put name="body" value="/user/home.jsp" /> |
</definition> |
</tiles-definitions> |
/impl/conf/WEB-INF/struts/tiles-default.xml |
---|
1,13 → 1,16 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!DOCTYPE tiles-definitions PUBLIC |
"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN" |
"http://struts.apache.org/dtds/tiles-config_1_1.dtd"> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
<!-- Templates Globais Tiles Definition --> |
<definition name="base.empty" path="/layout/emptyLayout.jsp"> |
</definition> |
<definition name="base.definition" path="/layout/siteLayout.jsp"> |
<put name="title" value="x"/> |
<put name="announcements" value="/layout/topnavempty.jsp"/> |
/impl/conf/WEB-INF/struts/struts-processworkflow.xml |
---|
1,8 → 1,8 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" |
"http://struts.apache.org/dtds/struts-config_1_3.dtd"> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
/impl/conf/WEB-INF/struts/struts-commons.xml |
---|
New file |
0,0 → 1,37 |
<?xml version="1.0" encoding="UTF-8"?> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
<form-beans> |
<form-bean type="pt.estgp.estgweb.web.form.commons.SearchForm" name="SearchForm"/> |
</form-beans> |
<global-exceptions> |
</global-exceptions> |
<global-forwards> |
</global-forwards> |
<action-mappings> |
<action path="/startSearch" name="SearchForm" scope="request" forward="page.search.form"/> |
<action path="/search" |
type="pt.estgp.estgweb.web.controllers.commons.CommonsController" |
name="SearchForm" |
scope="request" |
parameter="dispatch" |
input="page.search.form" |
validate="false"> |
<forward name="searchResults" path="page.search.results"/> |
<forward name="searchModule" path="page.search.module"/> |
<forward name="noresults" path="page.search.noresults"/> |
</action> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/struts/struts-announcements.xml |
---|
1,8 → 1,8 |
<?xml version="1.0" encoding="UTF-8"?> |
<!DOCTYPE struts-config PUBLIC |
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" |
"http://struts.apache.org/dtds/struts-config_1_3.dtd"> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
40,6 → 40,8 |
validate="false"> |
<forward name="success" path="page.welcome"/> |
<forward name="load" path="page.load.announcement"/> |
<forward name="submit" path="page.submit.announcement"/> |
</action> |
</action-mappings> |
/impl/conf/WEB-INF/web.xml |
---|
75,7 → 75,8 |
/WEB-INF/struts/struts-processworkflow.xml, |
/WEB-INF/struts/struts-searchusers.xml, |
/WEB-INF/struts/struts-urlstat.xml, |
/WEB-INF/struts/struts-blog.xml |
/WEB-INF/struts/struts-blog.xml, |
/WEB-INF/struts/struts-commons.xml |
</param-value> |
</init-param> |
<init-param> |
/impl/conf/app.properties |
---|
130,8 → 130,13 |
urlstat.chart.year.months=MMM-yy |
urlstat.chart.two.years.months=MMM-yy |
######################################################################### |
# Common Services |
# |
search.max.results=2 |
search.best.fragments.max.fragment.size=80 |
search.best.fragments.max.fragments=3 |
/impl/conf/berserk/sd.xml |
---|
179,7 → 179,7 |
<!--BLOGS--> |
<service> |
<name>CreateBlog</name> |
<implementationClass>pt.estgp.estgweb.services.blog.CreateBlogService</implementationClass> |
<implementationClass>pt.estgp.estgweb.services.blogs.CreateBlogService</implementationClass> |
<description>Create a Blog</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
188,5 → 188,40 |
<chain name="AuthenticatedUsers"/> |
</filterChains> |
</service> |
<service> |
<name>LoadBlog</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.LoadBlogService</implementationClass> |
<description>Load a Blog</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
<!--CommonServices--> |
<service> |
<name>AnnouncementsCommonServices</name> |
<implementationClass>pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices</implementationClass> |
<description>Common Services For Announcements</description> |
<defaultMethod>search</defaultMethod> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
<service> |
<name>BlogsCommonServices</name> |
<implementationClass>pt.estgp.estgweb.services.blogs.BlogsCommonServices</implementationClass> |
<description>Common Services For Blogs</description> |
<isTransactional>true</isTransactional> |
<filterChains> |
<chain name="Logger"/> |
<chain name="Session"/> |
</filterChains> |
</service> |
</serviceDefinitions> |
/impl/src/java/jomm/utils/TextToHTMLEnconder.java |
---|
New file |
0,0 → 1,78 |
package jomm.utils; |
/** |
* User: Jorge Machado machadofisher@gmail.com |
* Date: 8/Mai/2007 |
* Time: 17:38:50 |
* To change this template use File | Settings | File Templates. |
*/ |
public class TextToHTMLEnconder |
{ |
public String encodeText(String originalText) |
{ |
if(originalText==null) |
return null; |
return escapeHTML(originalText); |
} |
public static final String escapeHTML(String s) |
{ |
StringBuffer sb = new StringBuffer(); |
int n = s.length(); |
for (int i = 0; i < n; i++) |
{ |
char c = s.charAt(i); |
switch (c) |
{ |
case '<': sb.append("<"); break; |
case '>': sb.append(">"); break; |
case '&': sb.append("&"); break; |
case '"': sb.append("""); break; |
case 'à': sb.append("à");break; |
case 'À': sb.append("À");break; |
case 'â': sb.append("â");break; |
case 'Â': sb.append("Â");break; |
case 'ä': sb.append("ä");break; |
case 'Ä': sb.append("Ä");break; |
case 'å': sb.append("å");break; |
case 'Å': sb.append("Å");break; |
case 'æ': sb.append("æ");break; |
case 'Æ': sb.append("Æ");break; |
case 'ç': sb.append("ç");break; |
case 'Ç': sb.append("Ç");break; |
case 'é': sb.append("é");break; |
case 'É': sb.append("É");break; |
case 'è': sb.append("è");break; |
case 'È': sb.append("È");break; |
case 'ê': sb.append("ê");break; |
case 'Ê': sb.append("Ê");break; |
case 'ë': sb.append("ë");break; |
case 'Ë': sb.append("Ë");break; |
case 'ï': sb.append("ï");break; |
case 'Ï': sb.append("Ï");break; |
case 'ô': sb.append("ô");break; |
case 'Ô': sb.append("Ô");break; |
case 'ö': sb.append("ö");break; |
case 'Ö': sb.append("Ö");break; |
case 'ø': sb.append("ø");break; |
case 'Ø': sb.append("Ø");break; |
case 'ß': sb.append("ß");break; |
case 'ù': sb.append("ù");break; |
case 'Ù': sb.append("Ù");break; |
case 'û': sb.append("û");break; |
case 'Û': sb.append("Û");break; |
case 'ü': sb.append("ü");break; |
case 'Ü': sb.append("Ü");break; |
case '®': sb.append("®");break; |
case '©': sb.append("©");break; |
case '€': sb.append("€"); break; |
// be carefull with this one (non-breaking whitee space) |
case ' ': sb.append(" ");break; |
default: sb.append(c); break; |
} |
} |
return sb.toString(); |
} |
} |
/impl/src/java/jomm/ir/lucene/DiacriticFilter.java |
---|
New file |
0,0 → 1,65 |
package jomm.ir.lucene; |
import org.apache.lucene.analysis.TokenFilter; |
import org.apache.lucene.analysis.TokenStream; |
import org.apache.lucene.analysis.Token; |
import java.io.IOException; |
/** |
* @author Jorge Machado |
* @date 25/Abr/2008 |
* @time 14:55:22 |
* @see jomm.ir |
*/ |
public final class DiacriticFilter extends TokenFilter { |
public DiacriticFilter(TokenStream in) { |
super(in); |
} |
public final Token next() throws IOException { |
Token t = input.next(); |
if (t == null) |
return null; |
String r = ""; |
String value = t.termText(); |
for (int j=0 ; j < value.length() ; j++) { |
if ((value.charAt(j) == 'á') || |
(value.charAt(j) == 'â') || |
(value.charAt(j) == 'ã')) { |
r= r + "a" ; continue ; |
} |
if ((value.charAt(j) == 'é') || |
(value.charAt(j) == 'ê')) { |
r= r + "e" ; continue ; |
} |
if (value.charAt(j) == 'í') { |
r= r + "i" ; continue ; |
} |
if ((value.charAt(j) == 'ó') || |
(value.charAt(j) == 'ô') || |
(value.charAt(j) == 'õ')) { |
r= r + "o" ; continue ; |
} |
if ((value.charAt(j) == 'ú') || |
(value.charAt(j) == 'ü')) { |
r= r + "u" ; continue ; |
} |
if (value.charAt(j) == 'ç') { |
r= r + "c" ; continue ; |
} |
if (value.charAt(j) == 'ñ') { |
r= r + "n" ; continue ; |
} |
r= r+ value.charAt(j) ; |
} |
t.setTermText(r); |
return t; |
} |
} |
/impl/src/java/jomm/ir/lucene/BrazilianExtendedAnalyzer.java |
---|
New file |
0,0 → 1,157 |
package jomm.ir.lucene; |
/** |
* @author Jorge Machado |
* @date 25/Abr/2008 |
* @time 14:55:22 |
* @see jomm.ir |
*/ |
import org.apache.log4j.Logger; |
import org.apache.lucene.analysis.Analyzer; |
import org.apache.lucene.analysis.LowerCaseFilter; |
import org.apache.lucene.analysis.StopFilter; |
import org.apache.lucene.analysis.TokenStream; |
import org.apache.lucene.analysis.standard.StandardFilter; |
import org.apache.lucene.analysis.standard.StandardTokenizer; |
import java.io.Reader; |
import java.util.HashSet; |
import java.util.Hashtable; |
import java.util.Set; |
import jomm.ir.lucene.DiacriticFilter; |
/** |
* Analyzer for brazilian language. Supports an external list of stopwords (words that |
* will not be indexed at all) and an external list of exclusions (word that will |
* not be stemmed, but indexed). |
* |
* @author Jo�o Kramer |
*/ |
public class BrazilianExtendedAnalyzer extends Analyzer |
{ |
private static final Logger logger = Logger.getLogger(BrazilianExtendedAnalyzer.class); |
/** |
* List of typical german stopwords. |
*/ |
public final static String[] BRAZILIAN_STOP_WORDS = { |
"a","ainda","alem","ambas","ambos","antes", |
"ao","aonde","aos","apos","aquele","aqueles", |
"as","assim","com","como","contra","contudo", |
"cuja","cujas","cujo","cujos","da","das","de", |
"dela","dele","deles","demais","depois","desde", |
"desta","deste","dispoe","dispoem","diversa", |
"diversas","diversos","do","dos","durante","e", |
"ela","elas","ele","eles","em","entao","entre", |
"essa","essas","esse","esses","esta","estas", |
"este","estes","ha","isso","isto","logo","mais", |
"mas","mediante","menos","mesma","mesmas","mesmo", |
"mesmos","na","nas","nao","nas","nem","nesse","neste", |
"nos","o","os","ou","outra","outras","outro","outros", |
"pelas","pelas","pelo","pelos","perante","pois", |
"porque","portanto","proprio","propios","quais","qual", |
"qualquer","quando","quanto","que","quem","quer","se", |
"seja","sem","sendo","seu","seus","sob","sobre","sua", |
"suas","tal","tambem","teu","teus","toda","todas","todo", |
"todos","tua","tuas","tudo","um","uma","umas","uns"}; |
public static final String[] ENGLISH_STOP_WORDS = { |
"I","a","about","and","an","are","as","at","be","but", |
"by","com","de","en","for","from","how","if","into","in", |
"is","it","la","of","on","or","no","not","that","their","these", |
"they","then","there","they","s","such","t","the","this","to", |
"was","we","what","when","where","who","will","with","und", |
"the","www" |
}; |
public static final String[] BRAZILIAN_AND_ENGLISH_STOP_WORDS = { |
"a","ainda","alem","ambas","ambos","antes", |
"ao","aonde","aos","apos","aquele","aqueles", |
"as","assim","com","como","contra","contudo", |
"cuja","cujas","cujo","cujos","da","das","de", |
"dela","dele","deles","demais","depois","desde", |
"desta","deste","dispoe","dispoem","diversa", |
"diversas","diversos","do","dos","durante","e", |
"ela","elas","ele","eles","em","entao","entre", |
"essa","essas","esse","esses","esta","estas", |
"este","estes","ha","isso","isto","logo","mais", |
"mas","mediante","menos","mesma","mesmas","mesmo", |
"mesmos","na","nas","nao","nas","nem","nesse","neste", |
"nos","o","os","ou","outra","outras","outro","outros", |
"pelas","pelas","pelo","pelos","perante","pois", |
"porque","portanto","proprio","propios","quais","qual", |
"qualquer","quando","quanto","que","quem","quer","se", |
"seja","sem","sendo","seu","seus","sob","sobre","sua", |
"suas","tal","tambem","teu","teus","toda","todas","todo", |
"todos","tua","tuas","tudo","um","uma","umas","uns", |
"I","a","about","and","an","are","as","at","be","but", |
"by","com","de","en","for","from","how","if","into","in", |
"is","it","la","of","on","or","no","not","that","their","these", |
"they","then","there","they","s","such","t","the","this","to", |
"was","we","what","when","where","who","will","with","und", |
"the","www" |
}; |
/** |
* Contains the stopwords used with the StopFilter. |
*/ |
protected Set stoptable = new HashSet(); |
/** |
* Contains words that should be indexed but not stemmed. |
*/ |
/** |
* Builds an analyzer with the default stop words ({@link #BRAZILIAN_STOP_WORDS}). |
*/ |
public BrazilianExtendedAnalyzer() |
{ |
stoptable = StopFilter.makeStopSet(BRAZILIAN_AND_ENGLISH_STOP_WORDS); |
} |
/** |
* Builds an analyzer with the given stop words. |
*/ |
public BrazilianExtendedAnalyzer( String[] stopwords ) { |
stoptable = StopFilter.makeStopSet( stopwords ); |
} |
/** |
* Builds an analyzer with the given stop words. |
*/ |
public BrazilianExtendedAnalyzer( Hashtable stopwords ) { |
stoptable = new HashSet(stopwords.keySet()); |
} |
/** |
* Creates a TokenStream which tokenizes all the text in the provided Reader. |
* |
* @return A TokenStream build from a StandardTokenizer filtered with |
* StandardFilter, StopFilter, GermanStemFilter and LowerCaseFilter. |
*/ |
public final TokenStream tokenStream(String fieldName, Reader reader) |
{ |
TokenStream result = new StandardTokenizer( reader ); |
result = new StandardFilter( result ); |
result = new LowerCaseFilter( result ); |
result = new DiacriticFilter(result); |
result = new StopFilter( result, stoptable ); |
return result; |
} |
public static void main(String [] args){ |
} |
} |
/impl/src/java/jomm/ir/lucene/HighlightFormatter.java |
---|
New file |
0,0 → 1,29 |
package jomm.ir.lucene; |
/** |
* @author Jorge Machado |
* @date 25/Abr/2008 |
* @time 14:55:22 |
* @see jomm.ir |
*/ |
import org.apache.lucene.search.highlight.Formatter; |
import org.apache.lucene.search.highlight.TokenGroup; |
public class HighlightFormatter implements Formatter |
{ |
public String highlightTerm(String originalText, TokenGroup group) |
{ |
if(group.getTotalScore()<=0) |
{ |
return originalText; |
} |
return highlightTerm(originalText); |
} |
public static String highlightTerm(String originalText) { |
return "<b><i>" + originalText + "</i></b>"; |
} |
} |
/impl/src/java/jomm/ir/lucene/LuceneUtils.java |
---|
New file |
0,0 → 1,98 |
package jomm.ir.lucene; |
import org.apache.log4j.Logger; |
import org.apache.lucene.analysis.Analyzer; |
import org.apache.lucene.analysis.TokenStream; |
import org.apache.lucene.queryParser.ParseException; |
import org.apache.lucene.queryParser.QueryParser; |
import org.apache.lucene.search.Query; |
import org.apache.lucene.search.highlight.Highlighter; |
import org.apache.lucene.search.highlight.QueryScorer; |
import org.apache.lucene.search.highlight.SimpleFragmenter; |
import java.io.StringReader; |
/** |
* Created by IntelliJ IDEA. |
* User: User |
* DateMonthYearArticles: 26/Jan/2005 |
* Time: 12:08:10 |
* To change this template use File | Settings | File Templates. |
*/ |
public class LuceneUtils |
{ |
private static Logger logger = Logger.getLogger(LuceneUtils.class); |
private static Analyzer analyzer = (Analyzer) new BrazilianExtendedAnalyzer(); |
public static Query getQuery(String queryStr, String field, Analyzer analyzer) throws ParseException |
{ |
try |
{ |
QueryParser parser; |
if(field == null) |
parser = new QueryParser("contents",analyzer); |
else |
parser = new QueryParser(field,analyzer); |
return parser.parse(queryStr); |
} |
catch(ParseException e) |
{ |
logger.error("Bad query: " + queryStr); |
throw e; |
} |
} |
public static LuceceTextToHTMLEncoder textToHTMLEnconder = new LuceceTextToHTMLEncoder() |
{ |
public String encodeText(String textToEncode) |
{ |
if(textToEncode != null) |
{ |
return super.encodeText(textToEncode).replaceAll(" "," "); |
} |
return null; |
} |
}; |
public static HighlightFormatter highlightFormatter = new HighlightFormatter(); |
public static String highlight(String text, String queryStr) throws Exception |
{ |
return doStandardHighlights(text,queryStr,10000,1); |
} |
public static String doStandardHighlights(String text, String queryStr, int fragmentSize, int maxfragments) throws Exception |
{ |
if(text != null) |
{ |
Query query = getQuery(queryStr,null,analyzer); |
Highlighter highlighter = new Highlighter(highlightFormatter,textToHTMLEnconder,new QueryScorer(query)); |
highlighter.setTextFragmenter(new SimpleFragmenter(fragmentSize)); |
String fragmentSeparator = " ... "; |
TokenStream tokenStream = analyzer.tokenStream(null,new StringReader(text)); |
String result = |
highlighter.getBestFragments( |
tokenStream, |
text, |
maxfragments, |
fragmentSeparator); |
if(result.startsWith(")") || result.startsWith("]") || result.startsWith(",") || result.startsWith(";") || result.startsWith(".")) |
result = result.substring(1); |
return result; |
} |
return null; |
} |
public static void main(String [] args) throws Exception |
{ |
System.out.println(LuceneUtils.highlight("eu sou o jorge machado e amo muito a leila o amor da minha vida que eu mais amo que tudo\n e tudo o que eu mais amo é ela e mais ninguém amo como ela","ela é o amor da vida ninguém")); |
} |
} |
/impl/src/java/jomm/ir/lucene/LuceceTextToHTMLEncoder.java |
---|
New file |
0,0 → 1,18 |
package jomm.ir.lucene; |
/** |
* @author Jorge Machado |
* @date 25/Abr/2008 |
* @time 14:23:27 |
* @see jomm.ir.lucene |
*/ |
import org.apache.lucene.search.highlight.Encoder; |
import jomm.utils.TextToHTMLEnconder; |
/** |
* Just need to extend TextToHtmlEncoder to implement Encoder Interface |
*/ |
public class LuceceTextToHTMLEncoder extends TextToHTMLEnconder implements Encoder |
{ |
} |
/impl/src/java/pt/estgp/estgweb/Globals.java |
---|
10,10 → 10,14 |
* @time 12:51:32 |
* @see pt.estgp.estgweb |
*/ |
public class Globals |
{ |
public class Globals { |
public static final String ALL_ROLE = ConfigProperties.getProperty("user.super");; |
public static final int SEARCH_MAX_RESULTS = ConfigProperties.getIntProperty("search.max.results"); |
public static final int SEARCH_BEST_FRAGMENTS_MAX_FRAGMENT_SIZE = ConfigProperties.getIntProperty("search.best.fragments.max.fragment.size"); |
public static final int SEARCH_BEST_FRAGMENTS_MAX_FRAGMENTS = ConfigProperties.getIntProperty("search.best.fragments.max.fragments"); |
public static final String ALL_ROLE = ConfigProperties.getProperty("user.super"); |
public static final String ACTUAL_RELATIVE_PATH = "ACTUAL_RELATIVE_PATH"; |
public static final String ADMIN_ROLE = ConfigProperties.getProperty("user.admin"); |
public static final String SUPER_USER_ROLE = ConfigProperties.getProperty("user.super"); |
25,10 → 29,10 |
public static final String ANNOUNCEMENT_TYPE_NEWS = "news"; |
public static final String ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS = "top.flash.news"; |
public static final String ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS = "bottom.flash.news"; |
public static final int NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX=5; |
public static final int NUMBER_ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_INDEX=1; |
public static final int NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX=2; |
public static final int ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT=ConfigProperties.getIntProperty("announcements.top.flash.news.timeout.miliseconds"); |
public static final int NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX = 5; |
public static final int NUMBER_ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_INDEX = 1; |
public static final int NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX = 2; |
public static final int ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT = ConfigProperties.getIntProperty("announcements.top.flash.news.timeout.miliseconds"); |
public static List<String> USER_ROLES = ConfigProperties.getListValues("user.role"); |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/BlogsCommonServices.java |
---|
New file |
0,0 → 1,46 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.common.IModuleCommonServices; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.services.common.IToDoCat; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.announcements.AnnouncementsCommonServices; |
import pt.estgp.estgweb.domain.UserSession; |
import org.apache.log4j.Logger; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class BlogsCommonServices implements IService, IModuleCommonServices |
{ |
private static final Logger logger = Logger.getLogger(BlogsCommonServices.class); |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
} |
public int countToDo(UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public IToDoCat getToDo(UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/LoadBlogService.java |
---|
New file |
0,0 → 1,34 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import org.apache.log4j.Logger; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class LoadBlogService implements IService |
{ |
private static final Logger logger = Logger.getLogger(LoadBlogService.class); |
public BlogView run(Long id, UserSession userSession) throws ServiceException |
{ |
DaoFactory.getBlogDaoImpl().get(id); |
return new BlogView(DaoFactory.getBlogDaoImpl().get(id)); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/blogs/CreateBlogService.java |
---|
New file |
0,0 → 1,41 |
package pt.estgp.estgweb.services.blogs; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.util.Date; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
public class CreateBlogService implements IService |
{ |
private static final Logger logger = Logger.getLogger(CreateBlogService.class); |
public BlogView run(Blog b, UserSession userSession) throws ServiceException |
{ |
if(b.getTargetRoles() == null || b.getTargetRoles().length() == 0) |
b.setTargetRoles(Globals.ALL_ROLE); |
b.setOwner(userSession.getUser()); |
b.setSaveDate(new Date()); |
DaoFactory.getBlogDaoImpl().save(b); |
return new BlogView(b); |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ISearchResults.java |
---|
New file |
0,0 → 1,25 |
package pt.estgp.estgweb.services.common; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:57:52 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface ISearchResults |
{ |
public ModuleEnum getModule(); |
public List<IResult> getResults(); |
public int getTotalResults(); |
public int getPage(); |
public int getPage2Screen(); |
public boolean getHasNextPage(); |
public boolean getHasPreviousPage(); |
public int getNextPage(); |
public int getPreviousPage(); |
public int getMaxResultsPage(); |
public String getQuery(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/CommonSearchResults.java |
---|
New file |
0,0 → 1,45 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.ICommonSearchResults; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:51:32 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class CommonSearchResults implements ICommonSearchResults |
{ |
private List<ISearchResults> results; |
private int totalResults = 0; |
public List<ISearchResults> getSearchResults() |
{ |
return results; |
} |
public int getTotalResults() |
{ |
return totalResults; |
} |
public void setResults(List<ISearchResults> results) |
{ |
this.results = results; |
} |
public void setTotalResults(int totalResults) |
{ |
this.totalResults = totalResults; |
} |
public void addMoreResults(int totalResults) |
{ |
this.totalResults += totalResults; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultToDoCat.java |
---|
New file |
0,0 → 1,32 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.IToDoCat; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:16:52 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class DefaultToDoCat implements IToDoCat |
{ |
private String url; |
private int totalToDo; |
public String getUrl() { |
return url; |
} |
public void setUrl(String url) { |
this.url = url; |
} |
public int getTotalToDo() { |
return totalToDo; |
} |
public void setTotalToDo(int totalToDo) { |
this.totalToDo = totalToDo; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultResult.java |
---|
New file |
0,0 → 1,92 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.IResult; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:13:08 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class DefaultResult implements IResult |
{ |
private String title; |
private String subTitle; |
private String bestFragments; |
private String text; |
private String url; |
private boolean titleKey = false; |
private boolean subTitleKey = false; |
private boolean textKey = false; |
public DefaultResult() { |
} |
public void setTitle(String title) { |
this.title = title; |
} |
public void setUrl(String url) { |
this.url = url; |
} |
public void setText(String text) { |
this.text = text; |
} |
public void setBestFragments(String bestFragments) { |
this.bestFragments = bestFragments; |
} |
public String getTitle() { |
return title; |
} |
public void setSubTitle(String subTitle) { |
this.subTitle = subTitle; |
} |
public String getSubTitle() { |
return subTitle; |
} |
public String getBestFragments() { |
return bestFragments; |
} |
public String getText() { |
return text; |
} |
public String getUrl() { |
return url; |
} |
public boolean isTitleKey() { |
return titleKey; |
} |
public void setTitleKey(boolean titleKey) { |
this.titleKey = titleKey; |
} |
public boolean isTextKey() { |
return textKey; |
} |
public void setTextKey(boolean textKey) { |
this.textKey = textKey; |
} |
public boolean isSubTitleKey() { |
return subTitleKey; |
} |
public void setSubTitleKey(boolean subTitleKey) { |
this.subTitleKey = subTitleKey; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/impl/DefaultSearchResults.java |
---|
New file |
0,0 → 1,120 |
package pt.estgp.estgweb.services.common.impl; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.common.ModuleEnum; |
import pt.estgp.estgweb.services.common.IResult; |
import java.util.List; |
import java.util.ArrayList; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 16:15:32 |
* @see pt.estgp.estgweb.services.common.impl |
*/ |
public class DefaultSearchResults implements ISearchResults |
{ |
private ModuleEnum module; |
private List<IResult> results; |
private int totalResults; |
private int page; |
private int maxResultsPage; |
private String query; |
private String searchType; |
public ModuleEnum getModule() { |
return module; |
} |
public void setModule(ModuleEnum module) { |
this.module = module; |
} |
public List<IResult> getResults() { |
return results; |
} |
public void setResults(List<IResult> results) { |
this.results = results; |
} |
public int getTotalResults() { |
return totalResults; |
} |
public void setTotalResults(int totalResults) { |
this.totalResults = totalResults; |
} |
public int getMaxResultsPage() { |
return maxResultsPage; |
} |
public void setMaxResultsPage(int maxResultsPage) { |
this.maxResultsPage = maxResultsPage; |
} |
public void addResult(IResult result) |
{ |
if(results == null) |
results = new ArrayList<IResult>(); |
results.add(result); |
} |
public int getPage() { |
return page; |
} |
public int getPage2Screen() { |
return page + 1; |
} |
public boolean getHasNextPage() |
{ |
int size = 0; |
if(results != null) |
size = results.size(); |
return page*maxResultsPage + size < totalResults; |
} |
public boolean getHasPreviousPage() |
{ |
return page > 0; |
} |
public int getNextPage() |
{ |
return page + 1; |
} |
public int getPreviousPage() |
{ |
return page - 1; |
} |
public void setPage(int page) { |
this.page = page; |
} |
public String getQuery() { |
return query; |
} |
public void setQuery(String query) { |
this.query = query; |
} |
public String getSearchType() { |
return searchType; |
} |
public void setSearchType(String searchType) { |
this.searchType = searchType; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/IToDoCat.java |
---|
New file |
0,0 → 1,13 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:00:05 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface IToDoCat |
{ |
public String getUrl(); |
public int getTotalToDo(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/CommonServicesManager.java |
---|
New file |
0,0 → 1,263 |
package pt.estgp.estgweb.services.common; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.web.exceptions.NotAuthorizedException; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.services.common.impl.CommonSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.filterManager.exceptions.*; |
import java.util.List; |
import java.util.ArrayList; |
import org.apache.log4j.Logger; |
import javax.servlet.http.HttpServletRequest; |
import jomm.ir.lucene.LuceneUtils; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:55:22 |
* @see pt.estgp.estgweb.services.common |
*/ |
public class CommonServicesManager { |
private static final int SEARCH_FRAGMENT_SIZE = Globals.SEARCH_BEST_FRAGMENTS_MAX_FRAGMENT_SIZE; |
private static final int SEARCH_MAX_FRAGMENTS = Globals.SEARCH_BEST_FRAGMENTS_MAX_FRAGMENTS; |
private static final int SEARCH_MAX_RESULTS = Globals.SEARCH_MAX_RESULTS; |
private static final Logger logger = Logger.getLogger(CommonServicesManager.class); |
private static CommonServicesManager ourInstance = new CommonServicesManager(); |
public static CommonServicesManager getInstance() { |
return ourInstance; |
} |
private CommonServicesManager() { |
} |
/** |
* @param request asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @return Cluster of Results for each Module with total module results, only return modules with results |
* @throws Throwable on notAuthorized or internal error |
*/ |
public ICommonSearchResults search(HttpServletRequest request, String query, SearchTypeEnum searchType) throws Throwable { |
return search(RequestUtils.getRequester(request), query, searchType); |
} |
/** |
* @param requester asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @return Cluster of Results for each Module with total module results, only return modules with results |
* @throws Throwable on notAuthorized or internal error |
*/ |
public ICommonSearchResults search(String requester, String query, SearchTypeEnum searchType) throws Throwable { |
if(searchType == null) |
searchType = SearchTypeEnum.AllWords; |
CommonSearchResults commonSearchResults = new CommonSearchResults(); |
List<ISearchResults> results = new ArrayList<ISearchResults>(); |
for (ModuleEnum module : ModuleEnum.values()) { |
if (module.getServiceName() != null) { |
ISearchResults iSearchResults = search(requester, query, searchType, module, 0); |
if (iSearchResults.getTotalResults() > 0) { |
results.add(iSearchResults); |
commonSearchResults.addMoreResults(iSearchResults.getTotalResults()); |
} |
} |
} |
commonSearchResults.setResults(results); |
return commonSearchResults; |
} |
/** |
* The service called inside implements method |
* <p/> |
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
* |
* @param request asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @param moduleKey to search in |
* @param page of start result |
* @return searchResults |
* @throws Throwable on not authorized and internal error |
*/ |
public ISearchResults search(HttpServletRequest request, String query, SearchTypeEnum searchType, String moduleKey, int page) throws Throwable { |
return search(RequestUtils.getRequester(request), query, searchType, ModuleEnum.parse(moduleKey), page); |
} |
/** |
* The service called inside implements method |
* <p/> |
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
* |
* @param requester asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @param moduleKey to search in |
* @param page of start result |
* @return searchResults |
* @throws Throwable on not authorized and internal error |
*/ |
public ISearchResults search(String requester, String query, SearchTypeEnum searchType, String moduleKey, int page) throws Throwable { |
return search(requester, query, searchType, ModuleEnum.parse(moduleKey), page); |
} |
/** |
* The service called inside implements method |
* <p/> |
* public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
* |
* @param requester asking |
* @param query to execute |
* @param searchType see SearchTypeEnum |
* @param moduleKey to search in |
* @param page of start result |
* @return searchResults |
* @throws Throwable on not authorized and internal error |
*/ |
public ISearchResults search(String requester, String query, SearchTypeEnum searchType, ModuleEnum moduleKey, int page) throws Throwable { |
IServiceManager sm; |
try { |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{query, searchType, page, SEARCH_MAX_RESULTS}; |
DefaultSearchResults searchResults = (DefaultSearchResults) sm.execute(requester, moduleKey.getServiceName(), "search", args, names); |
searchResults.setPage(page); |
searchResults.setMaxResultsPage(SEARCH_MAX_RESULTS); |
searchResults.setQuery(query.replace("'"," ")); |
searchResults.setSearchType(searchType.getMessageKey()); |
if(searchResults.getTotalResults() > 0) |
{ |
for(IResult result: searchResults.getResults()) |
{ |
DefaultResult defaultResult = (DefaultResult) result; |
defaultResult.setBestFragments(LuceneUtils.doStandardHighlights(defaultResult.getText(),query,SEARCH_FRAGMENT_SIZE,SEARCH_MAX_FRAGMENTS)); |
if(!defaultResult.isTitleKey()) |
{ |
String title = defaultResult.getTitle(); |
defaultResult.setTitle(LuceneUtils.highlight(defaultResult.getTitle(),query)); |
if(defaultResult.getTitle() == null || defaultResult.getTitle().length() == 0) |
defaultResult.setTitle(title); |
} |
if(!defaultResult.isSubTitleKey()) |
{ |
String subTitle = defaultResult.getSubTitle(); |
defaultResult.setSubTitle(LuceneUtils.highlight(defaultResult.getSubTitle(),query)); |
if(defaultResult.getSubTitle() == null || defaultResult.getSubTitle().length() == 0) |
defaultResult.setSubTitle(subTitle); |
} |
String text = defaultResult.getText(); |
defaultResult.setText(LuceneUtils.highlight(defaultResult.getText(),query)); |
if(defaultResult.getText() == null || defaultResult.getText().length() == 0) |
defaultResult.setText(text); |
} |
} |
return searchResults; |
} |
catch (FilterRetrieveException e) { |
logger.error(e, e); |
throw new NotAuthorizedException(e.toString()); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public List<IToDoCat> getToDoCats(String requester) throws Throwable { |
List<IToDoCat> toDoCats = new ArrayList<IToDoCat>(); |
for (ModuleEnum module : ModuleEnum.values()) { |
if (module.getServiceName() != null) { |
IToDoCat toDoCat = getToDoCats(requester, module); |
if (toDoCat != null) { |
toDoCats.add(toDoCat); |
} |
} |
} |
return toDoCats; |
} |
public IToDoCat getToDoCats(HttpServletRequest request, String moduleKey) throws Throwable { |
return getToDoCats(RequestUtils.getRequester(request), ModuleEnum.parse(moduleKey)); |
} |
public IToDoCat getToDoCats(HttpServletRequest request, ModuleEnum module) throws Throwable { |
return getToDoCats(RequestUtils.getRequester(request), module); |
} |
/** |
* |
* @param requester asking |
* @param module to search |
* @return Number of ToDos in given module |
* @throws Throwable on Error or NotAuthorized Exception |
*/ |
public IToDoCat getToDoCats(String requester, ModuleEnum module) throws Throwable { |
IServiceManager sm; |
try { |
sm = ServiceManager.getInstance(); |
String[] names = new String[]{}; |
Object[] args = new Object[]{}; |
return (IToDoCat) sm.execute(requester, module.getServiceName(), "getToDo", args, names); |
} |
catch (FilterRetrieveException e) { |
logger.error(e, e); |
throw new NotAuthorizedException(e.toString()); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public static void main(String[] args) throws Throwable |
{ |
ICommonSearchResults commonSearchResults = new CommonServicesManager().search("18D0D23A7C07FF478CE8DAFEBA58D37A","teste",SearchTypeEnum.AllWords); |
for(ISearchResults searchResults: commonSearchResults.getSearchResults()) |
{ |
System.out.println("-----------------------------------------------------"); |
System.out.println("Module" + searchResults.getModule().getMessageKey()); |
for(IResult result: searchResults.getResults()) |
{ |
System.out.println(""); |
System.out.println("\ttitle:" +result.getTitle()); |
System.out.println("\tsubTitle:" +result.getSubTitle()); |
System.out.println("\ttext:" +result.getText()); |
System.out.println("\turl:" + result.getUrl()); |
System.out.println("\tbestFragments:" + result.getBestFragments()); |
} |
System.out.println("NEXT PAGE TEST>>>>>>>>>>>>>>>>>>>"); |
ISearchResults searchResults2 = new CommonServicesManager().search("18D0D23A7C07FF478CE8DAFEBA58D37A","teste",SearchTypeEnum.AllWords,searchResults.getModule(),1); |
for(IResult result2: searchResults2.getResults()) |
{ |
System.out.println(""); |
System.out.println("\ttitle:" +result2.getTitle()); |
System.out.println("\tsubTitle:" +result2.getSubTitle()); |
System.out.println("\ttext:" +result2.getText()); |
System.out.println("\turl:" + result2.getUrl()); |
System.out.println("\tbestFragments:" + result2.getBestFragments()); |
} |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/IResult.java |
---|
New file |
0,0 → 1,19 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:58:03 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface IResult |
{ |
public String getTitle(); |
public boolean isTitleKey(); |
public String getSubTitle(); |
public boolean isSubTitleKey(); |
public String getBestFragments(); |
public String getText(); |
public boolean isTextKey(); |
public String getUrl(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ICommonSearchResults.java |
---|
New file |
0,0 → 1,15 |
package pt.estgp.estgweb.services.common; |
import java.util.List; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:56:54 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface ICommonSearchResults |
{ |
public List<ISearchResults> getSearchResults(); |
public int getTotalResults(); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/ModuleEnum.java |
---|
New file |
0,0 → 1,46 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:00:27 |
* @see pt.estgp.estgweb.services.common |
*/ |
public enum ModuleEnum |
{ |
Announcements("module.Announcements","AnnouncementsCommonServices"), |
Events("module.Events",null), |
Blogs("module.Blogs",null), |
Proxy("module.Proxy",null); |
String messageKey; |
String serviceName; |
private ModuleEnum(String messageKey, String serviceName) |
{ |
this.messageKey = messageKey; |
this.serviceName = serviceName; |
} |
public static ModuleEnum parse(String messageKey) |
{ |
for(ModuleEnum module: values()) |
{ |
if(messageKey.equals(module.getMessageKey())) |
return module; |
} |
return null; |
} |
public String getMessageKey() |
{ |
return messageKey; |
} |
public String getServiceName() |
{ |
return serviceName; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/common/IModuleCommonServices.java |
---|
New file |
0,0 → 1,20 |
package pt.estgp.estgweb.services.common; |
import pt.estgp.estgweb.domain.UserSession; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 14:59:16 |
* @see pt.estgp.estgweb.services.common |
*/ |
public interface IModuleCommonServices |
{ |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession); |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession); |
public int countToDo(UserSession userSession); |
public IToDoCat getToDo(UserSession userSession); |
} |
/impl/src/java/pt/estgp/estgweb/services/common/SearchTypeEnum.java |
---|
New file |
0,0 → 1,37 |
package pt.estgp.estgweb.services.common; |
/** |
* @author Jorge Machado |
* @date 24/Abr/2008 |
* @time 15:00:50 |
* @see pt.estgp.estgweb.services.common |
*/ |
public enum SearchTypeEnum |
{ |
ExactPhrase("search.type.phrase"), |
AnyWord("search.type.any"), |
AllWords("search.type.all"); |
String messageKey; |
private SearchTypeEnum(String messageKey) |
{ |
this.messageKey = messageKey; |
} |
public static SearchTypeEnum parse(String messageKey) |
{ |
for(SearchTypeEnum searchTypeEnum: values()) |
{ |
if(messageKey.equals(searchTypeEnum.getMessageKey())) |
return searchTypeEnum; |
} |
return null; |
} |
public String getMessageKey() |
{ |
return messageKey; |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java |
---|
3,16 → 3,25 |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.Image; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.RoleManager; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm; |
import java.util.Date; |
import java.util.List; |
import java.io.InputStream; |
import java.io.ByteArrayOutputStream; |
import java.io.Serializable; |
import org.apache.log4j.Logger; |
import org.apache.struts.upload.FormFile; |
import jomm.dao.impl.AbstractDao; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
35,19 → 44,86 |
private static final String ALL_ROLE = Globals.ALL_ROLE; |
public AnnouncementView run(Announcement announcement, UserSession userSession) |
public AnnouncementView run(AnnouncementView announcementView, Image imageBig, Image imageSmall, UserSession userSession) |
{ |
if(announcement.getTargetRoles() == null || announcement.getTargetRoles().length() == 0) |
announcement.setTargetRoles(ALL_ROLE); |
announcement.setOwner(userSession.getUser()); |
announcement.setSaveDate(new Date()); |
Announcement a = null; |
if(announcementView.getId() <= 0) |
{ |
a = DomainObjectFactory.createAnnouncementImpl(); |
announcementView.persistViewInObject(a); |
a.setOwner(userSession.getUser()); |
a.setSaveDate(new Date()); |
a.setBigImage(imageBig); |
a.setSmallImage(imageSmall); |
if(a.getTargetRoles() == null || a.getTargetRoles().length() == 0) |
a.setTargetRoles(ALL_ROLE); |
} |
else |
{ |
a= DaoFactory.getAnnouncementDaoImpl().get(announcementView.getSerializable()); |
if(imageBig!=null) |
{ |
try |
{ |
DaoFactory.getImageDaoImpl().delete(a.getBigImage().getId()); |
} |
catch(Exception e) |
{ |
logger.info("Announcement:" + announcementView.getId() + "do not have imageBig!"); |
} |
announcementView.setBigImage(imageBig); |
} |
else |
{ |
try |
{ |
imageBig= new ImageDaoImpl().get(a.getBigImage().getId()); |
announcementView.setBigImage(imageBig); |
} |
catch(Exception e) |
{ |
logger.info("ImageBig form announcement:" + announcementView.getId() + "do not exist!"); |
} |
} |
if(imageSmall!=null) |
{ |
try |
{ |
DaoFactory.getImageDaoImpl().delete(a.getSmallImage().getId()); |
} |
catch(Exception e) |
{ |
logger.info("Announcement:" + announcementView.getId() + "do not have smallBig!"); |
} |
announcementView.setSmallImage(imageSmall); |
} |
else |
{ |
try |
{ |
imageSmall= new ImageDaoImpl().get(a.getSmallImage().getId()); |
announcementView.setSmallImage(imageSmall); |
} |
catch(Exception e) |
{ |
logger.info("ImageSmall form announcement:" + announcementView.getId() + "do not exist!"); |
} |
} |
announcementView.persistViewInObject(a); |
if(announcementView.getTargetRoles() == null || announcementView.getTargetRoles().size() == 0) |
a.setTargetRoles(ALL_ROLE); |
} |
if(RoleManager.hasRole(userSession.getUser(),Globals.AUTOMATIC_VALIDATION_ROLES)) |
announcement.setStatus(true); |
a.setStatus(true); |
else |
{ |
String[] userRoles=announcement.getChoosedOwnerRole().split(","); |
String[] userRoles=a.getChoosedOwnerRole().split(","); |
Boolean validation=false; |
for(String role: userRoles) |
60,9 → 136,9 |
String userAutoValitation=ConfigProperties.getProperty(validationTargets); |
String[] userAutoValitationRoles=userAutoValitation.split(","); |
int validTargetRoles=0; |
if(announcement.getTargetRoles().contains(",")) |
if(a.getTargetRoles().contains(",")) |
{ |
String[] targetRolesAnnouncementSplited=announcement.getTargetRoles().split(","); |
String[] targetRolesAnnouncementSplited=a.getTargetRoles().split(","); |
//Percorre os targets todos a quem se destina |
for(String target: targetRolesAnnouncementSplited) |
70,7 → 146,7 |
//Percorre todos os validation targets |
for(String userTargetRoles: userAutoValitationRoles) |
{ |
//Se o target a quem se destina constar na lista dos validation targets então incrementa |
//Se o target a quem se destina constar na lista dos validation targets então incrementa |
//o validTargetRoles |
if(target.equals(userTargetRoles)) |
{ |
87,14 → 163,14 |
String[] userAutoValitationTypes=userAutoTypes.split(","); |
for(String types: userAutoValitationTypes) |
{ |
if(types.equals(announcement.getType())) |
if(types.equals(a.getType())) |
validation=true; |
} |
} |
} |
else |
{ |
String targetRolesAnnouncement=announcement.getTargetRoles(); |
String targetRolesAnnouncement=a.getTargetRoles(); |
//Percorre todos os validation targets |
for(String userTargetRoles: userAutoValitationRoles) |
{ |
110,7 → 186,7 |
String[] userAutoValitationTypes=userAutoTypes.split(","); |
for(String types: userAutoValitationTypes) |
{ |
if(types.equals(announcement.getType())) |
if(types.equals(a.getType())) |
validation=true; |
} |
} |
119,11 → 195,19 |
catch(Exception e){} |
} |
} |
announcement.setStatus(validation); |
a.setStatus(validation); |
} |
DaoFactory.getAnnouncementDaoImpl().save(announcement); |
logger.info("Creating announcement:" + announcement.getId()); |
return new AnnouncementView(announcement); |
if(announcementView.getId() <= 0) |
{ |
DaoFactory.getAnnouncementDaoImpl().save(a); |
logger.info("Creating announcement:" + a.getId()); |
return new AnnouncementView(a); |
} |
else |
{ |
logger.info("Updating announcement:" + a.getId()); |
return new AnnouncementView(a); |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/services/announcements/AnnouncementsCommonServices.java |
---|
New file |
0,0 → 1,94 |
package pt.estgp.estgweb.services.announcements; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.estgp.estgweb.domain.UserSession; |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.UserImpl; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.services.common.*; |
import pt.estgp.estgweb.services.common.impl.DefaultSearchResults; |
import pt.estgp.estgweb.services.common.impl.DefaultResult; |
import pt.estgp.estgweb.Globals; |
import org.apache.log4j.Logger; |
import java.io.Serializable; |
import java.util.List; |
import java.util.ArrayList; |
import jomm.dao.impl.AbstractDao; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
* |
* Created at 17/Out/2003 , 23:45:24 |
* |
*/ |
/** |
* @author Jorge Machado |
* <p/> |
* <p/> |
* Created at 17/Out/2003 , 23:45:24 |
*/ |
public class AnnouncementsCommonServices implements IService, IModuleCommonServices { |
private static final Logger logger = Logger.getLogger(AnnouncementsCommonServices.class); |
public int countSearch(String search, SearchTypeEnum searchType, UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public ISearchResults search(String search, SearchTypeEnum searchType, int page, int maxResults, UserSession userSession) { |
DefaultSearchResults searchResults = new DefaultSearchResults(); |
searchResults.setModule(ModuleEnum.Announcements); |
List<String> roles; |
if (userSession == null || userSession.getUser() == null || ((UserImpl) userSession.getUser()).getRolesList() == null || ((UserImpl) userSession.getUser()).getRolesList().size() == 0) { |
roles = new ArrayList<String>(); |
roles.add(Globals.ALL_ROLE); |
} |
else |
roles = ((UserImpl) userSession.getUser()).getRolesList(); |
searchResults.setTotalResults(DaoFactory.getAnnouncementDaoImpl().countAnnouncements(search, searchType, roles, null)); |
if (searchResults.getTotalResults() > 0) { |
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().searchAnnouncements(search, searchType, maxResults, page, roles, null); |
if (announcements == null) |
return searchResults; |
for (Announcement a : announcements) { |
DefaultResult defaultResult = new DefaultResult(); |
defaultResult.setTitle(a.getTitle()); |
defaultResult.setSubTitle("announcements.type." + a.getType()); |
defaultResult.setSubTitleKey(true); |
defaultResult.setText(a.getText()); |
defaultResult.setUrl("/loadAnnouncement.do?id=" + a.getId() + "&dispatch=load"); |
searchResults.addResult(defaultResult); |
} |
} |
return searchResults; |
} |
public int countToDo(UserSession userSession) { |
return 0; //To change body of implemented methods use File | Settings | File Templates. |
} |
public IToDoCat getToDo(UserSession userSession) { |
return null; //To change body of implemented methods use File | Settings | File Templates. |
} |
public static void main(String[] args) { |
AbstractDao.getCurrentSession().beginTransaction(); |
UserSession sess = new UserSessionImpl(); |
sess.setUser(new UserImpl()); |
sess.getUser().setRoles("all"); |
ISearchResults searchResults = new AnnouncementsCommonServices().search("teste", SearchTypeEnum.AllWords, 0, 10, sess); |
for (IResult result : searchResults.getResults()) { |
System.out.println("title:" + result.getTitle()); |
System.out.println("subTitle:" + result.getSubTitle()); |
System.out.println("text:" + result.getText()); |
System.out.println("url" + result.getUrl()); |
System.out.println("bestFragments" + result.getBestFragments()); |
} |
AbstractDao.commit(); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java |
---|
59,17 → 59,14 |
*/ |
public List<String> getOwnerRoles() |
{ |
if(getRoles() == null) |
return null; |
String[] roles = getRoles().split(","); |
List<String> l = new ArrayList<String>(); |
for(String role: roles) |
{ |
l.add(role); |
} |
return l; |
return getRolesList(); |
} |
public List<String> getRolesList() |
{ |
return RoleManager.getRolesFromSerial(getRoles()); |
} |
public Serializable getSerializable() |
{ |
return getId(); |
/impl/src/java/pt/estgp/estgweb/domain/UserSessionImpl.java |
---|
53,6 → 53,7 |
sessionObject = DomainObjectFactory.createSessionObjectImpl(); |
SessionObjectId sessionObjectId = DomainObjectFactory.createSessionObjectIdImpl(); |
sessionObjectId.setKeyId(key); |
sessionObject.setSaveDate(new Date()); |
sessionObjectId.setUserSession(this); |
sessionObject.setId(sessionObjectId); |
getObjects().add(sessionObject); |
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java |
---|
34,6 → 34,7 |
private Date expireDate; |
private Integer counter; |
private boolean status; |
private long ownerID; |
public AnnouncementView() |
{} |
41,6 → 42,7 |
public AnnouncementView(Announcement announcement) |
{ |
super(announcement); |
this.title = announcement.getTitle(); |
this.text = announcement.getText(); |
this.bigImage = announcement.getBigImage(); |
54,6 → 56,7 |
this.startDate = announcement.getStartDate(); |
this.expireDate = announcement.getExpireDate(); |
this.choosedOwnerRole = announcement.getChoosedOwnerRole(); |
this.ownerID=announcement.getOwner().getId(); |
} |
public void persistViewInObject(Announcement announcement) |
187,6 → 190,10 |
} |
public long getOwnerID() { |
return ownerID; |
} |
public Integer getCounter() { |
return counter; |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/DomainObjectView.java |
---|
3,6 → 3,9 |
import pt.estgp.estgweb.domain.DomainObject; |
import java.io.Serializable; |
import java.util.Date; |
import java.text.DateFormat; |
import java.text.SimpleDateFormat; |
/** |
* @author Jorge Machado |
15,10 → 18,28 |
public abstract Class getReferenceClass(); |
public abstract Serializable getSerializable(); |
private Date saveDate; |
DateFormat df= new SimpleDateFormat("yyyy/MM/dd"); |
public String getFragment(int maxSize, String text) |
{ |
if(text.length() > maxSize) |
return text.substring(0,text.substring(0, maxSize).lastIndexOf(' ')) + "..."; |
return text; |
} |
public DomainObjectView() |
{} |
public DomainObjectView(DomainObject obj) |
{ |
this.saveDate = obj.getSaveDate(); |
} |
public String getFormatedSaveDate() |
{ |
if(saveDate == null) |
return null; |
return df.format(saveDate); |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/BlogView.java |
---|
2,11 → 2,14 |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.Image; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.GenericUser; |
import pt.estgp.estgweb.utils.ConfigProperties; |
import pt.estgp.estgweb.utils.RoleManager; |
import java.io.Serializable; |
import java.util.List; |
import java.util.Date; |
/** |
* @author Jorge Machado |
25,7 → 28,7 |
private String description; |
private List<String> targetRoles; |
private Image image; |
private long ownerId; |
private GenericUser owner; |
private boolean status; |
public BlogView() |
33,13 → 36,14 |
public BlogView(Blog blog) |
{ |
super(blog); |
this.title = blog.getTitle(); |
this.description = blog.getDescription(); |
this.image = blog.getImage(); |
this.targetRoles = RoleManager.getRolesFromSerial(blog.getTargetRoles()); |
this.status=blog.isStatus(); |
this.id = blog.getId(); |
this.ownerId = blog.getOwner().getId(); |
this.owner = blog.getOwner(); |
} |
public void persistViewInObject(Blog blog) |
60,6 → 64,11 |
this.id = id; |
} |
public GenericUser getOwner() |
{ |
return owner; |
} |
public String getTitle() { |
return title; |
} |
92,10 → 101,6 |
this.image = image; |
} |
public long getOwnerId() { |
return ownerId; |
} |
public boolean isStatus() { |
return status; |
} |
123,4 → 128,12 |
{ |
return id; |
} |
public String getOwnerEmail() |
{ |
if(owner instanceof User) |
return ((User)owner).getEmail(); |
else |
return null; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java |
---|
3,6 → 3,8 |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.User; |
import pt.estgp.estgweb.domain.GenericUser; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import java.util.List; |
import java.util.ArrayList; |
22,115 → 24,109 |
* @time 2:51:06 |
* @see pt.estgp.estgweb.domain.dao.impl |
*/ |
public class AnnouncementDaoImpl extends AnnouncementDao |
{ |
public static AnnouncementDaoImpl getInstance() |
{ |
public class AnnouncementDaoImpl extends AnnouncementDao { |
public static AnnouncementDaoImpl getInstance() { |
if (myInstance == null) |
myInstance = new AnnouncementDaoImpl(); |
return (AnnouncementDaoImpl) myInstance; |
} |
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String subTarget) |
{ |
if(roles == null) |
{ |
public List<Announcement> findAnnouncements(int maxAnnouncements, List<String> roles, String subTarget) { |
if (roles == null) { |
roles = new ArrayList<String>(); |
roles.add("all"); |
} |
Criteria criteria = createCriteria(); |
Criterion co = null; |
for(String role: roles) |
{ |
Criterion cor = like("targetRoles","%" + role + "%"); |
if(co == null) |
for (String role : roles) { |
Criterion cor = like("targetRoles", "%" + role + "%"); |
if (co == null) |
co = cor; |
else |
co = or(co,cor); |
co = or(co, cor); |
} |
Criterion coSubTargets=null; |
Criterion coSubTargets = null; |
if(subTarget==null) |
{ |
coSubTargets=isNull("subTargets"); |
if (subTarget == null) { |
coSubTargets = isNull("subTargets"); |
} |
else |
{ |
coSubTargets =eq("subTargets",subTarget); |
else { |
coSubTargets = eq("subTargets", subTarget); |
} |
MyCalendar cNow = new MyCalendar(); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay()); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(), cNow.getMonth(), cNow.getDay()); |
Date now = calendarWithOutTime.getTime(); |
criteria.add(co) |
.add(or(or(lt("startDate",now),eq("startDate",now)),isNull("startDate"))) |
.add(or(or(gt("expireDate",now),eq("expireDate",now)),isNull("expireDate"))) |
.add(eq("status",true)) |
.add(or(or(lt("startDate", now), eq("startDate", now)), isNull("startDate"))) |
.add(or(or(gt("expireDate", now), eq("expireDate", now)), isNull("expireDate"))) |
.add(eq("status", true)) |
.add(coSubTargets) |
.setMaxResults(maxAnnouncements) |
.addOrder(Order.desc("saveDate")); |
return criteria.list(); |
} |
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
return findAnnouncements(0,maxAnnouncements,roles, type,subTarget); |
public List<Announcement> findAnnouncements(int maxAnnouncements, List<String> roles, String type, String subTarget) { |
return findAnnouncements(0, maxAnnouncements, roles, type, subTarget); |
} |
public List<Announcement> findAnnouncements(int startPage, int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(maxAnnouncements, roles,type,subTarget); |
return criteria.setFirstResult(maxAnnouncements*startPage).list(); |
public List<Announcement> findAnnouncements(int startPage, int maxAnnouncements, List<String> roles, String type, String subTarget) { |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(maxAnnouncements, roles, type, subTarget); |
return criteria.setFirstResult(maxAnnouncements * startPage).list(); |
} |
public int countAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles,type,subTarget); |
public int countAnnouncements(int maxAnnouncements, List<String> roles, String type, String subTarget) { |
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles, type, subTarget); |
return criteria.list().size(); |
} |
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements,List<String> roles,String type,String subTarget) |
{ |
if(roles == null) |
{ |
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements, List<String> roles, String type, String subTarget) { |
return createMaxAnnouncementsPageRolesTypeCriteria(0, maxAnnouncements, roles, type, subTarget); |
} |
private Criteria createMaxAnnouncementsPageRolesTypeCriteria(int page, int maxAnnouncements, List<String> roles, String type, String subTarget) { |
return createRolesTypeCriteria(roles, type, subTarget) |
.setFirstResult(page * maxAnnouncements) |
.setMaxResults(maxAnnouncements); |
} |
private Criteria createRolesTypeCriteria(List<String> roles, String type, String subTarget) { |
if (roles == null) { |
roles = new ArrayList<String>(); |
roles.add("all"); |
} |
Criteria criteria = createCriteria(); |
Criterion coRole = null; |
for(String role: roles) |
{ |
Criterion cor = like("targetRoles","%" + role + "%"); |
if(coRole == null) |
for (String role : roles) { |
Criterion cor = like("targetRoles", "%" + role + "%"); |
if (coRole == null) |
coRole = cor; |
else |
coRole = or(coRole,cor); |
coRole = or(coRole, cor); |
} |
Criterion coSubTargets=null; |
Criterion coSubTargets = null; |
if(subTarget==null) |
{ |
coSubTargets=isNull("subTargets"); |
if (subTarget == null) { |
coSubTargets = isNull("subTargets"); |
} |
else |
{ |
coSubTargets =eq("subTargets",subTarget); |
else { |
coSubTargets = eq("subTargets", subTarget); |
} |
Criterion coType=eq("type",type); |
if (type != null) |
criteria.add(eq("type", type)); |
MyCalendar cNow = new MyCalendar(); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay()); |
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(), cNow.getMonth(), cNow.getDay()); |
Date now = calendarWithOutTime.getTime(); |
criteria.add(coRole) |
.add(coType) |
.add(or(or(lt("startDate",now),eq("startDate",now)),isNull("startDate"))) |
.add(or(or(gt("expireDate",now),eq("expireDate",now)),isNull("expireDate"))) |
.add(eq("status",true)) |
.add(or(or(lt("startDate", now), eq("startDate", now)), isNull("startDate"))) |
.add(or(or(gt("expireDate", now), eq("expireDate", now)), isNull("expireDate"))) |
.add(eq("status", true)) |
.add(coSubTargets) |
.setMaxResults(maxAnnouncements) |
.addOrder(Order.desc("saveDate")); |
return criteria; |
} |
/* public static void main(String[] args) |
/* public static void main(String[] args) |
{ |
AbstractDao.getCurrentSession().beginTransaction(); |
List<String> roles = new ArrayList<String>(); |
150,4 → 146,47 |
} |
AbstractDao.getCurrentSession().beginTransaction().commit(); |
}*/ |
public List<Announcement> searchAnnouncements(String query, SearchTypeEnum searchTypeEnum, int maxAnnouncements, int page, List<String> roles, String subTarget) { |
Criterion c = createSearchQuery(query, searchTypeEnum); |
Criteria criteria = createMaxAnnouncementsPageRolesTypeCriteria(page, maxAnnouncements, roles, null, null); |
criteria.add(c); |
return criteria.list(); |
} |
public int countAnnouncements(String query, SearchTypeEnum searchTypeEnum, List<String> roles, String subTarget) { |
Criterion c = createSearchQuery(query, searchTypeEnum); |
Criteria criteria = createRolesTypeCriteria(roles, null, null); |
criteria.add(c); |
return criteria.list().size(); |
} |
public Criterion createSearchQuery(String query, SearchTypeEnum searchTypeEnum) { |
Criterion c = null; |
if (searchTypeEnum == SearchTypeEnum.ExactPhrase) |
c = or(like("text", "%" + query + "%"), like("title", "%" + query + "%")); |
else if (searchTypeEnum == SearchTypeEnum.AllWords) { |
String[] fields = query.split(" "); |
for (String field : fields) { |
if (c == null) |
c = or(like("text", "%" + field + "%"), like("title", "%" + field + "%")); |
else |
c = and(c, or(like("text", "%" + field + "%"), like("title", "%" + field + "%"))); |
} |
} |
else { |
String[] fields = query.split(" "); |
for (String field : fields) { |
if (c == null) |
c = or(like("text", "%" + field + "%"), like("title", "%" + field + "%")); |
else |
c = or(c, or(like("text", "%" + field + "%"), like("title", "%" + field + "%"))); |
} |
} |
return c; |
} |
} |
/impl/src/java/pt/estgp/estgweb/domain/DomainObject.java |
---|
22,6 → 22,10 |
public void setSaveDate(Date d){} |
public Date getSaveDate() |
{ |
return null; |
} |
/** |
* can be override in proper classes |
/impl/src/java/pt/estgp/estgweb/web/form/AddRolesForm.java |
---|
1,8 → 1,6 |
package pt.estgp.estgweb.web.form; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.Globals; |
import pt.estgp.estgweb.web.form.blog.BlogForm; |
import java.util.List; |
10,7 → 8,7 |
* @author Jorge Machado |
* @date 21/Abr/2008 |
* @time 14:28:59 |
* @see pt.estgp.estgweb.web.form.blog |
* @see pt.estgp.estgweb.web.form.blogs |
*/ |
public class AddRolesForm extends ApplicationForm |
{ |
/impl/src/java/pt/estgp/estgweb/web/form/blogs/BlogForm.java |
---|
New file |
0,0 → 1,36 |
package pt.estgp.estgweb.web.form.blogs; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.web.form.AddRolesForm; |
import org.apache.struts.upload.FormFile; |
/** |
* @author Jorge Machado |
* @date 21/Abr/2008 |
* @time 14:28:59 |
* @see pt.estgp.estgweb.web.form.blogs |
*/ |
public class BlogForm extends AddRolesForm |
{ |
private BlogView blogView = new BlogView(); |
private FormFile image; |
public BlogView getBlogView() { |
return blogView; |
} |
public void setBlogView(BlogView blogView) { |
this.blogView = blogView; |
} |
public FormFile getImage() { |
return image; |
} |
public void setImage(FormFile image) { |
this.image = image; |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/form/commons/SearchForm.java |
---|
New file |
0,0 → 1,35 |
package pt.estgp.estgweb.web.form.commons; |
import pt.estgp.estgweb.web.form.AddRolesForm; |
import pt.estgp.estgweb.web.form.ApplicationForm; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import org.apache.struts.upload.FormFile; |
/** |
* @author Jorge Machado |
* @date 21/Abr/2008 |
* @time 14:28:59 |
* @see pt.estgp.estgweb.web.form.blogs |
*/ |
public class SearchForm extends ApplicationForm { |
private String query; |
private String searchType = SearchTypeEnum.AllWords.getMessageKey(); |
public String getQuery() { |
return query; |
} |
public void setQuery(String query) { |
this.query = query; |
} |
public String getSearchType() { |
return searchType; |
} |
public void setSearchType(String searchType) { |
this.searchType = searchType; |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/form/announcements/AnnouncementsForm.java |
---|
166,8 → 166,9 |
{ |
roles = new ArrayList<String>(); |
roles.add(targetRolesStr); |
announcementView.setTargetRoles(roles); |
} |
announcementView.setTargetRoles(roles); |
} |
catch (Throwable throwable) |
{ |
/impl/src/java/pt/estgp/estgweb/web/controllers/AddRolesController.java |
---|
4,7 → 4,6 |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import pt.estgp.estgweb.web.form.announcements.AnnouncementsForm; |
import pt.estgp.estgweb.web.form.AddRolesForm; |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
42,7 → 41,7 |
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request); |
sess.remove(TARGET_ROLES_KEY); |
sess.serialize(request); |
return mapping.getInputForward(); |
return mapping.findForward("submit"); |
} |
catch(FilterChainFailedException e) |
{ |
63,7 → 62,7 |
{ |
try |
{ |
AddRolesForm addRolesForm = (AnnouncementsForm) form; |
AddRolesForm addRolesForm = (AddRolesForm) form; |
UserSessionImpl sess = (UserSessionImpl) UserSessionProxy.loadUserSession(request); |
List<String> l = (List<String>) sess.get(TARGET_ROLES_KEY); |
if(l == null) |
/impl/src/java/pt/estgp/estgweb/web/controllers/blogs/BlogsController.java |
---|
New file |
0,0 → 1,111 |
package pt.estgp.estgweb.web.controllers.blogs; |
import pt.estgp.estgweb.web.controllers.AddRolesController; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.web.form.blogs.BlogForm; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.*; |
import org.apache.struts.upload.FormFile; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletException; |
import java.io.InputStream; |
import java.io.ByteArrayOutputStream; |
import java.util.Date; |
/** |
* @author Jorge Machado |
* @date 26/Fev/2008 |
* @time 18:01:54 |
* @see pt.estgp.estgweb.web |
*/ |
public class BlogsController extends AddRolesController { |
private static final Logger logger = Logger.getLogger(BlogsController.class); |
public ActionForward save(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException { |
try { |
BlogForm blogForm = (BlogForm) form; |
if (blogForm.getBlogView().getId() <= 0) { |
Blog blog = DomainObjectFactory.createBlogImpl(); |
blogForm.getBlogView().persistViewInObject(blog); |
IServiceManager sm = ServiceManager.getInstance(); |
if (blogForm.getImage().getFileSize() != 0) { |
FormFile image = blogForm.getImage(); |
InputStream stream = image.getInputStream(); |
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while ((readedBytes = stream.read(buf)) > 0) { |
b.write(buf, 0, readedBytes); |
} |
b.close(); |
Image i = DomainObjectFactory.createImageImpl(); |
i.setImage(b.toByteArray()); |
i.setContentType(image.getContentType()); |
i.setSize(image.getFileSize()); |
i.setDescription(blog.getTitle()); |
i.setName(image.getFileName()); |
i.setSaveDate(new Date()); |
blog.setImage(i); |
} |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{blog}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request), "CreateBlog", args, names); |
addMessage(request, "blog.created.success", "" + bV.getId()); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("success"); |
} else { |
BlogView bV = blogForm.getBlogView(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{bV}; |
bV = (BlogView) sm.execute(RequestUtils.getRequester(request), "EditBlog", args, names); |
addMessage(request, "blog.edited.success", "" + bV.getId()); |
return mapping.findForward("success"); |
} |
} |
catch (FilterChainFailedException e) { |
return mapping.findForward("error401"); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward load(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException { |
try |
{ |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{Long.parseLong(request.getParameter("id"))}; |
BlogView bV = (BlogView) sm.execute(RequestUtils.getRequester(request), "LoadBlog", args, names); |
request.setAttribute("BlogView", bV); |
return mapping.findForward("success"); |
} |
catch (FilterChainFailedException e) { |
return mapping.findForward("error401"); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/ApplicationController.java |
---|
8,6 → 8,10 |
import pt.estgp.estgweb.web.UserSessionProxy; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.domain.UserSessionImpl; |
import pt.estgp.estgweb.services.common.ICommonSearchResults; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
30,6 → 34,14 |
private static final Logger logger = Logger.getLogger(ApplicationController.class); |
public ActionForward execute(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws ServletException { |
logger.fatal("ATENTION YOU ARE USING A CONTROLLER EXTENDING FROM ApplicationController that does not implement execute Method, probably you want to extend from ApplicationDispatchController instead ApplicationController"); |
return mapping.findForward("error500"); |
} |
public ActionMessages getMessages(HttpServletRequest request) |
{ |
ActionMessages actionMessages = super.getMessages(request); |
/impl/src/java/pt/estgp/estgweb/web/controllers/commons/CommonsController.java |
---|
New file |
0,0 → 1,85 |
package pt.estgp.estgweb.web.controllers.commons; |
import pt.estgp.estgweb.web.controllers.AddRolesController; |
import pt.estgp.estgweb.web.controllers.ApplicationController; |
import pt.estgp.estgweb.web.controllers.ApplicationDispatchController; |
import pt.estgp.estgweb.web.controllers.blogs.BlogsController; |
import pt.estgp.estgweb.web.form.blogs.BlogForm; |
import pt.estgp.estgweb.web.utils.RequestUtils; |
import pt.estgp.estgweb.domain.Blog; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.Image; |
import pt.estgp.estgweb.domain.views.BlogView; |
import pt.estgp.estgweb.services.common.CommonServicesManager; |
import pt.estgp.estgweb.services.common.SearchTypeEnum; |
import pt.estgp.estgweb.services.common.ICommonSearchResults; |
import pt.estgp.estgweb.services.common.ISearchResults; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.exceptions.FilterChainFailedException; |
import org.apache.log4j.Logger; |
import org.apache.struts.action.ActionForward; |
import org.apache.struts.action.ActionMapping; |
import org.apache.struts.action.ActionForm; |
import org.apache.struts.upload.FormFile; |
import javax.servlet.http.HttpServletRequest; |
import javax.servlet.http.HttpServletResponse; |
import javax.servlet.ServletException; |
import java.io.InputStream; |
import java.io.ByteArrayOutputStream; |
import java.util.Date; |
/** |
* @author Jorge Machado |
* @date 26/Fev/2008 |
* @time 18:01:54 |
* @see pt.estgp.estgweb.web |
*/ |
public class CommonsController extends ApplicationDispatchController { |
private static final Logger logger = Logger.getLogger(CommonsController.class); |
public ActionForward search(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException { |
try |
{ |
ICommonSearchResults commonSearchResults = CommonServicesManager.getInstance().search(request,request.getParameter("query"), SearchTypeEnum.parse(request.getParameter("searchType"))); |
if(commonSearchResults.getTotalResults() == 0) |
return mapping.findForward("noresults"); |
request.setAttribute("ICommonSearchResults",commonSearchResults); |
return mapping.findForward("searchResults"); |
} |
catch (FilterChainFailedException e) { |
return mapping.findForward("error401"); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
public ActionForward searchModule(ActionMapping mapping, |
ActionForm form, |
HttpServletRequest request, |
HttpServletResponse response) |
throws Throwable, ServletException { |
try |
{ |
ISearchResults searchResults = CommonServicesManager.getInstance().search(request,request.getParameter("query"), SearchTypeEnum.parse(request.getParameter("searchType")),request.getParameter("module"),Integer.parseInt(request.getParameter("page"))); |
request.setAttribute("ISearchResults",searchResults); |
return mapping.findForward("searchModule"); |
} |
catch (FilterChainFailedException e) { |
return mapping.findForward("error401"); |
} |
catch (Throwable e) { |
logger.error(e, e); |
throw e; |
} |
} |
} |
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java |
---|
13,6 → 13,7 |
import pt.estgp.estgweb.domain.Announcement; |
import pt.estgp.estgweb.domain.DomainObjectFactory; |
import pt.estgp.estgweb.domain.Image; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.views.AnnouncementView; |
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager; |
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager; |
34,9 → 35,9 |
public class AnnouncementsController extends AddRolesController { |
private static final Logger logger = Logger.getLogger(AnnouncementsController.class); |
private static final String TARGET_ROLES_KEY = AddRolesForm.TARGET_ROLES_KEY; |
public ActionForward save(ActionMapping mapping, |
ActionForm form , |
HttpServletRequest request, |
45,7 → 46,71 |
{ |
try |
{ |
AnnouncementsForm announcementsForm = (AnnouncementsForm) form; |
Image i2=null; |
Image i=null; |
AnnouncementsForm announcementForm = (AnnouncementsForm) form; |
AnnouncementView view = announcementForm.getAnnouncementView(); |
String finalUrl=""; |
if(!announcementForm.getUrl().equals("")) |
{ |
finalUrl=announcementForm.getUrlProtocol()+announcementForm.getUrl(); |
view.setUrl(finalUrl); |
} |
else |
{ |
view.setUrl(null); |
} |
if(announcementForm.getBigImage().getFileSize()!= 0) |
{ |
FormFile bigImage = announcementForm.getBigImage(); |
InputStream stream = bigImage.getInputStream(); |
ByteArrayOutputStream b = new ByteArrayOutputStream(); |
int readedBytes; |
byte[] buf = new byte[1024]; |
while((readedBytes = stream.read(buf)) > 0) |
{ |
b.write(buf,0,readedBytes); |
} |
b.close(); |
i = DomainObjectFactory.createImageImpl(); |
i.setImage(b.toByteArray()); |
i.setContentType(bigImage.getContentType()); |
i.setSize(bigImage.getFileSize()); |
i.setDescription(view.getTitle()); |
i.setName(bigImage.getFileName()); |
i.setSaveDate(new Date()); |
} |
if(announcementForm.getSmallImage().getFileSize()!= 0) |
{ |
FormFile smallImage = announcementForm.getSmallImage(); |
InputStream stream2 = smallImage.getInputStream(); |
ByteArrayOutputStream b2 = new ByteArrayOutputStream(); |
int readedBytes2; |
byte[] buf2 = new byte[1024]; |
while((readedBytes2 = stream2.read(buf2)) > 0) |
{ |
b2.write(buf2,0,readedBytes2); |
} |
b2.close(); |
i2 = DomainObjectFactory.createImageImpl(); |
i2.setImage(b2.toByteArray()); |
i2.setDescription(view.getTitle()); |
i2.setContentType(smallImage.getContentType()); |
i2.setSize(smallImage.getFileSize()); |
i2.setName(smallImage.getFileName()); |
i2.setSaveDate(new Date()); |
} |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{view,i, i2}; |
AnnouncementView aV = (AnnouncementView) sm.execute(RequestUtils.getRequester(request),"CreateAnnouncement",args,names); |
addMessage(request,"announcement.edited.success","" + aV.getId()); |
return mapping.findForward("success"); |
/*AnnouncementsForm announcementsForm = (AnnouncementsForm) form; |
if(announcementsForm.getAnnouncementView().getId() <= 0) |
{ |
Announcement a = DomainObjectFactory.createAnnouncementImpl(); |
115,14 → 180,15 |
} |
else |
{ |
AnnouncementView a = announcementsForm.getAnnouncementView(); |
IServiceManager sm = ServiceManager.getInstance(); |
String[] names = new String[]{"object"}; |
Object[] args = new Object[]{a}; |
AnnouncementView aV = (AnnouncementView) sm.execute(RequestUtils.getRequester(request),"EditAnnouncement",args,names); |
AnnouncementView aV = (AnnouncementView) sm.execute(RequestUtils.getRequester(request),"CreateAnnouncement",args,names); |
addMessage(request,"announcement.edited.success","" + aV.getId()); |
return mapping.findForward("success"); |
} |
} */ |
} |
catch(FilterChainFailedException e) |
{ |
/impl/src/java/pt/estgp/estgweb/examples/DBInit.java |
---|
24,12 → 24,14 |
AbstractDao.getCurrentSession().beginTransaction(); |
UserImpl user = DomainObjectFactory.createUserImpl(); |
user.setUsername("super"); |
user.setName("super user"); |
user.setRoles("all,admin"); |
user.setPassword(BytesUtils.getMD5("1")); |
DaoFactory.getUserDaoImpl().save(user); |
UserImpl userStudent = DomainObjectFactory.createUserImpl(); |
userStudent.setUsername("student"); |
userStudent.setRoles("student"); |
userStudent.setName("student user"); |
userStudent.setPassword(BytesUtils.getMD5("1")); |
DaoFactory.getUserDaoImpl().save(userStudent); |
AnnouncementImpl announcement = DomainObjectFactory.createAnnouncementImpl(); |
/impl/src/web/admin/blogs/submitBlog.jsp |
---|
New file |
0,0 → 1,100 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %> |
<jsp:useBean id="BlogForm" type="pt.estgp.estgweb.web.form.blogs.BlogForm" scope="request"/> |
<jsp:useBean id="UserSession" type="pt.estgp.estgweb.domain.UserSession" scope="request"/> |
<html:messages id="messages"/> |
<html:errors/> |
<html:form action="/submitBlog" enctype="multipart/form-data"> |
<html:hidden property="role"/> |
<html:hidden property="blogView.id"/> |
<input type="hidden" name="dispatch" value="addRole"> |
<table class="form"> |
<estgweb:isAdmin> |
<tr> |
<th> |
<bean:message key="blog.status"/> |
</th> |
<td> |
<html:select property="blogView.status"> |
<html:option value="true"><bean:message key="yes"/></html:option> |
<html:option value="false"><bean:message key="no"/></html:option> |
</html:select> |
</td> |
</tr> |
</estgweb:isAdmin> |
<tr> |
<th> |
<bean:message key="blog.target.roles"/> |
</th> |
<td> |
<html:select property="targetRolesStr"> |
<estgweb:isAdmin> |
<logic:present name="BlogForm" property="targetRoles"> |
<logic:iterate id="item" name="BlogForm" property="targetRoles"> |
<jomm:option itemName="item" comparableObjectName="BlogForm" comparableObjectProperty="targetRolesStr"> |
<jomm:message patternMessage="user.role.{0}" name0="item"/> |
</jomm:option> |
</logic:iterate> |
<input type="button" value="<bean:message key="add"/>" onclick="set(this.form,'addRole');this.form.submit()"> |
</logic:present> |
</estgweb:isAdmin> |
<estgweb:isNotAdmin> |
<html:option value="all"><bean:message key="user.role.all"/></html:option> |
<html:option value="student"><bean:message key="user.role.student"/></html:option> |
<html:option value="oldStudent"><bean:message key="user.role.oldStudent"/></html:option> |
<html:option value="futureStudent"><bean:message key="user.role.futureStudent"/></html:option> |
<html:option value="teacher"><bean:message key="user.role.teacher"/></html:option> |
</estgweb:isNotAdmin> |
</html:select> |
<logic:present name="BlogForm" property="selectedRoles"> |
<logic:notEmpty name="BlogForm" property="selectedRoles"> |
<ul> |
<logic:iterate id="item" name="BlogForm" property="selectedRoles"> |
<li><jomm:message patternMessage="user.role.{0}" name0="item"/> <a href="BlogForm.role.value='${item}';set(BlogForm,'removeRole');BlogForm.submit();"/></li> |
</logic:iterate> |
</ul> |
</logic:notEmpty> |
</logic:present> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="blog.title"/> |
</th> |
<td> |
<html:text property="blogView.title" maxlength="250"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="blog.image"/> |
</th> |
<td> |
<html:file property="image"/> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="blog.description"/> |
</th> |
<td> |
<html:textarea property="blogView.description"/> |
</td> |
</tr> |
<tr class="buttons"> |
<td colspan="2"> |
<input type="button" onclick="set(this.form,'save');this.form.submit()" value="<bean:message key="confirm"/>"/> |
</td> |
</tr> |
</table> |
</html:form> |
/impl/src/web/admin/blogs/topnavCreateBlog.jsp |
---|
New file |
0,0 → 1,10 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/Welcome.do", "Home"); |
topNav.addNavPlace(null, "submit.blog"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/admin/announcements/submitAnnouncement.jsp |
---|
15,6 → 15,7 |
<html:hidden property="announcementView.id"/> |
<input type="hidden" name="dispatch" value="addRole"> |
<input type="hidden" name="dispatch" value="removeRole"> |
<table class="form"> |
<estgweb:isAdmin> |
94,7 → 95,7 |
<logic:notEmpty name="AnnouncementsForm" property="selectedRoles"> |
<ul> |
<logic:iterate id="item" name="AnnouncementsForm" property="selectedRoles"> |
<li><jomm:message patternMessage="user.role.{0}" name0="item"/> <a href="AnnouncementForm.role.value='${item}';set(AnnouncementsForm,'removeRole');AnnouncementForm.submit();"/></li> |
<li><a href="AnnouncementForm.role.value='${item}';set(AnnouncementsForm,'removeRole');AnnouncementForm.submit();"><jomm:message patternMessage="user.role.{0}" name0="item"/></a></li> |
</logic:iterate> |
</ul> |
</logic:notEmpty> |
117,7 → 118,7 |
<bean:message key="announcement.startDate"/> |
</th> |
<td> |
<html:text styleClass="date" property="startDate" styleId="startDate" readonly="true"/> <a href="#" onClick="cal.select(getObjectById('startDate'),'anchor1','yyyy/MM/dd'); return false;" name="anchor1" id="anchor1">Escolha a Data</A> |
<html:text styleClass="date" property="startDate" styleId="startDate" readonly="true"/> <a href="#" onClick="cal.select(getObjectById('startDate'),'anchor1','yyyy/MM/dd'); return false;" name="anchor1" id="anchor1">Escolha a Data</A> <a href="#" onClick=""><bean:message key="remove"/></A> |
</td> |
</tr> |
<tr> |
125,7 → 126,7 |
<bean:message key="announcement.expireDate"/> |
</th> |
<td> |
<html:text styleClass="date" property="expireDate" styleId="expireDate" readonly="true"/> <a href="#" onClick="cal.select(getObjectById('expireDate'),'anchor2','yyyy/MM/dd'); return false;" name="anchor2" id="anchor2">Escolha a Data</A> |
<html:text styleClass="date" property="expireDate" styleId="expireDate" readonly="true"/> <a href="#" onClick="cal.select(getObjectById('expireDate'),'anchor2','yyyy/MM/dd'); return false;" name="anchor2" id="anchor2">Escolha a Data</A> <a href="#" onClick=""><bean:message key="remove"/></A> |
</td> |
</tr> |
</estgweb:isAdmin> |
/impl/src/web/css/style.css |
---|
1,21 → 1,83 |
#searchResults li h1 { |
/*********** Site Struture *************/ |
BODY *, .contentPortal, .contentPortal p, .contentPortal li |
background-color: lightblue; |
border-bottom: blueviolet 1px solid; |
margin-bottom: 10px; |
} |
#searchResults |
{ |
FONT-FAMILY: "Lucida Grande","Trebuchet MS","bitstream vera sans",Verdana,Arial,Helvetica,sans-serif; |
FONT-SIZE:0.98em; |
padding-left:10px; |
} |
#body |
#searchResults li a |
{ |
width:950px; |
cursor:pointer; |
} |
#searchresults div.result { |
margin-left: 20px; |
border-bottom: 1px solid #8ec73f; |
margin-bottom: 15px; |
padding-bottom: 0; |
} |
#searchResults li .module |
{ |
position:absolute; |
visibility:hidden; |
} |
#searchResults li .module .result h2 { |
color: black; |
padding-top: 0; |
margin-top: 10px; |
cursor: pointer; |
padding-bottom: 0; |
} |
#searchResults li .module .result p { |
margin-top: 5px; |
cursor: pointer; |
margin-bottom: 0; |
padding-bottom: 2px; |
padding-top: 0; |
} |
/*********** Site Struture *************/ |
BODY *, .contentPortal, .contentPortal p, .contentPortal li { |
FONT-FAMILY: "bitstream vera sans", Verdana, Arial, Helvetica, sans-serif; |
FONT-SIZE: 1em; |
} |
.pFooter { |
background-color: #8EC73F; |
font-size: 0.7em; |
border-top: 1px solid #cccccc; |
border-bottom: 1px solid #cccccc; |
text-align: right; |
clear: both; |
} |
.pFooter a { |
font-style: italic; |
} |
#body { |
width: 950px; |
margin-left: auto; |
margin-right: auto; |
} |
#pageStructure |
{ |
border-collapse :collapse ; |
#pageStructure { |
border-collapse: collapse; |
LEFT: 0; |
WIDTH: 100%; |
} |
26,43 → 88,37 |
WIDTH: 100% |
} */ |
TD#leftPage |
{ |
TD#leftPage { |
VERTICAL-ALIGN: top; |
WIDTH: 160px; |
text-align:left; |
text-align: left; |
} |
#leftPagePosition |
{ |
#leftPagePosition { |
CLEAR: left; |
LEFT: 0; |
FLOAT: left; |
PADDING-TOP: 43px; |
} |
TD.rightPage,TD.rightPagePortal |
{ |
TD.rightPage, TD.rightPagePortal { |
VERTICAL-ALIGN: top; |
WIDTH: 160px; |
} |
.rightPagePosition |
{ |
.rightPagePosition { |
CLEAR: left; |
LEFT: 0; |
FLOAT: left; |
PADDING-BOTTOM: 20px; |
} |
#footer |
{ |
#footer { |
HEIGHT: 50px; |
PADDING-TOP: 5px; |
} |
#footerStructure TABLE |
{ |
#footerStructure TABLE { |
BORDER-RIGHT: 0; |
BORDER-TOP: 0; |
RIGHT: 0; |
75,407 → 131,371 |
TOP: 0; |
border-spacing: 0 |
} |
#footerStructure TABLE TD |
{ |
#footerStructure TABLE TD { |
VERTICAL-ALIGN: top |
} |
/****************************Text Size*************************************************/ |
h1 |
{ |
font-size:1.2em; |
h1 { |
font-size: 1.2em; |
} |
h2 |
{ |
font-size:1em; |
h2 { |
font-size: 1em; |
} |
/*************************************************************************************/ |
/*****************************Portal Page Template************************************/ |
.portal |
{ |
.portal { |
} |
.portalContent |
{ |
padding-left:10px; |
.portalContent { |
padding-left: 10px; |
} |
td.column |
{ |
vertical-align:top; |
td.column { |
vertical-align: top; |
} |
.portalContent |
{ |
padding-left:10px; |
padding-right:10px; |
.portalContent { |
padding-left: 10px; |
padding-right: 10px; |
} |
.navLeftMenu h2 |
{ |
font-size:0.9em; |
.navLeftMenu h2 { |
font-size: 0.9em; |
} |
.navLeftMenu |
{ |
font-size:0.7em; |
.navLeftMenu { |
font-size: 0.7em; |
} |
.block P,.navLeftMenu h2 |
{ |
background-color:#ededed; |
padding-left:10px; |
margin:0; |
.block P, .navLeftMenu h2 { |
background-color: #ededed; |
padding-left: 10px; |
margin: 0; |
} |
.block UL |
{ |
.block UL { |
LIST-STYLE-TYPE: none; |
padding-left:10px; |
padding-left: 10px; |
} |
.block a:link |
{ |
color:#4d4d4d; |
text-decoration:none; |
.block a:link { |
color: #4d4d4d; |
text-decoration: none; |
} |
.block a:visited |
{ |
color:#4d4d4d; |
text-decoration:none; |
.block a:visited { |
color: #4d4d4d; |
text-decoration: none; |
} |
.block a:hover,.linkUnderlineGrayToGreen a:hover |
{ |
color:#8EC73F; |
text-decoration:underline; |
.block a:hover, .linkUnderlineGrayToGreen a:hover { |
color: #8EC73F; |
text-decoration: underline; |
} |
.portalLeftAnnouncements table |
{ |
table-layout:fixed; |
width:180px; |
padding-top:10px; |
font-size:0.8em; |
.portalLeftAnnouncements table { |
table-layout: fixed; |
width: 180px; |
padding-top: 10px; |
font-size: 0.8em; |
} |
.portalRightAnnouncements table |
{ |
table-layout:fixed; |
width:250px; |
font-size:0.8em; |
.portalRightAnnouncements table { |
table-layout: fixed; |
width: 250px; |
font-size: 0.8em; |
} |
.portalAnnouncement a:link,.portalAnnouncement a:visited |
{ |
margin:0; |
.portalAnnouncement a:link, .portalAnnouncement a:visited { |
margin: 0; |
} |
.portalAnnouncementTitle a |
{ |
color:#000000; |
.portalAnnouncementTitle a { |
color: #000000; |
} |
.portalAnnouncement a |
{ |
text-decoration :none; |
.portalAnnouncement a { |
text-decoration: none; |
} |
.portalAnnouncementText a:link,.portalAnnouncementText a:visited |
{ |
color:#4d4d4d; |
.portalAnnouncementText a:link, .portalAnnouncementText a:visited { |
color: #4d4d4d; |
} |
.navleftMenu |
{ |
width:180px; |
padding-left:10px; |
.navleftMenu { |
width: 180px; |
padding-left: 10px; |
} |
#portalMenu li.selected a |
{ |
color:#8EC73F; |
#portalMenu li.selected a { |
color: #8EC73F; |
} |
/**********************************************************************************/ |
/****************************** Standard Page Template ***************************/ |
.contentPortal h1 |
{ |
background-color:#8EC73F; |
color:#FFFFFF; |
font-size:1.2em; |
.contentPortal h1 { |
background-color: #8EC73F; |
color: #FFFFFF; |
font-size: 1.2em; |
} |
.contentPortal h2 |
{ |
font-size:1em; |
.contentPortal h2 { |
font-size: 1em; |
} |
.contentPortal |
{ |
font-size:0.75em; |
.contentPortal { |
font-size: 0.75em; |
} |
.contentPortal p |
{ |
margin:0; |
color:#4d4d4d; |
.contentPortal p { |
margin: 0; |
color: #4d4d4d; |
} |
.section |
{ |
margin-bottom:10px; |
.section { |
margin-bottom: 10px; |
} |
.contentPortal li a:link,.contentPortal a:visited,.contentPortal li |
{ |
color:#4d4d4d; |
.contentPortal li a:link, .contentPortal a:visited, .contentPortal li { |
color: #4d4d4d; |
} |
.contentPortal li a:hover |
{ |
color:#8EC73F; |
.contentPortal li a:hover { |
color: #8EC73F; |
} |
.listClean UL /*Lista sem nada*/ |
{ |
LIST-STYLE-TYPE: none; |
padding:0; |
padding: 0; |
} |
.listCircleWhite UL/*Lista circulo branco*/ |
.listCircleWhite UL /*Lista circulo branco*/ |
{ |
LIST-STYLE-TYPE: circle; |
} |
.listDecimal UL/*Lista decimal*/ |
.listDecimal UL /*Lista decimal*/ |
{ |
LIST-STYLE-TYPE: decimal; |
} |
.listDisc UL/*Lista circulo preto*/ |
.listDisc UL /*Lista circulo preto*/ |
{ |
LIST-STYLE-TYPE: disc; |
} |
.listSquare UL/*Lista quadrado preto*/ |
.listSquare UL /*Lista quadrado preto*/ |
{ |
LIST-STYLE-TYPE: square; |
} |
.portalLeftAnnouncements img |
{ |
height:133px; |
width:177px; |
.portalLeftAnnouncements img { |
height: 133px; |
width: 177px; |
} |
/*PASSA PARA AQUI TUDO O QUE SEJA DE BLOCOS E VAMOS LIMPAR TUDO */ |
/*Isto tem de ser generico o H1 jáe um header nao necessita da classe .header para nada*/ |
/*Block Titles*/ |
.content h1, #lastnews h1 |
{ |
margin-bottom:1px; |
color:#FFFFFF; |
background-color:#8EC73F; |
padding-left:10px; |
.content h1, #lastnews h1 { |
margin-bottom: 1px; |
color: #FFFFFF; |
background-color: #8EC73F; |
padding-left: 10px; |
} |
/*********************************************************************************/ |
/******************************* Index Page***************************************/ |
#flashTopNews * td, #flashCenterNews * td, #flashBottomNews * td |
{ |
vertical-align:top; |
#flashTopNews * td, #flashCenterNews * td, #flashBottomNews * td { |
vertical-align: top; |
} |
/*FlashTopNews*/ |
#flashTopNews |
{ |
padding:0; |
margin:0; |
#flashTopNews { |
padding: 0; |
margin: 0; |
} |
#flashTopNews .container |
{ |
background-color:#4d4d4d; |
height:100px; |
width:100%; |
margin:0; |
#flashTopNews .container { |
background-color: #4d4d4d; |
height: 100px; |
width: 100%; |
margin: 0; |
} |
#flashTopNews .container .textContainer |
{ |
margin:0; |
text-align :justify; |
#flashTopNews .container .textContainer { |
margin: 0; |
text-align: justify; |
} |
#flashTopNews .container .imageContainer |
{ |
margin:0; |
text-align :right; |
text-decoration:none; |
#flashTopNews .container .imageContainer { |
margin: 0; |
text-align: right; |
text-decoration: none; |
} |
#flashTopNews img |
{ |
height:167px; |
width:341px; |
#flashTopNews img { |
height: 167px; |
width: 341px; |
} |
#flashTopNews * td |
{ |
vertical-align:top; |
#flashTopNews * td { |
vertical-align: top; |
} |
#flashTopNews .container .textContainer h2 |
{ |
margin:0; |
margin-top:1px; |
#flashTopNews .container .textContainer h2 { |
margin: 0; |
margin-top: 1px; |
} |
#flashTopNews .container .textContainer p |
{ |
margin:0; |
margin-top:1px; |
#flashTopNews .container .textContainer p { |
margin: 0; |
margin-top: 1px; |
} |
#flashTopNews h2 a:link,#flashTopNews h2 a:visited |
{ |
color:#8EC73F; |
font-weight:bold; |
text-decoration:none; |
#flashTopNews h2 a:link, #flashTopNews h2 a:visited { |
color: #8EC73F; |
font-weight: bold; |
text-decoration: none; |
} |
#flashTopNews p a:link, #flashTopNews p a:visited |
{ |
color:#FFFFFF; |
text-decoration:none; |
#flashTopNews p a:link, #flashTopNews p a:visited { |
color: #FFFFFF; |
text-decoration: none; |
} |
/*FlashCenterNews*/ |
#flashCenterNews |
{ |
margin-top:2px; |
#flashCenterNews { |
margin-top: 2px; |
border-top-style: dotted; |
border-top-color:gray; |
border-top-color: gray; |
} |
#flashCenterNews .container |
{ |
width:100%; |
margin:0; |
#flashCenterNews .container { |
width: 100%; |
margin: 0; |
} |
#flashCenterNews .textContainer |
{ |
padding-top :10px; |
#flashCenterNews .textContainer { |
padding-top: 10px; |
} |
#flashCenterNews h2 a:link,#flashCenterNews h2 a:visited |
{ |
color:#8EC73F; |
font-weight:bold; |
text-decoration:none; |
#flashCenterNews h2 a:link, #flashCenterNews h2 a:visited { |
color: #8EC73F; |
font-weight: bold; |
text-decoration: none; |
} |
#flashCenterNews p a:link, #flashCenterNews p a:visited |
{ |
color:#4d4d4d; |
text-decoration:none; |
#flashCenterNews p a:link, #flashCenterNews p a:visited { |
color: #4d4d4d; |
text-decoration: none; |
} |
#flashCenterNews img,#flashCenterNews td.imageContainer |
{ |
width:133px; |
height:133px; |
#flashCenterNews img, #flashCenterNews td.imageContainer { |
width: 133px; |
height: 133px; |
} |
/*FlashBottomNews*/ |
#flashBottomNews img |
{ |
width:100px; |
height:100px; |
#flashBottomNews img { |
width: 100px; |
height: 100px; |
} |
#flashBottomNews h2 a:link,#flashBottomNews h2 a:visited |
{ |
color:#8EC73F; |
font-weight:bold; |
#flashBottomNews h2 a:link, #flashBottomNews h2 a:visited { |
color: #8EC73F; |
font-weight: bold; |
} |
#flashBottomNews p a:link,#flashBottomNews p a:visited |
{ |
color:#4d4d4d; |
#flashBottomNews p a:link, #flashBottomNews p a:visited { |
color: #4d4d4d; |
} |
/*Last News Block*/ |
#lastnews |
{ |
font-size:0.8em; |
#lastnews { |
font-size: 0.8em; |
} |
#lastnews ul |
{ |
#lastnews ul { |
list-style: none; |
width:160px; |
width: 160px; |
LIST-STYLE-TYPE: none; |
padding:0; |
margin:0; |
padding: 0; |
margin: 0; |
} |
#lastnews li |
{ |
margin:0; |
padding:0; |
#lastnews li { |
margin: 0; |
padding: 0; |
} |
#lastnews li h2 |
{ |
padding:0; |
padding-left:2px; |
margin:1px; |
#lastnews li h2 { |
padding: 0; |
padding-left: 2px; |
margin: 1px; |
} |
#lastnews li h2 a,.linkLeftMenu a |
{ |
text-decoration:none; |
#lastnews li h2 a, .linkLeftMenu a { |
text-decoration: none; |
} |
#lastnews li h2 a:link,.linkLeftMenu a:link |
{ |
color:#4d4d4d; |
#lastnews li h2 a:link, .linkLeftMenu a:link { |
color: #4d4d4d; |
} |
#lastnews li h2 a:visited,.linkLeftMenu a:visited |
{ |
color:#4d4d4d; |
#lastnews li h2 a:visited, .linkLeftMenu a:visited { |
color: #4d4d4d; |
} |
#lastnews li h2 a:hover,.linkLeftMenu a:hover |
{ |
color:#8EC73F; |
#lastnews li h2 a:hover, .linkLeftMenu a:hover { |
color: #8EC73F; |
} |
/**/ |
/*LEFT MENUS*/ |
#leftMenuModule h2 |
{ |
#leftMenuModule h2 { |
MARGIN: 0; |
color:#8EC73F; |
color: #8EC73F; |
} |
#leftMenuModule UL |
{ |
#leftMenuModule UL { |
MARGIN: 0; |
WIDTH: 155px; |
} |
/*********************************************************************************/ |
/****************** topnav **********************/ |
#topnav |
{ |
color:#FFFFFF; |
text-decoration:none; |
#topnav { |
color: #FFFFFF; |
text-decoration: none; |
BACKGROUND-COLOR: #8EC73F; |
FONT: 11px/20px "bitstream vera sans", "Lucida Grande", "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif |
FONT: 11px / 20px "bitstream vera sans", "Lucida Grande", "Trebuchet MS", Verdana, Arial, Helvetica, sans-serif |
} |
#topnav LI A:hover |
{ |
COLOR:#4d4d4d; |
#topnav LI A:hover { |
COLOR: #4d4d4d; |
BACKGROUND-COLOR: #FFFFFF |
} |
#topnav LI A |
{ |
color:#FFFFFF; |
text-decoration:none; |
#topnav LI A { |
color: #FFFFFF; |
text-decoration: none; |
} |
#topnav UL |
{ |
#topnav UL { |
PADDING-RIGHT: 0; |
PADDING-LEFT: 0; |
PADDING-BOTTOM: 10px; |
486,8 → 506,7 |
LIST-STYLE-TYPE: none |
} |
#topnav LI |
{ |
#topnav LI { |
PADDING-RIGHT: 0; |
DISPLAY: inline; |
PADDING-LEFT: 0; |
495,37 → 514,48 |
MARGIN: 0; |
PADDING-TOP: 0; |
} |
/*****************************************************************************************/ |
/************************************** Content Structure ********************************/ |
.contentPortal |
{ |
padding-left:10px; |
padding-top:10px; |
.contentPortal { |
padding-left: 10px; |
padding-top: 10px; |
} |
.content h2 |
.content h2 { |
font-size: 1em; |
} |
#pageStructure .content |
{ |
font-size:1em; |
border: 0; |
} |
.content .imageAnnouncement img |
{ |
width:341px; |
height:167px; |
} |
.content |
{ |
font-size:0.8em; |
border: 1px solid #8ec73f ; |
} |
.content a:link,.content a:visited |
{ |
color:#4d4d4d; |
.content { |
font-size: 0.8em; |
} |
.content a:hover |
{ |
color:#8EC73F |
.content a:link, .content a:visited { |
color: #4d4d4d; |
} |
.content,.contentPortal |
{ |
.content a:hover { |
color: #8EC73F |
} |
.content, .contentPortal { |
LEFT: 0; |
RIGHT: 0; |
WIDTH: 100%; |
533,28 → 563,24 |
VERTICAL-ALIGN: top; |
} |
.contentPortal |
{ |
.contentPortal { |
border-left: #8EC73F solid 2px; |
border-top: #8EC73F solid 2px; |
border-bottom: #8EC73F solid 2px; |
} |
.rightPagePortal |
{ |
background-color:#ededed; |
.rightPagePortal { |
background-color: #ededed; |
border-right: #8EC73F solid 2px; |
border-top: #8EC73F solid 2px; |
border-bottom: #8EC73F solid 2px; |
} |
/*****************************************************************************************/ |
/************************************* Footer Modules ***********************************/ |
#license UL |
{ |
#license UL { |
COLOR: #4D4D4D; |
PADDING-RIGHT: 0; |
PADDING-LEFT: 0; |
564,158 → 590,142 |
LIST-STYLE-TYPE: none; |
} |
#footer #organizations |
{ |
#footer #organizations { |
} |
#footer #sponsors |
{ |
#footer #sponsors { |
} |
#footer a:link,#footer a:visited |
{ |
color:#4d4d4d; |
#footer a:link, #footer a:visited { |
color: #4d4d4d; |
} |
#footer a:hover |
{ |
color:#8EC73F; |
#footer a:hover { |
color: #8EC73F; |
} |
/**************************************************************************************/ |
/******************************** Bar Module Color ************************************/ |
TD #topBar |
{ |
font-weight:bold; |
color:white; |
background-color:#8EC73F; |
padding-left:10px; |
TD #topBar { |
font-weight: bold; |
color: white; |
background-color: #8EC73F; |
padding-left: 10px; |
FONT-SIZE: 18px |
} |
/**************************************************************************************/ |
/******************************** Background Color ************************************/ |
/*Gray background*/ |
#backOne |
{ |
background-color:#4D4D4D; |
#backOne { |
background-color: #4D4D4D; |
} |
/**************************************************************************************/ |
/*************************Staff Links Structure***************************************/ |
.staffLinks P |
{ |
font-weight :bold; |
.staffLinks P { |
font-weight: bold; |
} |
/*************************************************************************************/ |
form , .boxHorizontal |
{ |
margin:0; |
padding:3px; |
border:0px #793B0D solid ; |
background-color:#FFFFFF; |
form, .boxHorizontal { |
margin: 0; |
padding: 3px; |
border: 0px #793B0D solid; |
background-color: #FFFFFF; |
} |
.boxHorizontal |
{ |
padding-top:33px; |
padding-left:180px; |
.boxHorizontal { |
padding-top: 33px; |
padding-left: 180px; |
} |
.form th, .boxHorizontal th |
{ |
margin:0; |
padding-left:10px; |
padding-top:3px; |
padding-bottom:3px; |
padding-right:15px; |
color:#4d4d4d; |
.form th, .boxHorizontal th { |
margin: 0; |
padding-left: 10px; |
padding-top: 3px; |
padding-bottom: 3px; |
padding-right: 15px; |
color: #4d4d4d; |
background-color: #FFFFFF; |
border: 0px solid #793B0D; |
font-size:0.86em; |
font-weight:bold; |
font-family:Helvetica,sans-serif; |
text-align:left; |
font-size: 0.86em; |
font-weight: bold; |
font-family: Helvetica, sans-serif; |
text-align: left; |
} |
.form td, .boxHorizontal td |
{ |
margin:0; |
padding-left:10px; |
padding-top:3px; |
padding-bottom:3px; |
padding-right:15px; |
color:#793B0D; |
.form td, .boxHorizontal td { |
margin: 0; |
padding-left: 10px; |
padding-top: 3px; |
padding-bottom: 3px; |
padding-right: 15px; |
color: #793B0D; |
background-color: #FFFFFF; |
border: 0px solid #793B0D; |
font-size:0.8em; |
font-family:Helvetica,sans-serif; |
vertical-align:middle; |
border: 0 solid #793B0D; |
font-size: 0.8em; |
font-family: Helvetica, sans-serif; |
vertical-align: middle; |
} |
.form .buttons td, .boxHorizontal .buttons td |
{ |
text-align:center; |
.form .buttons td, .boxHorizontal .buttons td { |
text-align: left; |
background-color: #FFFFFF; |
} |
.form textarea, .boxHorizontal textarea |
{ |
width:600px; |
height:300px; |
.form textarea, .boxHorizontal textarea { |
width: 600px; |
height: 300px; |
} |
.form input[type="text"], .form input[type="password"] |
{ |
width:600px; |
.form input[type="text"], .form input[type="password"] { |
width: 600px; |
} |
.form input.date |
{ |
width:100px; |
.form input.date { |
width: 100px; |
} |
/* PAGE LAYOUTS */ |
.seccao, .seccao p |
{ |
padding:30px; |
font-size:0.95em; |
.seccao, .seccao p { |
padding: 10px; |
font-size: 0.95em; |
font-family: Helvetica, sans-serif; |
} |
.seccao p |
{ |
padding:4px; |
.seccao p { |
padding: 4px; |
} |
.seccao h1 |
{ |
font-size:1.1em; |
font-weight:bold; |
font-family:Helvetica,sans-serif; |
color:red; |
.seccao h1 { |
font-size: 1.1em; |
font-weight: bold; |
font-family: Helvetica, sans-serif; |
color: red; |
} |
.seccao .seccao h1 |
{ |
font-size:1em; |
font-weight:bold; |
font-family: Helvetica,sans-serif; |
color:red; |
.seccao .seccao h1 { |
font-size: 1em; |
font-weight: bold; |
font-family: Helvetica, sans-serif; |
color: red; |
} |
/*Butões*/ |
input[type="text"] , input[type="password"] |
{ |
input[type="text"], input[type="password"] { |
FONT-SIZE: 0.8em; |
FONT-FAMILY:Helvetica; |
FONT-FAMILY: Helvetica; |
} |
input[type="button"], input[type="submit"] |
{ |
input[type="button"], input[type="submit"] { |
color: #4d4d4d; |
border-top-width: 1px; |
border-right-width: 1px; |
725,7 → 735,7 |
border-right-style: solid; |
border-bottom-style: solid; |
border-left-style: solid; |
border-top-color:#4d4d4d; |
border-top-color: #4d4d4d; |
border-right-color: #4d4d4d; |
border-bottom-color: #4d4d4d; |
border-left-color: #4d4d4d; |
735,8 → 745,7 |
background-attachment: scroll; |
} |
input[type="button"]:hover, input[type="submit"]:hover |
{ |
input[type="button"]:hover, input[type="submit"]:hover { |
background-color: #8EC73F; |
background-image: none; |
background-repeat: repeat; |
746,97 → 755,126 |
} |
/*Errors and Warnings*/ |
.statusOK |
{ |
.statusOK { |
padding: 2px; |
list-style-type: none; |
color: green; |
background-color: #FFEEDD; |
} |
.statusERROR |
{ |
color:red; |
.statusERROR { |
color: red; |
} |
.statusWARNING |
{ |
.statusWARNING { |
padding: 2px; |
list-style-type: none; |
color: yellow; |
background-color: black; |
} |
.requiredField{ |
.requiredField { |
color: red; |
} |
.statusSearch{ |
color:lightblue; |
.statusSearch { |
color: lightblue; |
} |
/********************************************** Navigation Menu ********************************/ |
ul.menubar{ |
ul.menubar { |
margin: 0px; |
padding: 0px; |
background-color: #FFFFFF; /* IE6 Bug */ |
font-size: 100%; |
} |
.submenu |
{ |
FONT-FAMILY: "Lucida Grande","Trebuchet MS","bitstream vera sans",Verdana,Arial,Helvetica,sans-serif; |
font-size:0.8em; |
.submenu { |
FONT-FAMILY: "Lucida Grande", "Trebuchet MS", "bitstream vera sans", Verdana, Arial, Helvetica, sans-serif; |
font-size: 0.8em; |
} |
.menu |
{ |
FONT-FAMILY: "Lucida Grande","Trebuchet MS","bitstream vera sans",Verdana,Arial,Helvetica,sans-serif; |
font-size:0.8em; |
.menu { |
FONT-FAMILY: "Lucida Grande", "Trebuchet MS", "bitstream vera sans", Verdana, Arial, Helvetica, sans-serif; |
font-size: 0.8em; |
} |
ul.menubar .submenu{ |
margin: 0px; |
padding: 0px; |
ul.menubar .submenu { |
margin: 0; |
padding: 0; |
list-style: none; |
background-color: #FFFFFF; |
float:left; |
float: left; |
} |
ul.menubar ul.menu{ |
ul.menubar ul.menu { |
display: none; |
position: absolute; |
margin: 0px; |
margin: 0; |
} |
ul.menubar a{ |
ul.menubar a { |
display:block; |
display: block; |
text-decoration: none; |
color: #4D4D4D; |
padding-left:5px; |
padding-right:5px; |
padding-top:2px; |
padding-bottom:2px; |
padding-left: 5px; |
padding-right: 5px; |
padding-top: 2px; |
padding-bottom: 2px; |
} |
ul.menubar a:hover{ |
display:block; |
ul.menubar a:hover { |
display: block; |
text-decoration: none; |
color: #4D4D4D; |
padding-left:5px; |
padding-right:5px; |
padding-top:2px; |
padding-bottom:2px; |
padding-left: 5px; |
padding-right: 5px; |
padding-top: 2px; |
padding-bottom: 2px; |
} |
.menuTop |
#menuTop |
{ |
width:100%; |
} |
#menuTop td.searchTab form |
{ |
text-align:right; |
} |
#menuTop td.searchTab form table td |
{ |
vertical-align:middle; |
} |
#menuTop td.searchTab input[type="text"] |
{ |
width:200px; |
} |
.menu a:hover{ |
display:block; |
#menuTop form td,#menuTop form th |
{ |
font-size: 0.85em; |
} |
#menuTop td.searchTab |
{ |
float:right; |
text-align:left; |
} |
#menuTop td |
{ |
vertical-align:top; |
} |
.menu a:hover { |
display: block; |
/* border-left: none; |
border-right: none; |
border-top: none; |
844,7 → 882,7 |
} |
ul.menu, ul.menu ul{ |
ul.menu, ul.menu ul { |
margin: 0; |
padding: 2px; |
/* border-left: 1px solid #ccc; |
854,27 → 892,25 |
background-color: #FFFFFF; /* IE6 Bug */ |
} |
ul.menu li{ |
ul.menu li { |
position: relative; |
list-style: none; |
/*border: 0px;*/ |
opacity:0.9; |
list-style: none; /*border: 0px;*/ |
opacity: 0.9; |
background-color: #4D4D4D; |
width:250px; |
width: 250px; |
} |
ul.menu li a{ |
ul.menu li a { |
display: block; |
text-decoration: none; |
/* border-bottom: 0px;*/ |
text-decoration: none; /* border-bottom: 0px;*/ |
/*color: #4D4D4D;*/ |
/* background-color: #FFFFFF; */ |
color: #4d4d4d; |
background-color: #CCCCCC; |
padding-left:2px; |
padding-right:2px; |
padding-top:2px; |
padding-bottom:2px; |
padding-left: 2px; |
padding-right: 2px; |
padding-top: 2px; |
padding-bottom: 2px; |
} |
/* |
888,10 → 924,9 |
padding-right:2px; |
} |
*/ |
.shadow UL |
{ |
background :transparent; |
width:250px; |
.shadow UL { |
background: transparent; |
width: 250px; |
color: inherit; |
} |
902,27 → 937,34 |
} */ |
/* Fix IE. Hide from IE Mac \*/ |
* html ul.menu li { float: left; height: 1%; } |
* html ul.menu li a { height: 1%; } |
* html ul.menu li { |
float: left; |
height: 1%; |
} |
* html ul.menu li a { |
height: 1%; |
} |
/* End */ |
ul.menu ul{ |
ul.menu ul { |
position: absolute; |
display: none; |
left: 149px; /* Set 1px less than menu width */ |
top: 0px; |
} |
ul.menu li.submenu ul |
{ |
ul.menu li.submenu ul { |
display: none; |
} /* Hide sub-menus initially */ |
} |
ul.menu li a:hover |
{ |
/* Hide sub-menus initially */ |
ul.menu li a:hover { |
background-color: #8EC73F; |
color: #FFFFFF; |
text-decoration :underline; |
text-decoration: underline; |
} |
/***********************************************************************************************/ |
/impl/src/web/css/intranet.css |
---|
New file |
0,0 → 1,75 |
/* --- Main Navigation --- */ |
#body,#page |
{ |
width:950px; |
margin-left: auto; |
margin-right: auto; |
} |
#testeTop { |
border-bottom: 10px solid #ebe6d6; |
} |
#testeTop ul { |
margin: 0; |
padding: 0; |
} |
#testeTop ul li { |
margin: 0; |
padding: 0; |
} |
#testeTop ul li span { |
margin: 0; |
padding: 0; |
} |
#testeTop { |
float: left; |
width: 100%; |
font-size: 11px; |
padding-top: 0.5em; |
} |
#testeTop ul { |
margin: 0; |
margin-left: 200px; |
list-style: none; |
} |
#testeTop li { |
float: left; |
padding: 0; |
font-family: Tahoma, Verdana, Sans-Serif; |
margin: 0; |
} |
#testeTop ul li { |
margin-right: 2px; |
} |
#testeTop li a { |
float: left; |
font-size: 100%; |
font-weight: normal; |
text-decoration: none; |
white-space: nowrap; |
} |
#testeTop li a span { |
float: left; |
padding: 0.4em 8px; |
cursor: pointer; /* IE6 tweak */ |
} |
#testeTop { border-top: 4px solid #31C70F; background: #5fC73F url(../images/0grad01.gif) bottom repeat-x; } |
#testeTop li a { display: block; background: #11a71F url(../images/0corner_left_01.gif) top left repeat-x;} |
#testeTop li a span { background: url(../images/0corner_right_01.gif) top right no-repeat; } |
#testeTop ul li.selected a { background: #ebe6d6 url(../images/0corner_left_span_01.gif) top left no-repeat; } |
#testeTop ul li.selected a span { background: url(../images/0corner_right_span_01.gif) top right no-repeat; } |
#testeTop ul li.selected a:hover { background: #ebe6d6 url(../images/0corner_left_span_01.gif) top left no-repeat; color: #000; } |
#testeTop ul li.selected a:hover span { background: url(../images/0corner_right_span_01.gif) top right no-repeat; color: #000; } |
#testeTop li a:hover { background: #23C71F url(../images/0corner_left_light_01.gif) top left repeat-x; } |
#testeTop li a:hover span { background: url(../images/0corner_right_light_01.gif) top right no-repeat; } |
#testeTop a, #testeTop a:visited, #testeTop a:hover |
{ |
COLOR:BLACK; |
} |
/impl/src/web/js/functions.js |
---|
30,4 → 30,4 |
f = fso.GetFile(path); |
return(new Date(f.DateLastModified).getDate()); |
} |
} |
/impl/src/web/js/ajax.js |
---|
86,6 → 86,22 |
} |
} |
function hide(id,showId) |
{ |
getObjectById(id).style.visibility='hidden'; |
getObjectById(id).style.position='absolute'; |
getObjectById(showId).style.visibility='visible'; |
getObjectById(showId).style.position='relative'; |
} |
function show(id,hideId) |
{ |
getObjectById(id).style.visibility='visible'; |
getObjectById(id).style.position='relative'; |
getObjectById(hideId).style.visibility='hidden'; |
getObjectById(hideId).style.position='absolute'; |
} |
/** |
* Creates a new XmlHttpObject |
* @author Jorge Machado |
158,7 → 174,25 |
} |
/*************************************************** |
Search |
***************************************************/ |
var xmlHttpSearch; |
var searchResultsDiv; |
function searchCall(div,query,searchType,page,module,action) |
{ |
searchResultsDiv = div; |
xmlHttpSearch=GetXmlHttpObject(stateChangedSearchCall); |
startRequest(xmlHttpSearch,"dispatch=searchModule&query=" + query + "&searchType=" + searchType + "&page=" + page + "&module=" + module,"",stateChangedSearchCall,"",action); |
} |
function stateChangedSearchCall() |
{ |
if (xmlHttpSearch.readyState==4 || xmlHttpSearch.readyState=="complete") |
{ |
getObjectById(searchResultsDiv).innerHTML=xmlHttpSearch.responseText; |
} |
} |
172,3 → 206,6 |
/impl/src/web/layout/ajaxLayout.jsp |
---|
File deleted |
/impl/src/web/layout/emptyLayout.jsp |
---|
New file |
0,0 → 1,4 |
<%@page pageEncoding="UTF-8" contentType="text/html"%> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<tiles:insert attribute="body" /> |
/impl/src/web/layout/layout1.jsp |
---|
12,46 → 12,52 |
<script type="text/javascript"> |
function horizontal() { |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
} |
</script> |
</head> |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table class="pageDefault"> |
<tr> |
<td colspan="2"><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td id="leftPage"> |
<tiles:insert attribute="navigation" /> |
</td> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="body" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
<table width="100%"> |
<tr> |
<td align="center"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table class="pageDefault"> |
<tr> |
<td colspan="2"><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td id="leftPage"> |
<tiles:insert attribute="navigation" /> |
</td> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="body" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
</td> |
</tr> |
</table> |
</body> |
</html:html> |
/impl/src/web/layout/layout2.jsp |
---|
12,43 → 12,49 |
<script type="text/javascript"> |
function horizontal() { |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
} |
</script> |
</head> |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table id="page"> |
<tr> |
<td><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="body" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
<table width="100%"> |
<tr> |
<td align="center"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table id="page"> |
<tr> |
<td><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="body" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
</td> |
</tr> |
</table> |
</body> |
</html:html> |
/impl/src/web/layout/layoutPortal.jsp |
---|
32,6 → 32,9 |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();"> |
<table width="100%"> |
<tr> |
<td align="center"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
62,6 → 65,9 |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
</td> |
</tr> |
</table> |
</body> |
</html:html> |
/impl/src/web/layout/layout3.jsp |
---|
12,46 → 12,52 |
<script type="text/javascript"> |
function horizontal() { |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
} |
</script> |
</head> |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table id="page"> |
<tr> |
<td colspan="2"><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="body" /> |
</td> |
<td class="rightPage"> |
<tiles:insert attribute="navigation" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
<table width="100%"> |
<tr> |
<td align="center"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table id="page"> |
<tr> |
<td colspan="2"><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="body" /> |
</td> |
<td class="rightPage"> |
<tiles:insert attribute="navigation" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
</td> |
</tr> |
</table> |
</body> |
</html:html> |
/impl/src/web/layout/layout4.jsp |
---|
31,6 → 31,9 |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();"> |
<table width="100%"> |
<tr> |
<td align="center"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
56,6 → 59,9 |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
</td> |
</tr> |
</table> |
</body> |
</html:html> |
/impl/src/web/layout/navigationLeft.jsp |
---|
22,6 → 22,9 |
<li> |
<html:link action="/startSubmitAnnouncement"><bean:message key="submit.announcement"/></html:link> |
</li> |
<li> |
<html:link action="/startSubmitBlog"><bean:message key="submit.blog"/></html:link> |
</li> |
<!--OTHER PLACES--> |
<h2><bean:message key="Others"/></h2> |
/impl/src/web/layout/navigationTop.jsp |
---|
6,73 → 6,118 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %> |
<div class="menuTop"> |
<table id="menuTop" cellpadding="0" cellspacing="0"> |
<tr> |
<td> |
<ul id="menu_dropdown" class="menubar"> |
<li class="submenu"><a href="#">Apresentação</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Mensagem do Presidente</a></li> |
<li><a href="#">A ESTG e a sua missão</a></li> |
<li><a href="#">História</a></li> |
<li><a href="#">Localização</a></li> |
<li><a href="#">Factos e números</a></li> |
<li><a href="#">A ESTG em Fotografias</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Organização</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Assembleia de Representantes</a></li> |
<li><a href="#">Conselho Directivo</a></li> |
<li><a href="#">Conselho Ciêntifico</a></li> |
<li><a href="#">Conselho Pedagógico</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Áreas</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Engenharias</a></li> |
<li><a href="#">Ciências Empresariais</a></li> |
<li><a href="#">Ciências Humanas</a></li> |
<li><a href="#">Design</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Ensino</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Cursos</a></li> |
<li><a href="#">Mestrados</a></li> |
<li><a href="#">Pós Graduações</a></li> |
<li><a href="#">Cet´s</a></li> |
<li><a href="#">Formação TIC</a></li> |
<li><a href="#">Formação CTOC</a></li> |
<li><a href="#">Acções de Formação de Curta Duração</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">I&D</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">OTIC-INOVAA</a></li> |
<li><a href="#">POLIEMPRIENDE</a></li> |
<li><a href="#">Gab. Empreendedorismo</a></li> |
<li><a href="#">SGQ</a></li> |
<li><a href="#">Protocolos com o Exterior</a></li> |
<li><a href="#">LAQI Lab. Anal. Qui. e Industriais</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Apresentação</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Mensagem do Presidente</a></li> |
<li><a href="#">A ESTG e a sua missão</a></li> |
<li><a href="#">História</a></li> |
<li><a href="#">Localização</a></li> |
<li><a href="#">Factos e números</a></li> |
<li><a href="#">A ESTG em Fotografias</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Organização</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Assembleia de Representantes</a></li> |
<li><a href="#">Conselho Directivo</a></li> |
<li><a href="#">Conselho Ciêntifico</a></li> |
<li><a href="#">Conselho Pedagógico</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Áreas</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Engenharias</a></li> |
<li><a href="#">Ciências Empresariais</a></li> |
<li><a href="#">Ciências Humanas</a></li> |
<li><a href="#">Design</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">Ensino</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">Cursos</a></li> |
<li><a href="#">Mestrados</a></li> |
<li><a href="#">Pós Graduações</a></li> |
<li><a href="#">Cet´s</a></li> |
<li><a href="#">Formação TIC</a></li> |
<li><a href="#">Formação CTOC</a></li> |
<li><a href="#">Acções de Formação de Curta Duração</a></li> |
</ul> |
</div> |
</li> |
<li class="submenu"><a href="#">I&D</a> |
<div class="shadow "> |
<ul class="menu"> |
<li><a href="#">OTIC-INOVAA</a></li> |
<li><a href="#">POLIEMPRIENDE</a></li> |
<li><a href="#">Gab. Empreendedorismo</a></li> |
<li><a href="#">SGQ</a></li> |
<li><a href="#">Protocolos com o Exterior</a></li> |
<li><a href="#">LAQI Lab. Anal. Qui. e Industriais</a></li> |
</ul> |
</div> |
</li> |
</ul> |
<estgweb:pageUrlStat><img src="<%=request.getContextPath()%>/imgs/grafico.gif" style="border:0;"></estgweb:pageUrlStat> |
<estgweb:pageUrlStat><img src="<%=request.getContextPath()%>/imgs/grafico.gif" style="border:0;"> |
</estgweb:pageUrlStat> |
</td> |
<td class="searchTab"> |
<html:form action="/search"> |
<input type="hidden" name="dispatch" value="search"> |
<table> |
<tr> |
<td> |
<bean:message key="search"/> |
</td> |
<td> |
<html:text styleClass="small" property="query" value=""/> |
</td> |
<td> |
<input type="button" onclick="set(this.form,'search');this.form.submit()" value="<bean:message key="search"/>"> |
</td> |
</tr> |
<tr> |
<td nowrap="nowrap" colspan="3"> |
<table> |
<tr> |
<td><html:radio property="searchType" value="search.type.all"/></td> |
<td><bean:message key="search.type.all"/></td> |
<td><html:radio property="searchType" value="search.type.any"/></td> |
<td><bean:message key="search.type.any"/></td> |
<td><html:radio property="searchType" value="search.type.phrase"/></td> |
<td><bean:message key="search.type.phrase"/></td> |
</tr> |
</table> |
</td> |
</tr> |
</table> |
</html:form> |
</td> |
</tr> |
</table> |
</div> |
/impl/src/web/layout/layoutintranet.jsp |
---|
New file |
0,0 → 1,57 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<html:html locale="true"> |
<head> |
<title><bean:message key="site.title"/> - <tiles:getAsString name="title"/></title> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/css/intranet.css"/> |
<jsp:include page="/layout/scripts.jsp"/> |
<script type="text/javascript"> |
function horizontal() { |
var navItems = document.getElementById("menu_dropdown").getElementsByTagName("li"); |
for (var i=0; i< navItems.length; i++) { |
if(navItems[i].className == "submenu") |
{ |
if(navItems[i].getElementsByTagName('ul')[0] != null) |
{ |
navItems[i].onmouseover=function() { |
this.getElementsByTagName('ul')[0].style.display="block";} |
navItems[i].onmouseout=function() {this.getElementsByTagName('ul')[0].style.display="none";} |
} |
} |
} |
} |
</script> |
</head> |
<body class="small" marginwidth="0" marginheight="0" bgcolor="#ffffff" topmargin="0" leftmargin="0" onload="horizontal();"> |
<div id="body"> |
<div id="header"> |
<tiles:insert attribute="header"/> |
</div> |
<table id="page"> |
<tr> |
<td><tiles:insert attribute="navigationTop"/></td> |
</tr> |
<tr> |
<td class="content"> |
<tiles:insert attribute="topnav"/> |
<tiles:insert attribute="separators"/> |
<tiles:insert attribute="body" /> |
</td> |
</tr> |
</table> |
<div id="footer"> |
<tiles:insert attribute="footer"/> |
</div> |
</div> |
</body> |
</html:html> |
/impl/src/web/layout/separators.jsp |
---|
New file |
0,0 → 1,46 |
<%-- |
Created by IntelliJ IDEA. |
User: Susana Monteiro |
Date: 23/Abr/2008 |
Time: 15:05:50 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<div id="testeTop"> |
<% |
int sep = Integer.parseInt(request.getParameter("separator")); |
String sep1 = ""; |
String sep2 = ""; |
String sep3 = ""; |
String link1 = "href=\"" + request.getContextPath() + "/startTeste2.do?separator=1\""; |
String link2 = "href=\"" + request.getContextPath() + "/startTeste2.do?separator=2\""; |
String link3 = "href=\"" + request.getContextPath() + "/startTeste2.do?separator=3\""; |
if(sep == 1) |
{ |
sep1 ="class=\"selected\""; |
link1 = ""; |
} |
else if(sep == 2) |
{ |
sep2 ="class=\"selected\""; |
link2 = ""; |
} |
else if(sep == 3) |
{ |
link3 = ""; |
sep3 ="class=\"selected\""; |
} |
%> |
<div id="separators"> |
<ul> |
<li <%=sep1%>> |
<a <%=link1%>><span> Home </span></a> |
</li> |
<li <%=sep2%>> <a <%=link2%>> <span>Cadeiras</span> </a></li> |
<li <%=sep3%>> <a <%=link3%>><span>Perfil</span> </a></li> |
</ul> |
</div> |
</div> |
/impl/src/web/public/search/searchResults.jsp |
---|
New file |
0,0 → 1,66 |
<%@ page import="pt.estgp.estgweb.services.common.*" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<div id="searchResults" class="listClean"> |
<ul> |
<logic:iterate id="searchResults" name="ICommonSearchResults" property="searchResults" |
type="pt.estgp.estgweb.services.common.ISearchResults"> |
<li> |
<h2> |
<bean:message key="${searchResults.module.messageKey}"/> |
<b>(${searchResults.totalResults})</b> <a id="${searchResults.module.messageKey}SeeMore" |
href="javascript:show('${searchResults.module.messageKey}','${searchResults.module.messageKey}SeeMore')">ver |
mais</a></h2> |
<div class="module" id="<%=searchResults.getModule().getMessageKey()%>"> |
<div id="${searchResults.module.messageKey}Results"> |
<logic:iterate id="result" name="searchResults" property="results" |
type="pt.estgp.estgweb.services.common.IResult"> |
<div class="result"> |
<h2><a href="<%=request.getContextPath()%>${result.url}">${result.title}</a> |
<logic:notEmpty name="result" property="subTitle"> |
( |
<logic:equal value="true" name="result" property="subTitleKey"> |
<bean:message key="${result.subTitle}"/> |
</logic:equal> |
<logic:notEqual value="true" name="result" property="subTitleKey"> |
${result.subTitle} |
</logic:notEqual> |
) |
</logic:notEmpty> |
</h2> |
<p>${result.bestFragments} ...</p> |
</div> |
</logic:iterate> |
Pages: |
<logic:equal value="true" name="searchResults" property="hasPreviousPage"> |
<a href="javascript:searchCall('${ISearchResults.module.messageKey}Results','${ISearchResults.query}','${ISearchResults.searchType}','${ISearchResults.previousPage}','${ISearchResults.module.messageKey}','<%=request.getContextPath()%>/search.do')">< previous</a> |
</logic:equal> |
${searchResults.page2Screen} |
<logic:equal value="true" name="searchResults" property="hasNextPage"> |
<a href="javascript:searchCall('${searchResults.module.messageKey}Results','${searchResults.query}','${searchResults.searchType}','${searchResults.nextPage}','${searchResults.module.messageKey}','<%=request.getContextPath()%>/search.do')">next ></a> |
</logic:equal> |
</div> |
<h3> |
<a href="javascript:hide('${searchResults.module.messageKey}','${searchResults.module.messageKey}SeeMore')">Fechar</a> |
</h3> |
</div> |
</li> |
</logic:iterate> |
<li> |
<h2>TESTE DE APARENCIA NAO TA FEITO Eventos <b>(4)</b> <a href="javascript:show('${searchResults.module.messageKey}')">ver mais</a></h2> |
</li> |
<li> |
<h2>TESTE DE APARENCIA NAO TA FEITO Pessoas <b>(42)</b> <a href="javascript:show('${searchResults.module.messageKey}')">ver mais</a></h2> |
</li> |
</ul> |
</div> |
/impl/src/web/public/search/searchForm.jsp |
---|
New file |
0,0 → 1,51 |
<%@ page import="pt.estgp.estgweb.web.form.commons.SearchForm" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<html:errors/> |
<% |
String query = request.getParameter("query"); |
String searchType = request.getParameter("searchType"); |
SearchForm searchForm = new SearchForm(); |
searchForm.setQuery(query); |
searchForm.setSearchType(searchType); |
request.setAttribute("SearchForm", searchForm); |
%> |
<html:form action="/search"> |
<input type="hidden" name="dispatch" value="search"> |
<table> |
<tr> |
<td> |
<bean:message key="search"/> |
</td> |
<td> |
<html:text size="100%" styleClass="small" property="query" value=""/> |
</td> |
<td> |
<input type="button" onclick="set(this.form,'search');this.form.submit()" value="<bean:message key="search"/>"> |
</td> |
</tr> |
<tr> |
<td nowrap="nowrap" colspan="3"> |
<table> |
<tr> |
<td><html:radio property="searchType" value="search.type.all"/></td> |
<td><bean:message key="search.type.all"/></td> |
<td><html:radio property="searchType" value="search.type.any"/></td> |
<td><bean:message key="search.type.any"/></td> |
<td><html:radio property="searchType" value="search.type.phrase"/></td> |
<td><bean:message key="search.type.phrase"/></td> |
</tr> |
</table> |
</td> |
</tr> |
</table> |
</html:form> |
/impl/src/web/public/search/searchResultsModule.jsp |
---|
New file |
0,0 → 1,37 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ page import="pt.estgp.estgweb.services.common.*" %> |
<%@ page import="pt.estgp.estgweb.services.common.*" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<logic:iterate id="result" name="ISearchResults" property="results" |
type="pt.estgp.estgweb.services.common.IResult"> |
<div class="result"> |
<h2><a href="<%=request.getContextPath()%>${result.url}">${result.title}</a> |
<logic:notEmpty name="result" property="subTitle"> |
( |
<logic:equal value="true" name="result" property="subTitleKey"> |
<bean:message key="${result.subTitle}"/> |
</logic:equal> |
<logic:notEqual value="true" name="result" property="subTitleKey"> |
${result.subTitle} |
</logic:notEqual> |
) |
</logic:notEmpty> |
</h2> |
<p>${result.bestFragments} ...</p> |
</div> |
</logic:iterate> |
Pages: |
<logic:equal value="true" name="ISearchResults" property="hasPreviousPage"> |
<a href="javascript:searchCall('${ISearchResults.module.messageKey}Results','${ISearchResults.query}','${ISearchResults.searchType}','${ISearchResults.previousPage}','${ISearchResults.module.messageKey}','<%=request.getContextPath()%>/search.do')">< previous</a> |
</logic:equal> |
${ISearchResults.page2Screen} |
<logic:equal value="true" name="ISearchResults" property="hasNextPage"> |
<a href="javascript:searchCall('${ISearchResults.module.messageKey}Results','${ISearchResults.query}','${ISearchResults.searchType}','${ISearchResults.nextPage}','${ISearchResults.module.messageKey}','<%=request.getContextPath()%>/search.do')">next ></a> |
</logic:equal> |
/impl/src/web/public/search/noresults.jsp |
---|
New file |
0,0 → 1,21 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-tiles.tld" prefix="tiles" %> |
<div class="seccao"> |
<bean:message key="search.no.results"/> |
<b> |
<%=request.getParameter("query")%> |
</b> |
<br/> |
<bean:message key="search.no.results.suggest"/>:<br/> |
<ul> |
<li><bean:message key="search.no.results.suggest.1"/></li> |
<li><bean:message key="search.no.results.suggest.2"/></li> |
<li><bean:message key="search.no.results.suggest.3"/></li> |
</ul> |
</div> |
<jsp:include page="/public/search/searchForm.jsp"/> |
/impl/src/web/public/search/topnavSearchResults.jsp |
---|
New file |
0,0 → 1,11 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="jomm.web.utils.NavPlaceServer"%> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/Welcome.do", "Home"); |
topNav.addNavPlace("/startSearch.do?query=" + request.getParameter("query") + "&searchType=" +request.getParameter("searchType"), "search.form"); |
topNav.addNavPlace(null, "search.results"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/public/search/topnavSearchForm.jsp |
---|
New file |
0,0 → 1,12 |
<%@page contentType="text/html"%> |
<%@page pageEncoding="UTF-8"%> |
<%@page import="java.util.*"%> |
<%@ page import="jomm.web.utils.NavPlace" %> |
<%@ page import="jomm.web.utils.NavPlaceServer" %> |
<%@ page import="jomm.web.utils.TopNav" %> |
<% |
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request); |
topNav.addNavPlace("/Welcome.do", "Home"); |
topNav.addNavPlace(null, "search.form"); |
%> |
<jsp:include page="/layout/topnav.jsp"/> |
/impl/src/web/public/blogs/blog.jsp |
---|
New file |
0,0 → 1,30 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %> |
<jsp:useBean id="BlogView" type="pt.estgp.estgweb.domain.views.BlogView" scope="request"/> |
<div class="seccao"> |
<h1><bean:write name="BlogView" property="title"/></h1> |
<p> |
<% |
if(BlogView.getImage() != null) |
{ |
%> |
<img align="left" alt="<%=BlogView.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=BlogView.getImage().getId()%>"> |
<% |
} |
%> |
${BlogView.description} |
</p> |
<p class="pFooter"> |
<bean:message key="blog.owner"/> <a href="mailto:${BlogView.ownerEmail}">${BlogView.owner.name}</a> <bean:message key="at"/> ${BlogView.formatedSaveDate} |
</p> |
</div> |
/impl/src/web/public/announcements/loadAnnouncement.jsp |
---|
7,32 → 7,34 |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<jsp:useBean id="Announcement" type="pt.estgp.estgweb.domain.views.AnnouncementView" scope="request"/> |
<div class="pageSection"> |
<div class="sectionTitle"> |
<h2>${Announcement.title}</h2> |
<div class="seccao"> |
<h2>${Announcement.title}</h2> |
<p> |
<% |
if(Announcement.getBigImage() != null) |
{ |
%> |
<div class="imageAnnouncement"> |
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>"> |
</div> |
<div class="pageText"> |
<% |
if(Announcement.getBigImage() != null) |
{ |
%> |
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getBigImage().getId()%>"> |
<% |
} |
else if(Announcement.getSmallImage() != null) |
{ |
%> |
<% |
} |
else if(Announcement.getSmallImage() != null) |
{ |
%> |
<div class="imageAnnouncement"> |
<img align="left" alt="<%=Announcement.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=Announcement.getSmallImage().getId()%>"> |
<% |
} |
%> |
${Announcement.text} |
<% |
if(Announcement.getUrl()!=null) |
{ |
%> |
<html:link href="${Announcement.url}">Ver +</html:link> |
<% |
</div> |
<% |
} |
%> |
${Announcement.text} |
<% |
if(Announcement.getUrl()!=null) |
{ |
%> |
<html:link href="${Announcement.url}">Ver +</html:link> |
<% |
}%> |
</div> |
</p> |
</div> |
/impl/src/web/user/index.jsp |
---|
New file |
0,0 → 1,12 |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %> |
<estgweb:hasRole role="teacher"> |
</estgweb:hasRole> |
/impl/src/web/user/home.jsp |
---|
New file |
0,0 → 1,8 |
<%-- |
Created by IntelliJ IDEA. |
User: Susana Monteiro |
Date: 23/Abr/2008 |
Time: 15:10:16 |
To change this template use File | Settings | File Templates. |
--%> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
/impl/gen/java/pt/estgp/estgweb/domain/Course.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonth.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDayId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
/impl/gen/java/pt/estgp/estgweb/domain/SessionObject.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/GenericUser.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/User.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYear.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatMonthId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
/impl/gen/java/pt/estgp/estgweb/domain/UserSession.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/Image.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GenericUserDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthIdDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UserSessionDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/ImageDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TesteDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectIdDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/BlogPostDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatYearIdDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseUserAssociationDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GroupDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/CourseDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatMonthDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/UrlStatDayIdDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectDao.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain.dao.impl; |
// Generated 21/Abr/2008 15:54:30 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:27 by Hibernate Tools 3.2.0.b9 |
import org.apache.log4j.Logger; |
/impl/gen/java/pt/estgp/estgweb/domain/Blog.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/Teste.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
/impl/gen/java/pt/estgp/estgweb/domain/BlogPost.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/Group.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/CourseUserAssociation.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatYearId.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java |
---|
1,5 → 1,5 |
package pt.estgp.estgweb.domain; |
// Generated 22/Abr/2008 19:12:49 by Hibernate Tools 3.2.0.b9 |
// Generated 23/Abr/2008 18:42:25 by Hibernate Tools 3.2.0.b9 |
import java.util.Date; |
/impl/build.xml |
---|
60,6 → 60,9 |
<fileset dir="${common.lib.dir}/jfreechart"> |
<include name="**/*.jar"/> |
</fileset> |
<fileset dir="${common.lib.dir}/lucene"> |
<include name="**/*.jar"/> |
</fileset> |
</path> |
255,6 → 258,9 |
<fileset dir="${common.lib.dir}/jfreechart"> |
<include name="**/*.jar"/> |
</fileset> |
<fileset dir="${common.lib.dir}/lucene"> |
<include name="**/*.jar"/> |
</fileset> |
</copy> |
<copy file="${dist.dir}/estgweb.jar" todir="${build.dir.war}/WEB-INF/lib"/> |
<copy todir="${build.dir.war}/WEB-INF" overwrite="true"> |
/impl |
---|
Property changes: |
Added: svn:ignore |
+ local.properties |
/common/mysql/mysql-connector-java-3.0.15-ga-bin.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/common/mysql/mysql-connector-java-5.1.6-bin.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/common/lucene/lucene-highlighter-2.2.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/common/lucene/lucene-similarity-2.2.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/common/lucene/lucene-core-2.2.0.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |