Author: sletellier Date: 2011-06-07 15:01:22 +0200 (Tue, 07 Jun 2011) New Revision: 83 Url: http://chorem.org/repositories/revision/vradi/83 Log: - Fix css - #383 Filter thesaurus Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties trunk/vradi-web/src/main/resources/struts.xml trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp trunk/vradi-web/src/main/webapp/css/search.css Modified: trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java =================================================================== --- trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/java/org/chorem/vradi/actions/ThesaurusAction.java 2011-06-07 13:01:22 UTC (rev 83) @@ -1,11 +1,16 @@ package org.chorem.vradi.actions; import com.jgeppert.struts2.jquery.tree.result.TreeNode; -import com.opensymphony.xwork2.ActionSupport; +import org.apache.commons.lang.StringUtils; +import org.apache.struts2.interceptor.ServletRequestAware; import org.chorem.vradi.entities.RootThesaurus; import org.chorem.vradi.entities.Thesaurus; import org.chorem.vradi.services.VradiException; +import org.nuiton.wikitty.search.PagedResult; +import org.nuiton.wikitty.search.Search; +import org.nuiton.wikitty.search.operators.Like; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.List; @@ -14,15 +19,31 @@ * * @author sletellier */ -public class ThesaurusAction extends VradiBaseAction { +public class ThesaurusAction extends VradiBaseAction implements ServletRequestAware { private static final long serialVersionUID = -2886756982077980790L; - private List<TreeNode> nodes = new ArrayList<TreeNode>(); - private String id = null; - public String execute() { + public static final String THESAURUS_NAME_REQUEST = "thesaurusNameRequest"; - if (id.equals("0")) { + protected List<TreeNode> nodes = new ArrayList<TreeNode>(); + protected String id = null; + protected HttpServletRequest request; + + protected String thesaurusNameRequest; + + public String execute() { + + if (id == null) { + // Store in session to keep it + request.getSession().setAttribute(THESAURUS_NAME_REQUEST, thesaurusNameRequest); + return SUCCESS; + } + else { + // Retrieve from session + this.thesaurusNameRequest = (String)request.getSession().getAttribute(THESAURUS_NAME_REQUEST); + } + + if ("0".equals(id)) { List<RootThesaurus> rootThesaurus; try { rootThesaurus = getVradiSession().getDataService().getRootThesaurus(); @@ -37,23 +58,44 @@ nodes.add(node); } } else { - List<Thesaurus> thesaurus; - try { - thesaurus = getVradiSession().getDataService().getChildrenThesaurus(id); - } catch (VradiException eee) { - log.error("Failed to load children of thesaurus : " + id, eee); - return ERROR; + + // Build search with thesaurus name restriction + Search search = Search.query().eq(Thesaurus.FQ_FIELD_WIKITTYTREENODE_PARENT, id); + if (!StringUtils.isEmpty(thesaurusNameRequest)) { + search.like(Thesaurus.FQ_FIELD_WIKITTYTREENODE_NAME, + thesaurusNameRequest, Like.SearchAs.ToLowerCase); } - for (Thesaurus child : thesaurus) { + PagedResult<Thesaurus> children = getProxy().findAllByCriteria(Thesaurus.class, search.criteria()); + + // FIXME sletellier 07/06/11 : dont work, filter is apply only on count +// TreeNodeResult<Thesaurus> thesaurus = getProxy().findTreeNode(Thesaurus.class, id, 1, true, criteria); + +// for (TreeNodeResult<Thesaurus> childNode : thesaurus.getChildren()) { + for (Thesaurus child : children) { TreeNode node = new TreeNode(); +// Thesaurus child = childNode.getObject(); node.setId(child.getWikittyId()); node.setTitle(child.getName()); + nodes.add(node); } } - return SUCCESS; - } + return SUCCESS; + } + @Override + public void setServletRequest(HttpServletRequest request) { + this.request = request; + } + + public String getThesaurusNameRequest() { + return thesaurusNameRequest; + } + + public void setThesaurusNameRequest(String thesaurusNameRequest) { + this.thesaurusNameRequest = thesaurusNameRequest; + } + public String getJSON() { return execute(); } Modified: trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties =================================================================== --- trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/resources/i18n/vradi-web_en_GB.properties 2011-06-07 13:01:22 UTC (rev 83) @@ -37,4 +37,5 @@ vradi.search.activateQuery=activate vradi.search.queryName=Request name vradi.search.saveQuery=Save request -vradi.formView.title=Form view \ No newline at end of file +vradi.formView.title=Form view +vradi.search.thesaurusFilterButton=Filter \ No newline at end of file Modified: trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties =================================================================== --- trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/resources/i18n/vradi-web_fr_FR.properties 2011-06-07 13:01:22 UTC (rev 83) @@ -35,6 +35,7 @@ vradi.search.queryName=Nom de la requête vradi.search.saveQuery=Sauvegarder la requête vradi.search.submit=Rechercher +vradi.search.thesaurusFilterButton=Filtrer vradi.search.title=Recherche vradi.search.unActivateQuery=Desactiver vradi.title=Vradi Web Modified: trunk/vradi-web/src/main/resources/struts.xml =================================================================== --- trunk/vradi-web/src/main/resources/struts.xml 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/resources/struts.xml 2011-06-07 13:01:22 UTC (rev 83) @@ -113,6 +113,7 @@ +--> <action name="thesaurus" class="org.chorem.vradi.actions.ThesaurusAction"> + <param name="thesaurusNameRequest"/> <result name="success" type="json"> <param name="root">nodes</param> </result> Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/formNote.jsp 2011-06-07 13:01:22 UTC (rev 83) @@ -42,7 +42,7 @@ <img id="indicator-result" src="/img/indicator.gif" alt="Loading..." style="display:none"/> </div> <div> - <sj:a id="closeButton" href="/ajax/edit/%{localNoteId}.action?state=close" + <sj:a id="clCyril LakechoseButton" href="/ajax/edit/%{localNoteId}.action?state=close" targets="" indicator="indicator-result" button="true" buttonIcon="ui-icon-gear"> <s:text name="vradi.formNote.close"/> Modified: trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp =================================================================== --- trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/webapp/WEB-INF/jsp/search.jsp 2011-06-07 13:01:22 UTC (rev 83) @@ -20,11 +20,36 @@ var item = event.originalEvent.data.rslt.obj; $('#searchArea')[0].innerHTML += item.text().trim(); }); + + function updateThesaurus() { + + // Send thesaurus filter + var xhr = new XMLHttpRequest(); + var thesaurusUrl = getThesaurusUrl(); + xhr.open('GET', thesaurusUrl, true); + xhr.send(null); + + // Refresh tree + $('#thesaurus').jstree("refresh"); + alert(url); + } + + function getThesaurusUrl() { + var thesaurusNameRequest = $("#thesaurusNameRequestArea")[0].value; + return "/thesaurus.action?thesaurusNameRequest=" + thesaurusNameRequest; + } </script> </head> <body> <div> <div id="thesaurusPanel" class="left"> + <textfield id="thesaurusNameRequestArea"/> + <s:set id="thesaurusFilterButtonText"> + <s:text name="vradi.search.thesaurusFilterButton"/> + </s:set> + <input type="submit" + value="${thesaurusFilterButtonText}" + onclick="updateThesaurus()"/> <s:url id="thesaurusDataUrl" action="thesaurus"/> <sjt:tree id="thesaurus" Modified: trunk/vradi-web/src/main/webapp/css/search.css =================================================================== --- trunk/vradi-web/src/main/webapp/css/search.css 2011-05-31 16:18:16 UTC (rev 82) +++ trunk/vradi-web/src/main/webapp/css/search.css 2011-06-07 13:01:22 UTC (rev 83) @@ -1,19 +1,39 @@ /* Layout */ div.left{ + width: 20%; float:left; } +.right{ + float:right; +} + +.button{ + margin-top:20px; + height:31px; + line-height:31px; + font-weight:bold; + border:none; + width:auto; + padding:2px; +} + #searchActionPanel { float:right; } +#searchPanel { + height: 20%; +} + #contentPanel { - padding-left: 10%; + padding-right: 20%; + padding-left: 20%; } #queryPanel { float:left; - width: 85%; + width: 80%; } textarea {