Author: bleny Date: 2013-03-27 14:11:24 +0100 (Wed, 27 Mar 2013) New Revision: 47 Url: http://forge.codelutin.com/projects/franciaflex-magalie/repository/revisions... Log: refs #2223 implements login screen with two select box and logout Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/SiteDao.java trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/SiteJpaDao.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/IndexAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LoginAction.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp trunk/magalie-web/src/main/webapp/WEB-INF/content/login-input.jsp Removed: trunk/magalie-web/src/main/webapp/WEB-INF/content/index.jsp Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java trunk/magalie-web/src/main/webapp/WEB-INF/decorators.xml Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/SiteDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/SiteDao.java (rev 0) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/SiteDao.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,11 @@ +package com.franciaflex.magalie.persistence.dao; + +import com.franciaflex.magalie.persistence.entity.Site; + +import java.util.List; + +public interface SiteDao extends Dao<Site> { + + List<String> getAllStoreCodes(); + +} Added: trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/SiteJpaDao.java =================================================================== --- trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/SiteJpaDao.java (rev 0) +++ trunk/magalie-persistence/src/main/java/com/franciaflex/magalie/persistence/dao/jpa/SiteJpaDao.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,27 @@ +package com.franciaflex.magalie.persistence.dao.jpa; + +import com.franciaflex.magalie.persistence.dao.SiteDao; +import com.franciaflex.magalie.persistence.entity.Site; + +import javax.persistence.EntityManager; +import javax.persistence.Query; +import java.util.List; + +public class SiteJpaDao extends AbstractJpaDao<Site> implements SiteDao { + + public SiteJpaDao(EntityManager entityManager) { + super(entityManager); + } + + @Override + protected Class<Site> getEntityClass() { + return Site.class; + } + + @Override + public List<String> getAllStoreCodes() { + Query query = entityManager.createQuery("select distinct s.storeCode from Site s order by s.storeCode"); + List<String> resultList = query.getResultList(); + return resultList; + } +} Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-03-27 10:31:14 UTC (rev 46) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/DefaultMagalieServiceContext.java 2013-03-27 13:11:24 UTC (rev 47) @@ -5,6 +5,7 @@ import com.franciaflex.magalie.persistence.dao.ArticleDao; import com.franciaflex.magalie.persistence.dao.MagalieUserDao; import com.franciaflex.magalie.persistence.dao.RequestedArticleDao; +import com.franciaflex.magalie.persistence.dao.SiteDao; import com.franciaflex.magalie.persistence.dao.SiteErrorDao; import com.franciaflex.magalie.persistence.dao.StorageMovementDao; import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao; @@ -13,6 +14,7 @@ import com.franciaflex.magalie.persistence.dao.jpa.MagalieUserJpaDao; import com.franciaflex.magalie.persistence.dao.jpa.RequestedArticleJpaDao; import com.franciaflex.magalie.persistence.dao.jpa.SiteErrorJpaDao; +import com.franciaflex.magalie.persistence.dao.jpa.SiteJpaDao; import com.franciaflex.magalie.persistence.dao.jpa.StorageMovementJpaDao; import com.franciaflex.magalie.persistence.dao.jpa.StorageMovementOrderJpaDao; import com.franciaflex.magalie.persistence.dao.jpa.StoredArticleJpaDao; @@ -116,4 +118,9 @@ public StorageMovementOrderDao getStorageMovementOrderDao() { return new StorageMovementOrderJpaDao(entityManager); } + + @Override + public SiteDao getSiteDao() { + return new SiteJpaDao(entityManager); + } } Modified: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-03-27 10:31:14 UTC (rev 46) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/MagalieServiceContext.java 2013-03-27 13:11:24 UTC (rev 47) @@ -27,6 +27,7 @@ import com.franciaflex.magalie.persistence.dao.ArticleDao; import com.franciaflex.magalie.persistence.dao.MagalieUserDao; import com.franciaflex.magalie.persistence.dao.RequestedArticleDao; +import com.franciaflex.magalie.persistence.dao.SiteDao; import com.franciaflex.magalie.persistence.dao.SiteErrorDao; import com.franciaflex.magalie.persistence.dao.StorageMovementDao; import com.franciaflex.magalie.persistence.dao.StorageMovementOrderDao; @@ -58,4 +59,7 @@ SiteErrorDao getSiteErrorDao(); StorageMovementOrderDao getStorageMovementOrderDao(); + + SiteDao getSiteDao(); + } Added: trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java =================================================================== --- trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java (rev 0) +++ trunk/magalie-services/src/main/java/com/franciaflex/magalie/services/service/StoreService.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,25 @@ +package com.franciaflex.magalie.services.service; + +import com.franciaflex.magalie.persistence.dao.SiteDao; +import com.franciaflex.magalie.services.MagalieService; +import com.franciaflex.magalie.services.MagalieServiceContext; + +import java.util.List; + +public class StoreService implements MagalieService { + + protected MagalieServiceContext serviceContext; + + @Override + public void setServiceContext(MagalieServiceContext serviceContext) { + this.serviceContext = serviceContext; + } + + public List<String> getAllStoreCodes() { + + SiteDao dao = serviceContext.getSiteDao(); + + return dao.getAllStoreCodes(); + + } +} Modified: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java 2013-03-27 10:31:14 UTC (rev 46) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/MagalieSession.java 2013-03-27 13:11:24 UTC (rev 47) @@ -18,6 +18,8 @@ protected MagalieUser magalieUser; + protected String storeCode; + public MagalieUser getMagalieUser() { return magalieUser; } @@ -25,4 +27,12 @@ public void setMagalieUser(MagalieUser magalieUser) { this.magalieUser = magalieUser; } + + public void setStoreCode(String storeCode) { + this.storeCode = storeCode; + } + + public String getStoreCode() { + return storeCode; + } } Added: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java (rev 0) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/ChooseActivityAction.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,37 @@ +package com.franciaflex.magalie.web.action; + +import com.franciaflex.magalie.persistence.entity.MagalieUser; +import com.franciaflex.magalie.web.MagalieActionSupport; +import com.franciaflex.magalie.web.MagalieSession; + +public class ChooseActivityAction extends MagalieActionSupport { + + protected MagalieSession session; + + protected MagalieUser magalieUser; + + protected String storeCode; + + public void setSession(MagalieSession session) { + this.session = session; + } + + @Override + public String execute() throws Exception { + + magalieUser = session.getMagalieUser(); + + storeCode = session.getStoreCode(); + + return SUCCESS; + + } + + public MagalieUser getMagalieUser() { + return magalieUser; + } + + public String getStoreCode() { + return storeCode; + } +} Added: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/IndexAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/IndexAction.java (rev 0) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/IndexAction.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,12 @@ +package com.franciaflex.magalie.web.action; + + +import com.franciaflex.magalie.web.MagalieActionSupport; +import org.apache.struts2.convention.annotation.Result; +import org.apache.struts2.convention.annotation.Results; + +@Results({ + @Result(name="success", type="redirectAction", params = { "actionName", "login!input" }) +}) +public class IndexAction extends MagalieActionSupport { +} Added: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LoginAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LoginAction.java (rev 0) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LoginAction.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,91 @@ +package com.franciaflex.magalie.web.action; + +import com.franciaflex.magalie.persistence.entity.MagalieUser; +import com.franciaflex.magalie.services.service.MagalieUsersService; +import com.franciaflex.magalie.services.service.StoreService; +import com.franciaflex.magalie.web.MagalieActionSupport; +import com.franciaflex.magalie.web.MagalieSession; +import org.apache.struts2.convention.annotation.Result; +import org.apache.struts2.convention.annotation.Results; + +import java.util.List; + +@Results({ + @Result(name="success", type="redirectAction", params = { "actionName", "choose-activity" }) +}) +public class LoginAction extends MagalieActionSupport { + + protected MagalieUsersService magalieUsersService; + + protected StoreService storeService; + + protected List<MagalieUser> allMagalieUsers; + + protected List<String> allStoreCodes; + + protected MagalieSession session; + + protected String login; + + protected String storeCode; + + public void setMagalieUsersService(MagalieUsersService magalieUsersService) { + this.magalieUsersService = magalieUsersService; + } + + public void setStoreService(StoreService storeService) { + this.storeService = storeService; + } + + public void setSession(MagalieSession session) { + this.session = session; + } + + public void setLogin(String login) { + this.login = login; + } + + public void setStoreCode(String storeCode) { + this.storeCode = storeCode; + } + + @Override + public String input() { + + allMagalieUsers = magalieUsersService.getAllMagalieUsers(); + + allStoreCodes = storeService.getAllStoreCodes(); + + return INPUT; + + } + + public String getLogin() { + return login; + } + + public String getStoreCode() { + return storeCode; + } + + public List<MagalieUser> getAllMagalieUsers() { + return allMagalieUsers; + } + + public List<String> getAllStoreCodes() { + return allStoreCodes; + } + + @Override + public String execute() { + + MagalieUser magalieUser = magalieUsersService.getMagalieUser(login); + + session.setMagalieUser(magalieUser); + + session.setStoreCode(storeCode); + + return SUCCESS; + + } +} Added: trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java =================================================================== --- trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java (rev 0) +++ trunk/magalie-web/src/main/java/com/franciaflex/magalie/web/action/LogoutAction.java 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,29 @@ +package com.franciaflex.magalie.web.action; + +import com.franciaflex.magalie.web.MagalieActionSupport; +import com.franciaflex.magalie.web.MagalieSession; +import org.apache.struts2.convention.annotation.Result; +import org.apache.struts2.convention.annotation.Results; + +@Results({ + @Result(name="success", type="redirectAction", params = { "actionName", "login!input" }) +}) +public class LogoutAction extends MagalieActionSupport { + + protected MagalieSession session; + + public void setSession(MagalieSession session) { + this.session = session; + } + + @Override + public String execute() { + + session.setMagalieUser(null); + + session.setStoreCode(null); + + return SUCCESS; + + } +} Added: trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp (rev 0) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/choose-activity.jsp 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,45 @@ +<%-- + #%L + MagaLiE :: UI + $Id:$ + $HeadURL:$ + %% + Copyright (C) 2013 CodeLutin + %% + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. + #L% + --%> + +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> +<%@ taglib prefix="s" uri="/struts-tags" %> +<%@ taglib prefix="sb" uri="/struts-bootstrap-tags" %> +<%@ taglib prefix="sj" uri="/struts-jquery-tags" %> + +<s:url namespace="/" action="withdraw-item!input" id="withdrawItemUrl"/> +<s:url namespace="/" action="fulfil-kanban!input" id="fulfilKanbanUrl"/> +<s:url namespace="/" action="logout" id="logoutUrl"/> + +<header> + <dl class="dl-horizontal"> + <dt>Identifiant</dt> + <dd><s:property value="magalieUser.name" /> (<s:property value="magalieUser.login" />)</dd> + <dt>Magasin</dt> + <dd><s:property value="storeCode" /></dd> + </dl> +</header> + +<s:a href="%{withdrawItemUrl}" cssClass="btn btn-block">Traiter listes à servir</s:a> +<s:a href="%{fulfilKanbanUrl}" cssClass="btn btn-block">Traiter kanbans</s:a> +<s:a href="" cssClass="btn btn-block">Traiter les réceptions fournisseurs</s:a> +<s:a href="%{logoutUrl}" cssClass="btn btn-block">Déconnexion</s:a> Deleted: trunk/magalie-web/src/main/webapp/WEB-INF/content/index.jsp =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/index.jsp 2013-03-27 10:31:14 UTC (rev 46) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/index.jsp 2013-03-27 13:11:24 UTC (rev 47) @@ -1,43 +0,0 @@ -<%-- - #%L - MagaLiE :: UI - $Id:$ - $HeadURL:$ - %% - Copyright (C) 2013 CodeLutin - %% - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. - #L% - --%> - -<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> -<%@ taglib prefix="s" uri="/struts-tags" %> -<%@ taglib prefix="sb" uri="/struts-bootstrap-tags" %> -<%@ taglib prefix="sj" uri="/struts-jquery-tags" %> - -<s:url namespace="/" action="withdraw-item!input" id="withdrawItemUrl"/> -<s:url namespace="/" action="fulfil-kanban!input" id="fulfilKanbanUrl"/> - -<header> - <dl class="dl-horizontal"> - <dt>Identifiant</dt> - <dd>bre</dd> - <dt>Magasin</dt> - <dd>U01</dd> - </dl> -</header> - -<s:a href="%{withdrawItemUrl}" cssClass="btn btn-block">Traiter listes à servir</s:a> -<s:a href="%{fulfilKanbanUrl}" cssClass="btn btn-block">Traiter kanbans</s:a> -<s:a href="" cssClass="btn btn-block">Traiter les réceptions fournisseurs</s:a> Copied: trunk/magalie-web/src/main/webapp/WEB-INF/content/login-input.jsp (from rev 39, trunk/magalie-web/src/main/webapp/WEB-INF/content/index.jsp) =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/content/login-input.jsp (rev 0) +++ trunk/magalie-web/src/main/webapp/WEB-INF/content/login-input.jsp 2013-03-27 13:11:24 UTC (rev 47) @@ -0,0 +1,27 @@ +<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %> +<%@ taglib prefix="s" uri="/struts-tags" %> + +<head> + <title>Connexion</title> +</head> + +<s:form cssClass="form-horizontal"> + + <s:select label="Utilisateur" + key="login" + list="allMagalieUsers" + listKey="login" + listValue="name" + required="true" + /> + + <s:select label="Magasin" + key="storeCode" + list="allStoreCodes" + required="true" + /> + + <div class="btn-group"> + <s:submit value="S'identifier" cssClass="btn btn-primary btn-small" /> + </div> +</s:form> Modified: trunk/magalie-web/src/main/webapp/WEB-INF/decorators.xml =================================================================== --- trunk/magalie-web/src/main/webapp/WEB-INF/decorators.xml 2013-03-27 10:31:14 UTC (rev 46) +++ trunk/magalie-web/src/main/webapp/WEB-INF/decorators.xml 2013-03-27 13:11:24 UTC (rev 47) @@ -26,9 +26,6 @@ <pattern>/js/*</pattern> <pattern>/images/*</pattern> <pattern>/config-browser/*</pattern> - <pattern>/login*</pattern> - <pattern>/recoverPassword*</pattern> - <pattern>/register*</pattern> </excludes> <decorator name="layout" page="layout.jsp">