Subversion Repositories bacoAlunos

Compare Revisions

Ignore whitespace Rev 46 → Rev 67

/log.txt
1,5 → 1,5
Estão feitos os templates base para o pedro começar a fazer as paginas á vontade.
Foi criado dois tipos diferentes de templates:
 
*templatePortal-template mais especifico para as páginas que vão ter listas de links para outras páginas
*templatePage-template genérico com o qual o pedro têm vários objectos para poder contruir grande parte dos sites da escola
-Auto validação a funcionar
-Corrigido noticias do lado esquerdo nos portais o tipo que aparecia estava errado
-No index os announcements center e bottom já carregam as imagens da base de dados, carregam o tipo de noticas certo
-Acrescentado links para cantinas e associação de estudantes nos alunos (falta por a redirecionar)
-Atribuição automatica de roles atraves do LDAP feita (fazer alguns testes)
/impl/conf/language/MessageResourcesAnnouncements.properties
26,4 → 26,7
 
announcement.protocol.error.http=http
announcement.protocol.error.https=https
announcement.protocol.error.ftp=ftp
announcement.protocol.error.ftp=ftp
 
announcements.loading=carregando anúncio...
 
/impl/conf/language/MessageResources.properties
72,13 → 72,15
user.role.worker=Funcionário
user.role.invited=Convidado
user.role.services=Serviços
user.role.administrativeCouncil=Concelho Administrativo
user.role.administrativeCouncil=Concelho Directivo
user.role.representativeCouncil=Concelho de Representantes
user.role.scientificCouncil=Concelho Científico
user.role.erasmusCouncil=Concelho Erasmus
user.role.pedagogicCouncil=Concelho Pedagógico
user.role.courseCoordinator=Coordenador
user.role.futureStudent=Futuros Alunos
user.role.oldStudent=Antigos Alunos
user.role.sudentAssociation=Associação de Estudantes
 
 
#Filter Errors
139,6 → 141,11
portal.instituto.politecnico.merchandising=Merchandising
portal.instituto.politecnico.cultura.lazer=Cultura e lazer
 
portal.paginas.alunos=Páginas dos Alunos
portal.paginas.exemplo=Exemplo
portal.paginas.alunos.assessoria=Assessoria de Administração
portal.paginas.nucleo.engenharia=Nucleo de Engenharia
 
portal.servicos.online=Serviços on-line
portal.servicos.online.webmail=Webmail
portal.servicos.online.eduroam=Eduroam
171,6 → 178,7
portal.contactos.centro.informatico=Centro informático
portal.contactos.reprografia=Reprografia
portal.contactos.docentes=Docentes
portal.contactos.associacao.estudantes=Associação de Estudantes
portal.contactos.gabinete.comunicacao=Gabinete de Comunicação
portal.contactos.aaaipp=AAAIPP
portal.contactos.conselho.directivo=Conselho Directivo
205,6 → 213,7
#Mensagens Status
authentication.ok=Benvindo Fulano
logout.ok=Caro {0}, obrigado por usar o nosso serviço.
authentication.first.time=Olá bem-vindo, é a primeira vez que que se esta a ligar
authenticate.already.authenticated=O seu usuário já está autênticado
username=Nome de Utilizador
password=Password
214,11 → 223,21
yes=Sim
no=Não
 
#Login
login.firts.time.name=Nome
login.first.time.address=Morada
login.first.time.zip=Código Postal
login.first.time.country=País
login.first.time.email=E-mail
login.first.time.phone.number=Telefone
 
#Cursos
course.aa=Acessoria e Administração
 
#Nucleos
nucleo.engenharia=Nucleo de Engenharia
 
 
 
 
 
/impl/conf/WEB-INF/struts/struts-default.xml
89,6 → 89,10
<forward name="accaoSocialDocentesPortalMenu" path="page.docentesAccaoSocialPortalMenu.proxy"/>
<forward name="orgaosDocentesPortalMenu" path="page.docentesOrgaoPortalMenu.proxy"/>
<forward name="institutoPolitecnicoDocentesPortalMenu" path="page.docentesInstitutoPolitecnicoPortalMenu.proxy"/>
<!--Assessoria Administracao-->
<forward name="layoutAA" path="page.layoutAA.proxy"/>
<!--Nucleo de Engenharia-->
<forward name="layoutNucleoEng" path="page.layoutNucleoENG.proxy"/>
 
 
<forward name="layoutCourses" path="page.layoutCourses.proxy"/>
115,6 → 119,7
input="page.authentication">
<forward name="success" path="page.authentication.ok"/>
<forward name="logout" path="page.logout.ok"/>
<forward name="firstTimeAuthenticate" path="page.first.time.authenticate"/>
</action>
 
 
/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>
10,4 → 10,8
<definition name="page.load.process" extends="base.layout1">
</definition>
 
<definition name="page.teste" extends="base.layout1">
<put name="body" value="/teste.jsp"/>
</definition>
 
</tiles-definitions>
/impl/conf/WEB-INF/struts/tiles-default.xml
88,6 → 88,12
<definition name="page.layoutPortal.proxy" extends="base.layoutPortal">
<put name="body" value="/WebProxy"/>
</definition>
<definition name="page.layoutAssessoria.proxy" extends="base.layoutPortal">
<put name="body" value="/WebProxy"/>
</definition>
<definition name="page.layoutNuleoEngenharia.proxy" extends="base.layoutPortal">
<put name="body" value="/WebProxy"/>
</definition>
 
 
<definition name="page.layout1.proxy.ftp" extends="base.layout1">
119,7 → 125,8
<put name="body" value="/public/portals/futurosAlunos/futureStudent.jsp"/>
</definition>
<definition name="page.portal.teacher" extends="base.layoutPortal">
<put name="body" value="/public/portals/Docentes/teacher.jsp"/>
<put name="body" value="/public/portals/Docentes/teacher.jsp"/>
<!--<put name="body" value="/templates/templatePageAssessoria.jsp"/> -->
</definition>
 
<!--Alunos-->
238,6 → 245,16
<put name="topnav" value="/public/portals/Docentes/topnavInstitutoPolitecnico.jsp" />
<put name="navigationLeft" value="/public/portals/Docentes/institutoPolitecnico.jsp" />
</definition>
<!--Alunos Assessoria-->
<definition name="page.layoutAA.proxy" extends="page.layoutAssessoria.proxy">
<put name="topnav" value="/public/portals/assessoria/topnavAssessoria.jsp" />
<put name="navigationLeft" value="/public/portals/assessoria/assessoria.jsp" />
</definition>
<!--Nucleo de Engenharia-->
<definition name="page.layoutNucleoENG.proxy" extends="page.layoutNuleoEngenharia.proxy">
<put name="topnav" value="/public/portals/nucleoEngenharia/topnavNucleoEngenharia.jsp" />
<put name="navigationLeft" value="/public/portals/nucleoEngenharia/nucleoEngenharia.jsp" />
</definition>
 
 
 
260,6 → 277,10
<put name="title" value="Logout Success" />
<put name="body" value="/auth/logoutok.jsp" />
</definition>
<definition name="page.first.time.authenticate" extends="base.layout1">
<put name="title" value="First Time Authenticate" />
<put name="body" value="/auth/firstTimeAuthenticate.jsp" />
</definition>
 
<!-- ERRORS DEFINITIONS -->
<definition name="page.error.500" extends="base.error.definition">
/impl/conf/WEB-INF/struts/struts-processworkflow.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.TesteForm" name="TesteForm"/>
</form-beans>
 
<global-exceptions>
20,6 → 20,17
 
 
<action-mappings>
 
<!--Authentication-->
<action path="/testeStart" forward="page.teste"/>
<action path="/teste"
type="pt.estgp.estgweb.web.controllers.TesteController"
name="TesteForm"
scope="request"
parameter="dispatch"
validate="false"
input="page.teste">
<forward name="ok" path="page.teste"/>
</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>
 
/impl/conf/WEB-INF/web.xml
111,6 → 111,10
<servlet-name>tmpStream</servlet-name>
<servlet-class>pt.estgp.estgweb.web.TmpStream</servlet-class>
</servlet>
<servlet>
<servlet-name>imageStream</servlet-name>
<servlet-class>pt.estgp.estgweb.web.ImageStream</servlet-class>
</servlet>
 
<!--MAPPINGS-->
<servlet-mapping>
137,6 → 141,10
<servlet-name>tmpStream</servlet-name>
<url-pattern>/tmpStream/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>imageStream</servlet-name>
<url-pattern>/imageStream/*</url-pattern>
</servlet-mapping>
 
<!--START FILES-->
<welcome-file-list>
/impl/conf/app.properties
17,6 → 17,8
ionline.user=Baco_web
 
server.estgp=http://www.estgp.pt/testes/nova_web
server.estgweb=http://www.estgp.pt/testes/estgweb
estgweb.encoding=UTF-8
estgp.encoding=UTF-8
 
################################################
42,7 → 44,10
user.role.16=pedagogicCouncil
user.role.17=erasmusCouncil
user.role.18=courseCoordinator
user.role.19=sudentAssociation
user.role.20=representativeCouncil
 
 
#########################################################################
#
# Modules
52,21 → 57,40
#########################################################################
# Announcements
#
announcements.text.summary.size=250
announcements.text.summary.size.small=100
 
announcements.automatic.validation.role.1=all
announcements.automatic.validation.role.2=admin
announcements.automatic.validation.role.3=ci
announcements.automatic.validation.role.4=administrativeCouncil
 
student.auto.validation.targets=student,oldStudent,futureStudent,erasmusStudent
 
 
student.auto.validation.types=news,top.flash.news
 
 
announcements.max.visible=10
announcements.top.flash.news.timeout.miliseconds=7000
 
announcements.type.0=news
announcements.type.1=top.flash.news
announcements.type.2=bottom.flash.news
 
#role images for announcements
announcement.default.img=/imgs/rolesIcons/estg.gif
role.admin.img=/imgs/rolesIcons/ae.gif
announcement.default.img=/imgs/rolesIcons/nd.gif
role.admin.img=/imgs/rolesIcons/estg.gif
role.sudentAssociation.img=/imgs/rolesIcons/ae.gif
role.administrativeCouncil.img=/imgs/rolesIcons/c_directivo.gif
role.scientificCouncil.img=/imgs/rolesIcons/c_cientifico.gif
role.representativeCouncil.img=/imgs/rolesIcons/ass_repre.gif
role.teacher.eg.img=/imgs/rolesIcons/ne.gif
role.teacher.dg.img=/imgs/rolesIcons/ngm.gif
role.services.img=/imgs/rolesIcons/secretaria.gif
 
 
 
#########################################################################
# Link Analysis
#
83,6 → 107,12
url.stat.ignore.extension.8=.swf
 
url.stat.ignore.prefix.1=/urlstat
url.stat.ignore.prefix.2=/public/
url.stat.ignore.prefix.3=/admin/
url.stat.ignore.prefix.4=/user/
url.stat.ignore.prefix.5=/css/
url.stat.ignore.prefix.6=/js/
url.stat.ignore.prefix.7=/auth/
 
#See java.text.SimpleDateFormat
urlstat.chart.week.days=EEE dd-MMM
/impl/conf/berserk/sd.xml
152,5 → 152,27
<chain name="Logger"/>
</filterChains>
</service>
<service>
<name>LoadTopFlashNewsIterate</name>
<implementationClass>pt.estgp.estgweb.services.announcements.LoadTopFlashNewsIterateService</implementationClass>
<description>Load an Announcement one flash News</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
<chain name="Session"/>
</filterChains>
</service>
 
 
<!--Teste-->
<service>
<name>TesteSaver</name>
<implementationClass>pt.estgp.estgweb.services.teste.TesteService</implementationClass>
<description>Saves a teste</description>
<isTransactional>true</isTransactional>
<filterChains>
<chain name="Logger"/>
</filterChains>
</service>
 
</serviceDefinitions>
/impl/src/java/jomm/dao/impl/AbstractDao.java
15,6 → 15,7
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import java.util.Date;
 
 
/**
400,6 → 401,8
public Serializable save(CLAZZ obj)
{
try {
DomainObject o = (DomainObject) obj;
o.setSaveDate(new Date());
return (Serializable) getCurrentSession().save(obj);
}
catch (HibernateException e) {
/impl/src/java/jomm/web/utils/NavPlace.java
27,6 → 27,7
 
public String getUrl()
{
 
if(url != null)
{
if(url.indexOf("?")>=0)
/impl/src/java/openldap/Test.java
7,40 → 7,106
import java.util.Set;
import openldap.LdapManagerFactory;
 
public class Test
public class Test
{
public static void main(String[] args) throws Exception
 
public String getName(HashMap text)
{
//System.out.println(LdapManagerFactory.getLdapManager().login("a8824","21286"));
HashMap map = LdapManagerFactory.getLdapManager().getUserInfo("a8822");
Set s = map.entrySet();
Set s = text.entrySet();
Iterator iter = s.iterator();
/* while(iter.hasNext())
int iterCount=0;
String name=null;
 
while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
System.out.println(e.getKey() + ":" + e.getValue());
if(iterCount==3)
{
name=e.getValue().toString();
}
iterCount++;
}
map = LdapManagerFactory.getLdapManager().getUserInfo("a8822");
s = map.entrySet();
iter = s.iterator();*/
int iterNumber=0;
String[] messageBrokenDot=null;
String[] spliters={",","="};
return name;
}
 
public String getRoles(HashMap text)
{
Set s = text.entrySet();
Iterator iter = s.iterator();
int iterCount=0;
String roles=null;
 
while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
if(iterNumber==3)
if(iterCount==0)
{
messageBrokenDot=e.getValue().toString().split(spliters[0]);
String[] splitText=e.getValue().toString().split(",");
if(splitText[1].contains("CN"))
{
roles="student";
}
else if(splitText[1].contains("OU"))
{
roles="teacher";
}
}
iterNumber++;
//System.out.println(e.getKey() + ":" + e.getValue());
iterCount++;
}
for (int i = 0 ; i < iterNumber ; i++) {
// System.out.println("->" + messageBrokenDot[i].split(spliters[1]));
return roles;
}
 
public static void main(String[] args) throws Exception
{
//System.out.println(LdapManagerFactory.getLdapManager().login("a8824","21286"));
HashMap map = LdapManagerFactory.getLdapManager().getUserInfo("jmachado");
Set s = map.entrySet();
Iterator iter = s.iterator();
/* while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
System.out.println(e.getKey() + ":" + e.getValue());
}
map = LdapManagerFactory.getLdapManager().getUserInfo("a8822");
s = map.entrySet();
iter = s.iterator();*/
 
/*while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
 
System.out.println(e.getKey() + "-->" + e.getValue());
} */
//Set s = text.entrySet();
//Iterator iter = s.iterator();
int iterCount=0;
String name=null;
String roles=null;
 
while(iter.hasNext())
{
Map.Entry e = (Entry) iter.next();
if(iterCount==0)
{
String[] splitText=e.getValue().toString().split(",");
if(splitText[1].contains("CN"))
{
roles="student";
}
else if(splitText[1].contains("OU"))
{
roles="teacher";
}
}
 
if(iterCount==3)
{
name=e.getValue().toString();
}
iterCount++;
}
System.out.println("nome-->" + name);
System.out.println("nome-->" + roles);
 
}
}
/impl/src/java/pt/estgp/estgweb/Globals.java
13,6 → 13,7
public class Globals
{
 
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");
27,5 → 28,7
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 List<String> USER_ROLES = ConfigProperties.getListValues("user.role");
 
}
/impl/src/java/pt/estgp/estgweb/services/teste/TesteService.java
New file
0,0 → 1,34
package pt.estgp.estgweb.services.teste;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.estgp.estgweb.services.authenticate.LogoutService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.dao.DaoFactory;
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 TesteService implements IService
{
private static final Logger logger = Logger.getLogger(TesteService.class);
 
public void run(Teste t) throws ServiceException
{
DaoFactory.getTesteDaoImpl().save(t);
}
}
/impl/src/java/pt/estgp/estgweb/services/announcements/CreateAnnouncementService.java
33,7 → 33,7
 
private static final Logger logger = Logger.getLogger(CreateAnnouncementService.class);
 
private static final String ALL_ROLE = ConfigProperties.getProperty("user.super");
private static final String ALL_ROLE = Globals.ALL_ROLE;
 
public AnnouncementView run(Announcement announcement, UserSession userSession)
{
42,11 → 42,86
announcement.setOwner(userSession.getUser());
announcement.setSaveDate(new Date());
 
//Se for de validacao automatica ha de aparecer a combobox na web page e o user é que escolhe
//se não pomos false
if(!RoleManager.hasRole(userSession.getUser(),Globals.AUTOMATIC_VALIDATION_ROLES))
announcement.setStatus(false);
if(RoleManager.hasRole(userSession.getUser(),Globals.AUTOMATIC_VALIDATION_ROLES))
announcement.setStatus(true);
else
{
String[] userRoles=announcement.getChoosedOwnerRole().split(",");
Boolean validation=false;
 
for(String role: userRoles)
{
if(!role.equals("all")&&validation==false)
{
try
{
String validationTargets=role+".auto.validation.targets";
String userAutoValitation=ConfigProperties.getProperty(validationTargets);
String[] userAutoValitationRoles=userAutoValitation.split(",");
int validTargetRoles=0;
if(announcement.getTargetRoles().contains(","))
{
String[] targetRolesAnnouncementSplited=announcement.getTargetRoles().split(",");
 
//Percorre os targets todos a quem se destina
for(String target: targetRolesAnnouncementSplited)
{
//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
//o validTargetRoles
if(target.equals(userTargetRoles))
{
validTargetRoles++;
}
}
}
//Se o numero de roles validados for igual ao numero de targets a quem se destina
//Vai verificar se possui validationType para o type announcement
if(validTargetRoles==targetRolesAnnouncementSplited.length)
{
String validationTypes=role +".auto.validation.types";
String userAutoTypes=ConfigProperties.getProperty(validationTypes);
String[] userAutoValitationTypes=userAutoTypes.split(",");
for(String types: userAutoValitationTypes)
{
if(types.equals(announcement.getType()))
validation=true;
}
}
}
else
{
String targetRolesAnnouncement=announcement.getTargetRoles();
//Percorre todos os validation targets
for(String userTargetRoles: userAutoValitationRoles)
{
if(targetRolesAnnouncement.equals(userTargetRoles))
{
validTargetRoles++;
}
}
if(validTargetRoles==1)
{
String validationTypes=role +".auto.validation.types";
String userAutoTypes=ConfigProperties.getProperty(validationTypes);
String[] userAutoValitationTypes=userAutoTypes.split(",");
for(String types: userAutoValitationTypes)
{
if(types.equals(announcement.getType()))
validation=true;
}
}
}
}
catch(Exception e){}
}
}
announcement.setStatus(validation);
}
 
DaoFactory.getAnnouncementDaoImpl().save(announcement);
logger.info("Creating announcement:" + announcement.getId());
return new AnnouncementView(announcement);
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadRoleTypeMaxAnnouncementsService.java
30,7 → 30,7
private static final Logger logger = Logger.getLogger(LoadRoleTypeMaxAnnouncementsService.class);
private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible");
 
public List<AnnouncementView> run(String roles,String typeNews)
public List<AnnouncementView> run(String roles,String typeNews,String subTarget)
{
List<String> targetRoles = new ArrayList<String>();
if (roles.contains(","))
45,7 → 45,7
{
targetRoles.add(roles);
}
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,typeNews);
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,typeNews,subTarget);
if(announcements == null)
return null;
List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>();
60,8 → 60,8
 
//tens de ter cuidado com o nome que metes no servico, tavas a meter LoadRoleTypeMaxAnnouncements e no XML estava LoadRoleTypeMaxAnnouncementsService, o nome nao tem de ser igual a classe mas convem, por norma eu tenho tirado a palavra service do nome do servico
//ou seja esta LoadRoleTypeMaxAnnouncements para a classe LoadRoleTypeMaxAnnouncementsService logo no sm.execute tem de estar LoadRoleTypeMaxAnnouncements
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim já não dá o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para não te falhar os imports nas TAGS aqui no Intellij
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim ja nao da o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para nao te falhar os imports nas TAGS aqui no Intellij
//adiciona sempre todos os jars da common aqui no Intellij faltava-te o activation.jar do jaxb e era preciso para o MimeTypeGuesser
public static void main(String[] args) throws Throwable {
IServiceManager sm = ServiceManager.getInstance();
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadTargetMaxAnnouncementsService.java
22,12 → 22,12
private static final Logger logger = Logger.getLogger(LoadTargetMaxAnnouncementsService.class);
private static final int MAX_ANNOUNCEMENTS = ConfigProperties.getIntProperty("announcements.max.visible");
 
public List<AnnouncementView> run(UserSession userSession)
public List<AnnouncementView> run(String subTarget,UserSession userSession)
{
List<String> targetRoles = null;
if(userSession.getUser() != null)
targetRoles = userSession.getUser().getTargetRolesList();
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles);
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(MAX_ANNOUNCEMENTS,targetRoles,subTarget);
if(announcements == null)
return null;
List<AnnouncementView> announcementViews = new ArrayList<AnnouncementView>();
/impl/src/java/pt/estgp/estgweb/services/announcements/LoadTopFlashNewsIterateService.java
New file
0,0 → 1,70
package pt.estgp.estgweb.services.announcements;
 
import pt.utl.ist.berserk.logic.serviceManager.IService;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.estgp.estgweb.utils.ConfigProperties;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.Announcement;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.Globals;
import org.apache.log4j.Logger;
 
import java.util.List;
import java.util.ArrayList;
 
/**
* Created by IntelliJ IDEA.
* User: Fabio
* Date: 28/Mar/2008
* Time: 11:42:28
* To change this template use File | Settings | File Templates.
*/
public class LoadTopFlashNewsIterateService implements IService
{
 
private static final String flashNewsIterator = "flashNewsIterator";
 
private static final Logger logger = Logger.getLogger(LoadTopFlashNewsIterateService.class);
 
 
public AnnouncementView run(String subTarget, UserSession sess)
{
Integer iterator = (Integer) ((UserSessionImpl)sess).get(flashNewsIterator);
if(iterator == null)
iterator = 0;
 
int size = DaoFactory.getAnnouncementDaoImpl().countAnnouncements(1,null,Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS,null);
iterator = iterator % size;
List<Announcement> announcements = DaoFactory.getAnnouncementDaoImpl().findAnnouncements(iterator, 1,null,Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS,subTarget);
iterator++;
((UserSessionImpl)sess).put(flashNewsIterator,iterator);
 
if(announcements == null)
return null;
logger.info("Loading announcement top flash iterator");
if(announcements.size() > 0)
{
AnnouncementView announcementView = new AnnouncementView(announcements.get(0));
return announcementView;
}
return null;
}
 
//tens de ter cuidado com o nome que metes no servico, tavas a meter LoadRoleTypeMaxAnnouncements e no XML estava LoadRoleTypeMaxAnnouncementsService, o nome nao tem de ser igual a classe mas convem, por norma eu tenho tirado a palavra service do nome do servico
//ou seja esta LoadRoleTypeMaxAnnouncements para a classe LoadRoleTypeMaxAnnouncementsService logo no sm.execute tem de estar LoadRoleTypeMaxAnnouncements
//mudei a propriedade log.file build.properties para log.file=${data.dir}/estgweb.log assim ja nao da o erro do log
//adicionei as libs jsp-api.jar da pasta tomcat/common/lib para nao te falhar os imports nas TAGS aqui no Intellij
//adiciona sempre todos os jars da common aqui no Intellij faltava-te o activation.jar do jaxb e era preciso para o MimeTypeGuesser
public static void main(String[] args) throws Throwable {
IServiceManager sm = ServiceManager.getInstance();
String[] names = new String[]{};
Object[] arguments = new Object[]{};
AnnouncementView announcementView = (AnnouncementView) sm.execute("testecookie", "LoadTopFlashNewsIterate",arguments,names);
System.out.println("-->"+announcementView.getTitle());
 
 
}
}
/impl/src/java/pt/estgp/estgweb/services/authenticate/AuthenticateService.java
13,6 → 13,9
import openldap.LdapManagerFactory;
 
import java.util.HashMap;
import java.util.Set;
import java.util.Iterator;
import java.util.Map;
 
 
/*
37,7 → 40,7
 
ILdapManager ldapManager = LdapManagerFactory.getLdapManager();
 
public User run(String username, String password, UserSession userSession) throws ServiceException
public UserSession run(String username, String password, UserSession userSession) throws ServiceException
{
if(userSession.getUser() != null)
throw new AuthenticateException(AuthenticateException.ALREADY_AUTHENTICATED);
73,21 → 76,66
userSession.setUsername(u.getUsername());
userSession.setUser(u);
DaoFactory.getUserSessionDaoImpl().reattach(userSession);
return u;
return userSession;
}
 
//todo completar isto
private User getUserInfo(String username)
{
HashMap map = ldapManager.getUserInfo(username);
UserImpl u = DomainObjectFactory.createUserImpl();
u.setUsername(username);
u.setEmail((String) map.get("email"));
u.setName((String) map.get("name")); //isto esta mal e so para exemplificar depois tem de se ver isto bem
u.setUsername(username);
u.setName(getName(map));
u.setRoles(getRoles(map));
u.setNewUser(true);
DaoFactory.getUserDaoImpl().save(u);
return u;
}
 
private String getName(HashMap text)
{
Set s = text.entrySet();
Iterator iter = s.iterator();
int iterCount=0;
String name=null;
 
while(iter.hasNext())
{
Map.Entry e = (Map.Entry) iter.next();
if(iterCount==3)
{
name=e.getValue().toString();
}
iterCount++;
}
return name;
}
 
public String getRoles(HashMap text)
{
Set s = text.entrySet();
Iterator iter = s.iterator();
int iterCount=0;
String roles=null;
 
while(iter.hasNext())
{
Map.Entry e = (Map.Entry) iter.next();
if(iterCount==0)
{
String[] splitText=e.getValue().toString().split(",");
if(splitText[1].contains("CN"))
{
roles="student";
}
else if(splitText[1].contains("OU"))
{
roles="teacher";
}
}
iterCount++;
}
return roles;
}
}
 
 
/impl/src/java/pt/estgp/estgweb/services/urlstat/UrlStatService.java
39,7 → 39,7
{
String relativePath = entry.getKey();
UrlStatFilter.IntegerContainer ic = entry.getValue();
 
UrlStatImpl urlStat = (UrlStatImpl) DaoFactory.getUrlStatDaoImpl().loadOrNullLockUpgrade(relativePath);
if(urlStat == null)
{
/impl/src/java/pt/estgp/estgweb/services/urlstat/ChartBuilderService.java
105,7 → 105,7
 
private String build(HttpServletRequest request, String messageTitle, List<String> relativePaths, Date startDate, Date endDate,ChartTypeEnum type)
{
String location = linkToFileName(relativePaths,startDate,endDate,type.getScale());
String location = linkToFileNameEncode(relativePaths,startDate,endDate,type.getScale(),true);
File img = new File(Globals.TMP_DIR + location);
if(img.exists() && ((System.currentTimeMillis() - img.lastModified()) < LINK_CHART_EXPIRE_INTERVAL))
{
195,7 → 195,7
String dates = sp.format(startDate) + "_UNTIL_" + sp.format(endDate) + "_" + seriesScaleEnum.getType();
String path;
if(encode)
path = URIUtil.encodeAll(relativePathName.replaceAll("/","_"),"ISO-8859-1");
path = URIUtil.encodePath(relativePathName.replaceAll("/","_"),"ISO-8859-1");
else
path = relativePathName.replaceAll("/","_");
return LINK_CHART_TMP_DIR + "/" + path + "_" + dates + ".png";
219,7 → 219,7
// UrlStatService.main(null);
AbstractDao.getCurrentSession().beginTransaction();
List<String> relativePaths = new ArrayList<String>();
relativePaths.add("/Welcome.do");
relativePaths.add("/public/announcements/getFlashNews.jsp?sid=0.9998549583612295");
// relativePaths.add("/teste2");
System.out.println(new ChartBuilderService().run(new TestHttpServletRequest(),relativePaths, ChartTypeEnum.weekDays));
System.out.println(new ChartBuilderService().run(new TestHttpServletRequest(),relativePaths, ChartTypeEnum.monthDays));
/impl/src/java/pt/estgp/estgweb/domain/UserImpl.java
14,7 → 14,6
*/
public class UserImpl extends User
{
 
private boolean newUser = false;
 
 
24,8 → 23,7
 
public void setNewUser(boolean newUser) {
this.newUser = newUser;
}
 
}
/**
* check if user is in some group
* @param g to check
/impl/src/java/pt/estgp/estgweb/domain/UserSessionImpl.java
55,13 → 55,13
sessionObjectId.setKeyId(key);
sessionObjectId.setUserSession(this);
sessionObject.setId(sessionObjectId);
getObjects().add(sessionObject);
}
ByteArrayOutputStream os = new ByteArrayOutputStream();
XMLEncoder xenc = new XMLEncoder(os);
xenc.writeObject(obj);
xenc.close();
sessionObject.setXmlObject(os.toString());
getObjects().add(sessionObject);
}
 
/**
/impl/src/java/pt/estgp/estgweb/domain/TesteImpl.java
New file
0,0 → 1,10
package pt.estgp.estgweb.domain;
 
/**
* @author Jorge Machado
* @date 9/Abr/2008
* @time 16:57:12
* @see pt.estgp.estgweb.domain
*/
public class TesteImpl extends Teste{
}
/impl/src/java/pt/estgp/estgweb/domain/views/AnnouncementView.java
4,6 → 4,7
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.AnnouncementImpl;
import pt.estgp.estgweb.utils.RoleManager;
import pt.estgp.estgweb.utils.ConfigProperties;
 
import java.util.List;
import java.util.Date;
17,6 → 18,9
*/
public class AnnouncementView extends DomainObjectView
{
public static final int TEXT_SUMMARY_SIZE = ConfigProperties.getIntProperty("announcements.text.summary.size");
public static final int TEXT_SUMMARY_SIZE_SMALL = ConfigProperties.getIntProperty("announcements.text.summary.size.small");
 
private long id;
private String title;
private String text;
33,7 → 37,7
 
public AnnouncementView()
{}
 
public AnnouncementView(Announcement announcement)
{
 
190,4 → 194,30
public void setCounter(Integer counter) {
this.counter = counter;
}
 
public String getTextSummary()
{
if(getText().length() > TEXT_SUMMARY_SIZE)
return getText().substring(0,getText().substring(0,TEXT_SUMMARY_SIZE).lastIndexOf(' ')) + "...";
return getText();
}
 
public String getTextSummarySmall()
{
if(getText().length() > TEXT_SUMMARY_SIZE_SMALL)
return getText().substring(0,getText().substring(0,TEXT_SUMMARY_SIZE_SMALL).lastIndexOf(' ')) + "...";
return getText();
}
 
public Boolean getHaveAllText()
{
if(getType().equals("top.flash.news"))
{
return getText().length() > TEXT_SUMMARY_SIZE;
}
else
{
return getText().length() > TEXT_SUMMARY_SIZE_SMALL;
}
}
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/AnnouncementDaoImpl.java
31,7 → 31,7
return (AnnouncementDaoImpl) myInstance;
}
 
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles)
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String subTarget)
{
if(roles == null)
{
48,42 → 48,46
else
co = or(co,cor);
}
Criterion coSubTargets=null;
 
if(subTarget==null)
{
coSubTargets=isNull("subTargets");
}
else
{
coSubTargets =eq("subTargets",subTarget);
}
MyCalendar cNow = new MyCalendar();
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(coSubTargets)
.setMaxResults(maxAnnouncements)
.addOrder(Order.desc("saveDate"));
return criteria.list();
}
 
/*public List<Announcement> findAnnouncements(int maxAnnouncements,String targetRole,String type)
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget)
{
if(targetRole == null)
{
targetRole="all";
}
Criteria criteria = createCriteria();
Criterion coRole = like("targetRoles","%" + targetRole + "%");
Criterion coType=eq("type",type) ;
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 int countAnnouncements(int maxAnnouncements,List<String> roles,String type,String subTarget)
{
Criteria criteria = createMaxAnnouncementsRolesTypeCriteria(Integer.MAX_VALUE, roles,type,subTarget);
return criteria.list().size();
}
 
MyCalendar cNow = new MyCalendar();
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(like("targetRoles","%" + targetRole + "%"))
.setMaxResults(maxAnnouncements)
.addOrder(Order.desc("saveDate"));
return criteria.list();
}*/
 
public List<Announcement> findAnnouncements(int maxAnnouncements,List<String> roles,String type)
private Criteria createMaxAnnouncementsRolesTypeCriteria(int maxAnnouncements,List<String> roles,String type,String subTarget)
{
if(roles == null)
{
100,7 → 104,17
else
coRole = or(coRole,cor);
}
Criterion coType=eq("type",type) ;
Criterion coSubTargets=null;
 
if(subTarget==null)
{
coSubTargets=isNull("subTargets");
}
else
{
coSubTargets =eq("subTargets",subTarget);
}
Criterion coType=eq("type",type);
MyCalendar cNow = new MyCalendar();
MyCalendar calendarWithOutTime = new MyCalendar(cNow.getYear(),cNow.getMonth(),cNow.getDay());
Date now = calendarWithOutTime.getTime();
108,12 → 122,15
.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(coSubTargets)
.setMaxResults(maxAnnouncements)
.addOrder(Order.desc("saveDate"));
return criteria.list();
return criteria;
}
 
public static void main(String[] args)
 
/* public static void main(String[] args)
{
AbstractDao.getCurrentSession().beginTransaction();
List<String> roles = new ArrayList<String>();
127,10 → 144,10
GenericUser us = a.getOwner();
List<String> userRoles=us.getOwnerRoles();
for(String role:userRoles){
System.out.println("--->"+role);
System.out.println("--->"+role);
}
System.out.println(a.getSaveDate() + ":" + a.getTitle() + " " + a.getOwner().getName() );
}
AbstractDao.getCurrentSession().beginTransaction().commit();
}
}*/
}
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/ImageDaoImpl.java
1,5 → 1,14
package pt.estgp.estgweb.domain.dao.impl;
 
import org.hibernate.Criteria;
import org.hibernate.criterion.Criterion;
import static org.hibernate.criterion.Restrictions.*;
import pt.estgp.estgweb.domain.Image;
 
import java.util.List;
 
import jomm.dao.impl.AbstractDao;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/TesteDaoImpl.java
New file
0,0 → 1,42
package pt.estgp.estgweb.domain.dao.impl;
 
import pt.estgp.estgweb.domain.DomainObjectFactory;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
 
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 2:51:06
* @see pt.estgp.estgweb.domain.dao.impl
*/
public class TesteDaoImpl extends TesteDao {
public static TesteDaoImpl getInstance() {
if (myInstance == null)
myInstance = new TesteDaoImpl();
return (TesteDaoImpl) myInstance;
}
 
 
public static void main(String[] args) throws ClassNotIFilterException, InvalidFilterException, ServiceManagerException, InvalidFilterExpressionException, IncompatibleFilterException, FilterRetrieveException {
 
Teste t = DomainObjectFactory.createTesteImpl();
t.setMorada("portalegre");
t.setName("jorge");
 
Object[] args2 = {t};
IServiceManager sm = ServiceManager.getInstance();
try {
sm.execute("123", "TesteSaver", args2);
}
catch (Throwable e) {
System.out.println("Already exist fail creation, gone login now");
}
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/dao/DaoFactory.java
64,4 → 64,9
{
return UrlStatDayDaoImpl.getInstance();
}
 
public static TesteDaoImpl getTesteDaoImpl()
{
return TesteDaoImpl.getInstance();
}
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObjectFactory.java
72,4 → 72,10
{
return new UrlStatDayImpl();
}
 
public static TesteImpl createTesteImpl()
{
return new TesteImpl();
}
 
}
/impl/src/java/pt/estgp/estgweb/domain/DomainObject.java
21,6 → 21,8
private static final String ALL_ROLE = ConfigProperties.getProperty("user.super");
 
 
public void setSaveDate(Date d){}
 
/**
* can be override in proper classes
* @return generic user owner of object
/impl/src/java/pt/estgp/estgweb/web/Globals.java
12,6 → 12,8
{
private static final String PORTAL_MENU_START_LINK_START = "/proxy/";
private static final String PORTAL_MENU_START_LINK_END = "/estgp/public/portal";
private static final String PORTAL_MENU_START_LINK_END_AA = "/estgweb/aa";
private static final String PORTAL_MENU_START_LINK_END_NUCLEO_ENG = "/estgweb/nucleoeng";
public static final String PORTAL_ROLE_VIEW_STUDENT ="?role=student&menu=menu.alunos";
public static final String PORTAL_ROLE_VIEW_FUTURE_STUDENT ="?role=futureStudent&menu=menu.futurosAlunos";
public static final String PORTAL_ROLE_VIEW_OLD_STUDENT ="?role=oldStudent&menu=menu.antigosAlunos";
20,7 → 22,13
 
public static String getStartLinkPortalMenu(String layout)
{
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END;
if(layout.contains("AA"))
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END_AA;
else if(layout.contains("NucleoEng"))
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END_NUCLEO_ENG;
else
return PORTAL_MENU_START_LINK_START + layout + PORTAL_MENU_START_LINK_END;
 
}
 
}
/impl/src/java/pt/estgp/estgweb/web/form/TesteForm.java
New file
0,0 → 1,26
package pt.estgp.estgweb.web.form;
 
import org.apache.struts.action.ActionForm;
import pt.estgp.estgweb.domain.Teste;
import pt.estgp.estgweb.domain.DomainObjectFactory;
 
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 20:42:25
* @see pt.estgp.estgweb.web.form
*/
public class TesteForm extends ApplicationForm
{
 
Teste teste = DomainObjectFactory.createTesteImpl();
 
 
public Teste getTeste() {
return teste;
}
 
public void setTeste(Teste teste) {
this.teste = teste;
}
}
/impl/src/java/pt/estgp/estgweb/web/form/announcements/AnnouncementsForm.java
9,6 → 9,7
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.ApplicationForm;
import pt.estgp.estgweb.web.utils.DatesUtils;
import pt.estgp.estgweb.Globals;
 
import java.util.ArrayList;
import java.util.List;
41,7 → 42,7
 
 
 
private static List<String> targetRoles = ConfigProperties.getListValues("user.role");
private static List<String> targetRoles = Globals.USER_ROLES;
private static List<String> announcementTypes = ConfigProperties.getListValues("announcements.type");
private static List<String> targetPriorities = ConfigProperties.getListValues("announcements.priority");
 
/impl/src/java/pt/estgp/estgweb/web/controllers/TesteController.java
New file
0,0 → 1,66
package pt.estgp.estgweb.web.controllers;
 
import org.apache.log4j.Logger;
import org.apache.struts.action.*;
import pt.estgp.estgweb.web.controllers.authenticate.AuthenticateController;
import pt.estgp.estgweb.web.utils.RequestUtils;
import pt.estgp.estgweb.web.UserSessionProxy;
import pt.estgp.estgweb.web.form.TesteForm;
import pt.estgp.estgweb.web.exceptions.NoCookiesException;
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
import pt.utl.ist.berserk.logic.filterManager.exceptions.*;
 
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
 
/**
* @author Jorge Machado
* @date 26/Fev/2008
* @time 18:01:54
* @see pt.estgp.estgweb.web
*/
public class TesteController extends ApplicationDispatchController
{
 
private static final Logger logger = Logger.getLogger(TesteController.class);
 
public ActionForward save(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
 
 
TesteForm tf = (TesteForm) form;
Object[] args2 = {tf.getTeste()};
IServiceManager sm = null;
try
{
sm = ServiceManager.getInstance();
}
catch (Exception e)
{
logger.error(e);
}
try
{
sm.execute(RequestUtils.getRequester(request), "TesteSaver", args2);
}
catch (Throwable e)
{
System.out.println("Already exist fail creation, gone login now");
}
return mapping.findForward("ok");
 
}
 
 
}
/impl/src/java/pt/estgp/estgweb/web/controllers/announcements/AnnouncementsController.java
71,6 → 71,8
b.close();
Image i = DomainObjectFactory.createImageImpl();
i.setImage(b.toByteArray());
i.setContentType(bigImage.getContentType());
i.setSize(bigImage.getFileSize());
i.setDescription(a.getTitle());
i.setName(bigImage.getFileName());
i.setSaveDate(new Date());
92,6 → 94,8
Image i2 = DomainObjectFactory.createImageImpl();
i2.setImage(b2.toByteArray());
i2.setDescription(a.getTitle());
i2.setContentType(smallImage.getContentType());
i2.setSize(smallImage.getFileSize());
i2.setName(smallImage.getFileName());
i2.setSaveDate(new Date());
a.setSmallImage(i2);
/impl/src/java/pt/estgp/estgweb/web/controllers/authenticate/AuthenticateController.java
12,6 → 12,9
import pt.estgp.estgweb.services.authenticate.AuthenticateException;
import pt.estgp.estgweb.Globals;
import pt.estgp.estgweb.domain.UserSession;
import pt.estgp.estgweb.domain.User;
import pt.estgp.estgweb.domain.UserImpl;
import pt.estgp.estgweb.domain.UserSessionImpl;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.exceptions.ServiceManagerException;
37,12 → 40,12
private static final Logger logger = Logger.getLogger(AuthenticateController.class);
 
public ActionForward login(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException
{
 
String username = request.getParameter("username");
String password = request.getParameter("password");
 
50,9 → 53,13
{
IServiceManager sm = ServiceManager.getInstance();
Object[] args = new Object[]{username,password};
sm.execute(RequestUtils.getRequester(request),"Authenticate",args);
UserSessionProxy.loadUserSession(request);
return mapping.findForward("success");
UserSession userSession = (UserSession) sm.execute(RequestUtils.getRequester(request),"Authenticate",args);
request.setAttribute(Globals.USER_SESSION_KEY,userSession);
if(!((UserImpl)userSession.getUser()).isNewUser())
return mapping.findForward("success");
else
return mapping.findForward("firstTimeAuthenticate");
 
}
catch (AuthenticateException e)
{
71,9 → 78,9
}
 
public ActionForward logout(ActionMapping mapping,
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
ActionForm form ,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
 
/impl/src/java/pt/estgp/estgweb/web/filters/UserSessionFilter.java
43,7 → 43,9
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
HttpServletRequest hrequest = (HttpServletRequest) request;
 
if(((HttpServletRequest)request).getServletPath().indexOf("errorNoCookies.do")>=0 || !hrequest.isRequestedSessionIdFromCookie())
chain.doFilter(request,response);
try
/impl/src/java/pt/estgp/estgweb/web/ImageStream.java
New file
0,0 → 1,54
package pt.estgp.estgweb.web;
import pt.estgp.estgweb.domain.Image;
import pt.estgp.estgweb.domain.dao.impl.ImageDaoImpl;
 
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import jomm.dao.impl.AbstractDao;
import org.apache.log4j.Logger;
 
/**
* @author Fabio
* @date 4/Abr/2008
* @time 11:03:00
* @see pt.estgp.estgweb.web
*/
public class ImageStream extends HttpServlet
{
 
private static final Logger logger = Logger.getLogger(ImageStream.class);
 
 
public void doGet (HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
String imageRequarired = request.getPathInfo();
imageRequarired=imageRequarired.substring(1);
 
long id=Long.parseLong(imageRequarired.trim());
AbstractDao.getCurrentSession().beginTransaction();
Image image = new ImageDaoImpl().get(id);
try {
response.setContentType(image.getContentType());
byte[] imagemStream = image.getImage();
response.setContentLength(imagemStream.length);
OutputStream out = response.getOutputStream();
if(imagemStream!=null)
out.write(imagemStream);
else
logger.warn("Image "+image.getId()+" has 0 bytes");
out.flush();
out.close();
}
catch (Exception e1)
{
e1.printStackTrace();
}
 
AbstractDao.getCurrentSession().getTransaction().commit();
}
 
}
 
/impl/src/hbm/pt/estgp/estgweb/domain/Image.hbm.xml
14,6 → 14,8
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="name" type="string"/>
<property name="contentType" type="string"/>
<property name="size" type="int"/>
<property name="description" type="text"/>
<property name="image" type="binary" length="4194304"/>
<subclass name="pt.estgp.estgweb.domain.ImageImpl" discriminator-value="ImageImpl"/>
/impl/src/hbm/pt/estgp/estgweb/domain/Teste.hbm.xml
New file
0,0 → 1,20
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
 
<hibernate-mapping>
<class name="pt.estgp.estgweb.domain.Teste" table="teste" abstract="true">
<meta attribute="extends">pt.estgp.estgweb.domain.DomainObject</meta>
<meta attribute="scope-class">public abstract</meta>
<id name="id" type="long">
<generator class="native"/>
</id>
<discriminator column="discrimitator"/>
<timestamp name="updateDate" unsaved-value="null"/>
<property name="saveDate" type="timestamp"/>
<property name="name" type="string"/>
<property name="morada" type="string"/>
<subclass name="pt.estgp.estgweb.domain.TesteImpl" discriminator-value="TesteImpl"/>
</class>
</hibernate-mapping>
/impl/src/hbm/pt/estgp/estgweb/domain/Announcement.hbm.xml
15,8 → 15,7
<property name="saveDate" type="timestamp"/>
<property name="startDate" type="timestamp"/>
<property name="expireDate" type="timestamp"/>
<!--<property name="bigImageId" column="bigImage" type="long"/>
<property name="smallImageId" column="smallImage" type="long"/>-->
<property name="subTargets" type="string"/>
<property name="title" type="string"/>
<property name="choosedOwnerRole" type="string"/>
<property name="text" type="text"/>
/impl/src/web/imgs/rolesIcons/estg.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/web/imgs/grafico.gif
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/impl/src/web/teste.jsp
New file
0,0 → 1,13
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
 
 
<html:form action="/teste">
<input type="hidden" name="dispatch" value="save">
 
Nome <html:text property="teste.name"/><br>
Morada <html:text property="teste.morada"/><br>
<html:submit/>
</html:form>
 
 
/impl/src/web/auth/firstTimeAuthenticate.jsp
New file
0,0 → 1,34
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<bean:message key="authentication.first.time"/> <bean:write name="UserSession" property="name"/>
 
<table>
<tr>
<th><bean:message key="login.firts.time.name"/></th>
<td>
<html:text name="UserSession" property="name" maxlength="250"/>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.address"/></th>
<td>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.zip"/></th>
<td>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.email"/></th>
<td>
</td>
</tr>
<tr>
<th><bean:message key="login.first.time.phone.number"/></th>
<td>
</td>
</tr>
</table>
/impl/src/web/auth/autenticationok.jsp
8,4 → 8,4
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
 
<bean:message key="authentication.ok"/> <bean:write name="UserSession" property="username"/>
<bean:message key="authentication.ok"/> <bean:write name="UserSession" property="name"/>
/impl/src/web/css/style.css
8,9 → 8,9
 
#body
{
width:950px;
margin-left: auto;
margin-right: auto;
width:950px;
margin-left: auto;
margin-right: auto;
}
 
#pageStructure
83,11 → 83,11
 
h1
{
font-size:14pt;
font-size:1.2em;
}
h2
{
font-size:12pt;
font-size:1em;
}
 
/*************************************************************************************/
112,18 → 112,27
padding-right:10px;
}
 
.navLeftMenu h2
{
font-size:0.9em;
}
.navLeftMenu
{
font-size:0.7em;
}
 
.block P,.navLeftMenu h2
{
background-color:#ededed;
padding-left:10px;
margin:0;
background-color:#ededed;
padding-left:10px;
margin:0;
 
}
 
.block UL
{
LIST-STYLE-TYPE: none;
padding-left:10px;
padding-left:10px;
}
 
.block a:link
149,232 → 158,294
table-layout:fixed;
width:180px;
padding-top:10px;
font-size:0.8em;
}
 
.portalRightAnnouncements table
{
table-layout:fixed;
width:250px;
table-layout:fixed;
width:250px;
font-size:0.8em;
}
 
.portalAnnouncement a:link,.portalAnnouncement a:visited
{
font-size:10pt;
margin:0;
margin:0;
}
 
.portalAnnouncementTitle a
{
color:#000000;
color:#000000;
}
 
.portalAnnouncement a
{
text-decoration :none;
text-decoration :none;
}
 
.portalAnnouncementText a:link,.portalAnnouncementText a:visited
{
color:#4d4d4d;
color:#4d4d4d;
}
 
.navleftMenu
{
width:180px;
padding-left:10px;
padding-left:10px;
}
 
#portalMenu li.selected a
{
color:#8EC73F;
color:#8EC73F;
}
/**********************************************************************************/
 
/****************************** Standard Page Template ***************************/
.page,.pageText
.contentPortal h1
{
font-size :11.5pt;
background-color:#8EC73F;
color:#FFFFFF;
font-size:1.2em;
}
 
.page P
.contentPortal h2
{
font-size:1em;
}
 
.page h1,.pageHeader h1
.contentPortal
{
font-size:15pt;
font-size:0.75em;
}
 
.page h2,.sectionTitle h2
.contentPortal p
{
font-size:13pt;
font-weight:bold;
margin:0;
color:#4d4d4d;
}
 
.page h3,.sectionTitle h3
.section
{
font-size:10pt;
font-weight:bold;
color:#000000;
margin-bottom:10px;
}
 
.pageHeader h1
.contentPortal li a:link,.contentPortal a:visited,.contentPortal li
{
color:#FFFFFF;
background-color:#8EC73F;
padding-left:10px;
padding-right:10px;
color:#4d4d4d;
}
 
.portalContent
.contentPortal li a:hover
{
color:#8EC73F;
}
 
.pageBlock a:hover
{
color:#8EC73F;
text-decoration :underline;
}
 
.pageColumnTableSolid
{
border:#000000 solid 1px;
}
 
.listClean UL /*Lista sem nada*/
{
LIST-STYLE-TYPE: none;
padding:0;
LIST-STYLE-TYPE: none;
padding:0;
}
 
.listCircleWhite UL/*Lista circulo branco*/
{
LIST-STYLE-TYPE: circle;
LIST-STYLE-TYPE: circle;
}
 
.listDecimal UL/*Lista decimal*/
{
LIST-STYLE-TYPE: decimal;
LIST-STYLE-TYPE: decimal;
}
 
.listDisc UL/*Lista circulo preto*/
{
LIST-STYLE-TYPE: disc;
LIST-STYLE-TYPE: disc;
}
 
.listSquare UL/*Lista quadrado preto*/
{
LIST-STYLE-TYPE: square;
LIST-STYLE-TYPE: square;
}
 
.pageSection
.portalLeftAnnouncements img
{
height:133px;
width:177px;
}
 
.sectionTitle h2
/*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
{
color:#000000;
margin-bottom:1px;
color:#FFFFFF;
background-color:#8EC73F;
padding-left:10px;
}
 
.pageText,.pageBlock a,.pageBlock a:visited
{
color:#4d4d4d;
text-decoration:none;
}
/*********************************************************************************/
 
/******************************* Index Page***************************************/
.indexPage Table
#flashTopNews * td, #flashCenterNews * td, #flashBottomNews * td
{
vertical-align:top;
}
/*FlashTopNews*/
#flashTopNews
{
padding:0;
margin:0;
}
#flashTopNews .container
{
background-color:#4d4d4d;
height:100px;
width:100%;
border-collapse: collapse;
margin:0;
}
 
.header
#flashTopNews .container .textContainer
{
color:#FFFFFF;
background-color:#8EC73F;
padding-left:10px;
margin:0;
text-align :justify;
}
 
.flashTopNews
#flashTopNews .container .imageContainer
{
text-align :right;
margin:0;
text-align :right;
text-decoration:none;
}
 
.flashTopNews tr
#flashTopNews img
{
background-color:#4d4d4d;
height:167px;
width:341px;
}
 
.flashTopNews td,.flashCenterNews td,.flashBottomNews td
#flashTopNews * td
{
vertical-align:top;
}
#flashTopNews .container .textContainer h2
{
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 p a:link, #flashTopNews p a:visited
{
color:#FFFFFF;
text-decoration:none;
}
 
.flashCenterNews
/*FlashCenterNews*/
#flashCenterNews
{
margin-top:2px;
border-top-style: dotted;
border-top-color:#DEDEDD;
border-top-color:gray;
}
 
.textNewsTop
#flashCenterNews .container
{
text-align :left;
width:100%;
margin:0;
}
 
.textNewsCenter,.textNewsBottom
#flashCenterNews .textContainer
{
padding-top :10px;
}
 
.titleNewsTop a,.titleNewsCenter a,.titleNewsBottom a,.titleLastNews a:hover,.copyRightLink a:hover,.linkLeftMenu a:hover,#leftMenuModule h2
#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 img,#flashCenterNews td.imageContainer
{
width:133px;
height:133px;
}
 
.titleNewsTop a,.titleNewsCenter a,.titleNewsBottom a
 
 
/*FlashBottomNews*/
#flashBottomNews img
{
font-weight:bold;
width:100px;
height:100px;
}
 
.titleNewsCenter,.descriptionNewsCenter,.descriptionNewsBottom,.linkLeftMenu a
#flashBottomNews h2 a:link,#flashBottomNews h2 a:visited
{
text-decoration:none;
color:#8EC73F;
font-weight:bold;
}
 
.descriptionNewsCenter a:link,.descriptionNewsCenter a:visited,.descriptionNewsBottom a:link,.descriptionNewsBottom a:visited,.titleLastNews a,.copyRightLink a,.linkLeftMenu a
#flashBottomNews p a:link,#flashBottomNews p a:visited
{
color:#4d4d4d;
}
 
.descriptionNewsTop a:link,.descriptionNewsTop a:visited
/*Last News Block*/
#lastnews
{
color:#FFFFFF;
font-size:0.8em;
}
 
.imageNewsCenter
#lastnews ul
{
width:50px;
list-style: none;
width:160px;
LIST-STYLE-TYPE: none;
padding:0;
margin:0;
}
 
.titleNewsTop,.titleNewsCenter,.titleNewsBottom,.descriptionNewsCenter,.descriptionNewsBottom,.descriptionNewsTop
#lastnews li
{
padding-left :10px;
margin:0;
padding:0;
}
 
.lastnews ul
#lastnews li h2
{
padding:0;
padding-left:5px;
WIDTH: 160px;
padding-left:2px;
margin:1px;
}
#lastnews li h2 a,.linkLeftMenu a
{
text-decoration:none;
}
#lastnews li h2 a:link,.linkLeftMenu a:link
{
color:#4d4d4d;
}
#lastnews li h2 a:visited,.linkLeftMenu a:visited
{
color:#4d4d4d;
}
#lastnews li h2 a:hover,.linkLeftMenu a:hover
{
color:#8EC73F;
}
 
/**/
 
/*LEFT MENUS*/
#leftMenuModule h2
{
MARGIN: 0;
color:#8EC73F;
}
 
#leftMenuModule UL
{
MARGIN: 0;
427,7 → 498,32
/*****************************************************************************************/
 
/************************************** Content Structure ********************************/
.contentPortal
{
padding-left:10px;
padding-top:10px;
}
 
.content h2
{
font-size:1em;
}
 
.content
{
font-size:0.8em;
}
 
.content a:link,.content a:visited
{
color:#4d4d4d;
}
 
.content a:hover
{
color:#8EC73F
}
 
.content,.contentPortal
{
LEFT: 0;
476,6 → 572,15
{
}
 
#footer a:link,#footer a:visited
{
color:#4d4d4d;
}
#footer a:hover
{
color:#8EC73F;
}
 
/**************************************************************************************/
 
/******************************** Bar Module Color ************************************/
500,17 → 605,21
/*************************Staff Links Structure***************************************/
.staffLinks P
{
font-weight :bold;
font-weight :bold;
}
/*************************************************************************************/
 
.form , .boxHorizontal
form , .boxHorizontal
{
margin:0;
padding:3px;
border:1px #793B0D solid ;
background-color:#F5BB91;
border:0px #793B0D solid ;
background-color:#FFFFFF;
}
.boxHorizontal
{
padding-top:33px;
padding-left:180px;
}
 
.form th, .boxHorizontal th
{
519,10 → 628,10
padding-top:3px;
padding-bottom:3px;
padding-right:15px;
color:#793B0D;
background-color: #F5BB91;
border: 1px solid #793B0D;
font-size:0.76em;
color:#4d4d4d;
background-color: #FFFFFF;
border: 0px solid #793B0D;
font-size:0.86em;
font-weight:bold;
font-family:Helvetica,sans-serif;
text-align:left;
537,7 → 646,7
padding-right:15px;
color:#793B0D;
background-color: #FFFFFF;
border: 1px solid #793B0D;
border: 0px solid #793B0D;
font-size:0.8em;
font-family:Helvetica,sans-serif;
vertical-align:middle;
546,7 → 655,7
.form .buttons td, .boxHorizontal .buttons td
{
text-align:center;
background-color: #FDE1CD;
background-color: #FFFFFF;
}
 
.form textarea, .boxHorizontal textarea
607,7 → 716,7
 
input[type="button"], input[type="submit"]
{
color: black;
color: #4d4d4d;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
616,10 → 725,10
border-right-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-top-color: black;
border-right-color: black;
border-bottom-color: black;
border-left-color: black;
border-top-color:#4d4d4d;
border-right-color: #4d4d4d;
border-bottom-color: #4d4d4d;
border-left-color: #4d4d4d;
background-color: transparent;
background-image: none;
background-repeat: repeat;
628,7 → 737,7
 
input[type="button"]:hover, input[type="submit"]:hover
{
background-color: #909090;
background-color: #8EC73F;
background-image: none;
background-repeat: repeat;
background-attachment: scroll;
667,50 → 776,57
 
/********************************************** Navigation Menu ********************************/
ul.menubar{
margin: 0px;
padding: 0px;
background-color: #FFFFFF; /* IE6 Bug */
font-size: 100%;
margin: 0px;
padding: 0px;
background-color: #FFFFFF; /* IE6 Bug */
font-size: 100%;
 
}
.submenu
{
font: bold 16px sans;
FONT-FAMILY: "Lucida Grande","Trebuchet MS","bitstream vera sans",Verdana,Arial,Helvetica,sans-serif;
font-size:0.8em;
}
 
.menu
{
font: normal 14px sans;
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;
list-style: none;
background-color: #FFFFFF;
float:left;
margin: 0px;
padding: 0px;
list-style: none;
background-color: #FFFFFF;
float:left;
}
 
ul.menubar ul.menu{
display: none;
position: absolute;
margin: 0px;
display: none;
position: absolute;
margin: 0px;
}
 
ul.menubar a{
padding: 5px;
display:block;
text-decoration: none;
color: #4D4D4D;
padding: 5px;
 
display:block;
text-decoration: none;
color: #4D4D4D;
padding-left:5px;
padding-right:5px;
padding-top:2px;
padding-bottom:2px;
}
 
ul.menubar a:hover{
padding: 5px;
display:block;
text-decoration: none;
color: #4D4D4D;
padding: 5px;
display:block;
text-decoration: none;
color: #4D4D4D;
padding-left:5px;
padding-right:5px;
padding-top:2px;
padding-bottom:2px;
}
 
.menuTop
719,43 → 835,46
}
 
.menu a:hover{
padding: 5px;
display:block;
/* border-left: none;
 
display:block;
/* border-left: none;
border-right: none;
border-top: none;
border-bottom: none; */
padding: 5px;
 
}
 
ul.menu, ul.menu ul{
margin: 0;
padding: 2px;
/* border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-top: 1px solid #ccc;
border-right: 1px solid #ccc; */
background-color: #FFFFFF; /* IE6 Bug */
margin: 0;
padding: 2px;
/* border-left: 1px solid #ccc;
border-bottom: 1px solid #ccc;
border-top: 1px solid #ccc;
border-right: 1px solid #ccc; */
background-color: #FFFFFF; /* IE6 Bug */
}
 
ul.menu li{
position: relative;
list-style: none;
/*border: 0px;*/
opacity:0.9;
background-color: #4D4D4D;
width:250px;
position: relative;
list-style: none;
/*border: 0px;*/
opacity:0.9;
background-color: #4D4D4D;
width:250px;
}
 
ul.menu li a{
display: block;
text-decoration: none;
/* border-bottom: 0px;*/
/*color: #4D4D4D;*/
/* background-color: #FFFFFF; */
color: #4d4d4d;
background-color: #CCCCCC;
padding: 5px 10px 5px 5px;
display: block;
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;
}
 
/*
776,11 → 895,11
color: inherit;
}
 
ul.menu li sup{
font-weight:bold;
font-size:7px;
color: red;
}
/*ul.menu li sup{
font-weight:bold;
font-size:7px;
color: red;
} */
 
/* Fix IE. Hide from IE Mac \*/
* html ul.menu li { float: left; height: 1%; }
788,10 → 907,10
/* End */
 
ul.menu ul{
position: absolute;
display: none;
left: 149px; /* Set 1px less than menu width */
top: 0px;
position: absolute;
display: none;
left: 149px; /* Set 1px less than menu width */
top: 0px;
}
 
ul.menu li.submenu ul
/impl/src/web/js/ajax.js
1,121 → 1,161
var xmlHttp;
var servidorBaseUrl = "@server.base.url@";
/**
*
* AJAX Functions
*
* This code is protected under GNU LGPL License
*
* @author Jorge Machado
* @date April 2008
**/
 
/**
* Starts XMLHTTP Ajax request
*
* @author Jorge Machado
* @date April 2008
*
* params:
* @params HTTP GET Parameters for query string
* @xmlHttpRequest request
* @id target element
* @stateChanged target function
* @innerPhrase to put while waiting for response
* @navjsp requested jsp
*/
function startRequest(xmlHttpRequest,params,id,stateChanged,innerPhrase,navjsp)
{
if(innerPhrase != '')
getObjectById(id).innerHTML = innerPhrase;
if (xmlHttpRequest==null)
{
alert ("Browser does not support HTTP Request");
return;
}
var url= navjsp;
if(params != null && params.length > 0)
{
url=url+"?"+ params;
url=url+"&sid="+Math.random();
}
else
{
url=url+"?sid="+Math.random();
}
xmlHttpRequest.onreadystatechange=stateChanged;
xmlHttpRequest.open("GET",url,true);
xmlHttpRequest.send(null);
}
 
function getObjectById(objectId) {
 
// cross-browser function to get an object's style object given its id
try
/**
* Return an HTML element given ID
*
* @author Jorge Machado
* @date April 2008
*
* params:
* @objectId required object
*/
function getObjectById(objectId)
{
// cross-browser function to get an object's style object given its id
try
{
if(document.getElementById && document.getElementById(objectId))
{
if(document.getElementById && document.getElementById(objectId)) {
// W3C DOM
return document.getElementById(objectId);
} else if (document.all(objectId)) {
return document.getElementById(objectId);
}
else if (document.all(objectId))
{
// MSIE 4 DOM
return document.all(objectId);
} else if (document.layers && document.layers[objectId]) {
return document.all(objectId);
}
else if (document.layers && document.layers[objectId])
{
// NN 4 DOM.. note: this won't find nested layers
return document.layers[objectId];
} else {
return false;
}
return document.layers[objectId];
}
catch(e)
else
{
return false;
}
 
} // getObjectById
 
function GetXmlHttpObject()
{
var objXMLHttp=null;
if (window.XMLHttpRequest)
{
objXMLHttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
return objXMLHttp;
}
catch(e)
{
return false;
}
}
 
/**
* Creates a new XmlHttpObject
* @author Jorge Machado
* @date April 2008
*
* params:
* @handler target xmlHttpObject function
*/
function GetXmlHttpObject(handler)
{
 
var objXmlHttp=null;
 
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera") ;
return ;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP";
}
try
{
objXmlHttp=new ActiveXObject(strName);
objXmlHttp.onreadystatechange=handler ;
return objXmlHttp;
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled") ;
return ;
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest();
objXmlHttp.onload=handler;
objXmlHttp.onerror=handler;
return objXmlHttp;
}
var objXmlHttp = null;
if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera") ;
return objXmlHttp;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP";
if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP";
}
try
{
objXmlHttp=new ActiveXObject(strName);
objXmlHttp.onreadystatechange=handler ;
return objXmlHttp;
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled") ;
return objXmlHttp;
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest();
objXmlHttp.onload=handler;
objXmlHttp.onerror=handler;
return objXmlHttp;
}
}
 
/**
*
* Application Methods Examples
*
*
*/
/***************************************************
TopFlashNews
***************************************************/
var xmlHttpTopFlashNews;
var getFlashNewsTimeout;
var getFlashNewsJsp;
 
 
function getImportState()
function getFlashNews(jsp,timeout)
{
xmlHttp=GetXmlHttpObject(stateChangedGetImportState);
getObjectById("importState").innerHTML = "<div class=\"statusSearch\">Updating import state ....</div>";
if (xmlHttp==null)
{
alert ("Browser does not support HTTP Request");
return;
}
//http://servidor:8080
var url= servidorBaseUrl + "/jsp/import/getImportState.jsp";
url=url+"?sid="+Math.random();
xmlHttp.onreadystatechange=stateChangedGetImportState;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
getFlashNewsJsp = jsp;
getFlashNewsTimeout = timeout;
getFlashNewsTimeoutCall();
}
 
function stateChangedGetImportState()
function getFlashNewsTimeoutCall()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var html = xmlHttp.responseText;
getObjectById("importState").innerHTML=html;
if(!(getObjectById("importStateStatus") != null && getObjectById("importStateStatus").value == 'STOPPED'))
{
setTimeout(getImportState,5000);
}
}
xmlHttpTopFlashNews=GetXmlHttpObject(stateChangedGetFlashNews);
startRequest(xmlHttpTopFlashNews,"","flashTopNews",stateChangedGetFlashNews,"",getFlashNewsJsp)
}
function stateChangedGetFlashNews()
{
if (xmlHttpTopFlashNews.readyState==4 || xmlHttpTopFlashNews.readyState=="complete")
{
getObjectById("flashTopNews").innerHTML=xmlHttpTopFlashNews.responseText;
setTimeout(getFlashNewsTimeoutCall,getFlashNewsTimeout);
}
}
 
 
 
/impl/src/web/public/index.jsp
12,8 → 12,9
 
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{};
Object[] args = new Object[]{subTarget};
int topAnnouncements=1;
int centerAnnouncements=1;
int bottomAnnouncements=1;
23,117 → 24,129
<jomm:messages/>
<html:errors/>
 
<div class="indexPage" >
<script type="text/javascript">
<!--
getFlashNews('<%=request.getContextPath()%>/public/announcements/getFlashNews.jsp',<%=Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_TIMEOUT%>);
-->
</script>
 
<div class="header">
<h1> <bean:message key="mainAnnouncements"/></h1>
<div class="indexPage">
 
<h1><bean:message key="mainAnnouncements"/></h1>
 
<div id="flashTopNews">
<table class="container">
<tr>
<td class="textContainer">
<bean:message key="announcements.loading"/>
</td>
<td class="imageContainer">
</td>
</tr>
</table>
</div>
 
<table class="flashTopNews">
<tr>
<td>
<div class="textNewsTop">
<logic:present name="Announcements">
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="top.flash.news" name="item" property="type">
<%if (topAnnouncements <= Globals.NUMBER_ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS_INDEX) {
%>
<div class="titleNewsTop">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
</div>
<div class="descriptionNewsTop">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.text}</html:link>
</div>
<%
}
topAnnouncements++;
%>
</logic:equal>
</logic:iterate>
</logic:present>
</div>
</td>
<td class="imageNewsTop">
<img src="<%=request.getContextPath()%>/imgs/destaque_1.jpg"/>
</td>
</tr>
</table>
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="bottom.flash.news" name="item" property="type">
 
<table class="flashCenterNews">
<tr>
<div class="textNewsCenter">
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="bottom.flash.news" name="item" property="type">
<%if(centerAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
%>
<td class="imageNewsCenter">
<img src="<%=request.getContextPath()%>/imgs/destaque_2_1.jpg"/>
</td>
<td>
<div class="titleNewsCenter">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link>
</div>
<div class="descriptionNewsCenter">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.text}</html:link>
</div>
</td>
<%
}
else{
}
centerAnnouncements++;
%>
</logic:equal>
</logic:iterate>
</div>
</table>
<%if(centerAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
if(centerAnnouncements==1)
{ %>
<div id="flashCenterNews">
<table class="container">
<tr>
<%}%>
<td class="imageContainer">
<%if(item.getSmallImage() != null){%><img alt="<%=item.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</td>
<td class="textContainer">
<logic:empty name="item" property="url">
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<h2><html:link href="${item.url}">${item.title}</html:link></h2>
<p><html:link href="${item.url}">${item.textSummarySmall}</html:link></p>
<%}
else
{%>
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
<%}%>
</logic:notEmpty>
</td>
 
<table class="flashBottomNews">
<tr>
<div class="textNewsBottom">
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="news" name="item" property="type">
<%if(bottomAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
%>
<td class="imageNewsBottom">
<img src="<%=request.getContextPath()%>/imgs/destaque_3_3.gif"/>
</td>
<%
}
else{
}
bottomAnnouncements++;
%>
</logic:equal>
</logic:iterate>
<%if(centerAnnouncements==Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{%>
</tr>
</table>
</div>
</tr>
<tr>
<%bottomAnnouncements=0;%>
<div class="textNewsBottom">
<logic:iterate length="5" id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="news" name="item" property="type">
<%
if(bottomAnnouncements<=4)
{
%>
<td width="50px">
<div class="titleNewsBottom">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link>
<%
}
centerAnnouncements++;
}
else if(bottomAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
if(bottomAnnouncements==1)
{
%>
 
<div id="flashBottomNews">
<table class="container">
<tr>
<%}%>
<td>
<div class="imageContainer">
<%if(item.getSmallImage() != null){%><img alt="<%=item.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</div>
<div class="descriptionNewsBottom">
<html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.text}</html:link>
<div class="textContainer">
<logic:empty name="item" property="url">
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<h2><html:link href="${item.url}">${item.title}</html:link></h2>
<p><html:link href="${item.url}">${item.textSummarySmall}</html:link></p>
<%}
else
{%>
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.title}</html:link></h2>
<p><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load" >${item.textSummarySmall}</html:link></p>
<%}%>
</logic:notEmpty>
</div>
</td>
<%
}
bottomAnnouncements++;
%>
</logic:equal>
</logic:iterate>
<%if(bottomAnnouncements==Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{%>
</tr>
</table>
</div>
</tr>
</table>
<%
}
 
bottomAnnouncements++;
}
%>
</logic:equal>
</logic:iterate>
<%if(bottomAnnouncements>1 && bottomAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_NEW_INDEX)
{
%>
</tr>
</table>
</div>
<%}%>
<%if(centerAnnouncements>1 && centerAnnouncements<=Globals.NUMBER_ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS_INDEX)
{
%>
</tr>
</table>
</div>
<%}%>
</div>
 
/impl/src/web/public/portals/alunos/student.jsp
12,16 → 12,14
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="contactosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
 
</td>
<td class="column">
 
 
<jsp:include page="mobilidadeLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="accaoSocialLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
 
<jsp:include page="paginasAlunosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
<td class="column">
<jsp:include page="orgaosLinks.jsp"/>
/impl/src/web/public/portals/alunos/contactosLinks.jsp
13,4 → 13,5
topNav.addNavPlace(startLink + "/contactosGabineteComunicacao.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.gabinete.comunicacao");
topNav.addNavPlace(startLink + "/contactosReprografia.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.reprografia");
topNav.addNavPlace(startLink + "/contactosDocentesContactos.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.docentes");
%>
topNav.addNavPlace("http://www.global.estgp.pt/ae/"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.contactos.associacao.estudantes");
%>
/impl/src/web/public/portals/alunos/accaoSocialLinks.jsp
13,4 → 13,5
topNav.addNavPlace(startLink + "/accaoSocialDesportoCultura.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.desporto.cultura");
topNav.addNavPlace(startLink + "/accaoSocialGaap.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.gapp");
topNav.addNavPlace(startLink + "/accaoSocialInformacoes.html"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.informacoes");
topNav.addNavPlace("http://www.ipportalegre.pt/wwwsas/alimentacao_refeitorios.htm"+Globals.PORTAL_ROLE_VIEW_STUDENT, "portal.accao.social.cantinas");
%>
/impl/src/web/public/portals/alunos/paginasAlunosLinks.jsp
New file
0,0 → 1,13
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createPortalMenuPlacesKey(request);
topNav.setTitle("portal.paginas.alunos");
String startLinkAA = Globals.getStartLinkPortalMenu("layoutAA");
String startLinkNucleoENG = Globals.getStartLinkPortalMenu("layoutNucleoEng");
topNav.addNavPlace(startLinkAA + "/exemplo.html", "portal.paginas.alunos.assessoria");
topNav.addNavPlace(startLinkNucleoENG + "/exemplo.html", "portal.paginas.nucleo.engenharia");
 
%>
/impl/src/web/public/portals/menuPortal.jsp
40,11 → 40,22
NavPlace navPlace = (NavPlace) navKey;
if (navPlace.getUrl() != null)
{
if(!navPlace.getUrl().contains("http://"))
{
%>
<li class="navPlace<%=selectedClass%>">
<a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
}
else
{
%>
<li class="navPlace<%=selectedClass%>">
<a href="<%=navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
}
}
else
{
/impl/src/web/public/portals/Docentes/teacher.jsp
4,25 → 4,27
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<div class="portal">
<div class="portalContent">
<table class="columnTable">
<table class="columnTable" width="100%">
<tbody>
<tr>
<td class="column" width="50%">
<jsp:include page="servicosLinks.jsp"/>
<td class="column">
<jsp:include page="institutoPolitecnicoLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="informacaoAcademicaLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="contactosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="informacaoAcademicaLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
<td class="column" width="50%">
<td class="column">
<jsp:include page="mobilidadeLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="accaoSocialLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="orgaosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="institutoPolitecnicoLinks.jsp"/>
</td>
<td class="column">
<jsp:include page="servicosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
</tr>
/impl/src/web/public/portals/antigosAlunos/oldStudent.jsp
4,22 → 4,24
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<div class="portal">
<div class="portalContent">
<table class="columnTable">
<table class="columnTable" width="100%">
<tbody>
<tr>
<td class="column" width="50%">
<td class="column">
<jsp:include page="estgLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="servicosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="actividadesLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
<td class="column" width="50%">
<td class="column">
<jsp:include page="formacaoPosGraduadaLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="institutoPolitecnicoLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
<td class="column">
<jsp:include page="actividadesLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="contactosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
/impl/src/web/public/portals/nucleoEngenharia/nucleoEngenharia.jsp
New file
0,0 → 1,7
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<jsp:include page="/public/portals/nucleoEngenharia/nucleoEngenhariaLinks.jsp"/>
<jsp:include page="/public/portals/menuPortal.jsp"/>
/impl/src/web/public/portals/nucleoEngenharia/nucleoEngenhariaLinks.jsp
New file
0,0 → 1,10
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createPortalMenuPlacesKey(request);
topNav.setTitle("portal.paginas.nucleo.engenharia");
String startLink = Globals.getStartLinkPortalMenu("layoutNucleoEng");
topNav.addNavPlace(startLink + "/exemplo.html", "portal.paginas.exemplo");
%>
/impl/src/web/public/portals/nucleoEngenharia/topnavNucleoEngenharia.jsp
New file
0,0 → 1,14
<%@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" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace("/student.do" + Globals.PORTAL_ROLE_VIEW_STUDENT, "menu.alunos");
topNav.addNavPlace(null, "portal.paginas.nucleo.engenharia");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/portals/futurosAlunos/futureStudent.jsp
4,28 → 4,32
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<div class="portal">
<div class="portalContent">
<table class="columnTable">
<table class="columnTable" width="100%">
<tbody>
<tr>
<td class="column" width="50%">
<td class="column">
<jsp:include page="estgLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="servicosLinks.jsp"/>
<jsp:include page="informacaoAcademicaLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="contactosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
 
</td>
<td class="column">
<jsp:include page="institutoPolitecnicoLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="orgaosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="accaoSocialLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
<td class="column" width="50%">
<jsp:include page="informacaoAcademicaLinks.jsp"/>
<td class="column">
<jsp:include page="servicosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="mobilidadeLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="accaoSocialLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
<jsp:include page="orgaosLinks.jsp"/>
<jsp:include page="../blocoPortal.jsp"/>
</td>
</tr>
</tbody>
/impl/src/web/public/portals/blocoPortal.jsp
11,31 → 11,41
{
%>
<div class="block">
<p><%=MessageResources.getMessage(request, topNav.getTitle())%></p>
<%
}
%>
<ul>
<%
List<NavPlace> navKeys = topNav.getNavPlaces();
for (NavPlace navKey : navKeys)
<p><%=MessageResources.getMessage(request, topNav.getTitle())%></p>
<%
}
%>
<ul>
<%
List<NavPlace> navKeys = topNav.getNavPlaces();
for (NavPlace navKey : navKeys)
{
NavPlace navPlace = (NavPlace) navKey;
if (navPlace.getUrl() != null)
{
NavPlace navPlace = (NavPlace) navKey;
if (navPlace.getUrl() != null)
if(!navPlace.getUrl().contains("http://"))
{
%>
<li>
<a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
%>
<li>
<a href="<%=request.getContextPath() + navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%
}
else
{
%>
<li>
<a href="<%=navPlace.getUrl()%>"><%=MessageResources.getMessage(request, navPlace.getKey())%></a>
</li>
<%}
}
else
{
%>
<li><%=MessageResources.getMessage(request, navPlace.getKey())%></li>
<%
}
}
else
{
%>
<li><%=MessageResources.getMessage(request, navPlace.getKey())%></li>
<%
}
}
%>
</ul>
%>
</ul>
</div>
/impl/src/web/public/portals/assessoria/topnavAssessoria.jsp
New file
0,0 → 1,14
<%@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" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createTopNav(request);
topNav.addNavPlace("/Welcome.do", "Home");
topNav.addNavPlace("/student.do" + Globals.PORTAL_ROLE_VIEW_STUDENT, "menu.alunos");
topNav.addNavPlace(null, "portal.paginas.alunos.assessoria");
%>
<jsp:include page="/layout/topnav.jsp"/>
/impl/src/web/public/portals/assessoria/assessoria.jsp
New file
0,0 → 1,7
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<jsp:include page="/public/portals/assessoria/assessoriaLinks.jsp"/>
<jsp:include page="/public/portals/menuPortal.jsp"/>
/impl/src/web/public/portals/assessoria/assessoriaLinks.jsp
New file
0,0 → 1,10
<%@ page import="jomm.web.utils.TopNav" %>
<%@ page import="pt.estgp.estgweb.web.Globals" %>
<%@ page import="jomm.web.utils.NavPlaceServer" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
TopNav topNav = NavPlaceServer.getInstance().createPortalMenuPlacesKey(request);
topNav.setTitle("portal.paginas.alunos.assessoria");
String startLink = Globals.getStartLinkPortalMenu("layoutAA");
topNav.addNavPlace(startLink + "/exemplo.html", "portal.paginas.exemplo");
%>
/impl/src/web/public/announcements/announcementsPortalLeft.jsp
17,8 → 17,9
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_BOTTOM_FLASH_NEWS};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_TOP_FLASH_NEWS,subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request), "LoadRoleTypeMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
31,24 → 32,30
<td>
<div class="portalAnnouncementTop">
<div class="imageAnnouncementTop">
<img src="<%=request.getContextPath()%>/imgs/destaque_2_1.jpg"/>
<%if(item.getBigImage() != null){%><img alt="<%=item.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=item.getSmallImage().getId()%>"><%}%>
</div>
<div class="portalAnnouncement">
<logic:empty name="item" property="url">
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<div class="portalAnnouncementTitle"><html:link href="${item.url}">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.textSummarySmall}</html:link></div>
<%}
else
{%>
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
<%}%>
</logic:notEmpty>
</div>
</div>
 
</td>
 
</tr>
</logic:iterate>
</logic:present>
</table>
</div>
</div>
/impl/src/web/public/announcements/getFlashNews.jsp
New file
0,0 → 1,47
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %>
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %>
<%@ page import="pt.estgp.estgweb.domain.views.AnnouncementView" %>
<%@ page import="java.util.List" %>
<%@page import="pt.estgp.estgweb.Globals" %>
<%@ page import="pt.estgp.estgweb.web.utils.RequestUtils" %>
<%@ page import="java.util.ArrayList" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="/WEB-INF/tlds/estgweb.tld" prefix="estgweb" %>
<%@ 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" %>
<%
//String iterator = request.getParameter("iterator");
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
// String[] names = new String[]{"iterator"};
String[] names = new String[]{};
//Object[] arguments = new Object[]{Integer.parseInt(iterator)};
Object[] arguments = new Object[]{subTarget};
AnnouncementView announcementView = (AnnouncementView) sm.execute(RequestUtils.getRequester(request), "LoadTopFlashNewsIterate", arguments, names);
%>
<table class="container">
<tr>
<td class="textContainer">
<%if(announcementView.getUrl()==null)
{%>
<h2><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTextSummary()%></a></p>
<%}
else if(!announcementView.getHaveAllText())
{%>
<h2><a href="<%=announcementView.getUrl()%>"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=announcementView.getUrl()%>"><%=announcementView.getText()%></a></p>
<%}
else
{%>
<h2><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTitle()%></a></h2>
<p><a href="<%=request.getContextPath()%>/loadAnnouncement.do?id=<%=announcementView.getId()%>&dispatch=load"><%=announcementView.getTextSummary()%></a></p>
<%}%>
</td>
<td class="imageContainer">
<%if(announcementView.getBigImage() != null){%><img alt="<%=announcementView.getTitle()%>" src="<%=request.getContextPath()%>/imageStream/<%=announcementView.getBigImage().getId()%>"><%}%>
</td>
</tr>
</table>
/impl/src/web/public/announcements/loadAnnouncement.jsp
7,18 → 7,32
<%@ taglib uri="/WEB-INF/tlds/jomm.tld" prefix="jomm" %>
<jsp:useBean id="Announcement" type="pt.estgp.estgweb.domain.views.AnnouncementView" scope="request"/>
 
<table class="box">
<tr>
<th>
${Announcement.title}
</th>
</tr>
<tr>
<td>
 
<p>
${Announcement.text}
</p>
</td>
</tr>
</table>
<div class="pageSection">
<div class="sectionTitle">
<h2>${Announcement.title}</h2>
</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)
{
%>
<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>
</div>
/impl/src/web/public/announcements/announcements.jsp
9,42 → 9,38
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{};
Object[] args = new Object[]{subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request), "LoadTargetMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
 
<div class="lastNews">
<div class="header">
<h1><bean:message key="announcements"/></h1>
<div id="lastNews">
<h1><bean:message key="announcements"/></h1>
<div class="linkLeftMenu">
<logic:present name="Announcements">
<ul>
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<logic:equal value="news" name="item" property="type">
<li>
<logic:empty name="item" property="url">
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></h2>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<h2><html:link href="${item.url}">${item.title}</html:link></h2>
<%}
else
{%>
<h2><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></h2>
<%}%>
</logic:notEmpty>
</li>
</logic:equal>
</logic:iterate>
</ul>
</logic:present>
</div>
 
<table class="lastNewsBlock">
<tr>
<td>
<logic:present name="Announcements">
<div class="listClean">
<ul>
<logic:iterate id="item" name="Announcements" type="pt.estgp.estgweb.domain.views.AnnouncementView">
<li>
<logic:empty name="item" property="url">
<logic:equal value="news" name="item" property="type">
<div class="titleLastNews"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
</logic:equal>
</logic:empty>
<logic:notEmpty name="item" property="url">
<logic:equal value="news" name="item" property="type">
<div class="titleLastNews"><html:link href="${item.url}">${item.title}</html:link></div>
</logic:equal>
</logic:notEmpty>
</li>
</logic:iterate>
</ul>
</div>
</logic:present>
</td>
</tr>
 
</table>
</div>
/impl/src/web/public/announcements/announcementsPortalRight.jsp
20,8 → 20,9
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
<%
IServiceManager sm = ServiceManager.getInstance();
String subTarget=null;
String[] names = new String[]{};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_NEWS};
Object[] args = new Object[]{request.getParameter("role"), Globals.ANNOUNCEMENT_TYPE_NEWS,subTarget};
List<AnnouncementView> announcementViews = (List<AnnouncementView>) sm.execute(RequestUtils.getRequester(request), "LoadRoleTypeMaxAnnouncements", args, names);
request.setAttribute("Announcements", announcementViews);
%>
42,11 → 43,19
<div class="portalAnnouncement">
<logic:empty name="item" property="url">
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
</logic:empty>
<logic:notEmpty name="item" property="url">
<%if(!item.getHaveAllText())
{%>
<div class="portalAnnouncementTitle"><html:link href="${item.url}">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.text}</html:link></div>
<div class="portalAnnouncementText"><html:link href="${item.url}">${item.textSummarySmall}</html:link></div>
<%}
else
{%>
<div class="portalAnnouncementTitle"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.title}</html:link></div>
<div class="portalAnnouncementText"><html:link action="/loadAnnouncement?id=${item.id}&dispatch=load">${item.textSummarySmall}</html:link></div>
<%}%>
</logic:notEmpty>
</div>
</div>
/impl/src/web/templates/templatePage.jsp
File deleted
\ No newline at end of file
/impl/src/web/templates/templatePageAssessoria.jsp
New file
0,0 → 1,87
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<h1>Página de Assessoria de Administração</h1>
 
<div class="section">
<h2>O que é a Assessoria de Administração?</h2>
<p> O curso de Assessoria de Administração constitui uma licenciatura bietápica,
que habilita os alunos a integrar o mercado de trabalho, em organismos públicos ou privados,
tecnicamente qualificados para exercerem funções com responsabilidades, no âmbito da Assessoria e
apoio à direcção e administração de empresas e junto dos mais diversos níveis hierárquicos e departamentos.</p>
</div>
 
<p>Para a consecução deste objectivo, a formação ao longo do curso fornece aos alunos um conjunto de
ferramentas multidisciplinares que lhes proporcionam formação superior e altamente qualificada em
áreas tão diversas como as Línguas (Portuguesa e Estrangeiras), Secretariado, Gestão, Contabilidade,
Sociologia, Direito, Informática e Novas Tecnologias.</p>
 
<div class="section">
<h2>Saidas Profissionais</h2>
<p>Os profissionais habilitados com o curso de Assessoria de Administração estão aptos a:</p>
<div class="listDisc">
<ul>
<li>Organismos públicos ou privados para exercer funções no âmbito da Assessoria e apoio à Direcção e Administração de empresas/instituições em diversos departamentos e junto dos mais diversos níveis hierárquicos.</li>
<li>Estão também habilitados a organizar eventos, congressos e seminários, de nível nacional e internacional.</li>
<li>Etc...</li>
</ul>
</div>
</div>
 
<div class="section">
<h2>Outros acessos preferencias:</h2>
<div class="listSquare">
<ul>
<li>R831 Agrupamento 3 / Administração</li>
<li>P540 Assistente de Gestão</li>
<li>T100 Assistente de Gestão</li>
<li>Ets...</li>
</ul>
</div>
</div>
 
<div class="listClean">
<ul>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
</ul>
</div>
 
<div class="listCircleWhite">
<ul>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
</ul>
</div>
 
<div class="listDecimal">
<ul>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
</ul>
</div>
 
<div class="listDisc">
<ul>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
</ul>
</div>
 
<div class="listSquare">
<ul>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
</ul>
</div>
 
<img src=""/>
/impl/src/web/templates/templatePageNucleoEng.jsp
New file
0,0 → 1,99
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
<h1>Página do Nucleo de Engenharia</h1>
 
<div class="section">
<h2>O que é a Engenharia?</h2>
<p>Engenharia é a arte, a ciência e a técnica de bem conjugar os conhecimentos especializados
(científicos) de uma dada área do saber com a sua viabilidade técnico-econômica, para produzir
novas utilidades e/ou transformar a natureza, em conformidade com idéias bem planejadas. Já se
disse que "Engenharia é tão-somente aplicação da física aliada ao bom-senso"
[LUZ, Antônio Máximo Ribeiro da, Professor Emérito da UFMG (Belo Horizonte, MG, Brasil]
e — com os mais recentes avanços da ciência e da tecnologia, aqui se o pode aperfeiçoar:
Engenharia é aplicação prática dalgum conhecimento especializado aliado ao bom-senso.</p>
</div>
 
<p>Digno de nota é o fato de tradicionalmente as engenharias terem lidado apenas com objetos concretos,
palpáveis. Modernamente, porém, esse cenário mudou e deu lugar ao trato também de entidades ou objetos
abstratos, não-palpáveis. Tais são, por exemplo, as engenharias de custos, informática, de software, entre
outras. Numa certa medida, não rigorosa, pode-se incluir nesse novo rol, também as engenharias do ambiente e
genética, com as reservas que lhes são próprias. Toda engenharia, contudo, envolve certo grau de abstração.</p>
 
<div class="section">
<h2>Areas da Engenharia</h2>
<p>Várias são as especialidades/ramos de engenharia. Com o progresso das ciências e das tecnologias
que lhes são associadas, mais e mais especialidades continuamente estão a surgir. Eis, a seguir,
uma lista não-exaustiva das especialidades atuais de engenharia:</p>
<div class="listDecimal">
<ul>
<li>Engenharia Acústica</li>
<li>Engenharia Aeroespacial</li>
<li>Engenharia Aeronáutica</li>
<li>Engenharia Aeroviária</li>
<li><a href="http://pt.wikipedia.org/wiki/Engenharia_Agr%C3%ADcola">Engenharia Agrícola</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Engenharia_de_Agrimensura">Engenharia de Agrimensura</a></li>
<li><a href="http://pt.wikipedia.org/w/index.php?title=Engenharia_Agron%C3%B4mica&action=edit&redlink=1">Engenharia Agronômica</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Engenharia_de_Alimentos">Engenharia de Alimentos</a></li>
<li>Etc...</li>
</ul>
</div>
</div>
 
<div class="section">
<h2>Ver Também</h2>
<div class="listSquare">
<ul>
<li><a href="http://pt.wikipedia.org/wiki/Ci%C3%AAncia">Ciência</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Modelos_f%C3%ADsicos">Modelos Fisicos</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Tecnologia">Tecnologia</a></li>
<li><a href="http://pt.wikipedia.org/wiki/Toler%C3%A2ncia_%28engenharia%29">Tolerância</a></li>
</ul>
</div>
</div>
 
<div class="listClean">
<ul>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
</ul>
</div>
 
<div class="listCircleWhite">
<ul>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
</ul>
</div>
 
<div class="listDecimal">
<ul>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
</ul>
</div>
 
<div class="listDisc">
<ul>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
</ul>
</div>
 
<div class="listSquare">
<ul>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
</ul>
</div>
 
<img src=""/>
/impl/src/web/templates/templatePageOriginal.jsp
New file
0,0 → 1,54
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<h1>Titulo Principal a Verde</h1>
 
<div class="section">
<h2>Titulo da Secção</h2>
<p>textotextotextotextotextotextotextotexto</p>
</div>
 
<div class="listClean">
<ul>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
<li><a href="#">Lista de Elemento Sem Estilo</a></li>
</ul>
</div>
 
<div class="listCircleWhite">
<ul>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
<li><a href="#">Lista de Elementos Circulo Branco</a></li>
</ul>
</div>
 
<div class="listDecimal">
<ul>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
<li><a href="#">Lista de Elementos Decimal</a></li>
</ul>
</div>
 
<div class="listDisc">
<ul>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
<li><a href="#">Lista de Elementos Circulo Preto</a></li>
</ul>
</div>
 
<div class="listSquare">
<ul>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
<li><a href="#">Lista de Elementos Quadrado</a></li>
</ul>
</div>
 
<img src=""/>
/impl/gen/java/pt/estgp/estgweb/domain/Course.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
14,15 → 14,19
private Date updateDate;
private Date saveDate;
private String name;
private String contentType;
private int size;
private String description;
private byte[] image;
 
public Image() {
}
 
public Image(Date saveDate, String name, String description, byte[] image) {
public Image(Date saveDate, String name, String contentType, int size, String description, byte[] image) {
this.saveDate = saveDate;
this.name = name;
this.contentType = contentType;
this.size = size;
this.description = description;
this.image = image;
}
55,6 → 59,20
public void setName(String name) {
this.name = name;
}
public String getContentType() {
return this.contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public int getSize() {
return this.size;
}
public void setSize(int size) {
this.size = size;
}
public String getDescription() {
return this.description;
}
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/GenericUserDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/TesteDao.java
New file
0,0 → 1,39
package pt.estgp.estgweb.domain.dao.impl;
// Generated 17/Abr/2008 11:08:16 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
 
/**
* Home object for domain model class Teste.
* @author Jorge Machado - Hibernate Tools
*/
 
import jomm.dao.IDomainObjectDao;
import jomm.dao.impl.AbstractDao;
import pt.estgp.estgweb.domain.Teste;
 
 
public class TesteDao extends AbstractDao<Teste> {
//public class TesteDao extends AbstractDao implements IDomainObjectDao {
 
private static final Logger log = Logger.getLogger(TesteDao.class);
 
protected static TesteDao myInstance = null;
 
protected TesteDao(){
super();
}
 
public static TesteDao getInstance() {
if (myInstance == null)
myInstance = new TesteDao();
return myInstance;
}
 
protected Class getReferenceClass() {
return Teste.class;
}
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/dao/impl/SessionObjectIdDao.java
1,5 → 1,5
package pt.estgp.estgweb.domain.dao.impl;
// Generated 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 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 28/Mar/2008 12:41:24 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:16 by Hibernate Tools 3.2.0.b9
 
 
import org.apache.log4j.Logger;
/impl/gen/java/pt/estgp/estgweb/domain/Teste.java
New file
0,0 → 1,69
package pt.estgp.estgweb.domain;
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
 
/**
* Teste generated by hbm2java
*/
public abstract class Teste extends pt.estgp.estgweb.domain.DomainObject implements java.io.Serializable {
 
 
private long id;
private Date updateDate;
private Date saveDate;
private String name;
private String morada;
 
public Teste() {
}
 
public Teste(Date saveDate, String name, String morada) {
this.saveDate = saveDate;
this.name = name;
this.morada = morada;
}
public long getId() {
return this.id;
}
public void setId(long id) {
this.id = id;
}
public Date getUpdateDate() {
return this.updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public Date getSaveDate() {
return this.saveDate;
}
public void setSaveDate(Date saveDate) {
this.saveDate = saveDate;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getMorada() {
return this.morada;
}
public void setMorada(String morada) {
this.morada = morada;
}
 
 
 
 
}
 
 
/impl/gen/java/pt/estgp/estgweb/domain/SessionObjectId.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/Announcement.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
15,6 → 15,7
private Date saveDate;
private Date startDate;
private Date expireDate;
private String subTargets;
private String title;
private String choosedOwnerRole;
private String text;
30,10 → 31,11
public Announcement() {
}
 
public Announcement(Date saveDate, Date startDate, Date expireDate, String title, String choosedOwnerRole, String text, String targetRoles, String type, String url, boolean status, Integer counter, Image bigImage, Image smallImage, GenericUser owner) {
public Announcement(Date saveDate, Date startDate, Date expireDate, String subTargets, String title, String choosedOwnerRole, String text, String targetRoles, String type, String url, boolean status, Integer counter, Image bigImage, Image smallImage, GenericUser owner) {
this.saveDate = saveDate;
this.startDate = startDate;
this.expireDate = expireDate;
this.subTargets = subTargets;
this.title = title;
this.choosedOwnerRole = choosedOwnerRole;
this.text = text;
82,6 → 84,13
public void setExpireDate(Date expireDate) {
this.expireDate = expireDate;
}
public String getSubTargets() {
return this.subTargets;
}
public void setSubTargets(String subTargets) {
this.subTargets = subTargets;
}
public String getTitle() {
return this.title;
}
/impl/gen/java/pt/estgp/estgweb/domain/UrlStatDay.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
 
/impl/gen/java/pt/estgp/estgweb/domain/Group.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 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 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/gen/java/pt/estgp/estgweb/domain/UrlStat.java
1,5 → 1,5
package pt.estgp.estgweb.domain;
// Generated 3/Abr/2008 12:06:01 by Hibernate Tools 3.2.0.b9
// Generated 17/Abr/2008 11:08:14 by Hibernate Tools 3.2.0.b9
 
 
import java.util.Date;
/impl/build.properties
25,6 → 25,8
tomcat.username=admin
tomcat.password=admin
 
service.url=${tomcat.url}${tomcat.context.path}
 
#IF is ROOT use Nothing
#example for ROOT:
# tomcat.context.path.install=/
/impl/build.xml
1,4 → 1,4
<?xml version="1.0"?>
<?xml version="1.0" encoding="utf-8"?>
<project name="estgweb" basedir="." default="help">
 
 
276,6 → 276,9
<include name="**/*"/>
</fileset>
</copy>
<replace file="${build.dir.war}/js/ajax.js">
<replacefilter token="@server.base.url@" value="${service.url}"/>
</replace>
</target>
 
<target name="war" depends="build.war">