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
- 198 discussions
31 May '11
Author: sletellier
Date: 2011-05-31 14:45:09 +0200 (Tue, 31 May 2011)
New Revision: 78
Url: http://chorem.org/repositories/revision/vradi/78
Log:
Fix thesaurus script
Modified:
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
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 12:44:10 UTC (rev 77)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-05-31 12:45:09 UTC (rev 78)
@@ -18,11 +18,7 @@
<script type="text/javascript">
$.subscribe('treeClicked', function(event, data) {
var item = event.originalEvent.data.rslt.obj;
- var parent = item.parent();
- while (!parent && parent != -1) {
- parent = parent.parent();
- }
- $('#searchArea')[0].innerHTML += parent.text().trim()
+ $('#searchArea')[0].innerHTML += item.text().trim()
});
</script>
</head>
1
0
r77 - in trunk: vradi-services/src/main/java/org/chorem/vradi/services vradi-web/src/main/java/org/chorem/vradi/actions vradi-web/src/main/resources vradi-web/src/main/webapp/WEB-INF/jsp
by sletellier@users.chorem.org 31 May '11
by sletellier@users.chorem.org 31 May '11
31 May '11
Author: sletellier
Date: 2011-05-31 14:44:10 +0200 (Tue, 31 May 2011)
New Revision: 77
Url: http://chorem.org/repositories/revision/vradi/77
Log:
First implementation of thesaurus on web
Added:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java
Modified:
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.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/search.jsp
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java 2011-05-30 17:11:34 UTC (rev 76)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java 2011-05-31 12:44:10 UTC (rev 77)
@@ -27,7 +27,6 @@
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.chorem.vradi.VradiServiceConfiguration;
import org.chorem.vradi.VradiServiceConfigurationHelper;
import org.chorem.vradi.beans.FormPagedResult;
import org.chorem.vradi.beans.QueryBean;
@@ -402,6 +401,7 @@
* @param extension the form type to update
* @return the form type up to date
*/
+ @Override
public WikittyExtension updateFormType(WikittyExtension extension, String templateName) throws VradiException {
return formTypeManager.updateFormType(extension, templateName);
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-05-30 17:11:34 UTC (rev 76)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-05-31 12:44:10 UTC (rev 77)
@@ -92,7 +92,8 @@
// 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();
- if (!StringUtils.isEmpty(switchUserQueryActivation)) {
+ boolean doSwithUserQueryActivation = !StringUtils.isEmpty(switchUserQueryActivation);
+ if (doSwithUserQueryActivation) {
queryActive = getVradiSession().getDataService().switchUserQueryActivation(user, queryName, query);
}
FormPaginatedList paginatedList = new FormPaginatedList(getProxy());
@@ -115,7 +116,9 @@
}
// Save request played
- if (!StringUtils.isEmpty(saveRequest) && !StringUtils.isEmpty(queryName)) {
+ if ((!StringUtils.isEmpty(saveRequest) ||
+ doSwithUserQueryActivation) &&
+ !StringUtils.isEmpty(queryName)) {
user = getVradiSession().getDataService().saveQuery(user, queryName, query);
Added: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java (rev 0)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-05-31 12:44:10 UTC (rev 77)
@@ -0,0 +1,68 @@
+package org.chorem.vradi.actions;
+
+import com.jgeppert.struts2.jquery.tree.result.TreeNode;
+import com.opensymphony.xwork2.ActionSupport;
+import org.chorem.vradi.entities.RootThesaurus;
+import org.chorem.vradi.entities.Thesaurus;
+import org.chorem.vradi.services.VradiException;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Action used to display thesaurus
+ *
+ * @author sletellier
+ */
+public class ThesaurusAction extends VradiBaseAction {
+
+ private static final long serialVersionUID = -2886756982077980790L;
+ private List<TreeNode> nodes = new ArrayList<TreeNode>();
+ private String id = null;
+
+ public String execute() {
+
+ if (id.equals("0")) {
+ List<RootThesaurus> rootThesaurus;
+ try {
+ rootThesaurus = getVradiSession().getDataService().getRootThesaurus();
+ } catch (VradiException eee) {
+ log.error("Failed to load rootThesaurus : ", eee);
+ return ERROR;
+ }
+ for (RootThesaurus root : rootThesaurus) {
+ TreeNode node = new TreeNode();
+ node.setId(root.getWikittyId());
+ node.setTitle(root.getName());
+ 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;
+ }
+ for (Thesaurus child : thesaurus) {
+ TreeNode node = new TreeNode();
+ node.setId(child.getWikittyId());
+ node.setTitle(child.getName());
+ nodes.add(node);
+ }
+ }
+ return SUCCESS;
+ }
+
+ public String getJSON() {
+ return execute();
+ }
+
+ public List<TreeNode> getNodes() {
+ return nodes;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+}
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-05-30 17:11:34 UTC (rev 76)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-05-31 12:44:10 UTC (rev 77)
@@ -109,12 +109,15 @@
</action>
<!--
- | Activate or not user request
+ | Thesaurus
+-->
- <!--action name="switchUserQueryActivation" class="org.chorem.vradi.actions.SearchAction" method="switchUserQueryActivation">
- <result type="redirect">search.action</result>
- </action-->
+ <action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction">
+ <result name="success" type="json">
+ <param name="root">nodes</param>
+ </result>
+ </action>
+
<!--
| Affiche la liste des notes attachees a un formulaire
| Permet de creer une nouvelle note
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-30 17:11:34 UTC (rev 76)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-05-31 12:44:10 UTC (rev 77)
@@ -5,6 +5,8 @@
<%@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" %>
<html>
<head>
@@ -12,8 +14,26 @@
<link href="${css}" rel="stylesheet" type="text/css" />
<title><s:text name="vradi.search.title" /></title>
<s:head />
+ <sj:head/>
+ <script type="text/javascript">
+ $.subscribe('treeClicked', function(event, data) {
+ var item = event.originalEvent.data.rslt.obj;
+ var parent = item.parent();
+ while (!parent && parent != -1) {
+ parent = parent.parent();
+ }
+ $('#searchArea')[0].innerHTML += parent.text().trim()
+ });
+ </script>
</head>
<body>
+ <s:url id="thesaurusDataUrl" action="thesaurus"/>
+ <sjt:tree
+ id="thesaurus"
+ href="%{thesaurusDataUrl}"
+ onClickTopics="treeClicked"
+ />
+
<s:form id="searchForm" action="search" method="post" theme="simple">
<s:select id="lastQueries"
name="lastQueries"
1
0
Author: sletellier
Date: 2011-05-30 19:11:34 +0200 (Mon, 30 May 2011)
New Revision: 76
Url: http://chorem.org/repositories/revision/vradi/76
Log:
- Add query entity
- Depreciate QueryBean
- Refactor Services
- Refactor Swing ui query selection
- Refactor web query selection
Added:
trunk/vradi-services-web/src/main/resources/vradi-services.properties
Removed:
trunk/vradi-services/src/test/java/org/chorem/vradi/beans/
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestListUI.jaxx
Modified:
trunk/vradi-entities/src/main/xmi/vradi.zargo
trunk/vradi-services-web/src/test/resources/vradi-services.properties
trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java
trunk/vradi-services/src/main/java/org/chorem/vradi/beans/QueryBean.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataService.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java
trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java
trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java
trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/SearchManagerTest.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminGroupUI.jaxx
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminThesaurusHandler.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestSelectUI.jaxx
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/popups/ThesaurusQueryChangesHandler.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/QueryCellEditor.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/ThesaurusChangesTreeTableModel.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/RequestFormViewHandler.java
trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/search/SearchHandler.java
trunk/vradi-swing/src/main/resources/vradi.properties
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/struts.xml
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/footer.jsp
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp
Modified: trunk/vradi-entities/src/main/xmi/vradi.zargo
===================================================================
(Binary files differ)
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/VradiServiceConfiguration.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -178,12 +178,12 @@
SERVLET_PORT(
"vradi.remote.servlet.port",
_("vradi.config.remote.servlet.port.description"),
- "0", Integer.class, false, false),
+ "9000", Integer.class, false, false),
SERVICE_PORT(
"vradi.remote.service.port",
_("vradi.config.remote.service.port.description"),
- "0", Integer.class, false, false),
+ "9000", Integer.class, false, false),
DATA_DIR(
"vradi.data.dir",
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/beans/QueryBean.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/beans/QueryBean.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/beans/QueryBean.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -25,10 +25,12 @@
import au.com.bytecode.opencsv.CSVParser;
import au.com.bytecode.opencsv.CSVWriter;
+import org.chorem.vradi.entities.Query;
+import org.chorem.vradi.entities.QueryImpl;
+import org.nuiton.wikitty.WikittyProxy;
import java.io.IOException;
import java.io.Serializable;
-import java.io.StringWriter;
/**
* Query bean.
@@ -40,131 +42,71 @@
* @see CSVWriter
* @see CSVParser
* @since 16 mars 2010 14:25:12
+ * @deprecated prefer use directly {@link org.chorem.vradi.entities.Query}
*/
+@Deprecated
public final class QueryBean implements Serializable {
private static final long serialVersionUID = 2L;
- protected final String queryLine;
+ // Group id
+ protected Query query;
+ protected String id;
+ protected String name;
+ protected String content;
+ protected String description;
- protected final String[] queryArray;
-
- protected final String id;
-
public QueryBean() {
- id = null;
- queryLine = "";
- queryArray = new String[3];
}
/**
* Decode the specified <code>queryLine</code>. The queryLine must be CSV formatted.
*
- * @param queryLine the formatted query.
+ * @param queryId is now Query WikittyId
* @throws IOException if <code>queryLine</code> is badly formatted.
*/
- public QueryBean(String queryLine) throws IOException {
- this(queryLine, null);
+ public QueryBean(WikittyProxy proxy, String queryId) {
+ this(proxy, queryId, null);
}
- public QueryBean(String queryLine, String id) throws IOException {
- this.id = id;
- this.queryLine = queryLine;
- queryArray = decode(queryLine, 3);
- }
-
- /**
- * Creates a CSV formatted query from the specified <code>queryArray</code>.
- *
- * @param queryArray the string composing the query
- */
- private QueryBean(String[] queryArray, String id) {
- if (queryArray.length < 3) {
- throw new IllegalArgumentException("queryArray length is less than 3");
+ public QueryBean(WikittyProxy proxy, String queryId, String groupId) {
+ this.id = groupId;
+ if(queryId != null) {
+ Query query = proxy.restore(Query.class, queryId);
+ fromQuery(query);
}
-
- this.id = id;
- this.queryArray = queryArray.clone();
- queryLine = encode(queryArray);
}
- public String getQueryLine() {
- return queryLine;
- }
+ // Was "request, name, desc"
+// public String getQueryLine() {
+// return queryLine;
+// }
public String getQuery() {
- return queryArray[0];
+ return content;
}
public String getName() {
- return queryArray[1];
+ return name;
}
public String getDescription() {
- return queryArray[2];
+ return description;
}
- public String getCSVQuery() {
- return queryLine;
+ public void setQuery(String value) {
+ this.content = value;
}
- public String[] toArray() {
- return queryArray;
+ public void setName(String value) {
+ this.name = name;
}
- public QueryBean setQuery(String value) {
- return create(value, 0);
+ public void setDescription(String value) {
+ this.description = value;
}
- public QueryBean setName(String value) {
- return create(value, 1);
- }
-
- public QueryBean setDescription(String value) {
- return create(value, 2);
- }
-
- private QueryBean create(String value, int pos) {
- String[] newArray = queryArray.clone();
- newArray[pos] = value;
- return new QueryBean(newArray, id);
- }
-
/**
- * Parse the specified line and returns a string array of the specified size.
- *
- * @param line the string to parse
- * @return the comma-tokenized list of elements
- * @throws IOException
- */
- static String[] decode(String line, int size) throws IOException {
- CSVParser csvParser = new CSVParser();
- String[] parseLine = csvParser.parseLine(line);
-
- String[] result = new String[size];
- for (int i = 0; i < parseLine.length; i++) {
- result[i] = parseLine[i];
- }
-
- return result;
- }
-
- /**
- * Escape each columns of the specified array and return a valid CSV line.
- *
- * @param columns columns composing the CVS string
- * @return a CSV formatted string
- */
- static String encode(String[] columns) {
- StringWriter writer = new StringWriter();
- // creates a CSVWriter with all default options but with no line end
- CSVWriter csvwriter = new CSVWriter(writer, CSVWriter.DEFAULT_SEPARATOR,
- CSVWriter.DEFAULT_QUOTE_CHARACTER, CSVWriter.DEFAULT_ESCAPE_CHARACTER, "");
- csvwriter.writeNext(columns);
- return writer.toString();
- }
-
- /**
* Additionnal attribute. It does not belongs to the query definition.
*
* @return query id
@@ -173,45 +115,27 @@
return id;
}
- @Override
- public int hashCode() {
- int prime = 31;
- int result = 1;
- result = prime * result + (id == null ? 0 : id.hashCode());
- result = prime * result
- + (queryLine == null ? 0 : queryLine.hashCode());
- return result;
+ public Query toQuery() {
+ return toQuery(query);
}
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
+ public Query toQuery(Query query) {
+ if (query == null) {
+ query = new QueryImpl();
}
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
- return false;
- }
+ query.setName(name);
+ query.setContent(content);
+ query.setDescription(description);
- QueryBean other = (QueryBean) obj;
- if (id == null) {
- if (other.id != null) {
- return false;
- }
- } else if (!id.equals(other.id)) {
- return false;
- }
+ return query;
+ }
- if (queryLine == null) {
- if (other.queryLine != null) {
- return false;
- }
- } else if (!queryLine.equals(other.queryLine)) {
- return false;
- }
+ public Query fromQuery(Query query) {
+ this.query = query;
+ this.name = query.getName();
+ this.content = query.getContent();
+ this.description = query.getDescription();
- return true;
+ return query;
}
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/ServiceMigration.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -34,7 +34,7 @@
import org.chorem.vradi.entities.GroupImpl;
import org.chorem.vradi.entities.InfogeneImpl;
import org.chorem.vradi.entities.ModificationTagImpl;
-import org.chorem.vradi.entities.QueryMakerImpl;
+import org.chorem.vradi.entities.QueryImpl;
import org.chorem.vradi.entities.RootThesaurusImpl;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.SendingImpl;
@@ -523,7 +523,7 @@
GroupImpl.extensionGroup,
InfogeneImpl.extensionInfogene,
ModificationTagImpl.extensionModificationTag,
- QueryMakerImpl.extensionQueryMaker,
+ QueryImpl.extensionQuery,
RootThesaurusImpl.extensionRootThesaurus,
SendingImpl.extensionSending,
SessionImpl.extensionSession,
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataService.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataService.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataService.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -30,12 +30,14 @@
import org.chorem.vradi.entities.Client;
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Query;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.Session;
import org.chorem.vradi.entities.Status;
import org.chorem.vradi.entities.Thesaurus;
import org.chorem.vradi.entities.User;
+import org.chorem.vradi.entities.VradiUser;
import org.chorem.vradi.entities.WebHarvestStream;
import org.chorem.vradi.entities.XmlFieldBinding;
import org.chorem.vradi.entities.XmlStream;
@@ -147,7 +149,7 @@
/**
* Delete group
*
- * @param groupId to delete
+ * @param id to delete
*/
void deleteXmlStream(String id) throws VradiException;
@@ -215,7 +217,7 @@
* Creates or Update a form type.
*
* @param extension the extension designing the form type
- * @param template name
+ * @param templateName
* @return a <code>WikittyExtension</code>
* @throws VradiException
*/
@@ -366,7 +368,7 @@
* @return a map containing the query makers and their queries which contains
* the thesaurus node name
*/
- Map<Group, List<QueryBean>> getQueriesToModifyAfterThesaurusModification(
+ Map<Group, List<Query>> getQueriesToModifyAfterThesaurusModification(
String rootThesaurusName, String thesaurusName);
/**
@@ -552,4 +554,34 @@
/** Get form type template name */
String getFormTypeTemplateName(WikittyExtension extension);
+
+ /**
+ * Used to check if user have activate this query or not
+ *
+ * @param user of query
+ * @param queryName to check
+ * @return true if request is active
+ */
+ boolean checkRequestIsActive(VradiUser user, String queryName);
+
+ /**
+ * 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.
+ *
+ * @param user concerned
+ * @param queryName to switch
+ * @param queryContent to switch
+ * @return if is active
+ */
+ boolean switchUserQueryActivation(VradiUser user, String queryName, String queryContent);
+
+ /**
+ * Save query on vradi user
+ *
+ * @param user concerned
+ * @param queryName name of query to save
+ * @param query content
+ * @return user updated
+ */
+ VradiUser saveQuery(VradiUser user, String queryName, String query);
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiDataServiceImpl.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -35,12 +35,15 @@
import org.chorem.vradi.entities.Client;
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Query;
+import org.chorem.vradi.entities.QueryImpl;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.Session;
import org.chorem.vradi.entities.Status;
import org.chorem.vradi.entities.Thesaurus;
import org.chorem.vradi.entities.User;
+import org.chorem.vradi.entities.VradiUser;
import org.chorem.vradi.entities.WebHarvestStream;
import org.chorem.vradi.entities.XmlFieldBinding;
import org.chorem.vradi.entities.XmlStream;
@@ -69,6 +72,7 @@
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Set;
/**
* Vradi data service implementation (on a local wikiity proxy).
@@ -422,7 +426,7 @@
}
@Override
- public Map<Group, List<QueryBean>> getQueriesToModifyAfterThesaurusModification(
+ public Map<Group, List<Query>> getQueriesToModifyAfterThesaurusModification(
String rootThesaurusName, String thesaurusName) {
return thesaurusManager.getQueriesToModifyAfterThesaurusModification(rootThesaurusName, thesaurusName);
}
@@ -752,4 +756,42 @@
public String getFormTypeTemplateName(WikittyExtension extension) {
return formTypeManager.getFormTypeTemplateName(extension);
}
+
+ @Override
+ public boolean checkRequestIsActive(VradiUser user, String queryName) {
+ return clientManager.checkRequestIsActive(user, queryName);
+ }
+
+ @Override
+ public boolean switchUserQueryActivation(VradiUser user, String queryName, String queryContent) {
+ return clientManager.switchUserQueryActivation(user, queryName, queryContent);
+ }
+
+ @Override
+ public VradiUser saveQuery(VradiUser user, String queryName, String content) {
+
+ Set<String> queries = user.getQueries();
+
+ Query query = null;
+
+ if (queries != null) {
+ Criteria criteria = Search.query()
+ .in(Element.ELT_ID, queries)
+ .eq(Query.FQ_FIELD_QUERY_NAME, queryName)
+ .criteria();
+
+ query = wikittyProxy.findByCriteria(Query.class, criteria);
+ }
+ if (query == null) {
+ query = new QueryImpl();
+ query.setName(queryName);
+ }
+ query.setContent(content);
+
+ user.addQueries(query.getWikittyId());
+ wikittyProxy.store(query);
+
+ return wikittyProxy.store(user);
+
+ }
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageService.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -26,7 +26,6 @@
import org.chorem.vradi.beans.XmlStreamImportResult;
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
-import org.chorem.vradi.entities.QueryMaker;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.Session;
import org.chorem.vradi.entities.Status;
@@ -80,7 +79,7 @@
/**
* Create new Sending
*
- * @param session
+ * @param sessionId
* @param group
* @param formsIdsToBind
* @return
@@ -91,7 +90,7 @@
/**
* Create new Sending
*
- * @param session
+ * @param sessionId
* @param user
* @param formsIdsToBind
* @return
@@ -236,7 +235,7 @@
* @param queryMaker the query maker whose queries are archived
* @throws VradiException
*/
- void archiveQueries(QueryMaker queryMaker) throws VradiException;
+ void archiveQueries(Group queryMaker) throws VradiException;
/**
* Save association between template fields and extensions fields.
@@ -261,9 +260,9 @@
/**
* Remove all sending corresponding with form and group from session
*
- * @param session concerned
+ * @param sessionId concerned
* @param formsIds concerned
- * @param queryMaker concerned
+ * @param group concerned
* @return List of sending after deletion
*/
List<Sending> removeAllSending(String sessionId, List<String> formsIds, Group group) throws VradiException;
@@ -271,9 +270,9 @@
/**
* Remove sending corresponding with form and user from session
*
- * @param session concerned
+ * @param sessionId concerned
* @param formsIds concerned
- * @param queryMaker concerned
+ * @param user concerned
* @return sending after deletion
*/
Sending removeSending(String sessionId, List<String> formsIds, User user) throws VradiException;
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/VradiStorageServiceImpl.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -31,7 +31,6 @@
import org.chorem.vradi.entities.Client;
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
-import org.chorem.vradi.entities.QueryMaker;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.Session;
import org.chorem.vradi.entities.Status;
@@ -383,7 +382,7 @@
}
@Override
- public void archiveQueries(QueryMaker queryMaker)
+ public void archiveQueries(Group queryMaker)
throws VradiException {
clientManager.archiveQueries(queryMaker);
}
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-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ClientManager.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -37,15 +37,21 @@
import org.chorem.vradi.VradiServiceConfigurationHelper;
import org.chorem.vradi.beans.QueryBean;
import org.chorem.vradi.entities.Client;
+import org.chorem.vradi.entities.ClientImpl;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.GroupImpl;
import org.chorem.vradi.entities.ModificationTag;
-import org.chorem.vradi.entities.QueryMaker;
+import org.chorem.vradi.entities.Query;
+import org.chorem.vradi.entities.QueryImpl;
import org.chorem.vradi.entities.Sending;
import org.chorem.vradi.entities.Session;
import org.chorem.vradi.entities.User;
+import org.chorem.vradi.entities.UserImpl;
+import org.chorem.vradi.entities.VradiUser;
import org.chorem.vradi.services.VradiException;
import org.nuiton.util.ApplicationConfig;
import org.nuiton.wikitty.WikittyProxy;
+import org.nuiton.wikitty.entities.BusinessEntity;
import org.nuiton.wikitty.search.Criteria;
import org.nuiton.wikitty.search.PagedResult;
import org.nuiton.wikitty.search.Search;
@@ -300,67 +306,18 @@
/**
* Archives the queries of a user, client or group in a RSS file.
*
- * @param queryMaker the query maker whose queries are archived
+ * @param group the query maker whose queries are archived
* @throws VradiException throw vradiException if exception is occured
*/
- public void archiveQueries(QueryMaker queryMaker) throws VradiException {
+ public void archiveQueries(Group group) throws VradiException {
if (log.isDebugEnabled()) {
- log.debug("archiveQueries(id:" + queryMaker.getWikittyId() +
- "; version:" + queryMaker.getWikittyVersion() + ")");
+ log.debug("archiveQueries(id:" + group.getWikittyId() +
+ "; version:" + group.getWikittyVersion() + ")");
}
try {
- String wikittyId = queryMaker.getWikittyId();
- Criteria criteria = Search.query().eq(Element.ELT_ID, wikittyId).criteria();
- QueryMaker restored = wikittyProxy.findByCriteria(QueryMaker.class, criteria);
+ String wikittyId = group.getWikittyId();
- if (restored != null && restored.getQueries() != null) {
- Set<String> restoredQueries = restored.getQueries();
- Set<String> updatedQueries = queryMaker.getQueries();
-
- if (updatedQueries != null) {
- Collection disjunction = CollectionUtils.disjunction(restoredQueries, updatedQueries);
- if (disjunction.isEmpty()) {
- if (log.isDebugEnabled()) {
- log.debug("Disjunction between new and old queryMaker is empty");
- }
- return;
- }
- }
- } else {
- boolean restoredQueriesEmpty = restored == null
- || restored.getQueries() == null
- || restored.getQueries().isEmpty();
-
- Set<String> updatedQueries = queryMaker.getQueries();
- boolean updatedQueriesEmpty = updatedQueries == null
- || updatedQueries.isEmpty();
-
- if (restoredQueriesEmpty && updatedQueriesEmpty) {
- if (log.isDebugEnabled()) {
- log.debug("Restored query and updated query are empty");
- }
- return;
- }
- }
-
- String extName;
- if (queryMaker instanceof Client) {
- extName = Client.EXT_CLIENT;
-
- } else if (queryMaker instanceof User) {
- extName = User.EXT_USER;
-
- } else if (queryMaker instanceof Group) {
- extName = Group.EXT_GROUP;
-
- } else {
- if (log.isDebugEnabled()) {
- log.debug("Extention not found, stopping archiving queries");
- }
- return;
- }
-
File queryHistoryDir = VradiServiceConfigurationHelper.getQueryHistoryDir(config);
File feedFile = new File(queryHistoryDir, wikittyId + ".rss");
@@ -373,7 +330,7 @@
} else {
feedFile.getParentFile().mkdirs();
feedFile.createNewFile();
- Object queryMakerName = queryMaker.getField(extName, "name");
+ String queryMakerName = group.getName();
// creates new feed
feed = new SyndFeedImpl();
@@ -389,19 +346,19 @@
SyndEntry entry = new SyndEntryImpl();
entry.setPublishedDate(new Date());
- if (queryMaker.getExtensionNames().contains(ModificationTag.EXT_MODIFICATIONTAG)) {
- entry.setAuthor((String) queryMaker.getField(
+ if (group.getExtensionNames().contains(ModificationTag.EXT_MODIFICATIONTAG)) {
+ entry.setAuthor((String) group.getField(
ModificationTag.EXT_MODIFICATIONTAG,
ModificationTag.FIELD_MODIFICATIONTAG_LASTMODIFIER));
}
// add queries
StringBuffer sb = new StringBuffer("<ul>");
- Set<String> queries = queryMaker.getQueries();
+ Set<String> queries = group.getQueries();
if (queries != null) {
for (String query : queries) {
try {
- QueryBean queryBean = new QueryBean(query);
+ QueryBean queryBean = new QueryBean(wikittyProxy, query);
sb.append("<li>")
.append("<name><![CDATA[").append(queryBean.getName()).append("]]</name>")
.append("<description><![CDATA[").append(queryBean.getDescription()).append("]]</description>")
@@ -458,4 +415,137 @@
return filePath;
}
+ public boolean checkRequestIsActive(VradiUser vradiUser, String queryName) {
+
+ Group group = getGroupCorresponding(vradiUser);
+ Query query = getQueryIfExist(group, queryName);
+ return query != null;
+ }
+
+ public boolean switchUserQueryActivation(VradiUser vradiUser, String queryName, String queryContent) {
+ Group group = getGroupCorresponding(vradiUser);
+ Query query = getQueryIfExist(group, queryName);
+ if (query != null) {
+
+ // Desable request
+ group.removeQueries(query.getWikittyId());
+ wikittyProxy.store(group);
+
+ if (log.isDebugEnabled()) {
+ log.debug("Desable request '" + query + "' for user " + vradiUser.getLogin());
+ }
+ return false;
+ } else {
+
+ // Enable request
+ group = createRealUserIfDontExist(vradiUser);
+
+ // Creating query
+ query = new QueryImpl();
+ query.setName(queryName);
+ query.setContent(queryContent);
+ query = wikittyProxy.store(query);
+
+ group.addQueries(query.getWikittyId());
+ if (log.isDebugEnabled()) {
+ log.debug("Enabled request '" + query + "' for user " + vradiUser.getLogin());
+ }
+ wikittyProxy.store(group);
+ return true;
+ }
+ }
+
+ protected Group createRealUserIfDontExist(VradiUser vradiUser) {
+ String login = vradiUser.getLogin();
+ Criteria criteria = Search.query().eq(Group.FQ_FIELD_GROUP_NAME, login).criteria();
+
+ // Must be unique
+ Group group = wikittyProxy.findByCriteria(Group.class, criteria);
+
+ if (group != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Group '" + login + "' exist");
+ }
+ return group;
+ }
+
+ // Creating group user and client
+ Date creationDate = new Date();
+
+ List<BusinessEntity> toStore = new ArrayList<BusinessEntity>();
+
+ // Extract ...@(...) to make a client
+ int i = login.indexOf('@');
+ String clientName = login.substring(i + 1, login.length());
+
+ // Search if client with same name exist
+ criteria = Search.query().eq(Client.FQ_FIELD_CLIENT_NAME, clientName).criteria();
+ Client client = wikittyProxy.findByCriteria(Client.class, criteria);
+
+ // Creating one if not found
+ if (client == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Creating client '" + clientName + "'");
+ }
+ client = new ClientImpl();
+ client.setName(clientName);
+ client.setCreationDate(creationDate);
+ toStore.add(client);
+ }
+
+ // Creating user corresponding to email
+ // email = vradiUser.login = user.name = group.name
+ User user = new UserImpl();
+ user.setName(login);
+ user.setEmail(login);
+ user.setClient(client.getWikittyId());
+ user.setCreationDate(creationDate);
+ user.setBeginSearchDate(creationDate);
+ user.setEnable(true);
+ toStore.add(user);
+
+ // Store
+ wikittyProxy.store(toStore);
+
+ // Creating group
+ group = new GroupImpl();
+ group.setName(login);
+ group.addUser(user.getWikittyId());
+
+ if (log.isDebugEnabled()) {
+ log.debug("Creating group and user '" + login + "'");
+ }
+
+ // Dont save, will be save after
+ return group;
+ }
+
+ protected Query getQueryIfExist(Group group, String queryName) {
+
+ if (group == null || queryName == null) {
+ return null;
+ }
+
+ Set<String> queriesIds = group.getQueries();
+ if (queriesIds != null) {
+ Set<Query> queries = wikittyProxy.restore(Query.class, queriesIds);
+ for (Query query : queries) {
+ if (query.getName().equalsIgnoreCase(queryName)) {
+ return query;
+ }
+ }
+ }
+
+ return null;
+ }
+
+ protected Group getGroupCorresponding(VradiUser user) {
+
+ Criteria criteria = Search.query().eq(Group.FQ_FIELD_GROUP_NAME, user.getLogin()).criteria();
+
+ // Must be unique
+ Group group = wikittyProxy.findByCriteria(Group.class, criteria);
+
+ return group;
+ }
}
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/FormManager.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -484,13 +484,13 @@
// normalement c'est pas null, sinon la requette findGroupsWithQueries
// marche pas
- Set<String> queries = group.getQueries();
+ Set<String> queriesIds = group.getQueries();
- for (String queryEntry : queries) {
+ for (String queryId : queriesIds) {
try {
// Get query
- QueryBean queryBean = new QueryBean(queryEntry);
+ QueryBean queryBean = new QueryBean(wikittyProxy, queryId);
String query = queryBean.getQuery();
// Create filter
@@ -526,9 +526,6 @@
}
formsIdsToBind.addAll(resultFormsIds);
- } catch (IOException eee) {
- throw new VradiException("Can't parse group query", eee);
-
} catch (UnsupportedQueryException eee) {
throw new VradiException("Can't execute group query", eee);
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-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/SearchManager.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -33,7 +33,6 @@
import org.chorem.vradi.entities.Group;
import org.chorem.vradi.entities.Infogene;
import org.chorem.vradi.entities.ModificationTag;
-import org.chorem.vradi.entities.QueryMaker;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.Status;
import org.chorem.vradi.entities.Thesaurus;
@@ -253,14 +252,14 @@
Map<Group, List<QueryBean>> results = new HashMap<Group, List<QueryBean>>();
for (Group group : groups) {
- Set<String> queries = group.getQueries();
+ Set<String> queriesIds = group.getQueries();
- for (String query : queries) {
+ for (String queryId : queriesIds) {
if (log.isDebugEnabled()) {
- log.debug("Searching with query : " + query);
+ log.debug("Searching with queryId : " + queryId);
}
try {
- QueryBean bean = new QueryBean(query, group.getWikittyId());
+ QueryBean bean = new QueryBean(wikittyProxy, queryId, group.getWikittyId());
String realQuery = bean.getQuery();
FilterList filter = VradiQueryParser.parse(realQuery);
@@ -305,7 +304,7 @@
*/
public List<Group> findGroupsWithQueries() {
// find QueryMaker which do have queries defined
- Criteria criteria = Search.query().bw(QueryMaker.FQ_FIELD_QUERYMAKER_QUERIES, "*", "*").criteria();
+ Criteria criteria = Search.query().isNotNull(Group.FQ_FIELD_GROUP_QUERIES).criteria();
PagedResult<Group> pagedResult = wikittyProxy.findAllByCriteria(Group.class, criteria);
List<Group> all = pagedResult.getAll();
return all;
Modified: trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java
===================================================================
--- trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/main/java/org/chorem/vradi/services/managers/ThesaurusManager.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -29,6 +29,7 @@
import org.chorem.vradi.beans.QueryBean;
import org.chorem.vradi.entities.Form;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Query;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.RootThesaurusImpl;
import org.chorem.vradi.entities.Thesaurus;
@@ -36,6 +37,7 @@
import org.chorem.vradi.services.search.CompareFilter;
import org.chorem.vradi.services.search.Filter;
import org.chorem.vradi.services.search.FilterList;
+import org.chorem.vradi.services.search.UnsupportedQueryException;
import org.chorem.vradi.services.search.VradiQueryParser;
import org.nuiton.wikitty.WikittyProxy;
import org.nuiton.wikitty.entities.Wikitty;
@@ -299,12 +301,12 @@
* @return a map containing the query makers and their queries which contains
* the thesaurus node name
*/
- public Map<Group, List<QueryBean>> getQueriesToModifyAfterThesaurusModification(
+ public Map<Group, List<Query>> getQueriesToModifyAfterThesaurusModification(
String rootThesaurusName, String thesaurusName) {
if (log.isDebugEnabled()) {
log.debug("getQueriesToModifyAfterThesaurusModification(" + rootThesaurusName + ", " + thesaurusName + ")");
}
- Map<Group, List<QueryBean>> results = new HashMap<Group, List<QueryBean>>();
+ Map<Group, List<Query>> results = new HashMap<Group, List<Query>>();
if (rootThesaurusName == null) {
return results;
@@ -312,36 +314,39 @@
String requestPart = rootThesaurusName + ":" + (thesaurusName == null ? "" : thesaurusName);
Criteria criteria = Search.query()
- .eq(Element.ELT_EXTENSION, Group.EXT_GROUP)
- .like(Group.FQ_FIELD_QUERYMAKER_QUERIES, requestPart, Like.SearchAs.AsText)
+ .eq(Element.ELT_EXTENSION, Query.EXT_QUERY)
+ .like(Query.FQ_FIELD_QUERY_CONTENT, requestPart, Like.SearchAs.AsText)
.criteria();
- PagedResult<Group> pagedResult = wikittyProxy.findAllByCriteria(Group.class, criteria);
- List<Group> groups = pagedResult.getAll();
+ PagedResult<Query> pagedResult = wikittyProxy.findAllByCriteria(Query.class, criteria);
+ List<Query> queries = pagedResult.getAll();
if (log.isDebugEnabled()) {
- log.debug("[getQueriesToModifyAfterThesaurusModification] " + groups.size() +
- "Groups found for request part requestPart : " + requestPart);
+ log.debug("[getQueriesToModifyAfterThesaurusModification] " + queries.size() +
+ "Queries found for request part requestPart : " + requestPart);
}
- for (Group group : groups) {
+ for (Query query : queries) {
- Set<String> queries = group.getQueries();
- List<QueryBean> queriesToModify = new ArrayList<QueryBean>();
+ criteria = Search.query().contains(Group.FQ_FIELD_GROUP_QUERIES, query.getWikittyId()).criteria();
+ Group group = wikittyProxy.findByCriteria(Group.class, criteria);
- for (String query : queries) {
- try {
- QueryBean queryBean = new QueryBean(query, group.getWikittyId());
- FilterList filter = VradiQueryParser.parse(queryBean.getQuery());
+ // Init list in maps
+ List<Query> queriesToModify = results.get(group);
+ if (queriesToModify == null) {
+ queriesToModify = new ArrayList<Query>();
+ }
- if (isThesaurusInQuery(filter, rootThesaurusName, thesaurusName)) {
- queriesToModify.add(queryBean);
- }
+ FilterList filter = null;
+ String content = query.getContent();
+ try {
+ filter = VradiQueryParser.parse(content);
+ } catch (UnsupportedQueryException eee) {
+ log.error("Failled to parse query" + content, eee);
+ }
- } catch (Exception e) {
- // ignored exception
- log.warn(e.getMessage(), e);
- }
+ if (isThesaurusInQuery(filter, rootThesaurusName, thesaurusName)) {
+ queriesToModify.add(query);
}
if (!queriesToModify.isEmpty()) {
Modified: trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java
===================================================================
--- trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/test/java/org/chorem/vradi/services/VradiStorageServiceTest.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -46,7 +46,8 @@
import org.chorem.vradi.entities.Infogene;
import org.chorem.vradi.entities.ModificationTag;
import org.chorem.vradi.entities.ModificationTagImpl;
-import org.chorem.vradi.entities.QueryMakerImpl;
+import org.chorem.vradi.entities.Query;
+import org.chorem.vradi.entities.QueryImpl;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.RootThesaurusImpl;
import org.chorem.vradi.entities.Sending;
@@ -59,7 +60,6 @@
import org.chorem.vradi.entities.UserImpl;
import org.chorem.vradi.entities.XmlFieldBinding;
import org.chorem.vradi.entities.XmlStream;
-import org.chorem.vradi.services.managers.FormTypeManager;
import org.chorem.vradi.services.managers.MailingManager;
import org.junit.Assert;
import org.junit.Ignore;
@@ -595,7 +595,7 @@
wikittyProxy.storeExtension(ClientImpl.extensionClient);
wikittyProxy.storeExtension(UserImpl.extensionUser);
wikittyProxy.storeExtension(ModificationTagImpl.extensionModificationTag);
- wikittyProxy.storeExtension(QueryMakerImpl.extensionQueryMaker);
+ wikittyProxy.storeExtension(QueryImpl.extensionQuery);
// Import clients
URL importURL = VradiStorageServiceTest.class.getResource("/csv/clients.csv");
@@ -1508,14 +1508,18 @@
Group group = new GroupImpl();
group.setName("Groupe de test");
- QueryBean bean = new QueryBean("titi,tata,ALONZEAU");
+ Query query = new QueryImpl();
+ query.setContent("titi");
+ query.setName("tata");
+ query.setDescription("ALONZEAU");
- group.addQueries(bean.getCSVQuery());
+ query = wikittyProxy.store(query);
+ group.addQueries(query.getWikittyId());
+
storageService.archiveQueries(group);
//String url = fileService.getRequestHistoryURL(group.getWikittyId() + ".rss");
-
File history = fileService.downloadRequestHistory(group.getWikittyId() + ".rss");
Assert.assertTrue(history.exists());
@@ -1570,8 +1574,15 @@
// Create a group with query
Group testGroup = new GroupImpl();
testGroup.setName("Zahia fans");
- QueryBean bean = new QueryBean("ALONZEAU,tata,titi");
- testGroup.addQueries(bean.getCSVQuery());
+
+ Query query = new QueryImpl();
+ query.setContent("ALONZEAU");
+ query.setName("tata");
+ query.setDescription("titi");
+
+ query = wikittyProxy.store(query);
+
+ testGroup.addQueries(query.getWikittyId());
testGroup.addUser(testUser.getWikittyId());
wikittyProxy.store(testGroup);
@@ -1687,8 +1698,16 @@
// Create a group with query
Group testGroup = new GroupImpl();
testGroup.setName("Zahia fans");
- QueryBean bean = new QueryBean("ALONZEAU,tata,titi");
- testGroup.addQueries(bean.getCSVQuery());
+
+ Query query = new QueryImpl();
+ query.setContent("ALONZEAU");
+ query.setName("tata");
+ query.setDescription("titi");
+
+ query = wikittyProxy.store(query);
+
+ testGroup.addQueries(query.getWikittyId());
+
testGroup.addUser(testUser.getWikittyId());
wikittyProxy.store(testGroup);
@@ -1762,8 +1781,15 @@
// Create a group with query
Group testGroup = new GroupImpl();
testGroup.setName("Zahia fans");
- QueryBean bean = new QueryBean("ALONZEAU,tata,titi");
- testGroup.addQueries(bean.getCSVQuery());
+
+ Query query = new QueryImpl();
+ query.setContent("ALONZEAU");
+ query.setName("tata");
+ query.setDescription("titi");
+
+ query = wikittyProxy.store(query);
+
+ testGroup.addQueries(query.getWikittyId());
testGroup.addUser(testUser.getWikittyId());
wikittyProxy.store(testGroup);
@@ -1844,8 +1870,15 @@
// Create a group with query
Group testGroup = new GroupImpl();
testGroup.setName("Zahia fans");
- QueryBean bean = new QueryBean("ALONZEAU,tata,titi");
- testGroup.addQueries(bean.getCSVQuery());
+
+ Query query = new QueryImpl();
+ query.setContent("ALONZEAU");
+ query.setName("tata");
+ query.setDescription("titi");
+
+ query = wikittyProxy.store(query);
+
+ testGroup.addQueries(query.getWikittyId());
testGroup.addUser(testUser.getWikittyId());
wikittyProxy.store(testGroup);
@@ -1921,9 +1954,16 @@
//Create the group
Group group = new GroupImpl();
- QueryBean bean = new QueryBean("*,*,*");
- group.addQueries(bean.getCSVQuery());
+ Query query = new QueryImpl();
+ query.setContent("*");
+ query.setName("*");
+ query.setDescription("*");
+
+ query = wikittyProxy.store(query);
+
+ group.addQueries(query.getWikittyId());
+
//Create the users
Date now = new Date();
Date beginSearchDate = DateUtils.addDays(now, -10);
Modified: trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/SearchManagerTest.java
===================================================================
--- trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/SearchManagerTest.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services/src/test/java/org/chorem/vradi/services/managers/SearchManagerTest.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -27,6 +27,8 @@
import org.chorem.vradi.VradiTestAbstract;
import org.chorem.vradi.entities.Group;
import org.chorem.vradi.entities.GroupImpl;
+import org.chorem.vradi.entities.Query;
+import org.chorem.vradi.entities.QueryImpl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -59,15 +61,22 @@
Group groupCodeLutin = new GroupImpl();
groupCodeLutin.setName("codelutin");
- groupCodeLutin.addQueries("queryname, querydescription, queryquery");
- groupCodeLutin.addQueries("queryname2, querydescription2, queryquery2");
+ Query query = new QueryImpl();
+ query.setContent("query");
+ query.setName("name");
+ query.setDescription("desc");
+
+ query = wikittyProxy.store(query);
+
+ groupCodeLutin.addQueries(query.getWikittyId());
+
Group groupSun = new GroupImpl();
groupSun.setName("sun");
Group groupFFF = new GroupImpl();
groupSun.setName("equipe de france");
- groupSun.addQueries("footname1, footdescription1, footquery2");
+ groupSun.addQueries(query.getWikittyId());
List<Group> groups = new ArrayList<Group>();
groups.add(groupCodeLutin);
Added: trunk/vradi-services-web/src/main/resources/vradi-services.properties
===================================================================
--- trunk/vradi-services-web/src/main/resources/vradi-services.properties (rev 0)
+++ trunk/vradi-services-web/src/main/resources/vradi-services.properties 2011-05-30 17:11:34 UTC (rev 76)
@@ -0,0 +1,73 @@
+###
+# #%L
+# Vradi :: Services
+#
+# $Id: vradi-services.properties 21 2011-05-09 16:43:58Z sletellier $
+# $HeadURL: http://svn.chorem.org/svn/vradi/trunk/vradi-services-web/src/test/resources… $
+# %%
+# Copyright (C) 2009 - 2010 Codelutin
+# %%
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+# #L%
+###
+application.name=${project.name}
+application.version=${project.version}
+vradi.service.version=${project.version}
+
+vradi.objectStore.dir=${vradi.data.dir}/objectStore
+vradi.data.dir=target/vradi
+vradi.temp.dir=target/vradi/tmp
+vradi.queryHistory.dir=target/vradi/queryHistory
+vradi.embeddedFiles.dir=target/vradi/embeddedFiles
+vradi.templates.dir=target/vradi/templates
+vradi.pdf.dir=target/vradi/pdf
+solr.data.dir=${wikitty.searchengine.solr.directory.data}
+
+wikitty.data.directory=${vradi.data.dir}/wikitty
+oOo.exec.folder=/usr/bin
+
+wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
+wikitty.storage.jdbc.driver=org.h2.Driver
+wikitty.storage.jdbc.host=jdbc:h2:file:${wikitty.data.directory}/data/db
+wikitty.storage.jdbc.login=sa
+wikitty.storage.jdbc.password=
+wikitty.storage.jdbc.xadatasource=org.h2.jdbcx.JdbcDataSource
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.URL=${wikitty.storage.jdbc.host}
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.user=${wikitty.storage.jdbc.login}
+wikitty.storage.jdbc.xadatasource.org.h2.jdbcx.JdbcDataSource.password=${wikitty.storage.jdbc.password}
+wikitty.searchengine.solr.directory.data=${wikitty.data.directory}/solr
+wikitty.searchengine.solr.directory.factory=solr.StandardDirectoryFactory
+wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\
+org.nuiton.wikitty.services.WikittyServiceNotifier,\
+org.nuiton.wikitty.services.WikittyServiceCached,\
+org.nuiton.wikitty.services.WikittyServiceSecurity
+wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
+org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
+org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
+wikitty.transaction.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceInMemory
+wikitty.service.cache.allwaysRestoreCopies=false
+wikitty.service.event.propagate=true
+wikitty.service.event.listen=false
+wikitty.service.event.propagate.transporter=org.nuiton.wikitty.services.XMPPNotifierTransporter
+wikitty.service.event.transporter.xmpp.server=im.codelutin.com
+wikitty.service.event.transporter.xmpp.room=slave(a)conference.im.codelutin.com
+wikitty.service.slave.async.store=false
+wikitty.service.slave.master.xmpp.server=im.codelutin.com
+wikitty.service.slave.master.xmpp.room=test(a)conference.im.codelutin.com
+wikitty.addon.export.threadnumber=1
+wikitty.WikittyServiceCached.components=org.nuiton.wikitty.services.WikittyCacheJCS
+#wikitty.service.cache.priority.extensions=Thesaurus
+jcs.default=
+jcs.default.cacheattributes.MaxObjects=10000
+#jcs.priority.cacheattributes.MaxObjects=10000
Modified: trunk/vradi-services-web/src/test/resources/vradi-services.properties
===================================================================
--- trunk/vradi-services-web/src/test/resources/vradi-services.properties 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-services-web/src/test/resources/vradi-services.properties 2011-05-30 17:11:34 UTC (rev 76)
@@ -1,7 +1,7 @@
###
# #%L
# Vradi :: Services
-#
+#
# $Id$
# $HeadURL$
# %%
@@ -11,12 +11,12 @@
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
-#
+#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
-#
+#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# #L%
@@ -37,6 +37,10 @@
wikitty.data.directory=${vradi.data.dir}/wikitty
oOo.exec.folder=/usr/bin
+vradi.remote.service.port=9000
+vradi.remote.servlet.port=9000
+vradi.remote.endpoint=http\://localhost\:9000
+
wikitty.storage.jdbc.queryfile=wikitty-jdbc-query.properties
wikitty.storage.jdbc.driver=org.h2.Driver
wikitty.storage.jdbc.host=jdbc:h2:file:${wikitty.data.directory}/data/db
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/AdminHandler.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -44,6 +44,7 @@
import org.chorem.vradi.entities.Group;
import org.chorem.vradi.entities.Infogene;
import org.chorem.vradi.entities.ModificationTag;
+import org.chorem.vradi.entities.Query;
import org.chorem.vradi.entities.Status;
import org.chorem.vradi.entities.Thesaurus;
import org.chorem.vradi.entities.User;
@@ -727,18 +728,20 @@
// Creating request bean
String request = ThesaurusDataHelper.getRequestName(thesaurus);
- QueryBean requestBean = null;
- try {
- // FIXME EC20100930 a voir pourquoi il faut la quoter pour opencsv
- requestBean = new QueryBean("\"" + request + "\"");
- } catch (IOException eee) {
- log.error("Cant parse query : " + request, eee);
- }
+ QueryBean requestBean = new QueryBean();
+ requestBean.setQuery(request);
+
// Open request ui
openRequest(rootContext, requestBean, thesaurus, true);
}
+ public void openRequest(JAXXContext rootContext, Query query) {
+ QueryBean queryBean = new QueryBean();
+ queryBean.fromQuery(query);
+ openRequest(rootContext, queryBean);
+ }
+
public void openRequest(JAXXContext rootContext, QueryBean request) {
openRequest(rootContext, request, null, false);
}
@@ -764,8 +767,9 @@
public void propertyChange(PropertyChangeEvent evt) {
String newValue = (String) evt.getNewValue();
RequestSelectUI ui = (RequestSelectUI) rootContext;
- QueryBean bean = ui.getBean();
- ui.setBean(bean.setQuery(newValue));
+ Query bean = ui.getBean();
+ bean.setContent(newValue);
+ ui.setBean(bean);
}
});
}
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminGroupUI.jaxx
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminGroupUI.jaxx 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminGroupUI.jaxx 2011-05-30 17:11:34 UTC (rev 76)
@@ -27,6 +27,8 @@
<style source='../../VradiMainUI.css'/>
<import>
+ java.awt.Component
+ org.chorem.vradi.ui.admin.AdminHandler
java.beans.PropertyChangeListener
java.beans.PropertyChangeEvent
java.text.DateFormat
@@ -50,6 +52,8 @@
org.chorem.vradi.ui.renderers.EntityRenderer
org.chorem.vradi.ui.helpers.VradiComparators
org.chorem.vradi.ui.admin.widget.UserListSelectorHandler
+ org.chorem.vradi.entities.Query
+ org.chorem.vradi.entities.QueryImpl
</import>
<!-- validators -->
@@ -66,6 +70,16 @@
<script><![CDATA[
+protected List<RequestSelectUI> queriesSelect = new ArrayList<RequestSelectUI>();
+
+public List<Query> getQueries() {
+ List<Query> queries = new ArrayList<Query>();
+ for (RequestSelectUI querySelect : queriesSelect) {
+ queries.add(querySelect.getBean());
+ }
+ return queries;
+}
+
void $afterCompleteSetup() {
AutoCompleteDecorator.decorate(groupUsers.getCombo(), EntityRenderer.getInstance());
@@ -94,16 +108,12 @@
createButton.setEnabled(!isInCreation());
- requestListUI.setBean(bean);
groupUserHandler.setBean(bean);
if (bean == null) {
// Clear all user
groupUsers.init(Collections.EMPTY_LIST, Collections.EMPTY_LIST);
- // Clear all requests
- requestListUI.init();
-
return;
}
@@ -123,8 +133,17 @@
groupUsers.init(toUserCombo, toUserList);
- requestListUI.setBean(bean);
- requestListUI.init();
+ content.setVisible(false);
+ content.removeAll();
+ queriesSelect.clear();
+ content.setAlignmentY(TOP_ALIGNMENT);
+
+ if (bean != null && bean.getQueries() != null) {
+ for (String query : bean.getQueries()) {
+ createRequest(query);
+ }
+ }
+ content.setVisible(true);
groupUserHandler.setBean(bean);
}
@@ -132,16 +151,15 @@
public void save() {
setModified(false);
+ // Store queries
+ VradiService.getWikittyProxy().store(getQueries());
+
//Use new list to avoid empty queries after clearing
- Group bean = requestListUI.getBean();
- java.util.List<String> queries = null;
- if (bean.getQueries()!=null){
- queries = new java.util.ArrayList<String>(requestListUI.getBean().getQueries());
- }
+ Set<String> queries = getBean().getQueries();
//Store queries
bean.clearQueries();
- if (queries!=null){
+ if (queries != null){
for (String query : queries) {
bean.addQueries(query);
}
@@ -178,6 +196,41 @@
return _("vradi.adminGroup.title", getStringValue(name));
}
+protected void createRequest(final String queryId) {
+ RequestSelectUI requestUI = new RequestSelectUI(this);
+ queriesSelect.add(requestUI);
+ requestUI.setAlignmentY(TOP_ALIGNMENT);
+
+ if (log.isDebugEnabled()){
+ log.debug("Open query " + queryId);
+ }
+
+ Query query;
+ if (queryId == null) {
+ query = new QueryImpl();
+ } else {
+ query = VradiService.getWikittyProxy().restore(Query.class, queryId);
+ }
+ getBean().addQueries(query.getWikittyId());
+ requestUI.setBean(query);
+
+ query.addPropertyChangeListener(new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ setModified(true);
+ }
+ });
+ requestUI.setAlignmentY(Component.TOP_ALIGNMENT);
+ content.add(requestUI);
+ validate();
+}
+
+
+protected void showHistory() {
+ AdminHandler handler = getContextValue(AdminHandler.class);
+ handler.showHistory(bean.getWikittyId());
+}
]]>
</script>
@@ -232,8 +285,31 @@
</row>
<row>
<cell columns='2' fill='both' weightx='1' weighty='3'>
- <RequestListUI id='requestListUI' constructorParams='this'
- bean='{getBean()}'/>
+ <JPanel layout='{new GridLayout(0,1)}'>
+ <Table id="header" insets='0'>
+ <row>
+ <cell fill='horizontal' weightx='1' anchor="west">
+ <JLabel text='vradi.adminRequest.title'/>
+ </cell>
+ <cell anchor='east'>
+ <JButton text='vradi.adminRequest.history.show'
+ actionIcon="history"
+ enabled='{isEnabled()}'
+ onActionPerformed='showHistory()'/>
+ </cell>
+ <cell anchor='east'>
+ <JButton text='vradi.adminRequest.new'
+ enabled='{isEnabled()}'
+ onActionPerformed='createRequest(null)'/>
+ </cell>
+ </row>
+ </Table>
+
+ <JScrollPane id='contentScroll' constraints='BorderLayout.CENTER'
+ columnHeaderView='{header}'>
+ <JPanel id='content' layout='{new BoxLayout(content, BoxLayout.Y_AXIS)}'/>
+ </JScrollPane>
+ </JPanel>
</cell>
</row>
</Table>
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminThesaurusHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminThesaurusHandler.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/AdminThesaurusHandler.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -32,6 +32,7 @@
import org.chorem.vradi.VradiHelper;
import org.chorem.vradi.beans.QueryBean;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Query;
import org.chorem.vradi.entities.RootThesaurus;
import org.chorem.vradi.entities.Thesaurus;
import org.chorem.vradi.entities.ThesaurusImpl;
@@ -668,7 +669,7 @@
String thesaurusBefore,
String thesaurusAfter) {
- Map<Group, List<QueryBean>> queryMakers = VradiService
+ Map<Group, List<Query>> queryMakers = VradiService
.getVradiDataService()
.getQueriesToModifyAfterThesaurusModification(rootThesaurusBefore, thesaurusBefore);
@@ -702,10 +703,10 @@
// retrieve updated groups
ThesaurusChangesTreeTableModel model = thesaurusChangesUI
.getContextValue(ThesaurusChangesTreeTableModel.class);
- List<Group> updatedQueryMakers = model.getUpdatedQueryMakers();
+ List<Query> updatedQueries = model.getUpdatedQueryMakers();
// save updated groups
- VradiService.getWikittyProxy().store(updatedQueryMakers);
+ VradiService.getWikittyProxy().store(updatedQueries);
if (log.isDebugEnabled()) {
log.debug("[ModifyQueries] Store modifications");
Deleted: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestListUI.jaxx
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestListUI.jaxx 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestListUI.jaxx 2011-05-30 17:11:34 UTC (rev 76)
@@ -1,135 +0,0 @@
-<!--
- #%L
- Vradi :: Swing
-
- $Id$
- $HeadURL$
- %%
- Copyright (C) 2009 - 2010 Codelutin
- %%
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
- #L%
- -->
-<JPanel layout='{new GridLayout(0,1)}'>
-
- <style source='../../VradiMainUI.css'/>
-
- <import>
- java.awt.Component
- java.beans.PropertyChangeListener
- java.beans.PropertyChangeEvent
- java.io.IOException
- javax.swing.BoxLayout
-
- org.chorem.vradi.entities.Group
- org.chorem.vradi.beans.QueryBean
- org.chorem.vradi.ui.admin.AdminHandler
- </import>
-
- <!-- bean property -->
- <Group id='bean' javaBean='null'/>
-
- <script><![CDATA[
-
-public void init() {
- content.setVisible(false);
- content.removeAll();
- content.setAlignmentY(TOP_ALIGNMENT);
-
- if (bean != null && bean.getQueries() != null) {
- for (String query : bean.getQueries()) {
- createRequest(query);
- }
- }
- content.setVisible(true);
-}
-
-protected void createRequest(final String query) {
- RequestSelectUI requestUI = new RequestSelectUI(RequestListUI.this);
- requestUI.setAlignmentY(TOP_ALIGNMENT);
-
- if (log.isDebugEnabled()){
- log.debug("Open query " + query);
- }
-
- try {
- requestUI.setBean(new QueryBean(query));
- } catch (IOException e) {
- log.error(e.getMessage(), e);
- return;
- }
-
- requestUI.addPropertyChangeListener(PROPERTY_BEAN, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- RequestSelectUI query = (RequestSelectUI) evt.getSource();
-
- QueryBean oldValue = (QueryBean) evt.getOldValue();
- QueryBean newValue = (QueryBean) evt.getNewValue();
-
- if (log.isDebugEnabled()
- && oldValue != null
- && newValue != null) {
- log.debug("Update query from '" + oldValue.getQueryLine() + "' to '" + newValue.getQueryLine() + "'");
- }
-
- bean.removeQueries(oldValue.getQueryLine());
-
- if (newValue == null) {
- // this means remove
- content.setVisible(false);
- content.remove(query);
- content.setVisible(true);
- } else {
- // this means update
- bean.addQueries(newValue.getQueryLine());
- }
- }
- });
- requestUI.setAlignmentY(Component.TOP_ALIGNMENT);
- content.add(requestUI);
- validate();
-}
-
-protected void showHistory() {
- AdminHandler handler = getContextValue(AdminHandler.class);
- handler.showHistory(bean.getWikittyId());
-}
-
-]]></script>
- <Table id="header" insets='0'>
- <row>
- <cell fill='horizontal' weightx='1' anchor="west">
- <JLabel text='vradi.adminRequest.title'/>
- </cell>
- <cell anchor='east'>
- <JButton text='vradi.adminRequest.history.show'
- actionIcon="history"
- enabled='{isEnabled()}'
- onActionPerformed='showHistory()'/>
- </cell>
- <cell anchor='east'>
- <JButton text='vradi.adminRequest.new'
- enabled='{isEnabled()}'
- onActionPerformed='createRequest("")'/>
- </cell>
- </row>
- </Table>
-
- <JScrollPane id='contentScroll' constraints='BorderLayout.CENTER'
- columnHeaderView='{header}'>
- <JPanel id='content' layout='{new BoxLayout(content, BoxLayout.Y_AXIS)}'/>
- </JScrollPane>
-
-</JPanel>
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestSelectUI.jaxx
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestSelectUI.jaxx 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/content/RequestSelectUI.jaxx 2011-05-30 17:11:34 UTC (rev 76)
@@ -32,8 +32,7 @@
</import>
<!-- bean property -->
- <org.chorem.vradi.beans.QueryBean id='bean'
- javaBean='new org.chorem.vradi.beans.QueryBean()'/>
+ <org.chorem.vradi.entities.Query id='bean' javaBean='null'/>
<script><![CDATA[
@@ -41,10 +40,10 @@
return getContextValue(AdminHandler.class);
}
public void confirmDeletion() {
- org.chorem.vradi.beans.QueryBean queryBean = getBean();
+ Query queryBean = getBean();
if (StringUtils.isBlank(queryBean.getName())
&& StringUtils.isBlank(queryBean.getDescription())
- && StringUtils.isBlank(queryBean.getQuery())) {
+ && StringUtils.isBlank(queryBean.getContent())) {
setBean(null);
} else {
@@ -71,21 +70,21 @@
<row fill='both' anchor='north'>
<cell fill='horizontal' weightx='0.3' weighty='0' anchor='north'>
<JTextField id='queryName' text='{getBean().getName()}'
- onKeyReleased='setBean(getBean().setName(queryName.getText()))'
- toolTipText='{getBean().getQuery()}'/>
+ onKeyReleased='getBean().setName(queryName.getText())'
+ toolTipText='{getBean().getContent()}'/>
</cell>
<cell fill='horizontal' weightx='0.5' weighty='0' anchor='north'>
<JScrollPane>
<JTextArea id='queryDescription' text='{getBean().getDescription()}'
rows='2'
- onKeyReleased='setBean(getBean().setDescription(queryDescription.getText()))'
- toolTipText='{getBean().getQuery()}'/>
+ onKeyReleased='getBean().setDescription(queryDescription.getText())'
+ toolTipText='{getBean().getContent()}'/>
</JScrollPane>
</cell>
<cell fill='horizontal' weightx='0.1' weighty='0' anchor='north'>
<JButton text='vradi.adminRequest.edit'
onActionPerformed='getHandler().openRequest(this, getBean())'
- toolTipText='{getBean().getQuery()}'/>
+ toolTipText='{getBean().getContent()}'/>
</cell>
<cell fill='horizontal' weightx='0.1' weighty='0' anchor='north'>
<JButton actionIcon='delete'
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/popups/ThesaurusQueryChangesHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/popups/ThesaurusQueryChangesHandler.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/popups/ThesaurusQueryChangesHandler.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -27,6 +27,7 @@
import jaxx.runtime.context.JAXXInitialContext;
import org.chorem.vradi.beans.QueryBean;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Query;
import org.chorem.vradi.ui.admin.query.QueryCellEditor;
import org.chorem.vradi.ui.admin.query.QueryCheckCellRenderer;
import org.chorem.vradi.ui.admin.query.ThesaurusChangesTreeTableModel;
@@ -59,7 +60,7 @@
public static final String THESAURUS_AFTER_MODIF = "thesaurusAfterModif";
- public ThesaurusQueryChangesUI initUI(JAXXContext rootContext, Map<Group, List<QueryBean>> queries,
+ public ThesaurusQueryChangesUI initUI(JAXXContext rootContext, Map<Group, List<Query>> queries,
String rootThesaurusBefore, String rootThesaurusAfter,
String thesaurusBefore, String thesaurusAfter) {
JAXXInitialContext context = new JAXXInitialContext().add(rootContext).add(this);
@@ -102,7 +103,7 @@
public TreeTableModel getResultTreeTableModel(ThesaurusQueryChangesUI context) {
ThesaurusChangesTreeTableModel treeTableModel = context.getContextValue(ThesaurusChangesTreeTableModel.class);
if (treeTableModel == null) {
- Map<Group, List<QueryBean>> queries = context.getContextValue(Map.class, QUERY);
+ Map<Group, List<Query>> queries = context.getContextValue(Map.class, QUERY);
String rootThesaurusBefore = context.getContextValue(String.class, ROOT_BEFORE_MODIF);
String rootThesaurusAfter = context.getContextValue(String.class, ROOT_AFTER_MODIF);
String thesaurusBefore = context.getContextValue(String.class, THESAURUS_BEFORE_MODIF);
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/QueryCellEditor.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/QueryCellEditor.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/QueryCellEditor.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -102,7 +102,7 @@
context.setContextValue(parentContext);
QueryBean query = new QueryBean();
- query = query.setQuery(currentQuery);
+ query.setQuery(currentQuery);
AdminHandler adminHandler = UIHelper.getHandler(context,
AdminHandler.class);
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/ThesaurusChangesTreeTableModel.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/ThesaurusChangesTreeTableModel.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/admin/query/ThesaurusChangesTreeTableModel.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -28,6 +28,7 @@
import org.apache.commons.logging.LogFactory;
import org.chorem.vradi.beans.QueryBean;
import org.chorem.vradi.entities.Group;
+import org.chorem.vradi.entities.Query;
import org.chorem.vradi.services.VradiService;
import org.chorem.vradi.services.VradiStorageService;
import org.chorem.vradi.ui.helpers.VradiComparators;
@@ -64,33 +65,40 @@
final HashMap<String, List<QueryBean>> queryBeanMap = new HashMap<String, List<QueryBean>>();
/** key:before, value:after */
- final HashMap<QueryBean, QueryBean> modifiedBeanMap = new HashMap<QueryBean, QueryBean>();
+ final List<QueryBean> modifiedBean = new ArrayList<QueryBean>();
/** queries validation state */
final HashMap<QueryBean, Boolean> queryBeanValidate = new HashMap<QueryBean, Boolean>();
- public ThesaurusChangesTreeTableModel(Map<Group, List<QueryBean>> queryMap, String rootThesaurusBefore,
+ public ThesaurusChangesTreeTableModel(Map<Group, List<Query>> queryMap, String rootThesaurusBefore,
String rootThesaurusAfter, String thesaurusBefore, String thesaurusAfter) {
super(1L);
HashMap<String, Group> groupMap = new HashMap<String, Group>();
- for (Map.Entry<Group, List<QueryBean>> entry : queryMap.entrySet()) {
+ for (Map.Entry<Group, List<Query>> entry : queryMap.entrySet()) {
// queryMaker
Group group = entry.getKey();
// original queries for queryMaker
- List<QueryBean> queries = entry.getValue();
+ List<Query> queries = entry.getValue();
+ List<QueryBean> queryBeans = new ArrayList<QueryBean>();
+ for (Query query : queries) {
+ QueryBean queryBean = new QueryBean();
+ queryBean.fromQuery(query);
+ queryBeans.add(queryBean);
+ }
+
String wikittyId = group.getWikittyId();
// index queries by wikittyId
- queryBeanMap.put(wikittyId, queries);
+ queryBeanMap.put(wikittyId, queryBeans);
// group
groupMap.put(wikittyId, group);
// index queries by original:modified
- for (QueryBean original : queries) {
+ for (QueryBean original : queryBeans) {
String query = original.getQuery();
// If root thesaurus modif
@@ -106,9 +114,9 @@
}
}
- QueryBean modified = original.setQuery(query);
+ original.setQuery(query);
- modifiedBeanMap.put(original, modified);
+ modifiedBean.add(original);
queryBeanValidate.put(original, Boolean.TRUE);
}
}
@@ -122,32 +130,13 @@
groupsMap.putAll(groupMap);
}
- public List<Group> getUpdatedQueryMakers() throws IOException {
- List<Group> list = new ArrayList<Group>();
+ public List<Query> getUpdatedQueryMakers() throws IOException {
- for (Group queryMaker : groupsMap.values()) {
- list.add(queryMaker);
- Set<String> queries = new HashSet<String>();
- Set<String> initialQueries = queryMaker.getQueries();
- if (initialQueries != null) {
- queries.addAll(initialQueries);
- }
- queryMaker.clearQueries();
-
- for (String query : queries) {
- QueryBean original = new QueryBean(query, queryMaker.getWikittyId());
-
- if (queryBeanValidate.containsKey(original) && queryBeanValidate.get(original)) {
- QueryBean modified = modifiedBeanMap.get(original);
- queryMaker.addQueries(modified.getQueryLine());
-
- } else {
- queryMaker.addQueries(query);
- }
- }
-
+ List<Query> queries = new ArrayList<Query>();
+ for (QueryBean queryBean : modifiedBean) {
+ queries.add(queryBean.toQuery());
}
- return list;
+ return queries;
}
@Override
@@ -175,8 +164,7 @@
return bean.getQuery();
} else if (column == 3) {
- QueryBean modifiedBean = modifiedBeanMap.get(bean);
- return modifiedBean.getQuery();
+ return bean.getQuery();
} else if (column == 4) {
boolean validate = queryBeanValidate.get(bean);
@@ -205,14 +193,11 @@
return;
}
- QueryBean initialBean = modifiedBeanMap.get(bean);
- QueryBean modifiedBean = initialBean.setQuery(String.valueOf(value));
+ bean.setQuery(String.valueOf(value));
- if (!initialBean.equals(modifiedBean)) {
- modifiedBeanMap.put(bean, modifiedBean);
- queryBeanValidate.put(bean, Boolean.TRUE);
- fireQueryChanged(bean);
- }
+ modifiedBean.add(bean);
+ queryBeanValidate.put(bean, Boolean.TRUE);
+ fireQueryChanged(bean);
} else if (column == 4) {
QueryBean bean = (QueryBean) node;
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/RequestFormViewHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/RequestFormViewHandler.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/offer/RequestFormViewHandler.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -311,13 +311,13 @@
* 1 | description | name
* 2 | query | description
*/
+
QueryBean queryBean = queries[rowIndex];
- String[] queryArray = queryBean.toArray();
- if (columnIndex < 2) {
- return queryArray[columnIndex + 1];
- } else {
- return queryArray[0];
+ switch (columnIndex) {
+ case 0 : return queryBean.getName();
+ case 1 : return queryBean.getDescription();
+ default: return queryBean.getQuery();
}
}
Modified: trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/search/SearchHandler.java
===================================================================
--- trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/search/SearchHandler.java 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/java/org/chorem/vradi/ui/search/SearchHandler.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -495,13 +495,8 @@
List<QueryBean> queriesBean = new ArrayList<QueryBean>();
if (queries != null) {
for (String query : queries) {
- try {
- QueryBean queryBean = new QueryBean(query);
- queriesBean.add(queryBean);
- } catch (IOException eee) {
- log.error("Cant parse query : " + query, eee);
- ErrorDialogUI.showError(eee);
- }
+ QueryBean queryBean = new QueryBean(VradiService.getWikittyProxy(), query);
+ queriesBean.add(queryBean);
}
}
Modified: trunk/vradi-swing/src/main/resources/vradi.properties
===================================================================
--- trunk/vradi-swing/src/main/resources/vradi.properties 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-swing/src/main/resources/vradi.properties 2011-05-30 17:11:34 UTC (rev 76)
@@ -31,10 +31,13 @@
application.organisation.url=${project.organization.url}
# Wikitty
-wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceHessianClient,\
+wikitty.WikittyService.components=org.nuiton.wikitty.services.WikittyServiceStorage,\
org.nuiton.wikitty.services.WikittyServiceNotifier,\
org.nuiton.wikitty.services.WikittyServiceCached,\
org.nuiton.wikitty.services.WikittyServiceSecurity
+wikitty.WikittyServiceStorage.components=org.nuiton.wikitty.jdbc.WikittyExtensionStorageJDBC,\
+org.nuiton.wikitty.jdbc.WikittyStorageJDBC,\
+org.nuiton.wikitty.storage.solr.WikittySearchEngineSolr
wikitty.service.cache.allwaysRestoreCopies=false
wikitty.service.event.propagate=false
wikitty.service.event.listen=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-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/SearchAction.java 2011-05-30 17:11:34 UTC (rev 76)
@@ -5,12 +5,15 @@
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;
import java.util.Collections;
+import java.util.List;
import java.util.Set;
/**
@@ -24,9 +27,39 @@
public static final String REQUEST_ATTRIBUTE_FORMS = "forms";
protected String query;
+ protected String queryName;
protected HttpServletRequest request;
- protected Set<String> lastQueries;
+ protected List<Query> lastQueries;
+ protected boolean queryActive;
+ // Name of submit
+ protected String switchUserQueryActivation;
+ protected String saveRequest;
+
+ 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;
+ }
+
+ public void setQueryName(String queryName) {
+ this.queryName = queryName;
+ }
+
public String getQuery() {
return query;
}
@@ -35,9 +68,13 @@
this.query = query;
}
- public Set<String> getLastQueries() {
+ public boolean isQueryActive() {
+ return queryActive;
+ }
+
+ public List<Query> getLastQueries() {
if (lastQueries == null || lastQueries.isEmpty()) {
- lastQueries = Collections.EMPTY_SET;
+ lastQueries = Collections.EMPTY_LIST;
}
return lastQueries;
}
@@ -52,6 +89,12 @@
*/
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();
+ if (!StringUtils.isEmpty(switchUserQueryActivation)) {
+ queryActive = getVradiSession().getDataService().switchUserQueryActivation(user, queryName, query);
+ }
FormPaginatedList paginatedList = new FormPaginatedList(getProxy());
// Retrive paginatedList and fill by request params
@@ -72,15 +115,21 @@
}
// Save request played
- if (!StringUtils.isEmpty(query)) {
- VradiUser user = getUser();
- user.addRequests(query);
- user = getProxy().store(user);
+ if (!StringUtils.isEmpty(saveRequest) && !StringUtils.isEmpty(queryName)) {
+
+ user = getVradiSession().getDataService().saveQuery(user, queryName, query);
+
setUser(user);
+
+ // Check if request is active / inactive
+ this.queryActive = getVradiSession().getDataService().checkRequestIsActive(user, queryName);
}
// Retrieve last requests
- this.lastQueries = getUser().getRequests();
+ Set<String> queriesId = user.getQueries();
+ if (queriesId != null) {
+ this.lastQueries = getProxy().restore(Query.class, new ArrayList<String>(queriesId));
+ }
request.setAttribute(REQUEST_ATTRIBUTE_FORMS, paginatedList);
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-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-05-30 17:11:34 UTC (rev 76)
@@ -32,4 +32,8 @@
vradi.footer.bugreport=Bug report
vradi.footer.userSupport=User support
vradi.action.locale.english=English
-vradi.action.locale.french=French
\ No newline at end of file
+vradi.action.locale.french=French
+vradi.search.unActivateQuery=Unactivate
+vradi.search.activateQuery=activate
+vradi.search.queryName=Request name
+vradi.search.saveQuery=Sauvegarder la requ\u00eate
\ 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-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-05-30 17:11:34 UTC (rev 76)
@@ -30,7 +30,12 @@
vradi.register.pwdDontMatch=Les mots de passe sont différents
vradi.register.submit=S'enregistrer
vradi.register.title=S'enregistrer
+vradi.search.activateQuery=Activer
vradi.search.formNoteEdit=Edition des notes
+vradi.search.queryName=Nom de la requête
+vradi.search.saveQuery=Sauvegarder la requête
vradi.search.submit=Rechercher
vradi.search.title=Recherche
+vradi.search.unActivateQuery=Desactiver
vradi.title=Vradi Web
+vradi.user.noinfo=
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-05-30 17:11:34 UTC (rev 76)
@@ -107,7 +107,15 @@
<result>/WEB-INF/jsp/search.jsp</result>
<result name="input" type="redirectAction">search</result>
</action>
+
<!--
+ | Activate or not user request
+ +-->
+ <!--action name="switchUserQueryActivation" class="org.chorem.vradi.actions.SearchAction" method="switchUserQueryActivation">
+ <result type="redirect">search.action</result>
+ </action-->
+
+ <!--
| Affiche la liste des notes attachees a un formulaire
| Permet de creer une nouvelle note
+-->
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/footer.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/footer.jsp 2011-05-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/inc/footer.jsp 2011-05-30 17:11:34 UTC (rev 76)
@@ -12,14 +12,15 @@
<span title="Copyright">©2011</span>
<a shape="rect" href="http://www.codelutin.com">Code Lutin</a> -
<a shape="rect" href="http://www.chorem.org/projects/vradi/issues"><s:text name="vradi.footer.bugreport" /></a> -
- <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/vradi-users"><s:text name="vradi.footer.userSupport" /></a> -
- <s:url var="localeEN">
- <s:param name="request_locale">en_GB</s:param>
- </s:url>
- <s:url var="localeFR">
- <s:param name="request_locale">fr_FR</s:param>
- </s:url>
+ <a shape="rect" href="http://list.chorem.org/cgi-bin/mailman/listinfo/vradi-users"><s:text name="vradi.footer.userSupport" /></a>
<%-- Dont work for moment --%>
+ <%-----%>
+ <%--<s:url var="localeEN">--%>
+ <%--<s:param name="request_locale">en_GB</s:param>--%>
+ <%--</s:url>--%>
+ <%--<s:url var="localeFR">--%>
+ <%--<s:param name="request_locale">fr_FR</s:param>--%>
+ <%--</s:url>--%>
<%--<s:a href="%{localeEN}"><s:text name="vradi.action.locale.english" /></s:a> ---%>
<%--<s:a href="%{localeFR}"><s:text name="vradi.action.locale.french" /></s:a>--%>
</p>
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-30 11:13:08 UTC (rev 75)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-05-30 17:11:34 UTC (rev 76)
@@ -4,7 +4,6 @@
<%@page import="org.chorem.vradi.decorators.DateFormatColumnDecorator" %>
<%@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="displaytag" uri="http://displaytag.sf.net"%>
<html>
@@ -15,14 +14,25 @@
<s:head />
</head>
<body>
- <s:select id="lastQueries"
- list="lastQueries"
- emptyOption="true"
- onchange="$('#searchArea')[0].innerHTML = this.options[this.selectedIndex].value"/>
-
<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>
<s:textarea id="searchArea" name="query"/>
- <s:submit key="vradi.search.submit" name="submit"/>
+ <s:submit key="vradi.search.saveQuery" name="saveRequest"/>
+ <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>
+ <s:submit key="vradi.search.submit" name="search"/>
</s:form>
<displaytag:table name="forms"
sort="list"
1
0
r75 - in trunk/vradi-web/src/main: java/org/chorem/vradi/actions webapp/WEB-INF/jsp
by bpoussin@users.chorem.org 30 May '11
by bpoussin@users.chorem.org 30 May '11
30 May '11
Author: bpoussin
Date: 2011-05-30 13:13:08 +0200 (Mon, 30 May 2011)
New Revision: 75
Url: http://chorem.org/repositories/revision/vradi/75
Log:
en rendu HTML de l'info il ne faut pas de <pre>
Modified:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userInfo.jsp
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java 2011-05-30 11:10:37 UTC (rev 74)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java 2011-05-30 11:13:08 UTC (rev 75)
@@ -62,13 +62,13 @@
}
if (user.getInfo() == null) {
- infoHtml = _("vradi.user.noinfo");
+ infoHtml = "<pre>" + _("vradi.user.noinfo") + "</pre>";
} else {
try {
infoHtml = JRST.generate(JRST.TYPE_HTML_INNER_BODY, user.getInfo());
} catch(Exception eee) {
log.info("Can't generate HTML from RST", eee);
- infoHtml = user.getInfo();
+ infoHtml = "<pre>" + user.getInfo() + "</pre>";
}
}
}
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userInfo.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userInfo.jsp 2011-05-30 11:10:37 UTC (rev 74)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userInfo.jsp 2011-05-30 11:13:08 UTC (rev 75)
@@ -24,6 +24,5 @@
% ce qui pourrait etre dangereux si on a un utilisateur mal vayant
%--%>
<s:property value="localUserEmail" default="no email" escape="true"/>
-<pre>
- <s:property value="localUserInfo" default="no information" escape="true"/>
-</pre>
\ No newline at end of file
+
+<s:property value="localUserInfo" default="no information" escape="true"/></pre>
\ No newline at end of file
1
0
r74 - in trunk/vradi-web/src/main: resources webapp/WEB-INF/jsp
by bpoussin@users.chorem.org 30 May '11
by bpoussin@users.chorem.org 30 May '11
30 May '11
Author: bpoussin
Date: 2011-05-30 13:10:37 +0200 (Mon, 30 May 2011)
New Revision: 74
Url: http://chorem.org/repositories/revision/vradi/74
Log:
use /ajax/edit to change vradiUser field value
Modified:
trunk/vradi-web/src/main/resources/struts.xml
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp
Modified: trunk/vradi-web/src/main/resources/struts.xml
===================================================================
--- trunk/vradi-web/src/main/resources/struts.xml 2011-05-30 11:10:08 UTC (rev 73)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-05-30 11:10:37 UTC (rev 74)
@@ -175,7 +175,7 @@
+-->
<action name="edit/*" class="org.chorem.vradi.actions.EditAction">
<param name="id">{1}</param>
- <param name="includes">FormNote\..*</param>
+ <param name="includes">FormNote\..*,VradiUser\..*</param>
<result type="wikitty-json"/>
</action>
<!--
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp 2011-05-30 11:10:08 UTC (rev 73)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp 2011-05-30 11:10:37 UTC (rev 74)
@@ -42,7 +42,7 @@
| Information
+-->
<div>
- <s:form id="infoForm" action="edit/%{localUserId}.action" method="POST">
+ <s:form id="infoForm" action="/ajax/edit/%{localUserId}.action" method="POST">
<sj:textarea name="%{localVradiUserFieldInfo}"
value="%{localUserInfo}" key="vradi.userPreference.info"/>
<sj:submit id="infoFormSubmit"
@@ -59,8 +59,8 @@
| Personnes a qui on n'envoie plus les demandes
+-->
<div>
- <s:form id="noSendForm" action="edit/%{localUserId}.action" method="POST">
- <s:select size="5" name="userId" list="localUserNoSend" listKey="wikittyId" listValue="login"/>
+ <s:form id="noSendForm" action="/ajax/edit/%{localUserId}.action" method="POST">
+ <s:select size="5" name="userId" list="%{localUserNoSend}" listKey="wikittyId" listValue="login"/>
<sj:submit
id="noSendFormShowSubmit"
href="/fragment/partnerInfo.action"
@@ -89,8 +89,8 @@
| Personnes dont on ne recoit plus de demande
+-->
<div>
- <s:form id="noReceivedForm" action="edit/%{localUserId}.action" method="POST">
- <s:select size="5" name="userId" list="localUserNoReceived" listKey="wikittyId" listValue="login"/>
+ <s:form id="noReceivedForm" action="/ajax/edit/%{localUserId}.action" method="POST">
+ <s:select size="5" name="userId" list="%{localUserNoReceived}" listKey="wikittyId" listValue="login"/>
<sj:submit
id="noReceivedFormShowSubmit"
href="/fragment/partnerInfo.action"
1
0
r73 - trunk/vradi-web/src/main/java/org/chorem/vradi/actions
by bpoussin@users.chorem.org 30 May '11
by bpoussin@users.chorem.org 30 May '11
30 May '11
Author: bpoussin
Date: 2011-05-30 13:10:08 +0200 (Mon, 30 May 2011)
New Revision: 73
Url: http://chorem.org/repositories/revision/vradi/73
Log:
init VradiUser collection if null
Modified:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RegisterAction.java
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RegisterAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RegisterAction.java 2011-05-30 10:58:46 UTC (rev 72)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RegisterAction.java 2011-05-30 11:10:08 UTC (rev 73)
@@ -1,5 +1,7 @@
package org.chorem.vradi.actions;
+import freemarker.template.utility.Collections12;
+import java.util.Collections;
import javax.mail.MessagingException;
import javax.mail.internet.AddressException;
import javax.servlet.http.HttpServletRequest;
@@ -116,6 +118,8 @@
String md5 = StringUtil.encodeMD5(password);
newUser.setPassword(md5);
newUser.setLogin(email);
+ newUser.setNoSend(Collections.EMPTY_SET);
+ newUser.setNoReceived(Collections.EMPTY_SET);
VradiUser login = proxy.store(newUser); //Stores the new user
//If there was an error when storing the user
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java 2011-05-30 10:58:46 UTC (rev 72)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java 2011-05-30 11:10:08 UTC (rev 73)
@@ -3,6 +3,7 @@
import static org.nuiton.i18n.I18n._;
import com.opensymphony.xwork2.ActionContext;
+import java.util.Collections;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.chorem.vradi.entities.VradiUser;
@@ -52,6 +53,14 @@
log.debug(String.format("User '%s' is %s: ", userId, user));
if (user != null) {
+ // if collection is not initialized put empty collection
+ if (user.getNoSend() == null) {
+ user.setNoSend(Collections.EMPTY_SET);
+ }
+ if (user.getNoReceived() == null) {
+ user.setNoReceived(Collections.EMPTY_SET);
+ }
+
if (user.getInfo() == null) {
infoHtml = _("vradi.user.noinfo");
} else {
1
0
r72 - trunk/vradi-web/src/main/webapp/WEB-INF/jsp/decorators
by bpoussin@users.chorem.org 30 May '11
by bpoussin@users.chorem.org 30 May '11
30 May '11
Author: bpoussin
Date: 2011-05-30 12:58:46 +0200 (Mon, 30 May 2011)
New Revision: 72
Url: http://chorem.org/repositories/revision/vradi/72
Log:
suppression de l'include d'un script jquery completement incompatible avec le plugin struts-jquery (le plugin ne fonctionne plus)
Et surtout quelle est l'interet de cet include alors qu'on a le plugin ?
Modified:
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/decorators/main.jsp
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/decorators/main.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/decorators/main.jsp 2011-05-30 10:49:57 UTC (rev 71)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/decorators/main.jsp 2011-05-30 10:58:46 UTC (rev 72)
@@ -1,7 +1,11 @@
<%@page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+
<%@taglib prefix="decorator" uri="http://www.opensymphony.com/sitemesh/decorator" %>
<%@taglib prefix="page" uri="http://www.opensymphony.com/sitemesh/page" %>
+
<%@taglib prefix="s" uri="/struts-tags" %>
+<%@taglib prefix="sj" uri="/struts-jquery-tags"%>
+
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:s="http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
xmlns:jsp="http://java.sun.com/JSP/Page"
@@ -9,11 +13,20 @@
<head>
<title>Vradi web : <decorator:title default="Vradi web" /></title>
<decorator:head />
+<%--
+ XXX poussin 20110530 met-on ces entete dans le template ou sur chaque page ?
+ <s:head/>
+ <sj:head jquerytheme="sunny"/>
+--%>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<s:url var="globalCSS" value="/css/global.css" />
<link href="${globalCSS}" rel="stylesheet" type="text/css" media="all" />
+<%--
+ XXX poussin 20110530 qu'elle est l'interet de ce script ??? Surtout qu'il fait planter le plugin jquery :(
+
<s:url var="jqueryJS" value="/js/jquery-1.6.1.js" />
<script type="text/javascript" src="${jqueryJS}"></script>
+--%>
</head>
<body id="page-home">
<div id="wrap">
1
0
30 May '11
Author: bpoussin
Date: 2011-05-30 12:49:57 +0200 (Mon, 30 May 2011)
New Revision: 71
Url: http://chorem.org/repositories/revision/vradi/71
Log:
ajout des variables pour les listes noSend et noReceived
Modified:
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp
Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp 2011-05-30 10:49:27 UTC (rev 70)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/userPreference.jsp 2011-05-30 10:49:57 UTC (rev 71)
@@ -19,6 +19,8 @@
ActionContext.getContext().put("localUserId", user.getWikittyId());
ActionContext.getContext().put("localUserEmail", user.getLogin());
ActionContext.getContext().put("localUserInfo", user.getInfo());
+ActionContext.getContext().put("localUserNoSend", user.getNoSend());
+ActionContext.getContext().put("localUserNoReceived", user.getNoReceived());
ActionContext.getContext().put("localVradiUserFieldInfo", VradiUser.FQ_FIELD_VRADIUSER_INFO);
%>
@@ -58,7 +60,7 @@
+-->
<div>
<s:form id="noSendForm" action="edit/%{localUserId}.action" method="POST">
- <s:select size="5" name="userId" list="noSendList" listKey="wikittyId" listValue="login"/>
+ <s:select size="5" name="userId" list="localUserNoSend" listKey="wikittyId" listValue="login"/>
<sj:submit
id="noSendFormShowSubmit"
href="/fragment/partnerInfo.action"
@@ -88,7 +90,7 @@
+-->
<div>
<s:form id="noReceivedForm" action="edit/%{localUserId}.action" method="POST">
- <s:select size="5" name="userId" list="noReceivedList" listKey="wikittyId" listValue="login"/>
+ <s:select size="5" name="userId" list="localUserNoReceived" listKey="wikittyId" listValue="login"/>
<sj:submit
id="noReceivedFormShowSubmit"
href="/fragment/partnerInfo.action"
1
0
r70 - in trunk/vradi-web/src/main: resources webapp/WEB-INF/jsp
by bpoussin@users.chorem.org 30 May '11
by bpoussin@users.chorem.org 30 May '11
30 May '11
Author: bpoussin
Date: 2011-05-30 12:49:27 +0200 (Mon, 30 May 2011)
New Revision: 70
Url: http://chorem.org/repositories/revision/vradi/70
Log:
le delete ne renvoi rien, seulement un message de bonne fin ou non
Added:
trunk/vradi-web/src/main/webapp/WEB-INF/jsp/empty.jsp
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-05-30 10:48:54 UTC (rev 69)
+++ trunk/vradi-web/src/main/resources/struts.xml 2011-05-30 10:49:27 UTC (rev 70)
@@ -184,7 +184,7 @@
<action name="delete/*" class="org.chorem.vradi.actions.DeleteAction">
<param name="id">{1}</param>
<param name="includes">FormNote</param>
- <result>/WEB-INF/jsp/delete.jsp</result>
+ <result>/WEB-INF/jsp/empty.jsp</result>
</action>
</package>
Added: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/empty.jsp
===================================================================
--- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/empty.jsp (rev 0)
+++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/empty.jsp 2011-05-30 10:49:27 UTC (rev 70)
@@ -0,0 +1,9 @@
+<%--
+ Document : delete
+ Created on : 30 mai 2011, 12:37:48
+ Author : poussin
+--%>
+
+<%-- Cette page ne retourne rien (vide) --%>
+<%@page contentType="text/html" pageEncoding="UTF-8"%>
+
1
0
r69 - trunk/vradi-web/src/main/java/org/chorem/vradi/actions
by bpoussin@users.chorem.org 30 May '11
by bpoussin@users.chorem.org 30 May '11
30 May '11
Author: bpoussin
Date: 2011-05-30 12:48:54 +0200 (Mon, 30 May 2011)
New Revision: 69
Url: http://chorem.org/repositories/revision/vradi/69
Log:
si pas d'info pour le user on affiche "pas d'info"
Modified:
trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java
Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java
===================================================================
--- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java 2011-05-30 10:48:11 UTC (rev 68)
+++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/RestoreUserAction.java 2011-05-30 10:48:54 UTC (rev 69)
@@ -1,5 +1,7 @@
package org.chorem.vradi.actions;
+import static org.nuiton.i18n.I18n._;
+
import com.opensymphony.xwork2.ActionContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -50,11 +52,15 @@
log.debug(String.format("User '%s' is %s: ", userId, user));
if (user != null) {
- try {
- infoHtml = JRST.generate(JRST.TYPE_HTML_INNER_BODY, user.getInfo());
- } catch(Exception eee) {
- log.info("Can't generate HTML from RST", eee);
- infoHtml = user.getInfo();
+ if (user.getInfo() == null) {
+ infoHtml = _("vradi.user.noinfo");
+ } else {
+ try {
+ infoHtml = JRST.generate(JRST.TYPE_HTML_INNER_BODY, user.getInfo());
+ } catch(Exception eee) {
+ log.info("Can't generate HTML from RST", eee);
+ infoHtml = user.getInfo();
+ }
}
}
1
0