Commit 717d08dc by Antti Jaakkola

Merge branch 'devel' of codecrew.fi:bortal into devel

2 parents 21a12ee0 723eeb02
Showing with 158 additions and 122 deletions
eclipse.preferences.version=1
encoding/<project>=UTF-8
...@@ -193,6 +193,7 @@ public class CheckoutFiBean implements CheckoutFiBeanLocal { ...@@ -193,6 +193,7 @@ public class CheckoutFiBean implements CheckoutFiBeanLocal {
HttpResponse response = client.execute(postRequest); HttpResponse response = client.execute(postRequest);
final StringWriter writer = new StringWriter(); final StringWriter writer = new StringWriter();
IOUtils.copy(response.getEntity().getContent(), writer, "UTF8"); IOUtils.copy(response.getEntity().getContent(), writer, "UTF8");
final String xmlReturn = writer.toString(); final String xmlReturn = writer.toString();
......
...@@ -116,7 +116,8 @@ public class MenuBean implements MenuBeanLocal { ...@@ -116,7 +116,8 @@ public class MenuBean implements MenuBeanLocal {
MenuNavigation userprofile = usermenu.addPage(null, null); MenuNavigation userprofile = usermenu.addPage(null, null);
userprofile.setKey("topnavi.profile"); userprofile.setKey("topnavi.profile");
userprofile.addPage(menuitemfacade.findOrCreate("/user/edit"), UserPermission.MODIFY); userprofile.addPage(menuitemfacade.findOrCreate("/user/edit"), UserPermission.MODIFY);
userprofile.addPage(menuitemfacade.findOrCreate("/user/changePassword"), UserPermission.VIEW_SELF);
userprofile.addPage(menuitemfacade.findOrCreate("/auth/logout"), UserPermission.LOGOUT); userprofile.addPage(menuitemfacade.findOrCreate("/auth/logout"), UserPermission.LOGOUT);
/* /*
...@@ -195,6 +196,12 @@ public class MenuBean implements MenuBeanLocal { ...@@ -195,6 +196,12 @@ public class MenuBean implements MenuBeanLocal {
adminPlaces.addPage(menuitemfacade.findOrCreate("/place/adminPlacemap"), UserPermission.VIEW_ALL); adminPlaces.addPage(menuitemfacade.findOrCreate("/place/adminPlacemap"), UserPermission.VIEW_ALL);
// adminPlaces.addPage(menuitemfacade.findOrCreate("/place/adminGroups"), UserPermission.VIEW_ALL); // todo: make new view for managing // adminPlaces.addPage(menuitemfacade.findOrCreate("/place/adminGroups"), UserPermission.VIEW_ALL); // todo: make new view for managing
MenuNavigation mapnavi = adminPlaces.addPage(null, null);
mapnavi.setKey("topnavi.maps");
mapnavi.addPage(menuitemfacade.findOrCreate("/map/list"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/create"), MapPermission.MANAGE_MAPS);
mapnavi.addPage(menuitemfacade.findOrCreate("/map/edit"), null).setVisible(false);
// event // event
MenuNavigation adminevent = adminmenu.addPage(null, null); MenuNavigation adminevent = adminmenu.addPage(null, null);
......
...@@ -6,6 +6,7 @@ import java.awt.image.BufferedImage; ...@@ -6,6 +6,7 @@ import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat; import java.text.MessageFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
...@@ -28,8 +29,6 @@ import javax.persistence.PersistenceContext; ...@@ -28,8 +29,6 @@ import javax.persistence.PersistenceContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import com.sun.enterprise.security.webservices.GFServerPipeCreator;
import fi.codecrew.moya.enums.apps.SpecialPermission; import fi.codecrew.moya.enums.apps.SpecialPermission;
import fi.codecrew.moya.enums.apps.UserPermission; import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.facade.ApprovalFacade; import fi.codecrew.moya.facade.ApprovalFacade;
...@@ -75,8 +74,7 @@ public class UserBean implements UserBeanLocal { ...@@ -75,8 +74,7 @@ public class UserBean implements UserBeanLocal {
private static final Logger logger = LoggerFactory.getLogger(UserBean.class); private static final Logger logger = LoggerFactory.getLogger(UserBean.class);
/** /**
* Java EE container injektoi tämän luokkamuuttujan luokan luonnin * Java EE container injektoi tämän luokkamuuttujan luokan luonnin yhteydessä.
* yhteydessä.
*/ */
@EJB @EJB
private UserFacade userFacade; private UserFacade userFacade;
...@@ -226,7 +224,7 @@ public class UserBean implements UserBeanLocal { ...@@ -226,7 +224,7 @@ public class UserBean implements UserBeanLocal {
@Override @Override
@RolesAllowed(SpecialPermission.S_USER) @RolesAllowed(SpecialPermission.S_USER)
public UserImage uploadImage(EventUser user, String contentType, byte[] image, String filename, String description) { public UserImage uploadImage(EventUser user, String contentType, InputStream imagestream, String filename, String description) {
user = eventUserFacade.merge(user); user = eventUserFacade.merge(user);
logger.debug("uploading image to userid {}", user); logger.debug("uploading image to userid {}", user);
...@@ -237,7 +235,6 @@ public class UserBean implements UserBeanLocal { ...@@ -237,7 +235,6 @@ public class UserBean implements UserBeanLocal {
throw new EJBAccessException("No permission to upload image as another user"); throw new EJBAccessException("No permission to upload image as another user");
} }
ByteArrayInputStream imagestream = new ByteArrayInputStream(image);
BufferedImage bimage; BufferedImage bimage;
try { try {
bimage = ImageIO.read(imagestream); bimage = ImageIO.read(imagestream);
...@@ -587,9 +584,6 @@ public class UserBean implements UserBeanLocal { ...@@ -587,9 +584,6 @@ public class UserBean implements UserBeanLocal {
return user; return user;
} }
@Override @Override
public SearchResult<User> getEventUsers(SearchQuery search) { public SearchResult<User> getEventUsers(SearchQuery search) {
...@@ -619,19 +613,19 @@ public class UserBean implements UserBeanLocal { ...@@ -619,19 +613,19 @@ public class UserBean implements UserBeanLocal {
returnUsers = new SearchResult<EventUser>(newSearchList, (long) newSearchList.size()); returnUsers = new SearchResult<EventUser>(newSearchList, (long) newSearchList.size());
} }
else if(searchQuery.isUsersWithUnusedCodes()){ else if (searchQuery.isUsersWithUnusedCodes()) {
List<EventUser> newSearchList = new ArrayList<EventUser>(); List<EventUser> newSearchList = new ArrayList<EventUser>();
List<GroupMembership> groupMembers = new ArrayList<GroupMembership>(); List<GroupMembership> groupMembers = new ArrayList<GroupMembership>();
groupMembers = gmfacade.findAllWithoutUser(); groupMembers = gmfacade.findAllWithoutUser();
for (GroupMembership member : groupMembers) { for (GroupMembership member : groupMembers) {
PlaceGroup group = member.getPlaceGroup(); PlaceGroup group = member.getPlaceGroup();
if(group != null && !newSearchList.contains(group.getCreator())) { if (group != null && !newSearchList.contains(group.getCreator())) {
newSearchList.add(group.getCreator()); newSearchList.add(group.getCreator());
} }
} }
returnUsers = new SearchResult<EventUser>(newSearchList, (long)newSearchList.size()); returnUsers = new SearchResult<EventUser>(newSearchList, (long) newSearchList.size());
} }
return returnUsers; return returnUsers;
......
...@@ -51,11 +51,7 @@ ...@@ -51,11 +51,7 @@
<artifactId>pdfjet</artifactId> <artifactId>pdfjet</artifactId>
<version>0.0.0-2013-08-19</version> <version>0.0.0-2013-08-19</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<dependency> <dependency>
<groupId>fi.codecrew.moya</groupId> <groupId>fi.codecrew.moya</groupId>
<artifactId>moya-authmodule-client</artifactId> <artifactId>moya-authmodule-client</artifactId>
...@@ -66,5 +62,10 @@ ...@@ -66,5 +62,10 @@
<artifactId>httpclient</artifactId> <artifactId>httpclient</artifactId>
<version>4.3-beta2</version> <version>4.3-beta2</version>
</dependency> </dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.2</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
eclipse.preferences.version=1
encoding/<project>=UTF-8
package fi.codecrew.moya.beans; package fi.codecrew.moya.beans;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.List; import java.util.List;
import javax.ejb.Local; import javax.ejb.Local;
...@@ -27,7 +28,7 @@ public interface UserBeanLocal { ...@@ -27,7 +28,7 @@ public interface UserBeanLocal {
EventUser mergeChanges(EventUser user); EventUser mergeChanges(EventUser user);
UserImage uploadImage(EventUser user, String contentType, byte[] image, String filename, String description); UserImage uploadImage(EventUser user, String contentType, InputStream inputStream, String filename, String description);
UserImage findUserImage(int id); UserImage findUserImage(int id);
...@@ -69,8 +70,7 @@ public interface UserBeanLocal { ...@@ -69,8 +70,7 @@ public interface UserBeanLocal {
List<Role> findUsersRoles(EventUser u); List<Role> findUsersRoles(EventUser u);
/** /**
* NOTICE! If the user parameter is a persisted object the returned * NOTICE! If the user parameter is a persisted object the returned EventUser has a reloaded user, eg changes to the User object are lost!
* EventUser has a reloaded user, eg changes to the User object are lost!
* *
* @param user * @param user
* @return * @return
......
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1
encoding/<project>=UTF-8
...@@ -29,9 +29,6 @@ ...@@ -29,9 +29,6 @@
<dependent-module archiveName="pdfjet-0.0.0-2013-08-19.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/fi/iudex/pdfjet/pdfjet/0.0.0-2013-08-19/pdfjet-0.0.0-2013-08-19.jar"> <dependent-module archiveName="pdfjet-0.0.0-2013-08-19.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/fi/iudex/pdfjet/pdfjet/0.0.0-2013-08-19/pdfjet-0.0.0-2013-08-19.jar">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
<dependent-module archiveName="commons-io-1.3.2.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="moya-authmodule-client-0.2.0.jar" deploy-path="/lib" handle="module:/resource/MoyaAuthModuleClient/MoyaAuthModuleClient"> <dependent-module archiveName="moya-authmodule-client-0.2.0.jar" deploy-path="/lib" handle="module:/resource/MoyaAuthModuleClient/MoyaAuthModuleClient">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
...@@ -47,6 +44,9 @@ ...@@ -47,6 +44,9 @@
<dependent-module archiveName="commons-codec-1.6.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-codec/commons-codec/1.6/commons-codec-1.6.jar"> <dependent-module archiveName="commons-codec-1.6.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-codec/commons-codec/1.6/commons-codec-1.6.jar">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
<dependent-module archiveName="commons-io-2.2.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/commons-io/commons-io/2.2/commons-io-2.2.jar">
<dependency-type>uses</dependency-type>
</dependent-module>
<dependent-module archiveName="slf4j-jdk14-1.7.5.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/org/slf4j/slf4j-jdk14/1.7.5/slf4j-jdk14-1.7.5.jar"> <dependent-module archiveName="slf4j-jdk14-1.7.5.jar" deploy-path="/lib" handle="module:/classpath/var/M2_REPO/org/slf4j/slf4j-jdk14/1.7.5/slf4j-jdk14-1.7.5.jar">
<dependency-type>uses</dependency-type> <dependency-type>uses</dependency-type>
</dependent-module> </dependent-module>
......
eclipse.preferences.version=1
encoding/<project>=UTF-8
eclipse.preferences.version=1 eclipse.preferences.version=1
encoding//WebContent/resources/templates/template1/css/style.css=UTF-8 encoding//WebContent/resources/templates/template1/css/style.css=UTF-8
encoding/<project>=UTF-8
...@@ -12,13 +12,14 @@ ...@@ -12,13 +12,14 @@
<res-ref-name>jsf/ProjectStage</res-ref-name> <res-ref-name>jsf/ProjectStage</res-ref-name>
<res-type>java.lang.String</res-type> <res-type>java.lang.String</res-type>
</resource-ref> </resource-ref>
<context-param> <context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name> <param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value> <param-value>Development</param-value>
</context-param> </context-param>
<filter> <filter>
<display-name>PrimefacesFileupload</display-name> <display-name>PrimefacesFileupload</display-name>
<filter-name>PrimeFacesFileupload</filter-name> <filter-name>PrimefacesFileupload</filter-name>
<filter-class>org.primefaces.webapp.filter.FileUploadFilter <filter-class>org.primefaces.webapp.filter.FileUploadFilter
</filter-class> </filter-class>
</filter> </filter>
...@@ -28,7 +29,7 @@ ...@@ -28,7 +29,7 @@
<filter-class>fi.codecrew.moya.HostnameFilter</filter-class> <filter-class>fi.codecrew.moya.HostnameFilter</filter-class>
</filter> </filter>
<filter-mapping> <filter-mapping>
<filter-name>PrimeFacesFileupload</filter-name> <filter-name>PrimefacesFileupload</filter-name>
<servlet-name>Faces Servlet</servlet-name> <servlet-name>Faces Servlet</servlet-name>
</filter-mapping> </filter-mapping>
<filter-mapping> <filter-mapping>
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
<h1>#{i18n["adduser.update"]}</h1> <h1>#{i18n["adduser.update"]}</h1>
<br /> <br />
<br /> <br />
<a class="touchItem" href="javascript:dophoto(pc);"> <a class="touchItem" href="javascript:dophoto(PF('pc'));">
<div>#{i18n["adduser.takePhoto"]}</div> <div>#{i18n["adduser.takePhoto"]}</div>
</a> </a>
</h:panelGroup> </h:panelGroup>
......
...@@ -61,12 +61,12 @@ ...@@ -61,12 +61,12 @@
<ui:fragment rendered="#{!billEditView.bill.paid and !billEditView.bill.expired}"> <ui:fragment rendered="#{!billEditView.bill.paid and !billEditView.bill.expired}">
<h:form> <h:form>
<p:commandButton id="cancelbtn" onclick="confirmation.show()" value="#{i18n['bill.cancel']}" /> <p:commandButton id="cancelbtn" onclick="PF('confirmation').show()" value="#{i18n['bill.cancel']}" />
<p:confirmDialog id="confirmDialog" message="#{i18n['generic.sure.message']}" header="#{i18n['generic.sure.header']}" severity="alert" widgetVar="confirmation"> <p:confirmDialog id="confirmDialog" message="#{i18n['generic.sure.message']}" header="#{i18n['generic.sure.header']}" severity="alert" widgetVar="confirmation">
<p:commandButton value="#{i18n['generic.sure.yes']}" onclick="confirmation.hide()" actionListener="#{billEditView.expireBill()}" ajax="false" /> <p:commandButton value="#{i18n['generic.sure.yes']}" onclick="PF('confirmation').hide()" actionListener="#{billEditView.expireBill()}" ajax="false" />
<p:commandButton value="#{i18n['generic.sure.no']}" onclick="confirmation.hide()" type="button" /> <p:commandButton value="#{i18n['generic.sure.no']}" onclick="PF('confirmation').hide()" type="button" />
</p:confirmDialog> </p:confirmDialog>
</h:form> </h:form>
......
...@@ -17,6 +17,10 @@ ...@@ -17,6 +17,10 @@
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<login:login isOneliner="true" /> <login:login isOneliner="true" />
<br/>
<h:link value="#{i18n['submenu.user.create']}" outcome="/user/create" />
<br/>
<h:link value="#{i18n['submenu.auth.sendResetMail']}" outcome="/auth/sendResetMail" />
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</composite:implementation> </composite:implementation>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<p:overlayPanel id="chartPanel" for="webcamButton" hideEffect="fade"> <p:overlayPanel id="chartPanel" for="webcamButton" hideEffect="fade">
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" /> <p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="pc.capture()" /> <p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" />
</p:overlayPanel> </p:overlayPanel>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" /> <h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
......
<?xml version='1.0' encoding='UTF-8' ?> <?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:composite="http://java.sun.com/jsf/composite" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:tools="http://java.sun.com/jsf/composite/tools" xmlns:p="http://primefaces.org/ui"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:composite="http://java.sun.com/jsf/composite"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:tools="http://java.sun.com/jsf/composite/tools" xmlns:p="http://primefaces.org/ui">
<composite:interface> <composite:interface>
...@@ -20,27 +21,28 @@ ...@@ -20,27 +21,28 @@
<h:panelGroup> <h:panelGroup>
<ui:fragment rendered="#{not empty userView.user.id}"> <ui:fragment rendered="#{not empty userView.user.id}">
<p:dialog rendered="#{!cc.attrs.camAlwaysOn}" id="chartPanel" for="webcamButton" modal="true" dynamic="true" widgetVar="webcamDialog"> <p:dialog id="chartPanel" for="webcamButton" modal="true" dynamic="true" widgetVar="webcamDialog">
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" /> <p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="pc.capture()" /> <p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" />
</p:dialog> </p:dialog>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" /> <h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
<ui:fragment rendered="#{!empty userView.user.currentImage}"> <ui:fragment rendered="#{!empty userView.user.currentImage}">
<img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img" alt="image" /> <img style="width: 150px;" src="#{request.contextPath}/dydata/userimage/#{userView.user.currentImage.id}.img" alt="image" />
</ui:fragment> </ui:fragment>
<br /> <br />
<p:commandButton rendered="#{!cc.attrs.camAlwaysOn}" id="webcamButton" value="#{i18n['userimage.webcam']}" onclick="webcamDialog.show()" type="button" /> <p:commandButton rendered="#{!cc.attrs.camAlwaysOn}" id="webcamButton" value="#{i18n['userimage.webcam']}" onclick="PF('webcamDialog').show()" type="button" />
<br /> <br />
<br /> <br />
<ui:fragment rendered="#{cc.attrs.camAlwaysOn}"> <ui:fragment rendered="#{cc.attrs.camAlwaysOn}">
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" /> <p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="pc.capture()" /> <p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" />
</ui:fragment> </ui:fragment>
<!-- -->
<p:fileUpload id="uploadfile" value="#{userView.image}" mode="simple" required="true" requiredMessage="Required!" invalidSizeMessage="#{i18n['user.imageTooBig']}" sizeLimit="1024" />
<p:fileUpload id="uploadfile" required="TRUE" requiredMessage="Required!" invalidSizeMessage="#{i18n['user.imageTooBig']}" sizeLimit="1024" value="#{userView.image}" mode="simple" />
<p:message for="uploadfile" /> <p:message for="uploadfile" />
<p:commandButton action="#{userView.sendImage}" ajax="false" value="#{i18n['user.imagesubmit']}" /> <p:commandButton action="#{userView.sendImage}" ajax="false" value="#{i18n['user.imagesubmit']}" />
</ui:fragment> </ui:fragment>
......
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
<p:overlayPanel id="chartPanel" for="webcamButton" hideEffect="fade"> <p:overlayPanel id="chartPanel" for="webcamButton" hideEffect="fade">
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" /> <p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="pc.capture()" /> <p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" />
</p:overlayPanel> </p:overlayPanel>
<h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" /> <h:outputText rendered="#{empty userView.user.currentImage}" value="#{i18n['user.noCurrentImage']}" />
......
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html> <!DOCTYPE html>
<html class="no-js" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:tools="http://java.sun.com/jsf/composite/cditools" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui"> <html class="no-js" xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:tools="http://java.sun.com/jsf/composite/cditools"
xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:p="http://primefaces.org/ui">
<f:view contentType="text/html" locale="#{sessionHandler.locale}"> <f:view contentType="text/html" locale="#{sessionHandler.locale}">
...@@ -111,16 +112,17 @@ ...@@ -111,16 +112,17 @@
</div> </div>
<br /> <br />
<div class="ui-widget-header">Select Mode</div> <ui:fragment rendered="#{menuView.renderTopmenuChanger}">
<div class="ui-widget-content" style="text-align: center"> <div class="ui-widget-header">Select Mode: #{menuView.renderTopmenuChanger}</div>
<h:form render="#{menuview.viewChangeTopmenu.size() gt 1}"> <div class="ui-widget-content" style="text-align: center">
<h:form>
<p:selectOneMenu value="#{menuView.menuChange}"> <p:selectOneMenu value="#{menuView.menuChange}">
<p:ajax listener="#{menuView.menuChangeEvent}" /> <p:ajax listener="#{menuView.menuChangeEvent}" />
<f:selectItems var="menuitem" value="#{menuView.viewChangeTopmenu}" itemLabel="#{i18n[menuitem.navigation.key]}" itemValue="#{menuitem.outcome}" /> <f:selectItems var="menuitem" value="#{menuView.viewChangeTopmenu}" itemLabel="#{i18n[menuitem.navigation.key]}" itemValue="#{menuitem.outcome}" />
</p:selectOneMenu> </p:selectOneMenu>
</h:form> </h:form>
</div> </div>
</ui:fragment>
</div> </div>
</aside> </aside>
</section> </section>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<div id="webcamcontainer" style="display: none;"> <div id="webcamcontainer" style="display: none;">
<h:form> <h:form>
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" /> <p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="pc.capture()" /> <p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" />
</h:form> </h:form>
</div> </div>
......
...@@ -42,17 +42,17 @@ ...@@ -42,17 +42,17 @@
<h:selectBooleanCheckbox id="onlythisevent" value="#{userSearchView.searchQuery.onlyThisEvent}" /> <h:selectBooleanCheckbox id="onlythisevent" value="#{userSearchView.searchQuery.onlyThisEvent}" />
<h:outputLabel for="onlythisevent" value="#{i18n['userlist.onlythisevent']}" /> <h:outputLabel for="onlythisevent" value="#{i18n['userlist.onlythisevent']}" />
<br /> <br />
<h:selectBooleanCheckbox id="userswithunusedcodes" value="#{userSearchView.searchQuery.usersWithUnusedCodes}" /> <h:selectBooleanCheckbox id="userswithunusedcodes" value="#{userSearchView.searchQuery.usersWithUnusedCodes}" />
<h:outputLabel for="userswithunusedcodes" value="#{i18n['userlist.usersWithUnusedCodes']}" /> <h:outputLabel for="userswithunusedcodes" value="#{i18n['userlist.usersWithUnusedCodes']}" />
<br /> <br />
<h:inputText value="#{userSearchView.search}" /> <h:inputText value="#{userSearchView.search}" />
<h:commandButton value="#{i18n['userlist.search']}" action="#{userSearchView.newSearch()}" /> <h:commandButton value="#{i18n['userlist.search']}" action="#{userSearchView.newSearch()}" />
</h:panelGroup> </h:panelGroup>
<h:panelGroup> <h:panelGroup>
<a style="display: #{((userCartView.isEmpty())?'block':'none')};" onclick="$('#usercart').show(); $(this).hide();"><h:outputText value="#{i18n['usercart.showCart']}" /></a> <a style="display: #{((userCartView.isEmpty())?'block':'none')}" onclick="$('#usercart').show(); $(this).hide();"><h:outputText value="#{i18n['usercart.showCart']}" /></a>
<div id="usercart" style="display: #{((userCartView.isEmpty())?'none':'block')};"> <div id="usercart" style="display: #{((userCartView.isEmpty())?'none':'block')}">
<h:outputText value="#{i18n['usercart.cartsize']}" /> <h:outputText value="#{i18n['usercart.cartsize']}" />
<h:outputText value=" #{userCartView.userCartSize}" /> <h:outputText value=" #{userCartView.userCartSize}" />
<h:commandButton action="#{userCartView.clearCart()}" value="#{i18n['usercart.clear']}" /> <h:commandButton action="#{userCartView.clearCart()}" value="#{i18n['usercart.clear']}" />
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
</div> </div>
</h:panelGroup> </h:panelGroup>
</h:panelGrid> </h:panelGrid>
<h:outputText value="#{i18n['userlist.searchcount']}" />: <h:outputText value="#{userSearchView.resultcount}" /> <h:outputText value="#{i18n['userlist.searchcount']}" />: <h:outputText value="#{userSearchView.resultcount}" />
</h:form> </h:form>
<p> <p>
<users:list rendered="#{!userSearchView.searchQuery.onlyThisEvent}" /> <users:list rendered="#{!userSearchView.searchQuery.onlyThisEvent}" />
......
...@@ -15,8 +15,8 @@ ...@@ -15,8 +15,8 @@
<p:inputTextarea /> <p:inputTextarea />
<br /> <br />
<p:commandButton oncomplete="dialog.hide()" actionListener="#{userOverviewView.rejectCard()}" value="Apply" /> <p:commandButton oncomplete="PF('dialog').hide()" actionListener="#{userOverviewView.rejectCard()}" value="Apply" />
<p:commandButton onclick="dialog.hide()" type="button" value="Cancel" /> <p:commandButton onclick="PF('dialog').hide()" type="button" value="Cancel" />
</p:dialog> </p:dialog>
<h:form id="form"> <h:form id="form">
...@@ -52,7 +52,7 @@ ...@@ -52,7 +52,7 @@
<!-- <f:ajax execute="uov-items" render="@all"></f:ajax> --> <!-- <f:ajax execute="uov-items" render="@all"></f:ajax> -->
</p:commandButton> </p:commandButton>
<p:commandButton id="Reject" value="Reject" onclick="dialog.show();" type="button" /> <p:commandButton id="Reject" value="Reject" onclick="PF('dialog').show();" type="button" />
</p:column> </p:column>
</p:dataTable> </p:dataTable>
</h:form> </h:form>
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
<h:form> <h:form>
<p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" /> <p:photoCam widgetVar="pc" listener="#{userView.oncapture}" update="@all" />
<p:commandButton type="button" value="Capture" onclick="pc.capture()" /> <p:commandButton type="button" value="Capture" onclick="PF('pc').capture()" />
</h:form> </h:form>
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
</plugin> </plugin>
<plugin> <plugin>
<artifactId>maven-war-plugin</artifactId> <artifactId>maven-war-plugin</artifactId>
<version>2.3</version> <version>2.4</version>
<configuration> <configuration>
<warSourceDirectory>WebContent</warSourceDirectory> <warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml> <failOnMissingWebXml>false</failOnMissingWebXml>
...@@ -56,12 +56,7 @@ ...@@ -56,12 +56,7 @@
<dependency> <dependency>
<groupId>org.primefaces</groupId> <groupId>org.primefaces</groupId>
<artifactId>primefaces</artifactId> <artifactId>primefaces</artifactId>
<version>3.5</version> <version>4.0-20130828.122054-5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.sshd</groupId> <groupId>org.apache.sshd</groupId>
...@@ -78,5 +73,15 @@ ...@@ -78,5 +73,15 @@
<artifactId>javamelody-core</artifactId> <artifactId>javamelody-core</artifactId>
<version>1.46.0</version> <version>1.46.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
\ No newline at end of file
...@@ -50,6 +50,7 @@ public class SessionHandler { ...@@ -50,6 +50,7 @@ public class SessionHandler {
public TimeZone getTimezone() { public TimeZone getTimezone() {
return TimeZone.getTimeZone("Europe/Helsinki"); return TimeZone.getTimeZone("Europe/Helsinki");
} }
public String getLocale() { public String getLocale() {
......
...@@ -18,7 +18,6 @@ import org.slf4j.LoggerFactory; ...@@ -18,7 +18,6 @@ import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.MenuBeanLocal; import fi.codecrew.moya.beans.MenuBeanLocal;
import fi.codecrew.moya.beans.SitePageBeanLocal; import fi.codecrew.moya.beans.SitePageBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.MenuNavigation; import fi.codecrew.moya.model.MenuNavigation;
import fi.codecrew.moya.model.PageContent; import fi.codecrew.moya.model.PageContent;
import fi.codecrew.moya.web.cdiview.GenericCDIView; import fi.codecrew.moya.web.cdiview.GenericCDIView;
...@@ -52,7 +51,6 @@ public class MenuView extends GenericCDIView { ...@@ -52,7 +51,6 @@ public class MenuView extends GenericCDIView {
private String menuChange; private String menuChange;
@SuppressWarnings("unused")
private static final Logger logger = LoggerFactory.getLogger(MenuView.class); private static final Logger logger = LoggerFactory.getLogger(MenuView.class);
public List<PageContent> getPagecontent(String pagekey) public List<PageContent> getPagecontent(String pagekey)
...@@ -90,17 +88,38 @@ public class MenuView extends GenericCDIView { ...@@ -90,17 +88,38 @@ public class MenuView extends GenericCDIView {
// super.navihandler.forward(menuChange); // super.navihandler.forward(menuChange);
} }
public boolean isRenderTopmenuChanger()
{
return getViewChangeTopmenu().size() > 1;
}
private List<JsfMenuitem> viewchangeTopmenu; private List<JsfMenuitem> viewchangeTopmenu;
public List<JsfMenuitem> getViewChangeTopmenu() public List<JsfMenuitem> getViewChangeTopmenu()
{ {
if (viewchangeTopmenu == null) { if (viewchangeTopmenu == null) {
viewchangeTopmenu = new ArrayList<JsfMenuitem>(); viewchangeTopmenu = new ArrayList<JsfMenuitem>();
viewchangeTopmenu.add(new JsfMenuitem("topmenu.user", "/index"));
if (super.hasPermission(UserPermission.VIEW_ALL)) { for (MenuNavigation topmenu : menubean.getTopmenus()) {
viewchangeTopmenu.add(new JsfMenuitem("topmenu.helpdesk", "/admin/info/index"));
viewchangeTopmenu.add(new JsfMenuitem("topmenu.admin", "/useradmin/list")); String out = null;
if (topmenu.getItem() != null) {
out = topmenu.getItem().getUrl();
}
if (out == null) {
out = getOutcome(topmenu);
}
if (out != null) {
logger.info("Adding topmenu {}", out);
viewchangeTopmenu.add(new JsfMenuitem(topmenu.getKey(), out));
}
} }
// viewchangeTopmenu.add(new JsfMenuitem("topmenu.user", "/index"));
// if (super.hasPermission(UserPermission.VIEW_ALL)) {
// viewchangeTopmenu.add(new JsfMenuitem("topmenu.helpdesk", "/admin/info/index"));
// viewchangeTopmenu.add(new JsfMenuitem("topmenu.admin", "/useradmin/list"));
// }
} }
return viewchangeTopmenu; return viewchangeTopmenu;
...@@ -170,6 +189,7 @@ public class MenuView extends GenericCDIView { ...@@ -170,6 +189,7 @@ public class MenuView extends GenericCDIView {
private String getOutcome(MenuNavigation navi) { private String getOutcome(MenuNavigation navi) {
String ret = null; String ret = null;
// try to get the outcome from the first child we have permission to. // try to get the outcome from the first child we have permission to.
for (MenuNavigation child : navi.getChildren()) for (MenuNavigation child : navi.getChildren())
{ {
......
...@@ -7,16 +7,16 @@ import javax.enterprise.context.RequestScoped; ...@@ -7,16 +7,16 @@ import javax.enterprise.context.RequestScoped;
import javax.inject.Inject; import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import org.primefaces.component.menuitem.MenuItem; import org.primefaces.model.menu.DefaultMenuItem;
import org.primefaces.component.separator.Separator; import org.primefaces.model.menu.DefaultMenuModel;
import org.primefaces.component.submenu.Submenu; import org.primefaces.model.menu.DefaultSeparator;
import org.primefaces.model.DefaultMenuModel; import org.primefaces.model.menu.DefaultSubMenu;
import org.primefaces.model.MenuModel; import org.primefaces.model.menu.MenuModel;
import org.primefaces.model.menu.Submenu;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import fi.codecrew.moya.beans.MenuBeanLocal; import fi.codecrew.moya.beans.MenuBeanLocal;
import fi.codecrew.moya.enums.apps.UserPermission;
import fi.codecrew.moya.model.EventUser; import fi.codecrew.moya.model.EventUser;
import fi.codecrew.moya.model.MenuNavigation; import fi.codecrew.moya.model.MenuNavigation;
import fi.codecrew.moya.utilities.I18n; import fi.codecrew.moya.utilities.I18n;
...@@ -91,11 +91,11 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -91,11 +91,11 @@ public class PrimeMenuView extends GenericCDIView {
{ {
if (m.getItem() != null && m.getChildren().isEmpty()) if (m.getItem() != null && m.getChildren().isEmpty())
{ {
MenuItem menuitem = mkMenuitem(m); DefaultMenuItem menuitem = mkMenuitem(m);
if (menuitem != null) if (menuitem != null)
{ {
menuModel.addMenuItem(menuitem); menuModel.addElement(menuitem);
} }
} else { } else {
...@@ -103,22 +103,22 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -103,22 +103,22 @@ public class PrimeMenuView extends GenericCDIView {
if (subm != null) if (subm != null)
{ {
menuModel.addSubmenu(subm); menuModel.addElement(subm);
} }
} }
} }
} }
return menuModel; return menuModel;
} }
private Submenu addSubmenu(MenuNavigation m) { private DefaultSubMenu addSubmenu(MenuNavigation m) {
Submenu ret = null; DefaultSubMenu ret = null;
if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission()))) if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission())))
{ {
ret = new Submenu(); ret = new DefaultSubMenu();
ret.setLabel(I18n.get(m.getKey())); ret.setLabel(I18n.get(m.getKey()));
for (MenuNavigation child : m.getChildren()) for (MenuNavigation child : m.getChildren())
{ {
...@@ -126,29 +126,28 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -126,29 +126,28 @@ public class PrimeMenuView extends GenericCDIView {
if (child.getItem() != null) if (child.getItem() != null)
{ {
MenuItem item = mkMenuitem(child); DefaultMenuItem item = mkMenuitem(child);
if (item != null) if (item != null)
{ {
item.setValue(I18n.get(child.getKey())); item.setValue(I18n.get(child.getKey()));
ret.getChildren().add(item); ret.addElement(item);
} }
} else if (ret.getChildCount() > 0) { } else if (ret.getElementsCount() > 0) {
ret.getChildren().add(new Separator()); ret.addElement(new DefaultSeparator());
} }
} else { } else {
Submenu subm = addSubmenu(child); DefaultSubMenu subm = addSubmenu(child);
if (subm != null) if (subm != null)
{ {
subm.setLabel(I18n.get(child.getKey())); subm.setLabel(I18n.get(child.getKey()));
ret.getChildren().add(subm); ret.addElement(subm);
} }
} }
} }
if (ret.getChildCount() == 0) if (ret.getElementsCount() == 0) {
{
ret = null; ret = null;
} }
...@@ -156,11 +155,11 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -156,11 +155,11 @@ public class PrimeMenuView extends GenericCDIView {
return ret; return ret;
} }
private MenuItem mkMenuitem(MenuNavigation m) { private DefaultMenuItem mkMenuitem(MenuNavigation m) {
MenuItem item = null; DefaultMenuItem item = null;
if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission()))) if (m.isVisible() && (m.getPermission() == null || super.hasPermission(m.getPermission())))
{ {
item = new MenuItem(); item = new DefaultMenuItem();
String outcome; String outcome;
if (m.getSitepage() != null) if (m.getSitepage() != null)
{ {
...@@ -170,6 +169,7 @@ public class PrimeMenuView extends GenericCDIView { ...@@ -170,6 +169,7 @@ public class PrimeMenuView extends GenericCDIView {
outcome = m.getItem().getUrl(); outcome = m.getItem().getUrl();
} }
String key = I18n.get(m.getKey()); String key = I18n.get(m.getKey());
item.setValue(key); item.setValue(key);
item.setOutcome(outcome); item.setOutcome(outcome);
} }
......
...@@ -2,6 +2,7 @@ package fi.codecrew.moya.web.cdiview.user; ...@@ -2,6 +2,7 @@ package fi.codecrew.moya.web.cdiview.user;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream;
import java.util.List; import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
...@@ -14,6 +15,7 @@ import javax.inject.Inject; ...@@ -14,6 +15,7 @@ import javax.inject.Inject;
import javax.inject.Named; import javax.inject.Named;
import org.primefaces.event.CaptureEvent; import org.primefaces.event.CaptureEvent;
import org.primefaces.event.FileUploadEvent;
import org.primefaces.model.CroppedImage; import org.primefaces.model.CroppedImage;
import org.primefaces.model.DefaultStreamedContent; import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent; import org.primefaces.model.StreamedContent;
...@@ -60,7 +62,7 @@ public class UserView extends GenericCDIView { ...@@ -60,7 +62,7 @@ public class UserView extends GenericCDIView {
private transient ReaderBeanLocal readerbean; private transient ReaderBeanLocal readerbean;
private Integer userid; private Integer userid;
private transient UploadedFile image; private UploadedFile image;
private CroppedImage croppedImage; private CroppedImage croppedImage;
...@@ -121,9 +123,18 @@ public class UserView extends GenericCDIView { ...@@ -121,9 +123,18 @@ public class UserView extends GenericCDIView {
return permbean.getCurrentUser(); return permbean.getCurrentUser();
} }
public void handleImageUpload(FileUploadEvent event) {
FacesMessage msg = new FacesMessage("Succesful", event.getFile().getFileName() + " is uploaded.");
FacesContext.getCurrentInstance().addMessage(null, msg);
UploadedFile f = event.getFile();
if (f != null)
logger.info("Received file {}, {}, {}", f.getContentType(), f.getFileName(), f.getSize());
}
public void oncapture(CaptureEvent captureEvent) { public void oncapture(CaptureEvent captureEvent) {
byte[] data = captureEvent.getData(); ByteArrayInputStream data = new ByteArrayInputStream(captureEvent.getData());
UserImage img = userbean.uploadImage(user, "image/png", data, "userimage.png", "Uploaded image"); UserImage img = userbean.uploadImage(user, "image/png", data, "userimage.png", "Uploaded image");
user = userbean.getEventUser(img.getUser()); user = userbean.getEventUser(img.getUser());
// super.navihandler.forward("/admin/adduser/capturesuccess"); // super.navihandler.forward("/admin/adduser/capturesuccess");
...@@ -222,15 +233,13 @@ public class UserView extends GenericCDIView { ...@@ -222,15 +233,13 @@ public class UserView extends GenericCDIView {
return null; return null;
} }
public String sendImage() { public String sendImage() throws IOException {
if (image == null) {
if (getImage() == null)
{
super.addFaceMessage("user.imageUpload.imageNotFound"); super.addFaceMessage("user.imageUpload.imageNotFound");
} else { } else {
UserImage userimage = userbean.uploadImage(user, getImage().getContentType(), getImage().getContents(), getImage().getFileName(), ""); InputStream istr = getImage().getInputstream();
UserImage userimage = userbean.uploadImage(user, getImage().getContentType(), getImage().getInputstream(), getImage().getFileName(), "");
user = userbean.getEventUser(userimage.getUser()); user = userbean.getEventUser(userimage.getUser());
super.addFaceMessage("user.imageUploaded"); super.addFaceMessage("user.imageUploaded");
} }
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!