Vradi-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
June 2011
- 5 participants
- 30 discussions
r92 - in trunk/vradi-web/src/main: java/org/chorem/vradi java/org/chorem/vradi/actions resources resources/i18n webapp/WEB-INF/jsp webapp/WEB-INF/jsp/inc webapp/css
by sletellier@users.chorem.org 27 Jun '11
by sletellier@users.chorem.org 27 Jun '11
27 Jun '11
Author: sletellier
Date: 2011-06-27 11:56:47 +0200 (Mon, 27 Jun 2011)
New Revision: 92
Url: http://chorem.org/repositories/revision/vradi/92
Log:
Add option page to manage vradi web
Added:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/OptionsAction.java
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/options.jsp
trunk/vradi-web/src/main/webapp/css/style.css
Removed:
trunk/vradi-web/src/main/webapp/css/search.css
Modified:
trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java
trunk/vradi-web/src/main/java/org/chorem/vradi/VradiWebConfig.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LoginAction.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LogoutAction.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.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/log4j.properties
trunk/vradi-web/src/main/resources/struts.xml
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/header.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/VradiSession.java 2011-06-27 09:56:47 UTC (rev 92)
@@ -6,6 +6,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.vradi.entities.VradiUser;
+import org.chorem.vradi.services.FileService;
import org.chorem.vradi.services.VradiDataService;
import org.chorem.vradi.services.VradiServiceFactory;
import org.nuiton.util.ApplicationConfig;
@@ -31,6 +32,7 @@
transient protected VradiProxy proxy = null;
transient protected VradiDataService dataService;
+ transient protected FileService fileService;
public VradiSession() {
// FIXME poussin 20110521 ?
@@ -106,6 +108,18 @@
return dataService;
}
+ public FileService getFileService() {
+ if (fileService == null) {
+ synchronized(VradiSession.class) {
+ if (fileService == null) {
+ ApplicationConfig config = VradiWebConfig.getConfig();
+ fileService = VradiServiceFactory.getFileService(config);
+ }
+ }
+ }
+ return fileService;
+ }
+
public VradiUser getUser() {
return user;
}
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/VradiWebConfig.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/VradiWebConfig.java 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/VradiWebConfig.java 2011-06-27 09:56:47 UTC (rev 92)
@@ -9,6 +9,7 @@
import org.nuiton.wikitty.WikittyConfigOption;
import sun.security.jca.GetInstance;
+import java.util.List;
import java.util.Locale;
import static org.nuiton.i18n.I18n._;
@@ -83,6 +84,10 @@
return config;
}
+ public static List<String> getAdminEmail() {
+ return VradiServiceConfigurationHelper.getMailAdmin(getConfig());
+ }
+
public static String getVradiVersion() {
return getConfig().getOption(VradiWebOption.VRADI_VERSION.getKey());
}
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LoginAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LoginAction.java 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LoginAction.java 2011-06-27 09:56:47 UTC (rev 92)
@@ -2,9 +2,6 @@
import org.chorem.vradi.entities.VradiUser;
import org.nuiton.util.StringUtil;
-import org.nuiton.wikitty.search.Criteria;
-import org.nuiton.wikitty.WikittyProxy;
-import org.nuiton.wikitty.search.Search;
import static org.nuiton.i18n.I18n.n_;
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LogoutAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LogoutAction.java 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/LogoutAction.java 2011-06-27 09:56:47 UTC (rev 92)
@@ -1,11 +1,16 @@
package org.chorem.vradi.actions;
/**
- * Created by IntelliJ IDEA.
- * User: letellier
- * Date: 19/05/11
- * Time: 12:05
- * To change this template use File | Settings | File Templates.
+ * Invalide la session courante et donc de-authentifie l'utilisateur
+ *
+ * @author poussin
*/
-public class LogoutAction {
+public class LogoutAction extends VradiBaseAction {
+
+ private static final long serialVersionUID = 4806944250461551896L;
+
+ public String execute() {
+ getVradiSession().invalidate(session);
+ return SUCCESS;
+ }
}
Added: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/OptionsAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/OptionsAction.java (rev 0)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/OptionsAction.java 2011-06-27 09:56:47 UTC (rev 92)
@@ -0,0 +1,167 @@
+package org.chorem.vradi.actions;
+
+import org.apache.commons.lang.StringUtils;
+import org.chorem.vradi.VradiWebConfig;
+import org.chorem.vradi.entities.VradiUser;
+import org.chorem.vradi.services.managers.MailingManager;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import static org.nuiton.i18n.I18n._;
+
+/**
+ * Action used for vradi web options page
+ *
+ * @author sletellier
+ */
+public class OptionsAction extends VradiBaseAction {
+
+ protected String thesaurusPath;
+ protected String thesaurusName;
+ protected String thesaurusNewChildName;
+ protected String thesaurusRenamed;
+
+ protected File webHarvestScript;
+ protected String rssUrl;
+ protected String comment;
+
+ public String getThesaurusPath() {
+ return thesaurusPath;
+ }
+
+ public void setThesaurusPath(String thesaurusPath) {
+ this.thesaurusPath = thesaurusPath;
+ }
+
+ public String getThesaurusName() {
+ return thesaurusName;
+ }
+
+ public void setThesaurusName(String thesaurusName) {
+ this.thesaurusName = thesaurusName;
+ }
+
+ public String getThesaurusNewChildName() {
+ return thesaurusNewChildName;
+ }
+
+ public void setThesaurusNewChildName(String thesaurusNewChildName) {
+ this.thesaurusNewChildName = thesaurusNewChildName;
+ }
+
+ public String getThesaurusRenamed() {
+ return thesaurusRenamed;
+ }
+
+ public void setThesaurusRenamed(String thesaurusRenamed) {
+ this.thesaurusRenamed = thesaurusRenamed;
+ }
+
+ public File getWebHarvestScript() {
+ return webHarvestScript;
+ }
+
+ public void setWebHarvestScript(File webHarvestScript) {
+ this.webHarvestScript = webHarvestScript;
+ }
+
+ public String getRssUrl() {
+ return rssUrl;
+ }
+
+ public void setRssUrl(String rssUrl) {
+ this.rssUrl = rssUrl;
+ }
+
+ public String getComment() {
+ return comment;
+ }
+
+ public void setComment(String comment) {
+ this.comment = comment;
+ }
+
+ @Override
+ public String execute() throws Exception {
+
+ boolean sent = true;
+ if (!StringUtils.isEmpty(thesaurusNewChildName)) {
+ // User propose new thesaurus child
+ sent &= EmailType.THESAURUS_NEW_CHILD.sendEmail(getUser(), comment, thesaurusPath, thesaurusNewChildName);
+ }
+ if (!StringUtils.isEmpty(thesaurusRenamed)) {
+ // User propose to rename thesaurus
+ sent &= EmailType.THESAURUS_RENAMED.sendEmail(getUser(), comment, thesaurusPath, thesaurusName, thesaurusRenamed);
+ }
+ if (webHarvestScript != null) {
+ // Upload file
+ String uri = getVradiSession().getFileService().uploadWebHarvestScript(webHarvestScript);
+
+ // User propose to add a webharvest script
+ sent &= EmailType.WEBHARVEST.sendEmail(getUser(), comment, uri);
+ }
+ if (!StringUtils.isEmpty(rssUrl)) {
+ // User propose to add an rss
+ sent &= EmailType.RSS.sendEmail(getUser(), comment, rssUrl);
+ }
+
+ if (sent) {
+ return SUCCESS;
+ } else {
+ return ERROR;
+ }
+ }
+
+ public enum EmailType {
+ THESAURUS_NEW_CHILD("vradi.template.thesaurus.new.child"),
+ THESAURUS_RENAMED("vradi.template.thesaurus.renamed"),
+ WEBHARVEST("vradi.template.webHarvest"),
+ RSS("vradi.template.rss");
+
+ public static final String TITLE_PREFIX = ".title";
+ private String key;
+
+ EmailType(String key) {
+ this.key = key;
+ }
+
+ /**
+ * We consider that i18n is created for key with login and more in args
+ *
+ * @param user ask to send msg
+ * @param args to add in message
+ * @return true if send
+ */
+ public boolean sendEmail(VradiUser user, String comment, String... args) {
+ String title = _(key + TITLE_PREFIX);
+
+ List<String> argsList = new ArrayList<String>();
+ argsList.add(user.getLogin());
+ argsList.add(comment);
+ argsList.addAll(Arrays.asList(args));
+
+ String msg = _(key, argsList.toArray(new String[argsList.size()]));
+
+ List<String> adminEmail = VradiWebConfig.getAdminEmail();
+ for (String recipient : adminEmail) {
+ try {
+ MailingManager.postMail(VradiWebConfig.getConfig(), recipient, title, false, msg);
+ if (log.isDebugEnabled()) {
+ log.debug("Mail is sent from '" + user.getLogin() +
+ "' to '" + recipient + "' with title '" +
+ title + "' and body : " + msg);
+ }
+ } catch (Exception eee) {
+ log.error("Failed to send email from '" + user.getLogin() +
+ "' to '" + recipient + "' with title '" +
+ title + "' and body : " + msg, eee);
+ return false;
+ }
+ }
+ return true;
+ }
+ }
+}
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-27 09:56:47 UTC (rev 92)
@@ -80,13 +80,6 @@
this.request = request;
}
- /**
- * Initializes everything before displaying the home page
- */
- public String execute() {
- return SUCCESS;
- }
-
public String refreshForm() {
if (!StringUtils.isEmpty(selectedQuery)) {
@@ -119,6 +112,10 @@
}
public String switchQueryActivation() {
+
+ // Save query before activate
+ saveQuery();
+
// Activate or not query for user, if it's the first one, user and client will
// be created to add request. It will be automaticly added to email binding.
VradiUser user = getUser();
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-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-06-27 09:56:47 UTC (rev 92)
@@ -15,6 +15,9 @@
vradi.login.password=Password
vradi.login.repeatPassword=Confirm
vradi.login.submit=Connection
+vradi.logout.submit=Logout
+vradi.options=Options
+vradi.options.title=Options
vradi.login.title=Connection
vradi.register.mailEmail=Your email
vradi.register.mailHi=Hello
@@ -40,4 +43,14 @@
vradi.formView.title=Form view
vradi.search.thesaurusFilterButton=Filter
vradi.form.editAction=Edit
-vradi.form.action=Action
\ No newline at end of file
+vradi.form.action=Action
+vradi.action.submit=Submit to administrators
+vradi.options.comment=Comment
+vradi.template.rss=User %1$s ask to add RSS '%3$s' with comment \: %2$s
+vradi.template.rss.title=[Vradi web] Ask to ass RSS
+vradi.template.thesaurus.new.child=User %1$s ask to add thesaurus for path '%3$s' with name '%4$s' with comment \: %2$s
+vradi.template.thesaurus.new.child.title=[Vradi web] Ask to add thesaurus
+vradi.template.thesaurus.renamed=User %1$s ask to rename thesaurus for path '%3$s' was name '%4$s' to name '%5$s' with comment \: %2$s
+vradi.template.thesaurus.renamed.title=[Vradi web] Ask to rename thesuaurus
+vradi.template.webHarvest=User %1$s ask to add webHarvest script '%3$s' with comment \: %2$s
+vradi.template.webHarvest.title=[Vradi web] Ask to add webHarvest script
\ No newline at end of file
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-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-06-27 09:56:47 UTC (rev 92)
@@ -1,5 +1,6 @@
vradi.action.locale.english=Anglais
vradi.action.locale.french=Français
+vradi.action.submit=Soumettre aux administrateurs
vradi.authentification.error=Erreur lors de l'authentification
vradi.config.configFileName.description=Fichier de configuration de Vradi web
vradi.config.database.version.description=Version de la base de donnée
@@ -23,6 +24,12 @@
vradi.login.repeatPassword=Confiramtion
vradi.login.submit=Connection
vradi.login.title=Connection
+vradi.logout.submit=Déconnection
+vradi.options=Options
+vradi.options.comment=Commentaires
+vradi.options.rssUrl=Ajout d'un flux RSS
+vradi.options.title=Options
+vradi.options.webHarvestScript=Ajouter un script <a href\="http\://web-harvest.sourceforge.net/">WebHarvest</a>
vradi.register.emailAlreadyUsed=Cette adresse email est déjà utilisée
vradi.register.invalidLogin=Une erreur s'est produite pendant l'enregistrement de vos informations, merci d'essayer à nouveau
vradi.register.mailEmail=Votre email
@@ -40,5 +47,16 @@
vradi.search.thesaurusFilterButton=Filtrer
vradi.search.title=Recherche
vradi.search.unActivateQuery=Desactiver
+vradi.template.rss=L'utilisateur %1$s à fait la demande d'ajout du flux RSS '%3$s' avec le commentaire suivant \: %2$s
+vradi.template.rss.title=[Vradi web] Demande d'ajout d'un flux RSS
+vradi.template.thesaurus.new.child=L'utilisateur %1$s à fait la demande d'ajout d'un thesaurus pour le chemin '%3$s' qui aura pour nom '%4$s' avec le commentaire suivant \: %2$s
+vradi.template.thesaurus.new.child.title=[Vradi web] Demande d'ajout d'un thesaurus
+vradi.template.thesaurus.renamed=L'utilisateur %1$s à fait la demande de renomage d'un thesaurus pour le chemin '%3$s' qui avais le nom '%4$s' avec pour nouveau nom '%5$s' avec le commentaire suivant \: %2$s
+vradi.template.thesaurus.renamed.title=[Vradi web] Demande de renomage d'un thesaurus
+vradi.template.webHarvest=L'utilisateur %1$s à fait la demande d'ajout du script webHarvest disponible à l'adresse '%3$s' avec le commentaire suivant \: %2$s
+vradi.template.webHarvest.title=[Vradi web] Demande d'ajout d'un script webHarvest
+vradi.thesaurus.path=Chemin du descripteur \:
+vradi.thesaurus.thesaurusNewChildName=Nom du nouveau fils pour le descripteur séléctionné
+vradi.thesaurus.thesaurusRenamed=Nouveau nom du descripteur séléctionné
vradi.title=Vradi Web
vradi.user.noinfo=
Modified: trunk/vradi-web/src/main/resources/log4j.properties
===================================================================
--- trunk/vradi-web/src/main/resources/log4j.properties 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/resources/log4j.properties 2011-06-27 09:56:47 UTC (rev 92)
@@ -8,6 +8,7 @@
# package level
log4j.logger.org.chorem.vradi=DEBUG
+log4j.logger.org.chorem.vradi.actions.OptionsAction=DEBUG
#log4j.logger.org.nuiton.util.TimeLog=WARN
log4j.logger.org.apache.struts2.dispatcher.mapper=DEBUG
log4j.logger.com.opensymphony.sitemesh=DEBUG
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-27 09:56:47 UTC (rev 92)
@@ -115,6 +115,14 @@
</action>
<!--
+ | Search
+ +-->
+ <action name="options" class="org.chorem.vradi.actions.OptionsAction">
+ <result>/WEB-INF/jsp/options.jsp</result>
+ </action>
+
+
+ <!--
| Thesaurus
+-->
<action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction">
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/header.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/header.jsp 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/header.jsp 2011-06-27 09:56:47 UTC (rev 92)
@@ -1,11 +1,35 @@
+<%@ page import="org.chorem.vradi.VradiSession" %>
+<%@ page import="com.opensymphony.xwork2.ActionContext" %>
+<%@ page import="org.chorem.vradi.entities.VradiUser" %>
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
-<%@taglib prefix="s" uri="/struts-tags" %>
+<%@taglib prefix="s" uri="/struts-tags"%>
<div id="header"
xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
xmlns:jsp="http://java.sun.com/JSP/Page">
- <div>
- <title><s:text name="vradi.title" /></title>
+<%
+ VradiSession vradiSession = VradiSession.getVradiSession(session);
+ VradiUser user = vradiSession.getUser();
+ ActionContext.getContext().put("logged", user != null);
+%>
+ <div id="titlePanel">
+ <h1><s:text name="vradi.title" /></h1>
</div>
+ <s:if test="logged">
+ <div id="logoutPanel">
+ <s:a id="logout"
+ action="logout">
+
+ <s:text name="vradi.logout.submit" />
+ </s:a>
+ </div>
+ <div id="optionsPanel">
+ <s:a id="options"
+ action="options">
+
+ <s:text name="vradi.options"/>
+ </s:a>
+ </div>
+ </s:if>
<div id="msg">
<span id="actionmessageHeader">
<s:actionmessage />
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/options.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/options.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/options.jsp 2011-06-27 09:56:47 UTC (rev 92)
@@ -0,0 +1,122 @@
+<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
+<%@taglib prefix="s" uri="/struts-tags"%>
+<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
+<%@taglib prefix="sjt" uri="/struts-jquery-tree-tags" %>
+
+<html>
+<head>
+ <s:url var="css" value="/css/style.css" />
+ <link href="${css}" rel="stylesheet" type="text/css" />
+ <title><s:text name="vradi.options.title" /></title>
+ <sj:head compressed="false"
+ jquerytheme="redmond"
+ debug="true"
+ jqueryui="true"/>
+
+ <script type="text/javascript">
+ <%-- Thesaurus --%>
+ $.subscribe('treeClicked', function(event, data) {
+ var item = event.originalEvent.data.rslt.obj;
+ var thesaurusName = item.children("a").text();
+ var thesaurusRenamedInput = $('#thesaurusRenamed')[0];
+ thesaurusRenamedInput.value = thesaurusName.trim();
+ thesaurusRenamedInput.disabled=false;
+ $('#thesaurusName')[0].value = thesaurusName.trim();
+ $('#thesaurusNewChildName')[0].disabled=false;
+
+ var parent = item.parentsUntil(".jstree", "li");
+ var path = "";
+ var parentName = parent.text();
+ while (parentName.length > 0) {
+ var itemName = parent.children("a").text().trim();
+ path = "/" + itemName + path;
+ parent = parent.parentsUntil(".jstree", "li");
+ parentName = parent.text();
+ }
+ $('#thesaurusPathLbl')[0].innerHTML = path.trim();
+ $('#thesaurusPath')[0].value = path.trim();
+ });
+
+ </script>
+</head>
+<body>
+<div>
+ <div id="thesaurusPanel" class="left">
+ <sj:div id="thesaurusDiv" href="/fragment/thesaurusFilter.action" indicator="indicator-thesaurus">
+ <img id="indicator-thesaurus" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
+ </div>
+
+ <div id="contentPanel"
+ class="contentPanel">
+ <s:form action="options"
+ theme="simple"
+ method="post"
+ enctype="multipart/form-data">
+ <table>
+ <tr>
+ <th>
+ <s:text name="vradi.options.rssUrl"/>
+ </th>
+ <th>
+ <s:textfield name="rssUrl"/>
+ </th>
+ </tr>
+ <tr>
+ <th>
+ <s:text name="vradi.options.webHarvestScript"/>
+ </th>
+ <th>
+ <s:file name="webHarvestScript"/>
+ </th>
+ </tr>
+ <tr>
+ <th>
+ <s:text name="vradi.thesaurus.path"/>
+ </th>
+ <th>
+ <label id="thesaurusPathLbl"></label>
+ <s:textfield id="thesaurusPath"
+ name="thesaurusPath"
+ cssClass="hidden"/>
+ </th>
+ </tr>
+ <tr>
+ <th>
+ <s:text name="vradi.thesaurus.thesaurusRenamed"/>
+ </th>
+ <th>
+ <s:textfield id="thesaurusRenamed"
+ name="thesaurusRenamed"
+ disabled="true"/>
+ <s:textfield id="thesaurusName"
+ name="thesaurusName"
+ cssClass="hidden"/>
+ </th>
+ </tr>
+ <tr>
+ <th>
+ <s:text name="vradi.thesaurus.thesaurusNewChildName"/>
+ </th>
+ <th>
+ <s:textfield id="thesaurusNewChildName"
+ name="thesaurusNewChildName"
+ disabled="true"/>
+ </th>
+ </tr>
+ <tr>
+ <th>
+ <s:text name="vradi.options.comment"/>
+ </th>
+ <th>
+ <s:textarea id="comment"
+ name="comment"/>
+ </th>
+ </tr>
+ </table>
+ <s:submit key="vradi.action.submit"/>
+ </s:form>
+ </div>
+</div>
+</body>
+</html>
\ No newline at end of file
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-27 09:56:47 UTC (rev 92)
@@ -6,7 +6,7 @@
<html>
<head>
- <s:url var="css" value="/css/search.css" />
+ <s:url var="css" value="/css/style.css" />
<link href="${css}" rel="stylesheet" type="text/css" />
<title><s:text name="vradi.search.title" /></title>
<sj:head compressed="false"
@@ -24,6 +24,7 @@
<%-- Thesaurus --%>
$.subscribe('treeClicked', function(event, data) {
var item = event.originalEvent.data.rslt.obj;
+ var thesaurusName = item.children("a").text();
var parent = item.parentsUntil(".jstree", "li");
var finalName;
var parentName = parent.text();
@@ -36,7 +37,7 @@
parent = parent.parentsUntil(".jstree", "li");
parentName = parent.text();
}
- finalName = rootName + ":\"" + item.text().trim() + "\"";
+ finalName = rootName + ":\"" + thesaurusName.trim() + "\"";
}
$('#searchArea')[0].value += finalName.trim();
});
@@ -67,11 +68,10 @@
<sj:div id="thesaurusDiv" href="/fragment/thesaurusFilter.action" indicator="indicator-thesaurus">
<img id="indicator-thesaurus" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
</sj:div>
-
</div>
<div id="contentPanel"
- class="queriesPanel">
+ class="contentPanel">
<sj:div id="savedQueriesPanel"
href="/fragment/savedQuery.action"
listenTopics="updateQueries"
Deleted: trunk/vradi-web/src/main/webapp/css/search.css
===================================================================
--- trunk/vradi-web/src/main/webapp/css/search.css 2011-06-24 09:54:38 UTC (rev 91)
+++ trunk/vradi-web/src/main/webapp/css/search.css 2011-06-27 09:56:47 UTC (rev 92)
@@ -1,75 +0,0 @@
-/* Layout */
-
-div.left{
- float:left;
-}
-
-#doUpdateFormSubmit {
- display: none;
-}
-
-.ui-pg-table {
- font-size: 11px;
-}
-
-.right{
- float:right;
-}
-
-.left {
- float:left;
-}
-
-.button {
- margin-top:20px;
- height:31px;
- line-height:31px;
- font-weight:bold;
- border:none;
- width:auto;
- padding:2px;
-}
-
-#thesaurusPanel {
- width: 20%;
-}
-
-#wrap {
- height: 100%;
-}
-
-#savedQueriesPanel {
- float:left;
- height: 10px;
-}
-
-.queriesPanel {
- width: 80%;
- float:right;
-}
-
-#queryNamePanel {
- text-align: right;
- width: 62%;
-}
-
-.queryPanel {
- width: 77%;
- float:left;
-}
-
-#thesaurusForm {
- height: 5%;
-}
-
-#searchActionPanel {
- float:right;
-}
-
-#searchForm {
- height: 150px;
-}
-
-textarea {
- width: 100%;
-}
Copied: trunk/vradi-web/src/main/webapp/css/style.css (from rev 88, trunk/vradi-web/src/main/webapp/css/search.css)
===================================================================
--- trunk/vradi-web/src/main/webapp/css/style.css (rev 0)
+++ trunk/vradi-web/src/main/webapp/css/style.css 2011-06-27 09:56:47 UTC (rev 92)
@@ -0,0 +1,83 @@
+/* Layout */
+
+#contentPanel th {
+ text-align: left;
+}
+
+div.left{
+ float:left;
+}
+
+#doUpdateFormSubmit {
+ display: none;
+}
+
+.hidden {
+ display: none;
+}
+
+.ui-pg-table {
+ font-size: 11px;
+}
+
+.right{
+ float:right;
+}
+
+.left {
+ float:left;
+}
+
+.button {
+ margin-top:20px;
+ height:31px;
+ line-height:31px;
+ font-weight:bold;
+ border:none;
+ width:auto;
+ padding:2px;
+}
+
+#thesaurusPanel {
+ width: 20%;
+}
+
+#wrap {
+ height: 100%;
+}
+
+#savedQueriesPanel {
+ float:left;
+ height: 10px;
+}
+
+.contentPanel {
+ width: 80%;
+ float:right;
+}
+
+#queryNamePanel {
+ text-align: right;
+ width: 62%;
+}
+
+.queryPanel {
+ width: 77%;
+ float:left;
+}
+
+#thesaurusForm {
+ height: 5%;
+}
+
+#searchActionPanel {
+ float:right;
+}
+
+#searchForm {
+ height: 150px;
+}
+
+textarea {
+ width: 100%;
+}
1
0
r91 - in trunk/vradi-web/src/main: resources webapp/WEB-INF/jsp
by sletellier@users.chorem.org 24 Jun '11
by sletellier@users.chorem.org 24 Jun '11
24 Jun '11
Author: sletellier
Date: 2011-06-24 11:54:38 +0200 (Fri, 24 Jun 2011)
New Revision: 91
Url: http://chorem.org/repositories/revision/vradi/91
Log:
- Activate and desactivate button is refreshed
Removed:
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp
Modified:
trunk/vradi-web/src/main/resources/struts.xml
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-06-22 09:37:50 UTC (rev 90)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-24 09:54:38 UTC (rev 91)
@@ -217,36 +217,24 @@
| Search
+-->
<action name="saveQuery" method="saveQuery" class="org.chorem.vradi.actions.SearchAction">
- <!--<param name="query"/>-->
- <!--<param name="queryName"/>-->
<result>/WEB-INF/jsp/empty.jsp</result>
</action>
+
<!--
- | genere la grille des resultats
+ | Switch query activation
+-->
+ <action name="switchQueryActivation" method="switchQueryActivation" class="org.chorem.vradi.actions.SearchAction">
+ <result>/WEB-INF/jsp/empty.jsp</result>
+ </action>
+
<!--
| genere la grille des resultats
+-->
<action name="search" class="org.chorem.vradi.actions.SearchAction">
<result>/WEB-INF/jsp/resultGrid.jsp</result>
</action>
- <!--
- | genere le bouton d'activation des queries
- +-->
- <action name="activeQuery" class="org.chorem.vradi.actions.SearchAction">
- <result>/WEB-INF/jsp/activeQuery.jsp</result>
- </action>
<!--
- | Switch query activation
- +-->
- <action name="switchQueryActivation" method="switchQueryActivation" class="org.chorem.vradi.actions.SearchAction">
- <param name="query"/>
- <param name="queryName"/>
- <result>/WEB-INF/jsp/activeQuery.jsp</result>
- </action>
-
- <!--
| Save query
+-->
<action name="savedQuery" class="org.chorem.vradi.actions.SavedQueriesAction">
Deleted: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp 2011-06-22 09:37:50 UTC (rev 90)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp 2011-06-24 09:54:38 UTC (rev 91)
@@ -1,39 +0,0 @@
-<%@ page import="org.chorem.vradi.actions.SearchAction" %>
-<%@ page import="com.opensymphony.xwork2.ActionContext" %>
-<%@taglib prefix="s" uri="/struts-tags"%>
-<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
-
-<%
-SearchAction action = SearchAction.getAction();
-String query = action.getQuery();
-String queryName = action.getQueryName();
-boolean queryActive = action.isQueryActive();
-ActionContext.getContext().put("queryActive", queryActive);
-ActionContext.getContext().put("query", query);
-ActionContext.getContext().put("queryName", queryName);
-%>
-
-<s:url id="switchQueryUrl" action="switchQueryActivation">
- <s:param name="query">
- <s:property value="query"/>
- </s:param>
- <s:param name="queryName">
- <s:property value="queryName"/>
- </s:param>
-</s:url>
-
-<s:set id="queryActiveText">
- <s:if test="queryActive">
- <s:text name="vradi.search.unActivateQuery"/>
- </s:if>
- <s:else>
- <s:text name="vradi.search.activateQuery"/>
- </s:else>
-</s:set>
-
-<sj:submit id="swithActivateQuery"
- href="%{switchQueryUrl}"
- value="%{queryActiveText}"
- indicator="indicator-activeQuery"
- targets="activeQueryPanel"
- button="true"/>
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-22 09:37:50 UTC (rev 90)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-24 09:54:38 UTC (rev 91)
@@ -24,7 +24,6 @@
emptyOption="true"
onChangeTopics="doUpdateForm"/>
- <%--onSuccessTopics="updateForm"--%>
<sj:submit id="doUpdateFormSubmit"
cssClass="hidden"
listenTopics="doUpdateForm"
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp 2011-06-22 09:37:50 UTC (rev 90)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp 2011-06-24 09:54:38 UTC (rev 91)
@@ -8,8 +8,10 @@
SearchAction action = SearchAction.getAction();
String query = action.getQuery();
String queryName = action.getQueryName();
+boolean queryActive = action.isQueryActive();
ActionContext.getContext().put("query", query);
ActionContext.getContext().put("queryName", queryName);
+ActionContext.getContext().put("queryActive", queryActive);
%>
<s:form id="searchForm" action="search">
@@ -44,10 +46,24 @@
onCompleteTopics="updateQueries"
button="true"/>
- <sj:div id="activeQueryPanel" href="/fragment/activeQuery.action" indicator="indicator-activeQuery">
- <img id="indicator-activeQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
- </sj:div>
+ <s:url id="switchQueryUrl" value="/fragment/switchQueryActivation.action"/>
+ <s:set id="queryActiveText">
+ <s:if test="queryActive">
+ <s:text name="vradi.search.unActivateQuery"/>
+ </s:if>
+ <s:else>
+ <s:text name="vradi.search.activateQuery"/>
+ </s:else>
+ </s:set>
+
+ <sj:submit id="swithActivateQuery"
+ href="%{switchQueryUrl}"
+ value="%{queryActiveText}"
+ targets="empty"
+ onCompleteTopics="doUpdateForm"
+ button="true"/>
+
<s:set id="searchText">
<s:text name="vradi.search.submit"/>
</s:set>
1
0
r90 - in trunk/vradi-web/src/main: resources/i18n webapp/WEB-INF/jsp
by sletellier@users.chorem.org 22 Jun '11
by sletellier@users.chorem.org 22 Jun '11
22 Jun '11
Author: sletellier
Date: 2011-06-22 11:37:50 +0200 (Wed, 22 Jun 2011)
New Revision: 90
Url: http://chorem.org/repositories/revision/vradi/90
Log:
Add link in table to edit form
Modified:
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/webapp/WEB-INF/jsp/resultGrid.jsp
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-06-21 15:22:51 UTC (rev 89)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-06-22 09:37:50 UTC (rev 90)
@@ -38,4 +38,6 @@
vradi.search.queryName=Request name
vradi.search.saveQuery=Save request
vradi.formView.title=Form view
-vradi.search.thesaurusFilterButton=Filter
\ No newline at end of file
+vradi.search.thesaurusFilterButton=Filter
+vradi.form.editAction=Edit
+vradi.form.action=Action
\ No newline at end of file
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-06-21 15:22:51 UTC (rev 89)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-06-22 09:37:50 UTC (rev 90)
@@ -14,7 +14,9 @@
vradi.forgotPassword.emailDoesntExist=Cette adresse email n'existe pas
vradi.forgotpwd.submit=Envoyer
vradi.forgotpwd.title=Vous avez oublié votre mot de passe ?
+vradi.form.action=Action
vradi.form.creationDate=Date de création
+vradi.form.editAction=Editer
vradi.form.object=Objet
vradi.login.email=Email
vradi.login.password=Mot de passe
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp 2011-06-21 15:22:51 UTC (rev 89)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp 2011-06-22 09:37:50 UTC (rev 90)
@@ -1,10 +1,20 @@
<%@ page import="org.chorem.vradi.entities.Infogene" %>
<%@ page import="org.chorem.vradi.actions.SearchAction" %>
<%@ page import="com.opensymphony.xwork2.ActionContext" %>
+<%@ page import="static org.nuiton.i18n.I18n._" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
+<script type="text/javascript">
+/*
+ * Format a Column as Link
+ */
+function formatLink(cellvalue, options, row) {
+ return "<a href='/formNote/" + cellvalue + ".action'><%=_("vradi.form.editAction")%></a>";
+}
+</script>
+
<%
SearchAction action = SearchAction.getAction();
String query = action.getQuery();
@@ -17,6 +27,9 @@
<s:set id="objetText">
<s:text name="vradi.form.object"/>
</s:set>
+<s:set id="actionText">
+ <s:text name="vradi.form.action"/>
+</s:set>
<s:set id="fqCreationDate">
<%=Infogene.FQ_FIELD_INFOGENE_CREATIONDATE%>
</s:set>
@@ -42,16 +55,21 @@
onSelectRowTopics="rowselect">
<sjg:gridColumn name="creationDate"
- index="%{#fqCreationDate}"
- title="%{#creationDateText}"
+ index="%{fqCreationDate}"
+ title="%{creationDateText}"
formatter="date"
formatoptions="{newformat : 'd/m/Y H:i', srcformat : 'Y-m-d H:i:s'}"
sortable="true"
width="30"/>
<sjg:gridColumn name="objet"
- index="%{#fqObjet}"
- title="%{#objetText}"
+ index="%{fqObjet}"
+ title="%{objetText}"
sortable="true"/>
+ <sjg:gridColumn name="wikittyId"
+ title="%{actionText}"
+ formatter="formatLink"
+ width="10"/>
+
</sjg:grid>
\ No newline at end of file
1
0
Author: sletellier
Date: 2011-06-21 17:22:51 +0200 (Tue, 21 Jun 2011)
New Revision: 89
Url: http://chorem.org/repositories/revision/vradi/89
Log:
Log ui errors
Modified:
trunk/vradi-web/src/main/resources/struts.xml
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-06-21 15:07:33 UTC (rev 88)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-21 15:22:51 UTC (rev 89)
@@ -29,6 +29,13 @@
<interceptors>
<interceptor name="json" class="org.apache.struts2.json.JSONInterceptor"/>
<interceptor-stack name="publicAreaStack">
+
+ <!-- display errors in logger -->
+ <interceptor-ref name="exception">
+ <param name="logEnabled">true</param>
+ <param name="logCategory">org.chorem.vradi</param>
+ <param name="logLevel">ERROR</param>
+ </interceptor-ref>
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="json">
<param name="enableSMD">true</param>
1
0
r88 - in trunk: vradi-services/src/main/java/org/chorem/vradi/services/managers vradi-web/src/main/java/org/chorem/vradi/actions vradi-web/src/main/resources vradi-web/src/main/webapp/WEB-INF/jsp vradi-web/src/main/webapp/css
by sletellier@users.chorem.org 21 Jun '11
by sletellier@users.chorem.org 21 Jun '11
21 Jun '11
Author: sletellier
Date: 2011-06-21 17:07:33 +0200 (Tue, 21 Jun 2011)
New Revision: 88
Url: http://chorem.org/repositories/revision/vradi/88
Log:
Use Jquery for build fully dinamical search page
Added:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp
Removed:
trunk/vradi-web/src/main/webapp/css/global.css
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java
trunk/vradi-web/src/main/resources/struts.xml
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
trunk/vradi-web/src/main/webapp/css/search.css
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java 2011-06-21 15:07:33 UTC (rev 88)
@@ -530,7 +530,7 @@
if (queriesIds != null) {
Set<Query> queries = wikittyProxy.restore(Query.class, queriesIds);
for (Query query : queries) {
- if (query.getName().equalsIgnoreCase(queryName)) {
+ if (queryName.equalsIgnoreCase(query.getName())) {
return query;
}
}
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java 2011-06-21 15:07:33 UTC (rev 88)
@@ -143,7 +143,8 @@
public String execute() {
// Build search
- QueryParameters queryParameters = new QueryParameters(getQuery());
+ String query = getQuery();
+ QueryParameters queryParameters = new QueryParameters(query);
// Do search
FormPagedResult result = new FormPagedResult();
Added: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java (rev 0)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SavedQueriesAction.java 2011-06-21 15:07:33 UTC (rev 88)
@@ -0,0 +1,61 @@
+package org.chorem.vradi.actions;
+
+import com.opensymphony.xwork2.ActionContext;
+import org.apache.struts2.interceptor.ServletRequestAware;
+import org.chorem.vradi.entities.Query;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Action to display struts2-jquery grid
+ *
+ * @author sletellier
+ */
+public class SavedQueriesAction extends VradiBaseAction implements ServletRequestAware {
+
+ static public SavedQueriesAction getAction() {
+ return (SavedQueriesAction) ActionContext.getContext().get(CONTEXT_ACTION_KEY);
+ }
+
+ protected HttpServletRequest request;
+
+ protected List<Query> lastQueries;
+
+ @Override
+ public void setServletRequest(HttpServletRequest request) {
+ this.request = request;
+ }
+
+ public List<Query> getLastQueries() {
+ if (lastQueries == null || lastQueries.isEmpty()) {
+ lastQueries = Collections.EMPTY_LIST;
+ }
+ return lastQueries;
+ }
+
+ public void setLastQueries(List<Query> lastQueries) {
+ this.lastQueries = lastQueries;
+ }
+
+ public String getJSON() {
+ return execute();
+ }
+
+ /**
+ * Initializes everything before displaying the home page
+ */
+ public String execute() {
+
+ // Retrieve last requests
+ Set<String> queriesId = getUser().getQueries();
+ if (queriesId != null) {
+ this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId));
+ }
+
+ return SUCCESS;
+ }
+}
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-21 15:07:33 UTC (rev 88)
@@ -1,15 +1,12 @@
package org.chorem.vradi.actions;
import com.opensymphony.xwork2.ActionContext;
+import org.apache.commons.lang.StringUtils;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.chorem.vradi.entities.Query;
import org.chorem.vradi.entities.VradiUser;
import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
/**
* Search action
@@ -30,9 +27,26 @@
protected String query;
protected String queryName;
protected HttpServletRequest request;
- protected List<Query> lastQueries;
+ protected String selectedQuery;
protected boolean queryActive;
+ protected boolean saveQuery;
+ public boolean isSaveQuery() {
+ return saveQuery;
+ }
+
+ public void setSaveQuery(boolean saveQuery) {
+ this.saveQuery = saveQuery;
+ }
+
+ public String getSelectedQuery() {
+ return selectedQuery;
+ }
+
+ public void setSelectedQuery(String selectedQuery) {
+ this.selectedQuery = selectedQuery;
+ }
+
public int getNbForms() {
return nbForms;
}
@@ -61,13 +75,6 @@
return queryActive;
}
- public List<Query> getLastQueries() {
- if (lastQueries == null || lastQueries.isEmpty()) {
- lastQueries = Collections.EMPTY_LIST;
- }
- return lastQueries;
- }
-
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
@@ -77,29 +84,37 @@
* Initializes everything before displaying the home page
*/
public String execute() {
+ return SUCCESS;
+ }
- VradiUser user = getUser();
+ public String refreshForm() {
+ if (!StringUtils.isEmpty(selectedQuery)) {
- // Check if request is active / inactive
- this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName);
+ Query query = getProxy().restore(Query.class, selectedQuery);
+ setQueryName(query.getName());
+ setQuery(query.getContent());
- // Retrieve last requests
- Set<String> queriesId = user.getQueries();
- if (queriesId != null) {
- this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId));
+ VradiUser user = getUser();
+
+ // Check if request is active / inactive
+ this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName);
+ } else {
+ setQuery(StringUtils.EMPTY);
+ setQueryName(StringUtils.EMPTY);
+ this.queryActive = false;
}
-
return SUCCESS;
}
public String saveQuery() {
- VradiUser user = getUser();
+ if (!StringUtils.isEmpty(queryName) && !StringUtils.isEmpty(query)) {
+ VradiUser user = getUser();
- user = getVradiSession().getDataService().saveQuery(user, queryName, query);
+ user = getVradiSession().getDataService().saveQuery(user, queryName, query);
- setUser(user);
-
+ setUser(user);
+ }
return SUCCESS;
}
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-21 15:07:33 UTC (rev 88)
@@ -108,15 +108,6 @@
</action>
<!--
- | Search
- +-->
- <action name="saveQuery" method="saveQuery" class="org.chorem.vradi.actions.SearchAction">
- <param name="query"/>
- <param name="queryName"/>
- <result type="redirect">/fragment/savedQuery.action</result>
- </action>
-
- <!--
| Thesaurus
+-->
<action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction">
@@ -135,6 +126,13 @@
</action>
<!--
+ | Form grid
+ +-->
+ <action name="savedQueries" class="org.chorem.vradi.actions.SavedQueriesAction">
+ <result name="success" type="json"/>
+ </action>
+
+ <!--
| Affiche le détail du formulaire
+-->
<action name="formView/*" class="org.chorem.vradi.actions.FormViewAction">
@@ -197,10 +195,33 @@
<result>/WEB-INF/jsp/thesaurusFilter.jsp</result>
</action>
<!--
+ | genere le formulaire de recherche
+ +-->
+ <action name="refreshForm" method="refreshForm" class="org.chorem.vradi.actions.SearchAction">
+ <result>/WEB-INF/jsp/empty.jsp</result>
+ </action>
+ <!--
+ | genere le formulaire de recherche
+ +-->
+ <action name="searchPanel" method="refreshForm" class="org.chorem.vradi.actions.SearchAction">
+ <result>/WEB-INF/jsp/searchPanel.jsp</result>
+ </action>
+ <!--
+ | Search
+ +-->
+ <action name="saveQuery" method="saveQuery" class="org.chorem.vradi.actions.SearchAction">
+ <!--<param name="query"/>-->
+ <!--<param name="queryName"/>-->
+ <result>/WEB-INF/jsp/empty.jsp</result>
+ </action>
+ <!--
| genere la grille des resultats
+-->
+ <!--
+ | genere la grille des resultats
+ +-->
<action name="search" class="org.chorem.vradi.actions.SearchAction">
- <result>/WEB-INF/jsp/resultGrid.jsp</result>
+ <result>/WEB-INF/jsp/resultGrid.jsp</result>
</action>
<!--
| genere le bouton d'activation des queries
@@ -221,7 +242,7 @@
<!--
| Save query
+-->
- <action name="savedQuery" class="org.chorem.vradi.actions.SearchAction">
+ <action name="savedQuery" class="org.chorem.vradi.actions.SavedQueriesAction">
<result>/WEB-INF/jsp/savedQueries.jsp</result>
</action>
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-21 15:07:33 UTC (rev 88)
@@ -5,7 +5,6 @@
--%>
<%@page import="com.opensymphony.xwork2.ActionContext"%>
-<%@page import="org.chorem.vradi.entities.Attachment"%>
<%@page import="org.chorem.vradi.entities.FormNote"%>
<%@page import="org.chorem.vradi.actions.FormNoteAction"%>
@@ -80,10 +79,12 @@
collapsible="true" useSelectedTabCookie="true">
<sj:tab id="tabHtmlSummary" target="htmlSummary" label="Summary"/>
<sj:tab id="tabHtmlSummaryEdit" target="htmlSummaryEdit" label="Edit"/>
- <div id="htmlSummary">
+ <sj:div id="htmlSummary"
+ href="/ajax/rst.action?id=%{localNoteId}&field=%{localFieldSummary}"
+ listenTopics="topicHtmlSummary">
<img id="indicator-htmlSummary" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
<%=action.getSummary()%>
- </div>
+ </sj:div>
<div id="htmlSummaryEdit">
<form id="htmlSummaryEditForm" action="/ajax/rst.action">
<s:hidden name="id" value="%{localNoteId}"/>
@@ -91,7 +92,8 @@
<s:textarea name="rst" value="%{localSummary}"/>
<sj:submit id="htmlSummaryEditSubmit"
value="Save"
- targets="htmlSummary" indicator="indicator-htmlSummary"
+ targets="result"
+ onClickTopics="topicHtmlSummary" indicator="indicator-htmlSummary"
button="true" buttonIcon="ui-icon-gear"/>
</form>
</div>
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-21 15:07:33 UTC (rev 88)
@@ -1,20 +1,33 @@
-<%@ page import="org.chorem.vradi.actions.SearchAction" %>
<%@ page import="com.opensymphony.xwork2.ActionContext" %>
<%@ page import="org.chorem.vradi.entities.Query" %>
<%@ page import="java.util.List" %>
+<%@ page import="org.chorem.vradi.actions.SavedQueriesAction" %>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
<%
-SearchAction action = SearchAction.getAction();
+SavedQueriesAction action = SavedQueriesAction.getAction();
List<Query> lastQueries = action.getLastQueries();
ActionContext.getContext().put("lastQueries", lastQueries);
%>
-<s:select id="lastQueries"
- name="lastQueries"
- listKey="content"
- listValue="name"
- list="lastQueries"
- emptyOption="true"
- onchange="form.elements['query'].innerHTML = this.options[this.selectedIndex].value"/>
\ No newline at end of file
+<form id="queryForm" action="/fragment/searchPanel.action">
+
+ <s:url id="savedQueries" action="savedQueries"/>
+
+ <sj:select id="lastQueriesSelect"
+ href="%{savedQueries}"
+ name="selectedQuery"
+ listKey="wikittyId"
+ listValue="name"
+ list="lastQueries"
+ emptyOption="true"
+ onChangeTopics="doUpdateForm"/>
+
+ <%--onSuccessTopics="updateForm"--%>
+ <sj:submit id="doUpdateFormSubmit"
+ cssClass="hidden"
+ listenTopics="doUpdateForm"
+ targets="searchPanel"
+ button="true"/>
+</form>
\ No newline at end of file
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-21 15:07:33 UTC (rev 88)
@@ -1,7 +1,3 @@
-<%@page import="org.chorem.vradi.entities.Infogene"%>
-<%@page import="org.chorem.vradi.entities.Form" %>
-<%@ page import="org.chorem.vradi.actions.SearchAction" %>
-<%@ page import="com.opensymphony.xwork2.ActionContext" %>
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
@@ -44,6 +40,7 @@
}
$('#searchArea')[0].value += finalName.trim();
});
+
</script>
</head>
<body>
@@ -72,60 +69,22 @@
</sj:div>
</div>
- <div id="contentPanel">
- <div id="searchPanel">
- <form id="searchForm" action="/fragment/search.action">
- <div id="queriesPanel">
- <sj:div id="savedQueriesPanel"
- cssClass="left"
- href="/fragment/savedQuery.action"
- indicator="indicator-savedQuery">
- <img id="indicator-savedQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
- </sj:div>
+ <div id="contentPanel"
+ class="queriesPanel">
+ <sj:div id="savedQueriesPanel"
+ href="/fragment/savedQuery.action"
+ listenTopics="updateQueries"
+ indicator="indicator-savedQuery">
+ <img id="indicator-savedQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
- <s:text name="vradi.search.queryName"/>
- <s:textfield id="queryName"
- cssClass="right"
- theme="simple"
- name="queryName"
- size="40"/>
- </div>
- <div id="queryPanel">
- <s:textarea id="searchArea"
- name="query"
- cols="160"
- rows="6"/>
- </div>
- <div id="searchActionPanel">
-
- <s:url id="saveQueryUrl" action="saveQuery"/>
-
- <s:set id="searchText">
- <s:text name="vradi.search.saveQuery"/>
- </s:set>
- <sj:submit id="saveQuery"
- href="%{saveQueryUrl}"
- value="%{#searchText}"
- indicator="indicator-savedQuery"
- targets="savedQueriesPanel"
- button="true"/>
-
- <sj:div id="activeQueryPanel" href="/fragment/activeQuery.action" indicator="indicator-activeQuery">
- <img id="indicator-activeQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
- </sj:div>
- <s:set id="searchText">
- <s:text name="vradi.search.submit"/>
- </s:set>
-
- <sj:submit id="search"
- value="%{#searchText}"
- indicator="indicator-grid"
- targets="resultPanel"
- button="true"/>
- </div>
- </form>
- </div>
+ <sj:div id="searchPanel"
+ href="/fragment/searchPanel.action"
+ listenTopics="updateForm"
+ indicator="indicator-searchPanel">
+ <img id="indicator-searchPanel" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
<sj:div id="resultPanel" href="/fragment/search.action" indicator="indicator-grid">
<img id="indicator-grid" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
</sj:div>
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/searchPanel.jsp 2011-06-21 15:07:33 UTC (rev 88)
@@ -0,0 +1,62 @@
+<%@ page import="org.chorem.vradi.actions.SearchAction" %>
+<%@ page import="com.opensymphony.xwork2.ActionContext" %>
+<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
+<%@taglib prefix="s" uri="/struts-tags"%>
+<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
+
+<%
+SearchAction action = SearchAction.getAction();
+String query = action.getQuery();
+String queryName = action.getQueryName();
+ActionContext.getContext().put("query", query);
+ActionContext.getContext().put("queryName", queryName);
+%>
+
+<s:form id="searchForm" action="search">
+ <div id="empty">
+ </div>
+
+ <div id="queryNamePanel" class="queryPanel">
+ <s:text name="vradi.search.queryName"/>
+ <s:textfield id="queryName"
+ cssClass="right"
+ theme="simple"
+ name="queryName"
+ size="40"/>
+ </div>
+ <div id="queryPanel" class="queryPanel">
+ <s:textarea id="searchArea"
+ name="query"
+ cols="160"
+ rows="6"/>
+ </div>
+ <div id="searchActionPanel">
+
+ <s:url id="saveQueryUrl" value="/fragment/saveQuery.action"/>
+
+ <s:set id="saveQueryText">
+ <s:text name="vradi.search.saveQuery"/>
+ </s:set>
+ <sj:submit id="saveQuery"
+ href="%{saveQueryUrl}"
+ value="%{saveQueryText}"
+ targets="empty"
+ onCompleteTopics="updateQueries"
+ button="true"/>
+
+ <sj:div id="activeQueryPanel" href="/fragment/activeQuery.action" indicator="indicator-activeQuery">
+ <img id="indicator-activeQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
+
+ <s:set id="searchText">
+ <s:text name="vradi.search.submit"/>
+ </s:set>
+
+ <sj:submit id="search"
+ value="%{searchText}"
+ indicator="indicator-grid"
+ targets="resultPanel"
+ button="true"/>
+
+ </div>
+</s:form>
\ No newline at end of file
Modified: trunk/vradi-web/src/main/webapp/css/search.css
===================================================================
--- trunk/vradi-web/src/main/webapp/css/search.css 2011-06-15 12:46:25 UTC (rev 87)
+++ trunk/vradi-web/src/main/webapp/css/search.css 2011-06-21 15:07:33 UTC (rev 88)
@@ -1,19 +1,26 @@
/* Layout */
div.left{
- /*width: 20%;*/
float:left;
}
+#doUpdateFormSubmit {
+ display: none;
+}
+
+.ui-pg-table {
+ font-size: 11px;
+}
+
.right{
float:right;
}
-.left{
+.left {
float:left;
}
-.button{
+.button {
margin-top:20px;
height:31px;
line-height:31px;
@@ -23,10 +30,34 @@
padding:2px;
}
-#queriesPanel {
- width: 70%;
+#thesaurusPanel {
+ width: 20%;
}
+#wrap {
+ height: 100%;
+}
+
+#savedQueriesPanel {
+ float:left;
+ height: 10px;
+}
+
+.queriesPanel {
+ width: 80%;
+ float:right;
+}
+
+#queryNamePanel {
+ text-align: right;
+ width: 62%;
+}
+
+.queryPanel {
+ width: 77%;
+ float:left;
+}
+
#thesaurusForm {
height: 5%;
}
@@ -35,20 +66,10 @@
float:right;
}
-#searchPanel {
+#searchForm {
height: 150px;
}
-#contentPanel {
- padding-right: 20%;
- padding-left: 20%;
-}
-
-#queryPanel {
- float:left;
- width: 70%;
-}
-
textarea {
width: 100%;
}
1
0
r87 - in trunk: . vradi-services/src/main/java/org/chorem/vradi/services/managers vradi-web vradi-web/src/main/i18n vradi-web/src/main/java/org/chorem/vradi vradi-web/src/main/java/org/chorem/vradi/actions vradi-web/src/main/resources vradi-web/src/main/webapp vradi-web/src/main/webapp/WEB-INF/jsp vradi-web/src/main/webapp/css
by sletellier@users.chorem.org 15 Jun '11
by sletellier@users.chorem.org 15 Jun '11
15 Jun '11
Author: sletellier
Date: 2011-06-15 14:46:25 +0200 (Wed, 15 Jun 2011)
New Revision: 87
Url: http://chorem.org/repositories/revision/vradi/87
Log:
Use struts2-jquery grids'plugins
Added:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/thesaurusFilter.jsp
Removed:
trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java
trunk/vradi-web/src/main/java/org/chorem/vradi/decorators/
Modified:
trunk/pom.xml
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
trunk/vradi-web/pom.xml
trunk/vradi-web/src/main/i18n/jsp.rules
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java
trunk/vradi-web/src/main/resources/struts.xml
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formView.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
trunk/vradi-web/src/main/webapp/css/search.css
trunk/vradi-web/src/main/webapp/index.jsp
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/pom.xml 2011-06-15 12:46:25 UTC (rev 87)
@@ -472,20 +472,7 @@
<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-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-06-15 12:46:25 UTC (rev 87)
@@ -165,7 +165,7 @@
criteria.addSortAscending(formPagedResult.getFieldToSort());
}
}
- criteria.addSortAscending(Form.FQ_FIELD_INFOGENE_ID);
+// criteria.addSortAscending(Form.FQ_FIELD_INFOGENE_ID);
log.info(criteria);
Modified: trunk/vradi-web/pom.xml
===================================================================
--- trunk/vradi-web/pom.xml 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/pom.xml 2011-06-15 12:46:25 UTC (rev 87)
@@ -129,14 +129,7 @@
<scope>runtime</scope>
</dependency>
- <!-- Displaytag -->
<dependency>
- <groupId>displaytag</groupId>
- <artifactId>displaytag</artifactId>
- <scope>compile</scope>
- </dependency>
-
- <dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<scope>runtime</scope>
@@ -264,7 +257,6 @@
<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>
<decorator>
http://www.opensymphony.com/sitemesh/decorator
Modified: trunk/vradi-web/src/main/i18n/jsp.rules
===================================================================
--- trunk/vradi-web/src/main/i18n/jsp.rules 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/i18n/jsp.rules 2011-06-15 12:46:25 UTC (rev 87)
@@ -11,6 +11,3 @@
//s:select/@key
//sx:datetimepicker/@key
-
-//displaytag:column/@title
-//displaytag:column/@titleKey
Deleted: trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,132 +0,0 @@
-package org.chorem.vradi;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.chorem.vradi.beans.FormPagedResult;
-import org.chorem.vradi.entities.Form;
-import org.chorem.vradi.entities.Infogene;
-import org.displaytag.pagination.PaginatedList;
-import org.displaytag.properties.SortOrderEnum;
-import org.nuiton.wikitty.WikittyProxy;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.List;
-
-/**
- * @author sletellier
- */
-public class FormPaginatedList implements PaginatedList {
-
- protected static final Log log = LogFactory.getLog(FormPaginatedList.class);
-
- public static final String DISPLAY_URL_PAGE = "page";
- public static final String DISPLAY_URL_SORT = "sort";
- public static final String DISPLAY_URL_DIR = "dir";
-
- protected FormPagedResult result;
- protected WikittyProxy proxy;
-
- public FormPaginatedList(WikittyProxy proxy, int nbForms) {
- this.proxy = proxy;
- result = new FormPagedResult();
- result.setNbFormsToShow(nbForms);
- result.setPageToShow(1);
-
- // Sort by default by fate descending
- result.setAscending(false);
- result.setFieldToSort(Infogene.FIELD_INFOGENE_CREATIONDATE);
- }
-
- public FormPagedResult getResult() {
- return result;
- }
-
- public void setResult(FormPagedResult result) {
- this.result = result;
- }
-
- @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 result.getFieldToSort();
- }
-
- @Override
- public SortOrderEnum getSortDirection() {
- if (result.isAscending()) {
- return SortOrderEnum.ASCENDING;
- } else {
- return SortOrderEnum.DESCENDING;
- }
- }
-
- @Override
- public String getSearchId() {
-
- // Not used
- return null;
- }
-
- /**
- * Recupere les parametres depuis une requete de servlet.
- *
- * @param request la requete utilisee pour recuperee les valeur du POJO
- * @return l'instance
- */
- public FormPaginatedList fromRequest(HttpServletRequest request) {
-
- // Number of forms by pages
- String page = request.getParameter(DISPLAY_URL_PAGE);
- if (page != null && !page.trim().isEmpty()) {
- Integer pageNumber = Integer.valueOf(page);
- if (log.isDebugEnabled()) {
- log.debug("change pageNumber : " + pageNumber);
- }
- result.setPageToShow(pageNumber);
- }
-
- // Search field criteria
- String criterion = request.getParameter(DISPLAY_URL_SORT);
- if (criterion != null && !criterion.trim().isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("change sortCriterion : " + criterion);
- }
- result.setFieldToSort(criterion);
- }
-
- // attention, on supose ici qu'on a defini les variables suivantes dans displaytag.properties :
- // pagination.sort.asc.value=ascending
- // pagination.sort.desc.value=descending
- String direction = request.getParameter(DISPLAY_URL_DIR);
- if (direction != null && !direction.trim().isEmpty()) {
- SortOrderEnum orderEnum = SortOrderEnum.fromName(direction);
- if (log.isDebugEnabled()) {
- log.debug("change sortDirection : " + orderEnum);
- }
- boolean ascending = orderEnum.equals(SortOrderEnum.ASCENDING);
- result.setAscending(ascending);
- }
- return this;
- }
-}
Added: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java (rev 0)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/FormGridAction.java 2011-06-15 12:46:25 UTC (rev 87)
@@ -0,0 +1,173 @@
+package org.chorem.vradi.actions;
+
+import org.apache.struts2.interceptor.ServletRequestAware;
+import org.chorem.vradi.beans.FormPagedResult;
+import org.chorem.vradi.beans.QueryParameters;
+import org.chorem.vradi.entities.Form;
+import org.chorem.vradi.services.VradiException;
+import org.chorem.vradi.services.search.UnsupportedQueryException;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+/**
+ * Action to display struts2-jquery grid
+ *
+ * @author sletellier
+ */
+public class FormGridAction extends VradiBaseAction implements ServletRequestAware {
+
+ protected HttpServletRequest request;
+ //Your result List
+ protected List<Form> gridModel;
+ //get how many rows we want to have into the grid - rowNum attribute in the grid
+ protected Integer rows = 0;
+ //Get the requested page. By default grid sets this to 1.
+ protected Integer page = 0;
+ // sorting order - asc or desc
+ protected String sord;
+ // get index row - i.e. user click to sort.
+ protected String sidx;
+ // Search Field
+ protected String searchField;
+ // The Search String
+ protected String searchString;
+ // he Search Operation ['eq','ne','lt','le','gt','ge','bw','bn','in','ni','ew','en','cn','nc']
+ protected String searchOper;
+ // Your Total Pages
+ protected Integer total = 0;
+ // All Record
+ protected Integer records = 0;
+ protected String query;
+
+ @Override
+ public void setServletRequest(HttpServletRequest request) {
+ this.request = request;
+ }
+
+ public List<Form> getGridModel() {
+ return gridModel;
+ }
+
+ public void setGridModel(List<Form> gridModel) {
+ this.gridModel = gridModel;
+ }
+
+ public Integer getRows() {
+ return rows;
+ }
+
+ public void setRows(Integer rows) {
+ this.rows = rows;
+ }
+
+ public Integer getPage() {
+ return page;
+ }
+
+ public void setPage(Integer page) {
+ this.page = page;
+ }
+
+ public String getSord() {
+ return sord;
+ }
+
+ public void setSord(String sord) {
+ this.sord = sord;
+ }
+
+ public String getSidx() {
+ return sidx;
+ }
+
+ public void setSidx(String sidx) {
+ this.sidx = sidx;
+ }
+
+ public String getSearchField() {
+ return searchField;
+ }
+
+ public void setSearchField(String searchField) {
+ this.searchField = searchField;
+ }
+
+ public String getSearchString() {
+ return searchString;
+ }
+
+ public void setSearchString(String searchString) {
+ this.searchString = searchString;
+ }
+
+ public String getSearchOper() {
+ return searchOper;
+ }
+
+ public void setSearchOper(String searchOper) {
+ this.searchOper = searchOper;
+ }
+
+ public Integer getTotal() {
+ return total;
+ }
+
+ public void setTotal(Integer total) {
+ this.total = total;
+ }
+
+ public Integer getRecords() {
+ return records;
+ }
+
+ public void setRecords(Integer records) {
+ this.records = records;
+ }
+
+ public String getQuery() {
+ return query;
+ }
+
+ public void setQuery(String query) {
+ this.query = query;
+ }
+
+ public String getJSON() {
+ return execute();
+ }
+
+ /**
+ * Initializes everything before displaying the home page
+ */
+ public String execute() {
+
+ // Build search
+ QueryParameters queryParameters = new QueryParameters(getQuery());
+
+ // Do search
+ FormPagedResult result = new FormPagedResult();
+ result.setNbFormsToShow(getRows());
+ result.setPageToShow(getPage());
+ result.setAscending(getSord().equalsIgnoreCase("asc"));
+ result.setFieldToSort(getSidx());
+ try {
+
+ result = getDataService().findForms(queryParameters, result);
+ } catch (VradiException eee) {
+ log.error("Failed to execute query", eee);
+ } catch (UnsupportedQueryException eee) {
+ log.error("Unsuported query", eee);
+ }
+
+ List<String> formsIdsToShow = result.getFormsIdsToShow();
+ List<Form> forms = getProxy().restore(Form.class, formsIdsToShow);
+ setGridModel(forms);
+ setRecords(result.getTotalFoundFormNb());
+
+ //calculate the total pages for the query
+ setTotal((int) Math.ceil((double)getRecords() / (double)getRows()));
+
+ return SUCCESS;
+ }
+}
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,14 +1,9 @@
package org.chorem.vradi.actions;
-import org.apache.commons.lang.StringUtils;
+import com.opensymphony.xwork2.ActionContext;
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.entities.Query;
import org.chorem.vradi.entities.VradiUser;
-import org.chorem.vradi.services.VradiException;
-import org.chorem.vradi.services.search.UnsupportedQueryException;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
@@ -24,10 +19,13 @@
public class SearchAction extends VradiBaseAction implements ServletRequestAware {
private static final long serialVersionUID = -3735250067223062719L;
- public static final String REQUEST_ATTRIBUTE_FORMS = "forms";
private static final int DEFAULT_NB_FORMS = 10;
+ static public SearchAction getAction() {
+ return (SearchAction) ActionContext.getContext().get(CONTEXT_ACTION_KEY);
+ }
+
protected int nbForms = DEFAULT_NB_FORMS;
protected String query;
protected String queryName;
@@ -35,10 +33,6 @@
protected List<Query> lastQueries;
protected boolean queryActive;
- // Name of submit
- protected String switchUserQueryActivation;
- protected String saveRequest;
-
public int getNbForms() {
return nbForms;
}
@@ -47,22 +41,6 @@
this.nbForms = nbForms;
}
- public String getSaveRequest() {
- return saveRequest;
- }
-
- public void setSaveRequest(String saveRequest) {
- this.saveRequest = saveRequest;
- }
-
- public String getSwitchUserQueryActivation() {
- return switchUserQueryActivation;
- }
-
- public void setSwitchUserQueryActivation(String switchUserQueryActivation) {
- this.switchUserQueryActivation = switchUserQueryActivation;
- }
-
public String getQueryName() {
return queryName;
}
@@ -100,53 +78,38 @@
*/
public String execute() {
- // Activate or not query for user, if it's the first one, user and client will
- // be created to add request. It will be automaticly added to email binding.
VradiUser user = getUser();
- boolean doSwithUserQueryActivation = !StringUtils.isEmpty(switchUserQueryActivation);
- if (doSwithUserQueryActivation) {
- queryActive = getVradiSession().getDataService().switchUserQueryActivation(user, queryName, query);
- }
- FormPaginatedList paginatedList = new FormPaginatedList(getProxy(), getNbForms());
- // Retrive paginatedList and fill by request params
- paginatedList.fromRequest(request);
+ // Check if request is active / inactive
+ this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName);
- // Build search
- QueryParameters queryParameters = new QueryParameters(query);
-
- // Do search
- try {
- FormPagedResult result = paginatedList.getResult();
- FormPagedResult forms = getDataService().findForms(queryParameters, result);
- paginatedList.setResult(forms);
- } catch (VradiException eee) {
- log.error("Failed to execute query", eee);
- } catch (UnsupportedQueryException eee) {
- log.error("Unsuported query", eee);
+ // Retrieve last requests
+ Set<String> queriesId = user.getQueries();
+ if (queriesId != null) {
+ this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId));
}
- // Save request played
- if ((!StringUtils.isEmpty(saveRequest) ||
- doSwithUserQueryActivation) &&
- !StringUtils.isEmpty(queryName)) {
+ return SUCCESS;
+ }
- user = getVradiSession().getDataService().saveQuery(user, queryName, query);
+ public String saveQuery() {
- setUser(user);
+ VradiUser user = getUser();
- // Check if request is active / inactive
- this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName);
- }
+ user = getVradiSession().getDataService().saveQuery(user, queryName, query);
- // Retrieve last requests
- Set<String> queriesId = user.getQueries();
- if (queriesId != null) {
- this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId));
- }
+ setUser(user);
- request.setAttribute(REQUEST_ATTRIBUTE_FORMS, paginatedList);
+ return SUCCESS;
+ }
+ public String switchQueryActivation() {
+ // Activate or not query for user, if it's the first one, user and client will
+ // be created to add request. It will be automaticly added to email binding.
+ VradiUser user = getUser();
+ queryActive = getVradiSession().getDataService().switchUserQueryActivation(user, queryName, query);
+
return SUCCESS;
}
+
}
\ No newline at end of file
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,6 +1,7 @@
package org.chorem.vradi.actions;
import com.jgeppert.struts2.jquery.tree.result.TreeNode;
+import com.opensymphony.xwork2.ActionContext;
import org.apache.commons.lang.StringUtils;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.chorem.vradi.entities.RootThesaurus;
@@ -23,6 +24,10 @@
private static final long serialVersionUID = -2886756982077980790L;
+ static public ThesaurusAction getAction() {
+ return (ThesaurusAction) ActionContext.getContext().get(CONTEXT_ACTION_KEY);
+ }
+
public static final String THESAURUS_NAME_REQUEST = "thesaurusNameRequest";
protected List<TreeNode> nodes = new ArrayList<TreeNode>();
@@ -33,16 +38,6 @@
public String execute() {
- if (id == null) {
- // Store in session to keep it
- request.getSession().setAttribute(THESAURUS_NAME_REQUEST, thesaurusNameRequest);
- return SUCCESS;
- }
- else {
- // Retrieve from session
- this.thesaurusNameRequest = (String)request.getSession().getAttribute(THESAURUS_NAME_REQUEST);
- }
-
if ("0".equals(id)) {
List<RootThesaurus> rootThesaurus;
try {
@@ -86,6 +81,11 @@
return SUCCESS;
}
+ public String filter() throws Exception {
+ log.info("Filter thesaurus with : " + getThesaurusNameRequest());
+ return "success";
+ }
+
@Override
public void setServletRequest(HttpServletRequest request) {
this.request = request;
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-15 12:46:25 UTC (rev 87)
@@ -73,7 +73,7 @@
<package name="login" extends="loginArea">
<action name="register_*" method="{1}" class="org.chorem.vradi.actions.RegisterAction">
<result name="input">/WEB-INF/jsp/register.jsp</result>
- <result type="redirectAction">search</result>
+ <result type="redirectAction">searchView</result>
</action>
<action name="forgotPassword_*" method="{1}" class="org.chorem.vradi.actions.ForgotPasswordAction">
<result name="input">/WEB-INF/jsp/forgotPassword.jsp</result>
@@ -97,21 +97,28 @@
| Change local
+-->
<action name="locale" class="org.chorem.vradi.actions.LocaleAction">
- <result type="redirect">search.action</result>
+ <result type="redirect">searchView.action</result>
</action>
<!--
| Search
+-->
- <action name="search" class="org.chorem.vradi.actions.SearchAction">
+ <action name="searchView" class="org.chorem.vradi.actions.SearchAction">
<result>/WEB-INF/jsp/search.jsp</result>
- <result name="input" type="redirectAction">search</result>
</action>
<!--
+ | Search
+ +-->
+ <action name="saveQuery" method="saveQuery" class="org.chorem.vradi.actions.SearchAction">
+ <param name="query"/>
+ <param name="queryName"/>
+ <result type="redirect">/fragment/savedQuery.action</result>
+ </action>
+
+ <!--
| Thesaurus
+-->
-
<action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction">
<param name="thesaurusNameRequest"/>
<result name="success" type="json">
@@ -120,6 +127,14 @@
</action>
<!--
+ | Form grid
+ +-->
+ <action name="formGrid" class="org.chorem.vradi.actions.FormGridAction">
+ <param name="query"/>
+ <result name="success" type="json"/>
+ </action>
+
+ <!--
| Affiche le détail du formulaire
+-->
<action name="formView/*" class="org.chorem.vradi.actions.FormViewAction">
@@ -175,6 +190,41 @@
<action name="userInfo" class="org.chorem.vradi.actions.RestoreUserAction">
<result>/WEB-INF/jsp/userInfo.jsp</result>
</action>
+ <!--
+ | genere un thesaurus filtre
+ +-->
+ <action name="thesaurusFilter" class="org.chorem.vradi.actions.ThesaurusAction" method="filter">
+ <result>/WEB-INF/jsp/thesaurusFilter.jsp</result>
+ </action>
+ <!--
+ | genere la grille des resultats
+ +-->
+ <action name="search" class="org.chorem.vradi.actions.SearchAction">
+ <result>/WEB-INF/jsp/resultGrid.jsp</result>
+ </action>
+ <!--
+ | genere le bouton d'activation des queries
+ +-->
+ <action name="activeQuery" class="org.chorem.vradi.actions.SearchAction">
+ <result>/WEB-INF/jsp/activeQuery.jsp</result>
+ </action>
+
+ <!--
+ | Switch query activation
+ +-->
+ <action name="switchQueryActivation" method="switchQueryActivation" class="org.chorem.vradi.actions.SearchAction">
+ <param name="query"/>
+ <param name="queryName"/>
+ <result>/WEB-INF/jsp/activeQuery.jsp</result>
+ </action>
+
+ <!--
+ | Save query
+ +-->
+ <action name="savedQuery" class="org.chorem.vradi.actions.SearchAction">
+ <result>/WEB-INF/jsp/savedQueries.jsp</result>
+ </action>
+
</package>
<package name="ajax" namespace="/ajax" extends="restrictedArea">
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/activeQuery.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -0,0 +1,39 @@
+<%@ page import="org.chorem.vradi.actions.SearchAction" %>
+<%@ page import="com.opensymphony.xwork2.ActionContext" %>
+<%@taglib prefix="s" uri="/struts-tags"%>
+<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
+
+<%
+SearchAction action = SearchAction.getAction();
+String query = action.getQuery();
+String queryName = action.getQueryName();
+boolean queryActive = action.isQueryActive();
+ActionContext.getContext().put("queryActive", queryActive);
+ActionContext.getContext().put("query", query);
+ActionContext.getContext().put("queryName", queryName);
+%>
+
+<s:url id="switchQueryUrl" action="switchQueryActivation">
+ <s:param name="query">
+ <s:property value="query"/>
+ </s:param>
+ <s:param name="queryName">
+ <s:property value="queryName"/>
+ </s:param>
+</s:url>
+
+<s:set id="queryActiveText">
+ <s:if test="queryActive">
+ <s:text name="vradi.search.unActivateQuery"/>
+ </s:if>
+ <s:else>
+ <s:text name="vradi.search.activateQuery"/>
+ </s:else>
+</s:set>
+
+<sj:submit id="swithActivateQuery"
+ href="%{switchQueryUrl}"
+ value="%{queryActiveText}"
+ indicator="indicator-activeQuery"
+ targets="activeQueryPanel"
+ button="true"/>
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formView.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formView.jsp 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formView.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,7 +1,4 @@
<%@ page import="org.chorem.vradi.entities.Form" %>
-<%@ page import="org.chorem.vradi.entities.FormImpl" %>
-<%@ page import="com.opensymphony.xwork2.ActionContext" %>
-<%@ page import="org.omg.DynamicAny.FieldNameHelper" %>
<%@ page import="org.nuiton.wikitty.entities.Wikitty" %>
<%@ page import="org.nuiton.wikitty.entities.WikittyExtension" %>
<%@ page import="org.chorem.vradi.VradiSession" %>
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/resultGrid.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -0,0 +1,57 @@
+<%@ page import="org.chorem.vradi.entities.Infogene" %>
+<%@ page import="org.chorem.vradi.actions.SearchAction" %>
+<%@ page import="com.opensymphony.xwork2.ActionContext" %>
+
+<%@taglib prefix="s" uri="/struts-tags"%>
+<%@taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
+
+<%
+SearchAction action = SearchAction.getAction();
+String query = action.getQuery();
+ActionContext.getContext().put("query", query);
+%>
+
+<s:set id="creationDateText">
+ <s:text name="vradi.form.creationDate"/>
+</s:set>
+<s:set id="objetText">
+ <s:text name="vradi.form.object"/>
+</s:set>
+<s:set id="fqCreationDate">
+ <%=Infogene.FQ_FIELD_INFOGENE_CREATIONDATE%>
+</s:set>
+<s:set id="fqObjet">
+ <%=Infogene.FQ_FIELD_INFOGENE_OBJET%>
+</s:set>
+
+<s:url id="formResultUrl" action="formGrid">
+ <s:param name="query">
+ <s:property value="query"/>
+ </s:param>
+</s:url>
+
+<sjg:grid id="formResult"
+ dataType="json"
+ href="%{formResultUrl}"
+ pager="true"
+ gridModel="gridModel"
+ rowList="10,100,1000"
+ rowNum="10"
+ rownumbers="true"
+ autowidth="true"
+ onSelectRowTopics="rowselect">
+
+ <sjg:gridColumn name="creationDate"
+ index="%{#fqCreationDate}"
+ title="%{#creationDateText}"
+ formatter="date"
+ formatoptions="{newformat : 'd/m/Y H:i', srcformat : 'Y-m-d H:i:s'}"
+ sortable="true"
+ width="30"/>
+
+ <sjg:gridColumn name="objet"
+ index="%{#fqObjet}"
+ title="%{#objetText}"
+ sortable="true"/>
+
+</sjg:grid>
\ No newline at end of file
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/savedQueries.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -0,0 +1,20 @@
+<%@ page import="org.chorem.vradi.actions.SearchAction" %>
+<%@ page import="com.opensymphony.xwork2.ActionContext" %>
+<%@ page import="org.chorem.vradi.entities.Query" %>
+<%@ page import="java.util.List" %>
+<%@taglib prefix="s" uri="/struts-tags"%>
+<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
+
+<%
+SearchAction action = SearchAction.getAction();
+List<Query> lastQueries = action.getLastQueries();
+ActionContext.getContext().put("lastQueries", lastQueries);
+%>
+
+<s:select id="lastQueries"
+ name="lastQueries"
+ listKey="content"
+ listValue="name"
+ list="lastQueries"
+ emptyOption="true"
+ onchange="form.elements['query'].innerHTML = this.options[this.selectedIndex].value"/>
\ No newline at end of file
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,21 +1,31 @@
<%@page import="org.chorem.vradi.entities.Infogene"%>
-<%@page import="org.chorem.vradi.decorators.EscapeScriptColomnDecorator" %>
<%@page import="org.chorem.vradi.entities.Form" %>
-<%@page import="org.chorem.vradi.decorators.DateFormatColumnDecorator" %>
+<%@ page import="org.chorem.vradi.actions.SearchAction" %>
+<%@ page import="com.opensymphony.xwork2.ActionContext" %>
<%@page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
-<%@taglib prefix="displaytag" uri="http://displaytag.sf.net"%>
<%@taglib prefix="sj" uri="/struts-jquery-tags" %>
<%@taglib prefix="sjt" uri="/struts-jquery-tree-tags" %>
+<%@ taglib prefix="sjg" uri="/struts-jquery-grid-tags"%>
<html>
<head>
<s:url var="css" value="/css/search.css" />
<link href="${css}" rel="stylesheet" type="text/css" />
<title><s:text name="vradi.search.title" /></title>
- <s:head />
- <sj:head/>
+ <sj:head compressed="false"
+ jquerytheme="redmond"
+ debug="true"
+ jqueryui="true"/>
<script type="text/javascript">
+ <%-- Table --%>
+ $.subscribe('rowselect', function(event, data) {
+ var id = event.originalEvent.id;
+ var wikittyId = id.substring(10, id.length);
+ window.open("/formView/" + wikittyId + ".action");
+ });
+
+ <%-- Thesaurus --%>
$.subscribe('treeClicked', function(event, data) {
var item = event.originalEvent.data.rslt.obj;
var parent = item.parentsUntil(".jstree", "li");
@@ -32,109 +42,93 @@
}
finalName = rootName + ":\"" + item.text().trim() + "\"";
}
- $('#searchArea')[0].innerHTML += finalName.trim();
+ $('#searchArea')[0].value += finalName.trim();
});
-
- function updateThesaurus() {
-
- // Send thesaurus filter
- var xhr = new XMLHttpRequest();
- var thesaurusUrl = getThesaurusUrl();
- xhr.open('GET', thesaurusUrl, true);
- xhr.send(null);
-
- // Refresh tree
- $('#thesaurus').jstree("refresh");
- alert(url);
- }
-
- function getThesaurusUrl() {
- var thesaurusNameRequest = $("#thesaurusNameRequestArea")[0].value;
- return "/thesaurus.action?thesaurusNameRequest=" + thesaurusNameRequest;
- }
</script>
</head>
<body>
<div>
<div id="thesaurusPanel" class="left">
- <input type="text" id="thesaurusNameRequestArea"/>
- <s:set id="thesaurusFilterButtonText">
- <s:text name="vradi.search.thesaurusFilterButton"/>
- </s:set>
- <input type="submit"
- value="${thesaurusFilterButtonText}"
- onclick="updateThesaurus()"/>
- <s:url id="thesaurusDataUrl" action="thesaurus"/>
- <sjt:tree
- id="thesaurus"
- href="%{thesaurusDataUrl}"
- onClickTopics="treeClicked"/>
+ <form id="thesaurusForm"
+ action="/fragment/thesaurusFilter.action">
+ <s:textfield id="thesaurusNameRequestField"
+ cssClass="left"
+ theme="simple"
+ name="thesaurusNameRequest"/>
+ <s:set id="thesaurusFilterButtonText">
+ <s:text name="vradi.search.thesaurusFilterButton"/>
+ </s:set>
+ <div class="right">
+ <sj:submit id="thesaurusSubmit"
+ value="%{#thesaurusFilterButtonText}"
+ indicator="indicator-thesaurus"
+ targets="thesaurusDiv"
+ button="true"/>
+ </div>
+ </form>
+ <sj:div id="thesaurusDiv" href="/fragment/thesaurusFilter.action" indicator="indicator-thesaurus">
+ <img id="indicator-thesaurus" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
+
</div>
<div id="contentPanel">
<div id="searchPanel">
- <s:form id="searchForm" action="search" method="post" theme="simple">
- <s:select id="lastQueries"
- name="lastQueries"
- listKey="content"
- listValue="name"
- list="lastQueries"
- emptyOption="true"
- onchange="form.elements['query'].innerHTML = this.options[this.selectedIndex].value"/>
- <s:text name="vradi.search.queryName"/>
- <s:textfield id="queryName" name="queryName"/></br>
+ <form id="searchForm" action="/fragment/search.action">
+
+ <div id="queriesPanel">
+ <sj:div id="savedQueriesPanel"
+ cssClass="left"
+ href="/fragment/savedQuery.action"
+ indicator="indicator-savedQuery">
+ <img id="indicator-savedQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
+
+ <s:text name="vradi.search.queryName"/>
+ <s:textfield id="queryName"
+ cssClass="right"
+ theme="simple"
+ name="queryName"
+ size="40"/>
+ </div>
<div id="queryPanel">
<s:textarea id="searchArea"
name="query"
cols="160"
- rows="4"/>
+ rows="6"/>
</div>
<div id="searchActionPanel">
- <s:submit key="vradi.search.saveQuery" name="saveRequest"/></br>
- <s:if test="queryActive">
- <s:submit key="vradi.search.unActivateQuery" name="switchUserQueryActivation"/>
- </s:if>
- <s:else>
- <s:submit key="vradi.search.activateQuery" name="switchUserQueryActivation"/>
- </s:else>
- </br>
- <s:submit key="vradi.search.submit" name="search"/>
- <s:select label="nbForms"
- name="nbForms"
- headerKey="10"
- headerValue="10"
- list="#{100:'100',1000:'1000'}"
- value="nbForms"
- required="true"/>
- </div>
- </s:form>
- </div>
- <div id="resultPanel">
- <displaytag:table name="forms"
- sort="list"
- id="f"
- requestURI="search.action">
- <displaytag:column titleKey="vradi.form.creationDate"
- property="<%=Infogene.FIELD_INFOGENE_CREATIONDATE%>"
- sortable="true"
- href='<%=f == null ? null : "formView/" + ((Form)f).getWikittyId() + ".action"%>'
- sortProperty="<%=Infogene.FQ_FIELD_INFOGENE_CREATIONDATE%>"
- decorator="<%=DateFormatColumnDecorator.class.getName()%>"/>
+ <s:url id="saveQueryUrl" action="saveQuery"/>
- <displaytag:column titleKey="vradi.form.object"
- property="<%=Infogene.FIELD_INFOGENE_OBJET%>"
- sortable="true"
- href='<%=f == null ? null : "formView/" + ((Form)f).getWikittyId() + ".action"%>'
- sortProperty="<%=Infogene.FQ_FIELD_INFOGENE_OBJET%>"
- decorator="<%=EscapeScriptColomnDecorator.class.getName()%>"/>
+ <s:set id="searchText">
+ <s:text name="vradi.search.saveQuery"/>
+ </s:set>
+ <sj:submit id="saveQuery"
+ href="%{saveQueryUrl}"
+ value="%{#searchText}"
+ indicator="indicator-savedQuery"
+ targets="savedQueriesPanel"
+ button="true"/>
- <displaytag:column titleKey="common.action" class="action">
- <s:set name="formNoteListUrl"><%="formNoteList/" + ((Form)f).getWikittyId()%></s:set>
- <s:a action="%{formNoteListUrl}"><s:text name="vradi.search.formNoteEdit"/></s:a>
- </displaytag:column>
- </displaytag:table>
+ <sj:div id="activeQueryPanel" href="/fragment/activeQuery.action" indicator="indicator-activeQuery">
+ <img id="indicator-activeQuery" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
+ <s:set id="searchText">
+ <s:text name="vradi.search.submit"/>
+ </s:set>
+
+ <sj:submit id="search"
+ value="%{#searchText}"
+ indicator="indicator-grid"
+ targets="resultPanel"
+ button="true"/>
+ </div>
+ </form>
</div>
+ <sj:div id="resultPanel" href="/fragment/search.action" indicator="indicator-grid">
+ <img id="indicator-grid" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
+ </sj:div>
</div>
</div>
</body>
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/thesaurusFilter.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/thesaurusFilter.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/thesaurusFilter.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -0,0 +1,21 @@
+<%@page import="com.opensymphony.xwork2.ActionContext"%>
+<%@ page import="org.chorem.vradi.actions.ThesaurusAction" %>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+
+<%@taglib prefix="s" uri="/struts-tags"%>
+<%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags" %>
+
+<%
+ThesaurusAction action = ThesaurusAction.getAction();
+String thesaurusNameRequest = action.getThesaurusNameRequest();
+ActionContext.getContext().put("thesaurusNameRequest", thesaurusNameRequest);
+%>
+
+<s:url id="thesaurusDataUrl" action="thesaurus">
+ <s:param name="thesaurusNameRequest">
+ <s:property value="thesaurusNameRequest"/>
+ </s:param>
+</s:url>
+<sjt:tree id="thesaurus"
+ href="%{thesaurusDataUrl}"
+ onClickTopics="treeClicked"/>
\ No newline at end of file
Modified: trunk/vradi-web/src/main/webapp/css/search.css
===================================================================
--- trunk/vradi-web/src/main/webapp/css/search.css 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/webapp/css/search.css 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,6 +1,7 @@
/* Layout */
+
div.left{
- width: 20%;
+ /*width: 20%;*/
float:left;
}
@@ -8,6 +9,10 @@
float:right;
}
+.left{
+ float:left;
+}
+
.button{
margin-top:20px;
height:31px;
@@ -18,12 +23,20 @@
padding:2px;
}
+#queriesPanel {
+ width: 70%;
+}
+
+#thesaurusForm {
+ height: 5%;
+}
+
#searchActionPanel {
float:right;
}
#searchPanel {
- height: 20%;
+ height: 150px;
}
#contentPanel {
@@ -33,51 +46,9 @@
#queryPanel {
float:left;
- width: 80%;
+ width: 70%;
}
textarea {
width: 100%;
}
-
-/* Tableau */
-table {border-collapse:collapse; width: 100%;}
-.subTable th {font-weight: normal;}
-
-td {
- border: 1px solid black;
- padding:5px;}
-td.action {text-align: right; white-space:nowrap;}
-th {
- background-color: #eee;
- border: 1px solid black;
- padding: 4px;
-}
-
-th a:hover {color: black;}
-th a,th a:visited {
- text-decoration: none;
- font-weight:bold;
- color: black;
- background-repeat: no-repeat;
-}
-
-/* Tri sur une table */
-th.sorted a,th.sortable a {background-position: right; display: block;}
-th.sortable a {background-image: url(../img/arrow_off.png);}
-th.order1 a {background-image: url(../img/arrow_down.png);}
-th.order2 a {background-image: url(../img/arrow_up.png);}
-tr.odd:hover, tr.even:hover { background-color:#deecf1; cursor: pointer;}
-
-/* Pagination sur une table */
-span.pagebanner, span.pagelinks {
- background-color: #eee;
- border: 1px solid black;
- padding: 2px;
- display: block;
- text-align: center;
-}
-
-span.pagebanner{margin-top: 10px; border-bottom: none;}
-span.pagelinks {border-top: none; margin-bottom: 10px;}
-span.pagelinks a, span.pagelinks a:visited{color:black;}
Modified: trunk/vradi-web/src/main/webapp/index.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/index.jsp 2011-06-08 16:45:16 UTC (rev 86)
+++ trunk/vradi-web/src/main/webapp/index.jsp 2011-06-15 12:46:25 UTC (rev 87)
@@ -1,3 +1,3 @@
<%
-response.sendRedirect("search.action");
+response.sendRedirect("searchView.action");
%>
\ No newline at end of file
1
0
r86 - in trunk/vradi-web/src/main: java/org/chorem/vradi java/org/chorem/vradi/actions webapp/WEB-INF/jsp
by sletellier@users.chorem.org 08 Jun '11
by sletellier@users.chorem.org 08 Jun '11
08 Jun '11
Author: sletellier
Date: 2011-06-08 18:45:16 +0200 (Wed, 08 Jun 2011)
New Revision: 86
Url: http://chorem.org/repositories/revision/vradi/86
Log:
- Add * after thesaurus filter
- Display tree as list on filter
- Add nb forms to display selection
- Add thesaurus:descrition in search on thesaurus selection
Modified:
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/java/org/chorem/vradi/actions/ThesaurusAction.java
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java 2011-06-07 20:10:36 UTC (rev 85)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/FormPaginatedList.java 2011-06-08 16:45:16 UTC (rev 86)
@@ -19,7 +19,6 @@
protected static final Log log = LogFactory.getLog(FormPaginatedList.class);
- public static final int NB_FORMS_TO_SHOW = 100;
public static final String DISPLAY_URL_PAGE = "page";
public static final String DISPLAY_URL_SORT = "sort";
public static final String DISPLAY_URL_DIR = "dir";
@@ -27,10 +26,10 @@
protected FormPagedResult result;
protected WikittyProxy proxy;
- public FormPaginatedList(WikittyProxy proxy) {
+ public FormPaginatedList(WikittyProxy proxy, int nbForms) {
this.proxy = proxy;
result = new FormPagedResult();
- result.setNbFormsToShow(NB_FORMS_TO_SHOW);
+ result.setNbFormsToShow(nbForms);
result.setPageToShow(1);
// Sort by default by fate descending
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-07 20:10:36 UTC (rev 85)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-06-08 16:45:16 UTC (rev 86)
@@ -26,6 +26,9 @@
private static final long serialVersionUID = -3735250067223062719L;
public static final String REQUEST_ATTRIBUTE_FORMS = "forms";
+ private static final int DEFAULT_NB_FORMS = 10;
+
+ protected int nbForms = DEFAULT_NB_FORMS;
protected String query;
protected String queryName;
protected HttpServletRequest request;
@@ -36,6 +39,14 @@
protected String switchUserQueryActivation;
protected String saveRequest;
+ public int getNbForms() {
+ return nbForms;
+ }
+
+ public void setNbForms(int nbForms) {
+ this.nbForms = nbForms;
+ }
+
public String getSaveRequest() {
return saveRequest;
}
@@ -96,7 +107,7 @@
if (doSwithUserQueryActivation) {
queryActive = getVradiSession().getDataService().switchUserQueryActivation(user, queryName, query);
}
- FormPaginatedList paginatedList = new FormPaginatedList(getProxy());
+ FormPaginatedList paginatedList = new FormPaginatedList(getProxy(), getNbForms());
// Retrive paginatedList and fill by request params
paginatedList.fromRequest(request);
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-06-07 20:10:36 UTC (rev 85)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-06-08 16:45:16 UTC (rev 86)
@@ -60,10 +60,13 @@
} else {
// Build search with thesaurus name restriction
- Search search = Search.query().eq(Thesaurus.FQ_FIELD_WIKITTYTREENODE_PARENT, id);
+ Search search = Search.query();
if (!StringUtils.isEmpty(thesaurusNameRequest)) {
- search.like(Thesaurus.FQ_FIELD_WIKITTYTREENODE_NAME,
- thesaurusNameRequest, Like.SearchAs.ToLowerCase);
+ search.eq(Thesaurus.FQ_FIELD_THESAURUS_ROOTTHESAURUS, id)
+ .like(Thesaurus.FQ_FIELD_WIKITTYTREENODE_NAME,
+ thesaurusNameRequest + "*", Like.SearchAs.ToLowerCase);
+ } else {
+ search.eq(Thesaurus.FQ_FIELD_WIKITTYTREENODE_PARENT, id);
}
PagedResult<Thesaurus> children = getProxy().findAllByCriteria(Thesaurus.class, search.criteria());
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-07 20:10:36 UTC (rev 85)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-08 16:45:16 UTC (rev 86)
@@ -18,7 +18,21 @@
<script type="text/javascript">
$.subscribe('treeClicked', function(event, data) {
var item = event.originalEvent.data.rslt.obj;
- $('#searchArea')[0].innerHTML += item.text().trim();
+ var parent = item.parentsUntil(".jstree", "li");
+ var finalName;
+ var parentName = parent.text();
+ if (parentName.length == 0) {
+ finalName = item.children("a").text() + ":*";
+ } else {
+ var rootName;
+ while (parentName.length > 0) {
+ rootName = parent.children("a").text();
+ parent = parent.parentsUntil(".jstree", "li");
+ parentName = parent.text();
+ }
+ finalName = rootName + ":\"" + item.text().trim() + "\"";
+ }
+ $('#searchArea')[0].innerHTML += finalName.trim();
});
function updateThesaurus() {
@@ -43,7 +57,7 @@
<body>
<div>
<div id="thesaurusPanel" class="left">
- <textfield id="thesaurusNameRequestArea"/>
+ <input type="text" id="thesaurusNameRequestArea"/>
<s:set id="thesaurusFilterButtonText">
<s:text name="vradi.search.thesaurusFilterButton"/>
</s:set>
@@ -85,6 +99,13 @@
</s:else>
</br>
<s:submit key="vradi.search.submit" name="search"/>
+ <s:select label="nbForms"
+ name="nbForms"
+ headerKey="10"
+ headerValue="10"
+ list="#{100:'100',1000:'1000'}"
+ value="nbForms"
+ required="true"/>
</div>
</s:form>
</div>
@@ -97,14 +118,14 @@
<displaytag:column titleKey="vradi.form.creationDate"
property="<%=Infogene.FIELD_INFOGENE_CREATIONDATE%>"
sortable="true"
- href="<%="formView/" + ((Form)f).getWikittyId() + ".action"%>"
+ href='<%=f == null ? null : "formView/" + ((Form)f).getWikittyId() + ".action"%>'
sortProperty="<%=Infogene.FQ_FIELD_INFOGENE_CREATIONDATE%>"
decorator="<%=DateFormatColumnDecorator.class.getName()%>"/>
<displaytag:column titleKey="vradi.form.object"
property="<%=Infogene.FIELD_INFOGENE_OBJET%>"
sortable="true"
- href="<%="formView/" + ((Form)f).getWikittyId() + ".action"%>"
+ href='<%=f == null ? null : "formView/" + ((Form)f).getWikittyId() + ".action"%>'
sortProperty="<%=Infogene.FQ_FIELD_INFOGENE_OBJET%>"
decorator="<%=EscapeScriptColomnDecorator.class.getName()%>"/>
1
0
Author: tchemit
Date: 2011-06-07 22:10:36 +0200 (Tue, 07 Jun 2011)
New Revision: 85
Url: http://chorem.org/repositories/revision/vradi/85
Log:
Update mavenpom4redmine to 2.5.5.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-06-07 13:02:31 UTC (rev 84)
+++ trunk/pom.xml 2011-06-07 20:10:36 UTC (rev 85)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.5.4</version>
+ <version>2.5.5</version>
</parent>
<groupId>org.chorem</groupId>
1
0
07 Jun '11
Author: sletellier
Date: 2011-06-07 15:02:31 +0200 (Tue, 07 Jun 2011)
New Revision: 84
Url: http://chorem.org/repositories/revision/vradi/84
Log:
Revert
Modified:
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-07 13:01:22 UTC (rev 83)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-07 13:02:31 UTC (rev 84)
@@ -42,7 +42,7 @@
<img id="indicator-result" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
</div>
<div>
- <sj:a id="clCyril LakechoseButton" href="/ajax/edit/%{localNoteId}.action?state=close"
+ <sj:a id="closeButton" href="/ajax/edit/%{localNoteId}.action?state=close"
targets="" indicator="indicator-result"
button="true" buttonIcon="ui-icon-gear">
<s:text name="vradi.formNote.close"/>
1
0
r83 - in trunk/vradi-web/src/main: java/org/chorem/vradi/actions resources resources/i18n webapp/WEB-INF/jsp webapp/css
by sletellier@users.chorem.org 07 Jun '11
by sletellier@users.chorem.org 07 Jun '11
07 Jun '11
Author: sletellier
Date: 2011-06-07 15:01:22 +0200 (Tue, 07 Jun 2011)
New Revision: 83
Url: http://chorem.org/repositories/revision/vradi/83
Log:
- Fix css
- #383 Filter thesaurus
Modified:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.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/WEB-INF/jsp/formNote.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
trunk/vradi-web/src/main/webapp/css/search.css
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-05-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-06-07 13:01:22 UTC (rev 83)
@@ -1,11 +1,16 @@
package org.chorem.vradi.actions;
import com.jgeppert.struts2.jquery.tree.result.TreeNode;
-import com.opensymphony.xwork2.ActionSupport;
+import org.apache.commons.lang.StringUtils;
+import org.apache.struts2.interceptor.ServletRequestAware;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.Thesaurus;
import org.chorem.vradi.services.VradiException;
+import org.nuiton.wikitty.search.PagedResult;
+import org.nuiton.wikitty.search.Search;
+import org.nuiton.wikitty.search.operators.Like;
+import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
@@ -14,15 +19,31 @@
*
* @author sletellier
*/
-public class ThesaurusAction extends VradiBaseAction {
+public class ThesaurusAction extends VradiBaseAction implements ServletRequestAware {
private static final long serialVersionUID = -2886756982077980790L;
- private List<TreeNode> nodes = new ArrayList<TreeNode>();
- private String id = null;
- public String execute() {
+ public static final String THESAURUS_NAME_REQUEST = "thesaurusNameRequest";
- if (id.equals("0")) {
+ protected List<TreeNode> nodes = new ArrayList<TreeNode>();
+ protected String id = null;
+ protected HttpServletRequest request;
+
+ protected String thesaurusNameRequest;
+
+ public String execute() {
+
+ if (id == null) {
+ // Store in session to keep it
+ request.getSession().setAttribute(THESAURUS_NAME_REQUEST, thesaurusNameRequest);
+ return SUCCESS;
+ }
+ else {
+ // Retrieve from session
+ this.thesaurusNameRequest = (String)request.getSession().getAttribute(THESAURUS_NAME_REQUEST);
+ }
+
+ if ("0".equals(id)) {
List<RootThesaurus> rootThesaurus;
try {
rootThesaurus = getVradiSession().getDataService().getRootThesaurus();
@@ -37,23 +58,44 @@
nodes.add(node);
}
} else {
- List<Thesaurus> thesaurus;
- try {
- thesaurus = getVradiSession().getDataService().getChildrenThesaurus(id);
- } catch (VradiException eee) {
- log.error("Failed to load children of thesaurus : " + id, eee);
- return ERROR;
+
+ // Build search with thesaurus name restriction
+ Search search = Search.query().eq(Thesaurus.FQ_FIELD_WIKITTYTREENODE_PARENT, id);
+ if (!StringUtils.isEmpty(thesaurusNameRequest)) {
+ search.like(Thesaurus.FQ_FIELD_WIKITTYTREENODE_NAME,
+ thesaurusNameRequest, Like.SearchAs.ToLowerCase);
}
- for (Thesaurus child : thesaurus) {
+ PagedResult<Thesaurus> children = getProxy().findAllByCriteria(Thesaurus.class, search.criteria());
+
+ // FIXME sletellier 07/06/11 : dont work, filter is apply only on count
+// TreeNodeResult<Thesaurus> thesaurus = getProxy().findTreeNode(Thesaurus.class, id, 1, true, criteria);
+
+// for (TreeNodeResult<Thesaurus> childNode : thesaurus.getChildren()) {
+ for (Thesaurus child : children) {
TreeNode node = new TreeNode();
+// Thesaurus child = childNode.getObject();
node.setId(child.getWikittyId());
node.setTitle(child.getName());
+
nodes.add(node);
}
}
- return SUCCESS;
- }
+ return SUCCESS;
+ }
+ @Override
+ public void setServletRequest(HttpServletRequest request) {
+ this.request = request;
+ }
+
+ public String getThesaurusNameRequest() {
+ return thesaurusNameRequest;
+ }
+
+ public void setThesaurusNameRequest(String thesaurusNameRequest) {
+ this.thesaurusNameRequest = thesaurusNameRequest;
+ }
+
public String getJSON() {
return execute();
}
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-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-06-07 13:01:22 UTC (rev 83)
@@ -37,4 +37,5 @@
vradi.search.activateQuery=activate
vradi.search.queryName=Request name
vradi.search.saveQuery=Save request
-vradi.formView.title=Form view
\ No newline at end of file
+vradi.formView.title=Form view
+vradi.search.thesaurusFilterButton=Filter
\ No newline at end of file
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-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-06-07 13:01:22 UTC (rev 83)
@@ -35,6 +35,7 @@
vradi.search.queryName=Nom de la requête
vradi.search.saveQuery=Sauvegarder la requête
vradi.search.submit=Rechercher
+vradi.search.thesaurusFilterButton=Filtrer
vradi.search.title=Recherche
vradi.search.unActivateQuery=Desactiver
vradi.title=Vradi Web
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-05-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-07 13:01:22 UTC (rev 83)
@@ -113,6 +113,7 @@
+-->
<action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction">
+ <param name="thesaurusNameRequest"/>
<result name="success" type="json">
<param name="root">nodes</param>
</result>
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-05-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-07 13:01:22 UTC (rev 83)
@@ -42,7 +42,7 @@
<img id="indicator-result" src="/img/indicator.gif" alt="Loading..." style="display:none"/>
</div>
<div>
- <sj:a id="closeButton" href="/ajax/edit/%{localNoteId}.action?state=close"
+ <sj:a id="clCyril LakechoseButton" href="/ajax/edit/%{localNoteId}.action?state=close"
targets="" indicator="indicator-result"
button="true" buttonIcon="ui-icon-gear">
<s:text name="vradi.formNote.close"/>
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-05-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-07 13:01:22 UTC (rev 83)
@@ -20,11 +20,36 @@
var item = event.originalEvent.data.rslt.obj;
$('#searchArea')[0].innerHTML += item.text().trim();
});
+
+ function updateThesaurus() {
+
+ // Send thesaurus filter
+ var xhr = new XMLHttpRequest();
+ var thesaurusUrl = getThesaurusUrl();
+ xhr.open('GET', thesaurusUrl, true);
+ xhr.send(null);
+
+ // Refresh tree
+ $('#thesaurus').jstree("refresh");
+ alert(url);
+ }
+
+ function getThesaurusUrl() {
+ var thesaurusNameRequest = $("#thesaurusNameRequestArea")[0].value;
+ return "/thesaurus.action?thesaurusNameRequest=" + thesaurusNameRequest;
+ }
</script>
</head>
<body>
<div>
<div id="thesaurusPanel" class="left">
+ <textfield id="thesaurusNameRequestArea"/>
+ <s:set id="thesaurusFilterButtonText">
+ <s:text name="vradi.search.thesaurusFilterButton"/>
+ </s:set>
+ <input type="submit"
+ value="${thesaurusFilterButtonText}"
+ onclick="updateThesaurus()"/>
<s:url id="thesaurusDataUrl" action="thesaurus"/>
<sjt:tree
id="thesaurus"
Modified: trunk/vradi-web/src/main/webapp/css/search.css
===================================================================
--- trunk/vradi-web/src/main/webapp/css/search.css 2011-05-31 16:18:16 UTC (rev 82)
+++ trunk/vradi-web/src/main/webapp/css/search.css 2011-06-07 13:01:22 UTC (rev 83)
@@ -1,19 +1,39 @@
/* Layout */
div.left{
+ width: 20%;
float:left;
}
+.right{
+ float:right;
+}
+
+.button{
+ margin-top:20px;
+ height:31px;
+ line-height:31px;
+ font-weight:bold;
+ border:none;
+ width:auto;
+ padding:2px;
+}
+
#searchActionPanel {
float:right;
}
+#searchPanel {
+ height: 20%;
+}
+
#contentPanel {
- padding-left: 10%;
+ padding-right: 20%;
+ padding-left: 20%;
}
#queryPanel {
float:left;
- width: 85%;
+ width: 80%;
}
textarea {
1
0