[Suiviobsmer-commits] r1200 - in trunk: wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/components wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components
Author: sletellier Date: 2011-04-13 13:48:30 +0000 (Wed, 13 Apr 2011) New Revision: 1200 Log: First implementation of RoadMap (ical) on ui Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Footer.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Footer.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2011-04-13 13:48:30 UTC (rev 1200) @@ -124,4 +124,11 @@ public boolean isObsDeb() { return isProgram(ObsProgram.OBSDEB); } + + @Override + public String getTokenId() { + + // TODO sletellier 20110413 : change this with a real tokenid + return getUser().getPassword(); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java 2011-04-13 13:48:30 UTC (rev 1200) @@ -32,6 +32,7 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; import java.util.List; /** @@ -88,6 +89,20 @@ return true; } } + return hasUserRole(userRole, getUserProfile()); + } + + @Override + public boolean hasUserRole(UserRole userRole, ObsProgram obsProgram) { + return hasUserRole(userRole, getUserProfile(obsProgram)); + } + + protected boolean hasUserRole(UserRole userRole, Collection<UserProfile> userProfiles) { + for (UserProfile profile : userProfiles) { + if (profile.getUserRole() == userRole) { + return true; + } + } return false; } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-04-13 13:48:30 UTC (rev 1200) @@ -122,7 +122,6 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2011-04-13 13:48:30 UTC (rev 1200) @@ -44,6 +44,7 @@ import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.SampleRowLog; import fr.ifremer.wao.entity.SampleRowLogDAO; +import fr.ifremer.wao.entity.TargetSpeciesDCF; import fr.ifremer.wao.entity.UserProfile; import fr.ifremer.wao.entity.UserProfileDAO; import fr.ifremer.wao.entity.UserProfileImpl; @@ -543,4 +544,33 @@ transaction.commitTransaction(); } + + @Override + protected ConnectedUser executeGetConnectedUserByToken(TopiaContext transaction, String tokenId) throws Exception { + WaoUserDAO waoUserDAO = WaoDAOHelper.getWaoUserDAO(transaction); + + // TODO sletellier 20110413 : change this with a real tokenid + WaoUser user = waoUserDAO.findByPassword(tokenId); + + if (user == null) { + throw new IllegalArgumentException("tokenId is not valid"); + } + + ConnectedUserImpl result = new ConnectedUserImpl(); + + result.setUser(user); + + // Determine role for this one + if (user.hasUserRole(UserRole.COORDINATOR, ObsProgram.OBSDEB)) { + UserProfile userProfile = new UserProfileImpl(ObsProgram.OBSDEB, UserRole.COORDINATOR, false); + result.setProfile(userProfile); + } else if (user.hasUserRole(UserRole.OBSERVER, ObsProgram.OBSDEB)) { + UserProfile userProfile = new UserProfileImpl(ObsProgram.OBSDEB, UserRole.OBSERVER, false); + result.setProfile(userProfile); + } else { + throw new IllegalArgumentException("User " + user.getLogin() + " is not allowed to use tokenId"); + } + + return result; + } } Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-04-13 13:48:30 UTC (rev 1200) @@ -238,8 +238,10 @@ wao.error.serviceUser.forgetPassword= wao.error.serviceUser.getCompanies= wao.error.serviceUser.getCompany= +wao.error.serviceUser.getConnectedUserByToken= wao.error.serviceUser.getNewUser= wao.error.serviceUser.getObservers= +wao.error.serviceUser.getUserByToken= wao.error.serviceUser.getUserRolesByLogin= wao.error.serviceUser.getUsersByCompany= wao.import.contact.failure.boatMissing=You need to precise the plate number of the boat associated to the contact Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-04-13 13:48:30 UTC (rev 1200) @@ -238,8 +238,10 @@ wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe wao.error.serviceUser.getCompanies=Impossible de r\u00E9cup\u00E9rer la liste des soci\u00E9t\u00E9s wao.error.serviceUser.getCompany= +wao.error.serviceUser.getConnectedUserByToken= wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur wao.error.serviceUser.getObservers=Impossible de r\u00E9cup\u00E9rer la liste des observateurs +wao.error.serviceUser.getUserByToken= wao.error.serviceUser.getUserRolesByLogin= wao.error.serviceUser.getUsersByCompany=Impossible de r\u00E9cup\u00E9rer la liste des utilisateurs de la soci\u00E9t\u00E9 %1$s wao.import.contact.failure.boatMissing=Il faut pr\u00E9ciser l'immatriculation du navire associ\u00E9 au contact Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Footer.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Footer.java 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Footer.java 2011-04-13 13:48:30 UTC (rev 1200) @@ -22,8 +22,11 @@ import fr.ifremer.wao.WaoProperty; import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.ui.pages.RoadMap; import org.apache.tapestry5.annotations.Parameter; import org.apache.tapestry5.annotations.Property; +import org.apache.tapestry5.ioc.annotations.Inject; +import org.apache.tapestry5.services.PageRenderLinkSource; import java.util.Calendar; @@ -35,6 +38,9 @@ */ public class Footer { + @Inject + private PageRenderLinkSource pageRender; + @Parameter @Property private ConnectedUser connectedUser; @@ -47,4 +53,8 @@ Calendar calendar = Calendar.getInstance(); return calendar.get(Calendar.YEAR); } + + public String getRoadMapUrl() { + return pageRender.createPageRenderLinkWithContext(RoadMap.class, connectedUser.getTokenId()).toURI(); + } } Added: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java (rev 0) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java 2011-04-13 13:48:30 UTC (rev 1200) @@ -0,0 +1,62 @@ +package fr.ifremer.wao.ui.pages; + +import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.service.ServiceSampling; +import fr.ifremer.wao.service.ServiceUser; +import fr.ifremer.wao.ui.data.RequiresAuthentication; +import fr.ifremer.wao.ui.data.TapestryUtil; +import org.apache.tapestry5.StreamResponse; +import org.apache.tapestry5.annotations.Property; +import org.apache.tapestry5.annotations.SessionState; +import org.apache.tapestry5.ioc.annotations.Inject; +import org.apache.tapestry5.services.Response; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Page to acces to ical export for SamplingPlan. The activate method + * will return the StreamResponse with ical data. + * + * @author sletellier + */ +public class RoadMap { + + @Inject + private ServiceSampling serviceSampling; + + @Inject + private ServiceUser serviceUser; + + StreamResponse onActivate(Object... activationContext) throws IOException { + + String tokenId = TapestryUtil.getFirstString(activationContext); + + ConnectedUser connectedUser = serviceUser.getConnectedUserByToken(tokenId); + + InputStream inputStream = serviceSampling.exportSamplingPlanICalendar(connectedUser); + + return new ICalStreamResponse(inputStream); + } + + protected class ICalStreamResponse implements StreamResponse { + protected InputStream inputStream; + public ICalStreamResponse(InputStream inputStream) { + this.inputStream = inputStream; + } + + @Override + public String getContentType() { + return "text/calendar"; + } + + @Override + public InputStream getStream() throws IOException { + return inputStream; + } + + @Override + public void prepareResponse(Response response) { + } + } +} Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Footer.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Footer.tml 2011-04-13 13:10:04 UTC (rev 1199) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Footer.tml 2011-04-13 13:48:30 UTC (rev 1200) @@ -54,6 +54,7 @@ ${message:wao.ui.disclaimer} </p> </t:if> + ${roadMapUrl} </div>
participants (1)
-
sletellier@users.labs.libre-entreprise.org