Author: sletellier Date: 2011-05-20 21:00:23 +0200 (Fri, 20 May 2011) New Revision: 34 Url: http://chorem.org/repositories/revision/vradi/34 Log: #378 Cr?\195?\169ation de la zone de recherche et de resultats Added: trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java trunk/vradi-web/src/main/webapp/jsp/search.jsp Removed: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/HomeAction.java trunk/vradi-web/src/main/webapp/jsp/home.jsp Modified: trunk/pom.xml trunk/vradi-web/pom.xml trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java trunk/vradi-web/src/main/java/org/chorem/vradi/actions/VradiBaseAction.java trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties trunk/vradi-web/src/main/resources/struts.xml trunk/vradi-web/src/main/webapp/index.html Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/pom.xml 2011-05-20 19:00:23 UTC (rev 34) @@ -419,7 +419,20 @@ <version>${struts2Version}</version> </dependency> + <!-- Displaytag --> <dependency> + <groupId>displaytag</groupId> + <artifactId>displaytag</artifactId> + <version>1.2</version> + <exclusions> + <exclusion> + <groupId>org.slf4j</groupId> + <artifactId>jcl104-over-slf4j</artifactId> + </exclusion> + </exclusions> + </dependency> + + <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <version>3.12.1.GA</version> Modified: trunk/vradi-web/pom.xml =================================================================== --- trunk/vradi-web/pom.xml 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/pom.xml 2011-05-20 19:00:23 UTC (rev 34) @@ -79,7 +79,14 @@ <artifactId>xwork-core</artifactId> </dependency> + <!-- Displaytag --> <dependency> + <groupId>displaytag</groupId> + <artifactId>displaytag</artifactId> + <scope>compile</scope> + </dependency> + + <dependency> <groupId>javassist</groupId> <artifactId>javassist</artifactId> <scope>runtime</scope> @@ -174,6 +181,7 @@ <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> </dependency> + </dependencies> <build> @@ -212,6 +220,7 @@ <s>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd</s> <sx>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd</sx> <sj>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd</sj> + <displaytag>http://displaytag.sourceforge.net/1.2/#displaytag.tld</displaytag> <jsp>http://java.sun.com/JSP/Page</jsp> </namespaces> </configuration> Added: trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java (rev 0) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java 2011-05-20 19:00:23 UTC (rev 34) @@ -0,0 +1,60 @@ +package org.chorem.vradi; + +import org.chorem.vradi.beans.FormPagedResult; +import org.chorem.vradi.entities.Form; +import org.displaytag.pagination.PaginatedList; +import org.displaytag.properties.SortOrderEnum; +import org.nuiton.wikitty.WikittyProxy; + +import java.util.List; + +/** + * @author sletellier + */ +public class FormPaginatedList implements PaginatedList { + + protected FormPagedResult result; + protected WikittyProxy proxy; + + public FormPaginatedList(WikittyProxy proxy, FormPagedResult result) { + this.result = result; + this.proxy = proxy; + } + + @Override + public List<Form> getList() { + List<String> formsIdsToShow = result.getFormsIdsToShow(); + + return proxy.restore(Form.class, formsIdsToShow); + } + + @Override + public int getPageNumber() { + return result.getPageToShow(); + } + + @Override + public int getObjectsPerPage() { + return result.getNbFormsToShow(); + } + + @Override + public int getFullListSize() { + return result.getTotalFoundFormNb(); + } + + @Override + public String getSortCriterion() { + return null; + } + + @Override + public SortOrderEnum getSortDirection() { + return null; + } + + @Override + public String getSearchId() { + return null; + } +} Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java 2011-05-20 19:00:23 UTC (rev 34) @@ -7,6 +7,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.chorem.vradi.entities.VradiUser; +import org.chorem.vradi.services.VradiDataService; +import org.chorem.vradi.services.VradiDataServiceImpl; import org.nuiton.i18n.I18n; import org.nuiton.i18n.init.DefaultI18nInitializer; import org.nuiton.util.ApplicationConfig; @@ -33,6 +35,8 @@ protected WikittyProxy proxy; protected ApplicationConfig config; + protected VradiDataService dataService; + private VradiUser user; public VradiSession() { @@ -42,6 +46,8 @@ WikittyService ws = WikittyServiceFactory.buildWikittyService(config); proxy = new WikittyProxy(config, ws); + dataService = new VradiDataServiceImpl(config, proxy); + // init I18n I18n.init(new DefaultI18nInitializer("vradi-i18n", getClass().getClassLoader(), "/"), null); } @@ -82,6 +88,10 @@ return proxy; } + public VradiDataService getDataService() { + return dataService; + } + public VradiUser getUser() { return user; } Deleted: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/HomeAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/HomeAction.java 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/HomeAction.java 2011-05-20 19:00:23 UTC (rev 34) @@ -1,18 +0,0 @@ -package org.chorem.vradi.actions; - -/** - * Prepare l'affichage de la page d'accueil - * - * @author poussin - */ -public class HomeAction extends VradiBaseAction { - - private static final long serialVersionUID = -3735250067223062719L; - - /** - * Initializes everything before displaying the home page - */ - public String execute() { - return SUCCESS; - } -} \ No newline at end of file Copied: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java (from rev 32, trunk/vradi-web/src/main/java/org/chorem/vradi/actions/HomeAction.java) =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java (rev 0) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-05-20 19:00:23 UTC (rev 34) @@ -0,0 +1,65 @@ +package org.chorem.vradi.actions; + +import org.apache.struts2.interceptor.ServletRequestAware; +import org.chorem.vradi.FormPaginatedList; +import org.chorem.vradi.beans.FormPagedResult; +import org.chorem.vradi.beans.QueryParameters; +import org.chorem.vradi.services.VradiException; +import org.chorem.vradi.services.search.UnsupportedQueryException; + +import javax.servlet.http.HttpServletRequest; + +/** + * Search action + * + * @author sletellier + */ +public class SearchAction extends VradiBaseAction implements ServletRequestAware { + + private static final long serialVersionUID = -3735250067223062719L; + + public static final int NB_FORMS_TO_SHOW = 100; + + protected String query; + protected FormPagedResult result; + protected HttpServletRequest request; + + public String getQuery() { + return query; + } + + public void setQuery(String query) { + this.query = query; + } + + @Override + public void setServletRequest(HttpServletRequest request) { + this.request = request; + } + + /** + * Initializes everything before displaying the home page + */ + public String execute() { + + if (result == null) { + result = new FormPagedResult(); + result.setNbFormsToShow(NB_FORMS_TO_SHOW); + } + + QueryParameters queryParameters = new QueryParameters(query); + + try { + result = getDataService().findForms(queryParameters, result); + log.info(result.getTotalFoundFormNb() + " forms found"); + } catch (VradiException eee) { + log.error("Failed to execute query", eee); + } catch (UnsupportedQueryException eee) { + log.error("Unsuported query", eee); + } + + request.setAttribute("forms", new FormPaginatedList(getProxy(), result)); + + return SUCCESS; + } +} \ No newline at end of file Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/VradiBaseAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/VradiBaseAction.java 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/VradiBaseAction.java 2011-05-20 19:00:23 UTC (rev 34) @@ -9,6 +9,7 @@ import java.util.Map; import org.apache.struts2.interceptor.SessionAware; import org.chorem.vradi.VradiSession; +import org.chorem.vradi.services.VradiDataService; import org.nuiton.util.ApplicationConfig; import org.nuiton.wikitty.WikittyProxy; @@ -40,6 +41,10 @@ return result; } + public VradiDataService getDataService() { + return getVradiSession().getDataService(); + } + public ApplicationConfig getConfig() { return getVradiSession().getConfig(); } Modified: trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties =================================================================== --- trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-05-20 19:00:23 UTC (rev 34) @@ -21,4 +21,6 @@ vradi.register.mailPwd=Your password vradi.register.mailSubject=[Vradi] Your user informations vradi.register.submit=Login -vradi.register.title=Login \ No newline at end of file +vradi.register.title=Login +vradi.search.submit=Search +vradi.search.title=Search Modified: trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties =================================================================== --- trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-05-20 19:00:23 UTC (rev 34) @@ -22,3 +22,5 @@ vradi.register.pwdDontMatch=Les mots de passe sont différents vradi.register.submit=S'enregistrer vradi.register.title=S'enregistrer +vradi.search.submit=Rechercher +vradi.search.title=Recherche Modified: trunk/vradi-web/src/main/resources/struts.xml =================================================================== --- trunk/vradi-web/src/main/resources/struts.xml 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/resources/struts.xml 2011-05-20 19:00:23 UTC (rev 34) @@ -56,7 +56,7 @@ <package name="login" extends="loginArea"> <action name="register_*" method="{1}" class="org.chorem.vradi.actions.RegisterAction"> <result name="input">/jsp/register.jsp</result> - <result type="redirectAction">home</result> + <result type="redirectAction">search</result> </action> <action name="forgotPassword_*" method="{1}" class="org.chorem.vradi.actions.ForgotPasswordAction"> <result name="input">/jsp/forgotPassword.jsp</result> @@ -64,8 +64,8 @@ </action> <action name="login_*" method="{1}" class="org.chorem.vradi.actions.LoginAction"> <result name="input">/jsp/login.jsp</result> - <result name="login" type="redirectAction">home</result> - <result type="redirectAction">home</result> + <result name="login" type="redirectAction">search</result> + <result type="redirectAction">search</result> </action> <action name="logout" class="org.chorem.vradi.actions.LogoutAction"> <result type="redirectAction">login_input</result> @@ -73,9 +73,9 @@ </package> <package name="misc" extends="restrictedArea"> - <action name="home" class="org.chorem.vradi.actions.HomeAction"> - <result>/jsp/home.jsp</result> - <result name="input" type="redirectAction">home</result> + <action name="search" class="org.chorem.vradi.actions.SearchAction"> + <result>/jsp/search.jsp</result> + <result name="input" type="redirectAction">search</result> </action> </package> Modified: trunk/vradi-web/src/main/webapp/index.html =================================================================== --- trunk/vradi-web/src/main/webapp/index.html 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/webapp/index.html 2011-05-20 19:00:23 UTC (rev 34) @@ -1,7 +1,7 @@ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> - <meta http-equiv="refresh" content="0;URL=home.action"/> + <meta http-equiv="refresh" content="0;URL=search.action"/> <title>Vradi web</title> </head> Deleted: trunk/vradi-web/src/main/webapp/jsp/home.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/jsp/home.jsp 2011-05-20 15:25:09 UTC (rev 33) +++ trunk/vradi-web/src/main/webapp/jsp/home.jsp 2011-05-20 19:00:23 UTC (rev 34) @@ -1,5 +0,0 @@ -<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> -<html> -<head><title>Simple jsp page</title></head> -<body>Place your content here</body> -</html> \ No newline at end of file Copied: trunk/vradi-web/src/main/webapp/jsp/search.jsp (from rev 32, trunk/vradi-web/src/main/webapp/jsp/home.jsp) =================================================================== --- trunk/vradi-web/src/main/webapp/jsp/search.jsp (rev 0) +++ trunk/vradi-web/src/main/webapp/jsp/search.jsp 2011-05-20 19:00:23 UTC (rev 34) @@ -0,0 +1,21 @@ +<%@ page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%> +<%@taglib prefix="s" uri="/struts-tags"%> +<%@taglib prefix="displaytag" uri="http://displaytag.sf.net"%> +<html xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd" + xmlns:jsp="http://java.sun.com/JSP/Page"> + <head> + <title><s:text name="vradi.search.title" /></title> + <s:head /> + </head> + <body> + <s:form id="searchForm" action="search" method="post"> + <s:textarea id="searchArea" name="query"/> + <s:submit key="vradi.search.submit" name="submit" /> + </s:form> + <displaytag:table name="forms" id="f" requestURI="search.action"> + <displaytag:column titleKey="vradi.form.title" property="creationDate"/> + <displaytag:column titleKey="vradi.form.title" property="objet"/> + <displaytag:column titleKey="vradi.form.title" property="sourceURL"/> + </displaytag:table> + </body> +</html> \ No newline at end of file